{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap","../../../../../../../../external/underscore","../../../../../../../../external/@bingads-webui-universal/primitive-utilities","../webpack-src:/filter-schema/index.js","../webpack-src:/filter-schema/src/index.es","../webpack-src:/filter-schema/src/schema-utils.es","../../../../../../../../external/@bingads-webui/reflection","../../../../../../../../external/@bingads-webui/url-util","../../../../../../../../external/@bingads-webui/registry","../webpack-src:/edm-shared/index.js","../webpack-src:/edm-shared/src/types-plugin-shared.js","../webpack-src:/edm-shared/src/resource-identifiers-shared.js","../../../../../../../../external/@bingads-webui/listener","../webpack-src:/console-listener/index.js","../webpack-src:/console-listener/src/index.es","../../../../../../../../external/underscore.string","../webpack-src:/clientcenter-customer-service/index.js","../webpack-src:/clientcenter-customer-service/src/index.es","../../../../../../../../external/bluebird","../../../../../../../../external/jquery","../webpack-src:/build-legacy-i18n/index.js","../webpack-src:/build-legacy-i18n/src/build-legacy-i18n.js","../../../../../../../../external/@bingads-webui-universal/i18n-model","../../../../../../../../external/@bingads-webui-universal/time-zone-converter","../webpack-src:/build-legacy-i18n/src/fail-fast-setting.js","../webpack-src:/build-legacy-i18n/src/merge-legacy-i18n.js","../../../../../../../../external/@bingads-webui/http-util","../../../../../../../../external/@bingads-webui/edm-resource-identifiers","../webpack-src:/edm-odata/index.js","../webpack-src:/edm-odata/src/index.js","../webpack-src:/edm-odata/src/cache.js","../../../../../../../../external/json-stable-stringify","../webpack-src:/edm-odata/src/server-call-cache-item.js","../../../../../../../../external/@bingads-webui-universal/observable","../webpack-src:/edm-odata/src/observable-cache.js","../../../../../../../../external/@bingads-webui-universal/time-aware-cache","../webpack-src:/edm-odata/src/constants.js","../webpack-src:/edm-odata/src/cache-event.js","../../../../../../../../external/@bingads-webui/edm-shared","../webpack-src:/edm-resource-identifiers/index.js","../webpack-src:/edm-resource-identifiers/src/index.js","../webpack-src:/edm-bulk/index.js","../webpack-src:/edm-bulk/src/index.js","../webpack-src:/edm-bulk/src/bulk-upsert.js","../../../../../../../../external/@bingads-webui/odata-bulk-upsert","../webpack-src:/edm-bulk/src/constants.js","../webpack-src:/edm-core/index.js","../webpack-src:/edm-core/src/index.js","../webpack-src:/edm-core/src/types-plugin.js","../webpack-src:/edm-core/src/schema-plugin.js","../webpack-src:/aria-listener/index.js","../webpack-src:/aria-listener/src/aria-listener.es","../../../../../../../../external/@aria/webjs-sdk","../webpack-src:/aria-listener/src/default-config.es","../webpack-src:/aria-listener/src/formatters/log-property-formatter.es"],"names":["factory","self","__WEBPACK_EXTERNAL_MODULE__3__","__WEBPACK_EXTERNAL_MODULE__4__","installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_index","_schemaUtils","_underscore","operatorMapping","number","integer","array","string","enum","boolean","datetime","id","convertValue","srcPropType","targetPropType","predValue","srcType","toLowerCase","targetType","Math","round","conversionFunctionFactory","sourcePropertyType","targetPropName","targetProp","mongoPredicate","exprObj","_","values","predOperator","keys","convertedValue","type","[object Object]","legacyConversionFunctionFactory","legacyPredicate","Values","SelectedColumn","buildPropToConversions","isForLegacyFilter","conversionFuncFactory","chain","this","entitySchema","properties","pairs","map","alias","propertyConversion","_targetProp$alias$pro","sourcePropertyName","sourcePropertyLegacyAlias","Error","conversionFunc","compact","constructor","entityName","filterProps","extend","schema","filter","pair","filterable","getSelfFilterableProps","parentKey","pick","childPair","prop","concat","flatten","getDeepFilterableProps","aliasToProp","once","propToAlias","dot","indexOf","aliasType","substring","propToConversions","propToLegacyConversions","getEntityName","getPropertyKeys","getFilterProperty","propertyKey","operators","result","isEmpty","description","isPercentValue","skipLocalization","isDeletedProperty","isInvalidProperty","title","localized","nullable","maxLength","minimum","maximum","pattern","customEditor","localize","enumType","chooseType","customParameters","groupedItems","hasTime","operatorDisplayNameMap","addtionalParams","isObject","extendOwn","toAlias","fromAlias","getApplicableConversions","propName","allConversions","isUndefined","identity","getApplicableLegacyConversions","applyConversions","applyLegacyFilterConversions","legacyFilterExpressions","each","legacyExpression","mapOnlyBaseProperty","mapObject","propObj","last","split","flattenedEntity","reduce","fields","memo","field","defaults","restoreToEntitySchema","nameStack","buildFilters","parentNameStack","push","join","propertyName","schemaToBuild","_primitiveUtilities","cloneDeep","isArray","subPro","has","contains","primitiveTypes","baseSchema","originalProperty","required","customColumn","format","aliasCopy","hasConversionAlias","_aliasCopy$propertyCo","sourceProperty","aliasNameStack","joinedSourceName","enumValueMap","enumValue","mappedEnumValue","mapEnumValueForFilter","pop","flattenSchemaToFields","__WEBPACK_EXTERNAL_MODULE__7__","__WEBPACK_EXTERNAL_MODULE__39__","__WEBPACK_EXTERNAL_MODULE__42__","__WEBPACK_EXTERNAL_MODULE__47__","_typesPluginShared","_resourceIdentifiersShared","oneOfTypes","types","OneOfType","resolveType","namespace","postfix","COLLECTION_TYPE_POSTFIX","slice","length","str","removePostfix","collectionType","ONEOF_TYPE_PREFIX","prefixLength","typeNames","substr","set","resolve","parameters","Parameter","typeName","Property","defineConstProperty","Registry","getNamespace","getShortName","register","Superclass","jsType","super","_reflection","defineProducedProperty","CollectionType","baseTypeName","elementTypeName","collectionTypeName","_registry","source","toJSON","toSelfJSON","url","edm","CastNavigation","path","navigationName","TypeResID","entityType","navigation","ResourceIdentifier","WithKeyNavigation","ignoreKeyTypeInPath","isString","urlUtil","keyType","match","JSON","stringify","elementType","CallNavigation","ActionType","returnType","identifyEntitySet","json","entitySet","item","_interopRequireWildcard","__WEBPACK_EXTERNAL_MODULE__5__","__WEBPACK_EXTERNAL_MODULE__13__","_listener","Listener","options","formatters","filters","init","initialized","write","logMessage","filterLogs","formattedMsg","formatLogs","category","logCategory","include","console","error","log","_jquery","_interopRequireDefault","_bluebird","defaultAjaxOptions","xhrFields","withCredentials","headers","X-Requested-With","ccBaseUrl","ccJsData","baseCustomerUrl","getUserPreferences","uid","UserPreference","findAll","Promise","$","ajax","_objectSpread","data","setUserPreferences","reject","success","response","xhr","status","getCustomers","getCustomersListUrl","rurl","window","location","href","getRecentAccesssEntities","cid","limit","getRecentAccesssEntitiesUrl","getCustomerHierarchy","searchTerm","start","returnOnlyDirectlyLinkedEntities","targetCid","CustomerHierarchy","find","params","bypassCache","getCustomerHierarchyUrl","getAncestorHierarchyPath","entityId","isCustomer","AncestorHierarchyPath","getAncestorHierarchyPathUrl","getAccount","__WEBPACK_EXTERNAL_MODULE__17__","__WEBPACK_EXTERNAL_MODULE__43__","_buildLegacyI18n","_mergeLegacyI18n","_i18nModel","_timeZoneConverter","_failFastSetting","buildLegacyStrings","i18n","allStrings","legacyKeys","buildStringsMap","getString","timeZone","currency","I18nModel","isNumber","toIANATimeZone","fromLegacyTimeZone","undefined","loadTranslationData","loadCLDRData","locale","failFast","getFailFastSetting","prodEnvs","hostname","includes","mergeLegacyStrings","legacyI18ns","legacyStrings","getData","__WEBPACK_EXTERNAL_MODULE__6__","__WEBPACK_EXTERNAL_MODULE__8__","__WEBPACK_EXTERNAL_MODULE__41__","__WEBPACK_EXTERNAL_MODULE__60__","__WEBPACK_EXTERNAL_MODULE__75__","__WEBPACK_EXTERNAL_MODULE__77__","__WEBPACK_EXTERNAL_MODULE__79__","rootURL","dependants","processResponse","processError","processOptions","odataRootURL","replace","wrapODataMethod","method","resource","odataURL","then","catch","_cache","odataCachePlugin","fetchEntity","select","odata","parseSelect","patchEntity","update","patch","urlParameters","createEntity","collectionResource","post","deleteEntity","delete","fetchCollection","_ref","top","skip","count","orderby","search","others","_objectWithoutProperties","$top","$skip","$count","parseOrderBy","parseFilter","parseSearch","action","payload","parseTop","parseSkip","parseCount","_edm$odataCache","getEntity","postEntity","destroyEntityAsPromise","entityAction","getCollection","collectionAction","_edmResourceIdentifiers","resIdsPlugin","_edm$resourceIdentifi","resourceIdentifiers","CollectionResourceIdentifier","Navigation","defineProducedPropertyOnClass","_ref2","hardResetData","_ref2$top","_ref2$skip","_ref2$count","_ref2$select","_ref2$filter","_ref2$orderby","_ref2$search","cacheItem","destroyAsPromise","$_callableMakeCall","startDate","endDate","FunctionType","$makeCall","query","functionParams","$call","offset","orderBy","toPromise","legacyJsDataResultProcess","$withKey","_httpUtil","$orderby","v","index","lowerCaseOrderValue","where","$filter","parsed","navigationPropertyNames","$select","$expand","$search","entityDeps","collectionCache","ObservableCache","cacheEvent","CacheEvent","entityCache","invalidateEntityCache","stringifiedOptions","skipEntityCallPaths","forAll","observedCache","invalidateObservedCache","invalidateObservedCacheById","noObservers","entries","forEach","_JSON$parse","parse","_JSON$parse2","_slicedToArray","parsedId","invalidateNoObserverCache","invalidate","context","invalidateCollectionCache","notify","invalidateTypeCache","hardResetCacheData","idOrPath","_jsonStableStringify","default","cacheKeyPath","setData","newItem","EntityCacheItem","fetch","tap","afterSubscribe","cache","observerAdded","afterUnsubscribe","observerReduced","entityPromise","keyProperty","resourcePromise","entity","fetchFirstCalledAndPatchNotCalled","err","CollectionCacheItem","_serverCallCacheItem","_observableCache","_cacheEvent","_observable","CacheItem","Observable","noop","observer","observers","add","state","next","Set","size","hasObservers","PatchEntityCacheItem","patchEntityCacheItem","originalStatus","subscribe","_timeAwareCache","_constants","_defineProperty","TimeAwareCache","ttl","DEFAULT_TTL","strategy","LRUReplacementStrategy","CACHE_SIZE","del","obj","deletePropertyPath","clearCacheKeys","cacheItems","subKey","ob","__WEBPACK_EXTERNAL_MODULE__48__","_edmShared","createNavigation","PropertyNavigation","navigationProperties","CallableNavigation","callable","defineCallableOn","resID","callableTypes","callableName","actions","functions","createCastNavigation","createWithKeyNavigation","createCallNavigation","createResourceIdentifier","resourceIdentifierForType","DefaultBase","Base","baseType","AccessorType","PrimitiveType","PrimitiveTypeResID","ObjectType","ObjectTypeResID","defineOn","CollectionTypeResID","EntityType","CallableType","CallableTypeResID","def","__WEBPACK_EXTERNAL_MODULE__40__","_bulkUpsert","ServiceRoot","AccountID","AdvertiserCustomerID","bulkUpsertSchema","getUrl","prefix","_urlUtil","getParent","getCast","invalidateCache","ids","checkParsedResult","errors","bSchema","merge","schemas","bulkUpdate","attrs","batch","reqs","param","csvRows","_odataBulkUpsert","serialize","Id","uri","CsvRows","responses","_parse","results","ret","populateIds","parsedResponse","isFunction","toSerialize","getAttrsToSerialize","res","_parse2","hasReadOnlyFields","bulkUpdateMany","idList","attrsList","_parse3","attrsListWithIds","extractEntityErrors","bulkCreate","_parse4","bulkCreateMany","_parse5","bulkDestroy","buildDestroyObject","parent","parentId","_parse6","getSkipEntityCallPaths","cast","ENTITY_PATH_ENUM","Model.ShoppingCampaign","Model.Campaign","Model.AdGroup","entityPath","_typesPlugin","_schemaPlugin","Map","Type","createType","createPrimitiveType","oneOfTypeName","sortedNames","resolveQualifiedName","sort","createResolveType","createProperty","createParameter","compileProperties","addProperties","addNavigationProperties","createCollectionType","returnTypeName","compileParameters","getSchemaBaseTypeName","$$ODataExtension","clrTypeBase","BaseType","$ref","getSchemaKey","Key","getSchemaNavigationPropertyNames","NavigationProperty","_edm$types","ComplexType","getSchemaFullName","possiblePath","$$ref","getQualifiedName","Name","getSchemaName","getTypeName","dependencies","typeInfo","items","oneOf","defineCallableOnType","acts","funcs","qualifiedName","forEntityType","getCallableTypeName","parameter","ReturnType","defineSchemaType","entityActions","entityFunctions","collCallable","Action","Function","String","Number","Date","Boolean","null","_ariaListener","_webjsSdk","_defaultConfig","activeListeners","flushEventAttached","flushInterval","defaultConfig","batchSize","enableSessionTracking","logTableNames","defaultLogCategory","listener","tenantToken","logs","AWTLogManager","initialize","setTransmitProfile","AWT_NEAR_REAL_TIME","defaultLogger","getLogger","logSession","AWTSessionState","Started","trackedListenerRefs","setInterval","flushBatch","addEventListener","flushLogs","flush","registerForTeardown","registeredForTeardown","teardown","flushAll","Ended","release","batchLogs","logsToFlush","splice","logEvent","flushAndTeardown","categoryName","getCategoryName","propertyFormatter","AriaPropertyFormatter","Formatter","val"],"mappings":"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","file":"static/js/application.initial~bffc3cd8.556f94d2.chunk.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"underscore\"), require(\"@aria/webjs-sdk\"), require(\"@bingads-webui/listener\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"underscore\", \"@aria/webjs-sdk\", \"@bingads-webui/listener\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory(require(\"underscore\"), require(\"@aria/webjs-sdk\"), require(\"@bingads-webui/listener\")) : factory(root[\"underscore\"], root[\"@aria/webjs-sdk\"], root[\"@bingads-webui/listener\"]);\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__3__, __WEBPACK_EXTERNAL_MODULE__4__, __WEBPACK_EXTERNAL_MODULE__5__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__3__;","module.exports = __WEBPACK_EXTERNAL_MODULE__8__;","export { FilterSchema } from './src/index';\r\nexport { flattenEntitySchema, buildNameToPropertyMapping } from './src/schema-utils';\r\n","import _ from 'underscore';\r\n\r\nconst operatorMapping = {\r\n number: ['eq', 'neq', 'gt', 'gte', 'lt', 'lte'],\r\n integer: ['eq', 'neq', 'gt', 'gte', 'lt', 'lte'],\r\n array: ['eq', 'neq', 'gt', 'gte', 'lt', 'lte'],\r\n string: ['contains', 'doesnotcontain', 'startswith', 'endswith', 'eq', 'neq'],\r\n enum: ['in'],\r\n boolean: ['eq'],\r\n datetime: ['eq', 'neq', 'gt', 'gte', 'lt', 'lte'],\r\n id: ['in'],\r\n};\r\n\r\nfunction getSelfFilterableProps(schema) {\r\n return _.chain(schema.properties)\r\n .pairs()\r\n .filter(pair => pair[1] && pair[1].filterable === true)\r\n .object()\r\n .value();\r\n}\r\n\r\nfunction getDeepFilterableProps(schema) {\r\n return _.chain(schema.properties)\r\n .pairs()\r\n .filter(pair => pair[1].type && pair[1].type.toLowerCase() === 'object' && pair[1].schema && pair[1].filterable)\r\n .map((pair) => {\r\n const parentKey = pair[0];\r\n\r\n return _.chain(pair[1].schema.properties)\r\n // pick only filterable properties\r\n .pick(pair[1].filterable)\r\n .pairs()\r\n .map((childPair) => {\r\n // set alias on property object\r\n const prop = _.extend({}, childPair[1], {\r\n alias: pair[1].alias && pair[1].alias[childPair[0]],\r\n });\r\n // return key-value pair with key = parent/child\r\n return [parentKey.concat('.', childPair[0]), prop];\r\n })\r\n .value();\r\n })\r\n .flatten(true)\r\n .object()\r\n .value();\r\n}\r\n\r\nfunction buildAliasToProp() {\r\n return _.chain(this.filterProps())\r\n .pairs()\r\n .map(pair => _.map(\r\n _.pairs(pair[1].alias || {}),\r\n childPair => [childPair[0].concat('.', childPair[1]), pair[0]]\r\n ))\r\n .flatten(true)\r\n .object()\r\n .value();\r\n}\r\n\r\nfunction buildPropToAlias() {\r\n return _.chain(this.aliasToProp())\r\n .pairs()\r\n .map((pair) => {\r\n const dot = pair[0].indexOf('.');\r\n const aliasType = pair[0].substring(0, dot);\r\n const alias = pair[0].substring(dot + 1);\r\n return [aliasType.concat('.', pair[1]), alias];\r\n })\r\n .object()\r\n .value();\r\n}\r\n\r\nfunction convertValue(srcPropType, targetPropType, predValue) {\r\n const srcType = srcPropType.toLowerCase();\r\n const targetType = targetPropType.toLowerCase();\r\n // only convert some types\r\n if (srcType === 'number' && targetType === 'integer') {\r\n return Math.round(predValue);\r\n }\r\n return predValue;\r\n}\r\n\r\nconst conversionFunctionFactory = ({\r\n sourcePropertyType, targetPropName, targetProp,\r\n}) => {\r\n const conversionFunc = (mongoPredicate) => {\r\n const exprObj = _.values(mongoPredicate)[0];\r\n const predOperator = _.keys(exprObj)[0];\r\n const predValue = _.values(exprObj)[0];\r\n\r\n // All we need here is the type for src\r\n const convertedValue = convertValue(sourcePropertyType, targetProp.type, predValue);\r\n\r\n return {\r\n [targetPropName]: {\r\n [predOperator]: convertedValue,\r\n },\r\n };\r\n };\r\n return conversionFunc;\r\n};\r\n\r\nconst legacyConversionFunctionFactory = ({\r\n sourcePropertyType, targetPropName, targetProp,\r\n}) => {\r\n const conversionFunc = (legacyPredicate) => {\r\n const predValue = legacyPredicate.Values[0];\r\n\r\n const convertedValue = convertValue(sourcePropertyType, targetProp.type, predValue);\r\n\r\n /* eslint-disable no-param-reassign */\r\n legacyPredicate.SelectedColumn = targetPropName;\r\n legacyPredicate.Values = [convertedValue];\r\n /* eslint-enable no-param-reassign */\r\n };\r\n return conversionFunc;\r\n};\r\n\r\nfunction buildPropToConversions(isForLegacyFilter, conversionFuncFactory) {\r\n return _.chain(this.entitySchema.properties)\r\n .pairs()\r\n .map(([targetPropName, targetProp]) => {\r\n // Only one property conversion are supported for now.\r\n if (targetProp.alias && targetProp.alias.propertyConversion) {\r\n // `conversionSrc` must have `sourcePropertyName` and `sourcePropertyType`.\r\n // `sourcePropertyName` is long name with '' in b/w parentName and property name.\r\n // `sourcePropertyLegacyAlias` is the optional legacy alias of the source property.\r\n const { sourcePropertyType, sourcePropertyName, sourcePropertyLegacyAlias } =\r\n targetProp.alias.propertyConversion;\r\n\r\n if (!sourcePropertyName) {\r\n throw new Error('Must provide a sourcePropertyName');\r\n }\r\n if (!sourcePropertyType) {\r\n throw new Error('Must provide a sourcePropertyType');\r\n }\r\n\r\n const conversionFunc = conversionFuncFactory({\r\n sourcePropertyType, targetPropName, targetProp,\r\n });\r\n const finalSourcePropertyName =\r\n (isForLegacyFilter && sourcePropertyLegacyAlias) || sourcePropertyName;\r\n\r\n return [finalSourcePropertyName, conversionFunc];\r\n }\r\n return null;\r\n })\r\n .compact()\r\n .object()\r\n .value();\r\n}\r\n\r\n/**\r\n * FilterSchema is built upon entity schema.\r\n * It's used to get filterable properties, get alias using alias type & property key and vice versa.\r\n */\r\nexport class FilterSchema {\r\n /**\r\n * Constructs a new instance of FilterSchema over the passed in entitySchema.\r\n * @param {object} entitySchema - the original entity schema object\r\n */\r\n constructor(entitySchema) {\r\n this.entitySchema = entitySchema;\r\n this.entityName = this.entitySchema.name;\r\n\r\n this.filterProps = () => _.extend(\r\n getSelfFilterableProps(this.entitySchema),\r\n getDeepFilterableProps(this.entitySchema)\r\n );\r\n this.aliasToProp = _.once(buildAliasToProp.bind(this));\r\n this.propToAlias = _.once(buildPropToAlias.bind(this));\r\n this.propToConversions =\r\n _.once(buildPropToConversions.bind(this, false, conversionFunctionFactory));\r\n this.propToLegacyConversions =\r\n _.once(buildPropToConversions.bind(this, true, legacyConversionFunctionFactory));\r\n }\r\n\r\n /**\r\n * Get entity schema's name.\r\n * @return {string} - the entity schema's name.\r\n */\r\n getEntityName() {\r\n return this.entityName;\r\n }\r\n\r\n /**\r\n * Get keys of filterable properties.\r\n * @return {array} - array of filterable properties' keys.\r\n */\r\n getPropertyKeys() {\r\n return _.keys(this.filterProps());\r\n }\r\n\r\n /**\r\n * Get filterable property using property key with formatted attributes.\r\n * @param {string} propertyKey - the property's key\r\n * @return {object} - filterable property of given key, null if doesn't exist.\r\n */\r\n getFilterProperty(propertyKey) {\r\n const property = this.filterProps()[propertyKey];\r\n if (!property) {\r\n return null;\r\n }\r\n\r\n const type = property.type.toLowerCase();\r\n let operators;\r\n\r\n if (!_.isEmpty(property.operators)) {\r\n operators = property.operators; // eslint-disable-line prefer-destructuring\r\n } else if (_.isEmpty(property.enum)) {\r\n operators = operatorMapping[type];\r\n } else {\r\n operators = operatorMapping.enum;\r\n }\r\n\r\n const result = {\r\n type,\r\n operators,\r\n alias: property.alias,\r\n name: property.name,\r\n description: property.description,\r\n isPercentValue: property.isPercentValue,\r\n skipLocalization: property.skipLocalization,\r\n isDeletedProperty: property.isDeletedProperty,\r\n isInvalidProperty: property.isInvalidProperty,\r\n title: property.title,\r\n localized: property.localized,\r\n nullable: property.nullable,\r\n maxLength: property.maxLength,\r\n minimum: property.minimum,\r\n maximum: property.maximum,\r\n pattern: property.pattern,\r\n customEditor: property.customEditor,\r\n localize: property.localize,\r\n enumType: property.enumType,\r\n };\r\n\r\n if (property.enum) {\r\n result.enum = property.enum;\r\n }\r\n if (property.chooseType) {\r\n result.chooseType = property.chooseType;\r\n }\r\n if (property.customParameters) {\r\n result.customParameters = property.customParameters;\r\n }\r\n if (property.groupedItems) {\r\n result.groupedItems = property.groupedItems;\r\n }\r\n if (property.hasTime) {\r\n result.hasTime = property.hasTime;\r\n }\r\n\r\n if (property.operatorDisplayNameMap) {\r\n // for customize filter operator text display\r\n result.operatorDisplayNameMap = property.operatorDisplayNameMap;\r\n }\r\n if (property.addtionalParams && _.isObject(property.addtionalParams)) {\r\n // to avoid future trouble, for non-shared params, put it here\r\n _.extendOwn(result, property.addtionalParams);\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * Get alias using property key and alias type.\r\n * @param {string} propertyKey - property key.\r\n * @param {string} aliasType - alias type.\r\n * @return {string} - alias name of given key and alias type\r\n * return propertyKey if alias doesn't exist.\r\n */\r\n toAlias(propertyKey, aliasType) {\r\n let alias = null;\r\n if (propertyKey && aliasType) {\r\n alias = this.propToAlias()[aliasType.concat('.', propertyKey)];\r\n }\r\n return alias || propertyKey;\r\n }\r\n\r\n /**\r\n * Get original property key using alias and alias type.\r\n * @param {string} alias - alias string.\r\n * @param {string} aliasType - type of alias.\r\n * @return {string} - the property key of given alias and alias type\r\n * return alias if propertyKey doesn't exist.\r\n */\r\n fromAlias(alias, aliasType) {\r\n let propertyKey = null;\r\n if (alias && aliasType) {\r\n propertyKey = this.aliasToProp()[aliasType.concat('.', alias)];\r\n }\r\n return propertyKey || alias;\r\n }\r\n\r\n getApplicableConversions(propName) {\r\n const allConversions = this.propToConversions();\r\n return _.isUndefined(allConversions[propName]) ? _.identity : allConversions[propName];\r\n }\r\n\r\n getApplicableLegacyConversions(propName) {\r\n const allConversions = this.propToLegacyConversions();\r\n return _.isUndefined(allConversions[propName]) ? _.identity : allConversions[propName];\r\n }\r\n\r\n applyConversions(mongoPredicate) {\r\n const propName = _.keys(mongoPredicate)[0];\r\n return this.getApplicableConversions(propName)(mongoPredicate);\r\n }\r\n\r\n applyLegacyFilterConversions(legacyFilterExpressions) {\r\n _.each(legacyFilterExpressions, (legacyExpression) => {\r\n const propName = legacyExpression.SelectedColumn;\r\n this.getApplicableLegacyConversions(propName)(legacyExpression);\r\n });\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { cloneDeep } from '@bingads-webui-universal/primitive-utilities';\r\n\r\nconst primitiveTypes = [\r\n 'string',\r\n 'number',\r\n 'integer',\r\n 'boolean',\r\n 'datetime',\r\n];\r\n\r\n// const assumes that there is only one conversion\r\nconst conversionAlias = 'propertyConversion';\r\n\r\n// Map enum value like 'Eligible' For DeliveryStatus to \"Enum.DeliveryStatus'Eligible'\"\r\nexport function mapEnumValueForFilter(enumType, enumValue) {\r\n return `Enum.${enumType}'${enumValue}'`;\r\n}\r\n\r\nexport function buildNameToPropertyMapping(entitySchema, mapOnlyBaseProperty) {\r\n // TODO 893787 Provide generic support for customizable entity schema to filter property mapping\r\n if (mapOnlyBaseProperty) {\r\n return _.mapObject(entitySchema.properties, propObj => _.last(propObj.property.split('/')));\r\n }\r\n return _.mapObject(entitySchema.properties, propObj => propObj.property);\r\n}\r\n\r\nfunction restoreToEntitySchema(flattenedEntity) {\r\n const properties = _.reduce(flattenedEntity.fields, (memo, field) => {\r\n // eslint-disable-next-line no-param-reassign\r\n memo[field.name] = _.defaults({\r\n filterable: true,\r\n }, field);\r\n\r\n return memo;\r\n }, {});\r\n\r\n return _.defaults({ properties }, _.pick(flattenedEntity, 'name', 'type', 'operators'));\r\n}\r\n\r\n// Any function that deals with property conversion uses\r\n// the assumption there is only one propertyAlternation\r\n// In another word only one convesion is allowed\r\nconst hasConversionAlias = alias => _.has(alias, conversionAlias);\r\n\r\nfunction flattenSchemaToFields(entitySchema) {\r\n const fields = [];\r\n const nameStack = [];\r\n\r\n function buildFilters(schema) {\r\n _.each(schema.properties, (prop, name) => {\r\n const parentNameStack = [...nameStack];\r\n nameStack.push(name);\r\n const property = nameStack.join('/');\r\n const propertyName = nameStack.join('');\r\n if (prop.type === 'object' && prop.schema && (prop.filterable !== false)) {\r\n // do not use original schema to not break it\r\n const schemaToBuild = cloneDeep(prop.schema);\r\n\r\n // did not build options for ones not filterable within an object\r\n if (_.isArray(prop.filterable)) {\r\n schemaToBuild.properties = _.pick(schemaToBuild.properties, prop.filterable);\r\n\r\n // add filterable to those properties in case they don't have them\r\n _.each(schemaToBuild.properties, (subPro, key) => {\r\n subPro.filterable = true;// eslint-disable-line no-param-reassign\r\n\r\n if (_.has(prop.alias, key)) {\r\n subPro.alias = prop.alias[key];// eslint-disable-line no-param-reassign\r\n }\r\n });\r\n }\r\n buildFilters(schemaToBuild);\r\n } else if (_.contains(primitiveTypes, prop.type) && prop.filterable) {\r\n const baseSchema = {\r\n name: propertyName,\r\n type: prop.type,\r\n property,\r\n isPercentValue: prop.isPercentValue,\r\n skipLocalization: prop.skipLocalization,\r\n operators: prop.operators,\r\n nullable: prop.nullable,\r\n maxLength: prop.maxLength,\r\n originalProperty: _.last(nameStack),\r\n minimum: prop.minimum,\r\n maximum: prop.maximum,\r\n required: true,\r\n pattern: prop.pattern,\r\n localized: prop.localized,\r\n isDeletedProperty: prop.isDeletedProperty,\r\n isInvalidProperty: prop.isInvalidProperty,\r\n };\r\n\r\n if (prop.customColumn) {\r\n baseSchema.name = name;\r\n baseSchema.title = prop.title;\r\n baseSchema.isPercentValue = prop.format === 'Percentage';\r\n baseSchema.id = prop.id;\r\n baseSchema.format = prop.format;\r\n baseSchema.customColumn = true;\r\n }\r\n\r\n if (prop.type === 'datetime') {\r\n baseSchema.hasTime = prop.hasTime;\r\n }\r\n\r\n // Include the custom operators' localization map\r\n if (prop.operatorDisplayNameMap) {\r\n baseSchema.operatorDisplayNameMap = prop.operatorDisplayNameMap;\r\n }\r\n\r\n // Keep the legacy column name conversion support.\r\n if (prop.alias) {\r\n const aliasCopy = cloneDeep(prop.alias);\r\n _.extend(baseSchema, { alias: aliasCopy });\r\n if (hasConversionAlias(aliasCopy)) {\r\n // input schema must provide sourcePropertyType and one\r\n // of parameters, sourceProperty, an odata short name, or\r\n // sourcePropertyName, a full name with its parentName\r\n const { sourceProperty, sourcePropertyType, sourcePropertyName } =\r\n aliasCopy.propertyConversion;\r\n\r\n\r\n if (!sourcePropertyType) {\r\n throw new Error('Must provide a sourcePropertyType');\r\n }\r\n if (!sourcePropertyName) {\r\n if (!sourceProperty) {\r\n throw new Error('Must provide a sourcePropertyName or a sourceProperty');\r\n }\r\n\r\n const aliasNameStack = [...parentNameStack, sourceProperty];\r\n const joinedSourceName = aliasNameStack.join('');\r\n\r\n baseSchema.alias.propertyConversion.sourcePropertyName = joinedSourceName;\r\n }\r\n }\r\n }\r\n\r\n // update settings for enum type\r\n if (!_.isEmpty(prop.enum)) {\r\n baseSchema.enumValueMap = {};\r\n _.extendOwn(baseSchema, { enum: [] }, _.pick(prop, 'chooseType', 'enumType'));\r\n\r\n const enumType = baseSchema.enumType ? baseSchema.enumType : baseSchema.name;\r\n\r\n // update enum value (for odata converting) & localization\r\n _.each(prop.enum, (enumValue) => {\r\n const mappedEnumValue = mapEnumValueForFilter(enumType, enumValue);\r\n\r\n baseSchema.enum.push(mappedEnumValue);\r\n baseSchema.enumValueMap[mappedEnumValue] = enumValue;\r\n });\r\n } else if (prop.type === 'boolean') {\r\n _.extendOwn(baseSchema, _.pick(prop, 'chooseType'));\r\n } else if (prop.type === 'string') {\r\n _.extendOwn(baseSchema, _.pick(prop, 'chooseType'));\r\n if (prop.customParameters) {\r\n _.extendOwn(baseSchema, _.pick(prop, 'customParameters'));\r\n }\r\n }\r\n\r\n fields.push(baseSchema);\r\n }\r\n nameStack.pop(name);\r\n });\r\n }\r\n\r\n buildFilters(entitySchema);\r\n\r\n return _.defaults({ fields }, _.pick(entitySchema, ['name', 'type']));\r\n}\r\n\r\nexport function flattenEntitySchema(entitySchema) {\r\n return restoreToEntitySchema(flattenSchemaToFields(entitySchema));\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__39__;","module.exports = __WEBPACK_EXTERNAL_MODULE__42__;","module.exports = __WEBPACK_EXTERNAL_MODULE__47__;","export { createProperty, createParameter, createType, createPrimitiveType, createCollectionType,\r\n compileProperties, compileParameters, createResolveType, ONEOF_TYPE_PREFIX } from './src/types-plugin-shared';\r\nexport { createNavigation, createCastNavigation, createWithKeyNavigation, createCallNavigation,\r\n createResourceIdentifier } from './src/resource-identifiers-shared';\r\n\r\n","import _ from 'underscore';\r\nimport { defineConstProperty } from '@bingads-webui/reflection';\r\nimport { Registry } from '@bingads-webui/registry';\r\n\r\nexport const ONEOF_TYPE_PREFIX = '@ONEOF';\r\nconst COLLECTION_TYPE_POSTFIX = '@COLL';\r\n\r\nfunction isOneOfType(typeName) {\r\n return typeName.indexOf(ONEOF_TYPE_PREFIX) === 0;\r\n}\r\n\r\nfunction hasPostfix(str, postfix) {\r\n return str.slice(-postfix.length) === postfix;\r\n}\r\n\r\nfunction removePostfix(str, postfix) {\r\n return str.slice(0, -postfix.length);\r\n}\r\n\r\nexport function createResolveType(oneOfTypes, types, OneOfType) {\r\n return function resolveType(name, namespace) {\r\n if (hasPostfix(name, COLLECTION_TYPE_POSTFIX)) {\r\n return resolveType(removePostfix(name, COLLECTION_TYPE_POSTFIX), namespace).collectionType;\r\n }\r\n\r\n if (isOneOfType(name)) {\r\n if (!oneOfTypes.has(name)) {\r\n const prefixLength = ONEOF_TYPE_PREFIX.length + 1;\r\n const typeNames = name.substr(prefixLength, name.length - prefixLength - 1).split(',');\r\n // eslint-disable-next-line no-use-before-define\r\n oneOfTypes.set(name, new OneOfType({ typeNames }));\r\n }\r\n\r\n return oneOfTypes.get(name);\r\n }\r\n\r\n return types.resolve(name, namespace);\r\n };\r\n}\r\n\r\n/**\r\n * @typedef {Object} ParameterInfo\r\n * @property {String} typeName - The name of the parameter's type\r\n *\r\n * @memberof CallableType#\r\n * @this CallableType\r\n * @param {Object.} parameters - The parameters to compile\r\n * @param {Object.Parameter} Parameter - The Parameter object\r\n * @return {Object.} A mapping for name to compiled Parameters\r\n */\r\nexport function compileParameters(parameters, Parameter = Object) {\r\n const { namespace } = this;\r\n\r\n return _.mapObject(parameters, ({ typeName }, name) =>\r\n new Parameter({ name, namespace, typeName }));\r\n}\r\n\r\n/**\r\n * @typedef {Object} PropertyInfo\r\n * @property {String} typeName - The name of the propertie's type\r\n *\r\n * @memberof ObjectType#\r\n * @this ObjectType\r\n * @param {Object.} properties - The properties to be compiled\r\n * @param {Object.Property} Property - The Property object\r\n * @return {Object.} a mapping for name to compiled Properties\r\n */\r\nexport function compileProperties(properties, Property = Object) {\r\n const { namespace } = this;\r\n\r\n return _.mapObject(properties, ({\r\n typeName,\r\n }, name) =>\r\n new Property({\r\n name,\r\n typeName,\r\n namespace,\r\n }));\r\n}\r\n\r\nexport function createType(types) {\r\n/**\r\n * @class Type\r\n * @property {String} name - The qualified name of the type\r\n * @property {String} namespace - The namespace of the type\r\n * @property {String} shortName - The short name of the type\r\n */\r\n// eslint-disable-next-line no-unused-vars\r\n return class Type {\r\n /**\r\n * Create and register a type\r\n * A side effect of Type creation is registering itself to the type registry\r\n * @param {Object} options - The constructor options\r\n * @param {String} options.name - The name of the type\r\n * @return {void}\r\n */\r\n constructor({\r\n name,\r\n }) {\r\n _.chain(this)\r\n .defineConstProperty('name', name)\r\n .defineConstProperty('namespace', Registry.getNamespace(name))\r\n .defineConstProperty('shortName', Registry.getShortName(name))\r\n .value();\r\n types.register(this);\r\n }\r\n };\r\n}\r\n\r\nexport function createPrimitiveType(Superclass = Object) {\r\n /**\r\n * @class PrimitiveType\r\n * @extends Type\r\n * @property {Class} jsType - The corresponding JavaScript type\r\n */\r\n return class PrimitiveType extends Superclass {\r\n /**\r\n * Create a PrimitiveType\r\n * @param {Object} options - The constructor options\r\n * @param {String} options.name - The name of the type\r\n * @param {Class} options.jsType - The JavaScript type of the primitive type\r\n * @return {void}\r\n */\r\n constructor({\r\n name,\r\n jsType,\r\n }) {\r\n super({ name });\r\n defineConstProperty(this, 'jsType', jsType);\r\n }\r\n };\r\n}\r\n\r\n\r\nexport function createProperty(resolveType) {\r\n /**\r\n * @class Property\r\n * @property {String} name - The name of the property\r\n * @property {String} typeName - The name of the property's type\r\n * @property {Type} type - The type of the property\r\n */\r\n return class Property {\r\n /**\r\n * Create a property\r\n * @param {Object} options - The constructor options\r\n * @param {String} options.name - The name of the property\r\n * @param {String} options.typeName - The name of the propertie's type\r\n * @param {String} options.namespace - The namespace of the propertie's type\r\n * @return {void}\r\n */\r\n constructor({\r\n name,\r\n typeName,\r\n namespace,\r\n }) {\r\n _.chain(this)\r\n .defineConstProperty('name', name)\r\n .defineConstProperty('typeName', typeName)\r\n .defineProducedProperty('type', () => resolveType(typeName, namespace))\r\n .value();\r\n }\r\n };\r\n}\r\n\r\nexport function createParameter(resolveType) {\r\n /**\r\n * @class Parameter\r\n * @property {String} name - The name of the parameter\r\n * @property {String} typeName - The name of the paramter's type\r\n * @property {type} type - The type of the parameter\r\n */\r\n return class Parameter {\r\n /**\r\n * Create a parameter\r\n * @param {Object} options - The constructor options\r\n * @param {String} options.name - The name of the parameter\r\n * @param {String} options.typeName - The name of the parameter's type\r\n * @param {String} options.namespace - The namespace of the parameter's type\r\n * @return {void}\r\n */\r\n constructor({\r\n name,\r\n typeName,\r\n namespace,\r\n }) {\r\n _.chain(this)\r\n .defineConstProperty('name', name)\r\n .defineConstProperty('typeName', typeName)\r\n .defineProducedProperty('type', () => resolveType(typeName, namespace))\r\n .value();\r\n }\r\n };\r\n}\r\n\r\nexport function createCollectionType(Superclass = Object, resolveType) {\r\n /**\r\n * @class CollectionType\r\n * @extends ObjectType\r\n * @property {String} elementTypeName - The name of the element type\r\n * @property {Type} elementType - The type of the elements\r\n */\r\n return class CollectionType extends Superclass {\r\n /**\r\n * Create a CollectionType\r\n * @param {Object} options - The constructor options\r\n * @param {Object.} options.properties - The property definition\r\n * @param {String} options.baseTypeName - The name of the base type\r\n * @param {String} options.elementTypeName - The name of the element type\r\n * @return {void}\r\n */\r\n constructor({\r\n properties,\r\n baseTypeName,\r\n elementTypeName,\r\n }) {\r\n super({\r\n name: CollectionType.collectionTypeName(elementTypeName),\r\n properties,\r\n baseTypeName,\r\n });\r\n _.chain(this)\r\n .defineConstProperty('elementTypeName', elementTypeName)\r\n .defineProducedProperty('elementType', () => resolveType(this.elementTypeName, this.namespace))\r\n .value();\r\n }\r\n\r\n /**\r\n * Get the CollectionType's name from it's element type name\r\n * @param {String} typeName - The name of the elementType\r\n * @return {String} The name of the CollectionType\r\n */\r\n static collectionTypeName(typeName) {\r\n return `${typeName}${COLLECTION_TYPE_POSTFIX}`;\r\n }\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport { defineConstProperty } from '@bingads-webui/reflection';\r\nimport * as urlUtil from '@bingads-webui/url-util';\r\n\r\nexport function createNavigation() {\r\n /**\r\n * @class Navigation\r\n * @property {ResourceIdentifier} source - The source accessor navigated from\r\n */\r\n return class Navigation {\r\n constructor({\r\n source,\r\n }) {\r\n defineConstProperty(this, 'source', source);\r\n }\r\n\r\n toJSON() {\r\n return [...this.source.toJSON(), this.toSelfJSON()];\r\n }\r\n\r\n toSelfJSON() {\r\n throw new Error('I\\'m abstract');\r\n }\r\n };\r\n}\r\n\r\nexport function createCastNavigation(Superclass = Object, url, edm) {\r\n /**\r\n * @class CastNavigation\r\n * @extends Navigation\r\n * @property {Type} type - The type casting to\r\n * @property {String} name - The type name used for casting\r\n */\r\n return class CastNavigation extends Superclass {\r\n constructor({\r\n source,\r\n type,\r\n name = type.name,\r\n }) {\r\n super({\r\n source,\r\n });\r\n\r\n _.chain(this)\r\n .defineConstProperty('type', type)\r\n .defineConstProperty('name', name)\r\n .value();\r\n\r\n defineConstProperty(this, 'path', url.join(source.path, name));\r\n }\r\n\r\n toSelfJSON() {\r\n return {\r\n type: 'function',\r\n name: CastNavigation.navigationName,\r\n parameters: [this.name],\r\n };\r\n }\r\n\r\n static get navigationName() {\r\n return '$cast';\r\n }\r\n\r\n static defineOn(TypeResID) {\r\n /**\r\n * $cast navigation method of the TypeResID\r\n * @memberof TypeResID#\r\n * @this TypeResID\r\n * @param {String} name - The name of the subclass\r\n * @returns {TypeResID} The ResourceIdentifier to access the subclass object\r\n */\r\n function navCastMethod(name) {\r\n const entityType = edm.types.resolve(name, this.type.namespace);\r\n const type = TypeResID.prototype.type instanceof edm.types.CollectionType ?\r\n entityType.collectionType :\r\n entityType;\r\n const navigation = new CastNavigation({ source: this, type: entityType, name });\r\n\r\n return new type.ResourceIdentifier({ navigation });\r\n }\r\n\r\n defineConstProperty(TypeResID.prototype, CastNavigation.navigationName, navCastMethod);\r\n }\r\n };\r\n}\r\n\r\nexport function createWithKeyNavigation(Superclass = Object) {\r\n /**\r\n * @class WithKeyNavigation\r\n * @extends Navigation\r\n * @property {String|Number} key - The key of the selected entity\r\n * @property {String|Number} ignoreKeyTypeInPath - By default false. If true, compose path following //\r\n */\r\n return class WithKeyNavigation extends Superclass {\r\n constructor({\r\n source,\r\n key,\r\n ignoreKeyTypeInPath,\r\n }) {\r\n super({\r\n source,\r\n });\r\n\r\n defineConstProperty(this, 'key', key);\r\n defineConstProperty(this, 'path', (() => {\r\n // In case people pass a decimal string for a integer key\r\n // We cannot use parseInt directly, it would get a wrong number if the\r\n // key is beyond Number.MAX_SAFE_INTEGER\r\n if (_.isString(key)) {\r\n if (ignoreKeyTypeInPath) {\r\n return urlUtil.join(source.path, key);\r\n }\r\n const keyType = _.chain(source)\r\n .result('type')\r\n .result('elementType')\r\n .result('keyProperty')\r\n .result('typeName')\r\n .value();\r\n\r\n if (keyType === 'integer') {\r\n if (key.match(/^[+-]?(0|[1-9][0-9]*)$/)) {\r\n return `${source.path}(${key})`;\r\n }\r\n }\r\n if (keyType === 'string') {\r\n return `${source.path}('${key}')`;\r\n }\r\n }\r\n\r\n return `${source.path}(${JSON.stringify(key)})`;\r\n })());\r\n }\r\n\r\n toSelfJSON() {\r\n return {\r\n type: 'function',\r\n name: WithKeyNavigation.navigationName,\r\n parameters: [this.key],\r\n };\r\n }\r\n\r\n static get navigationName() {\r\n return '$withKey';\r\n }\r\n\r\n static defineOn(TypeResID) {\r\n /**\r\n * $withKey navigation method of the TypeResID\r\n * @memberof TypeResID#\r\n * @this TypeResID\r\n * @param {String} key - The key of the element\r\n * @param {Boolean} ignoreKeyTypeInPath - Decide how to add key to path\r\n * @returns {ResourceIdentifier}\r\n * The ResourceIdentifier to access the element with the given key\r\n */\r\n function navWithKeyMethod(key, ignoreKeyTypeInPath = false) {\r\n const navigation = new WithKeyNavigation({ source: this, key, ignoreKeyTypeInPath });\r\n\r\n return new this.type.elementType.ResourceIdentifier({ navigation });\r\n }\r\n\r\n defineConstProperty(\r\n TypeResID.prototype,\r\n WithKeyNavigation.navigationName,\r\n navWithKeyMethod\r\n );\r\n }\r\n };\r\n}\r\n\r\nexport function createCallNavigation(Superclass = Object, edm) {\r\n/**\r\n * @class CallNavigation\r\n * @extends Navigation\r\n * @property {Object} parameters - The parameters for the function call\r\n */\r\n return class CallNavigation extends Superclass {\r\n constructor({\r\n source,\r\n parameters = {},\r\n }) {\r\n super({\r\n source,\r\n });\r\n defineConstProperty(this, 'parameters', parameters);\r\n\r\n const path = source.type instanceof edm.types.ActionType ?\r\n source.path : `${source.path}(${_.map(parameters, (value, name) => `${name}=${value}`).join(',')})`;\r\n\r\n defineConstProperty(this, 'path', path);\r\n }\r\n\r\n toSelfJSON() {\r\n return {\r\n type: 'function',\r\n name: CallNavigation.navigationName,\r\n // for callable, parameters are named\r\n parameters: [this.parameters],\r\n };\r\n }\r\n\r\n static get navigationName() {\r\n return '$call';\r\n }\r\n\r\n static defineOn(TypeResID) {\r\n /**\r\n * $call navigation method of the TypeResID\r\n * @memberof TypeResID#\r\n * @this TypeResID\r\n * @param {object} parameters - The parameters to call the callable\r\n * @return {ResourceIdentifier}\r\n * The ResourceIdentifier accessing the return value of the callable\r\n */\r\n function navCallMethod(parameters) {\r\n const navigation = new CallNavigation({ source: this, parameters });\r\n\r\n return new this.type.returnType.ResourceIdentifier({ navigation });\r\n }\r\n\r\n defineConstProperty(TypeResID.prototype, CallNavigation.navigationName, navCallMethod);\r\n }\r\n };\r\n}\r\n\r\n\r\nexport function createResourceIdentifier() {\r\n/**\r\n * @class ResourceIdentifier\r\n * @property {Navigation} navigation\r\n * - The navigation back tracking the parent ResourceIdentifier\r\n */\r\n return class ResourceIdentifier {\r\n /**\r\n * Create a ResourceIdentifier\r\n * @param {Object} [options] - The constructor options\r\n * @param {Navigation} [options.navigation]\r\n * - The navigation back tracking the parent ResourceIdentifier\r\n * @return {Void} Nothing to return\r\n */\r\n constructor({\r\n navigation,\r\n } = {}) {\r\n if (navigation) {\r\n defineConstProperty(this, 'navigation', navigation);\r\n defineConstProperty(this, 'path', navigation.path);\r\n } else {\r\n defineConstProperty(this, 'path', '');\r\n }\r\n }\r\n\r\n toJSON() {\r\n if (this.navigation) {\r\n return this.navigation.toJSON();\r\n }\r\n\r\n return [];\r\n }\r\n\r\n\r\n identifyEntitySet(json) {\r\n // eslint-disable-next-line\r\n let entitySet = this;\r\n\r\n /* eslint guard-for-in: 0 */\r\n /* eslint no-restricted-syntax: 0 */\r\n for (const i in json) {\r\n const item = json[i];\r\n\r\n if (item.type === 'property') {\r\n entitySet = entitySet[item.name];\r\n } else if (item.type === 'function') {\r\n entitySet = entitySet[item.name](...item.parameters);\r\n }\r\n\r\n if (!entitySet) {\r\n return null;\r\n }\r\n }\r\n\r\n return entitySet;\r\n }\r\n };\r\n}\r\n\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__5__;","export { ConsoleListener } from './src/index';\r\n","import { include } from 'underscore.string';\r\nimport { Listener } from '@bingads-webui/listener';\r\n\r\n/**\r\n * Console listener class\r\n */\r\nexport class ConsoleListener extends Listener {\r\n constructor(options = {}) {\r\n super(options);\r\n\r\n this.formatters = options.formatters || [];\r\n this.filters = options.filters || [];\r\n }\r\n\r\n init() {\r\n this.initialized = true;\r\n }\r\n\r\n /* eslint-disable no-console */\r\n write(logMessage) {\r\n if (!this.initialized || this.filterLogs(logMessage)) {\r\n return;\r\n }\r\n\r\n const formattedMsg = this.formatLogs(logMessage);\r\n\r\n const category = logMessage.logCategory || '';\r\n if (include(category.toLowerCase(), 'error')) {\r\n console.error(formattedMsg);\r\n } else {\r\n console.log(formattedMsg);\r\n }\r\n\r\n // TODO: use console.timeStamp for activity perf marker\r\n }\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__13__;","export { ClientCenterCustomerService } from './src/index';\r\n","import $ from 'jquery';\r\nimport Promise from 'bluebird';\r\n\r\nconst defaultAjaxOptions = {\r\n xhrFields: {\r\n withCredentials: true,\r\n },\r\n headers: {\r\n 'X-Requested-With': 'XMLHttpRequest',\r\n },\r\n};\r\n\r\n/**\r\n * Client Center Customer Service relevant for Customer Related Operations like fetch and manage\r\n * @param {String} ccBaseUrl - represents base url for client center site\r\n * @param {Object} ccJsData - JsData object for caching response\r\n * @param {function} getUserPreferences() - asynchronous Ajax funtion to get a user's preferences\r\n * @param {function} setUserPreferences() - asynchronous Ajax funtion to set a user's preferences\r\n * @param {function} getCustomers() - asynchronous Ajax funtion to get Customers under a Person\r\n * @param {function} getRecentAccesssEntities() - asynchronous Ajax funtion to get recently accessed\r\n * entities under a customer\r\n * @param {function} getCustomerHierarchy() - asynchronous Ajax funtion to get linked\r\n * accounts and customers for a given customer id\r\n * return Promise for the corresponding API response\r\n * @param {function} getAccount() - asynchronous Ajax funtion to get Account\r\n */\r\nexport class ClientCenterCustomerService {\r\n constructor({\r\n ccBaseUrl,\r\n ccJsData,\r\n }) {\r\n this.baseCustomerUrl = ccBaseUrl;\r\n this.ccJsData = ccJsData;\r\n }\r\n\r\n getUserPreferences({ uid, id }) {\r\n if (this.ccJsData) {\r\n return this.ccJsData.UserPreference.findAll({ uid, id });\r\n }\r\n\r\n const url = this.baseCustomerUrl.concat('/Api/Preference/UserPreference');\r\n\r\n return Promise.resolve($.ajax({\r\n url,\r\n data: {\r\n uid,\r\n id,\r\n },\r\n ...defaultAjaxOptions,\r\n }));\r\n }\r\n\r\n setUserPreferences({ data, uid, id }) {\r\n const url = this.baseCustomerUrl.concat('/Api/Preference/UserPreference');\r\n\r\n return new Promise((resolve, reject) => {\r\n $.ajax({\r\n url,\r\n data: {\r\n data,\r\n uid,\r\n id,\r\n },\r\n ...defaultAjaxOptions,\r\n type: 'POST',\r\n success: response => resolve(response),\r\n error: (xhr, status) => reject(status),\r\n });\r\n });\r\n }\r\n\r\n // ToDO: Task 1460962: Add Test Case for the ClientCenterCustomerService Shared Component\r\n getCustomers() {\r\n const getCustomersListUrl = this.baseCustomerUrl.concat('/Customers/GetCustomers');\r\n\r\n // $.getJSON throws parse error for Cross Domain Requests. using $.ajax with xhrFields\r\n // checks for authorization before making the call and allows cross domain requests\r\n return Promise.resolve($.ajax({\r\n url: getCustomersListUrl,\r\n data: {\r\n rurl: window.location.href,\r\n },\r\n ...defaultAjaxOptions,\r\n }));\r\n }\r\n\r\n getRecentAccesssEntities({ cid, uid, limit = null }) {\r\n const getRecentAccesssEntitiesUrl = this.baseCustomerUrl.concat('/Customers/RecentAccessedEntities');\r\n\r\n return Promise.resolve($.ajax({\r\n url: getRecentAccesssEntitiesUrl,\r\n data: {\r\n cid,\r\n uid,\r\n limit,\r\n rurl: window.location.href,\r\n },\r\n ...defaultAjaxOptions,\r\n }));\r\n }\r\n\r\n getCustomerHierarchy({\r\n cid,\r\n uid,\r\n searchTerm = null,\r\n start = null,\r\n limit = null,\r\n returnOnlyDirectlyLinkedEntities = true,\r\n }) {\r\n const options = {\r\n cid,\r\n uid,\r\n targetCid: cid,\r\n searchTerm,\r\n start,\r\n limit,\r\n returnOnlyDirectlyLinkedEntities,\r\n rurl: window.location.href,\r\n };\r\n\r\n if (this.ccJsData) {\r\n return this.ccJsData.CustomerHierarchy.find(cid, {\r\n params: options,\r\n bypassCache: true,\r\n });\r\n }\r\n\r\n const getCustomerHierarchyUrl = this.baseCustomerUrl.concat('/Customers/SearchCustomerHierarchy');\r\n\r\n return Promise.resolve($.ajax({\r\n url: getCustomerHierarchyUrl,\r\n data: options,\r\n ...defaultAjaxOptions,\r\n }));\r\n }\r\n\r\n getAncestorHierarchyPath({\r\n cid,\r\n uid,\r\n entityId,\r\n isCustomer,\r\n }) {\r\n const options = {\r\n cid,\r\n uid,\r\n targetCid: cid,\r\n entityId,\r\n isCustomer,\r\n };\r\n\r\n if (this.ccJsData) {\r\n return this.ccJsData.AncestorHierarchyPath.find(`${entityId}_${cid}`, {\r\n params: options,\r\n bypassCache: true,\r\n });\r\n }\r\n\r\n const getAncestorHierarchyPathUrl = this.baseCustomerUrl.concat('/Customers/AncestorHierarchyPath');\r\n\r\n return Promise.resolve($.ajax({\r\n url: getAncestorHierarchyPathUrl,\r\n data: options,\r\n ...defaultAjaxOptions,\r\n }));\r\n }\r\n\r\n getAccount({ uid, id, cid }) {\r\n const url = this.baseCustomerUrl.concat('/ApI/Account');\r\n\r\n return Promise.resolve($.ajax({\r\n url,\r\n data: {\r\n uid,\r\n id,\r\n cid,\r\n },\r\n ...defaultAjaxOptions,\r\n }));\r\n }\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__6__;","module.exports = __WEBPACK_EXTERNAL_MODULE__43__;","export { buildLegacyI18n } from './src/build-legacy-i18n';\r\nexport { mergeLegacyI18ns } from './src/merge-legacy-i18n';\r\n","import _ from 'underscore';\r\nimport { I18nModel } from '@bingads-webui-universal/i18n-model';\r\nimport { toIANATimeZone, fromLegacyTimeZone } from '@bingads-webui-universal/time-zone-converter';\r\nimport { getFailFastSetting } from './fail-fast-setting';\r\n\r\nconst buildStringsMap = legacyKeys => _.extend(\r\n {},\r\n ...(_.flatten([legacyKeys]))\r\n);\r\n\r\n\r\nconst buildLegacyStrings =\r\n (i18n, allStrings) => _.mapObject(buildStringsMap(allStrings), str => i18n.getString(str));\r\n\r\n/**\r\n * buildLegacyI18n\r\n * @param {object} i18n translation object\r\n * @param {*} legacyKeys array of key to _TL_ strings\r\n * @param {*} param2 extra options\r\n * @returns {object} built legacy i18n\r\n */\r\nexport const buildLegacyI18n = (i18n, legacyKeys, {\r\n timeZone,\r\n currency,\r\n} = {}) =>\r\n // rely on global locale\r\n new I18nModel({\r\n timeZone: _.isNumber(timeZone) ?\r\n toIANATimeZone(fromLegacyTimeZone(timeZone)) :\r\n undefined,\r\n currency,\r\n loadTranslationData: () => buildLegacyStrings(i18n, legacyKeys),\r\n loadCLDRData(locale) { return locale; },\r\n failFast: getFailFastSetting(),\r\n });\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__4__;","module.exports = __WEBPACK_EXTERNAL_MODULE__5__;","const prodEnvs = [\r\n 'ads.microsoft.com',\r\n 'ui.ads.microsoft.com',\r\n 'ui.bingads.microsoft.com',\r\n 'bingads.microsoft.com',\r\n];\r\n\r\nexport const getFailFastSetting = () => {\r\n const hostname = window && window.location && window.location.hostname;\r\n const href = (window && window.location && window.location.href) || '';\r\n const isBypassFailFasti18nEnabled = href.includes('isBypassFailFasti18nEnabled=true');\r\n\r\n if (isBypassFailFasti18nEnabled) {\r\n return 'SAFE';\r\n }\r\n\r\n if (hostname && prodEnvs.indexOf(hostname.toLowerCase()) > -1) {\r\n return 'SAFE';\r\n }\r\n return true;\r\n};\r\n","import _ from 'underscore';\r\nimport { I18nModel } from '@bingads-webui-universal/i18n-model';\r\nimport { getFailFastSetting } from './fail-fast-setting';\r\n\r\nconst mergeLegacyStrings = legacyI18ns => _.reduce(legacyI18ns, (legacyStrings, i18n) => ({\r\n ...legacyStrings,\r\n ...i18n.getData(),\r\n}), {});\r\n\r\nexport const mergeLegacyI18ns = (legacyI18ns) => {\r\n // All i18n passed should logically use the same timeZone and currency\r\n const { timeZone, currency } = legacyI18ns[0];\r\n return new I18nModel({\r\n timeZone,\r\n currency,\r\n loadTranslationData: () => mergeLegacyStrings(legacyI18ns),\r\n loadCLDRData(locale) { return locale; },\r\n failFast: getFailFastSetting(),\r\n });\r\n};\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__41__;","module.exports = __WEBPACK_EXTERNAL_MODULE__60__;","export { odataPlugin } from './src/index';\r\n","/**\r\n * The OData plugin module\r\n * @module component/edm-odata/index\r\n */\r\nimport _ from 'underscore';\r\nimport {\r\n hasOwnProperty,\r\n defineConstProperty,\r\n defineProducedPropertyOnClass,\r\n} from '@bingads-webui/reflection';\r\n\r\nimport { odata } from '@bingads-webui/http-util';\r\nimport * as url from '@bingads-webui/url-util';\r\nimport { resIdsPlugin } from '@bingads-webui/edm-resource-identifiers';\r\nimport { odataCachePlugin } from './cache';\r\n\r\n// support a mongoDB like orderby object for now: { age : -1, name: 1 }\r\n// for backward compatibility, support array format: [['age', 'desc'], ['name', 'asc]]\r\nfunction parseOrderBy(orderby) {\r\n function lowerCaseOrderValue(value) {\r\n return _.map(value, (v, index) => (index === 1 ? v.toLowerCase() : v));\r\n }\r\n\r\n if (_.isEmpty(orderby)) {\r\n return {};\r\n }\r\n\r\n let $orderby;\r\n if (_.isArray(orderby)) {\r\n $orderby = _.map(orderby, value => lowerCaseOrderValue(value).join(' ')).join(',');\r\n } else {\r\n $orderby = _.map(orderby, (value, key) => `${key} ${value > 0 ? 'asc' : 'desc'}`).join(',');\r\n }\r\n\r\n return {\r\n $orderby,\r\n };\r\n}\r\n\r\n// TODO: [yaoyao] add support to parse filter object\r\nfunction parseFilter(filter) {\r\n if (_.isEmpty(filter) || _.isEmpty(filter.where)) {\r\n return {};\r\n }\r\n\r\n return {\r\n $filter: filter.where,\r\n };\r\n}\r\n\r\nfunction parseTop(top) {\r\n if (!top) {\r\n return {};\r\n }\r\n\r\n return {\r\n $top: top,\r\n };\r\n}\r\n\r\nfunction parseSkip(skip) {\r\n if (!skip) {\r\n return {};\r\n }\r\n\r\n return {\r\n $skip: skip,\r\n };\r\n}\r\n\r\nfunction parseCount(count) {\r\n if (count === undefined) {\r\n return {};\r\n }\r\n\r\n return {\r\n $count: count,\r\n };\r\n}\r\n\r\nfunction parseSelect(select, resource) {\r\n if (!select) return {};\r\n const parsed = {};\r\n const elementType = resource.type.elementType ? resource.type.elementType : resource.type;\r\n const { navigationPropertyNames } = elementType;\r\n const $select = select.filter(item => !_.contains(navigationPropertyNames, item)).join(',');\r\n const $expand = select.filter(item => _.contains(navigationPropertyNames, item)).join(',');\r\n\r\n if ($select.length) {\r\n parsed.$select = $select;\r\n }\r\n\r\n if ($expand.length) {\r\n parsed.$expand = $expand;\r\n }\r\n\r\n return parsed;\r\n}\r\n\r\nfunction parseSearch(search) {\r\n if (!search) {\r\n return {};\r\n }\r\n return { $search: search };\r\n}\r\n\r\n// TODO: make all the legacy findall call related logic to a separate edm plugin package\r\n// backward compatibility for legacy grid jsdata resource finall call\r\nconst legacyJsDataResultProcess = (response) => {\r\n const result = response.value.slice();\r\n Object.defineProperty(result, 'totalCount', {\r\n value: response['@odata.count'],\r\n enumerable: false,\r\n });\r\n Object.defineProperty(result, 'raw', {\r\n value: response,\r\n enumerable: false,\r\n });\r\n return result;\r\n};\r\n\r\n/**\r\n * @param {EDM} edm - The EDM object to apply the plugin to\r\n * @param {String} rootURL - The root URL of the OData service\r\n * @param {object} dependants - The entity dependency relations\r\n * @param {object} processOptions - The options to process response and error\r\n * @return {Void} nothing to return\r\n */\r\nexport function odataPlugin(edm, rootURL, dependants = {}, {\r\n processResponse = _.identity,\r\n processError = _.identity,\r\n processOptions = _.identity,\r\n} = {}) {\r\n const odataRootURL = rootURL.replace(/\\/*$/, '');\r\n if (hasOwnProperty(edm, 'odata')) {\r\n return;\r\n }\r\n\r\n const wrapODataMethod = (method, resource) =>\r\n function wrappedODataMethod(odataURL, options) {\r\n return method(odataURL, processOptions(options, resource))\r\n .then(response => processResponse(response, resource))\r\n .catch((error) => {\r\n throw processError(error, resource);\r\n });\r\n };\r\n\r\n odataCachePlugin(edm, dependants, {\r\n fetchEntity: (resource, {\r\n select,\r\n }) => wrapODataMethod(odata.get, resource)(resource.odataURL, {\r\n data: {\r\n ...parseSelect(select, resource),\r\n },\r\n }),\r\n patchEntity: (resource, {\r\n select,\r\n }, update) => wrapODataMethod(odata.patch, resource)(resource.odataURL, {\r\n data: update,\r\n urlParameters: {\r\n ...parseSelect(select, resource),\r\n },\r\n }),\r\n createEntity: (collectionResource, {\r\n select,\r\n }, data) => wrapODataMethod(odata.post, collectionResource)(collectionResource.odataURL, {\r\n data,\r\n urlParameters: {\r\n ...parseSelect(select, collectionResource),\r\n },\r\n }),\r\n deleteEntity: resource => wrapODataMethod(odata.delete, resource)(resource.odataURL),\r\n fetchCollection: (collectionResource, {\r\n top,\r\n skip,\r\n count,\r\n orderby,\r\n filter,\r\n select,\r\n search,\r\n ...others\r\n }) => wrapODataMethod(odata.get, collectionResource)(collectionResource.odataURL, {\r\n data: {\r\n $top: top,\r\n $skip: skip,\r\n $count: count,\r\n ...parseOrderBy(orderby),\r\n ...parseFilter(filter),\r\n ...parseSelect(select, collectionResource),\r\n ...parseSearch(search),\r\n ...others,\r\n },\r\n }),\r\n action: (collectionResource, {\r\n top,\r\n skip,\r\n count,\r\n orderby,\r\n filter,\r\n select,\r\n payload,\r\n }) => wrapODataMethod(odata.post, collectionResource)(collectionResource.odataURL, {\r\n data: payload,\r\n urlParameters: {\r\n ...parseTop(top),\r\n ...parseSkip(skip),\r\n ...parseCount(count),\r\n ...parseOrderBy(orderby),\r\n ...parseFilter(filter),\r\n ...parseSelect(select, collectionResource),\r\n },\r\n }),\r\n });\r\n\r\n const {\r\n getEntity,\r\n postEntity,\r\n destroyEntityAsPromise,\r\n entityAction,\r\n getCollection,\r\n collectionAction,\r\n } = edm['odata.cache'];\r\n\r\n resIdsPlugin(edm);\r\n\r\n /**\r\n * @name edm\r\n * @property {Object} odata - A dummy indicator for odataPlugin being applied\r\n */\r\n defineConstProperty(edm, 'odata', (() => {\r\n const {\r\n ResourceIdentifier,\r\n CollectionResourceIdentifier,\r\n Navigation,\r\n } = edm.resourceIdentifiers;\r\n\r\n defineProducedPropertyOnClass(\r\n ResourceIdentifier, 'odataURL',\r\n /**\r\n * @memberof ResourceIdentifier#\r\n * @this ResourceIdentifier\r\n * @returns {String} The URL to access the OData resource\r\n */\r\n function () { // eslint-disable-line func-names\r\n return url.join(odataRootURL, this.path);\r\n }\r\n );\r\n\r\n // edm.currentCustomer.Accounts is an instance of ResourceIdentifier\r\n // usage:\r\n // edm.currentCustomer.Accounts.get({ top: 20, skip: 10 })\r\n // TODO:\r\n // * type enrichment, for example, 'Active' => Enum.CampaignStatus'Active'\r\n // * type check\r\n // * cache and onChange event on response\r\n CollectionResourceIdentifier.prototype.get = function get({\r\n top = 20,\r\n skip = 0,\r\n count = true,\r\n // when null means default response\r\n // most likely it would includes all non navigation property and exclude all navigation ones\r\n select = null,\r\n // we should avoid random query params like SegmentationTypes, startDate, endDate, etc\r\n filter = null,\r\n orderby = null,\r\n search = null,\r\n ...others\r\n } = {}, hardResetData, bypassCache) {\r\n return getCollection(this, {\r\n top,\r\n skip,\r\n count,\r\n select,\r\n filter,\r\n orderby,\r\n search,\r\n ...others,\r\n }, hardResetData, bypassCache);\r\n };\r\n\r\n ResourceIdentifier.prototype.get = function get({\r\n // when null means default response\r\n // most likely it would includes all non navigation property and exclude all navigation ones\r\n select = null,\r\n } = {}, hardResetData, bypassCache) {\r\n return getEntity(this, {\r\n select,\r\n }, hardResetData, bypassCache);\r\n };\r\n\r\n ResourceIdentifier.prototype.patch = function patch(data, {\r\n select = null,\r\n } = {}, bypassCache) {\r\n const cacheItem = getEntity(this, {\r\n select,\r\n }, bypassCache);\r\n return cacheItem.update(data);\r\n };\r\n\r\n // NOTE: likezh: DELETE operation returns a Promise, not an observable.\r\n // See comments in cache.js.\r\n ResourceIdentifier.prototype.destroyAsPromise = function destroy() {\r\n return destroyEntityAsPromise(this);\r\n };\r\n\r\n ResourceIdentifier.prototype.$_callableMakeCall = function $callableMakeCall({\r\n top,\r\n skip,\r\n count,\r\n orderby = null,\r\n filter = null,\r\n select = null,\r\n payload,\r\n hardResetData,\r\n bypassCache,\r\n // custom query options (only for FunctionType, for ActionType use payload for custom parameters)\r\n startDate,\r\n endDate,\r\n } = {}) {\r\n if (this.type instanceof edm.types.CollectionType) {\r\n if (this.navigation.source.type instanceof edm.types.ActionType) {\r\n return collectionAction(this, {\r\n top: top || 20,\r\n skip: skip || 0,\r\n count: count === undefined ? true : count,\r\n orderby,\r\n filter,\r\n select,\r\n payload,\r\n }, bypassCache);\r\n } else if (this.navigation.source.type instanceof edm.types.FunctionType) {\r\n return getCollection(this, {\r\n top: top || 20,\r\n skip: skip || 0,\r\n count: count === undefined ? true : count,\r\n orderby,\r\n filter,\r\n select,\r\n startDate,\r\n endDate,\r\n }, hardResetData, bypassCache);\r\n }\r\n }\r\n\r\n // In theory, we should not have param like top, count, filter and orderby\r\n // for none collectionType. But the Odata metadata have some incorrect information\r\n // that return type of collection is marked as none collection\r\n if (this.navigation.source.type instanceof edm.types.ActionType) {\r\n return entityAction(this, {\r\n top,\r\n skip,\r\n count,\r\n orderby,\r\n filter,\r\n select,\r\n payload,\r\n }, bypassCache);\r\n }\r\n\r\n return getEntity(this, {\r\n top,\r\n skip,\r\n count,\r\n orderby,\r\n filter,\r\n select,\r\n }, hardResetData, bypassCache);\r\n };\r\n\r\n ResourceIdentifier.prototype.$makeCall = function $makeCall({\r\n query,\r\n functionParams,\r\n payload,\r\n hardResetData,\r\n bypassCache,\r\n } = {}) {\r\n return this.$call(functionParams).$_callableMakeCall({\r\n ...query,\r\n payload,\r\n hardResetData,\r\n bypassCache,\r\n });\r\n };\r\n\r\n // align with jsdata, to ensure backward compatibility with jsdata data source.\r\n ResourceIdentifier.prototype.findAll = function findAll(query = {}) {\r\n if (this.type instanceof edm.types.ActionType) {\r\n return this.$makeCall({\r\n query: {\r\n top: query.limit || 20,\r\n skip: query.offset || 0,\r\n count: true,\r\n orderby: query.orderBy,\r\n filter: query.filter,\r\n select: query.select,\r\n },\r\n payload: query.query,\r\n }).toPromise().then(legacyJsDataResultProcess);\r\n }\r\n throw new Error('findall call for this type is not suported');\r\n };\r\n\r\n defineProducedPropertyOnClass(CollectionResourceIdentifier, 'idAttribute', function idAttribute() {\r\n return this.type.elementType.key;\r\n });\r\n\r\n CollectionResourceIdentifier.prototype.post = function post(data, {\r\n select = null,\r\n } = {}) {\r\n return postEntity(this, {\r\n select,\r\n }, data);\r\n };\r\n\r\n // usage:\r\n // edm.currentCustomer.Accounts.findAll({ limit: 20 }), align with jsdata\r\n // TODO:\r\n // * refine available options, jsdata aligned arguments\r\n CollectionResourceIdentifier.prototype.findAll = function findAll(query = {}) {\r\n return this.get({ top: query.limit }).toPromise().then(legacyJsDataResultProcess);\r\n };\r\n\r\n // usage:\r\n // edm.currentCustomer.Accounts.update(123, { Name: 'another name' }), align with jsdata\r\n CollectionResourceIdentifier.prototype.update = function update(id, data) {\r\n return this.$withKey(id).patch(data).toPromise();\r\n };\r\n\r\n defineProducedPropertyOnClass(\r\n Navigation, 'odataURL',\r\n /**\r\n * @memberof Navigation#\r\n * @this Navigation\r\n * @returns {String} The URL to access the OData resource\r\n */\r\n function () { // eslint-disable-line func-names\r\n return url.join(odataRootURL, this.path);\r\n }\r\n );\r\n\r\n // put the plugin indicator\r\n return {\r\n odataRootURL,\r\n };\r\n })());\r\n}\r\n","import {\r\n defineConstProperty,\r\n} from '@bingads-webui/reflection';\r\nimport stringify from 'json-stable-stringify';\r\nimport _ from 'underscore';\r\nimport Promise from 'bluebird';\r\nimport { CollectionCacheItem, EntityCacheItem } from './server-call-cache-item';\r\nimport { ObservableCache } from './observable-cache';\r\nimport { CacheEvent } from './cache-event';\r\n\r\nexport function odataCachePlugin(edm, dependants, {\r\n fetchEntity,\r\n patchEntity,\r\n createEntity,\r\n deleteEntity,\r\n fetchCollection,\r\n action,\r\n}) {\r\n const entityDeps = dependants || {};\r\n\r\n defineConstProperty(edm, 'odata.cache', (() => {\r\n // TODO: when collection cache is ready, use the response to fill up entity cache\r\n const collectionCache = new ObservableCache();\r\n const cacheEvent = new CacheEvent();\r\n\r\n function getCollection(collectionResource, options, hardResetCacheData, bypassCache) {\r\n const typeName = collectionResource.type.elementType.name;\r\n const { path } = collectionResource;\r\n const stringifiedOptions = stringify(options);\r\n const cacheKeyPath = [typeName, path, stringifiedOptions];\r\n const item = collectionCache.get(cacheKeyPath);\r\n if (item && !bypassCache) {\r\n if (hardResetCacheData) {\r\n item.setData(hardResetCacheData);\r\n }\r\n return item;\r\n }\r\n const newItem = new CollectionCacheItem({\r\n fetch: () => fetchCollection(collectionResource, options),\r\n afterSubscribe: cache => collectionCache.observerAdded(cache, cacheKeyPath),\r\n afterUnsubscribe: cache => collectionCache.observerReduced(cache, cacheKeyPath),\r\n hardResetCacheData,\r\n });\r\n collectionCache.set(cacheKeyPath, newItem);\r\n return newItem;\r\n }\r\n\r\n function collectionAction(collectionResource, options, bypassCache) {\r\n const typeName = collectionResource.type.elementType.name;\r\n const { path } = collectionResource;\r\n const stringifiedOptions = stringify(options);\r\n const cacheKeyPath = [typeName, path, stringifiedOptions];\r\n const item = collectionCache.get(cacheKeyPath);\r\n if (item && !bypassCache) {\r\n return item;\r\n }\r\n const newItem = new CollectionCacheItem({\r\n fetch: () => action(collectionResource, options),\r\n afterSubscribe: cache => collectionCache.observerAdded(cache, cacheKeyPath),\r\n afterUnsubscribe: cache => collectionCache.observerReduced(cache, cacheKeyPath),\r\n });\r\n collectionCache.set(cacheKeyPath, newItem);\r\n return newItem;\r\n }\r\n\r\n const entityCache = new ObservableCache();\r\n\r\n function invalidateCollectionCache(typeName, skipEntityCallPaths) {\r\n collectionCache.invalidateObservedCache(typeName, skipEntityCallPaths);\r\n\r\n Object.keys(collectionCache.noObservers.entries).forEach((key) => {\r\n if (JSON.parse(key)[0] === typeName) {\r\n collectionCache.invalidateNoObserverCache(key);\r\n }\r\n });\r\n }\r\n\r\n function invalidateEntityCache(typeName, id, stringifiedOptions, skipEntityCallPaths) {\r\n const forAll = !id;\r\n\r\n if (entityCache.observedCache[typeName]) {\r\n if (forAll) {\r\n entityCache.invalidateObservedCache(typeName, skipEntityCallPaths);\r\n } else {\r\n entityCache.invalidateObservedCacheById(typeName, id, stringifiedOptions, skipEntityCallPaths);\r\n }\r\n }\r\n\r\n Object.keys(entityCache.noObservers.entries).forEach((key) => {\r\n const [type, parsedId, options] = JSON.parse(key);\r\n\r\n if (type === typeName\r\n && (forAll || (parsedId === id && options !== stringifiedOptions))) {\r\n entityCache.invalidateNoObserverCache(key);\r\n }\r\n });\r\n }\r\n\r\n function invalidate(typeName, id, stringifiedOptions, context, skipEntityCallPaths = null) {\r\n // eslint-disable-next-line no-param-reassign\r\n context[typeName] = true;\r\n invalidateCollectionCache(typeName, skipEntityCallPaths);\r\n invalidateEntityCache(typeName, id, stringifiedOptions, skipEntityCallPaths);\r\n\r\n _.each(entityDeps[typeName], (type) => {\r\n if (!context[type]) {\r\n // eslint-disable-next-line no-param-reassign\r\n context[type] = true;\r\n invalidate(type, null, '', context, skipEntityCallPaths);\r\n }\r\n });\r\n cacheEvent.notify('invalidate', typeName);\r\n }\r\n\r\n function invalidateTypeCache(typeName, id = null, stringifiedOptions = '', skipEntityCallPaths = null) {\r\n invalidate(typeName, id, stringifiedOptions, {}, skipEntityCallPaths);\r\n }\r\n\r\n function getEntity(resource, options, hardResetCacheData, bypassCache) {\r\n const typeName = resource.type.name;\r\n // entity odata function call will use the api, in this case we need to use path as hash key\r\n const idOrPath = resource.navigation.key || resource.path;\r\n const stringifiedOptions = stringify(options);\r\n const cacheKeyPath = [typeName, idOrPath, stringifiedOptions];\r\n const item = entityCache.get(cacheKeyPath);\r\n if (item && !bypassCache) {\r\n if (hardResetCacheData) {\r\n item.setData(hardResetCacheData);\r\n }\r\n return item;\r\n }\r\n const newItem = new EntityCacheItem({\r\n fetch: () => fetchEntity(resource, options),\r\n patch: update => patchEntity(resource, options, update)\r\n .tap(() => invalidateTypeCache(typeName, idOrPath, stringifiedOptions)),\r\n afterSubscribe: cache => entityCache.observerAdded(cache, cacheKeyPath),\r\n afterUnsubscribe: cache => entityCache.observerReduced(cache, cacheKeyPath),\r\n hardResetCacheData,\r\n });\r\n entityCache.set(cacheKeyPath, newItem);\r\n return newItem;\r\n }\r\n\r\n function entityAction(resource, options, bypassCache) {\r\n const typeName = resource.type.name;\r\n const { path } = resource.navigation;\r\n const stringifiedOptions = stringify(options);\r\n const cacheKeyPath = [typeName, path, stringifiedOptions];\r\n const item = entityCache.get(cacheKeyPath);\r\n if (item && !bypassCache) {\r\n return item;\r\n }\r\n const newItem = new EntityCacheItem({\r\n fetch: () => action(resource, options),\r\n afterSubscribe: cache => entityCache.observerAdded(cache, cacheKeyPath),\r\n afterUnsubscribe: cache => entityCache.observerReduced(cache, cacheKeyPath),\r\n });\r\n entityCache.set(cacheKeyPath, newItem);\r\n return newItem;\r\n }\r\n\r\n function postEntity(collectionResource, options, data) {\r\n const stringifiedOptions = stringify(options);\r\n const entityPromise = createEntity(collectionResource, options, data);\r\n const keyProperty = collectionResource.type.elementType.key;\r\n const typeName = collectionResource.type.elementType.name;\r\n const resourcePromise = entityPromise\r\n .then(entity => collectionResource.$withKey(entity[keyProperty]));\r\n let fetchFirstCalledAndPatchNotCalled = true;\r\n const newItem = new EntityCacheItem({\r\n fetch: () => {\r\n if (fetchFirstCalledAndPatchNotCalled) {\r\n fetchFirstCalledAndPatchNotCalled = false;\r\n return entityPromise;\r\n }\r\n return resourcePromise.then(resource => fetchEntity(resource, options));\r\n },\r\n patch: (update) => {\r\n fetchFirstCalledAndPatchNotCalled = false;\r\n return resourcePromise\r\n .tap(resource => invalidateTypeCache(\r\n typeName,\r\n resource.navigation.key,\r\n stringifiedOptions\r\n ))\r\n .then(resource => patchEntity(resource, options, update));\r\n },\r\n });\r\n resourcePromise.then((resource) => {\r\n const id = resource.navigation.key;\r\n const cacheKeyPath = [typeName, id, stringifiedOptions];\r\n\r\n newItem.afterSubscribe = cache => entityCache.observerAdded(cache, cacheKeyPath);\r\n newItem.afterUnsubscribe = cache => entityCache.observerReduced(cache, cacheKeyPath);\r\n entityCache.set(cacheKeyPath, newItem);\r\n invalidateTypeCache(typeName, id, stringifiedOptions);\r\n });\r\n return newItem;\r\n }\r\n\r\n function destroyEntityAsPromise(resource) {\r\n const typeName = resource.type.name;\r\n const id = resource.navigation.key;\r\n\r\n // NOTE: likezh: for delete, since the effect of deletion will be an entity being removed,\r\n // it is not useful to keep the call in cache. Hence we're directly returning a Promise here.\r\n return new Promise((resolve, reject) => {\r\n deleteEntity(resource)\r\n .then(() => {\r\n invalidateTypeCache(typeName, id, '');\r\n resolve();\r\n })\r\n .catch(err => reject(err));\r\n });\r\n }\r\n\r\n return {\r\n getEntity,\r\n postEntity,\r\n destroyEntityAsPromise,\r\n entityAction,\r\n getCollection,\r\n collectionAction,\r\n invalidateTypeCache,\r\n cacheEvent,\r\n };\r\n })());\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__75__;","import { noop } from 'underscore';\r\nimport { Observable } from '@bingads-webui-universal/observable';\r\n\r\n/**\r\n * make a server call and setup the cache item state\r\n * @param {Function} call function returns a Promise of data\r\n * @returns {Promise} a resolved promise\r\n */\r\nfunction makeCall(call) {\r\n this.state.status = 'PENDING';\r\n return call()\r\n .then((data) => {\r\n this.setData(data);\r\n\r\n return null;\r\n })\r\n .catch((err) => {\r\n this.observers.forEach((item) => {\r\n item.error(err);\r\n });\r\n this.state.status = 'ERROR';\r\n this.state.error = err;\r\n });\r\n}\r\n\r\nclass CacheItem extends Observable {\r\n constructor({\r\n fetch,\r\n afterSubscribe = noop,\r\n afterUnsubscribe = noop,\r\n hardResetCacheData,\r\n }) {\r\n super((observer) => {\r\n this.observers.add(observer);\r\n this.afterSubscribe(this);\r\n if (this.state.status === 'WAITING') {\r\n if (hardResetCacheData) {\r\n this.setData(hardResetCacheData);\r\n } else {\r\n this.invalidate();\r\n }\r\n } else if (this.state.status === 'READY') {\r\n observer.next(this.state.data);\r\n } else if (this.state.status === 'ERROR') {\r\n observer.error(this.state.error);\r\n }\r\n return () => {\r\n this.observers.delete(observer);\r\n this.afterUnsubscribe(this);\r\n };\r\n });\r\n this.fetch = fetch;\r\n // eslint-disable-next-line no-undef\r\n this.observers = new Set();\r\n this.afterSubscribe = afterSubscribe;\r\n this.afterUnsubscribe = afterUnsubscribe;\r\n this.state = {\r\n // WAITING - before any subscription\r\n // PENDING - has subscription, call made but not responded\r\n // READY - already has data\r\n // ERROR - already has error\r\n status: 'WAITING',\r\n data: null,\r\n error: null,\r\n };\r\n }\r\n\r\n setData(data) {\r\n this.observers.forEach((item) => {\r\n item.next(data);\r\n });\r\n this.state.status = 'READY';\r\n this.state.data = data;\r\n\r\n return null;\r\n }\r\n\r\n invalidate() {\r\n if (this.observers.size === 0) {\r\n this.state.status = 'WAITING';\r\n } else {\r\n makeCall.call(this, () => this.fetch());\r\n }\r\n }\r\n\r\n hasObservers() {\r\n return this.observers.size > 0;\r\n }\r\n}\r\n\r\nexport class CollectionCacheItem extends CacheItem {\r\n}\r\n\r\nclass PatchEntityCacheItem extends Observable {\r\n constructor() {\r\n super((observer) => {\r\n this.observers.add(observer);\r\n if (this.state.status === 'READY') {\r\n observer.next(this.state.data);\r\n } else if (this.state.status === 'ERROR') {\r\n observer.error(this.state.error);\r\n }\r\n return () => {\r\n this.observers.delete(observer);\r\n };\r\n });\r\n // eslint-disable-next-line no-undef\r\n this.observers = new Set();\r\n this.state = {\r\n // WAITING - before any subscription\r\n // READY - already has data\r\n // ERROR - already has error\r\n status: 'WAITING',\r\n data: null,\r\n error: null,\r\n };\r\n }\r\n\r\n next(data) {\r\n this.observers.forEach((item) => {\r\n item.next(data);\r\n });\r\n this.state.status = 'READY';\r\n this.state.data = data;\r\n }\r\n\r\n error(err) {\r\n this.observers.forEach((item) => {\r\n item.error(err);\r\n });\r\n this.state.status = 'ERROR';\r\n this.state.error = err;\r\n }\r\n}\r\n\r\nexport class EntityCacheItem extends CacheItem {\r\n constructor({\r\n fetch,\r\n patch,\r\n afterSubscribe = noop,\r\n afterUnsubscribe = noop,\r\n hardResetCacheData,\r\n }) {\r\n super({\r\n fetch,\r\n afterSubscribe,\r\n afterUnsubscribe,\r\n hardResetCacheData,\r\n });\r\n this.patch = patch;\r\n }\r\n\r\n update(update) {\r\n const patchEntityCacheItem = new PatchEntityCacheItem();\r\n\r\n const originalStatus = this.state.status;\r\n this.state.status = 'PENDING';\r\n this.patch(update)\r\n .then((data) => {\r\n this.observers.forEach((item) => {\r\n item.next(data);\r\n });\r\n this.state.status = 'READY';\r\n this.state.data = data;\r\n })\r\n .catch((err) => {\r\n patchEntityCacheItem.error(err);\r\n this.state.status = originalStatus;\r\n });\r\n\r\n this.subscribe({\r\n next: data => patchEntityCacheItem.next(data),\r\n error: err => patchEntityCacheItem.error(err),\r\n });\r\n\r\n return patchEntityCacheItem;\r\n }\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__77__;","import _ from 'underscore';\r\nimport { get, set } from '@bingads-webui-universal/primitive-utilities';\r\nimport stringify from 'json-stable-stringify';\r\nimport { TimeAwareCache, LRUReplacementStrategy } from '@bingads-webui-universal/time-aware-cache';\r\nimport { CACHE_SIZE, DEFAULT_TTL } from './constants';\r\n\r\nfunction deletePropertyPath(obj, path) {\r\n let o = obj;\r\n const { length } = path;\r\n for (let i = 0; i < length - 1; i += 1) {\r\n o = o[path[i]];\r\n\r\n if (typeof o === 'undefined') {\r\n return;\r\n }\r\n }\r\n delete o[path[length - 1]];\r\n}\r\n\r\nexport class ObservableCache {\r\n observedCache = {};\r\n noObservers = new TimeAwareCache({\r\n ttl: DEFAULT_TTL,\r\n strategy: new LRUReplacementStrategy({ limit: CACHE_SIZE }),\r\n });\r\n\r\n set(path, item) {\r\n if (item.hasObservers()) {\r\n set(this.observedCache, path, item);\r\n } else {\r\n this.noObservers.set(stringify(path), item);\r\n }\r\n }\r\n\r\n get(path) {\r\n return get(this.observedCache, path) || this.noObservers.get(stringify(path));\r\n }\r\n\r\n observerAdded(item, path) {\r\n if (item.observers.size === 1) {\r\n this.noObservers.del(stringify(path));\r\n set(this.observedCache, path, item);\r\n }\r\n }\r\n\r\n observerReduced(item, path) {\r\n if (item.observers.size === 0) {\r\n deletePropertyPath(this.observedCache, path);\r\n this.noObservers.set(stringify(path), item);\r\n }\r\n }\r\n\r\n invalidateObservedCache(typeName, skipEntityCallPaths = null) {\r\n const clearCacheKeys = [];\r\n _.map(this.observedCache[typeName], (cacheItems, subKey) => {\r\n const skipCall = skipEntityCallPaths && _.find(skipEntityCallPaths, path => subKey.includes(path) || `${typeName}s(${subKey})`.includes(path));\r\n if (skipCall) {\r\n clearCacheKeys.push(subKey);\r\n } else {\r\n _.each(cacheItems, (cacheItem) => {\r\n cacheItem.invalidate();\r\n });\r\n }\r\n });\r\n clearCacheKeys.forEach((key) => {\r\n delete this.observedCache[typeName][key];\r\n });\r\n }\r\n\r\n invalidateObservedCacheById(typeName, id, stringifiedOptions, skipEntityCallPaths = null) {\r\n const skipCall = skipEntityCallPaths && _.find(skipEntityCallPaths, path => `${typeName}s(${id})`.includes(path));\r\n if (skipCall) {\r\n delete this.observedCache[typeName][id];\r\n } else {\r\n _.each(this.observedCache[typeName][id], (cacheItem, options) => {\r\n if (options !== stringifiedOptions) {\r\n cacheItem.invalidate();\r\n }\r\n });\r\n }\r\n }\r\n\r\n invalidateNoObserverCache(key) {\r\n const cache = this.noObservers.get(key);\r\n\r\n if (cache) {\r\n cache.invalidate();\r\n }\r\n }\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__79__;","export const CACHE_SIZE = 200;\r\nexport const LLT_EXPIRED = -1;\r\n// time to live defaults to 2 hours\r\nexport const DEFAULT_TTL = 2 * 60 * 60 * 1000;\r\n","import { Observable } from '@bingads-webui-universal/observable';\r\n\r\nexport class CacheEvent extends Observable {\r\n constructor() {\r\n super((observer) => {\r\n this.observers.add(observer);\r\n return () => {\r\n this.observers.delete(observer);\r\n };\r\n });\r\n\r\n // eslint-disable-next-line no-undef\r\n this.observers = new Set();\r\n }\r\n\r\n notify(type, entity) {\r\n this.observers.forEach((ob) => {\r\n ob.next({\r\n type,\r\n entity,\r\n });\r\n });\r\n }\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__48__;","export { resIdsPlugin } from './src/index';\r\n","/**\r\n * the Reource Identifier plugin for entity-data-model\r\n * @module component/edm-resource-identifiers/index\r\n */\r\nimport _ from 'underscore';\r\nimport {\r\n defineConstProperty,\r\n defineProducedPropertyOnClass,\r\n} from '@bingads-webui/reflection';\r\nimport * as url from '@bingads-webui/url-util';\r\nimport { Registry } from '@bingads-webui/registry';\r\nimport { createNavigation, createCastNavigation, createWithKeyNavigation, createCallNavigation, createResourceIdentifier } from '@bingads-webui/edm-shared';\r\n\r\n/**\r\n * @param {EDM} edm - The EDM object to apply this plugin to\r\n * @return {Void} nothing to return\r\n */\r\nexport function resIdsPlugin(edm) {\r\n if (edm.resourceIdentifiers) {\r\n return;\r\n }\r\n\r\n /**\r\n * @name edm\r\n * @property {Registry} resourceIdentifiers - A registry of all resource-identifiers\r\n * @property {Class} resourceIdentifiers.Navigation - The base type of all navigations\r\n * @property {Class} resourceIdentifiers.PropertyNavigation - The navigation following a property\r\n * @property {Class} resourceIdentifiers.CastNavigation - The navigation following a type casting\r\n * @property {Class} resourceIdentifiers.WithKeyNavigation\r\n * - The navigation of selecting a single instance from an entity set\r\n * @property {Class} resourceIdentifiers.CallNavigation - The navigation of calling a callable\r\n * @property {Class} resourceIdentifiers.ResourceIdentifier\r\n * - The base type of all resource-identifiers\r\n */\r\n defineConstProperty(edm, 'resourceIdentifiers', (() => {\r\n const resourceIdentifiers = new Registry();\r\n const Navigation = createNavigation();\r\n\r\n /**\r\n * @class PropertyNavigation\r\n * @extends Navigation\r\n * @property {Property} property - The property navigated with\r\n */\r\n class PropertyNavigation extends Navigation {\r\n constructor({\r\n source,\r\n property,\r\n name,\r\n }) {\r\n super({\r\n source,\r\n });\r\n defineConstProperty(this, 'property', property);\r\n defineConstProperty(this, 'name', name);\r\n defineConstProperty(this, 'path', url.join(source.path, name));\r\n }\r\n\r\n toSelfJSON() {\r\n return {\r\n type: 'property',\r\n name: this.name,\r\n };\r\n }\r\n\r\n static defineOn(TypeResID, navigationProperties) {\r\n _.each(navigationProperties, (property, name) => {\r\n /**\r\n * Navigation property factory for the defined property\r\n * @memberof TypeResID#\r\n * @this TypeResID\r\n * @returns {ResourceIdentifier} The ResourceIdentifier to access the property\r\n */\r\n function navPropFactory() {\r\n return new property.type.ResourceIdentifier({\r\n navigation: new PropertyNavigation({ source: this, property, name }),\r\n });\r\n }\r\n\r\n defineProducedPropertyOnClass(TypeResID, name, navPropFactory);\r\n });\r\n }\r\n }\r\n\r\n class CallableNavigation extends Navigation {\r\n constructor({\r\n source,\r\n name,\r\n }) {\r\n super({\r\n source,\r\n });\r\n defineConstProperty(this, 'name', name);\r\n defineConstProperty(this, 'path', url.join(source.path, name));\r\n }\r\n\r\n static defineOn(TypeResID, callable) {\r\n function defineCallableOn(resID, callableTypes) {\r\n _.each(callableTypes, (type) => {\r\n /**\r\n * factory for the callables\r\n * @memberof resID#\r\n * @this resID\r\n * @returns {ResourceIdentifier} The ResourceIdentifier to access the property\r\n */\r\n function factory() {\r\n return new type.ResourceIdentifier({\r\n navigation: new CallableNavigation({ source: this, name: type.callableName }),\r\n });\r\n }\r\n defineProducedPropertyOnClass(resID, type.callableName, factory);\r\n });\r\n }\r\n defineCallableOn(TypeResID, callable.actions);\r\n defineCallableOn(TypeResID, callable.functions);\r\n }\r\n }\r\n\r\n const CastNavigation = createCastNavigation(Navigation, url, edm);\r\n const WithKeyNavigation = createWithKeyNavigation(Navigation);\r\n const CallNavigation = createCallNavigation(Navigation, edm);\r\n const ResourceIdentifier = createResourceIdentifier();\r\n\r\n /**\r\n * @class CollectionResourceIdentifier\r\n * @property {Navigation} navigation\r\n * - The navigation back tracking the parent ResourceIdentifier\r\n */\r\n class CollectionResourceIdentifier extends ResourceIdentifier {\r\n /**\r\n * Create a ResourceIdentifier\r\n * @param {Object} [options] - The constructor options\r\n * @param {Navigation} [options.navigation]\r\n * - The navigation back tracking the parent ResourceIdentifier\r\n * @return {Void} Nothing to return\r\n */\r\n constructor({\r\n navigation,\r\n } = {}) {\r\n super({ navigation });\r\n }\r\n }\r\n\r\n /**\r\n * define ResourceIdentifier type for the given type\r\n * @param {Type} type - An instance of one of the meta types\r\n * @return {Class} the ResourceIdentifier class\r\n */\r\n function resourceIdentifierForType(type) {\r\n // duck type, if the type has a \"baseType\", use its ResourceIdentifier as the super class\r\n const DefaultBase = type instanceof edm.types.CollectionType ?\r\n CollectionResourceIdentifier :\r\n ResourceIdentifier;\r\n const Base = type.baseType ? type.baseType.ResourceIdentifier : DefaultBase;\r\n\r\n const AccessorType = class extends Base {\r\n };\r\n\r\n /**\r\n * @name resId\r\n * @type ResourceIdentifier\r\n * @property {Type} type - The type associated with the ResourceIdentifier\r\n */\r\n defineConstProperty(AccessorType.prototype, 'type', type);\r\n\r\n resourceIdentifiers.register(AccessorType, type.name);\r\n\r\n return AccessorType;\r\n }\r\n\r\n // For each of the meta types defined by the type mixin, define the\r\n // \"ResourceIdentifier\" property\r\n _.each({\r\n\r\n // the root class 'Type' don't have an ResourceIdentifier property\r\n // Type: { factory() { } },\r\n\r\n PrimitiveType: {\r\n\r\n /**\r\n * PrimitiveType ResourceIdentifier type factory\r\n * @memberof PrimitiveType#\r\n * @this PrimitiveType\r\n * @returns {Class} The ResourceIdentifier type of the PrimitiveType\r\n */\r\n factory() {\r\n const PrimitiveTypeResID = resourceIdentifierForType(this);\r\n\r\n return PrimitiveTypeResID;\r\n },\r\n },\r\n\r\n ObjectType: {\r\n\r\n /**\r\n * ObjectType ResourceIdentifier type factory\r\n * @memberof ObjectType#\r\n * @this ObjectType\r\n * @returns {Class} The ResourceIdentifier type of the ObjectType\r\n */\r\n factory() {\r\n const ObjectTypeResID = resourceIdentifierForType(this);\r\n\r\n CastNavigation.defineOn(ObjectTypeResID);\r\n PropertyNavigation.defineOn(ObjectTypeResID, this.navigationProperties);\r\n if (this.callable) {\r\n CallableNavigation.defineOn(ObjectTypeResID, this.callable);\r\n }\r\n return ObjectTypeResID;\r\n },\r\n },\r\n\r\n // fallback to ObjectType.prototype.ResourceIdentifier\r\n // EntityType: { factory () { } },\r\n\r\n // fallback to ObjectType.prototype.ResourceIdentifier\r\n // ComplexType: { factory () { } },\r\n\r\n CollectionType: {\r\n\r\n /**\r\n * CollectionType ResourceIdentifier type factory\r\n * @memberof CollectionType#\r\n * @this CollectionType\r\n * @returns {Class} the ResourceIdentifier type of the CollectionType\r\n */\r\n factory() {\r\n const CollectionTypeResID = resourceIdentifierForType(this);\r\n\r\n CastNavigation.defineOn(CollectionTypeResID);\r\n // Only the entity sets can be navigated with keys\r\n if (this.elementType instanceof edm.types.EntityType) {\r\n WithKeyNavigation.defineOn(CollectionTypeResID);\r\n }\r\n PropertyNavigation.defineOn(CollectionTypeResID, this.navigationProperties);\r\n if (this.callable) {\r\n CallableNavigation.defineOn(CollectionTypeResID, this.callable);\r\n }\r\n\r\n return CollectionTypeResID;\r\n },\r\n },\r\n\r\n CallableType: {\r\n\r\n /**\r\n * CallableType ResourceIdentifier type factory\r\n * @memberof CallableType#\r\n * @this CallableType\r\n * @returns {Class} The ResourceIdentifier type of the CallableType\r\n */\r\n factory() {\r\n const CallableTypeResID = resourceIdentifierForType(this);\r\n\r\n CallNavigation.defineOn(CallableTypeResID);\r\n\r\n return CallableTypeResID;\r\n },\r\n },\r\n\r\n }, (def, typeName) => {\r\n /**\r\n * @name type\r\n * @type Type\r\n * @property {Class} ResourceIdentifier - The ResourceIdentifier type of the type\r\n */\r\n defineProducedPropertyOnClass(edm.types[typeName], 'ResourceIdentifier', def.factory);\r\n });\r\n\r\n _.chain(resourceIdentifiers)\r\n .defineConstProperty('ResourceIdentifier', ResourceIdentifier)\r\n .defineConstProperty('CollectionResourceIdentifier', CollectionResourceIdentifier)\r\n .defineConstProperty('Navigation', Navigation)\r\n .defineConstProperty('PropertyNavigation', PropertyNavigation)\r\n .defineConstProperty('CastNavigation', CastNavigation)\r\n .defineConstProperty('WithKeyNavigation', WithKeyNavigation)\r\n .defineConstProperty('CallNavigation', CallNavigation)\r\n .defineConstProperty('CallableNavigation', CallableNavigation)\r\n .value();\r\n\r\n return resourceIdentifiers;\r\n })());\r\n}\r\n","export * from './src/index';\r\n","export * from './bulk-upsert';\r\n","import _ from 'underscore';\r\nimport Promise from 'bluebird';\r\nimport {\r\n hasOwnProperty,\r\n defineConstProperty,\r\n} from '@bingads-webui/reflection';\r\nimport {\r\n serialize,\r\n parse,\r\n populateIds,\r\n hasReadOnlyFields,\r\n getAttrsToSerialize,\r\n extractEntityErrors,\r\n buildDestroyObject,\r\n} from '@bingads-webui/odata-bulk-upsert';\r\nimport { odata } from '@bingads-webui/http-util';\r\nimport { merge } from '@bingads-webui-universal/primitive-utilities';\r\nimport { join } from '@bingads-webui/url-util';\r\nimport { getSkipEntityCallPaths } from './constants';\r\n\r\nfunction getCast(options) {\r\n return (options && !_.isEmpty(options.cast)) ? (`/${options.cast}`) : '';\r\n}\r\n\r\nfunction getParent(options) {\r\n return (options && !_.isEmpty(options.parent)) ? (`${options.parent}/`) : '';\r\n}\r\n\r\nexport function odataBulkUpsertPlugin(edm, {\r\n ServiceRoot,\r\n AccountID,\r\n AdvertiserCustomerID,\r\n bulkUpsertSchema,\r\n} = {}, {\r\n processOptions = _.identity,\r\n} = {}) {\r\n if (hasOwnProperty(edm, 'odata.bulkUpsert')) {\r\n return;\r\n }\r\n\r\n function getUrl({ path, options }) {\r\n if (path) {\r\n const prefix = path.match(/\\/Customers\\([0-9]+\\)\\/Accounts\\([0-9]+\\)/);\r\n if (!_.isEmpty(prefix)) {\r\n return join(ServiceRoot, `${prefix[0]}/${getParent(options)}Default.BulkUpsert${getCast(options)}`);\r\n }\r\n }\r\n return join(ServiceRoot, `/Customers(${AdvertiserCustomerID})/Accounts(${AccountID})/${getParent(options)}Default.BulkUpsert${getCast(options)}`);\r\n }\r\n\r\n function invalidateCache(entityName, ids, skipEntityCallPaths = null) {\r\n if (edm['odata.cache']) {\r\n edm['odata.cache'].invalidateTypeCache(entityName, null, '', skipEntityCallPaths);\r\n _.each(ids, id => edm['odata.cache'].invalidateTypeCache(entityName, id, '', skipEntityCallPaths));\r\n }\r\n }\r\n\r\n function checkParsedResult(errors, result, entityName, ids, skipEntityCallPaths) {\r\n if (!_.isEmpty(errors)) {\r\n return Promise.reject({ // eslint-disable-line prefer-promise-reject-errors\r\n entity: result,\r\n errors,\r\n });\r\n }\r\n\r\n invalidateCache(entityName, ids, skipEntityCallPaths);\r\n\r\n return result;\r\n }\r\n\r\n _.each(bulkUpsertSchema, (bSchema, name) => {\r\n merge(edm.schema.schemas[`Model/${name}`], bSchema);\r\n });\r\n\r\n defineConstProperty(edm, 'odata.bulkUpsert', (() => {\r\n const {\r\n ResourceIdentifier,\r\n } = edm.resourceIdentifiers;\r\n\r\n ResourceIdentifier.prototype.bulkUpdate = function bulkUpdate(attrs, options = {}) {\r\n const { schema } = this.type;\r\n\r\n if (options.batch) {\r\n if (_.isUndefined(attrs.reqs)) {\r\n throw new Error('requests are required when batch bulkupserts.');\r\n }\r\n\r\n const reqs = _.map(attrs.reqs, (param) => {\r\n const csvRows = serialize(schema, { Id: attrs.Id, ...param.data });\r\n const uri = getUrl({ path: this.path, options });\r\n\r\n return {\r\n type: 'POST',\r\n url: uri,\r\n data: { CsvRows: csvRows },\r\n };\r\n });\r\n\r\n return odata.batch(_.defaults({ reqs, path: options.path }, options)).then(responses => (\r\n Promise.map(responses, (response, index) => {\r\n const { results, errors } = parse(response.data);\r\n const ret = populateIds(results, attrs.reqs[index].data);\r\n\r\n return checkParsedResult(\r\n errors,\r\n ret,\r\n options.entityName || this.type.name,\r\n [attrs.Id || attrs.reqs[0].data.Id]\r\n );\r\n })\r\n ))\r\n .then(parsedResponse => (_.isFunction(options.processResponse)\r\n ? options.processResponse(parsedResponse)\r\n : parsedResponse));\r\n }\r\n\r\n const toSerialize = getAttrsToSerialize(attrs.Id, attrs, schema);\r\n const CsvRows = serialize(schema, toSerialize);\r\n\r\n return odata.post(getUrl({ path: this.path, options }), processOptions({ data: { CsvRows } }))\r\n .then((res) => {\r\n const { results, errors } = parse(res);\r\n const ret = populateIds(results, attrs);\r\n\r\n if (results && results.length && hasReadOnlyFields(attrs, schema.properties)) {\r\n ret.Id = results[0].Id;\r\n }\r\n\r\n return checkParsedResult(errors, ret, options.entityName || this.type.name, [attrs.Id]);\r\n });\r\n };\r\n\r\n ResourceIdentifier.prototype.bulkUpdateMany = function bulkUpdateMany(\r\n idList,\r\n attrsList,\r\n options = {}\r\n ) {\r\n const { schema } = this.type;\r\n const toSerialize = _.map(\r\n idList,\r\n (id, index) => getAttrsToSerialize(id, attrsList[index], schema)\r\n );\r\n const CsvRows = serialize(schema, toSerialize);\r\n\r\n return odata\r\n .post(getUrl({ path: this.path, options }), _.defaults(processOptions({ data: { CsvRows } }), options))\r\n .then((res) => {\r\n const { results, errors } = parse(res);\r\n const attrsListWithIds = populateIds(results, attrsList);\r\n\r\n invalidateCache(options.entityName || this.type.name, idList);\r\n\r\n return _.map(attrsListWithIds, (attrs, index) => ({\r\n entity: attrs,\r\n errors: extractEntityErrors(errors, index),\r\n }));\r\n });\r\n };\r\n\r\n ResourceIdentifier.prototype.bulkCreate = function bulkCreate(attrs, options = {}) {\r\n const { schema } = this.type;\r\n const CsvRows = serialize(schema, attrs);\r\n\r\n return odata\r\n .post(getUrl({ path: this.path, options }), _.defaults(processOptions({ data: { CsvRows } }), options))\r\n .then((res) => {\r\n const { results, errors } = parse(res);\r\n const ret = populateIds(results, attrs);\r\n\r\n return checkParsedResult(errors, ret, options.entityName || this.type.name, [null]);\r\n });\r\n };\r\n\r\n ResourceIdentifier.prototype.bulkCreateMany = function bulkCreateMany(attrsList, options = {}) {\r\n const { schema } = this.type;\r\n const CsvRows = serialize(schema, attrsList);\r\n\r\n return odata\r\n .post(getUrl({ path: this.path, options }), _.defaults(processOptions({ data: { CsvRows } }), options))\r\n .then((res) => {\r\n const { results, errors } = parse(res);\r\n const attrsListWithIds = populateIds(results, attrsList);\r\n\r\n invalidateCache(options.entityName || this.type.name);\r\n\r\n return _.map(attrsListWithIds, (attrs, index) => ({\r\n entity: attrs,\r\n errors: extractEntityErrors(errors, index),\r\n }));\r\n });\r\n };\r\n\r\n ResourceIdentifier.prototype.bulkDestroy = function bulkDestroy(id, options = {}) {\r\n const { schema } = this.type;\r\n const attrs = buildDestroyObject(schema.parent, id, options.parentId);\r\n const CsvRows = serialize(schema, attrs);\r\n\r\n return odata\r\n .post(getUrl({ path: this.path, options }), _.defaults(processOptions({ data: { CsvRows } }), options))\r\n .then((res) => {\r\n const { results, errors } = parse(res);\r\n const ret = populateIds(results, attrs);\r\n const entityName = options.entityName || this.type.name;\r\n\r\n return checkParsedResult(errors, ret, entityName, [id], getSkipEntityCallPaths(entityName, [id]));\r\n });\r\n };\r\n\r\n // put the plugin indicator\r\n return {};\r\n })());\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__40__;","const ENTITY_PATH_ENUM = {\r\n 'Model.ShoppingCampaign': 'Campaigns',\r\n 'Model.Campaign': 'Campaigns',\r\n 'Model.AdGroup': 'AdGroups',\r\n};\r\n\r\nexport const getSkipEntityCallPaths = (entityName, ids) => {\r\n const entityPath = entityName.includes('Model') ? ENTITY_PATH_ENUM[entityName] : `${entityName}s`;\r\n if (!entityPath) {\r\n return [];\r\n }\r\n return ids.map(id => `${entityPath}(${id})`);\r\n};\r\n","export { EDM } from './src/index';\r\n","/**\r\n * the Entity Data Model module\r\n */\r\nimport typesPlugin from './types-plugin';\r\nimport schemaPlugin from './schema-plugin';\r\n\r\nexport class EDM {\r\n constructor(options) {\r\n typesPlugin(this);\r\n if (options) {\r\n schemaPlugin(this, options);\r\n }\r\n }\r\n}\r\n","/**\r\n * the types plugin module\r\n */\r\nimport _ from 'underscore';\r\n\r\nimport {\r\n defineConstProperty,\r\n defineProducedProperty,\r\n defineProducedPropertyOnClass,\r\n} from '@bingads-webui/reflection';\r\n\r\nimport { Registry } from '@bingads-webui/registry';\r\n\r\nimport {\r\n ONEOF_TYPE_PREFIX,\r\n createResolveType,\r\n createProperty,\r\n createParameter,\r\n createType,\r\n createPrimitiveType,\r\n createCollectionType,\r\n compileProperties,\r\n compileParameters\r\n} from '@bingads-webui/edm-shared';\r\n\r\n/**\r\n * @param {EDM} edm - The EDM object to apply this plugin to\r\n * @return {void}\r\n */\r\nexport default (edm) => {\r\n if (edm.types) {\r\n return;\r\n }\r\n\r\n // eslint-disable-next-line no-undef\r\n const oneOfTypes = new Map();\r\n\r\n /**\r\n * @name edm\r\n * @type {EDM}\r\n * @property {Registry} types - A registry of all types\r\n * @property {Class} types.Type - The base type of all meta Types\r\n * @property {Class} types.PrimitiveType - The meta type of primitive types\r\n * @property {Class} types.ObjectType - The meta type of the key/value types\r\n * @property {Class} types.ComplexType - The meta type of the complex types\r\n * @property {Class} types.EntityType - The meta type of the entity types\r\n * @property {Class} types.CollectionType - The meta type of the collection types\r\n * @property {Class} types.CallableType - The meta type of the callable types\r\n */\r\n defineConstProperty(edm, 'types', (() => {\r\n const types = new Registry();\r\n const Type = createType(types);\r\n const PrimitiveType = createPrimitiveType(Type);\r\n\r\n /**\r\n * @class OneOfType\r\n * @extends Type\r\n * @property {Class} types - Data could be one of these types\r\n * @see {@link http://json-schema.org/latest/json-schema-validation.html#rfc.section.6.7.3}\r\n */\r\n class OneOfType extends Type {\r\n /**\r\n * Create a PrimitiveType\r\n * @param {Object} options - The constructor options\r\n * @param {String} options.name - The name of the type\r\n * @param {Type[]} options.types - The JavaScript type of the primitive type\r\n * @return {void}\r\n */\r\n constructor({\r\n typeNames,\r\n }) {\r\n super({\r\n name: OneOfType.oneOfTypeName(typeNames),\r\n });\r\n\r\n defineConstProperty(this, 'typeNames', typeNames);\r\n // eslint-disable-next-line no-use-before-define\r\n defineConstProperty(this, 'types', typeNames.map(typeName => resolveType(typeName, this.namespace)));\r\n }\r\n\r\n /**\r\n * Get the OneOfType's name from it's elements type name\r\n * @param {String[]} typeNames - The name of the elementTypes\r\n * @return {String} The name of the OneOfType\r\n */\r\n static oneOfTypeName(typeNames) {\r\n // We don't support nested one for now\r\n const sortedNames = typeNames.map(name =>\r\n types.resolveQualifiedName(name, this.namespace)).sort();\r\n\r\n return `${ONEOF_TYPE_PREFIX}(${sortedNames.join(',')})`;\r\n }\r\n }\r\n\r\n const resolveType = createResolveType(oneOfTypes, types, OneOfType);\r\n const Property = createProperty(resolveType);\r\n const Parameter = createParameter(resolveType);\r\n\r\n /**\r\n * @class ObjectType\r\n * @extends Type\r\n * @property {Object.} properties - The properties of the object type\r\n * @property {String} baseTypeName - The name of the base type\r\n * @property {Type} baseType - The base type\r\n */\r\n class ObjectType extends Type {\r\n /**\r\n * Create an ObjectType\r\n * @param {Object} options - The constructor options\r\n * @param {String} options.name - The name of the type\r\n * @param {Object.} options.properties - The property definition\r\n * @param {string[]} [options.navigationPropertyNames] - Navigation properties names\r\n * @param {String} options.baseTypeName - The name of the base type\r\n * @return {void}\r\n */\r\n constructor({\r\n name,\r\n properties,\r\n navigationPropertyNames = [],\r\n baseTypeName,\r\n }) {\r\n super({ name });\r\n\r\n defineConstProperty(this, 'properties', compileProperties.call(this, properties, Property));\r\n defineConstProperty(this, 'navigationPropertyNames', navigationPropertyNames.slice());\r\n defineProducedProperty(this, 'navigationProperties', () => _.pick(this.properties, (property, propertyName) => _.contains(this.navigationPropertyNames, propertyName)));\r\n if (baseTypeName) {\r\n defineConstProperty(this, 'baseTypeName', baseTypeName);\r\n defineProducedProperty(this, 'baseType', () => resolveType(this.baseTypeName, this.namespace));\r\n }\r\n }\r\n\r\n addProperties(properties) {\r\n _.extend(this.properties, compileProperties.call(this, properties, Property));\r\n // only for backward compability, should use addNavigationProperties for this case\r\n this.navigationPropertyNames.push(..._.keys(properties));\r\n }\r\n\r\n addNavigationProperties(properties) {\r\n this.addProperties(properties);\r\n }\r\n }\r\n\r\n /**\r\n * @class ComplexType\r\n * @extends ObjectType\r\n */\r\n class ComplexType extends ObjectType {\r\n\r\n }\r\n\r\n /**\r\n * @class EntityType\r\n * @extends ObjectType\r\n * @property {String} key - The name of the key property\r\n * @property {Property} keyProperty - The key property of the entity type\r\n * @return {void}\r\n */\r\n class EntityType extends ObjectType {\r\n /**\r\n * Create an EntityType\r\n * @param {Object} options - The constructor options\r\n * @param {String} options.name - The name of the type\r\n * @param {Object.} options.properties - The property definition\r\n * @param {String} options.baseTypeName - The name of the base type\r\n * @param {String} [options.key] - The name of the key property\r\n * @return {void}\r\n */\r\n constructor({\r\n name,\r\n properties,\r\n navigationPropertyNames,\r\n baseTypeName,\r\n key,\r\n }) {\r\n super({\r\n name,\r\n properties,\r\n navigationPropertyNames,\r\n baseTypeName,\r\n });\r\n\r\n if (key) {\r\n defineConstProperty(this, 'key', key);\r\n defineConstProperty(this, 'keyProperty', this.properties[this.key]);\r\n } else if (baseTypeName) {\r\n // The key property is inherited if there's a base type\r\n defineProducedProperty(this, 'key', () => this.baseType.key);\r\n defineProducedProperty(this, 'keyProperty', () => this.baseType.keyProperty);\r\n } else {\r\n throw new Error('The \"key\" property is required for an EntityType');\r\n }\r\n }\r\n }\r\n\r\n const CollectionType = createCollectionType(ObjectType, resolveType);\r\n\r\n /**\r\n * @memberof Type#\r\n * @this Type\r\n * @returns {CollectionType} The CollectionType of the given Type\r\n */\r\n function collectionTypeFactory() {\r\n return new CollectionType({ elementTypeName: this.name });\r\n }\r\n\r\n /**\r\n * @name type\r\n * @type Type\r\n * @property {CollectionType} collectionType - The collection type of the given type\r\n */\r\n defineProducedPropertyOnClass(Type, 'collectionType', collectionTypeFactory);\r\n\r\n /**\r\n * @class CallableType\r\n * @property {Parameter[]} parameters - The parameters required to call the callable\r\n * @property {String} returnTypeName - The name of the return type\r\n * @property {Type} returnType - The return type of the callable\r\n */\r\n class CallableType extends Type {\r\n /**\r\n * Create a CallableType\r\n * @param {Object} options - The constructor options\r\n * @param {String} options.name - The name of the type\r\n * @param {Object.} parameters - The parameter definitions\r\n * @param {String} returnTypeName - The name of the return type\r\n * @return {void}\r\n */\r\n constructor({\r\n name,\r\n callableName,\r\n parameters,\r\n returnTypeName,\r\n }) {\r\n super({ name });\r\n\r\n defineConstProperty(this, 'callableName', callableName);\r\n defineConstProperty(this, 'parameters', compileParameters.call(this, parameters, Parameter));\r\n defineConstProperty(this, 'returnTypeName', returnTypeName);\r\n defineProducedProperty(this, 'returnType', () => resolveType(returnTypeName, this.namespace));\r\n }\r\n }\r\n\r\n /**\r\n * @class ActionType\r\n * @property {Parameter[]} parameters - The parameters required to call the callable\r\n * @property {String} returnTypeName - The name of the return type\r\n * @property {Type} returnType - The return type of the callable\r\n */\r\n class ActionType extends CallableType {\r\n /**\r\n * Create a CallableType\r\n * @param {Object} options - The constructor options\r\n * @param {String} options.name - The name of the type\r\n * @param {Object.} parameters - The parameter definitions\r\n * @param {String} returnTypeName - The name of the return type\r\n * @return {void}\r\n */\r\n constructor({\r\n name,\r\n callableName,\r\n parameters,\r\n returnTypeName,\r\n }) {\r\n super({\r\n name,\r\n callableName,\r\n parameters,\r\n returnTypeName,\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * @class FunctionType\r\n * @property {Parameter[]} parameters - The parameters required to call the callable\r\n * @property {String} returnTypeName - The name of the return type\r\n * @property {Type} returnType - The return type of the callable\r\n */\r\n class FunctionType extends CallableType {\r\n /**\r\n * Create a CallableType\r\n * @param {Object} options - The constructor options\r\n * @param {String} options.name - The name of the type\r\n * @param {Object.} parameters - The parameter definitions\r\n * @param {String} returnTypeName - The name of the return type\r\n * @return {void}\r\n */\r\n constructor({\r\n name,\r\n callableName,\r\n parameters,\r\n returnTypeName,\r\n }) {\r\n super({\r\n name,\r\n callableName,\r\n parameters,\r\n returnTypeName,\r\n });\r\n }\r\n }\r\n\r\n // TODO: wewei, support EnumType\r\n\r\n defineConstProperty(types, 'Property', Property);\r\n defineConstProperty(types, 'Parameter', Parameter);\r\n defineConstProperty(types, 'Type', Type);\r\n defineConstProperty(types, 'PrimitiveType', PrimitiveType);\r\n defineConstProperty(types, 'OneOfType', OneOfType);\r\n defineConstProperty(types, 'ObjectType', ObjectType);\r\n defineConstProperty(types, 'ComplexType', ComplexType);\r\n defineConstProperty(types, 'EntityType', EntityType);\r\n defineConstProperty(types, 'CollectionType', CollectionType);\r\n defineConstProperty(types, 'CallableType', CallableType);\r\n defineConstProperty(types, 'ActionType', ActionType);\r\n defineConstProperty(types, 'FunctionType', FunctionType);\r\n\r\n return types;\r\n })());\r\n};\r\n","/**\r\n * the schema plugin module\r\n */\r\nimport _ from 'underscore';\r\nimport { get } from '@bingads-webui-universal/primitive-utilities';\r\nimport {\r\n hasOwnProperty,\r\n defineConstProperty,\r\n} from '@bingads-webui/reflection';\r\nimport { Registry } from '@bingads-webui/registry';\r\n\r\nimport typesPlugin from './types-plugin';\r\n\r\nfunction getSchemaName(schema) {\r\n const { $$ODataExtension, name } = schema;\r\n if ($$ODataExtension) {\r\n return $$ODataExtension.Name;\r\n }\r\n\r\n // deprecated\r\n // There is no such keyword as \"name\" in JSON Schema, it's specific to OData\r\n // See:\r\n // http://json-schema.org/latest/json-schema-core.html\r\n // http://json-schema.org/latest/json-schema-validation.html\r\n return name;\r\n}\r\n\r\nfunction getSchemaBaseTypeName(schema) {\r\n const { $$ODataExtension, clrTypeBase } = schema;\r\n if ($$ODataExtension) {\r\n return $$ODataExtension.BaseType && $$ODataExtension.BaseType.$ref;\r\n }\r\n\r\n // deprecated\r\n // There is no such keyword as \"clrTypeBase\" in JSON Schema, it's specific to OData\r\n // See:\r\n // http://json-schema.org/latest/json-schema-core.html\r\n // http://json-schema.org/latest/json-schema-validation.html\r\n return clrTypeBase;\r\n}\r\n\r\nfunction getSchemaKey(schema) {\r\n const { $$ODataExtension, key } = schema;\r\n if ($$ODataExtension) {\r\n return $$ODataExtension.Key;\r\n }\r\n\r\n // deprecated\r\n // There is no such keyword as \"key\" in JSON Schema, it's specific to OData\r\n // See:\r\n // http://json-schema.org/latest/json-schema-core.html\r\n // http://json-schema.org/latest/json-schema-validation.html\r\n return key;\r\n}\r\n\r\nfunction getSchemaNavigationPropertyNames(schema) {\r\n const { $$ODataExtension } = schema;\r\n if ($$ODataExtension) {\r\n return $$ODataExtension.NavigationProperty;\r\n }\r\n\r\n return [];\r\n}\r\n\r\nexport default (edm, {\r\n schemas = {},\r\n // TODO: deprecated, every schemas should be able to have different namespaces\r\n // we are still using it with legacy schemas\r\n namespace = null,\r\n} = {}) => {\r\n if (hasOwnProperty(edm, 'schema')) {\r\n return;\r\n }\r\n\r\n typesPlugin(edm);\r\n\r\n const {\r\n CollectionType,\r\n EntityType,\r\n PrimitiveType,\r\n ComplexType,\r\n OneOfType,\r\n ActionType,\r\n FunctionType,\r\n } = edm.types;\r\n\r\n defineConstProperty(edm, 'schema', (() => {\r\n function getSchemaFullName(schema, path) {\r\n // $$ref exists in resolved schema\r\n const possiblePath = (_.isString(path) && path) || schema.$$ref || schema.$ref;\r\n return possiblePath ?\r\n possiblePath.replace(/\\//g, '.') :\r\n Registry.getQualifiedName(getSchemaName(schema), namespace);\r\n }\r\n\r\n /**\r\n * Get type name object with its information\r\n * @param {Schema[]} dependencies - An output paramter, a queue of dependent schemas\r\n * @param {Object} typeInfo - The schema information of the property\r\n * @return {String} The type name\r\n */\r\n function getTypeName(dependencies, typeInfo) {\r\n let schema = null;\r\n let typeName = null;\r\n\r\n if (!typeInfo) {\r\n return null;\r\n }\r\n\r\n if (typeInfo.type === 'array') {\r\n return CollectionType.collectionTypeName(getTypeName(dependencies, typeInfo.items));\r\n } else if (typeInfo.oneOf) {\r\n return OneOfType.oneOfTypeName(typeInfo.oneOf.map(item => getTypeName(dependencies, item)));\r\n } else if (typeInfo.type === 'object') {\r\n ({ schema } = typeInfo);\r\n // it's possible for the schema to be undefined, use 'object' type by default\r\n typeName = getSchemaFullName(schema || typeInfo);\r\n } else if (typeInfo.type === 'string' && typeInfo.enum) {\r\n // enum type is string, but we need to get a meanful name for different enum type\r\n // this is to help us disable cache accurately, as enum can be odata call return type now\r\n typeName = (typeInfo.$$ref || 'string').split('/').join('.');\r\n } else {\r\n // primitive types\r\n typeName = typeInfo.type;\r\n }\r\n\r\n if (schema) {\r\n dependencies.push(schema);\r\n }\r\n\r\n return typeName;\r\n }\r\n\r\n function defineCallableOnType(acts, funcs, type, qualifiedName, forEntityType = true) {\r\n const actions = [];\r\n const functions = [];\r\n\r\n function getCallableTypeName(key) {\r\n return `${key}##${qualifiedName}${forEntityType ? '' : '@@COLL'}`;\r\n }\r\n\r\n _.each(_.keys(acts), (key) => {\r\n const typeName = getCallableTypeName(key);\r\n const parameters = _.mapObject(\r\n acts[key].Parameter,\r\n parameter => getTypeName([], parameter)\r\n );\r\n\r\n actions.push(new ActionType({\r\n name: typeName,\r\n callableName: key,\r\n parameters,\r\n returnTypeName: getTypeName([], acts[key].ReturnType),\r\n }));\r\n });\r\n\r\n _.each(_.keys(funcs), (key) => {\r\n const typeName = getCallableTypeName(key);\r\n const parameters = _.mapObject(\r\n funcs[key].Parameter,\r\n parameter => getTypeName([], parameter)\r\n );\r\n\r\n functions.push(new FunctionType({\r\n name: typeName,\r\n callableName: key,\r\n parameters,\r\n returnTypeName: getTypeName([], funcs[key].ReturnType),\r\n }));\r\n });\r\n\r\n defineConstProperty(type, 'callable', {\r\n actions,\r\n functions,\r\n });\r\n }\r\n\r\n /**\r\n * Define an entity type, and its dependencies\r\n *\r\n * @param {Schema} schema - The schema for the entity type\r\n * @param {string} [path] - Possible full path of the schema\r\n * @return {Void} Nothing to return\r\n */\r\n function defineSchemaType(schema, path) {\r\n const qualifiedName = getSchemaFullName(schema, path);\r\n\r\n if (!edm.types.resolve(qualifiedName)) {\r\n const dependencies = [];\r\n const properties = _.mapObject(schema.properties, typeInfo => ({\r\n typeName: getTypeName(dependencies, typeInfo),\r\n }));\r\n\r\n const type = new EntityType({\r\n name: qualifiedName,\r\n baseTypeName: getSchemaBaseTypeName(schema) || 'object',\r\n key: getSchemaKey(schema),\r\n properties,\r\n navigationPropertyNames: getSchemaNavigationPropertyNames(schema),\r\n });\r\n\r\n defineConstProperty(type, 'schema', schema);\r\n\r\n _.each(dependencies, defineSchemaType);\r\n\r\n const entityActions = get(schema, '$$ODataExtension.Action', null);\r\n const entityFunctions = get(schema, '$$ODataExtension.Function', null);\r\n\r\n if (entityActions || entityFunctions) {\r\n defineCallableOnType(entityActions, entityFunctions, type, qualifiedName);\r\n }\r\n\r\n const collCallable = get(schema, '$$ODataExtension.Collection', null);\r\n\r\n if (collCallable) {\r\n defineCallableOnType(\r\n collCallable.Action,\r\n collCallable.Function,\r\n type.collectionType,\r\n qualifiedName,\r\n false\r\n );\r\n }\r\n }\r\n }\r\n\r\n // Define all the primitive types\r\n _.each({\r\n string: String,\r\n integer: Number,\r\n number: Number,\r\n datetime: Date,\r\n boolean: Boolean,\r\n null: null,\r\n }, (jsType, name) => new PrimitiveType({ name, jsType }));\r\n\r\n // Define the base object type\r\n /* eslint no-new: 0 */\r\n new ComplexType({\r\n name: 'object',\r\n properties: {},\r\n });\r\n\r\n _.each(schemas, (schema, index) => {\r\n if (_.isString(index)) {\r\n defineSchemaType(schema, index);\r\n } else {\r\n defineSchemaType(schema);\r\n }\r\n });\r\n\r\n return _.chain({})\r\n .defineConstProperty('schemas', schemas)\r\n .defineConstProperty('namespace', namespace)\r\n .value();\r\n })());\r\n};\r\n","export { AriaListener } from './src/aria-listener';\r\n","import _ from 'underscore';\r\nimport { AWTLogManager, AWT_NEAR_REAL_TIME, AWTSessionState } from '@aria/webjs-sdk';\r\nimport { Listener } from '@bingads-webui/listener';\r\nimport { defaultConfig } from './default-config';\r\n\r\nconst activeListeners = [];\r\nlet flushEventAttached = false;\r\nfunction registerListener(listener) {\r\n activeListeners.push(listener);\r\n\r\n if (!flushEventAttached) {\r\n window.addEventListener('beforeunload', () => {\r\n activeListeners.forEach(l => l.flushLogs(false));\r\n AWTLogManager.flush();\r\n });\r\n\r\n flushEventAttached = true;\r\n }\r\n}\r\n\r\n/**\r\n * Create an instance of an Aria listener\r\n */\r\nexport class AriaListener extends Listener {\r\n constructor(options = {}) {\r\n super(options);\r\n this.options = _.defaults(options, {\r\n flushInterval: defaultConfig.flushInterval,\r\n batchSize: defaultConfig.batchSize,\r\n enableSessionTracking: defaultConfig.enableSessionTracking,\r\n });\r\n this.formatters = _.defaults(this.options.formatters || {}, defaultConfig.formatters);\r\n this.filters = this.options.filters || [];\r\n this.logTableNames = this.options.logTableNames;\r\n this.defaultLogCategory = this.options.defaultLogCategory;\r\n }\r\n\r\n /**\r\n * init aria listener\r\n * @returns {undefined} - no returns\r\n */\r\n init() {\r\n if (!this.options.tenantToken || this.initialized) {\r\n return;\r\n }\r\n\r\n this.logs = [];\r\n\r\n // Setup AriaTelemetry\r\n AWTLogManager.initialize(this.options.tenantToken);\r\n AWTLogManager.setTransmitProfile(AWT_NEAR_REAL_TIME);\r\n\r\n this.defaultLogger = AWTLogManager.getLogger(this.options.tenantToken);\r\n\r\n if (this.options.enableSessionTracking) {\r\n this.defaultLogger.logSession(AWTSessionState.Started);\r\n }\r\n\r\n if (!AWTLogManager.trackedListenerRefs) {\r\n AWTLogManager.trackedListenerRefs = { count: 0 };\r\n }\r\n\r\n setInterval(() => this.flushBatch(), this.options.flushInterval);\r\n registerListener(this);\r\n this.initialized = true;\r\n }\r\n\r\n /**\r\n * register instance for final flush of logs to Aria\r\n * @private\r\n * @returns {undefined} - no returns\r\n */\r\n registerForTeardown() {\r\n if (this.registeredForTeardown || !this.initialized) {\r\n return;\r\n }\r\n\r\n this.registeredForTeardown = true;\r\n AWTLogManager.trackedListenerRefs.count += 1;\r\n }\r\n\r\n /**\r\n * flushes logs to Aria and tears down the logger\r\n * @returns {undefined} - no returns\r\n */\r\n teardown() {\r\n if (!this.initialized) {\r\n return;\r\n }\r\n this.flushAll(false);\r\n this.initialized = false;\r\n\r\n if (this.options.enableSessionTracking) {\r\n this.defaultLogger.logSession(AWTSessionState.Ended);\r\n }\r\n\r\n if (this.registeredForTeardown) {\r\n AWTLogManager.trackedListenerRefs.count -= 1;\r\n }\r\n\r\n this.release();\r\n }\r\n\r\n /**\r\n * flushes logs to aria telemetry logger\r\n * @param {bool} batchLogs - specify if the logs should be flushed in batches\r\n * @private\r\n * @returns {undefined} - no returns\r\n */\r\n flushLogs(batchLogs) {\r\n const useBatching = batchLogs && (this.logs.length > this.options.batchSize);\r\n const batchSize = useBatching ? this.options.batchSize : this.logs.length;\r\n const logsToFlush = this.logs.splice(0, batchSize);\r\n _.each(logsToFlush, (log) => {\r\n this.defaultLogger.logEvent(log);\r\n });\r\n }\r\n\r\n /**\r\n * If there are no active listeners then tear down the underlying logger.\r\n * @private\r\n * @returns {undefined} - no returns\r\n */\r\n release() {\r\n if (AWTLogManager.trackedListenerRefs.count === 0) {\r\n AWTLogManager.flushAndTeardown();\r\n }\r\n }\r\n\r\n /**\r\n * writes logs to the listener\r\n * @param {object} logMessage - logs to be written\r\n * @returns {undefined} - no returns\r\n */\r\n write(logMessage) {\r\n if (!this.initialized || this.filterLogs(logMessage)) {\r\n return;\r\n }\r\n\r\n const categoryName = this.getCategoryName(logMessage.logCategory);\r\n const formattedMsg = this.formatLogs(logMessage);\r\n\r\n this.logs.push({\r\n name: this.logTableNames[categoryName].name,\r\n properties: formattedMsg,\r\n });\r\n }\r\n\r\n /**\r\n * @private\r\n * @returns {undefined} - no returns\r\n */\r\n flushAll() {\r\n this.flushLogs(false);\r\n }\r\n\r\n /**\r\n * @private\r\n * @returns {undefined} - no returns\r\n */\r\n flushBatch() {\r\n this.flushLogs(true);\r\n }\r\n\r\n /**\r\n * @private\r\n * @param {object} logCategory - logs to be written\r\n * @returns {undefined} - no returns\r\n */\r\n getCategoryName(logCategory) {\r\n const isValidLogCategory = _.has(this.logTableNames, logCategory);\r\n return isValidLogCategory ? logCategory : this.defaultLogCategory;\r\n }\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__4__;","import { AriaPropertyFormatter } from './formatters/log-property-formatter';\r\n\r\nconst propertyFormatter = new AriaPropertyFormatter();\r\n\r\nexport const defaultConfig = {\r\n formatters: { propertyFormatter },\r\n enableSessionTracking: true,\r\n flushInterval: 5000,\r\n batchSize: 50,\r\n};\r\n","import _ from 'underscore';\r\nimport { Formatter } from '@bingads-webui/listener';\r\n\r\nexport class AriaPropertyFormatter extends Formatter {\r\n format(logMessage) {\r\n return _.mapObject(logMessage, val => ({\r\n value: val,\r\n }));\r\n }\r\n}\r\n"],"sourceRoot":""}