@esri/hub-common 10.0.0-next.3 → 10.0.0-next.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -2
- package/dist/umd/common.umd.js +0 -19504
- package/dist/umd/common.umd.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"common.umd.js","sources":["../esm/objects/_map-values.js","../esm/objects/_deep-map-values.js","../esm/objects/get-prop.js","../esm/util.js","../esm/objects/deep-set.js","../esm/objects/ensure-prop.js","../esm/objects/get-props.js","../esm/objects/get-with-default.js","../esm/objects/remove-empty-props.js","../esm/objects/deep-string-replace.js","../esm/objects/merge-objects.js","../esm/objects/set-prop.js","../esm/objects/deepFind.js","../esm/utils/batch.js","../esm/utils/includes.js","../esm/utils/ensure-unique-string.js","../../../../node_modules/tslib/tslib.es6.js","../esm/OperationError.js","../esm/utils/create-operation-pipeline.js","../esm/utils/fail-safe.js","../esm/utils/generate-random-string.js","../esm/utils/get-hub-product.js","../esm/utils/get-subscription-type.js","../esm/utils/is-guid.js","../esm/utils/map-by.js","../esm/utils/slugify.js","../esm/utils/without-by-prop.js","../esm/utils/propify-string.js","../esm/utils/increment-string.js","../esm/utils/logger.js","../esm/utils/is-update-group.js","../esm/utils/revertable-tasks.js","../../../../node_modules/@esri/arcgis-rest-request/dist/esm/utils/process-params.js","../../../../node_modules/@esri/arcgis-rest-request/dist/esm/utils/encode-query-string.js","../../../../node_modules/@esri/arcgis-rest-request/dist/esm/utils/encode-form-data.js","../../../../node_modules/@esri/arcgis-rest-request/dist/esm/utils/ArcGISRequestError.js","../../../../node_modules/@esri/arcgis-rest-request/dist/esm/utils/warn.js","../../../../node_modules/@esri/arcgis-rest-request/dist/esm/request.js","../../../../node_modules/@esri/arcgis-rest-request/dist/esm/utils/append-custom-params.js","../../../../node_modules/@esri/arcgis-rest-request/dist/esm/utils/clean-url.js","../../../../node_modules/@esri/arcgis-rest-request/dist/esm/utils/decode-query-string.js","../../../../node_modules/@esri/arcgis-rest-auth/dist/esm/fetch-token.js","../../../../node_modules/@esri/arcgis-rest-auth/dist/esm/generate-token.js","../../../../node_modules/@esri/arcgis-rest-auth/dist/esm/federation-utils.js","../../../../node_modules/@esri/arcgis-rest-auth/dist/esm/validate-app-access.js","../../../../node_modules/@esri/arcgis-rest-auth/dist/esm/UserSession.js","../esm/utils/sessionLocalStorage.js","../esm/utils/dasherize.js","../esm/access/has-base-priv.js","../esm/access/can-edit-event.js","../esm/access/can-edit-item.js","../esm/access/can-edit-site-content.js","../esm/access/can-edit-site.js","../esm/urls/build-url.js","../../../../node_modules/@esri/arcgis-rest-portal/dist/esm/util/get-portal-url.js","../../../../node_modules/@esri/arcgis-rest-portal/dist/esm/items/helpers.js","../../../../node_modules/@esri/arcgis-rest-portal/dist/esm/items/update.js","../../../../node_modules/@esri/arcgis-rest-portal/dist/esm/items/add.js","../../../../node_modules/@esri/arcgis-rest-portal/dist/esm/items/create.js","../../../../node_modules/@esri/arcgis-rest-portal/dist/esm/util/scrub-control-chars.js","../../../../node_modules/@esri/arcgis-rest-portal/dist/esm/items/get.js","../../../../node_modules/@esri/arcgis-rest-portal/dist/esm/items/protect.js","../../../../node_modules/@esri/arcgis-rest-portal/dist/esm/groups/get.js","../../../../node_modules/@esri/arcgis-rest-portal/dist/esm/sharing/helpers.js","../../../../node_modules/@esri/arcgis-rest-portal/dist/esm/items/remove.js","../../../../node_modules/@esri/arcgis-rest-portal/dist/esm/util/SearchQueryBuilder.js","../../../../node_modules/@esri/arcgis-rest-portal/dist/esm/util/generic-search.js","../../../../node_modules/@esri/arcgis-rest-portal/dist/esm/items/search.js","../../../../node_modules/@esri/arcgis-rest-portal/dist/esm/items/upload.js","../../../../node_modules/@esri/arcgis-rest-portal/dist/esm/util/array.js","../../../../node_modules/@esri/arcgis-rest-portal/dist/esm/groups/add-users.js","../../../../node_modules/@esri/arcgis-rest-portal/dist/esm/groups/remove-users.js","../../../../node_modules/@esri/arcgis-rest-portal/dist/esm/groups/invite-users.js","../../../../node_modules/@esri/arcgis-rest-portal/dist/esm/groups/protect.js","../../../../node_modules/@esri/arcgis-rest-portal/dist/esm/groups/remove.js","../../../../node_modules/@esri/arcgis-rest-portal/dist/esm/groups/search.js","../../../../node_modules/@esri/arcgis-rest-portal/dist/esm/groups/update-user-membership.js","../../../../node_modules/@esri/arcgis-rest-portal/dist/esm/orgs/notification.js","../../../../node_modules/@esri/arcgis-rest-portal/dist/esm/users/get-user.js","../../../../node_modules/@esri/arcgis-rest-portal/dist/esm/users/search-users.js","../../../../node_modules/@esri/arcgis-rest-portal/dist/esm/sharing/access.js","../../../../node_modules/@esri/arcgis-rest-portal/dist/esm/sharing/is-item-shared-with-group.js","../../../../node_modules/@esri/arcgis-rest-portal/dist/esm/sharing/share-item-with-group.js","../../../../node_modules/@esri/arcgis-rest-portal/dist/esm/sharing/unshare-item-with-group.js","../../../../node_modules/@esri/arcgis-rest-portal/dist/esm/util/get-portal.js","../esm/urls/get-portal-url.js","../esm/urls/hub-cdn-urlmap.js","../esm/urls/get-hub-locale-asset-url.js","../esm/urls/get-portal-api-url.js","../esm/urls/upgrade-protocol.js","../esm/urls/strip-protocol.js","../esm/urls/_get-http-and-https-uris.js","../esm/urls/_get-location.js","../esm/urls/_get-hub-url-from-portal-hostname.js","../esm/urls/get-hub-url-from-portal.js","../esm/urls/get-hub-api-url-from-portal.js","../esm/urls/get-item-home-url.js","../esm/urls/get-item-api-url.js","../esm/urls/get-item-data-url.js","../esm/urls/convert-urls-to-anchor-tags.js","../esm/urls/getHubApiFromPortalUrl.js","../esm/urls/getPortalBaseFromOrgUrl.js","../esm/urls/getGroupHomeUrl.js","../esm/urls/getUserHomeUrl.js","../esm/urls/index.js","../esm/api.js","../esm/ArcGISContext.js","../esm/ArcGISContextManager.js","../esm/auth.js","../esm/collections.js","../esm/categories.js","../../../../node_modules/@esri/arcgis-rest-feature-layer/dist/esm/query.js","../../../../node_modules/@esri/arcgis-rest-feature-layer/dist/esm/helpers.js","../../../../node_modules/@esri/arcgis-rest-feature-layer/dist/esm/getAllLayersAndTables.js","../../../../node_modules/@esri/arcgis-rest-feature-layer/dist/esm/getLayer.js","../../../../node_modules/@esri/arcgis-rest-feature-layer/dist/esm/getService.js","../esm/core/types/IHubContent.js","../esm/extent.js","../esm/content/get-family.js","../esm/content/_internal.js","../esm/items/get-structured-license.js","../esm/resources/get-item-thumbnail-url.js","../esm/content/compose.js","../esm/content/slugs.js","../esm/OperationStack.js","../../../../node_modules/fast-xml-parser/src/util.js","../../../../node_modules/fast-xml-parser/src/node2json.js","../../../../node_modules/fast-xml-parser/src/xmlNode.js","../../../../node_modules/strnum/strnum.js","../../../../node_modules/fast-xml-parser/src/xmlstr2xmlnode.js","../../../../node_modules/fast-xml-parser/src/validator.js","../../../../node_modules/fast-xml-parser/src/nimndata.js","../../../../node_modules/fast-xml-parser/src/node2json_str.js","../../../../node_modules/fast-xml-parser/src/json2xml.js","../../../../node_modules/fast-xml-parser/src/parser.js","../esm/org/fetch-org.js","../esm/org/fetchOrgLimits.js","../esm/items/_enrichments.js","../esm/utils/_array.js","../esm/request.js","../esm/content/_fetch.js","../esm/content/fetch.js","../esm/resources/_add-token-to-resource-url.js","../esm/resources/convert-solution-template-resources-to-assets.js","../esm/resources/fetch-image-as-blob.js","../esm/resources/fetch-and-upload-resource.js","../esm/resources/fetch-and-upload-thumbnail.js","../esm/resources/get-item-assets.js","../esm/resources/string-to-blob.js","../esm/resources/upload-resources-from-url.js","../esm/resources/add-solution-resource-url-to-assets.js","../esm/resources/object-to-json-blob.js","../esm/types.js","../esm/resources/_internal/_validate-url-helpers.js","../esm/resources/validate-url.js","../esm/search/_internal/parseInclude.js","../esm/content/HubContent.js","../esm/content/index.js","../../../../node_modules/abab/lib/atob.js","../../../../node_modules/abab/lib/btoa.js","../../../../node_modules/abab/index.js","../esm/downloads/build-existing-exports-portal-query.js","../esm/groups/_unprotect-and-remove-group.js","../esm/groups/add-users-workflow/output-processors/_consolidate-results.js","../esm/groups/add-users-workflow/output-processors/_format-auto-add-response.js","../esm/groups/add-users-workflow/utils/_can-email-user.js","../esm/groups/add-users-workflow/utils/_is-org-admin.js","../esm/groups/add-users-workflow/workflow-sections/email-org-users.js","../esm/groups/add-users-workflow/output-processors/_process-secondary-email.js","../esm/groups/add-users-workflow/workflow-sections/auto-add-users.js","../esm/groups/add-users-workflow/output-processors/_process-auto-add.js","../esm/groups/add-users-workflow/workflow-sections/invite-users.js","../esm/groups/add-users-workflow/output-processors/_process-invite.js","../esm/groups/add-users-workflow/output-processors/_process-primary-email.js","../esm/groups/add-users-workflow/utils/_get-auto-add-users.js","../esm/groups/add-users-workflow/utils/_get-invite-users.js","../esm/groups/add-users-workflow/utils/_get-email-users.js","../esm/groups/add-users-workflow/add-users-to-group.js","../esm/groups/_internal/enrichments.js","../esm/search/utils.js","../esm/search/upgradeCatalogSchema.js","../esm/search/_internal/expandPredicate.js","../esm/search/serializeQueryForPortal.js","../esm/HubError.js","../esm/search/_internal/portalSearchUtils.js","../esm/search/_internal/searchEntities.js","../esm/pages/HubPages.js","../esm/models/serializeModel.js","../esm/models/index.js","../esm/items/slugs.js","../esm/core/_internal/PropertyMapper.js","../esm/projects/HubProjects.js","../esm/items/setItemThumbnail.js","../esm/projects/HubProjectManager.js","../esm/sites/_internal/_ensure-telemetry.js","../esm/sites/domains/_check-status-and-parse-json.js","../esm/sites/domains/_get-auth-header.js","../esm/sites/domains/_get-domain-service-url.js","../esm/sites/domains/_lookup-portal.js","../esm/sites/domains/add-domain.js","../esm/sites/domains/domain-exists.js","../esm/sites/domains/domain-exists-portal.js","../esm/sites/domains/get-domains-for-site.js","../esm/sites/domains/get-unique-domain-name.js","../esm/sites/domains/get-unique-domain-name-portal.js","../esm/sites/domains/is-domain-for-legacy-site.js","../esm/sites/domains/lookup-domain.js","../esm/sites/domains/is-domain-used-elsewhere.js","../esm/sites/domains/is-valid-domain.js","../esm/sites/domains/remove-domain.js","../esm/sites/domains/remove-domains-by-site-id.js","../esm/sites/domains/update-domain.js","../esm/sites/domains/_ensure-safe-domain-length.js","../esm/sites/domains/ensure-unique-domain-name.js","../esm/sites/domains/addSiteDomains.js","../esm/sites/domains/removeDomainByHostname.js","../esm/sites/drafts/build-draft.js","../esm/sites/fetchSiteModel.js","../esm/sites/get-site-by-id.js","../esm/sites/_internal/handleDomainChanges.js","../esm/search/_internal/createQueryFromString.js","../esm/sites/HubSites.js","../esm/sites/HubSiteManager.js","../esm/items/registerBrowserApp.js","../esm/sites/registerSiteAsApplication.js","../esm/sites/site-schema-version.js","../esm/sites/themes.js","../esm/sites/_internal/_apply-site-schema.js","../esm/sites/_internal/_enforce-lowercase-domains.js","../esm/sites/_internal/_ensure-catalog.js","../esm/sites/_internal/_purge-non-guids-from-catalog.js","../esm/sites/_internal/_migrate-feed-config.js","../esm/sites/upgrade-site-schema.js","../esm/search/_internal/portalSearchItems.js","../esm/search/_internal/hubSearchItems.js","../esm/search/_internal/portalSearchGroups.js","../esm/search/_internal/portalSearchUsers.js","../esm/search/hubSearch.js","../esm/search/Collection.js","../esm/search/fetchCatalog.js","../esm/search/Catalog.js","../esm/groups/HubGroups.js","../esm/i18n/hub-locales.js","../esm/i18n/convert-to-well-known-locale.js","../esm/i18n/fetch-hub-translation.js","../esm/i18n/get-culture.js","../esm/items/_unprotect-and-remove-item.js","../esm/items/apply-properties-to-items.js","../esm/items/delete-prop.js","../esm/items/fail-safe-update.js","../esm/items/get-model-from-options.js","../../../../node_modules/adlib/dist/adlib.esm.js","../esm/items/interpolate.js","../esm/items/interpolate-item-id.js","../esm/items/replace-item-id.js","../esm/items/share-item-to-groups.js","../esm/items/unprotect-model.js","../esm/items/unshare-item-from-groups.js","../esm/items/does-item-exist-with-title.js","../esm/items/get-unique-item-title.js","../esm/items/fetch-all-pages.js","../esm/items/normalize-solution-template-item.js","../esm/items/_internal/_prepare-upload-requests.js","../esm/items/create-item-from-file.js","../esm/items/create-item-from-url.js","../esm/items/_internal/_wait-for-item-ready.js","../esm/items/create-item-from-url-or-file.js","../esm/surveys/get-input-feature-service-model.js","../esm/surveys/get-source-feature-service-model-from-fieldworker.js","../esm/surveys/get-stakeholder-model.js","../esm/surveys/is-fieldworker-view.js","../esm/surveys/get-survey-models.js","../esm/Hub.js","../esm/users/_internal/enrichments.js","../esm/users/HubUsers.js"],"sourcesContent":["/**\n * Maps over the values of an object (one level deep)\n * @param obj\n * @param fn\n * @private\n */\nexport function _mapValues(obj, fn) {\n var keys = Object.keys(obj);\n var newObject = keys.reduce(function (acc, currentKey) {\n acc[currentKey] = fn(obj[currentKey], currentKey, obj);\n return acc;\n }, {});\n return newObject;\n}\n//# sourceMappingURL=_map-values.js.map","import { _mapValues } from \"./_map-values\";\n/**\n * Maps over _all_ values of an object graph\n * @param object\n * @param callback function to be called on each value\n * @param propertyPath an initial path (optional, only changes what is passed to the callback as the \"path\" argument)\n * @private\n */\nexport function _deepMapValues(object, callback, propertyPath) {\n propertyPath = propertyPath || \"\";\n if (Array.isArray(object)) {\n return object.map(deepMapValuesIteratee);\n }\n else if (object &&\n _isObject(object) &&\n !_isDate(object) &&\n !_isRegExp(object) &&\n !_isFunction(object)) {\n return Object.assign({}, object, _mapValues(object, deepMapValuesIteratee));\n }\n else {\n return callback(object, propertyPath);\n }\n function deepMapValuesIteratee(value, key) {\n var valuePath = \"\" + (propertyPath ? propertyPath + \".\" + key : key);\n return _deepMapValues(value, callback, valuePath);\n }\n}\n// Simple \"good-enough\" type checks for the tree traversal functions\n// these are not bullet-proof and should not be public/docd\n/**\n * Is this a string?\n * @param v\n * @private\n */\nexport function _isString(v) {\n return typeof v === \"string\" || v instanceof String;\n}\n/**\n * Return if the passed entry is a Date\n * @param v\n * @private\n */\nexport function _isDate(v) {\n return v instanceof Date;\n}\n/**\n * Is this a function?\n * @param v\n * @private\n */\nexport function _isFunction(v) {\n return typeof v === \"function\";\n}\n/**\n * Is this an Object?\n * @param v\n * @private\n */\nexport function _isObject(v) {\n return typeof v === \"object\";\n}\n/**\n * Is this a regexp?\n * @param v\n * @private\n */\nexport function _isRegExp(v) {\n return v instanceof RegExp;\n}\n//# sourceMappingURL=_deep-map-values.js.map","/**\n * Get a property out of a deeply nested object\n * Does not handle anything but nested object graph\n */\nexport function getProp(obj, path) {\n return path.split(\".\").reduce(function (prev, curr) {\n /* istanbul ignore next no need to test undefined scenario */\n return prev ? prev[curr] : undefined;\n }, obj);\n}\n//# sourceMappingURL=get-prop.js.map","/* Copyright (c) 2018-2019 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { getProp } from \"./objects/get-prop\";\n/**\n * ```js\n * import { cloneObject } from \"@esri/hub-common\";\n * const original = { foo: \"bar\" }\n * const copy = cloneObject(original)\n * copy.foo // \"bar\"\n * copy === original // false\n * ```\n * Make a deep clone, including arrays. Does not handle functions!\n */\nexport function cloneObject(obj) {\n var clone = {};\n // first check array\n if (Array.isArray(obj)) {\n clone = obj.map(cloneObject);\n }\n else if (typeof obj === \"object\") {\n for (var i in obj) {\n /* istanbul ignore next no need to deal w/ other side of hasOwnProperty() */\n if (obj.hasOwnProperty(i)) {\n var value = obj[i];\n if (value != null && typeof value === \"object\") {\n if (value instanceof Date) {\n clone[i] = new Date(value.getTime());\n }\n else {\n clone[i] = cloneObject(value);\n }\n }\n else {\n clone[i] = value;\n }\n }\n }\n }\n else {\n clone = obj;\n }\n return clone;\n}\n/**\n * Given an array of objects, convert into an object, with each\n * entry assigned the key via the keyprop\n */\nexport function arrayToObject(arr, key) {\n return arr.reduce(function (hash, entry) {\n hash[getProp(entry, key)] = entry;\n return hash;\n }, {});\n}\n/**\n * Given an object, convert into an array, with each\n * something or other\n */\nexport function objectToArray(obj, keyProp) {\n if (keyProp === void 0) { keyProp = \"id\"; }\n var arr = Object.keys(obj).reduce(function (acc, prop) {\n obj[prop][keyProp] = prop;\n acc.push(cloneObject(obj[prop]));\n return acc;\n }, []);\n return arr;\n}\n/**\n * Return an entry from an array by a property name\n */\nexport function findBy(arr, prop, value) {\n if (!arr) {\n return null;\n }\n var res = arr.reduce(function (acc, entry) {\n if (getProp(entry, prop) === value) {\n acc = entry;\n }\n return acc;\n }, null);\n return res;\n}\n/**\n * Return a new array without the specified value.\n *\n * @export\n * @param {any[]} arr\n * @param {*} val value or object to remove\n * @returns {any[]} Array without the value\n */\nexport function without(arr, value) {\n var res = arr.filter(function (entry) { return entry !== value; });\n return res;\n}\n/**\n * Compose\n * adapted from: https://github.com/stoeffel/compose-function/blob/master/module/index.js\n */\nexport function compose() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return fns.reduce(function (f, g) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return f(g.apply(void 0, args));\n };\n });\n}\n/**\n * Return a random number, prefixed with a string. Used for unique identifiers that do not require\n * the rigor of a full UUID - i.e. node id's, process ids etc.\n * @param prefix String to prefix the random number with so the result is a valid javascript property\n */\nexport function createId(prefix) {\n if (prefix === void 0) { prefix = \"i\"; }\n // prepend some char so it's always a valid dotable property name\n // get a random number, convert to base 36 representation, then grab chars 2-8\n return \"\" + prefix + Math.random().toString(36).substr(2, 8);\n}\n/**\n * Append or replace a value on an object, using a specified key, if the value is not null.\n * This is a very useful companion to the [getProp()](../getProp/) utility.\n *\n * Note: object that is passed in is cloned before the property is appended.\n *\n * Allows for code like:\n *\n * ```js\n * let model = {\n * item: {\n * title: 'some example object',\n * description: 'this is some longer text',\n * type: 'Web Map',\n * properties: {\n * sourceId: '3ef'\n * }\n * },\n * data: {\n * theme: 'orange',\n * parcelLayer: {\n * primaryField: 'PIN'\n * }\n * }\n * };\n *\n * // Let's extract some details into an object.\n * const summary = [\n * 'item.title',\n * 'item.description',\n * 'item.missingProp',\n * 'data.parcelLayer.primaryField'].reduce((acc, prop) => {\n * // create the property name... you could do this however...\n * let propName = prop.split('.').reverse()[0];\n * return maybeAdd(propName, getProp(model, key), acc);\n * }, {});\n *\n * // summary =>\n * // {\n * // title: 'some example object',\n * // description: 'this is some longer text',\n * // primaryField: 'PIN'\n * // }\n * ```\n * @param key - key to use when appending to the object\n * @param val - the possibly null value\n * @param target - the object to update\n */\nexport function maybeAdd(key, val, target) {\n // see if we got something...\n if (val !== null && val !== undefined) {\n target = cloneObject(target);\n // attach using the key\n target[key] = val;\n }\n return target;\n}\n/**\n * Append a value to an array, if the value is not null.\n * This is a very useful companion to the [getProp()](../getProp/) utility.\n *\n * Note: the array that is passed in is cloned before being appended to.\n *\n * Allows for code like:\n * ```js\n * // example object\n * let model = {\n * item: {\n * id: 'c00',\n * title: 'some example object',\n * description: 'this is some longer text',\n * type: 'Web Map',\n * properties: {\n * sourceId: '3ef'\n * }\n * },\n * data: {\n * theme: 'orange',\n * parcelLayer: {\n * itemId: '7ca',\n * primaryField: 'PIN'\n * }\n * }\n * };\n * // lets pluck some id's into an array...\n * maybePush(getProp(model, 'item.properties.sourceId'), []);\n * // > ['3ef']\n *\n * // now try to get a value from a property that is missing...\n * maybePush(getProp(obj, 'item.properties.childId'), []);\n * // > []\n *\n * // easily pluck values via property paths\n * const summary = [\n * 'item.id',\n * 'item.properties.sourceId',\n * 'item.properties.childId',\n * 'data.parcelLayer.itemId'].reduce((acc, prop) => {\n * return maybePush(getProp(model, key), acc);\n * }, []);\n *\n * // summary => ['c00', '3ef', '7ca']\n *\n * ```\n *\n * @param val - the possibly null value\n * @param target - the array to add the value to\n */\nexport function maybePush(val, target) {\n if (val !== null && val !== undefined) {\n // create a clone because mutation makes us sad...\n target = cloneObject(target);\n target.push(val);\n }\n return target;\n}\n/**\n * Convert a string to camelCase\n *\n * @export\n * @param {string} value\n * @returns {string} camelCased string\n */\nexport function camelize(value) {\n // lower case the whole thing to start...\n value = value.toLowerCase();\n // strip out any/all special chars...\n value = value.replace(/[`~!@#$%^&*()_|+\\-=?;:'\",.<>\\{\\}\\[\\]\\\\\\/]/gi, \" \");\n // Hoisted from EmberJS (MIT License)\n // https://github.com/emberjs/ember.js/blob/v2.0.1/packages/ember-runtime/lib/system/string.js#L23-L27\n var STRING_CAMELIZE_REGEXP_1 = /(\\-|\\_|\\.|\\s)+(.)?/g;\n var STRING_CAMELIZE_REGEXP_2 = /(^|\\/)([A-Z])/g;\n return value\n .replace(STRING_CAMELIZE_REGEXP_1, function (match, separator, chr) {\n return chr ? chr.toUpperCase() : \"\";\n })\n .replace(STRING_CAMELIZE_REGEXP_2, function (match, separator, chr) {\n return match.toLowerCase();\n });\n}\n/**\n * Determines if a value is unique in an array\n * Allows for code like:\n *\n * ```js\n * const ary = [ 1, 2, 3, 3, 4, 5, 1 ];\n *\n * const result = ary.filter(unique);\n *\n * result => [ 1, 2, 3, 4, 5 ]\n * ```\n * @param value - the value to search for\n * @param index - the index of the searched value\n * @param ary - the array to search\n * @returns {boolean} - indicating if the value is unique in the array\n */\nexport function unique(value, index, ary) {\n return ary.indexOf(value) === index;\n}\n/**\n * Return array of unique objects, based on a deep property value\n * Note: Property you compare on should be a primative type\n * @export\n * @template T\n * @param {T[]} arr\n * @param {string} prop\n * @return {*} {T[]}\n */\nexport function uniqueBy(arr, prop) {\n return arr.reduce(function (acc, entry) {\n var nameMatches = function (e) {\n return getProp(e, prop) === getProp(entry, prop);\n };\n return maybePush(acc.find(nameMatches) ? null : entry, acc);\n }, []);\n}\n/**\n * Return last element of an array\n *\n * @export\n * @template T\n * @param {T[]} arr\n * @return {*} {T}\n */\nexport function last(arr) {\n return arr[arr.length - 1];\n}\n/**\n * Filter an array by a deep property value\n *\n * @export\n * @template T\n * @param {T[]} arr\n * @param {string} prop\n * @param {unknown} val\n * @return {*} {T[]}\n */\nexport function filterBy(arr, prop, val) {\n return arr.filter(function (entry) { return getProp(entry, prop) === val; });\n}\n/**\n * Extends the target object with props from the source object, overwriting identically named\n * props in target with those from source, ignoring null and undefined values; similar to $.extend.\n * Performs a deep extend by default, unless deep = false is passed as the third arg.\n *\n * @param target - the object that will take props from source\n * @param source - the object from which to take props\n * @param deep - whether or not to perform a deep (recursive) extend of source\n */\nexport function extend(target, source, deep) {\n if (deep === void 0) { deep = true; }\n var extended = cloneObject(target);\n return Object.keys(source).reduce(function (obj, prop) {\n if (source[prop] !== null && source[prop] !== undefined) {\n var value = cloneObject(source[prop]);\n if (Array.isArray(value)) {\n // check for arrays, since array is type object\n obj[prop] = value;\n }\n else if (deep && typeof value === \"object\") {\n obj[prop] = extend(obj[prop] || {}, value, deep);\n }\n else {\n obj[prop] = value;\n }\n }\n return obj;\n }, extended);\n}\n/**\n * Add number of days to a given date\n *\n * @export\n * @param {string} date\n * @param {number} numOfDays\n * @returns {string} date string with numOfDays added to the given date\n */\nexport function addDays(date, numOfDays) {\n try {\n var given = new Date(date);\n var dateString = new Date(given.setDate(given.getDate() + numOfDays)).toISOString();\n return dateString.split(\"T\")[0];\n }\n catch (e) {\n throw new Error(\"Invalid Date\");\n }\n}\n/**\n * Returns an array with arrays of the given size.\n *\n * @param arr Array to split\n * @param size Size of every group\n */\nexport function chunkArray(arr, size) {\n var results = [];\n var index = 0;\n while (index < arr.length) {\n results.push(arr.slice(index, index + size));\n index += size;\n }\n return results;\n}\n/**\n * Determine if a value is null or undefined\n * @param value anything\n * @returns\n */\nexport var isNil = function (value) { return value == null; };\n/**\n * Upper case first letter (only) of a string\n * @param word\n * @returns Word\n */\nexport var capitalize = function (word) {\n // upper case first letter and return as element in array for backwards compatibility\n var chars = Array.from(word);\n chars[0] = chars[0].toUpperCase();\n return chars.join(\"\");\n};\n/**\n * An IE-compatible stand-in for Javascript's [array.flat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flat)\n * @param arr the array\n * @returns an array\n */\nexport function flattenArray(arr) {\n return arr.reduce(function (acc, val) { return acc.concat(val); }, []);\n}\n//# sourceMappingURL=util.js.map","import { cloneObject } from \"../util\";\n/**\n * Deep set function. Like Ember.set, but smarter as it will create the path\n * @param {Object} target Object we want to set the property on\n * @param {String} path Dotted path to the property we want to set\n * @param {Any} value Value we want to assign to the property\n */\nexport function deepSet(target, path, value) {\n if (value === void 0) { value = {}; }\n var parts = path.split(\".\");\n var worker = target;\n var lastIdx = parts.length - 1;\n parts.forEach(function (p, idx) {\n if (!worker.hasOwnProperty(p) || worker[p] == null) {\n if (idx === lastIdx) {\n worker[p] = value;\n }\n else {\n // keep building the path\n worker[p] = {};\n }\n }\n else if (idx === lastIdx) {\n if (typeof worker[p] === \"object\" && !Array.isArray(worker[p])) {\n worker[p] = Object.assign(worker[p], cloneObject(value));\n }\n else {\n worker[p] = value;\n }\n }\n worker = worker[p];\n });\n}\n//# sourceMappingURL=deep-set.js.map","import { deepSet } from \"./deep-set\";\n/**\n * Ensure that an object has a deep property path.\n * This will replace any existing object at the end of the path\n * @param {Object} target Object we want to ensure has some deep property\n * @param {string} path Dotted path to the property we want to ensure exists\n */\nexport function ensureProp(target, path) {\n return deepSet(target, path);\n}\n//# sourceMappingURL=ensure-prop.js.map","import { getProp } from \"./get-prop\";\n/**\n * Given an array of prop paths, return all the values that exist, in an array\n */\nexport function getProps(obj, props) {\n return props.reduce(function (a, p) {\n var v = getProp(obj, p);\n if (v) {\n a.push(v);\n }\n return a;\n }, []);\n}\n//# sourceMappingURL=get-props.js.map","import { getProp } from \"./get-prop\";\n/**\n * Gets the value of a property from an object with a\n * default if that prop is undefined\n * @param obj\n * @param prop\n * @param def\n */\nexport function getWithDefault(obj, prop, def) {\n var res = getProp(obj, prop);\n return res !== undefined ? res : def;\n}\n//# sourceMappingURL=get-with-default.js.map","/**\n * Remove empty properties from an object graph\n * @param {Object} obj Object to remove empty/null properties from\n */\nexport function removeEmptyProps(obj) {\n // http://stackoverflow.com/questions/286141/remove-blank-attributes-from-an-object-in-javascript\n Object.keys(obj).forEach(function (key) {\n if (obj[key] && typeof obj[key] === \"object\") {\n removeEmptyProps(obj[key]);\n }\n else if (obj[key] == null) {\n delete obj[key];\n }\n });\n return obj;\n}\n//# sourceMappingURL=remove-empty-props.js.map","import { _deepMapValues, _isString, _isRegExp } from \"./_deep-map-values\";\n/**\n * Iterate over an object graph, and for all string properties, search for a string,\n * and replace it with another string\n */\nexport function deepStringReplace(obj, stringOrRegex, replacement) {\n var replacedObject = _deepMapValues(obj, function (value) {\n // Only string templates\n if (!_isString(value)) {\n return value;\n }\n var re;\n if (_isRegExp(stringOrRegex)) {\n re = stringOrRegex;\n }\n else {\n re = new RegExp(stringOrRegex, \"g\");\n }\n return value.replace(re, replacement);\n });\n return replacedObject;\n}\n//# sourceMappingURL=deep-string-replace.js.map","import { getProp } from \"./get-prop\";\nimport { deepSet } from \"./deep-set\";\n/**\n * Apply a specified set properties from a source object to a target object\n *\n * @param {Object} source The source object\n * @param {Object} target The target object\n * @param {Array} allowList Array of property paths (if not provided, source returned)\n */\nexport function mergeObjects(source, target, allowList) {\n if (Array.isArray(allowList) && allowList.length) {\n // we iterate the allowList, applying changes to the target from source\n allowList.forEach(function (prop) {\n if (getProp(source, prop) !== undefined) {\n deepSet(target, prop, getProp(source, prop));\n }\n });\n // return the modified target object\n return target;\n }\n else {\n // if no property paths were passed in, return the source\n return source;\n }\n}\n//# sourceMappingURL=merge-objects.js.map","import { deepSet } from \"./deep-set\";\n/**\n * Sets a deep object property, constructing the property path as necessary\n *\n * @param path - the path to the property we want to set\n * @param val - the value we want to set it to\n * @param obj - the target object\n */\nexport function setProp(path, val, obj) {\n if (Array.isArray(path)) {\n path = path.join(\".\");\n }\n deepSet(obj, path, val);\n}\n//# sourceMappingURL=set-prop.js.map","import { _isDate, _isFunction, _isObject, _isRegExp, } from \"./_deep-map-values\";\n/**\n * Traverse a graph, locating the first entry with an `id` property that\n * has a specific string or number value\n *\n * ```js\n * const l = {\n * one: {\n * two: [\n * {\n * id: \"n001\",\n * color: \"red\"\n * },\n * {\n * id: \"n002\",\n * color: \"yellow\"\n * }\n * ]\n * }\n * };\n *\n * const config = deepFindById(l, \"n002\")\n * //> {id: \"n002\", color:\"yellow\"}\n * ```\n *\n * This was designed to search a Site/Page/Project layout, and return\n * the config for a card. There was some concern about the performance\n * and using a real layout object, in the test, it takes ~1.5ms to\n * do the search.\n *\n * @param object\n * @param key\n * @param value\n * @returns\n */\nexport function deepFindById(object, value) {\n var p = function (obj) { return obj.id === value; };\n return deepFind(object, p);\n}\n/**\n * Traverse a graph locating an entry that passes the predicate\n *\n * @param object\n * @param predicate\n * @returns\n */\nexport function deepFind(object, predicate) {\n if (Array.isArray(object)) {\n return object.reduce(function (acc, entry) {\n if (predicate(entry)) {\n acc = entry;\n }\n else {\n if (isFindable(entry)) {\n var maybe = deepFind(entry, predicate);\n if (maybe) {\n acc = maybe;\n }\n }\n }\n return acc;\n }, undefined);\n }\n else if (isFindable(object)) {\n if (predicate(object)) {\n return object;\n }\n else {\n return Object.keys(object).reduce(function (acc, entry) {\n if (isFindable(object[entry])) {\n var maybe = deepFind(object[entry], predicate);\n if (maybe) {\n acc = maybe;\n }\n }\n return acc;\n }, undefined);\n }\n }\n else {\n return undefined;\n }\n}\nfunction isFindable(object) {\n var result = false;\n if (object &&\n _isObject(object) &&\n !_isDate(object) &&\n !_isRegExp(object) &&\n !_isFunction(object)) {\n result = true;\n }\n return result;\n}\n//# sourceMappingURL=deepFind.js.map","/**\n * Helper to split a large number of calls into\n * smaller batches of concurrent calls.\n * @param {Array} values Any array of values with which to invoke fn\n * @param {Function} fn The function that will be invoked with each value\n * @param {number} [batchSize=5] The number of concurrent calls to fn, defaults to 5\n * @returns {Promise<IBatch[]>}\n */\nexport function batch(values, fn, batchSize) {\n if (batchSize === void 0) { batchSize = 5; }\n var toBatches = function (_batches, value) {\n var _batch = _batches[_batches.length - 1];\n if (!_batch || _batch.length === batchSize) {\n _batch = [];\n _batches.push(_batch);\n }\n _batch.push(value);\n return _batches;\n };\n var toSerialBatchChain = function (promise, batchOfValues) {\n var executeBatch = function (prevResults) {\n var batchResults = batchOfValues.map(function (id) { return fn(id); });\n return Promise.all(batchResults).then(function (results) {\n return prevResults.concat(results);\n });\n };\n return promise.then(executeBatch);\n };\n // split values into batches of values\n var batches = values.reduce(toBatches, []);\n // batches are processed serially, however\n // all calls within a batch are concurrent\n return batches.reduce(toSerialBatchChain, Promise.resolve([]));\n}\n//# sourceMappingURL=batch.js.map","/**\n * Checks whether a value exists in the given array\n * @param array The array\n * @param val The value\n */\nexport function includes(array, val) {\n return array.indexOf(val) !== -1;\n}\n//# sourceMappingURL=includes.js.map","import { includes } from \"./includes\";\n/**\n * Given an array of strings, add a value and ensure it is unique by incrementing a suffix number\n * @param {Array} entries array of strings\n * @param {string} value string to uniqueify and add\n */\nexport function ensureUniqueString(entries, value) {\n var foundUnique = false;\n var num = 0;\n var chk = value;\n while (!foundUnique) {\n if (includes(entries, chk)) {\n num++;\n chk = value + \"-\" + num;\n }\n else {\n foundUnique = true;\n }\n }\n return chk;\n}\n//# sourceMappingURL=ensure-unique-string.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/* Copyright (c) 2018-2020 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { __extends } from \"tslib\";\nimport { getWithDefault } from \"./objects/get-with-default\";\n/**\n * Generic Solution Error with an Error stack as well\n * as an optional serialized OperationStack.\n *\n * Also accepts a `rootCause` Error object\n */\nvar OperationError = /** @class */ (function (_super) {\n __extends(OperationError, _super);\n /**\n * Creates an instance of OperationError.\n * @param {string} operation\n * @param {string} [message]\n * @param {Error} [rootCause]\n * @memberof OperationError\n */\n function OperationError(operation, message, rootCause) {\n var _this = this;\n message = message || \"UNKNOWN_ERROR\";\n // if the rootCause has a .rootCause, use that so we don't deeply nest\n rootCause = getWithDefault(rootCause, \"rootCause\", rootCause);\n _this = _super.call(this, message) || this;\n _this.operation = operation;\n _this.name = \"OperationError\";\n _this.rootCause = rootCause;\n Object.setPrototypeOf(_this, OperationError.prototype);\n // using rootCause.stack ensures that the resulting error will have the original\n // message + call stack. If that's not an option, we create a new\n // stack... which is better than nothing, but it will look like\n // OperationError is the source of the error\n _this.stack = getWithDefault(rootCause, \"stack\", new Error().stack);\n return _this;\n }\n return OperationError;\n}(Error));\nexport default OperationError;\n//# sourceMappingURL=OperationError.js.map","import OperationError from \"../OperationError\";\n/**\n * Returns a function that orchestrates a pipeline of smaller functions.\n * See [Composing Workflows](../../../guides/composing-workflows) for more information.\n *\n * All the functions must adhere to the `PipelineFn<T>` signature:\n *\n * `(value: IPipeable<T>) => Promise<IPipeable<T>>`\n *\n * Given an array of OperationPipeFns, run them in sequence and return the resultant promise\n *\n * i.e. `createOperationPipeline([fn1, fn2, f3])` will return in a function that chains\n * the functions like this: `fn1(input).then(fn2).then(fn3).then(result)`\n *\n * @param fns functions to be run in sequence\n * @returns Promise<Pipable<T>>\n */\nexport var createOperationPipeline = function (fns) {\n return function (input) {\n return fns.reduce(function (chain, func) {\n return chain.then(func).catch(function (err) {\n // if it's an OperationError we can just reject with it...\n if (err.name === \"OperationError\") {\n return Promise.reject(err);\n }\n else {\n // otherwise, create an OperationError and reject with that\n var msg = \"IPipeableFn did not reject with an OperationError \\n Operation Stack: \\n \" + input.stack.toString();\n var opErr = new OperationError(\"pipeline execution error\", msg);\n opErr.operationStack = input.stack.serialize();\n return Promise.reject(opErr);\n }\n });\n }, Promise.resolve(input));\n };\n};\n//# sourceMappingURL=create-operation-pipeline.js.map","/**\n * Wrap an async function such that it will never reject\n * @param {Function} fn Async Function that we want to never fail\n * @param {Object} resolveWith Object to resolve with in the event of a failure\n */\nexport function failSafe(fn, resolveWith) {\n if (resolveWith === void 0) { resolveWith = {}; }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return fn.apply(void 0, args).catch(function (_) {\n return resolveWith;\n });\n };\n}\n//# sourceMappingURL=fail-safe.js.map","/**\n * Generate a random string of a specified length\n * User when we need to ensure a unique domain with a fixed length\n * @param {Number} chars Length of random string\n */\nexport function generateRandomString(chars) {\n var d = new Date().getTime();\n var result = Array(chars)\n .fill(0)\n .reduce(function (acc) {\n /* tslint:disable-next-line */\n var r = (d + Math.random() * 16) % 16 | 0;\n d = Math.floor(d / 16);\n acc = \"\" + acc + r.toString(16);\n return acc;\n }, \"\");\n return result;\n}\n//# sourceMappingURL=generate-random-string.js.map","import { getProp } from \"../objects/get-prop\";\n/**\n * Gien a portal settings object, determine the hub product name\n * @param {Object} portal Portal settings object\n */\nexport function getHubProduct(portal) {\n var isPremium = getProp(portal, \"portalProperties.hub.enabled\") || false;\n var product = isPremium ? \"premium\" : \"basic\";\n // TODO confirm w/ AGO that this is 100% bomber logic\n if (portal.isPortal && portal.portalMode === \"singletenant\") {\n product = \"portal\";\n }\n return product;\n}\n//# sourceMappingURL=get-hub-product.js.map","import { getWithDefault } from \"../objects/get-with-default\";\nexport var getSubscriptionType = function (portalSelf) {\n return getWithDefault(portalSelf, \"subscriptionInfo.type\", \"Enterprise\");\n};\n//# sourceMappingURL=get-subscription-type.js.map","/**\n * Is a String a GUID?\n * @param {string} stringToTest string to check if it's a GUID\n */\nexport function isGuid(stringToTest) {\n // strip curlies if sent...\n if (stringToTest[0] === \"{\") {\n stringToTest = stringToTest.substring(1, stringToTest.length - 1);\n }\n // ughh... seems legit\n var regexGuid = /^(\\{){0,1}[0-9a-fA-F]{8}[-]?[0-9a-fA-F]{4}[-]?[0-9a-fA-F]{4}[-]?[0-9a-fA-F]{4}[-]?[0-9a-fA-F]{12}(\\}){0,1}$/gi;\n // test\n return regexGuid.test(stringToTest);\n}\n//# sourceMappingURL=is-guid.js.map","/**\n * Map over an array returning the specified property for each entry\n * @param {String} prop Property to extracct\n * @param {Array} arr array of objects\n */\nexport function mapBy(prop, arr) {\n if (arr === void 0) { arr = []; }\n return arr.map(function (e) { return e[prop]; });\n}\n//# sourceMappingURL=map-by.js.map","/**\n * Perform the following operations on a string to make it slug-friendly:\n * 1. trim it\n * 2. convert to lowercase\n * 3. remove any character not a-z, 0-9, or _\n * 4. dasherize it\n * @param {String} value String to slugify\n */\nexport function slugify(value) {\n if (typeof value === \"string\") {\n // @ts-ignore\n return value\n .trim()\n .toLowerCase()\n .replace(/ +/g, \"-\")\n .replace(/[^\\w-]/g, \"\")\n .replace(/-+/g, \"-\");\n }\n else {\n return value;\n }\n}\n//# sourceMappingURL=slugify.js.map","/**\n * Returns a new array with all the entries have the given value\n * at the given prop location removed.\n *\n * @param prop the property\n * @param val the value\n * @param arr the array\n */\nexport function withoutByProp(prop, val, arr) {\n return arr.filter(function (e) {\n return e[prop] !== val;\n });\n}\n//# sourceMappingURL=without-by-prop.js.map","import { camelize } from \"../util\";\n/**\n * Given a string, strip out chars etc that would make it\n * and invalid javascript property name, then camelize it.\n * @param {string} value String to convert into a property\n */\nexport function propifyString(value) {\n var result = value;\n // strip off any leading numbers...\n result = result.replace(/^[0-9]*/g, \"\");\n // remove any rando chars...\n result = result.replace(/[^\\w\\s]/g, \"\");\n // camelize the rest...\n result = camelize(result);\n return result;\n}\n//# sourceMappingURL=propify-string.js.map","/**\n * Given a string, append a `- 1` on the end if no number is present\n * otherwise, increment the number\n * @param {string} str String to increment\n */\nexport function incrementString(str) {\n var matches = str.match(/-\\s(\\d+$)/);\n if (matches) {\n // get the number\n var current = parseInt(matches[1], 10);\n // replace `- current` with `- current + 1`\n var next = current + 1;\n str = str.replace(\"- \" + current, \"- \" + next);\n }\n else {\n str = str + \" - 1\";\n }\n return str;\n}\n//# sourceMappingURL=increment-string.js.map","/* tslint:disable no-console */\nimport { __spreadArrays } from \"tslib\";\n/**\n * Enum for Logger Levels\n */\nexport var Level;\n(function (Level) {\n Level[Level[\"all\"] = 0] = \"all\";\n Level[Level[\"debug\"] = 1] = \"debug\";\n Level[Level[\"info\"] = 2] = \"info\";\n Level[Level[\"warn\"] = 3] = \"warn\";\n Level[Level[\"error\"] = 4] = \"error\";\n Level[Level[\"off\"] = 5] = \"off\";\n})(Level || (Level = {}));\n/**\n * ```js\n * import { Logger, Level } from '@esri/hub-common'\n * ```\n * Functions share the console interface\n * ```js\n * Logger.log('My Message');\n * Logger.warn('Watch out!', { threat: 'Charizard' });\n * // etc, etc\n * ```\n * Available logging levels are specified in the Level enum. The hierarchy is as follows:\n * ```\n * off > error > warn > info > debug > all\n * ```\n * Logger only sends messages whose level is greater than or equal to the global log level\n * ```js\n * // Global level is 'warn'\n * Logger.info('This message won't log');\n * Logger.error('But this one will!');\n * ```\n * Logger's default level is 'off', so set desired level before use\n * ```js\n * Logger.setLogLevel(Level.all);\n * ```\n */\nvar Logger = /** @class */ (function () {\n function Logger() {\n }\n /**\n * Sets the global log level\n * @param {Level} level\n */\n Logger.setLogLevel = function (level) {\n this.logLevel = level;\n };\n /**\n * Logs to debug if level is enabled\n * @param {string} message\n * @param {...*} objects additional objects to log (optional rest parameter)\n */\n Logger.log = function (message) {\n var objects = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n objects[_i - 1] = arguments[_i];\n }\n if (this.isLevelPermitted(Level.debug)) {\n console.log.apply(console, __spreadArrays([message], objects));\n }\n };\n /**\n * Logs to debug if level is enabled\n * @param {string} message\n * @param {...*} objects additional objects to log (optional rest parameter)\n */\n Logger.debug = function (message) {\n var objects = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n objects[_i - 1] = arguments[_i];\n }\n if (this.isLevelPermitted(Level.debug)) {\n console.debug.apply(console, __spreadArrays([message], objects));\n }\n };\n /**\n * Logs to info if level is enabled\n * @param {string} message\n * @param {...*} objects additional objects to log (optional rest parameter)\n */\n Logger.info = function (message) {\n var objects = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n objects[_i - 1] = arguments[_i];\n }\n if (this.isLevelPermitted(Level.info)) {\n console.info.apply(console, __spreadArrays([message], objects));\n }\n };\n /**\n * Logs to warn if level is enabled\n * @param {string} message\n * @param {...*} objects additional objects to log (optional rest parameter)\n */\n Logger.warn = function (message) {\n var objects = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n objects[_i - 1] = arguments[_i];\n }\n if (this.isLevelPermitted(Level.warn)) {\n console.warn.apply(console, __spreadArrays([message], objects));\n }\n };\n /**\n * Logs to error if level is enabled\n * @param {string} message\n * @param {...*} objects additional objects to log (optional rest parameter)\n */\n Logger.error = function (message) {\n var objects = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n objects[_i - 1] = arguments[_i];\n }\n if (this.isLevelPermitted(Level.error)) {\n console.error.apply(console, __spreadArrays([message], objects));\n }\n };\n Logger.isLevelPermitted = function (level) {\n return this.logLevel <= level;\n };\n Logger.logLevel = Level.off;\n return Logger;\n}());\nexport { Logger };\n//# sourceMappingURL=logger.js.map","/* Copyright (c) 2020 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\n/**\n * Determines if a given IGroup is an update group\n * @param {IGroup} group The group to evaluate\n */\nexport function isUpdateGroup(group) {\n return group.capabilities.includes(\"updateitemcontrol\");\n}\n//# sourceMappingURL=is-update-group.js.map","/* Copyright (c) 2020 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\n/**\n * Runs the given task and returns a IRevertableTaskResult\n * @param {Function} task A task method to run\n * @param {Function} revert A method to revert the task\n * @returns {Promise<IRevertableTaskResult>}\n */\nexport var runRevertableTask = function (task, revert) {\n return task()\n .then(function (results) {\n return {\n status: \"fullfilled\",\n results: results,\n revert: revert\n };\n })\n .catch(function (error) {\n return { status: \"rejected\", error: error };\n });\n};\n/**\n * Processes an Array of Promise<IRevertableTaskResult>. When all IRevertableTaskResult\n * are IRevertableTaskSuccess, it resolves an Array of all result values. If any\n * IRevertableTaskResult are IRevertableTaskFailed, it reverts all IRevertableTaskSuccess\n * and rejects with the first IRevertableTaskFailed error\n * @param revertableTasks\n * @returns {Promise<any[]>}\n */\nexport var processRevertableTasks = function (revertableTasks) {\n return Promise.all(revertableTasks).then(function (results) {\n var isFullfilled = function (result) {\n return result.status === \"fullfilled\";\n };\n var successfulTasks = results.filter(isFullfilled);\n var failedTasks = results.filter(function (result) { return !isFullfilled(result); });\n if (failedTasks.length) {\n var reverts = successfulTasks.map(function (task) { return task.revert(); });\n // fire & forget\n /* tslint:disable no-empty */\n Promise.all(reverts).catch(function () { });\n /* tslint:enable no-empty */\n throw failedTasks[0].error;\n }\n var returnResults = successfulTasks.map(function (result) { return result.results; });\n return returnResults;\n });\n};\n//# sourceMappingURL=revertable-tasks.js.map","/* Copyright (c) 2017 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\n/**\n * Checks parameters to see if we should use FormData to send the request\n * @param params The object whose keys will be encoded.\n * @return A boolean indicating if FormData will be required.\n */\nexport function requiresFormData(params) {\n return Object.keys(params).some(function (key) {\n var value = params[key];\n if (!value) {\n return false;\n }\n if (value && value.toParam) {\n value = value.toParam();\n }\n var type = value.constructor.name;\n switch (type) {\n case \"Array\":\n return false;\n case \"Object\":\n return false;\n case \"Date\":\n return false;\n case \"Function\":\n return false;\n case \"Boolean\":\n return false;\n case \"String\":\n return false;\n case \"Number\":\n return false;\n default:\n return true;\n }\n });\n}\n/**\n * Converts parameters to the proper representation to send to the ArcGIS REST API.\n * @param params The object whose keys will be encoded.\n * @return A new object with properly encoded values.\n */\nexport function processParams(params) {\n var newParams = {};\n Object.keys(params).forEach(function (key) {\n var _a, _b;\n var param = params[key];\n if (param && param.toParam) {\n param = param.toParam();\n }\n if (!param &&\n param !== 0 &&\n typeof param !== \"boolean\" &&\n typeof param !== \"string\") {\n return;\n }\n var type = param.constructor.name;\n var value;\n // properly encodes objects, arrays and dates for arcgis.com and other services.\n // ported from https://github.com/Esri/esri-leaflet/blob/master/src/Request.js#L22-L30\n // also see https://github.com/Esri/arcgis-rest-js/issues/18:\n // null, undefined, function are excluded. If you want to send an empty key you need to send an empty string \"\".\n switch (type) {\n case \"Array\":\n // Based on the first element of the array, classify array as an array of arrays, an array of objects\n // to be stringified, or an array of non-objects to be comma-separated\n // eslint-disable-next-line no-case-declarations\n var firstElementType = (_b = (_a = param[0]) === null || _a === void 0 ? void 0 : _a.constructor) === null || _b === void 0 ? void 0 : _b.name;\n value =\n firstElementType === \"Array\" ? param : // pass thru array of arrays\n firstElementType === \"Object\" ? JSON.stringify(param) : // stringify array of objects\n param.join(\",\"); // join other types of array elements\n break;\n case \"Object\":\n value = JSON.stringify(param);\n break;\n case \"Date\":\n value = param.valueOf();\n break;\n case \"Function\":\n value = null;\n break;\n case \"Boolean\":\n value = param + \"\";\n break;\n default:\n value = param;\n break;\n }\n if (value || value === 0 || typeof value === \"string\" || Array.isArray(value)) {\n newParams[key] = value;\n }\n });\n return newParams;\n}\n//# sourceMappingURL=process-params.js.map","/* Copyright (c) 2017 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { processParams } from \"./process-params\";\n/**\n * Encodes keys and parameters for use in a URL's query string.\n *\n * @param key Parameter's key\n * @param value Parameter's value\n * @returns Query string with key and value pairs separated by \"&\"\n */\nexport function encodeParam(key, value) {\n // For array of arrays, repeat key=value for each element of containing array\n if (Array.isArray(value) && value[0] && Array.isArray(value[0])) {\n return value.map(function (arrayElem) { return encodeParam(key, arrayElem); }).join(\"&\");\n }\n return encodeURIComponent(key) + \"=\" + encodeURIComponent(value);\n}\n/**\n * Encodes the passed object as a query string.\n *\n * @param params An object to be encoded.\n * @returns An encoded query string.\n */\nexport function encodeQueryString(params) {\n var newParams = processParams(params);\n return Object.keys(newParams)\n .map(function (key) {\n return encodeParam(key, newParams[key]);\n })\n .join(\"&\");\n}\n//# sourceMappingURL=encode-query-string.js.map","/* Copyright (c) 2017 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { processParams, requiresFormData } from \"./process-params\";\nimport { encodeQueryString } from \"./encode-query-string\";\n/**\n * Encodes parameters in a [FormData](https://developer.mozilla.org/en-US/docs/Web/API/FormData) object in browsers or in a [FormData](https://github.com/form-data/form-data) in Node.js\n *\n * @param params An object to be encoded.\n * @returns The complete [FormData](https://developer.mozilla.org/en-US/docs/Web/API/FormData) object.\n */\nexport function encodeFormData(params, forceFormData) {\n // see https://github.com/Esri/arcgis-rest-js/issues/499 for more info.\n var useFormData = requiresFormData(params) || forceFormData;\n var newParams = processParams(params);\n if (useFormData) {\n var formData_1 = new FormData();\n Object.keys(newParams).forEach(function (key) {\n if (typeof Blob !== \"undefined\" && newParams[key] instanceof Blob) {\n /* To name the Blob:\n 1. look to an alternate request parameter called 'fileName'\n 2. see if 'name' has been tacked onto the Blob manually\n 3. if all else fails, use the request parameter\n */\n var filename = newParams[\"fileName\"] || newParams[key].name || key;\n formData_1.append(key, newParams[key], filename);\n }\n else {\n formData_1.append(key, newParams[key]);\n }\n });\n return formData_1;\n }\n else {\n return encodeQueryString(params);\n }\n}\n//# sourceMappingURL=encode-form-data.js.map","/* Copyright (c) 2017 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\n// TypeScript 2.1 no longer allows you to extend built in types. See https://github.com/Microsoft/TypeScript/issues/12790#issuecomment-265981442\n// and https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n//\n// This code is from MDN https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Custom_Error_Types.\nvar ArcGISRequestError = /** @class */ (function () {\n /**\n * Create a new `ArcGISRequestError` object.\n *\n * @param message - The error message from the API\n * @param code - The error code from the API\n * @param response - The original response from the API that caused the error\n * @param url - The original url of the request\n * @param options - The original options and parameters of the request\n */\n function ArcGISRequestError(message, code, response, url, options) {\n message = message || \"UNKNOWN_ERROR\";\n code = code || \"UNKNOWN_ERROR_CODE\";\n this.name = \"ArcGISRequestError\";\n this.message =\n code === \"UNKNOWN_ERROR_CODE\" ? message : code + \": \" + message;\n this.originalMessage = message;\n this.code = code;\n this.response = response;\n this.url = url;\n this.options = options;\n }\n return ArcGISRequestError;\n}());\nexport { ArcGISRequestError };\nArcGISRequestError.prototype = Object.create(Error.prototype);\nArcGISRequestError.prototype.constructor = ArcGISRequestError;\n//# sourceMappingURL=ArcGISRequestError.js.map","/* Copyright (c) 2017-2018 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\n/**\n * Method used internally to surface messages to developers.\n */\nexport function warn(message) {\n if (console && console.warn) {\n console.warn.apply(console, [message]);\n }\n}\n//# sourceMappingURL=warn.js.map","/* Copyright (c) 2017-2018 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { __assign, __extends } from \"tslib\";\nimport { encodeFormData } from \"./utils/encode-form-data\";\nimport { encodeQueryString } from \"./utils/encode-query-string\";\nimport { requiresFormData } from \"./utils/process-params\";\nimport { ArcGISRequestError } from \"./utils/ArcGISRequestError\";\nimport { warn } from \"./utils/warn\";\nexport var NODEJS_DEFAULT_REFERER_HEADER = \"@esri/arcgis-rest-js\";\nvar DEFAULT_ARCGIS_REQUEST_OPTIONS = {\n httpMethod: \"POST\",\n params: {\n f: \"json\",\n },\n};\n/**\n * Sets the default options that will be passed in **all requests across all `@esri/arcgis-rest-js` modules**.\n *\n *\n * ```js\n * import { setDefaultRequestOptions } from \"@esri/arcgis-rest-request\";\n * setDefaultRequestOptions({\n * authentication: userSession // all requests will use this session by default\n * })\n * ```\n * You should **never** set a default `authentication` when you are in a server side environment where you may be handling requests for many different authenticated users.\n *\n * @param options The default options to pass with every request. Existing default will be overwritten.\n * @param hideWarnings Silence warnings about setting default `authentication` in shared environments.\n */\nexport function setDefaultRequestOptions(options, hideWarnings) {\n if (options.authentication && !hideWarnings) {\n warn(\"You should not set `authentication` as a default in a shared environment such as a web server which will process multiple users requests. You can call `setDefaultRequestOptions` with `true` as a second argument to disable this warning.\");\n }\n DEFAULT_ARCGIS_REQUEST_OPTIONS = options;\n}\nvar ArcGISAuthError = /** @class */ (function (_super) {\n __extends(ArcGISAuthError, _super);\n /**\n * Create a new `ArcGISAuthError` object.\n *\n * @param message - The error message from the API\n * @param code - The error code from the API\n * @param response - The original response from the API that caused the error\n * @param url - The original url of the request\n * @param options - The original options of the request\n */\n function ArcGISAuthError(message, code, response, url, options) {\n if (message === void 0) { message = \"AUTHENTICATION_ERROR\"; }\n if (code === void 0) { code = \"AUTHENTICATION_ERROR_CODE\"; }\n var _this = _super.call(this, message, code, response, url, options) || this;\n _this.name = \"ArcGISAuthError\";\n _this.message =\n code === \"AUTHENTICATION_ERROR_CODE\" ? message : code + \": \" + message;\n return _this;\n }\n ArcGISAuthError.prototype.retry = function (getSession, retryLimit) {\n var _this = this;\n if (retryLimit === void 0) { retryLimit = 3; }\n var tries = 0;\n var retryRequest = function (resolve, reject) {\n getSession(_this.url, _this.options)\n .then(function (session) {\n var newOptions = __assign(__assign({}, _this.options), { authentication: session });\n tries = tries + 1;\n return request(_this.url, newOptions);\n })\n .then(function (response) {\n resolve(response);\n })\n .catch(function (e) {\n if (e.name === \"ArcGISAuthError\" && tries < retryLimit) {\n retryRequest(resolve, reject);\n }\n else if (e.name === \"ArcGISAuthError\" && tries >= retryLimit) {\n reject(_this);\n }\n else {\n reject(e);\n }\n });\n };\n return new Promise(function (resolve, reject) {\n retryRequest(resolve, reject);\n });\n };\n return ArcGISAuthError;\n}(ArcGISRequestError));\nexport { ArcGISAuthError };\n/**\n * Checks for errors in a JSON response from the ArcGIS REST API. If there are no errors, it will return the `data` passed in. If there is an error, it will throw an `ArcGISRequestError` or `ArcGISAuthError`.\n *\n * @param data The response JSON to check for errors.\n * @param url The url of the original request\n * @param params The parameters of the original request\n * @param options The options of the original request\n * @returns The data that was passed in the `data` parameter\n */\nexport function checkForErrors(response, url, params, options, originalAuthError) {\n // this is an error message from billing.arcgis.com backend\n if (response.code >= 400) {\n var message = response.message, code = response.code;\n throw new ArcGISRequestError(message, code, response, url, options);\n }\n // error from ArcGIS Online or an ArcGIS Portal or server instance.\n if (response.error) {\n var _a = response.error, message = _a.message, code = _a.code, messageCode = _a.messageCode;\n var errorCode = messageCode || code || \"UNKNOWN_ERROR_CODE\";\n if (code === 498 ||\n code === 499 ||\n messageCode === \"GWM_0003\" ||\n (code === 400 && message === \"Unable to generate token.\")) {\n if (originalAuthError) {\n throw originalAuthError;\n }\n else {\n throw new ArcGISAuthError(message, errorCode, response, url, options);\n }\n }\n throw new ArcGISRequestError(message, errorCode, response, url, options);\n }\n // error from a status check\n if (response.status === \"failed\" || response.status === \"failure\") {\n var message = void 0;\n var code = \"UNKNOWN_ERROR_CODE\";\n try {\n message = JSON.parse(response.statusMessage).message;\n code = JSON.parse(response.statusMessage).code;\n }\n catch (e) {\n message = response.statusMessage || response.message;\n }\n throw new ArcGISRequestError(message, code, response, url, options);\n }\n return response;\n}\n/**\n * ```js\n * import { request } from '@esri/arcgis-rest-request';\n * //\n * request('https://www.arcgis.com/sharing/rest')\n * .then(response) // response.currentVersion === 5.2\n * //\n * request('https://www.arcgis.com/sharing/rest', {\n * httpMethod: \"GET\"\n * })\n * //\n * request('https://www.arcgis.com/sharing/rest/search', {\n * params: { q: 'parks' }\n * })\n * .then(response) // response.total => 78379\n * ```\n * Generic method for making HTTP requests to ArcGIS REST API endpoints.\n *\n * @param url - The URL of the ArcGIS REST API endpoint.\n * @param requestOptions - Options for the request, including parameters relevant to the endpoint.\n * @returns A Promise that will resolve with the data from the response.\n */\nexport function request(url, requestOptions) {\n if (requestOptions === void 0) { requestOptions = { params: { f: \"json\" } }; }\n var options = __assign(__assign(__assign({ httpMethod: \"POST\" }, DEFAULT_ARCGIS_REQUEST_OPTIONS), requestOptions), {\n params: __assign(__assign({}, DEFAULT_ARCGIS_REQUEST_OPTIONS.params), requestOptions.params),\n headers: __assign(__assign({}, DEFAULT_ARCGIS_REQUEST_OPTIONS.headers), requestOptions.headers),\n });\n var missingGlobals = [];\n var recommendedPackages = [];\n // don't check for a global fetch if a custom implementation was passed through\n if (!options.fetch && typeof fetch !== \"undefined\") {\n options.fetch = fetch.bind(Function(\"return this\")());\n }\n else {\n missingGlobals.push(\"`fetch`\");\n recommendedPackages.push(\"`node-fetch`\");\n }\n if (typeof Promise === \"undefined\") {\n missingGlobals.push(\"`Promise`\");\n recommendedPackages.push(\"`es6-promise`\");\n }\n if (typeof FormData === \"undefined\") {\n missingGlobals.push(\"`FormData`\");\n recommendedPackages.push(\"`isomorphic-form-data`\");\n }\n if (!options.fetch ||\n typeof Promise === \"undefined\" ||\n typeof FormData === \"undefined\") {\n throw new Error(\"`arcgis-rest-request` requires a `fetch` implementation and global variables for `Promise` and `FormData` to be present in the global scope. You are missing \" + missingGlobals.join(\", \") + \". We recommend installing the \" + recommendedPackages.join(\", \") + \" modules at the root of your application to add these to the global scope. See https://bit.ly/2KNwWaJ for more info.\");\n }\n var httpMethod = options.httpMethod, authentication = options.authentication, rawResponse = options.rawResponse;\n var params = __assign({ f: \"json\" }, options.params);\n var originalAuthError = null;\n var fetchOptions = {\n method: httpMethod,\n /* ensures behavior mimics XMLHttpRequest.\n needed to support sending IWA cookies */\n credentials: options.credentials || \"same-origin\",\n };\n // the /oauth2/platformSelf route will add X-Esri-Auth-Client-Id header\n // and that request needs to send cookies cross domain\n // so we need to set the credentials to \"include\"\n if (options.headers &&\n options.headers[\"X-Esri-Auth-Client-Id\"] &&\n url.indexOf(\"/oauth2/platformSelf\") > -1) {\n fetchOptions.credentials = \"include\";\n }\n return (authentication\n ? authentication.getToken(url, { fetch: options.fetch }).catch(function (err) {\n /**\n * append original request url and requestOptions\n * to the error thrown by getToken()\n * to assist with retrying\n */\n err.url = url;\n err.options = options;\n /**\n * if an attempt is made to talk to an unfederated server\n * first try the request anonymously. if a 'token required'\n * error is thrown, throw the UNFEDERATED error then.\n */\n originalAuthError = err;\n return Promise.resolve(\"\");\n })\n : Promise.resolve(\"\"))\n .then(function (token) {\n if (token.length) {\n params.token = token;\n }\n if (authentication && authentication.getDomainCredentials) {\n fetchOptions.credentials = authentication.getDomainCredentials(url);\n }\n // Custom headers to add to request. IRequestOptions.headers with merge over requestHeaders.\n var requestHeaders = {};\n if (fetchOptions.method === \"GET\") {\n // Prevents token from being passed in query params when hideToken option is used.\n /* istanbul ignore if - window is always defined in a browser. Test case is covered by Jasmine in node test */\n if (params.token &&\n options.hideToken &&\n // Sharing API does not support preflight check required by modern browsers https://developer.mozilla.org/en-US/docs/Glossary/Preflight_request\n typeof window === \"undefined\") {\n requestHeaders[\"X-Esri-Authorization\"] = \"Bearer \" + params.token;\n delete params.token;\n }\n // encode the parameters into the query string\n var queryParams = encodeQueryString(params);\n // dont append a '?' unless parameters are actually present\n var urlWithQueryString = queryParams === \"\" ? url : url + \"?\" + encodeQueryString(params);\n if (\n // This would exceed the maximum length for URLs specified by the consumer and requires POST\n (options.maxUrlLength &&\n urlWithQueryString.length > options.maxUrlLength) ||\n // Or if the customer requires the token to be hidden and it has not already been hidden in the header (for browsers)\n (params.token && options.hideToken)) {\n // the consumer specified a maximum length for URLs\n // and this would exceed it, so use post instead\n fetchOptions.method = \"POST\";\n // If the token was already added as a Auth header, add the token back to body with other params instead of header\n if (token.length && options.hideToken) {\n params.token = token;\n // Remove existing header that was added before url query length was checked\n delete requestHeaders[\"X-Esri-Authorization\"];\n }\n }\n else {\n // just use GET\n url = urlWithQueryString;\n }\n }\n /* updateResources currently requires FormData even when the input parameters dont warrant it.\n https://developers.arcgis.com/rest/users-groups-and-items/update-resources.htm\n see https://github.com/Esri/arcgis-rest-js/pull/500 for more info. */\n var forceFormData = new RegExp(\"/items/.+/updateResources\").test(url);\n if (fetchOptions.method === \"POST\") {\n fetchOptions.body = encodeFormData(params, forceFormData);\n }\n // Mixin headers from request options\n fetchOptions.headers = __assign(__assign({}, requestHeaders), options.headers);\n /* istanbul ignore next - karma reports coverage on browser tests only */\n if (typeof window === \"undefined\" && !fetchOptions.headers.referer) {\n fetchOptions.headers.referer = NODEJS_DEFAULT_REFERER_HEADER;\n }\n /* istanbul ignore else blob responses are difficult to make cross platform we will just have to trust the isomorphic fetch will do its job */\n if (!requiresFormData(params) && !forceFormData) {\n fetchOptions.headers[\"Content-Type\"] =\n \"application/x-www-form-urlencoded\";\n }\n return options.fetch(url, fetchOptions);\n })\n .then(function (response) {\n if (!response.ok) {\n // server responded w/ an actual error (404, 500, etc)\n var status_1 = response.status, statusText = response.statusText;\n throw new ArcGISRequestError(statusText, \"HTTP \" + status_1, response, url, options);\n }\n if (rawResponse) {\n return response;\n }\n switch (params.f) {\n case \"json\":\n return response.json();\n case \"geojson\":\n return response.json();\n case \"html\":\n return response.text();\n case \"text\":\n return response.text();\n /* istanbul ignore next blob responses are difficult to make cross platform we will just have to trust that isomorphic fetch will do its job */\n default:\n return response.blob();\n }\n })\n .then(function (data) {\n if ((params.f === \"json\" || params.f === \"geojson\") && !rawResponse) {\n var response = checkForErrors(data, url, params, options, originalAuthError);\n if (originalAuthError) {\n /* If the request was made to an unfederated service that\n didn't require authentication, add the base url and a dummy token\n to the list of trusted servers to avoid another federation check\n in the event of a repeat request */\n var truncatedUrl = url\n .toLowerCase()\n .split(/\\/rest(\\/admin)?\\/services\\//)[0];\n options.authentication.federatedServers[truncatedUrl] = {\n token: [],\n // default to 24 hours\n expires: new Date(Date.now() + 86400 * 1000),\n };\n originalAuthError = null;\n }\n return response;\n }\n else {\n return data;\n }\n });\n}\n//# sourceMappingURL=request.js.map","/* Copyright (c) 2017-2018 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { __assign } from \"tslib\";\n/**\n * Helper for methods with lots of first order request options to pass through as request parameters.\n */\nexport function appendCustomParams(customOptions, keys, baseOptions) {\n var requestOptionsKeys = [\n \"params\",\n \"httpMethod\",\n \"rawResponse\",\n \"authentication\",\n \"portal\",\n \"fetch\",\n \"maxUrlLength\",\n \"headers\"\n ];\n var options = __assign(__assign({ params: {} }, baseOptions), customOptions);\n // merge all keys in customOptions into options.params\n options.params = keys.reduce(function (value, key) {\n if (customOptions[key] || typeof customOptions[key] === \"boolean\") {\n value[key] = customOptions[key];\n }\n return value;\n }, options.params);\n // now remove all properties in options that don't exist in IRequestOptions\n return requestOptionsKeys.reduce(function (value, key) {\n if (options[key]) {\n value[key] = options[key];\n }\n return value;\n }, {});\n}\n//# sourceMappingURL=append-custom-params.js.map","/* Copyright (c) 2018 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\n/**\n * Helper method to ensure that user supplied urls don't include whitespace or a trailing slash.\n */\nexport function cleanUrl(url) {\n // Guard so we don't try to trim something that's not a string\n if (typeof url !== \"string\") {\n return url;\n }\n // trim leading and trailing spaces, but not spaces inside the url\n url = url.trim();\n // remove the trailing slash to the url if one was included\n if (url[url.length - 1] === \"/\") {\n url = url.slice(0, -1);\n }\n return url;\n}\n//# sourceMappingURL=clean-url.js.map","/* Copyright (c) 2017-2020 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nexport function decodeParam(param) {\n var _a = param.split(\"=\"), key = _a[0], value = _a[1];\n return { key: decodeURIComponent(key), value: decodeURIComponent(value) };\n}\n/**\n * Decodes the passed query string as an object.\n *\n * @param query A string to be decoded.\n * @returns A decoded query param object.\n */\nexport function decodeQueryString(query) {\n return query\n .replace(/^#/, \"\")\n .split(\"&\")\n .reduce(function (acc, entry) {\n var _a = decodeParam(entry), key = _a.key, value = _a.value;\n acc[key] = value;\n return acc;\n }, {});\n}\n//# sourceMappingURL=decode-query-string.js.map","/* Copyright (c) 2017 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { request } from \"@esri/arcgis-rest-request\";\nexport function fetchToken(url, requestOptions) {\n var options = requestOptions;\n // we generate a response, so we can't return the raw response\n options.rawResponse = false;\n return request(url, options).then(function (response) {\n var r = {\n token: response.access_token,\n username: response.username,\n expires: new Date(\n // convert seconds in response to milliseconds and add the value to the current time to calculate a static expiration timestamp\n Date.now() + (response.expires_in * 1000 - 1000)),\n ssl: response.ssl === true\n };\n if (response.refresh_token) {\n r.refreshToken = response.refresh_token;\n }\n return r;\n });\n}\n//# sourceMappingURL=fetch-token.js.map","/* Copyright (c) 2017-2018 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { request, NODEJS_DEFAULT_REFERER_HEADER, } from \"@esri/arcgis-rest-request\";\nexport function generateToken(url, requestOptions) {\n var options = requestOptions;\n /* istanbul ignore else */\n if (typeof window !== \"undefined\" &&\n window.location &&\n window.location.host) {\n options.params.referer = window.location.host;\n }\n else {\n options.params.referer = NODEJS_DEFAULT_REFERER_HEADER;\n }\n return request(url, options);\n}\n//# sourceMappingURL=generate-token.js.map","import { cleanUrl } from \"@esri/arcgis-rest-request\";\n/**\n * Used to test if a URL is an ArcGIS Online URL\n */\nvar arcgisOnlineUrlRegex = /^https?:\\/\\/(\\S+)\\.arcgis\\.com.+/;\n/**\n * Used to test if a URL is production ArcGIS Online Portal\n */\nvar arcgisOnlinePortalRegex = /^https?:\\/\\/(dev|devext|qa|qaext|www)\\.arcgis\\.com\\/sharing\\/rest+/;\n/**\n * Used to test if a URL is an ArcGIS Online Organization Portal\n */\nvar arcgisOnlineOrgPortalRegex = /^https?:\\/\\/(?:[a-z0-9-]+\\.maps(dev|devext|qa|qaext)?)?.arcgis\\.com\\/sharing\\/rest/;\nexport function isOnline(url) {\n return arcgisOnlineUrlRegex.test(url);\n}\nexport function normalizeOnlinePortalUrl(portalUrl) {\n if (!arcgisOnlineUrlRegex.test(portalUrl)) {\n return portalUrl;\n }\n switch (getOnlineEnvironment(portalUrl)) {\n case \"dev\":\n return \"https://devext.arcgis.com/sharing/rest\";\n case \"qa\":\n return \"https://qaext.arcgis.com/sharing/rest\";\n default:\n return \"https://www.arcgis.com/sharing/rest\";\n }\n}\nexport function getOnlineEnvironment(url) {\n if (!arcgisOnlineUrlRegex.test(url)) {\n return null;\n }\n var match = url.match(arcgisOnlineUrlRegex);\n var subdomain = match[1].split(\".\").pop();\n if (subdomain.includes(\"dev\")) {\n return \"dev\";\n }\n if (subdomain.includes(\"qa\")) {\n return \"qa\";\n }\n return \"production\";\n}\nexport function isFederated(owningSystemUrl, portalUrl) {\n var normalizedPortalUrl = cleanUrl(normalizeOnlinePortalUrl(portalUrl)).replace(/https?:\\/\\//, \"\");\n var normalizedOwningSystemUrl = cleanUrl(owningSystemUrl).replace(/https?:\\/\\//, \"\");\n return new RegExp(normalizedOwningSystemUrl, \"i\").test(normalizedPortalUrl);\n}\nexport function canUseOnlineToken(portalUrl, requestUrl) {\n var portalIsOnline = isOnline(portalUrl);\n var requestIsOnline = isOnline(requestUrl);\n var portalEnv = getOnlineEnvironment(portalUrl);\n var requestEnv = getOnlineEnvironment(requestUrl);\n if (portalIsOnline && requestIsOnline && portalEnv === requestEnv) {\n return true;\n }\n return false;\n}\n//# sourceMappingURL=federation-utils.js.map","/* Copyright (c) 2018-2020 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { request } from \"@esri/arcgis-rest-request\";\n/**\n * Validates that the user has access to the application\n * and if they user should be presented a \"View Only\" mode\n *\n * This is only needed/valid for Esri applications that are \"licensed\"\n * and shipped in ArcGIS Online or ArcGIS Enterprise. Most custom applications\n * should not need or use this.\n *\n * ```js\n * import { validateAppAccess } from '@esri/arcgis-rest-auth';\n *\n * return validateAppAccess('your-token', 'theClientId')\n * .then((result) => {\n * if (!result.value) {\n * // redirect or show some other ui\n * } else {\n * if (result.viewOnlyUserTypeApp) {\n * // use this to inform your app to show a \"View Only\" mode\n * }\n * }\n * })\n * .catch((err) => {\n * // two possible errors\n * // invalid clientId: {\"error\":{\"code\":400,\"messageCode\":\"GWM_0007\",\"message\":\"Invalid request\",\"details\":[]}}\n * // invalid token: {\"error\":{\"code\":498,\"message\":\"Invalid token.\",\"details\":[]}}\n * })\n * ```\n *\n * Note: This is only usable by Esri applications hosted on *arcgis.com, *esri.com or within\n * an ArcGIS Enterprise installation. Custom applications can not use this.\n *\n * @param token platform token\n * @param clientId application client id\n * @param portal Optional\n */\nexport function validateAppAccess(token, clientId, portal) {\n if (portal === void 0) { portal = \"https://www.arcgis.com/sharing/rest\"; }\n var url = portal + \"/oauth2/validateAppAccess\";\n var ro = {\n method: \"POST\",\n params: {\n f: \"json\",\n client_id: clientId,\n token: token,\n },\n };\n return request(url, ro);\n}\n//# sourceMappingURL=validate-app-access.js.map","/* Copyright (c) 2017-2019 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { __assign } from \"tslib\";\nimport { request, ArcGISAuthError, cleanUrl, encodeQueryString, decodeQueryString, } from \"@esri/arcgis-rest-request\";\nimport { generateToken } from \"./generate-token\";\nimport { fetchToken } from \"./fetch-token\";\nimport { canUseOnlineToken, isFederated } from \"./federation-utils\";\nimport { validateAppAccess } from \"./validate-app-access\";\nfunction defer() {\n var deferred = {\n promise: null,\n resolve: null,\n reject: null,\n };\n deferred.promise = new Promise(function (resolve, reject) {\n deferred.resolve = resolve;\n deferred.reject = reject;\n });\n return deferred;\n}\n/**\n * ```js\n * import { UserSession } from '@esri/arcgis-rest-auth';\n * UserSession.beginOAuth2({\n * // register an app of your own to create a unique clientId\n * clientId: \"abc123\",\n * redirectUri: 'https://yourapp.com/authenticate.html'\n * })\n * .then(session)\n * // or\n * new UserSession({\n * username: \"jsmith\",\n * password: \"123456\"\n * })\n * // or\n * UserSession.deserialize(cache)\n * ```\n * Used to authenticate both ArcGIS Online and ArcGIS Enterprise users. `UserSession` includes helper methods for [OAuth 2.0](/arcgis-rest-js/guides/browser-authentication/) in both browser and server applications.\n */\nvar UserSession = /** @class */ (function () {\n function UserSession(options) {\n this.clientId = options.clientId;\n this._refreshToken = options.refreshToken;\n this._refreshTokenExpires = options.refreshTokenExpires;\n this.username = options.username;\n this.password = options.password;\n this._token = options.token;\n this._tokenExpires = options.tokenExpires;\n this.portal = options.portal\n ? cleanUrl(options.portal)\n : \"https://www.arcgis.com/sharing/rest\";\n this.ssl = options.ssl;\n this.provider = options.provider || \"arcgis\";\n this.tokenDuration = options.tokenDuration || 20160;\n this.redirectUri = options.redirectUri;\n this.refreshTokenTTL = options.refreshTokenTTL || 20160;\n this.server = options.server;\n this.federatedServers = {};\n this.trustedDomains = [];\n // if a non-federated server was passed explicitly, it should be trusted.\n if (options.server) {\n // if the url includes more than '/arcgis/', trim the rest\n var root = this.getServerRootUrl(options.server);\n this.federatedServers[root] = {\n token: options.token,\n expires: options.tokenExpires,\n };\n }\n this._pendingTokenRequests = {};\n }\n Object.defineProperty(UserSession.prototype, \"token\", {\n /**\n * The current ArcGIS Online or ArcGIS Enterprise `token`.\n */\n get: function () {\n return this._token;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(UserSession.prototype, \"tokenExpires\", {\n /**\n * The expiration time of the current `token`.\n */\n get: function () {\n return this._tokenExpires;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(UserSession.prototype, \"refreshToken\", {\n /**\n * The current token to ArcGIS Online or ArcGIS Enterprise.\n */\n get: function () {\n return this._refreshToken;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(UserSession.prototype, \"refreshTokenExpires\", {\n /**\n * The expiration time of the current `refreshToken`.\n */\n get: function () {\n return this._refreshTokenExpires;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(UserSession.prototype, \"trustedServers\", {\n /**\n * Deprecated, use `federatedServers` instead.\n *\n * @deprecated\n */\n get: function () {\n console.log(\"DEPRECATED: use federatedServers instead\");\n return this.federatedServers;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Begins a new browser-based OAuth 2.0 sign in. If `options.popup` is `true` the\n * authentication window will open in a new tab/window and the function will return\n * Promise<UserSession>. Otherwise, the user will be redirected to the\n * authorization page in their current tab/window and the function will return `undefined`.\n *\n * @browserOnly\n */\n /* istanbul ignore next */\n UserSession.beginOAuth2 = function (options, win) {\n if (win === void 0) { win = window; }\n if (options.duration) {\n console.log(\"DEPRECATED: 'duration' is deprecated - use 'expiration' instead\");\n }\n var _a = __assign({\n portal: \"https://www.arcgis.com/sharing/rest\",\n provider: \"arcgis\",\n expiration: 20160,\n popup: true,\n popupWindowFeatures: \"height=400,width=600,menubar=no,location=yes,resizable=yes,scrollbars=yes,status=yes\",\n state: options.clientId,\n locale: \"\",\n }, options), portal = _a.portal, provider = _a.provider, clientId = _a.clientId, expiration = _a.expiration, redirectUri = _a.redirectUri, popup = _a.popup, popupWindowFeatures = _a.popupWindowFeatures, state = _a.state, locale = _a.locale, params = _a.params;\n var url;\n if (provider === \"arcgis\") {\n url = portal + \"/oauth2/authorize?client_id=\" + clientId + \"&response_type=token&expiration=\" + (options.duration || expiration) + \"&redirect_uri=\" + encodeURIComponent(redirectUri) + \"&state=\" + state + \"&locale=\" + locale;\n }\n else {\n url = portal + \"/oauth2/social/authorize?client_id=\" + clientId + \"&socialLoginProviderName=\" + provider + \"&autoAccountCreateForSocial=true&response_type=token&expiration=\" + (options.duration || expiration) + \"&redirect_uri=\" + encodeURIComponent(redirectUri) + \"&state=\" + state + \"&locale=\" + locale;\n }\n // append additional params\n if (params) {\n url = url + \"&\" + encodeQueryString(params);\n }\n if (!popup) {\n win.location.href = url;\n return undefined;\n }\n var session = defer();\n win[\"__ESRI_REST_AUTH_HANDLER_\" + clientId] = function (errorString, oauthInfoString) {\n if (errorString) {\n var error = JSON.parse(errorString);\n session.reject(new ArcGISAuthError(error.errorMessage, error.error));\n return;\n }\n if (oauthInfoString) {\n var oauthInfo = JSON.parse(oauthInfoString);\n session.resolve(new UserSession({\n clientId: clientId,\n portal: portal,\n ssl: oauthInfo.ssl,\n token: oauthInfo.token,\n tokenExpires: new Date(oauthInfo.expires),\n username: oauthInfo.username,\n }));\n }\n };\n win.open(url, \"oauth-window\", popupWindowFeatures);\n return session.promise;\n };\n /**\n * Completes a browser-based OAuth 2.0 sign in. If `options.popup` is `true` the user\n * will be returned to the previous window. Otherwise a new `UserSession`\n * will be returned. You must pass the same values for `options.popup` and\n * `options.portal` as you used in `beginOAuth2()`.\n *\n * @browserOnly\n */\n /* istanbul ignore next */\n UserSession.completeOAuth2 = function (options, win) {\n if (win === void 0) { win = window; }\n var _a = __assign({ portal: \"https://www.arcgis.com/sharing/rest\", popup: true }, options), portal = _a.portal, clientId = _a.clientId, popup = _a.popup;\n function completeSignIn(error, oauthInfo) {\n try {\n var handlerFn = void 0;\n var handlerFnName = \"__ESRI_REST_AUTH_HANDLER_\" + clientId;\n if (popup) {\n // Guard b/c IE does not support window.opener\n if (win.opener) {\n if (win.opener.parent && win.opener.parent[handlerFnName]) {\n handlerFn = win.opener.parent[handlerFnName];\n }\n else if (win.opener && win.opener[handlerFnName]) {\n // support pop-out oauth from within an iframe\n handlerFn = win.opener[handlerFnName];\n }\n }\n else {\n // IE\n if (win !== win.parent && win.parent && win.parent[handlerFnName]) {\n handlerFn = win.parent[handlerFnName];\n }\n }\n // if we have a handler fn, call it and close the window\n if (handlerFn) {\n handlerFn(error ? JSON.stringify(error) : undefined, JSON.stringify(oauthInfo));\n win.close();\n return undefined;\n }\n }\n }\n catch (e) {\n throw new ArcGISAuthError(\"Unable to complete authentication. It's possible you specified popup based oAuth2 but no handler from \\\"beginOAuth2()\\\" present. This generally happens because the \\\"popup\\\" option differs between \\\"beginOAuth2()\\\" and \\\"completeOAuth2()\\\".\");\n }\n if (error) {\n throw new ArcGISAuthError(error.errorMessage, error.error);\n }\n return new UserSession({\n clientId: clientId,\n portal: portal,\n ssl: oauthInfo.ssl,\n token: oauthInfo.token,\n tokenExpires: oauthInfo.expires,\n username: oauthInfo.username,\n });\n }\n var params = decodeQueryString(win.location.hash);\n if (!params.access_token) {\n var error = void 0;\n var errorMessage = \"Unknown error\";\n if (params.error) {\n error = params.error;\n errorMessage = params.error_description;\n }\n return completeSignIn({ error: error, errorMessage: errorMessage });\n }\n var token = params.access_token;\n var expires = new Date(Date.now() + parseInt(params.expires_in, 10) * 1000 - 60 * 1000);\n var username = params.username;\n var ssl = params.ssl === \"true\";\n return completeSignIn(undefined, {\n token: token,\n expires: expires,\n ssl: ssl,\n username: username,\n });\n };\n /**\n * Request session information from the parent application\n *\n * When an application is embedded into another application via an IFrame, the embedded app can\n * use `window.postMessage` to request credentials from the host application. This function wraps\n * that behavior.\n *\n * The ArcGIS API for Javascript has this built into the Identity Manager as of the 4.19 release.\n *\n * Note: The parent application will not respond if the embedded app's origin is not:\n * - the same origin as the parent or *.arcgis.com (JSAPI)\n * - in the list of valid child origins (REST-JS)\n *\n *\n * @param parentOrigin origin of the parent frame. Passed into the embedded application as `parentOrigin` query param\n * @browserOnly\n */\n UserSession.fromParent = function (parentOrigin, win) {\n /* istanbul ignore next: must pass in a mockwindow for tests so we can't cover the other branch */\n if (!win && window) {\n win = window;\n }\n // Declare handler outside of promise scope so we can detach it\n var handler;\n // return a promise that will resolve when the handler receives\n // session information from the correct origin\n return new Promise(function (resolve, reject) {\n // create an event handler that just wraps the parentMessageHandler\n handler = function (event) {\n // ensure we only listen to events from the parent\n if (event.source === win.parent && event.data) {\n try {\n return resolve(UserSession.parentMessageHandler(event));\n }\n catch (err) {\n return reject(err);\n }\n }\n };\n // add listener\n win.addEventListener(\"message\", handler, false);\n win.parent.postMessage({ type: \"arcgis:auth:requestCredential\" }, parentOrigin);\n }).then(function (session) {\n win.removeEventListener(\"message\", handler, false);\n return session;\n });\n };\n /**\n * Begins a new server-based OAuth 2.0 sign in. This will redirect the user to\n * the ArcGIS Online or ArcGIS Enterprise authorization page.\n *\n * @nodeOnly\n */\n UserSession.authorize = function (options, response) {\n if (options.duration) {\n console.log(\"DEPRECATED: 'duration' is deprecated - use 'expiration' instead\");\n }\n var _a = __assign({ portal: \"https://arcgis.com/sharing/rest\", expiration: 20160 }, options), portal = _a.portal, clientId = _a.clientId, expiration = _a.expiration, redirectUri = _a.redirectUri;\n response.writeHead(301, {\n Location: portal + \"/oauth2/authorize?client_id=\" + clientId + \"&expiration=\" + (options.duration || expiration) + \"&response_type=code&redirect_uri=\" + encodeURIComponent(redirectUri),\n });\n response.end();\n };\n /**\n * Completes the server-based OAuth 2.0 sign in process by exchanging the `authorizationCode`\n * for a `access_token`.\n *\n * @nodeOnly\n */\n UserSession.exchangeAuthorizationCode = function (options, authorizationCode) {\n var _a = __assign({\n portal: \"https://www.arcgis.com/sharing/rest\",\n refreshTokenTTL: 20160,\n }, options), portal = _a.portal, clientId = _a.clientId, redirectUri = _a.redirectUri, refreshTokenTTL = _a.refreshTokenTTL;\n return fetchToken(portal + \"/oauth2/token\", {\n params: {\n grant_type: \"authorization_code\",\n client_id: clientId,\n redirect_uri: redirectUri,\n code: authorizationCode,\n },\n }).then(function (response) {\n return new UserSession({\n clientId: clientId,\n portal: portal,\n ssl: response.ssl,\n redirectUri: redirectUri,\n refreshToken: response.refreshToken,\n refreshTokenTTL: refreshTokenTTL,\n refreshTokenExpires: new Date(Date.now() + (refreshTokenTTL - 1) * 60 * 1000),\n token: response.token,\n tokenExpires: response.expires,\n username: response.username,\n });\n });\n };\n UserSession.deserialize = function (str) {\n var options = JSON.parse(str);\n return new UserSession({\n clientId: options.clientId,\n refreshToken: options.refreshToken,\n refreshTokenExpires: new Date(options.refreshTokenExpires),\n username: options.username,\n password: options.password,\n token: options.token,\n tokenExpires: new Date(options.tokenExpires),\n portal: options.portal,\n ssl: options.ssl,\n tokenDuration: options.tokenDuration,\n redirectUri: options.redirectUri,\n refreshTokenTTL: options.refreshTokenTTL,\n });\n };\n /**\n * Translates authentication from the format used in the [ArcGIS API for JavaScript](https://developers.arcgis.com/javascript/).\n *\n * ```js\n * UserSession.fromCredential({\n * userId: \"jsmith\",\n * token: \"secret\"\n * });\n * ```\n *\n * @returns UserSession\n */\n UserSession.fromCredential = function (credential) {\n // At ArcGIS Online 9.1, credentials no longer include the ssl and expires properties\n // Here, we provide default values for them to cover this condition\n var ssl = typeof credential.ssl !== \"undefined\" ? credential.ssl : true;\n var expires = credential.expires || Date.now() + 7200000; /* 2 hours */\n return new UserSession({\n portal: credential.server.includes(\"sharing/rest\")\n ? credential.server\n : credential.server + \"/sharing/rest\",\n ssl: ssl,\n token: credential.token,\n username: credential.userId,\n tokenExpires: new Date(expires),\n });\n };\n /**\n * Handle the response from the parent\n * @param event DOM Event\n */\n UserSession.parentMessageHandler = function (event) {\n if (event.data.type === \"arcgis:auth:credential\") {\n return UserSession.fromCredential(event.data.credential);\n }\n if (event.data.type === \"arcgis:auth:error\") {\n var err = new Error(event.data.error.message);\n err.name = event.data.error.name;\n throw err;\n }\n else {\n throw new Error(\"Unknown message type.\");\n }\n };\n /**\n * Returns authentication in a format useable in the [ArcGIS API for JavaScript](https://developers.arcgis.com/javascript/).\n *\n * ```js\n * esriId.registerToken(session.toCredential());\n * ```\n *\n * @returns ICredential\n */\n UserSession.prototype.toCredential = function () {\n return {\n expires: this.tokenExpires.getTime(),\n server: this.portal,\n ssl: this.ssl,\n token: this.token,\n userId: this.username,\n };\n };\n /**\n * Returns information about the currently logged in [user](https://developers.arcgis.com/rest/users-groups-and-items/user.htm). Subsequent calls will *not* result in additional web traffic.\n *\n * ```js\n * session.getUser()\n * .then(response => {\n * console.log(response.role); // \"org_admin\"\n * })\n * ```\n *\n * @param requestOptions - Options for the request. NOTE: `rawResponse` is not supported by this operation.\n * @returns A Promise that will resolve with the data from the response.\n */\n UserSession.prototype.getUser = function (requestOptions) {\n var _this = this;\n if (this._pendingUserRequest) {\n return this._pendingUserRequest;\n }\n else if (this._user) {\n return Promise.resolve(this._user);\n }\n else {\n var url = this.portal + \"/community/self\";\n var options = __assign(__assign({ httpMethod: \"GET\", authentication: this }, requestOptions), { rawResponse: false });\n this._pendingUserRequest = request(url, options).then(function (response) {\n _this._user = response;\n _this._pendingUserRequest = null;\n return response;\n });\n return this._pendingUserRequest;\n }\n };\n /**\n * Returns information about the currently logged in user's [portal](https://developers.arcgis.com/rest/users-groups-and-items/portal-self.htm). Subsequent calls will *not* result in additional web traffic.\n *\n * ```js\n * session.getPortal()\n * .then(response => {\n * console.log(portal.name); // \"City of ...\"\n * })\n * ```\n *\n * @param requestOptions - Options for the request. NOTE: `rawResponse` is not supported by this operation.\n * @returns A Promise that will resolve with the data from the response.\n */\n UserSession.prototype.getPortal = function (requestOptions) {\n var _this = this;\n if (this._pendingPortalRequest) {\n return this._pendingPortalRequest;\n }\n else if (this._portalInfo) {\n return Promise.resolve(this._portalInfo);\n }\n else {\n var url = this.portal + \"/portals/self\";\n var options = __assign(__assign({ httpMethod: \"GET\", authentication: this }, requestOptions), { rawResponse: false });\n this._pendingPortalRequest = request(url, options).then(function (response) {\n _this._portalInfo = response;\n _this._pendingPortalRequest = null;\n return response;\n });\n return this._pendingPortalRequest;\n }\n };\n /**\n * Returns the username for the currently logged in [user](https://developers.arcgis.com/rest/users-groups-and-items/user.htm). Subsequent calls will *not* result in additional web traffic. This is also used internally when a username is required for some requests but is not present in the options.\n *\n * * ```js\n * session.getUsername()\n * .then(response => {\n * console.log(response); // \"casey_jones\"\n * })\n * ```\n */\n UserSession.prototype.getUsername = function () {\n if (this.username) {\n return Promise.resolve(this.username);\n }\n else if (this._user) {\n return Promise.resolve(this._user.username);\n }\n else {\n return this.getUser().then(function (user) {\n return user.username;\n });\n }\n };\n /**\n * Gets an appropriate token for the given URL. If `portal` is ArcGIS Online and\n * the request is to an ArcGIS Online domain `token` will be used. If the request\n * is to the current `portal` the current `token` will also be used. However if\n * the request is to an unknown server we will validate the server with a request\n * to our current `portal`.\n */\n UserSession.prototype.getToken = function (url, requestOptions) {\n if (canUseOnlineToken(this.portal, url)) {\n return this.getFreshToken(requestOptions);\n }\n else if (new RegExp(this.portal, \"i\").test(url)) {\n return this.getFreshToken(requestOptions);\n }\n else {\n return this.getTokenForServer(url, requestOptions);\n }\n };\n /**\n * Get application access information for the current user\n * see `validateAppAccess` function for details\n *\n * @param clientId application client id\n */\n UserSession.prototype.validateAppAccess = function (clientId) {\n return this.getToken(this.portal).then(function (token) {\n return validateAppAccess(token, clientId);\n });\n };\n UserSession.prototype.toJSON = function () {\n return {\n clientId: this.clientId,\n refreshToken: this.refreshToken,\n refreshTokenExpires: this.refreshTokenExpires,\n username: this.username,\n password: this.password,\n token: this.token,\n tokenExpires: this.tokenExpires,\n portal: this.portal,\n ssl: this.ssl,\n tokenDuration: this.tokenDuration,\n redirectUri: this.redirectUri,\n refreshTokenTTL: this.refreshTokenTTL,\n };\n };\n UserSession.prototype.serialize = function () {\n return JSON.stringify(this);\n };\n /**\n * For a \"Host\" app that embeds other platform apps via iframes, after authenticating the user\n * and creating a UserSession, the app can then enable \"post message\" style authentication by calling\n * this method.\n *\n * Internally this adds an event listener on window for the `message` event\n *\n * @param validChildOrigins Array of origins that are allowed to request authentication from the host app\n */\n UserSession.prototype.enablePostMessageAuth = function (validChildOrigins, win) {\n /* istanbul ignore next: must pass in a mockwindow for tests so we can't cover the other branch */\n if (!win && window) {\n win = window;\n }\n this._hostHandler = this.createPostMessageHandler(validChildOrigins);\n win.addEventListener(\"message\", this._hostHandler, false);\n };\n /**\n * For a \"Host\" app that has embedded other platform apps via iframes, when the host needs\n * to transition routes, it should call `UserSession.disablePostMessageAuth()` to remove\n * the event listener and prevent memory leaks\n */\n UserSession.prototype.disablePostMessageAuth = function (win) {\n /* istanbul ignore next: must pass in a mockwindow for tests so we can't cover the other branch */\n if (!win && window) {\n win = window;\n }\n win.removeEventListener(\"message\", this._hostHandler, false);\n };\n /**\n * Manually refreshes the current `token` and `tokenExpires`.\n */\n UserSession.prototype.refreshSession = function (requestOptions) {\n // make sure subsequent calls to getUser() don't returned cached metadata\n this._user = null;\n if (this.username && this.password) {\n return this.refreshWithUsernameAndPassword(requestOptions);\n }\n if (this.clientId && this.refreshToken) {\n return this.refreshWithRefreshToken();\n }\n return Promise.reject(new ArcGISAuthError(\"Unable to refresh token.\"));\n };\n /**\n * Determines the root of the ArcGIS Server or Portal for a given URL.\n *\n * @param url the URl to determine the root url for.\n */\n UserSession.prototype.getServerRootUrl = function (url) {\n var root = cleanUrl(url).split(/\\/rest(\\/admin)?\\/services(?:\\/|#|\\?|$)/)[0];\n var _a = root.match(/(https?:\\/\\/)(.+)/), match = _a[0], protocol = _a[1], domainAndPath = _a[2];\n var _b = domainAndPath.split(\"/\"), domain = _b[0], path = _b.slice(1);\n // only the domain is lowercased because in some cases an org id might be\n // in the path which cannot be lowercased.\n return \"\" + protocol + domain.toLowerCase() + \"/\" + path.join(\"/\");\n };\n /**\n * Returns the proper [`credentials`] option for `fetch` for a given domain.\n * See [trusted server](https://enterprise.arcgis.com/en/portal/latest/administer/windows/configure-security.htm#ESRI_SECTION1_70CC159B3540440AB325BE5D89DBE94A).\n * Used internally by underlying request methods to add support for specific security considerations.\n *\n * @param url The url of the request\n * @returns \"include\" or \"same-origin\"\n */\n UserSession.prototype.getDomainCredentials = function (url) {\n if (!this.trustedDomains || !this.trustedDomains.length) {\n return \"same-origin\";\n }\n return this.trustedDomains.some(function (domainWithProtocol) {\n return url.startsWith(domainWithProtocol);\n })\n ? \"include\"\n : \"same-origin\";\n };\n /**\n * Return a function that closes over the validOrigins array and\n * can be used as an event handler for the `message` event\n *\n * @param validOrigins Array of valid origins\n */\n UserSession.prototype.createPostMessageHandler = function (validOrigins) {\n var _this = this;\n // return a function that closes over the validOrigins and\n // has access to the credential\n return function (event) {\n // Verify that the origin is valid\n // Note: do not use regex's here. validOrigins is an array so we're checking that the event's origin\n // is in the array via exact match. More info about avoiding postMessage xss issues here\n // https://jlajara.gitlab.io/web/2020/07/17/Dom_XSS_PostMessage_2.html#tipsbypasses-in-postmessage-vulnerabilities\n var isValidOrigin = validOrigins.indexOf(event.origin) > -1;\n // JSAPI handles this slightly differently - instead of checking a list, it will respond if\n // event.origin === window.location.origin || event.origin.endsWith('.arcgis.com')\n // For Hub, and to enable cross domain debugging with port's in urls, we are opting to\n // use a list of valid origins\n // Ensure the message type is something we want to handle\n var isValidType = event.data.type === \"arcgis:auth:requestCredential\";\n var isTokenValid = _this.tokenExpires.getTime() > Date.now();\n if (isValidOrigin && isValidType) {\n var msg = {};\n if (isTokenValid) {\n var credential = _this.toCredential();\n // arcgis:auth:error with {name: \"\", message: \"\"}\n // the following line allows us to conform to our spec without changing other depended-on functionality\n // https://github.com/Esri/arcgis-rest-js/blob/master/packages/arcgis-rest-auth/post-message-auth-spec.md#arcgisauthcredential\n credential.server = credential.server.replace(\"/sharing/rest\", \"\");\n msg = { type: \"arcgis:auth:credential\", credential: credential };\n }\n else {\n // Return an error\n msg = {\n type: \"arcgis:auth:error\",\n error: {\n name: \"tokenExpiredError\",\n message: \"Session token was expired, and not returned to the child application\",\n },\n };\n }\n event.source.postMessage(msg, event.origin);\n }\n };\n };\n /**\n * Validates that a given URL is properly federated with our current `portal`.\n * Attempts to use the internal `federatedServers` cache first.\n */\n UserSession.prototype.getTokenForServer = function (url, requestOptions) {\n var _this = this;\n // requests to /rest/services/ and /rest/admin/services/ are both valid\n // Federated servers may have inconsistent casing, so lowerCase it\n var root = this.getServerRootUrl(url);\n var existingToken = this.federatedServers[root];\n if (existingToken &&\n existingToken.expires &&\n existingToken.expires.getTime() > Date.now()) {\n return Promise.resolve(existingToken.token);\n }\n if (this._pendingTokenRequests[root]) {\n return this._pendingTokenRequests[root];\n }\n this._pendingTokenRequests[root] = this.fetchAuthorizedDomains().then(function () {\n return request(root + \"/rest/info\", {\n credentials: _this.getDomainCredentials(url),\n })\n .then(function (response) {\n if (response.owningSystemUrl) {\n /**\n * if this server is not owned by this portal\n * bail out with an error since we know we wont\n * be able to generate a token\n */\n if (!isFederated(response.owningSystemUrl, _this.portal)) {\n throw new ArcGISAuthError(url + \" is not federated with \" + _this.portal + \".\", \"NOT_FEDERATED\");\n }\n else {\n /**\n * if the server is federated, use the relevant token endpoint.\n */\n return request(response.owningSystemUrl + \"/sharing/rest/info\", requestOptions);\n }\n }\n else if (response.authInfo &&\n _this.federatedServers[root] !== undefined) {\n /**\n * if its a stand-alone instance of ArcGIS Server that doesn't advertise\n * federation, but the root server url is recognized, use its built in token endpoint.\n */\n return Promise.resolve({\n authInfo: response.authInfo,\n });\n }\n else {\n throw new ArcGISAuthError(url + \" is not federated with any portal and is not explicitly trusted.\", \"NOT_FEDERATED\");\n }\n })\n .then(function (response) {\n return response.authInfo.tokenServicesUrl;\n })\n .then(function (tokenServicesUrl) {\n // an expired token cant be used to generate a new token\n if (_this.token && _this.tokenExpires.getTime() > Date.now()) {\n return generateToken(tokenServicesUrl, {\n params: {\n token: _this.token,\n serverUrl: url,\n expiration: _this.tokenDuration,\n client: \"referer\",\n },\n });\n // generate an entirely fresh token if necessary\n }\n else {\n return generateToken(tokenServicesUrl, {\n params: {\n username: _this.username,\n password: _this.password,\n expiration: _this.tokenDuration,\n client: \"referer\",\n },\n }).then(function (response) {\n _this._token = response.token;\n _this._tokenExpires = new Date(response.expires);\n return response;\n });\n }\n })\n .then(function (response) {\n _this.federatedServers[root] = {\n expires: new Date(response.expires),\n token: response.token,\n };\n delete _this._pendingTokenRequests[root];\n return response.token;\n });\n });\n return this._pendingTokenRequests[root];\n };\n /**\n * Returns an unexpired token for the current `portal`.\n */\n UserSession.prototype.getFreshToken = function (requestOptions) {\n var _this = this;\n if (this.token && !this.tokenExpires) {\n return Promise.resolve(this.token);\n }\n if (this.token &&\n this.tokenExpires &&\n this.tokenExpires.getTime() > Date.now()) {\n return Promise.resolve(this.token);\n }\n if (!this._pendingTokenRequests[this.portal]) {\n this._pendingTokenRequests[this.portal] = this.refreshSession(requestOptions).then(function (session) {\n _this._pendingTokenRequests[_this.portal] = null;\n return session.token;\n });\n }\n return this._pendingTokenRequests[this.portal];\n };\n /**\n * Refreshes the current `token` and `tokenExpires` with `username` and\n * `password`.\n */\n UserSession.prototype.refreshWithUsernameAndPassword = function (requestOptions) {\n var _this = this;\n var options = __assign({ params: {\n username: this.username,\n password: this.password,\n expiration: this.tokenDuration,\n } }, requestOptions);\n return generateToken(this.portal + \"/generateToken\", options).then(function (response) {\n _this._token = response.token;\n _this._tokenExpires = new Date(response.expires);\n return _this;\n });\n };\n /**\n * Refreshes the current `token` and `tokenExpires` with `refreshToken`.\n */\n UserSession.prototype.refreshWithRefreshToken = function (requestOptions) {\n var _this = this;\n if (this.refreshToken &&\n this.refreshTokenExpires &&\n this.refreshTokenExpires.getTime() < Date.now()) {\n return this.refreshRefreshToken(requestOptions);\n }\n var options = __assign({ params: {\n client_id: this.clientId,\n refresh_token: this.refreshToken,\n grant_type: \"refresh_token\",\n } }, requestOptions);\n return fetchToken(this.portal + \"/oauth2/token\", options).then(function (response) {\n _this._token = response.token;\n _this._tokenExpires = response.expires;\n return _this;\n });\n };\n /**\n * Exchanges an unexpired `refreshToken` for a new one, also updates `token` and\n * `tokenExpires`.\n */\n UserSession.prototype.refreshRefreshToken = function (requestOptions) {\n var _this = this;\n var options = __assign({ params: {\n client_id: this.clientId,\n refresh_token: this.refreshToken,\n redirect_uri: this.redirectUri,\n grant_type: \"exchange_refresh_token\",\n } }, requestOptions);\n return fetchToken(this.portal + \"/oauth2/token\", options).then(function (response) {\n _this._token = response.token;\n _this._tokenExpires = response.expires;\n _this._refreshToken = response.refreshToken;\n _this._refreshTokenExpires = new Date(Date.now() + (_this.refreshTokenTTL - 1) * 60 * 1000);\n return _this;\n });\n };\n /**\n * ensures that the authorizedCrossOriginDomains are obtained from the portal and cached\n * so we can check them later.\n *\n * @returns this\n */\n UserSession.prototype.fetchAuthorizedDomains = function () {\n var _this = this;\n // if this token is for a specific server or we don't have a portal\n // don't get the portal info because we cant get the authorizedCrossOriginDomains\n if (this.server || !this.portal) {\n return Promise.resolve(this);\n }\n return this.getPortal().then(function (portalInfo) {\n /**\n * Specific domains can be configured as secure.esri.com or https://secure.esri.com this\n * normalizes to https://secure.esri.com so we can use startsWith later.\n */\n if (portalInfo.authorizedCrossOriginDomains &&\n portalInfo.authorizedCrossOriginDomains.length) {\n _this.trustedDomains = portalInfo.authorizedCrossOriginDomains\n .filter(function (d) { return !d.startsWith(\"http://\"); })\n .map(function (d) {\n if (d.startsWith(\"https://\")) {\n return d;\n }\n else {\n return \"https://\" + d;\n }\n });\n }\n return _this;\n });\n };\n return UserSession;\n}());\nexport { UserSession };\n//# sourceMappingURL=UserSession.js.map","import { UserSession } from \"@esri/arcgis-rest-auth\";\n/**\n * Remove any serialized sessions associated with the passed clientId\n * from a browser's local storage\n * @param clientId oAuth Client Id\n * @param win optional window (used for testing)\n */\nexport function clearSession(clientId, \n/* istanbul ignore next */\nwin) {\n if (win === void 0) { win = window; }\n if (win.localStorage) {\n win.localStorage.removeItem(\"__CONTEXT_\" + clientId);\n }\n}\n/**\n * Re-hydrate a UserSession from a browser's local storage.\n * If not found,\n * @param clientId oAuth Client Id\n * @param win optional window (used for testing)\n * @returns\n */\nexport function getSession(clientId, \n/* istanbul ignore next */\nwin) {\n if (win === void 0) { win = window; }\n var result = null;\n if (win.localStorage) {\n var serializedSession = win.localStorage.getItem(\"__CONTEXT_\" + clientId);\n if (serializedSession) {\n result = UserSession.deserialize(serializedSession);\n }\n }\n return result;\n}\n/**\n * Serialize a UserSession into a browser's local storage\n * @param clientId oAuth Client Id\n * @param session UserSession\n * @param win optional window (used for testing)\n */\nexport function saveSession(clientId, session, \n/* istanbul ignore next */\nwin) {\n if (win === void 0) { win = window; }\n if (win.localStorage) {\n win.localStorage.setItem(\"__CONTEXT_\" + clientId, session.serialize());\n }\n}\n//# sourceMappingURL=sessionLocalStorage.js.map","/**\n * Dasherize a string\n *\n * ```javascript\n * import { dasherize } from '@esri/hub-common';\n * dasherize('innerHTML'); // 'inner-html'\n * dasherize('action_name'); // 'action-name'\n * dasherize('css-class-name'); // 'css-class-name'\n * dasherize('my favorite items'); // 'my-favorite-items'\n * dasherize('privateDocs/ownerInvoice'; // 'private-docs/owner-invoice'\n * ```\n *\n * Extracted and modified from Ember.js source code - MIT license\n * @param value\n * @returns\n */\nexport function dasherize(value) {\n var DECAMELIZE_REGEXP = /([a-z\\d])([A-Z])/g;\n var DASHERIZE_REGEXP = /[ _]/g;\n return value\n .replace(DECAMELIZE_REGEXP, \"$1_$2\")\n .toLowerCase()\n .replace(DASHERIZE_REGEXP, \"-\");\n}\n//# sourceMappingURL=dasherize.js.map","import { includes } from \"../utils\";\n/**\n * Checks for fundamental privilege required by all access checks\n * @param {IUser} user\n * @returns {boolean}\n */\nexport function hasBasePriv(user) {\n var _a = user.privileges, privileges = _a === void 0 ? [] : _a;\n return includes(privileges, \"portal:user:createItem\");\n}\n//# sourceMappingURL=has-base-priv.js.map","import { getProp } from \"../objects\";\nimport { findBy } from \"../util\";\nimport { hasBasePriv } from \"./has-base-priv\";\n/**\n * Checks if user has access to edit an event in Hub\n * @param {IEventModel} model consolidated event model as consumed by Hub, contains the event feature, related initiative model, and attendees group\n * @param {IUser} user\n * @returns {boolean}\n */\nexport function canEditEvent(model, user) {\n var res = false;\n if (hasBasePriv(user)) {\n var coreTeamId = getProp(model, \"initiative.item.properties.collaborationGroupId\");\n var _a = user.groups, groups = _a === void 0 ? [] : _a;\n res = !!coreTeamId && !!findBy(groups, \"id\", coreTeamId);\n }\n return res;\n}\n//# sourceMappingURL=can-edit-event.js.map","import { __spreadArrays } from \"tslib\";\nimport { isUpdateGroup, includes } from \"../utils\";\nimport { getProp } from \"../objects\";\nimport { hasBasePriv } from \"./has-base-priv\";\n/**\n * Checks if user has access to edit an item in Hub\n * @param {IItem} item\n * @param {IUser} user\n * @returns {boolean}\n */\nexport function canEditItem(item, user) {\n var res = false;\n var itemControls = [\"admin\", \"update\"];\n var itemControl = item.itemControl, owner = item.owner, itemOrgId = item.orgId;\n var roleId = user.roleId, role = user.role, username = user.username, userGroups = user.groups, userOrgId = user.orgId;\n var hasItemControl = includes(itemControls, itemControl);\n var isOwner = !!owner && owner === username;\n var isOrgItem = !!itemOrgId && itemOrgId === userOrgId;\n var isItemOrgAdmin = !!isOrgItem && !roleId && role === \"org_admin\";\n var hasPlatformControl = hasItemControl || isOwner || isItemOrgAdmin;\n var hasPriv = hasBasePriv(user);\n if (hasPriv && hasPlatformControl) {\n res = true;\n }\n else if (hasPriv) {\n var itemGroups_1 = __spreadArrays((getProp(item, \"groupIds\") || []), [\n getProp(item, \"properties.collaborationGroupId\")\n ]);\n var isGroupEditable = function (group) {\n return isUpdateGroup(group) && includes(itemGroups_1, group.id);\n };\n res = userGroups.some(isGroupEditable);\n }\n return res;\n}\n//# sourceMappingURL=can-edit-item.js.map","import { includes } from \"../utils\";\nimport { getProp } from \"../objects\";\nimport { hasBasePriv } from \"./has-base-priv\";\nimport { canEditItem } from \"./can-edit-item\";\nexport var REQUIRED_PRIVS = [\n \"portal:user:createGroup\",\n \"portal:user:createItem\",\n \"portal:user:shareToGroup\",\n \"portal:user:viewOrgGroups\",\n \"portal:user:viewOrgItems\"\n];\n/**\n * Checks if user has access to content library in Hub\n * In Hub Home context, user access requires additional privileges\n * In initiative context, check is delegated to canEditItem for the initiative site item\n * @param {IItem} item\n * @param {IUser} user\n * @returns {boolean}\n */\nexport function canEditSiteContent(item, user) {\n var res = false;\n var isDefaultHubHome = getProp(item, \"properties.isDefaultHubHome\");\n var hasPriv = hasBasePriv(user);\n if (!isDefaultHubHome && hasPriv) {\n res = canEditItem(item, user);\n }\n else if (hasPriv) {\n var userOrgId = user.orgId;\n var itemOrgId = item.orgId;\n var sameOrg = !!userOrgId && userOrgId === itemOrgId;\n if (sameOrg) {\n var privileges_1 = user.privileges || [];\n res = REQUIRED_PRIVS.every(function (privilege) { return includes(privileges_1, privilege); });\n }\n }\n return res;\n}\n//# sourceMappingURL=can-edit-site-content.js.map","import { getProp } from \"../objects\";\nimport { hasBasePriv } from \"./has-base-priv\";\nimport { canEditItem } from \"./can-edit-item\";\n/**\n * Checks if user has access to edit site in Hub\n * Currently, Hub Home sites are not editable\n * In initiative context, check is delegated to canEditItem for the initiative site item\n * @param {IItem} model\n * @param {IUser} user\n * @returns {boolean}\n */\nexport function canEditSite(model, user) {\n var res = false;\n var isDefaultHubHome = getProp(model, \"properties.isDefaultHubHome\");\n if (!isDefaultHubHome && hasBasePriv(user)) {\n res = canEditItem(model, user);\n }\n return res;\n}\n//# sourceMappingURL=can-edit-site.js.map","/**\n * @private\n */\nexport function buildUrl(params) {\n var host = params.host, path = params.path, query = params.query;\n var baseUrl = host.endsWith(\"/\") ? host : host + \"/\";\n var url = new URL(path, baseUrl);\n url.search = buildQueryString(query);\n return url.toString();\n}\nfunction buildQueryString(params) {\n if (params === void 0) { params = {}; }\n var queryParams = Object.keys(params)\n .filter(function (key) {\n return params[key] !== undefined;\n })\n .reduce(function (acc, key) {\n acc[key] = params[key];\n return acc;\n }, {});\n return new URLSearchParams(queryParams).toString();\n}\n//# sourceMappingURL=build-url.js.map","/* Copyright (c) 2017 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { cleanUrl } from \"@esri/arcgis-rest-request\";\n/**\n * Helper that returns the appropriate portal url for a given request. `requestOptions.portal` is given\n * precedence over `authentication.portal`. If neither `portal` nor `authentication` is present,\n * `www.arcgis.com/sharing/rest` is returned.\n *\n * @param requestOptions - Request options that may have authentication manager\n * @returns Portal url to be used in API requests\n */\nexport function getPortalUrl(requestOptions) {\n if (requestOptions === void 0) { requestOptions = {}; }\n // use portal in options if specified\n if (requestOptions.portal) {\n return cleanUrl(requestOptions.portal);\n }\n // if auth was passed, use that portal\n if (requestOptions.authentication) {\n // the portal url is already scrubbed in the auth package\n return requestOptions.authentication.portal;\n }\n // default to arcgis.com\n return \"https://www.arcgis.com/sharing/rest\";\n}\n//# sourceMappingURL=get-portal-url.js.map","/* Copyright (c) 2017-2018 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\n/**\n * Serialize an item and its data into a json format accepted by the Portal API for create and update operations\n *\n * @param item Item to be serialized\n * @returns a formatted json object to be sent to Portal\n */\nexport function serializeItem(item) {\n // create a clone so we're not messing with the original\n var clone = JSON.parse(JSON.stringify(item));\n // binary data needs POSTed as a `file`\n // JSON object literals should be passed as `text`.\n if (clone.data) {\n (typeof Blob !== \"undefined\" && item.data instanceof Blob) ||\n // Node.js doesn't implement Blob\n item.data.constructor.name === \"ReadStream\"\n ? (clone.file = item.data)\n : (clone.text = item.data);\n delete clone.data;\n }\n return clone;\n}\n/**\n * `requestOptions.owner` is given priority, `requestOptions.item.owner` will be checked next. If neither are present, `authentication.getUserName()` will be used instead.\n */\nexport function determineOwner(requestOptions) {\n if (requestOptions.owner) {\n return Promise.resolve(requestOptions.owner);\n }\n else if (requestOptions.item && requestOptions.item.owner) {\n return Promise.resolve(requestOptions.item.owner);\n }\n else if (requestOptions.authentication &&\n requestOptions.authentication.getUsername) {\n return requestOptions.authentication.getUsername();\n }\n else {\n return Promise.reject(new Error(\"Could not determine the owner of this item. Pass the `owner`, `item.owner`, or `authentication` option.\"));\n }\n}\n//# sourceMappingURL=helpers.js.map","/* Copyright (c) 2018 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { __assign } from \"tslib\";\nimport { request } from \"@esri/arcgis-rest-request\";\nimport { getPortalUrl } from \"../util/get-portal-url\";\nimport { serializeItem, determineOwner } from \"./helpers\";\n/**\n * ```js\n * import { updateItem } from \"@esri/arcgis-rest-portal\";\n * //\n * updateItem({\n * item: {\n * id: \"3ef\",\n * description: \"A three hour tour\"\n * },\n * authentication\n * })\n * .then(response)\n * ```\n * Update an Item. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/update-item.htm) for more information.\n *\n * @param requestOptions - Options for the request.\n * @returns A Promise that updates an item.\n */\nexport function updateItem(requestOptions) {\n return determineOwner(requestOptions).then(function (owner) {\n var url = requestOptions.folderId\n ? getPortalUrl(requestOptions) + \"/content/users/\" + owner + \"/\" + requestOptions.folderId + \"/items/\" + requestOptions.item.id + \"/update\"\n : getPortalUrl(requestOptions) + \"/content/users/\" + owner + \"/items/\" + requestOptions.item.id + \"/update\";\n // serialize the item into something Portal will accept\n requestOptions.params = __assign(__assign({}, requestOptions.params), serializeItem(requestOptions.item));\n return request(url, requestOptions);\n });\n}\n/**\n * ```js\n * import { updateItemInfo } from \"@esri/arcgis-rest-portal\";\n * //\n * updateItemInfo({\n * id: '3ef',\n * file: file,\n * authentication\n * })\n * .then(response)\n * ```\n * Update an info file associated with an item. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/update-info.htm) for more information.\n *\n * @param requestOptions - Options for the request\n * @returns A Promise that updates an item info file.\n */\nexport function updateItemInfo(requestOptions) {\n return determineOwner(requestOptions).then(function (owner) {\n var url = getPortalUrl(requestOptions) + \"/content/users/\" + owner + \"/items/\" + requestOptions.id + \"/updateinfo\";\n // mix in user supplied params\n requestOptions.params = __assign({ folderName: requestOptions.folderName, file: requestOptions.file }, requestOptions.params);\n return request(url, requestOptions);\n });\n}\n/**\n * ```js\n * import { updateItemResource } from \"@esri/arcgis-rest-portal\";\n * //\n * updateItemResource({\n * id: '3ef',\n * resource: file,\n * name: 'bigkahuna.jpg',\n * authentication\n * })\n * .then(response)\n * ```\n * Update a resource associated with an item. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/update-resources.htm) for more information.\n *\n * @param requestOptions - Options for the request\n * @returns A Promise that updates an item resource.\n */\nexport function updateItemResource(requestOptions) {\n return determineOwner(requestOptions).then(function (owner) {\n var url = getPortalUrl(requestOptions) + \"/content/users/\" + owner + \"/items/\" + requestOptions.id + \"/updateResources\";\n // mix in user supplied params\n requestOptions.params = __assign({ file: requestOptions.resource, fileName: requestOptions.name, resourcesPrefix: requestOptions.prefix, text: requestOptions.content }, requestOptions.params);\n // only override the access specified previously if 'private' is passed explicitly\n if (typeof requestOptions.private !== \"undefined\") {\n requestOptions.params.access = requestOptions.private\n ? \"private\"\n : \"inherit\";\n }\n return request(url, requestOptions);\n });\n}\n/**\n * ```js\n * import { moveItem } from \"@esri/arcgis-rest-portal\";\n * //\n * moveItem({\n * itemId: \"3ef\",\n * folderId: \"7c5\",\n * authentication: userSession\n * })\n * ```\n * Move an item to a folder. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/move-item.htm) for more information.\n *\n * @param requestOptions - Options for the request\n * @returns A Promise that resolves with owner and folder details once the move has been completed\n */\nexport function moveItem(requestOptions) {\n return determineOwner(requestOptions).then(function (owner) {\n var url = getPortalUrl(requestOptions) + \"/content/users/\" + owner + \"/items/\" + requestOptions.itemId + \"/move\";\n var folderId = requestOptions.folderId;\n if (!folderId) {\n folderId = \"/\";\n }\n requestOptions.params = __assign({ folder: folderId }, requestOptions.params);\n return request(url, requestOptions);\n });\n}\n//# sourceMappingURL=update.js.map","/* Copyright (c) 2018 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { __assign } from \"tslib\";\nimport { request, appendCustomParams } from \"@esri/arcgis-rest-request\";\nimport { getPortalUrl } from \"../util/get-portal-url\";\nimport { determineOwner } from \"./helpers\";\nimport { updateItem } from \"./update\";\n/**\n * ```js\n * import { addItemData } from \"@esri/arcgis-rest-portal\";\n * //\n * addItemData({\n * id: '3ef',\n * data: file,\n * authentication\n * })\n * .then(response)\n * ```\n * Send a file or blob to an item to be stored as the `/data` resource. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/update-item.htm) for more information.\n *\n * @param requestOptions - Options for the request\n * @returns A Promise that will resolve with an object reporting\n * success/failure and echoing the item id.\n */\nexport function addItemData(requestOptions) {\n var options = __assign({ item: {\n id: requestOptions.id,\n data: requestOptions.data\n } }, requestOptions);\n delete options.id;\n delete options.data;\n return updateItem(options);\n}\n/**\n * ```js\n * import { addItemRelationship } from \"@esri/arcgis-rest-portal\";\n * //\n * addItemRelationship({\n * originItemId: '3ef',\n * destinationItemId: 'ae7',\n * relationshipType: 'Service2Layer',\n * authentication\n * })\n * .then(response)\n * ```\n * Add a relationship between two items. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/add-relationship.htm) for more information.\n *\n * @param requestOptions - Options for the request\n * @returns A Promise to add item resources.\n */\nexport function addItemRelationship(requestOptions) {\n return determineOwner(requestOptions).then(function (owner) {\n var url = getPortalUrl(requestOptions) + \"/content/users/\" + owner + \"/addRelationship\";\n var options = appendCustomParams(requestOptions, [\"originItemId\", \"destinationItemId\", \"relationshipType\"], { params: __assign({}, requestOptions.params) });\n return request(url, options);\n });\n}\n/**\n * ```js\n * import { addItemResource } from \"@esri/arcgis-rest-portal\";\n * //\n * // Add a file resource\n * addItemResource({\n * id: '3ef',\n * resource: file,\n * name: 'bigkahuna.jpg',\n * authentication\n * })\n * .then(response)\n * //\n * // Add a text resource\n * addItemResource({\n * id: '4fg',\n * content: \"Text content\",\n * name: 'bigkahuna.txt',\n * authentication\n * })\n * .then(response)\n * ```\n * Add a resource associated with an item. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/add-resources.htm) for more information.\n *\n * @param requestOptions - Options for the request\n * @returns A Promise to add item resources.\n */\nexport function addItemResource(requestOptions) {\n return determineOwner(requestOptions).then(function (owner) {\n var url = getPortalUrl(requestOptions) + \"/content/users/\" + owner + \"/items/\" + requestOptions.id + \"/addResources\";\n requestOptions.params = __assign({ file: requestOptions.resource, fileName: requestOptions.name, resourcesPrefix: requestOptions.prefix, text: requestOptions.content, access: requestOptions.private ? \"private\" : \"inherit\" }, requestOptions.params);\n return request(url, requestOptions);\n });\n}\n//# sourceMappingURL=add.js.map","/* Copyright (c) 2018 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { __assign } from \"tslib\";\nimport { request, appendCustomParams } from \"@esri/arcgis-rest-request\";\nimport { getPortalUrl } from \"../util/get-portal-url\";\nimport { serializeItem, determineOwner } from \"./helpers\";\n/**\n * ```js\n * import { createFolder } from \"@esri/arcgis-rest-portal\";\n * //\n * createFolder({\n * title: 'Map Collection',\n * authentication: userSession\n * })\n * .then(response)\n * ```\n * Create a folder. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/create-folder.htm) for more information.\n *\n * @param requestOptions - Options for the request\n * @returns A Promise that resolves with folder details once the folder has been created\n */\nexport function createFolder(requestOptions) {\n return determineOwner(requestOptions).then(function (owner) {\n var baseUrl = getPortalUrl(requestOptions) + \"/content/users/\" + owner;\n var url = baseUrl + \"/createFolder\";\n requestOptions.params = __assign({ title: requestOptions.title }, requestOptions.params);\n return request(url, requestOptions);\n });\n}\n/**\n * ```js\n * import { createItemInFolder } from \"@esri/arcgis-rest-portal\";\n * //\n * createItemInFolder({\n * item: {\n * title: \"The Amazing Voyage\",\n * type: \"Web Map\"\n * },\n * folderId: 'fe8',\n * authentication\n * })\n * ```\n * Create an item in a folder. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/add-item.htm) for more information.\n *\n * @param requestOptions = Options for the request\n */\nexport function createItemInFolder(requestOptions) {\n if (requestOptions.multipart && !requestOptions.filename) {\n return Promise.reject(new Error(\"The filename is required for a multipart request.\"));\n }\n return determineOwner(requestOptions).then(function (owner) {\n var baseUrl = getPortalUrl(requestOptions) + \"/content/users/\" + owner;\n var url = baseUrl + \"/addItem\";\n if (requestOptions.folderId) {\n url = baseUrl + \"/\" + requestOptions.folderId + \"/addItem\";\n }\n requestOptions.params = __assign(__assign({}, requestOptions.params), serializeItem(requestOptions.item));\n // serialize the item into something Portal will accept\n var options = appendCustomParams(requestOptions, [\n \"owner\",\n \"folderId\",\n \"file\",\n \"dataUrl\",\n \"text\",\n \"async\",\n \"multipart\",\n \"filename\",\n \"overwrite\"\n ], {\n params: __assign({}, requestOptions.params)\n });\n return request(url, options);\n });\n}\n/**\n * ```js\n * import { createItem } from \"@esri/arcgis-rest-portal\";\n * //\n * createItem({\n * item: {\n * title: \"The Amazing Voyage\",\n * type: \"Web Map\"\n * },\n * authentication\n * })\n * ```\n * Create an Item in the user's root folder. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/add-item.htm) for more information.\n *\n * @param requestOptions - Options for the request\n * @returns A Promise that creates an item.\n */\nexport function createItem(requestOptions) {\n // delegate to createItemInFolder placing in the root of the filestore\n var options = __assign({ folderId: null }, requestOptions);\n return createItemInFolder(options);\n}\n//# sourceMappingURL=create.js.map","// eslint-disable-next-line no-control-regex\nvar CONTROL_CHAR_MATCHER = /[\\x00-\\x1F\\x7F-\\x9F\\xA0]/g;\n/**\n * Returns a new string with all control characters removed.\n *\n * Doesn't remove characters from input string.\n *\n * @param str - the string to scrub\n */\nexport function scrubControlChars(str) {\n return str.replace(CONTROL_CHAR_MATCHER, \"\");\n}\n//# sourceMappingURL=scrub-control-chars.js.map","/* Copyright (c) 2018 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { __assign } from \"tslib\";\nimport { request, appendCustomParams } from \"@esri/arcgis-rest-request\";\nimport { getPortalUrl } from \"../util/get-portal-url\";\nimport { scrubControlChars } from '../util/scrub-control-chars';\nimport { determineOwner } from \"./helpers\";\n/**\n * ```\n * import { getItem } from \"@esri/arcgis-rest-portal\";\n * //\n * getItem(\"ae7\")\n * .then(response);\n * // or\n * getItem(\"ae7\", { authentication })\n * .then(response)\n * ```\n * Get an item by id. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/item.htm) for more information.\n *\n * @param id - Item Id\n * @param requestOptions - Options for the request\n * @returns A Promise that will resolve with the data from the response.\n */\nexport function getItem(id, requestOptions) {\n var url = getItemBaseUrl(id, requestOptions);\n // default to a GET request\n var options = __assign({ httpMethod: \"GET\" }, requestOptions);\n return request(url, options);\n}\n/**\n * Get the fully qualified base URL to the REST end point for an item.\n * @param id Item Id\n * @param portalUrlOrRequestOptions a portal URL or request options\n * @returns URL to the item's REST end point, defaults to `https://www.arcgis.com/sharing/rest/content/items/{id}`\n */\nexport var getItemBaseUrl = function (id, portalUrlOrRequestOptions) {\n var portalUrl = typeof portalUrlOrRequestOptions === \"string\"\n ? portalUrlOrRequestOptions\n : getPortalUrl(portalUrlOrRequestOptions);\n return portalUrl + \"/content/items/\" + id;\n};\n/**\n * ```\n * import { getItemData } from \"@esri/arcgis-rest-portal\";\n * //\n * getItemData(\"ae7\")\n * .then(response)\n * // or\n * getItemData(\"ae7\", { authentication })\n * .then(response)\n * ```\n * Get the /data for an item. If no data exists, returns `undefined`. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/item-data.htm) for more information.\n * @param id - Item Id\n * @param requestOptions - Options for the request\n * @returns A Promise that will resolve with the json data for the item.\n */\nexport function getItemData(id, requestOptions) {\n var url = getItemBaseUrl(id, requestOptions) + \"/data\";\n // default to a GET request\n var options = __assign({ httpMethod: \"GET\", params: {} }, requestOptions);\n if (options.file) {\n options.params.f = null;\n }\n return request(url, options).catch(function (err) {\n /* if the item doesn't include data, the response will be empty\n and the internal call to response.json() will fail */\n var emptyResponseErr = RegExp(/The string did not match the expected pattern|(Unexpected end of (JSON input|data at line 1 column 1))/i);\n /* istanbul ignore else */\n if (emptyResponseErr.test(err.message)) {\n return;\n }\n else\n throw err;\n });\n}\n/**\n * ```\n * import { getRelatedItems } from \"@esri/arcgis-rest-portal\";\n * //\n * getRelatedItems({\n * id: \"ae7\",\n * relationshipType: \"Service2Layer\" // or several [\"Service2Layer\", \"Map2Area\"]\n * })\n * .then(response)\n * ```\n * Get the related items. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/related-items.htm) for more information.\n *\n * @param requestOptions - Options for the request\n * @returns A Promise to get some item resources.\n */\nexport function getRelatedItems(requestOptions) {\n var url = getItemBaseUrl(requestOptions.id, requestOptions) + \"/relatedItems\";\n var options = __assign({ httpMethod: \"GET\", params: {\n direction: requestOptions.direction\n } }, requestOptions);\n if (typeof requestOptions.relationshipType === \"string\") {\n options.params.relationshipType = requestOptions.relationshipType;\n }\n else {\n options.params.relationshipTypes = requestOptions.relationshipType;\n }\n delete options.direction;\n delete options.relationshipType;\n return request(url, options);\n}\n/**\n * Get the resources associated with an item\n *\n * @param requestOptions - Options for the request\n * @returns A Promise to get some item resources.\n */\nexport function getItemResources(id, requestOptions) {\n var url = getItemBaseUrl(id, requestOptions) + \"/resources\";\n // Mix in num:1000 with any user supplied params\n // Key thing - we don't want to mutate the passed in requestOptions\n // as that may be used in other (subsequent) calls in the course\n // of a long promise chains\n var options = __assign({}, requestOptions);\n options.params = __assign({ num: 1000 }, options.params);\n return request(url, options);\n}\n/**\n * ```js\n * import { getItemResource } from \"@esri/arcgis-rest-portal\";\n *\n * // Parses contents as blob by default\n * getItemResource(\"3ef\", { fileName: \"resource.jpg\", ...})\n * .then(resourceContents => {});\n *\n * // Can override parse method\n * getItemResource(\"3ef\", { fileName: \"resource.json\", readAs: 'json', ...})\n * .then(resourceContents => {});\n *\n * // Get the response object instead\n * getItemResource(\"3ef\",{ rawResponse: true, fileName: \"resource.json\" })\n * .then(response => {})\n * ```\n * Fetches an item resource and optionally parses it to the correct format.\n *\n * Note: provides JSON parse error protection by sanitizing out any unescaped control\n * characters before parsing that would otherwise cause an error to be thrown\n *\n * @param {string} itemId\n * @param {IGetItemResourceOptions} requestOptions\n */\nexport function getItemResource(itemId, requestOptions) {\n var readAs = requestOptions.readAs || 'blob';\n return getItemFile(itemId, \"/resources/\" + requestOptions.fileName, readAs, requestOptions);\n}\n/**\n * ```js\n * import { getItemGroups } from \"@esri/arcgis-rest-portal\";\n * //\n * getItemGroups(\"30e5fe3149c34df1ba922e6f5bbf808f\")\n * .then(response)\n * ```\n * Lists the groups of which the item is a part, only showing the groups that the calling user can access. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/groups.htm) for more information.\n *\n * @param id - The Id of the item to query group association for.\n * @param requestOptions - Options for the request\n * @returns A Promise to get some item groups.\n */\nexport function getItemGroups(id, requestOptions) {\n var url = getItemBaseUrl(id, requestOptions) + \"/groups\";\n return request(url, requestOptions);\n}\n/**\n * ```js\n * import { getItemStatus } from \"@esri/arcgis-rest-portal\";\n * //\n * getItemStatus({\n * id: \"30e5fe3149c34df1ba922e6f5bbf808f\",\n * authentication\n * })\n * .then(response)\n * ```\n * Inquire about status when publishing an item, adding an item in async mode, or adding with a multipart upload. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/status.htm) for more information.\n *\n * @param id - The Id of the item to get status for.\n * @param requestOptions - Options for the request\n * @returns A Promise to get the item status.\n */\nexport function getItemStatus(requestOptions) {\n return determineOwner(requestOptions).then(function (owner) {\n var url = getPortalUrl(requestOptions) + \"/content/users/\" + owner + \"/items/\" + requestOptions.id + \"/status\";\n var options = appendCustomParams(requestOptions, [\"jobId\", \"jobType\"], { params: __assign({}, requestOptions.params) });\n return request(url, options);\n });\n}\n/**\n * ```js\n * import { getItemParts } from \"@esri/arcgis-rest-portal\";\n * //\n * getItemParts({\n * id: \"30e5fe3149c34df1ba922e6f5bbf808f\",\n * authentication\n * })\n * .then(response)\n * ```\n * Lists the part numbers of the file parts that have already been uploaded in a multipart file upload. This method can be used to verify the parts that have been received as well as those parts that were not received by the server. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/parts.htm) for more information.\n *\n * @param id - The Id of the item to get part list.\n * @param requestOptions - Options for the request\n * @returns A Promise to get the item part list.\n */\nexport function getItemParts(requestOptions) {\n return determineOwner(requestOptions).then(function (owner) {\n var url = getPortalUrl(requestOptions) + \"/content/users/\" + owner + \"/items/\" + requestOptions.id + \"/parts\";\n return request(url, requestOptions);\n });\n}\n/**\n * ```\n * import { getItemInfo } from \"@esri/arcgis-rest-portal\";\n * // get the \"Info Card\" for the item\n * getItemInfo(\"ae7\")\n * .then(itemInfoXml) // XML document as a string\n * // or get the contents of a specific file\n * getItemInfo(\"ae7\", { fileName: \"form.json\", readAs: \"json\", authentication })\n * .then(formJson) // JSON document as JSON\n * ```\n * Get an info file for an item. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/item-info-file.htm) for more information.\n * @param id - Item Id\n * @param requestOptions - Options for the request, including the file name which defaults to `iteminfo.xml`.\n * If the file is not a text file (XML, HTML, etc) you will need to specify the `readAs` parameter\n * @returns A Promise that will resolve with the contents of the info file for the item.\n */\nexport function getItemInfo(id, requestOptions) {\n var _a = requestOptions || {}, _b = _a.fileName, fileName = _b === void 0 ? \"iteminfo.xml\" : _b, _c = _a.readAs, readAs = _c === void 0 ? \"text\" : _c;\n var options = __assign({ httpMethod: \"GET\" }, requestOptions);\n return getItemFile(id, \"/info/\" + fileName, readAs, options);\n}\n/**\n * ```\n * import { getItemMetadata } from \"@esri/arcgis-rest-portal\";\n * // get the metadata for the item\n * getItemMetadata(\"ae7\")\n * .then(itemMetadataXml) // XML document as a string\n * // or with additional request options\n * getItemMetadata(\"ae7\", { authentication })\n * .then(itemMetadataXml) // XML document as a string\n * ```\n * Get the standard formal metadata XML file for an item (`/info/metadata/metadata.xml`)\n * @param id - Item Id\n * @param requestOptions - Options for the request\n * @returns A Promise that will resolve with the contents of the metadata file for the item as a string.\n */\nexport function getItemMetadata(id, requestOptions) {\n var options = __assign(__assign({}, requestOptions), { fileName: \"metadata/metadata.xml\" });\n return getItemInfo(id, options);\n}\n// overrides request()'s default behavior for reading the response\n// which is based on `params.f` and defaults to JSON\n// Also adds JSON parse error protection by sanitizing out any unescaped control characters before parsing\nfunction getItemFile(id, \n// NOTE: fileName should include any folder/subfolders\nfileName, readMethod, requestOptions) {\n var url = \"\" + getItemBaseUrl(id, requestOptions) + fileName;\n // preserve escape hatch to let the consumer read the response\n // and ensure the f param is not appended to the query string\n var options = __assign({ params: {} }, requestOptions);\n var justReturnResponse = options.rawResponse;\n options.rawResponse = true;\n options.params.f = null;\n return request(url, options).then(function (response) {\n if (justReturnResponse) {\n return response;\n }\n return readMethod !== 'json'\n ? response[readMethod]()\n : response.text().then(function (text) { return JSON.parse(scrubControlChars(text)); });\n });\n}\n//# sourceMappingURL=get.js.map","/* Copyright (c) 2018 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { request } from \"@esri/arcgis-rest-request\";\nimport { getPortalUrl } from \"../util/get-portal-url\";\nimport { determineOwner } from \"./helpers\";\n/**\n * Protect an item. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/protect.htm) for more information.\n *\n * @param requestOptions - Options for the request\n * @returns A Promise to protect an item.\n */\nexport function protectItem(requestOptions) {\n return determineOwner(requestOptions).then(function (owner) {\n var url = getPortalUrl(requestOptions) + \"/content/users/\" + owner + \"/items/\" + requestOptions.id + \"/protect\";\n return request(url, requestOptions);\n });\n}\n/**\n * Unprotect an item. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/unprotect.htm) for more information.\n *\n * @param requestOptions - Options for the request\n * @returns A Promise to unprotect an item.\n */\nexport function unprotectItem(requestOptions) {\n return determineOwner(requestOptions).then(function (owner) {\n var url = getPortalUrl(requestOptions) + \"/content/users/\" + owner + \"/items/\" + requestOptions.id + \"/unprotect\";\n return request(url, requestOptions);\n });\n}\n//# sourceMappingURL=protect.js.map","/* Copyright (c) 2017-2018 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { __assign } from \"tslib\";\nimport { request, appendCustomParams } from \"@esri/arcgis-rest-request\";\nimport { getPortalUrl } from \"../util/get-portal-url\";\n/**\n * ```js\n * import { getGroup } from \"@esri/arcgis-rest-portal\";\n * //\n * getGroup(\"fxb988\") // id\n * .then(response)\n * ```\n * Fetch a group using its id. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/group.htm) for more information.\n *\n * @param id - Group Id\n * @param requestOptions - Options for the request\n * @returns A Promise that will resolve with the data from the response.\n */\nexport function getGroup(id, requestOptions) {\n var url = getPortalUrl(requestOptions) + \"/community/groups/\" + id;\n // default to a GET request\n var options = __assign({ httpMethod: \"GET\" }, requestOptions);\n return request(url, options);\n}\n/**\n * Gets the category schema set on a group\n *\n * @param id - Group Id\n * @param requestOptions - Options for the request\n * @returns A promise that will resolve with JSON of group's category schema\n * @see https://developers.arcgis.com/rest/users-groups-and-items/group-category-schema.htm\n */\nexport function getGroupCategorySchema(id, requestOptions) {\n var url = getPortalUrl(requestOptions) + \"/community/groups/\" + id + \"/categorySchema\";\n // default to a GET request\n var options = __assign({ httpMethod: \"GET\" }, requestOptions);\n return request(url, options);\n}\n/**\n * Returns the content of a Group. Since the group may contain 1000s of items\n * the requestParams allow for paging.\n * @param id - Group Id\n * @param requestOptions - Options for the request, including paging parameters.\n * @returns A Promise that will resolve with the content of the group.\n */\nexport function getGroupContent(id, requestOptions) {\n var url = getPortalUrl(requestOptions) + \"/content/groups/\" + id;\n // default to a GET request\n var options = __assign(__assign({ httpMethod: \"GET\" }, { params: { start: 1, num: 100 } }), requestOptions);\n // is this the most concise way to mixin with the defaults above?\n if (requestOptions && requestOptions.paging) {\n options.params = __assign({}, requestOptions.paging);\n }\n return request(url, options);\n}\n/**\n * Get the usernames of the admins and members. Does not return actual 'User' objects. Those must be\n * retrieved via separate calls to the User's API.\n * @param id - Group Id\n * @param requestOptions - Options for the request\n * @returns A Promise that will resolve with arrays of the group admin usernames and the member usernames\n */\nexport function getGroupUsers(id, requestOptions) {\n var url = getPortalUrl(requestOptions) + \"/community/groups/\" + id + \"/users\";\n // default to a GET request\n var options = __assign({ httpMethod: \"GET\" }, requestOptions);\n return request(url, options);\n}\n/**\n * ```js\n * import { searchGroupUsers } from \"@esri/arcgis-rest-portal\";\n * //\n * searchGroupUsers('abc123')\n * .then(response)\n * ```\n * Search the users in a group. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/group-users-list.htm) for more information.\n *\n * @param id - The group id\n * @param searchOptions - Options for the request, including paging parameters.\n * @returns A Promise that will resolve with the data from the response.\n */\nexport function searchGroupUsers(id, searchOptions) {\n var url = getPortalUrl(searchOptions) + \"/community/groups/\" + id + \"/userlist\";\n var options = appendCustomParams(searchOptions || {}, [\"name\", \"num\", \"start\", \"sortField\", \"sortOrder\", \"joined\", \"memberType\"], {\n httpMethod: \"GET\"\n });\n return request(url, options);\n}\n//# sourceMappingURL=get.js.map","/* Copyright (c) 2018 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { getPortalUrl } from \"../util/get-portal-url\";\nimport { getGroup } from \"../groups/get\";\nexport function getSharingUrl(requestOptions) {\n var username = requestOptions.authentication.username;\n var owner = requestOptions.owner || username;\n return getPortalUrl(requestOptions) + \"/content/users/\" + encodeURIComponent(owner) + \"/items/\" + requestOptions.id + \"/share\";\n}\nexport function isItemOwner(requestOptions) {\n var username = requestOptions.authentication.username;\n var owner = requestOptions.owner || username;\n return owner === username;\n}\n/**\n * Check it the user is a full org_admin\n * @param requestOptions\n * @returns Promise resolving in a boolean indicating if the user is an ArcGIS Organization administrator\n */\nexport function isOrgAdmin(requestOptions) {\n var session = requestOptions.authentication;\n return session.getUser(requestOptions).then(function (user) {\n return user && user.role === \"org_admin\" && !user.roleId;\n });\n}\n/**\n * Get the User Membership for a particular group. Use this if all you have is the groupId.\n * If you have the group object, check the `userMembership.memberType` property instead of calling this method.\n *\n * @param requestOptions\n * @returns A Promise that resolves with \"owner\" | \"admin\" | \"member\" | \"nonmember\"\n */\nexport function getUserMembership(requestOptions) {\n // fetch the group...\n return getGroup(requestOptions.groupId, requestOptions)\n .then(function (group) {\n return group.userMembership.memberType;\n })\n .catch(function () {\n return \"none\";\n });\n}\n//# sourceMappingURL=helpers.js.map","/* Copyright (c) 2018 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { __assign } from \"tslib\";\nimport { request, appendCustomParams } from \"@esri/arcgis-rest-request\";\nimport { getPortalUrl } from \"../util/get-portal-url\";\nimport { determineOwner } from \"./helpers\";\n/**\n * ```js\n * import { removeItem } from \"@esri/arcgis-rest-portal\";\n * //\n * removeItem({\n * id: \"3ef\",\n * authentication\n * })\n * ```\n * Delete an item from the portal. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/delete-item.htm) for more information.\n *\n * @param requestOptions - Options for the request\n * @returns A Promise that deletes an item.\n */\nexport function removeItem(requestOptions) {\n return determineOwner(requestOptions).then(function (owner) {\n var url = getPortalUrl(requestOptions) + \"/content/users/\" + owner + \"/items/\" + requestOptions.id + \"/delete\";\n return request(url, requestOptions);\n });\n}\n/**\n * ```js\n * import { removeItemRelationship } from \"@esri/arcgis-rest-portal\";\n * //\n * removeItemRelationship({\n * originItemId: '3ef',\n * destinationItemId: 'ae7',\n * relationshipType: 'Service2Layer',\n * authentication\n * })\n * .then(response)\n * ```\n * Remove a relationship between two items. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/delete-relationship.htm) for more information.\n *\n * @param requestOptions - Options for the request\n * @returns A Promise to add item resources.\n */\nexport function removeItemRelationship(requestOptions) {\n return determineOwner(requestOptions).then(function (owner) {\n var url = getPortalUrl(requestOptions) + \"/content/users/\" + owner + \"/deleteRelationship\";\n var options = appendCustomParams(requestOptions, [\"originItemId\", \"destinationItemId\", \"relationshipType\"], { params: __assign({}, requestOptions.params) });\n return request(url, options);\n });\n}\n/**\n * Remove a resource associated with an item\n *\n * @param requestOptions - Options for the request\n * @returns A Promise that deletes an item resource.\n */\nexport function removeItemResource(requestOptions) {\n return determineOwner(requestOptions).then(function (owner) {\n var url = getPortalUrl(requestOptions) + \"/content/users/\" + owner + \"/items/\" + requestOptions.id + \"/removeResources\";\n // mix in user supplied params\n requestOptions.params = __assign(__assign({}, requestOptions.params), { resource: requestOptions.resource });\n // only override the deleteAll param specified previously if it is passed explicitly\n if (typeof requestOptions.deleteAll !== \"undefined\") {\n requestOptions.params.deleteAll = requestOptions.deleteAll;\n }\n return request(url, requestOptions);\n });\n}\n/**\n * ```js\n * import { removeFolder } from \"@esri/arcgis-rest-portal\";\n * //\n * removeFolder({\n * folderId: \"fe4\",\n * owner: \"c@sey\",\n * authentication\n * })\n * .then(response)\n *\n * ```\n * Delete a non-root folder and all the items it contains. See the [REST\n * Documentation](https://developers.arcgis.com/rest/users-groups-and-items/delete-folder.htm) for\n * more information.\n *\n * @param requestOptions - Options for the request\n * @returns A Promise that deletes a folder\n */\nexport function removeFolder(requestOptions) {\n return determineOwner(requestOptions).then(function (owner) {\n var url = getPortalUrl(requestOptions) + \"/content/users/\" + encodeURIComponent(owner) + \"/\" + requestOptions.folderId + \"/delete\";\n return request(url, requestOptions);\n });\n}\n//# sourceMappingURL=remove.js.map","/* Copyright (c) 2018-2021 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { warn } from \"@esri/arcgis-rest-request\";\n/**\n * `SearchQueryBuilder` can be used to construct the `q` param for\n * [`searchItems`](/arcgis-rest-js/api/portal/searchItems#searchItems-search) or\n * [`searchGroups`](/arcgis-rest-js/api/portal/searchGroups#searchGroups-search).\n * By chaining methods, it helps build complex search queries.\n *\n * ```js\n * const startDate = new Date(\"2020-01-01\");\n * const endDate = new Date(\"2020-09-01\");\n * const query = new SearchQueryBuilder()\n * .match(\"Patrick\")\n * .in(\"owner\")\n * .and()\n * .from(startDate)\n * .to(endDate)\n * .in(\"created\")\n * .and()\n * .startGroup()\n * .match(\"Web Mapping Application\")\n * .in(\"type\")\n * .or()\n * .match(\"Mobile Application\")\n * .in(\"type\")\n * .or()\n * .match(\"Application\")\n * .in(\"type\")\n * .endGroup()\n * .and()\n * .match(\"Demo App\");\n *\n * searchItems(query).then((res) => {\n * console.log(res.results);\n * });\n * ```\n *\n * Will search for items matching\n * ```\n * \"owner: Patrick AND created:[1577836800000 TO 1598918400000] AND (type:\"Web Mapping Application\" OR type:\"Mobile Application\" OR type:Application) AND Demo App\"\n * ```\n */\nvar SearchQueryBuilder = /** @class */ (function () {\n /**\n * @param q An existing query string to start building from.\n */\n function SearchQueryBuilder(q) {\n if (q === void 0) { q = \"\"; }\n this.termStack = [];\n this.rangeStack = [];\n this.openGroups = 0;\n this.q = q;\n }\n /**\n * Defines strings to search for.\n *\n * ```js\n * const query = new SearchQueryBuilder()\n * .match(\"My Layer\")\n * ```\n *\n * @param terms strings to search for.\n */\n SearchQueryBuilder.prototype.match = function () {\n var terms = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n terms[_i] = arguments[_i];\n }\n this.termStack = this.termStack.concat(terms);\n return this;\n };\n /**\n * Defines fields to search in. You can pass `\"*\"` or call this method without arguments to search a default set of fields\n *\n * ```js\n * const query = new SearchQueryBuilder()\n * .match(\"My Layer\")\n * .in(\"title\")\n * ```\n *\n * @param field The field to search for the previous match in.\n */\n SearchQueryBuilder.prototype.in = function (field) {\n var fn = \"`in(\" + (field ? \"\\\"\" + field + \"\\\"\" : \"\") + \")`\";\n if (!this.hasRange && !this.hasTerms) {\n warn(\n // apparently-p-rettier-ignore causes some\n fn + \" was called with no call to `match(...)` or `from(...)`/`to(...)`. Your query was not modified.\");\n return this;\n }\n if (field && field !== \"*\") {\n this.q += field + \":\";\n }\n return this.commit();\n };\n /**\n * Starts a new search group.\n *\n * ```js\n * const query = new SearchQueryBuilder()\n * .startGroup()\n * .match(\"Lakes\")\n * .in(\"title\")\n * .endGroup()\n * .or()\n * .startGroup()\n * .match(\"Rivers\")\n * .in(\"title\")\n * .endGroup()\n * ```\n */\n SearchQueryBuilder.prototype.startGroup = function () {\n this.commit();\n if (this.openGroups > 0) {\n this.q += \" \";\n }\n this.openGroups++;\n this.q += \"(\";\n return this;\n };\n /**\n * Ends a search group.\n *\n * ```js\n * const query = new SearchQueryBuilder()\n * .startGroup()\n * .match(\"Lakes\")\n * .in(\"title\")\n * .endGroup()\n * .or()\n * .startGroup()\n * .match(\"Rivers\")\n * .in(\"title\")\n * .endGroup()\n * ```\n */\n SearchQueryBuilder.prototype.endGroup = function () {\n if (this.openGroups <= 0) {\n warn(\"`endGroup(...)` was called without calling `startGroup(...)` first. Your query was not modified.\");\n return this;\n }\n this.commit();\n this.openGroups--;\n this.q += \")\";\n return this;\n };\n /**\n * Joins two sets of queries with an `AND` clause.\n *\n * ```js\n * const query = new SearchQueryBuilder()\n * .match(\"Lakes\")\n * .in(\"title\")\n * .and()\n * .match(\"Rivers\")\n * .in(\"title\")\n * ```\n */\n SearchQueryBuilder.prototype.and = function () {\n return this.addModifier(\"and\");\n };\n /**\n * Joins two sets of queries with an `OR` clause.\n *\n * ```js\n * const query = new SearchQueryBuilder()\n * .match(\"Lakes\")\n * .in(\"title\")\n * .or()\n * .match(\"Rivers\")\n * .in(\"title\")\n * ```\n */\n SearchQueryBuilder.prototype.or = function () {\n return this.addModifier(\"or\");\n };\n /**\n * Joins two sets of queries with a `NOT` clause. Another option for filtering results is the [prohibit operator '-'](https://developers.arcgis.com/rest/users-groups-and-items/search-reference.htm#ESRI_SECTION1_5C6C35DB9E4A4F4492C5B937BDA2BF67).\n *\n * ```js\n * // omit results with \"Rivers\" in their title\n * const query = new SearchQueryBuilder()\n * .not()\n * .match(\"Rivers\")\n * .in(\"title\")\n *\n * // equivalent\n * const query = new SearchQueryBuilder()\n * .match(\"Rivers\")\n * .in(\"-title\")\n * ```\n */\n SearchQueryBuilder.prototype.not = function () {\n return this.addModifier(\"not\");\n };\n /**\n * Begins a new range query.\n *\n * ```js\n *\n * const NEWYEARS = new Date(\"2020-01-01\")\n * const TODAY = new Date()\n *\n * const query = new SearchQueryBuilder()\n * .from(NEWYEARS)\n * .to(TODAY)\n * .in(\"created\")\n * ```\n */\n SearchQueryBuilder.prototype.from = function (term) {\n if (this.hasTerms) {\n warn(\n // apparently-p*rettier-ignore causes prettier to strip *all* comments O_o\n \"`from(...)` is not allowed after `match(...)` try using `.from(...).to(...).in(...)`. Optionally, you may see this because dates are incorrectly formatted. Dates should be a primative Date value, aka a number in milliseconds or Date object, ie new Date(\\\"2020-01-01\\\"). Your query was not modified.\");\n return this;\n }\n this.rangeStack[0] = term;\n return this;\n };\n /**\n * Ends a range query.\n *\n * ```js\n * const query = new SearchQueryBuilder()\n * .from(yesterdaysDate)\n * .to(todaysDate)\n * .in(\"created\")\n * ```\n */\n SearchQueryBuilder.prototype.to = function (term) {\n if (this.hasTerms) {\n warn(\n // apparently-p*rettier-ignore causes prettier to strip *all* comments O_o\n \"`to(...)` is not allowed after `match(...)` try using `.from(...).to(...).in(...)`. Optionally, you may see this because dates are incorrectly formatted. Dates should be a primative Date value, aka a number in milliseconds or Date object, ie new Date(\\\"2020-01-01\\\"). Your query was not modified.\");\n return this;\n }\n this.rangeStack[1] = term;\n return this;\n };\n /**\n * Boosts the previous term to increase its rank in the results.\n *\n * ```js\n * const query = new SearchQueryBuilder()\n * .match(\"Lakes\")\n * .in(\"title\")\n * .or()\n * .match(\"Rivers\")\n * .in(\"title\")\n * .boost(3)\n * ```\n */\n SearchQueryBuilder.prototype.boost = function (num) {\n this.commit();\n this.q += \"^\" + num;\n return this;\n };\n /**\n * Returns the current query string. Called internally when the request is made.\n */\n SearchQueryBuilder.prototype.toParam = function () {\n this.commit();\n this.cleanup();\n return this.q;\n };\n /**\n * Returns a new instance of `SearchQueryBuilder` based on the current instance.\n */\n SearchQueryBuilder.prototype.clone = function () {\n this.commit();\n this.cleanup();\n return new SearchQueryBuilder(this.q + \"\");\n };\n SearchQueryBuilder.prototype.addModifier = function (modifier) {\n if (this.currentModifer) {\n warn(\n // apparently-p*rettier-ignore causes prettier to strip *all* comments O_o\n \"You have called `\" + this.currentModifer + \"()` after `\" + modifier + \"()`. Your current query was not modified.\");\n return this;\n }\n this.commit();\n if (this.q === \"\" && modifier !== \"not\") {\n warn(\"You have called `\" + modifier + \"()` without calling another method to modify your query first. Try calling `match()` first.\");\n return this;\n }\n this.currentModifer = modifier;\n this.q += this.q === \"\" ? \"\" : \" \";\n this.q += modifier.toUpperCase() + \" \";\n return this;\n };\n SearchQueryBuilder.prototype.needsQuotes = function (s) {\n return /\\s|:/g.test(s);\n };\n SearchQueryBuilder.prototype.formatTerm = function (term) {\n if (term instanceof Date) {\n return term.getTime();\n }\n if (typeof term === \"string\" && this.needsQuotes(term)) {\n return \"\\\"\" + term + \"\\\"\";\n }\n return term;\n };\n SearchQueryBuilder.prototype.commit = function () {\n var _this = this;\n this.currentModifer = undefined;\n if (this.hasRange) {\n this.q += \"[\" + this.formatTerm(this.rangeStack[0]) + \" TO \" + this.formatTerm(this.rangeStack[1]) + \"]\";\n this.rangeStack = [undefined, undefined];\n }\n if (this.hasTerms) {\n this.q += this.termStack\n .map(function (term) {\n return _this.formatTerm(term);\n })\n .join(\" \");\n this.termStack = [];\n }\n return this;\n };\n Object.defineProperty(SearchQueryBuilder.prototype, \"hasTerms\", {\n get: function () {\n return this.termStack.length > 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SearchQueryBuilder.prototype, \"hasRange\", {\n get: function () {\n return this.rangeStack.length && this.rangeStack[0] && this.rangeStack[1];\n },\n enumerable: false,\n configurable: true\n });\n SearchQueryBuilder.prototype.cleanup = function () {\n // end a group if we have started one\n if (this.openGroups > 0) {\n warn(\n // apparently-p*rettier-ignore causes prettier to strip *all* comments O_o\n \"Automatically closing \" + this.openGroups + \" group(s). You can use `endGroup(...)` to remove this warning.\");\n while (this.openGroups > 0) {\n this.q += \")\";\n this.openGroups--;\n }\n }\n var oldQ = this.q;\n this.q = oldQ.replace(/( AND ?| NOT ?| OR ?)*$/, \"\");\n if (oldQ !== this.q) {\n warn(\"`startGroup(...)` was called without calling `endGroup(...)` first. Your query was not modified.\");\n }\n // clear empty groups\n this.q = this.q.replace(/(\\(\\))*/, \"\");\n };\n return SearchQueryBuilder;\n}());\nexport { SearchQueryBuilder };\n//# sourceMappingURL=SearchQueryBuilder.js.map","/* Copyright (c) 2018 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { request, appendCustomParams, } from \"@esri/arcgis-rest-request\";\nimport { SearchQueryBuilder } from \"./SearchQueryBuilder\";\nimport { getPortalUrl } from \"../util/get-portal-url\";\nexport function genericSearch(search, searchType) {\n var options;\n if (typeof search === \"string\" || search instanceof SearchQueryBuilder) {\n options = {\n httpMethod: \"GET\",\n params: {\n q: search,\n },\n };\n }\n else {\n // searchUserAccess has one (knonw) valid value: \"groupMember\"\n options = appendCustomParams(search, [\n \"q\",\n \"num\",\n \"start\",\n \"sortField\",\n \"sortOrder\",\n \"searchUserAccess\",\n \"searchUserName\",\n \"filter\",\n \"countFields\",\n \"countSize\",\n \"categories\",\n \"categoryFilters\",\n ], {\n httpMethod: \"GET\",\n });\n }\n var path;\n switch (searchType) {\n case \"item\":\n path = \"/search\";\n break;\n case \"group\":\n path = \"/community/groups\";\n break;\n case \"groupContent\":\n // Need to have groupId property to do group contents search,\n // cso filter out all but ISearchGroupContentOptions\n if (typeof search !== \"string\" &&\n !(search instanceof SearchQueryBuilder) &&\n search.groupId) {\n path = \"/content/groups/\" + search.groupId + \"/search\";\n }\n else {\n return Promise.reject(new Error(\"you must pass a `groupId` option to `searchGroupContent`\"));\n }\n break;\n default:\n // \"users\"\n path = \"/portals/self/users/search\";\n break;\n }\n var url = getPortalUrl(options) + path;\n // send the request\n return request(url, options).then(function (r) {\n if (r.nextStart && r.nextStart !== -1) {\n r.nextPage = function () {\n var newOptions;\n if (typeof search === \"string\" ||\n search instanceof SearchQueryBuilder) {\n newOptions = {\n q: search,\n start: r.nextStart,\n };\n }\n else {\n newOptions = search;\n newOptions.start = r.nextStart;\n }\n return genericSearch(newOptions, searchType);\n };\n }\n return r;\n });\n}\n//# sourceMappingURL=generic-search.js.map","/* Copyright (c) 2018-2019 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { genericSearch } from \"../util/generic-search\";\n/**\n * ```js\n * import { searchItems } from \"@esri/arcgis-rest-portal\";\n * //\n * searchItems('water')\n * .then(response) // response.total => 355\n * ```\n * Search a portal for items. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/search.htm) for more information.\n *\n * @param search - A string or RequestOptions object to pass through to the endpoint.\n * @returns A Promise that will resolve with the data from the response.\n */\nexport function searchItems(search) {\n return genericSearch(search, \"item\");\n}\n//# sourceMappingURL=search.js.map","/* Copyright (c) 2017-2019 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { __assign } from \"tslib\";\nimport { request, appendCustomParams } from \"@esri/arcgis-rest-request\";\nimport { getPortalUrl } from \"../util/get-portal-url\";\nimport { determineOwner, serializeItem } from \"./helpers\";\n/**\n * ```js\n * import { addItemPart } from \"@esri/arcgis-rest-portal\";\n * //\n * addItemPart({\n * id: \"30e5fe3149c34df1ba922e6f5bbf808f\",\n * file: data,\n * partNum: 1,\n * authentication\n * })\n * .then(response)\n * ```\n * Add Item Part allows the caller to upload a file part when doing an add or update item operation in multipart mode. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/add-item-part.htm) for more information.\n *\n * @param requestOptions - Options for the request\n * @returns A Promise to add the item part status.\n */\nexport function addItemPart(requestOptions) {\n var partNum = requestOptions.partNum;\n if (!Number.isInteger(partNum) || partNum < 1 || partNum > 10000) {\n return Promise.reject(new Error('The part number must be an integer between 1 to 10000, inclusive.'));\n }\n return determineOwner(requestOptions).then(function (owner) {\n // AGO adds the \"partNum\" parameter in the query string, not in the body\n var url = getPortalUrl(requestOptions) + \"/content/users/\" + owner + \"/items/\" + requestOptions.id + \"/addPart?partNum=\" + partNum;\n var options = appendCustomParams(requestOptions, [\"file\"], { params: __assign({}, requestOptions.params) });\n return request(url, options);\n });\n}\n/**\n * ```js\n * import { commitItemUpload } from \"@esri/arcgis-rest-portal\";\n * //\n * commitItemUpload({\n * id: \"30e5fe3149c34df1ba922e6f5bbf808f\",\n * authentication\n * })\n * .then(response)\n * ```\n * Commit is called once all parts are uploaded during a multipart Add Item or Update Item operation. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/commit.htm) for more information.\n *\n * @param requestOptions - Options for the request\n * @returns A Promise to get the commit result.\n */\nexport function commitItemUpload(requestOptions) {\n return determineOwner(requestOptions).then(function (owner) {\n var url = getPortalUrl(requestOptions) + \"/content/users/\" + owner + \"/items/\" + requestOptions.id + \"/commit\";\n var options = appendCustomParams(requestOptions, [], {\n params: __assign(__assign({}, requestOptions.params), serializeItem(requestOptions.item))\n });\n return request(url, options);\n });\n}\n/**\n * ```js\n * import { cancelItemUpload } from \"@esri/arcgis-rest-portal\";\n * //\n * cancelItemUpload({\n * id: \"30e5fe3149c34df1ba922e6f5bbf808f\",\n * authentication\n * })\n * .then(response)\n * ```\n * Cancels a multipart upload on an item. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/cancel.htm) for more information.\n *\n * @param requestOptions - Options for the request\n * @returns A Promise to get the commit result.\n */\nexport function cancelItemUpload(requestOptions) {\n return determineOwner(requestOptions).then(function (owner) {\n var url = getPortalUrl(requestOptions) + \"/content/users/\" + owner + \"/items/\" + requestOptions.id + \"/cancel\";\n return request(url, requestOptions);\n });\n}\n//# sourceMappingURL=upload.js.map","/* Copyright (c) 2019 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nexport function chunk(array, size) {\n if (array.length === 0) {\n return [];\n }\n var chunks = [];\n for (var i = 0; i < array.length; i += size) {\n chunks.push(array.slice(i, i + size));\n }\n return chunks;\n}\n//# sourceMappingURL=array.js.map","/* Copyright (c) 2017-2018 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { __assign, __spreadArrays } from \"tslib\";\nimport { request } from \"@esri/arcgis-rest-request\";\nimport { getPortalUrl } from \"../util/get-portal-url\";\nimport { chunk } from \"../util/array\";\n/**\n * ```js\n * import { addGroupUsers } from \"@esri/arcgis-rest-portal\";\n * //\n * addGroupUsers({\n * id: groupId,\n * users: [\"username1\", \"username2\"],\n * admins: [\"username3\"],\n * authentication\n * })\n * .then(response);\n * ```\n * Add users to a group. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/add-users-to-group.htm) for more information.\n *\n * @param requestOptions - Options for the request\n * @returns A Promise\n */\nexport function addGroupUsers(requestOptions) {\n var id = requestOptions.id;\n var url = getPortalUrl(requestOptions) + \"/community/groups/\" + id + \"/addUsers\";\n var baseOptions = Object.assign({}, requestOptions, {\n admins: undefined,\n users: undefined\n });\n var batchRequestOptions = __spreadArrays(_prepareRequests(\"users\", requestOptions.users, baseOptions), _prepareRequests(\"admins\", requestOptions.admins, baseOptions));\n var promises = batchRequestOptions.map(function (options) {\n return _sendSafeRequest(url, options);\n });\n return Promise.all(promises).then(_consolidateRequestResults);\n}\nfunction _prepareRequests(type, usernames, baseOptions) {\n if (!usernames || usernames.length < 1) {\n return [];\n }\n // the ArcGIS REST API only allows to add no more than 25 users per request,\n // see https://developers.arcgis.com/rest/users-groups-and-items/add-users-to-group.htm\n var userChunks = chunk(usernames, 25);\n return userChunks.map(function (users) {\n return _generateRequestOptions(type, users, baseOptions);\n });\n}\nfunction _generateRequestOptions(type, usernames, baseOptions) {\n var _a, _b;\n return Object.assign({}, baseOptions, (_a = {},\n _a[type] = usernames,\n _a.params = __assign(__assign({}, baseOptions.params), (_b = {}, _b[type] = usernames, _b)),\n _a));\n}\n// this request is safe since the request error will be handled\nfunction _sendSafeRequest(url, requestOptions) {\n return request(url, requestOptions).catch(function (error) {\n return {\n errors: [error]\n };\n });\n}\nfunction _consolidateRequestResults(results) {\n var notAdded = results\n .filter(function (result) { return result.notAdded; })\n .reduce(function (collection, result) { return collection.concat(result.notAdded); }, []);\n var errors = results\n .filter(function (result) { return result.errors; })\n .reduce(function (collection, result) { return collection.concat(result.errors); }, []);\n var consolidated = { notAdded: notAdded };\n if (errors.length > 0) {\n consolidated.errors = errors;\n }\n return consolidated;\n}\n//# sourceMappingURL=add-users.js.map","/* Copyright (c) 2017-2018 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { __assign } from \"tslib\";\nimport { request } from \"@esri/arcgis-rest-request\";\nimport { getPortalUrl } from \"../util/get-portal-url\";\nimport { chunk } from \"../util/array\";\n/**\n * ```js\n * import { removeGroupUsers } from \"@esri/arcgis-rest-portal\";\n * //\n * removeGroupUsers({\n * id: groupId,\n * users: [\"username1\", \"username2\"],\n * authentication\n * })\n * .then(response);\n * ```\n * Add users to a group. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/remove-users-from-group.htm) for more information.\n *\n * @param requestOptions - Options for the request\n * @returns A Promise\n */\nexport function removeGroupUsers(requestOptions) {\n var id = requestOptions.id, usersToRemove = requestOptions.users;\n var url = getPortalUrl(requestOptions) + \"/community/groups/\" + id + \"/removeUsers\";\n var safeSend = function (users) {\n var options = __assign(__assign({}, requestOptions), { users: users, params: { users: users } });\n return request(url, options)\n .catch(function (error) { return ({ errors: [error] }); });\n };\n // the ArcGIS REST API only allows to add no more than 25 users per request,\n // see https://developers.arcgis.com/rest/users-groups-and-items/remove-users-from-group.htm\n var promises = chunk(usersToRemove, 25).map(function (usersChunk) { return safeSend(usersChunk); });\n return Promise.all(promises)\n .then(function (results) {\n var filtered = function (propName) { return results\n .filter(function (result) { return result[propName]; })\n .reduce(function (collection, result) { return collection.concat(result[propName]); }, []); };\n var errors = filtered('errors');\n var consolidated = { notRemoved: filtered('notRemoved') };\n return errors.length ? __assign(__assign({}, consolidated), { errors: errors }) : consolidated;\n });\n}\n//# sourceMappingURL=remove-users.js.map","import { __assign } from \"tslib\";\nimport { request } from \"@esri/arcgis-rest-request\";\nimport { getPortalUrl } from \"../util/get-portal-url\";\nimport { chunk } from \"../util/array\";\n/**\n * Invites users to join a group. Operation success\n * will be indicated by a flag on the return\n * object. If there are any errors, they will be\n * placed in an errors array on the return object\n *\n * ```js\n * const authentication: IAuthenticationManager; // Typically passed into to the function\n * //\n * const options: IInviteGroupUsersOptions = {\n * id: 'group_id',\n * users: ['ed', 'edd', 'eddy'],\n * role: 'group-member',\n * expiration: 20160,\n * authentication\n * }\n * //\n * const result = await inviteGroupUsers(options);\n * //\n * const if_success_result_looks_like = {\n * success: true\n * }\n * //\n * const if_failure_result_looks_like = {\n * success: false,\n * errors: [ArcGISRequestError]\n * }\n * ```\n * @param {IInviteGroupUsersOptions} options\n *\n * @returns {Promise<IAddGroupUsersResult>}\n */\nexport function inviteGroupUsers(options) {\n var id = options.id;\n var url = getPortalUrl(options) + \"/community/groups/\" + id + \"/invite\";\n var batches = _generateBatchRequests(options);\n var promises = batches.map(function (batch) { return _sendSafeRequest(url, batch); });\n return Promise.all(promises).then(_combineResults);\n}\n/**\n * @private\n */\nfunction _generateBatchRequests(options) {\n var userBatches = chunk(options.users, 25);\n return userBatches.map(function (users) { return _generateRequestOptions(users, options); });\n}\n/**\n * @private\n */\nfunction _generateRequestOptions(users, baseOptions) {\n var requestOptions = Object.assign({}, baseOptions);\n requestOptions.params = __assign(__assign({}, requestOptions.params), { users: users, role: requestOptions.role, expiration: requestOptions.expiration });\n return requestOptions;\n}\n/**\n * @private\n */\nfunction _sendSafeRequest(url, requestOptions) {\n return request(url, requestOptions)\n .catch(function (error) { return ({ errors: [error] }); });\n}\n/**\n * @private\n */\nfunction _combineResults(responses) {\n var success = responses.every(function (res) { return res.success; });\n var errors = responses.reduce(function (collection, res) { return collection.concat(res.errors || []); }, []);\n var combined = { success: success };\n if (errors.length > 0) {\n combined.errors = errors;\n }\n return combined;\n}\n//# sourceMappingURL=invite-users.js.map","/* Copyright (c) 2017-2018 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { request } from \"@esri/arcgis-rest-request\";\nimport { getPortalUrl } from \"../util/get-portal-url\";\n/**\n * ```js\n * import { protectGroup } from '@esri/arcgis-rest-portal';\n * //\n * protectGroup({\n * id: groupId,\n * authentication\n * })\n * .then(response)\n * ```\n * Protect a group to avoid accidental deletion. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/protect-group.htm) for more information.\n *\n * @param requestOptions - Options for the request\n * @returns A Promise that will resolve with the success/failure status of the request\n */\nexport function protectGroup(requestOptions) {\n var url = getPortalUrl(requestOptions) + \"/community/groups/\" + requestOptions.id + \"/protect\";\n return request(url, requestOptions);\n}\n/**\n * ```js\n * import { unprotectGroup } from '@esri/arcgis-rest-portal';\n * //\n * unprotectGroup({\n * id: groupId,\n * authentication\n * })\n * .then(response)\n * ```\n * Unprotect a Group. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/unprotect-group.htm) for more information.\n * @param requestOptions - Options for the request\n * @returns A Promise that will resolve with the success/failure status of the request\n */\nexport function unprotectGroup(requestOptions) {\n var url = getPortalUrl(requestOptions) + \"/community/groups/\" + requestOptions.id + \"/unprotect\";\n return request(url, requestOptions);\n}\n//# sourceMappingURL=protect.js.map","/* Copyright (c) 2017-2018 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { __assign } from \"tslib\";\nimport { request } from \"@esri/arcgis-rest-request\";\nimport { getPortalUrl } from \"../util/get-portal-url\";\n/**\n * ```js\n * import { removeGroup } from '@esri/arcgis-rest-portal';\n * //\n * removeGroup({\n * id: groupId,\n * authentication\n * })\n * .then(response)\n * ```\n * Delete a group. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/delete-group.htm) for more information.\n *\n * @param requestOptions - Options for the request\n * @returns A Promise that will resolve with the success/failure status of the request\n */\nexport function removeGroup(requestOptions) {\n var url = getPortalUrl(requestOptions) + \"/community/groups/\" + requestOptions.id + \"/delete\";\n var options = __assign({}, requestOptions);\n return request(url, options);\n}\n//# sourceMappingURL=remove.js.map","/* Copyright (c) 2018-2019 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { genericSearch } from \"../util/generic-search\";\n/**\n * ```js\n * import { searchGroups } from \"@esri/arcgis-rest-portal\";\n * //\n * searchGroups('water')\n * .then(response) // response.total => 355\n * ```\n * Search a portal for groups. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/group-search.htm) for more information.\n *\n * @param search - A string or RequestOptions object to pass through to the endpoint.\n * @returns A Promise that will resolve with the data from the response.\n */\nexport function searchGroups(search) {\n return genericSearch(search, \"group\");\n}\n/**\n * ```js\n * import { searchGroupContent } from \"@esri/arcgis-rest-portal\";\n * //\n * searchGroupContent('water')\n * .then(response) // response.total => 355\n * ```\n * Search a portal for items in a group. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/group-content-search.htm) for more information.\n *\n * @param options - RequestOptions object amended with search parameters.\n * @returns A Promise that will resolve with the data from the response.\n */\nexport function searchGroupContent(options) {\n return genericSearch(options, \"groupContent\");\n}\n//# sourceMappingURL=search.js.map","import { getPortalUrl } from \"../util/get-portal-url\";\nimport { request } from \"@esri/arcgis-rest-request\";\n/**\n * ```js\n * import { updateUserMemberships } from \"@esri/arcgis-rest-portal\";\n * //\n * updateUserMemberships({\n * id: groupId,\n * admins: [\"username3\"],\n * authentication\n * })\n * .then(response);\n * ```\n * Change the user membership levels of existing users in a group\n *\n * @param requestOptions - Options for the request\n * @returns A Promise\n */\nexport function updateUserMemberships(requestOptions) {\n var url = getPortalUrl(requestOptions) + \"/community/groups/\" + requestOptions.id + \"/updateUsers\";\n var opts = {\n authentication: requestOptions.authentication,\n params: {}\n };\n // add the correct params depending on the type of membership we are changing to\n if (requestOptions.newMemberType === \"admin\") {\n opts.params.admins = requestOptions.users;\n }\n else {\n opts.params.users = requestOptions.users;\n }\n // make the request\n return request(url, opts);\n}\n//# sourceMappingURL=update-user-membership.js.map","import { __assign } from \"tslib\";\nimport { request } from \"@esri/arcgis-rest-request\";\nimport { getPortalUrl } from \"../util/get-portal-url\";\nimport { chunk } from \"../util/array\";\n/**\n * Send a notification to members of the requesting user's org.\n * Operation success will be indicated by a flag on the return\n * object. If there are any errors, they will be placed in an\n * errors array on the return object\n *\n * ```js\n * const authentication: IAuthenticationManager; // Typically passed into to the function\n * //\n * const options: IInviteGroupUsersOptions = {\n * id: 'group_id',\n * users: ['larry', 'curly', 'moe'],\n * notificationChannelType: 'email',\n * expiration: 20160,\n * authentication\n * }\n * //\n * const result = await createOrgNotification(options);\n * //\n * const if_success_result_looks_like = {\n * success: true\n * }\n * //\n * const if_failure_result_looks_like = {\n * success: false,\n * errors: [ArcGISRequestError]\n * }\n * ```\n * @param {ICreateOrgNotificationOptions} options\n *\n * @returns {ICreateOrgNotificationResult}\n */\nexport function createOrgNotification(options) {\n var url = getPortalUrl(options) + \"/portals/self/createNotification\";\n var batches = _generateBatchRequests(options);\n var promises = batches.map(function (batch) { return _sendSafeRequest(url, batch); });\n return Promise.all(promises).then(_combineResults);\n}\n/**\n * @private\n */\nfunction _generateBatchRequests(options) {\n var userBatches = chunk(options.users, options.batchSize || 25);\n return userBatches.map(function (users) { return _generateRequestOptions(users, options); });\n}\n/**\n * @private\n */\nfunction _generateRequestOptions(users, baseOptions) {\n var requestOptions = Object.assign({}, baseOptions);\n requestOptions.params = __assign(__assign({}, requestOptions.params), { users: users, subject: baseOptions.subject, message: baseOptions.message, notificationChannelType: requestOptions.notificationChannelType });\n return requestOptions;\n}\n/**\n * @private\n */\nfunction _sendSafeRequest(url, requestOptions) {\n return request(url, requestOptions)\n .catch(function (error) { return ({ errors: [error] }); });\n}\n/**\n * @private\n */\nfunction _combineResults(responses) {\n var success = responses.every(function (res) { return res.success; });\n var errors = responses.reduce(function (collection, res) { return collection.concat(res.errors || []); }, []);\n var combined = { success: success };\n if (errors.length > 0) {\n combined.errors = errors;\n }\n return combined;\n}\n//# sourceMappingURL=notification.js.map","/* Copyright (c) 2018 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { __assign } from \"tslib\";\nimport { request } from \"@esri/arcgis-rest-request\";\nimport { getPortalUrl } from \"../util/get-portal-url\";\n/**\n * ```js\n * import { getUser } from '@esri/arcgis-rest-portal';\n * //\n * getUser(\"jsmith\")\n * .then(response)\n * // => { firstName: \"John\", lastName: \"Smith\",tags: [\"GIS Analyst\", \"City of Redlands\"] }\n * ```\n * Get information about a user. This method has proven so generically useful that you can also call [`UserSession.getUser()`](/arcgis-rest-js/api/auth/UserSession#getUser-summary).\n *\n * @param requestOptions - options to pass through in the request\n * @returns A Promise that will resolve with metadata about the user\n */\nexport function getUser(requestOptions) {\n var url;\n var options = { httpMethod: \"GET\" };\n // if a username is passed, assume ArcGIS Online\n if (typeof requestOptions === \"string\") {\n url = \"https://www.arcgis.com/sharing/rest/community/users/\" + requestOptions;\n }\n else {\n // if an authenticated session is passed, default to that user/portal unless another username is provided manually\n var username = requestOptions.username || requestOptions.authentication.username;\n url = getPortalUrl(requestOptions) + \"/community/users/\" + encodeURIComponent(username);\n options = __assign(__assign({}, requestOptions), options);\n }\n // send the request\n return request(url, options);\n}\n//# sourceMappingURL=get-user.js.map","import { genericSearch } from \"../util/generic-search\";\n/**\n * ```js\n * import { searchItems } from \"@esri/arcgis-rest-portal\";\n * //\n * searchUsers({ q: 'tommy', authentication })\n * .then(response) // response.total => 355\n * ```\n * Search a portal for users.\n *\n * @param search - A RequestOptions object to pass through to the endpoint.\n * @returns A Promise that will resolve with the data from the response.\n */\nexport function searchUsers(search) {\n return genericSearch(search, \"user\");\n}\n//# sourceMappingURL=search-users.js.map","/* Copyright (c) 2018 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { __assign } from \"tslib\";\nimport { request } from \"@esri/arcgis-rest-request\";\nimport { isItemOwner, getSharingUrl, isOrgAdmin } from \"./helpers\";\n/**\n * ```js\n * import { setItemAccess } from \"@esri/arcgis-rest-portal\";\n * //\n * setItemAccess({\n * id: \"abc123\",\n * access: \"public\", // 'org' || 'private'\n * authentication: session\n * })\n * ```\n * Change who is able to access an item.\n *\n * @param requestOptions - Options for the request.\n * @returns A Promise that will resolve with the data from the response.\n */\nexport function setItemAccess(requestOptions) {\n var url = getSharingUrl(requestOptions);\n if (isItemOwner(requestOptions)) {\n // if the user owns the item, proceed\n return updateItemAccess(url, requestOptions);\n }\n else {\n // otherwise we need to check to see if they are an organization admin\n return isOrgAdmin(requestOptions).then(function (admin) {\n if (admin) {\n return updateItemAccess(url, requestOptions);\n }\n else {\n // if neither, updating the sharing isnt possible\n throw Error(\"This item can not be shared by \" + requestOptions.authentication.username + \". They are neither the item owner nor an organization admin.\");\n }\n });\n }\n}\nfunction updateItemAccess(url, requestOptions) {\n requestOptions.params = __assign({ org: false, everyone: false }, requestOptions.params);\n // if the user wants to make the item private, it needs to be unshared from any/all groups as well\n if (requestOptions.access === \"private\") {\n requestOptions.params.groups = \" \";\n }\n if (requestOptions.access === \"org\") {\n requestOptions.params.org = true;\n }\n // if sharing with everyone, share with the entire organization as well.\n if (requestOptions.access === \"public\") {\n // this is how the ArcGIS Online Home app sets public access\n // setting org = true instead of account = true will cancel out all sharing\n requestOptions.params.account = true;\n requestOptions.params.everyone = true;\n }\n return request(url, requestOptions);\n}\n//# sourceMappingURL=access.js.map","import { searchItems } from \"../items/search\";\n/**\n * ```js\n * import { isItemSharedWithGroup } from \"@esri/arcgis-rest-portal\";\n * //\n * isItemSharedWithGroup({\n * groupId: 'bc3,\n * itemId: 'f56,\n * authentication\n * })\n * .then(isShared => {})\n * ```\n * Find out whether or not an item is already shared with a group.\n *\n * @param requestOptions - Options for the request. NOTE: `rawResponse` is not supported by this operation.\n * @returns Promise that will resolve with true/false\n */\nexport function isItemSharedWithGroup(requestOptions) {\n var searchOpts = {\n q: \"id: \" + requestOptions.id + \" AND group: \" + requestOptions.groupId,\n start: 1,\n num: 10,\n sortField: \"title\",\n authentication: requestOptions.authentication,\n httpMethod: \"POST\"\n };\n return searchItems(searchOpts).then(function (searchResponse) {\n var result = false;\n if (searchResponse.total > 0) {\n result = searchResponse.results.some(function (itm) {\n return itm.id === requestOptions.id;\n });\n return result;\n }\n });\n}\n//# sourceMappingURL=is-item-shared-with-group.js.map","import { request } from \"@esri/arcgis-rest-request\";\nimport { getPortalUrl } from \"../util/get-portal-url\";\nimport { getUserMembership, } from \"./helpers\";\nimport { getUser } from \"../users/get-user\";\nimport { addGroupUsers } from \"../groups/add-users\";\nimport { removeGroupUsers } from \"../groups/remove-users\";\nimport { updateUserMemberships, } from \"../groups/update-user-membership\";\nimport { isItemSharedWithGroup } from \"../sharing/is-item-shared-with-group\";\n/**\n * ```js\n * import { shareItemWithGroup } from '@esri/arcgis-rest-portal';\n * //\n * shareItemWithGroup({\n * id: \"abc123\",\n * groupId: \"xyz987\",\n * owner: \"some-owner\",\n * authentication\n * })\n * ```\n * Share an item with a group, either as an\n * [item owner](https://developers.arcgis.com/rest/users-groups-and-items/share-item-as-item-owner-.htm),\n * [group admin](https://developers.arcgis.com/rest/users-groups-and-items/share-item-as-group-admin-.htm) or\n * organization admin.\n *\n * Note: Sharing the item as an Admin will use the `/content/users/:ownername/items/:itemid/share` end-point\n *\n * @param requestOptions - Options for the request.\n * @returns A Promise that will resolve with the data from the response.\n */\nexport function shareItemWithGroup(requestOptions) {\n return isItemSharedWithGroup(requestOptions)\n .then(function (isShared) {\n if (isShared) {\n // already shared, exit early with success response\n return {\n itemId: requestOptions.id,\n shortcut: true,\n notSharedWith: [],\n };\n }\n var username = requestOptions.authentication.username, owner = requestOptions.owner, confirmItemControl = requestOptions.confirmItemControl;\n var itemOwner = owner || username;\n // non-item owner\n if (itemOwner !== username) {\n // need to track if the user is an admin\n var isAdmin_1 = false;\n // track if the admin & owner are in the same org\n var isCrossOrgSharing_1 = false;\n // next perform any necessary membership adjustments for\n // current user and/or item owner\n return Promise.all([\n getUser({\n username: username,\n authentication: requestOptions.authentication,\n }),\n getUser({\n username: itemOwner,\n authentication: requestOptions.authentication,\n }),\n getUserMembership(requestOptions),\n ])\n .then(function (_a) {\n var currentUser = _a[0], ownerUser = _a[1], membership = _a[2];\n var isSharedEditingGroup = !!confirmItemControl;\n isAdmin_1 = currentUser.role === \"org_admin\" && !currentUser.roleId;\n isCrossOrgSharing_1 = currentUser.orgId !== ownerUser.orgId;\n return getMembershipAdjustments(currentUser, isSharedEditingGroup, membership, isAdmin_1, ownerUser, requestOptions);\n })\n .then(function (membershipAdjustments) {\n var _a = membershipAdjustments[0], revert = (_a === void 0 ? {\n promise: Promise.resolve({ notAdded: [] }),\n revert: function (sharingResults) {\n return Promise.resolve(sharingResults);\n },\n } : _a).revert;\n // perform all membership adjustments\n return Promise.all(membershipAdjustments.map(function (_a) {\n var promise = _a.promise;\n return promise;\n }))\n .then(function () {\n // then attempt the share\n return shareToGroup(requestOptions, isAdmin_1, isCrossOrgSharing_1);\n })\n .then(function (sharingResults) {\n // lastly, if the admin user was added to the group,\n // remove them from the group. this is a no-op that\n // immediately resolves the sharingResults when no\n // membership adjustment was needed\n return revert(sharingResults);\n });\n });\n }\n // item owner, let it call through\n return shareToGroup(requestOptions);\n })\n .then(function (sharingResponse) {\n if (sharingResponse.notSharedWith.length) {\n throw Error(\"Item \" + requestOptions.id + \" could not be shared to group \" + requestOptions.groupId + \".\");\n }\n else {\n // all is well\n return sharingResponse;\n }\n });\n}\nfunction getMembershipAdjustments(currentUser, isSharedEditingGroup, membership, isAdmin, ownerUser, requestOptions) {\n var membershipGuarantees = [];\n if (requestOptions.groupId !== currentUser.favGroupId) {\n if (isSharedEditingGroup) {\n if (!isAdmin) {\n // abort and reject promise\n throw Error(\"This item can not be shared to shared editing group \" + requestOptions.groupId + \" by \" + currentUser.username + \" as they not the item owner or org admin.\");\n }\n membershipGuarantees.push(\n // admin user must be a group member to share, should be reverted afterwards\n ensureMembership(currentUser, currentUser, false, \"Error adding \" + currentUser.username + \" as member to edit group \" + requestOptions.groupId + \". Consequently item \" + requestOptions.id + \" was not shared to the group.\", requestOptions), \n // item owner must be a group admin\n ensureMembership(currentUser, ownerUser, true, membership === \"none\"\n ? \"Error adding user \" + ownerUser.username + \" to edit group \" + requestOptions.groupId + \". Consequently item \" + requestOptions.id + \" was not shared to the group.\"\n : \"Error promoting user \" + ownerUser.username + \" to admin in edit group \" + requestOptions.groupId + \". Consequently item \" + requestOptions.id + \" was not shared to the group.\", requestOptions));\n }\n else if (isAdmin) {\n // admin user must be a group member to share, should be reverted afterwards\n membershipGuarantees.push(ensureMembership(currentUser, currentUser, false, \"Error adding \" + currentUser.username + \" as member to view group \" + requestOptions.groupId + \". Consequently item \" + requestOptions.id + \" was not shared to the group.\", requestOptions));\n }\n else if (membership === \"none\") {\n // all other non-item owners must be a group member\n throw new Error(\"This item can not be shared by \" + currentUser.username + \" as they are not a member of the specified group \" + requestOptions.groupId + \".\");\n }\n }\n return membershipGuarantees;\n}\nfunction shareToGroup(requestOptions, isAdmin, isCrossOrgSharing) {\n if (isAdmin === void 0) { isAdmin = false; }\n if (isCrossOrgSharing === void 0) { isCrossOrgSharing = false; }\n var username = requestOptions.authentication.username;\n var itemOwner = requestOptions.owner || username;\n // decide what url to use\n // default to the non-owner url...\n var url = getPortalUrl(requestOptions) + \"/content/items/\" + requestOptions.id + \"/share\";\n // but if they are the owner, or org_admin, use this route\n // Note: When using this end-point as an admin, apparently the admin does not need to be a member of the group (the itemOwner does)\n // Note: Admin's can only use this route when the item is in the same org they are admin for\n if (itemOwner === username || (isAdmin && !isCrossOrgSharing)) {\n url = getPortalUrl(requestOptions) + \"/content/users/\" + itemOwner + \"/items/\" + requestOptions.id + \"/share\";\n }\n // now its finally time to do the sharing\n requestOptions.params = {\n groups: requestOptions.groupId,\n confirmItemControl: requestOptions.confirmItemControl,\n };\n return request(url, requestOptions);\n}\nexport function ensureMembership(currentUser, ownerUser, shouldPromote, errorMessage, requestOptions) {\n var _a;\n var ownerGroups = ownerUser.groups || [];\n var group = ownerGroups.find(function (g) {\n return g.id === requestOptions.groupId;\n });\n // if they are in different orgs, eject\n if (currentUser.orgId !== ownerUser.orgId) {\n throw Error(\"User \" + ownerUser.username + \" is not a member of the same org as \" + currentUser.username + \". Consequently they can not be added added to group \" + requestOptions.groupId + \" nor can item \" + requestOptions.id + \" be shared to the group.\");\n }\n // if owner is not a member, and has 512 groups\n if (!group && ownerGroups.length > 511) {\n throw Error(\"User \" + ownerUser.username + \" already has 512 groups, and can not be added to group \" + requestOptions.groupId + \". Consequently item \" + requestOptions.id + \" can not be shared to the group.\");\n }\n var promise;\n var revert;\n // decide if we need to add them or upgrade them\n if (group) {\n // they are in the group...\n // check member type\n if (shouldPromote && group.userMembership.memberType === \"member\") {\n // promote them\n promise = updateUserMemberships({\n id: requestOptions.groupId,\n users: [ownerUser.username],\n newMemberType: \"admin\",\n authentication: requestOptions.authentication,\n })\n .then(function (results) {\n // convert the result into the right type\n var notAdded = results.results.reduce(function (acc, entry) {\n if (!entry.success) {\n acc.push(entry.username);\n }\n return acc;\n }, []);\n // and return it\n return Promise.resolve({ notAdded: notAdded });\n })\n .catch(function () { return ({ notAdded: [ownerUser.username] }); });\n revert = function (sharingResults) {\n return updateUserMemberships({\n id: requestOptions.groupId,\n users: [ownerUser.username],\n newMemberType: \"member\",\n authentication: requestOptions.authentication,\n })\n .then(function () { return sharingResults; })\n .catch(function () { return sharingResults; });\n };\n }\n else {\n // they are already an admin in the group\n // return the same response the API would if we added them\n promise = Promise.resolve({ notAdded: [] });\n revert = function (sharingResults) { return Promise.resolve(sharingResults); };\n }\n }\n else {\n // attempt to add user to group\n var userType = shouldPromote ? \"admins\" : \"users\";\n // can't currently determine if the group is within the admin's\n // org without performing a search, so attempt to add and handle\n // the api error\n promise = addGroupUsers((_a = {\n id: requestOptions.groupId\n },\n _a[userType] = [ownerUser.username],\n _a.authentication = requestOptions.authentication,\n _a))\n .then(function (results) {\n // results.errors includes an ArcGISAuthError when the group\n // is in a different org, but notAdded is empty, throw here\n // to normalize the results in below catch\n if (results.errors && results.errors.length) {\n throw results.errors[0];\n }\n return results;\n })\n .catch(function () { return ({ notAdded: [ownerUser.username] }); });\n revert = function (sharingResults) {\n return removeGroupUsers({\n id: requestOptions.groupId,\n users: [ownerUser.username],\n authentication: requestOptions.authentication,\n }).then(function () {\n // always resolves, suppress any resolved errors\n return sharingResults;\n });\n };\n }\n return {\n promise: promise.then(function (membershipResponse) {\n if (membershipResponse.notAdded.length) {\n throw new Error(errorMessage);\n }\n return membershipResponse;\n }),\n revert: revert,\n };\n}\n//# sourceMappingURL=share-item-with-group.js.map","import { request } from \"@esri/arcgis-rest-request\";\nimport { getPortalUrl } from \"../util/get-portal-url\";\nimport { getUserMembership } from \"./helpers\";\nimport { isItemSharedWithGroup } from \"./is-item-shared-with-group\";\nimport { getUser } from \"../users/get-user\";\n/**\n * Stop sharing an item with a group, either as an\n * [item owner](https://developers.arcgis.com/rest/users-groups-and-items/unshare-item-as-item-owner-.htm),\n * [group admin](https://developers.arcgis.com/rest/users-groups-and-items/unshare-item-as-group-admin-.htm) or\n * organization admin.\n *\n * ```js\n * import { unshareItemWithGroup } from '@esri/arcgis-rest-portal';\n *\n * unshareItemWithGroup({\n * id: \"abc123\",\n * groupId: \"xyz987\",\n * owner: \"some-owner\",\n * authentication: session\n * })\n * ```\n *\n * @param requestOptions - Options for the request.\n * @returns A Promise that will resolve with the data from the response.\n */\nexport function unshareItemWithGroup(requestOptions) {\n return isItemSharedWithGroup(requestOptions)\n .then(function (isShared) {\n // not shared\n if (!isShared) {\n // exit early with success response\n return Promise.resolve({\n itemId: requestOptions.id,\n shortcut: true,\n notUnsharedFrom: []\n });\n }\n var username = requestOptions.authentication.username, owner = requestOptions.owner;\n // next check if the user is a member of the group\n return Promise.all([\n getUserMembership(requestOptions),\n getUser({\n username: username,\n authentication: requestOptions.authentication\n })\n ])\n .then(function (_a) {\n var membership = _a[0], currentUser = _a[1];\n var itemOwner = owner || username;\n var isItemOwner = itemOwner === username;\n var isAdmin = currentUser.role === 'org_admin' && !currentUser.roleId;\n if (!isItemOwner && !isAdmin && ['admin', 'owner'].indexOf(membership) < 0) {\n // abort and reject promise\n throw Error(\"This item can not be unshared from group \" + requestOptions.groupId + \" by \" + username + \" as they not the item owner, an org admin, group admin or group owner.\");\n }\n // let the sharing call go\n return unshareFromGroup(requestOptions);\n })\n .then(function (sharingResponse) {\n if (sharingResponse.notUnsharedFrom.length) {\n throw Error(\"Item \" + requestOptions.id + \" could not be unshared to group \" + requestOptions.groupId);\n }\n else {\n // all is well\n return sharingResponse;\n }\n });\n });\n}\nfunction unshareFromGroup(requestOptions) {\n var username = requestOptions.authentication.username;\n var itemOwner = requestOptions.owner || username;\n // decide what url to use\n // default to the non-owner url...\n var url = getPortalUrl(requestOptions) + \"/content/items/\" + requestOptions.id + \"/unshare\";\n // but if they are the owner, we use a different path...\n if (itemOwner === username) {\n url = getPortalUrl(requestOptions) + \"/content/users/\" + itemOwner + \"/items/\" + requestOptions.id + \"/unshare\";\n }\n // now its finally time to do the sharing\n requestOptions.params = {\n groups: requestOptions.groupId\n };\n return request(url, requestOptions);\n}\n//# sourceMappingURL=unshare-item-with-group.js.map","/* Copyright (c) 2017-2019 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { __assign } from \"tslib\";\nimport { request } from \"@esri/arcgis-rest-request\";\nimport { getPortalUrl } from \"./get-portal-url\";\n/**\n * Get the portal\n * @param requestOptions\n */\nexport function getSelf(requestOptions) {\n // just delegate to getPortal w/o an id\n return getPortal(null, requestOptions);\n}\n/**\n * ```js\n * import { getPortal } from \"@esri/arcgis-rest-request\";\n * //\n * getPortal()\n * getPortal(\"fe8\")\n * getPortal(null, { portal: \"https://custom.maps.arcgis.com/sharing/rest/\" })\n * ```\n * Fetch information about the specified portal by id. If no id is passed, portals/self will be called.\n * Note that if you intend to request a portal by id and it is different from the portal specified by options.authentication, you must also pass options.portal.\n * @param id\n * @param requestOptions\n */\nexport function getPortal(id, requestOptions) {\n // construct the search url\n var idOrSelf = id ? id : \"self\";\n var url = getPortalUrl(requestOptions) + \"/portals/\" + idOrSelf;\n // default to a GET request\n var options = __assign({ httpMethod: \"GET\" }, requestOptions);\n // send the request\n return request(url, options);\n}\n//# sourceMappingURL=get-portal.js.map","import { getPortalUrl as getPortalApiUrl, } from \"@esri/arcgis-rest-portal\";\n/**\n * ```js\n * import { getPortalUrl } from \"@esri/hub-common\";\n * // from a portal API URL\n * let portalUrl = getPortalUrl(\"https://org.maps.arcgis.com/sharing/rest\"); // https://org.maps.arcgis.com\n * // from an enterprise portal self response (IPortal)\n * let portalSelf = { isPortal: true, portalHostname: \"server.example.org\" };\n * portalUrl = getPortalUrl(portalSelf); // https://server.example.org\n * // from an online portal self response (IPortal)\n * portalSelf = { isPortal: false, urlKey: \"org\", customBaseUrl: \"maps.arcgis.com\" };\n * portalUrl = getPortalUrl(portalSelf); // https://org.maps.arcgis.com\n * // from hub request options (IHubRequestOptions) with a portal self (IPortal)\n * let requestOptions = { isPortal: false, portalSelf };\n * portalUrl = getPortalUrl(requestOptions); // https://org.maps.arcgis.com\n * // from request options (IRequestOptions) with a portal (string)\n * requestOptions = { portal: \"https://org.maps.arcgis.com/sharing/rest\" };\n * portalUrl = getPortalUrl(requestOptions); // https://org.maps.arcgis.com\n * ```\n * Derive a portal's base URL from the portal's API URL, a portal object, or request options\n * @param urlOrObject a portal API URL, a portal object, or request options containing either of those\n * @returns The portal base URL, defaults to `https://www.arcgis.com`\n */\nexport function getPortalUrl(urlOrObject) {\n if (typeof urlOrObject === \"string\") {\n // assume this is the URL of the portal API\n // and strip the `/sharing/rest`\n return urlOrObject.replace(/\\/sharing\\/rest\\/?$/, \"\");\n }\n if (typeof urlOrObject === \"object\") {\n // build URL from portal self object, which could be\n // either a property of the object (request options) or the object itself\n var portalSelf = urlOrObject.portalSelf;\n var portal = portalSelf || urlOrObject;\n var portalHostname = portal.portalHostname, urlKey = portal.urlKey, customBaseUrl = portal.customBaseUrl;\n if (portalHostname || (urlKey && customBaseUrl)) {\n // user passed in a portal object, we'll use that to build the URL\n if (portal.isPortal) {\n return \"https://\" + portal.portalHostname;\n }\n else {\n return \"https://\" + portal.urlKey + \".\" + portal.customBaseUrl;\n }\n }\n }\n // urlOrObj is either undefined, or a request options w/o portal self\n // get portal API URL and parse portal URL from that\n return getPortalUrl(getPortalApiUrl(urlOrObject));\n}\n//# sourceMappingURL=get-portal-url.js.map","/**\n * Mapping between the AGO Env's and the Hub's asset CDNs\n */\nexport var HUB_CDN_URLMAP = {\n devext: \"https://d1011m9qpnz5mw.cloudfront.net\",\n qaext: \"https://dyq9ux9ryu4qj.cloudfront.net\",\n www: \"https://d1iq7pbacwn5rb.cloudfront.net\"\n};\n//# sourceMappingURL=hub-cdn-urlmap.js.map","import { getPortalUrl } from \"./get-portal-url\";\nimport { HUB_CDN_URLMAP } from \"./hub-cdn-urlmap\";\n// TODO: should this take IHubRequestOptions as well as a portal?\n// if so, address when we tackle https://github.com/Esri/hub.js/issues/321\n/**\n * Given a Portal object, return the full Hub locale asset url\n * Used for fetching translations\n * @param {Object} portal Portal Self\n */\nexport function getHubLocaleAssetUrl(portal) {\n if (portal.isPortal) {\n // Enterprise - use Site app as source for assets\n var baseUrl = getPortalUrl(portal);\n return baseUrl + \"/apps/sites\";\n }\n else {\n // AGO - Convert portalHostname into CDN url\n var index = portal.portalHostname.split(\".\")[0];\n var base = HUB_CDN_URLMAP[index] || HUB_CDN_URLMAP.www;\n return base + \"/opendata-ui/assets\";\n }\n}\n//# sourceMappingURL=get-hub-locale-asset-url.js.map","import { getPortalUrl } from \"./get-portal-url\";\n/**\n * ```js\n * import { getPortalApiUrl } from \"@esri/hub-common\";\n * // from a portal base URL\n * let portalApiUrl = getPortalApiUrl(\"https://org.maps.arcgis.com\"); // https://org.maps.arcgis.com/sharing/rest\n * // from an enterprise portal self response (IPortal)\n * let portalSelf = { isPortal: true, portalHostname: \"server.example.org\" };\n * portalApiUrl = getPortalApiUrl(portalSelf); // https://server.example.org/sharing/rest\n * // from an online portal self response (IPortal)\n * portalSelf = { isPortal: false, urlKey: \"org\", customBaseUrl: \"maps.arcgis.com\" };\n * portalApiUrl = getPortalApiUrl(portalSelf); // https://org.maps.arcgis.com/sharing/rest\n * // from hub request options (IHubRequestOptions) with a portal self (IPortal)\n * let requestOptions = { isPortal: false, portalSelf };\n * portalApiUrl = getPortalApiUrl(requestOptions); // https://org.maps.arcgis.com/sharing/rest\n * // from request options (IRequestOptions) with a portal (string)\n * requestOptions = { portal: \"https://org.maps.arcgis.com/sharing/rest\" };\n * portalApiUrl = getPortalApiUrl(requestOptions); // https://org.maps.arcgis.com/sharing/rest\n * ```\n * Derive a portal's API URL from the portal's base URL, a portal object, or request options\n * @param urlOrObject a portal base URL, a portal object, or request options containing either of those\n * @returns The portal API URL, defaults to `https://www.arcgis.com/sharing/rest`\n */\nexport function getPortalApiUrl(urlOrObject) {\n return getPortalUrl(urlOrObject) + \"/sharing/rest\";\n}\n//# sourceMappingURL=get-portal-api-url.js.map","/**\n * Add protocol or upgrade http to https\n * @param {string} url\n */\nexport function upgradeProtocol(url) {\n if (url.indexOf(\"http\") === -1) {\n return \"https://\" + url;\n }\n else if (url.indexOf(\"http://\") !== -1) {\n return url.replace(/^http:/i, \"https:\");\n }\n return url;\n}\n//# sourceMappingURL=upgrade-protocol.js.map","/**\n * Remove protocol if present\n * @param {string} hostname Hostname\n */\nexport function stripProtocol(hostname) {\n hostname = hostname.toLowerCase();\n if (hostname.includes(\"//\")) {\n hostname = hostname.split(\"//\")[1];\n }\n return hostname;\n}\n//# sourceMappingURL=strip-protocol.js.map","/**\n * Given a url without a protocol or with either http or https, return an array\n * that contains both the http and https version\n * @param {string} uri Url with either http or https, or no protocol\n * @private\n */\nexport function _getHttpAndHttpsUris(uri) {\n if (!uri) {\n return [];\n }\n var domain = uri.replace(/^http(s?):\\/\\//, \"\");\n return [\"http://\" + domain, \"https://\" + domain];\n}\n//# sourceMappingURL=_get-http-and-https-uris.js.map","/**\n * Wrapper over window.location\n * @private\n */\n/* istanbul ignore next */\nexport function _getLocation() {\n /* istanbul ignore next */\n if (window) {\n return window.location;\n }\n}\n//# sourceMappingURL=_get-location.js.map","/**\n * Parse the portal url, and if it matches one of the AGO\n * Url patterns, return the correct Hub Url\n * If portalUrl does not match an AGO pattern, this will\n * return `undefined`\n * @param portalUrl\n * @private\n */\nexport function _getHubUrlFromPortalHostname(portalUrl) {\n var result;\n if (portalUrl.match(/(qaext|\\.mapsqa)\\.arcgis.com/)) {\n result = \"https://hubqa.arcgis.com\";\n }\n else if (portalUrl.match(/(devext|\\.mapsdevext)\\.arcgis.com/)) {\n result = \"https://hubdev.arcgis.com\";\n }\n else if (portalUrl.match(/(www|\\.maps)\\.arcgis.com/)) {\n result = \"https://hub.arcgis.com\";\n }\n return result;\n}\n//# sourceMappingURL=_get-hub-url-from-portal-hostname.js.map","import { _getHubUrlFromPortalHostname } from \"./_get-hub-url-from-portal-hostname\";\n/**\n * Return the Hub Url based on the portal self\n * @param portal\n */\nexport function getHubUrlFromPortal(portal) {\n if (portal.isPortal) {\n throw new Error(\"Hub Url is not available in ArcGIS Enterprise\");\n }\n else {\n return _getHubUrlFromPortalHostname(portal.portalHostname);\n }\n}\n//# sourceMappingURL=get-hub-url-from-portal.js.map","import { getHubUrlFromPortal } from \"./get-hub-url-from-portal\";\n/**\n * Return the Portal url based on the portal self\n * @param {Object} portal Portal Self\n */\nexport function getHubApiUrlFromPortal(portal) {\n return getHubUrlFromPortal(portal) + \"/api/v3\";\n}\n//# sourceMappingURL=get-hub-api-url-from-portal.js.map","import { getPortalUrl } from \"./get-portal-url\";\n/**\n * Return the URL of the item's page in the Portal Home application\n * @param itemId The item's ID\n * @param portalUrlOrObject a portal base or API URL, a portal object, or request options containing either of those\n * @returns URL to the item's data REST end point, defaults to `https://www.arcgis.com/home/item.html?id={item.id}`\n */\nexport function getItemHomeUrl(itemId, portalUrlOrObject) {\n var portalUrl = getPortalUrl(portalUrlOrObject);\n return portalUrl + \"/home/item.html?id=\" + itemId;\n}\n//# sourceMappingURL=get-item-home-url.js.map","import { getPortalApiUrl } from \"./get-portal-api-url\";\n// NOTE: this fn is tested via getItemDataUrl tests\n/**\n * Get the fully qualified URL to the REST end point for an item.\n * @param item w/ id and access\n * @param portalUrlOrObject a portal base or API URL, a portal object, or request options containing either of those\n * @param token token for the current user's session; will only be appended as a query parameter if the item's access is **not** `public`\n * @returns URL to the item's REST end point, defaults to `https://www.arcgis.com/sharing/rest/content/items/{item.id}?f=json`\n */\nexport var getItemApiUrl = function (item, portalUrlOrObject, token) {\n var id = item.id, access = item.access;\n var url = getPortalApiUrl(portalUrlOrObject) + \"/content/items/\" + id;\n var params = new URLSearchParams({ f: \"json\" });\n if (access !== \"public\" && token) {\n params.append(\"token\", token);\n }\n return url + \"?\" + params.toString();\n};\n//# sourceMappingURL=get-item-api-url.js.map","import { getItemApiUrl } from \"./get-item-api-url\";\n/**\n * Get the fully qualified URL to the data REST end point for an item\n * @param item w/ id and access\n * @param portalUrlOrObject a portal base or API URL, a portal object, or request options containing either of those\n * @param token token for the current user's session; will only be appended as a query parameter if the item's access is **not** `public`\n * @returns URL to the item's data REST end point, defaults to `https://www.arcgis.com/sharing/rest/content/items/{item.id}/data`\n */\nexport var getItemDataUrl = function (item, portalUrlOrObject, token) {\n var url = getItemApiUrl(item, portalUrlOrObject, token);\n var pattern = \"\\\\/\" + item.id + \"\\\\?f=json\";\n var regExp = new RegExp(pattern);\n // TODO: re-append f param based on item.type?\n return (url && url.replace(regExp, \"/\" + item.id + \"/data\").replace(/\\&token/, \"?token\"));\n};\n//# sourceMappingURL=get-item-data-url.js.map","/**\n * Convert urls in a string to hyperlinks\n * @param {content} string\n */\nexport function convertUrlsToAnchorTags(content) {\n var urls = content.match(/((((ftp|https?):\\/\\/)|(w{3}\\.))[-\\w@:%_+.~#?,&//=]+)/g);\n if (urls) {\n urls.forEach(function (url) {\n content = content.replace(url, '<a target=\"_blank\" href=\"' + url + '\">' + url + \"</a>\");\n });\n }\n return content.replace(\"(\", \"<br/>(\");\n}\n//# sourceMappingURL=convert-urls-to-anchor-tags.js.map","/**\n * Cross-walk from a portalUrl to the corresponding Hub API Url\n *\n * If the passed url is not recognized, then this will return `undefined`\n * @param portalUrl\n * @returns\n */\nexport function getHubApiFromPortalUrl(portalUrl) {\n var result;\n if (portalUrl.match(/(qaext|\\.mapsqa)\\.arcgis.com/)) {\n result = \"https://hubqa.arcgis.com\";\n }\n else if (portalUrl.match(/(devext|\\.mapsdevext)\\.arcgis.com/)) {\n result = \"https://hubdev.arcgis.com\";\n }\n else if (portalUrl.match(/(www|\\.maps)\\.arcgis.com/)) {\n result = \"https://hub.arcgis.com\";\n }\n return result;\n}\n//# sourceMappingURL=getHubApiFromPortalUrl.js.map","/**\n * Given an org url, get the portal base url\n *\n * i.e. https://myorg.maps.arcgis.com will return https://www.arcgis.com\n *\n * @param orgUrl\n * @returns\n */\nexport function getPortalBaseFromOrgUrl(orgUrl) {\n var result = orgUrl;\n if (orgUrl.match(/(qaext|\\.mapsqa)\\.arcgis.com/)) {\n result = \"https://qaext.arcgis.com\";\n }\n else if (orgUrl.match(/(devext|\\.mapsdevext)\\.arcgis.com/)) {\n result = \"https://devext.arcgis.com\";\n }\n else {\n /* istanbul ignore else */\n if (orgUrl.match(/(www|\\.maps)\\.arcgis.com/)) {\n result = \"https://www.arcgis.com\";\n }\n }\n return result;\n}\n//# sourceMappingURL=getPortalBaseFromOrgUrl.js.map","import { getPortalUrl } from \"./get-portal-url\";\n/**\n * Return the URL of the group's page in the Portal Home application\n * @param groupId The group's ID\n * @param portalUrlOrObject a portal base or API URL, a portal object, or request options containing either of those\n * @returns URL to the groups's url, defaults to `https://www.arcgis.com/home/group.html?id={group.id}`\n */\nexport function getGroupHomeUrl(groupId, portalUrlOrObject) {\n var portalUrl = getPortalUrl(portalUrlOrObject);\n return portalUrl + \"/home/group.html?id=\" + groupId;\n}\n//# sourceMappingURL=getGroupHomeUrl.js.map","import { getPortalUrl } from \"./get-portal-url\";\n/**\n * Return the URL of the user's page in the Portal Home application\n * @param username The username\n * @param portalUrlOrObject a portal base or API URL, a portal object, or request options containing either of those\n * @returns URL to the user's profile, defaults to `https://www.arcgis.com/home/user.html?user={username}`\n */\nexport function getUserHomeUrl(username, portalUrlOrObject) {\n var portalUrl = getPortalUrl(portalUrlOrObject);\n return portalUrl + \"/home/user.html?user=\" + username;\n}\n//# sourceMappingURL=getUserHomeUrl.js.map","import { capitalize } from \"../util\";\nexport * from \"./build-url\";\nexport * from \"./get-hub-locale-asset-url\";\nexport * from \"./get-portal-api-url\";\nexport * from \"./get-portal-url\";\nexport * from \"./hub-cdn-urlmap\";\nexport * from \"./upgrade-protocol\";\nexport * from \"./strip-protocol\";\nexport * from \"./_get-http-and-https-uris\";\nexport * from \"./_get-location\";\nexport * from \"./get-hub-api-url-from-portal\";\nexport * from \"./get-hub-url-from-portal\";\nexport * from \"./get-item-home-url\";\nexport * from \"./get-item-api-url\";\nexport * from \"./get-item-data-url\";\nexport * from \"./convert-urls-to-anchor-tags\";\nexport * from \"./getHubApiFromPortalUrl\";\nexport * from \"./getPortalBaseFromOrgUrl\";\nexport * from \"./getGroupHomeUrl\";\nexport * from \"./getUserHomeUrl\";\nvar MAP_OR_FEATURE_SERVER_URL_REGEX = /\\/(map|feature)server/i;\n/**\n *\n * @param url\n * @returns true if the url is of a map or feature service\n */\nexport var isMapOrFeatureServerUrl = function (url) {\n return MAP_OR_FEATURE_SERVER_URL_REGEX.test(url);\n};\n/**\n * parses map or feature service type from URL\n * @param url map or feature service URL\n * @returns item type, either \"Map Service\" or \"Feature Service\"\n * or undefined for other types of URLs\n */\nexport var getServiceTypeFromUrl = function (url) {\n var match = url.match(MAP_OR_FEATURE_SERVER_URL_REGEX);\n var mapOrFeature = match && match[1];\n return mapOrFeature && capitalize(mapOrFeature) + \" Service\";\n};\n//# sourceMappingURL=index.js.map","import { getPortalApiUrl } from \"./urls\";\nimport { _getHubUrlFromPortalHostname } from \"./urls/_get-hub-url-from-portal-hostname\";\n/**\n * ```js\n * import { getHubApiUrl() } from \"@esri/hub-common\";\n * //\n * getHubApiUrl({ portal: \"https://custom.maps.arcgis.com/sharing/rest\" })\n * >> \"https://hub.arcgis.com\"\n * ```\n * Retrieves the Hub API Url associated with a specific ArcGIS Online organization.\n * @param urlOrObject a Portal URL, Portal API URL, request options object, or Portal self object\n * @returns the associated Hub API Url as a string.\n */\nexport function getHubApiUrl(urlOrObject) {\n var hubApiUrl = urlOrObject && urlOrObject.hubApiUrl;\n if (hubApiUrl) {\n // this is request options w/ hubApiUrl already defined\n return hubApiUrl;\n }\n return _getHubUrlFromPortalHostname(getPortalApiUrl(urlOrObject));\n}\n//# sourceMappingURL=api.js.map","import { getProp, getWithDefault } from \".\";\n/**\n * Hash of Hub API end points so updates\n * are centralized\n */\nvar hubApiEndpoints = {\n domains: \"/api/v3/domains\",\n search: \"/api/v3/datasets\",\n discussions: \"/api/discussions/v1\",\n};\n/**\n * Abstraction that holds a `UserSession`, along with\n * getters to streamline access to various platform\n * urls, and common constructs like `IRequestOptions`,\n * `IUserRequestOptions` etc.\n *\n * Instances are intended to be immutable, but this is not directly enforced.\n *\n * In most circumstances, this class should be created by\n * the ArcGISContextManager class.\n */\nvar ArcGISContext = /** @class */ (function () {\n /**\n * Create a new instance of `ArcGISContext`.\n *\n * @param opts\n */\n function ArcGISContext(opts) {\n this._portalUrl = \"https://www.arcgis.com\";\n this.id = opts.id;\n this._portalUrl = opts.portalUrl;\n this._hubUrl = opts.hubUrl;\n if (opts.authentication) {\n this._authentication = opts.authentication;\n }\n if (opts.portalSelf) {\n this._portalSelf = opts.portalSelf;\n }\n if (opts.currentUser) {\n this._currentUser = opts.currentUser;\n }\n if (opts.properties) {\n this._properties = opts.properties;\n }\n }\n Object.defineProperty(ArcGISContext.prototype, \"session\", {\n /**\n * Return the UserSession if authenticated\n */\n get: function () {\n return this._authentication;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ArcGISContext.prototype, \"isAuthenticated\", {\n /**\n * Return boolean indicating if authenticatio is present\n */\n get: function () {\n return !!this._authentication;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ArcGISContext.prototype, \"userRequestOptions\", {\n /**\n * Return `IUserRequestOptions`, which is used for REST-JS\n * functions which require authentication information.\n *\n * If context is not authenticated, this function will throw\n */\n get: function () {\n if (this.isAuthenticated) {\n return {\n authentication: this._authentication,\n portal: this.sharingApiUrl,\n };\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ArcGISContext.prototype, \"requestOptions\", {\n /**\n * Return `IRequestOptions`, which is used by REST-JS functions\n * which *may* use authentication information if provided.\n *\n * If context is not authenticated, this function just returns\n * the `portal` property, which informs REST-JS what Sharing API\n * instance to use (i.e. AGO, Enterprise etc)\n */\n get: function () {\n var ro = {\n portal: this.sharingApiUrl,\n };\n if (this.isAuthenticated) {\n ro = {\n authentication: this._authentication,\n portal: this.sharingApiUrl,\n };\n }\n return ro;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ArcGISContext.prototype, \"hubRequestOptions\", {\n /**\n * Return a `IHubRequestOptions` object\n */\n get: function () {\n // We may add more logic around what is returned in some corner cases\n return {\n authentication: this.session,\n isPortal: this.isPortal,\n portalSelf: this.portal,\n hubApiUrl: this.hubUrl,\n portal: this.sharingApiUrl,\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ArcGISContext.prototype, \"portalUrl\", {\n /**\n * Return the portal url i.e. https://www.arcgis.com\n *\n * If authenticated @ ArcGIS Online, it will return\n * the https://org.env.arcgis.com\n *\n * If authenticated @ ArcGIS Enterprise, it will return\n * https://{portalHostname}/{webadaptor}\n */\n get: function () {\n if (this.isAuthenticated) {\n if (this.isPortal || !this._portalSelf.urlKey) {\n return \"https://\" + this._portalSelf.portalHostname;\n }\n else {\n return \"https://\" + this._portalSelf.urlKey + \".\" + this._portalSelf.customBaseUrl;\n }\n }\n else {\n return this._portalUrl;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ArcGISContext.prototype, \"sharingApiUrl\", {\n /**\n * Returns the url to the sharing api composed from portalUrl\n * i.e. https://myorg.maps.arcgis.com/sharing/rest\n */\n get: function () {\n return this.portalUrl + \"/sharing/rest\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ArcGISContext.prototype, \"hubUrl\", {\n /**\n * Returns the Hub url, based on the portalUrl\n *\n * For ArcGIS Enterprise this will return `undefined`\n */\n get: function () {\n return this._hubUrl;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ArcGISContext.prototype, \"isPortal\", {\n /**\n * Returns boolean indicating if the backing system\n * is ArcGIS Enterprise (formerly ArcGIS Portal) or not\n */\n get: function () {\n return this._portalSelf\n ? this._portalSelf.isPortal\n : this._portalUrl.indexOf(\"arcgis.com\") === -1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ArcGISContext.prototype, \"discussionsServiceUrl\", {\n /**\n * Returns the discussions API URL\n */\n get: function () {\n if (this._hubUrl) {\n return \"\" + this._hubUrl + hubApiEndpoints.discussions;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ArcGISContext.prototype, \"hubSearchServiceUrl\", {\n /**\n * Returns the Hub Search API URL\n */\n get: function () {\n if (this._hubUrl) {\n return \"\" + this._hubUrl + hubApiEndpoints.search;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ArcGISContext.prototype, \"domainServiceUrl\", {\n /**\n * Returns Hub Domain Service URL\n */\n get: function () {\n if (this._hubUrl) {\n return \"\" + this._hubUrl + hubApiEndpoints.domains;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ArcGISContext.prototype, \"eventsConfig\", {\n /**\n * Returns the Events configuration object from portal/self\n *\n * `{serviceId: '3ef..', publicViewId: 'bc3...'}`\n */\n get: function () {\n if (this._portalSelf) {\n return getProp(this._portalSelf, \"portalProperties.hub.settings.events\");\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ArcGISContext.prototype, \"hubEnabled\", {\n /**\n * Returns boolean indicating if the current user\n * belongs to an organization that has licensed\n * ArcGIS Hub\n */\n get: function () {\n return getWithDefault(this._portalSelf, \"portalProperties.hub.enabled\", false);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ArcGISContext.prototype, \"communityOrgId\", {\n /**\n * Return the Hub Community Org Id, if defined\n */\n get: function () {\n if (this._portalSelf) {\n return getProp(this._portalSelf, \"portalProperties.hub.settings.communityOrg.orgId\");\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ArcGISContext.prototype, \"communityOrgHostname\", {\n /**\n * Returns the Hub Community Org Hostname, if defined\n *\n * i.e. c-org.maps.arcgis.com\n */\n get: function () {\n if (this._portalSelf) {\n return getProp(this._portalSelf, \"portalProperties.hub.settings.communityOrg.portalHostname\");\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ArcGISContext.prototype, \"communityOrgUrl\", {\n /**\n * Returns the Hub Community Org url\n *\n * i.e. https://c-org.maps.arcgis.com\n */\n get: function () {\n if (this.communityOrgHostname) {\n return \"https://\" + this.communityOrgHostname;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ArcGISContext.prototype, \"helperServices\", {\n /**\n * Returns the hash of helper services from portal self\n */\n get: function () {\n if (this._portalSelf) {\n return this._portalSelf.helperServices;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ArcGISContext.prototype, \"currentUser\", {\n /**\n * Returns the current user as IUser\n */\n get: function () {\n return this._currentUser;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ArcGISContext.prototype, \"portal\", {\n /**\n * Returns the portal object as IPortal\n */\n get: function () {\n return this._portalSelf;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ArcGISContext.prototype, \"properties\", {\n /**\n * Return the properties hash that was passed in.\n * Useful for app-specific context such as the active\n * Site for ArcGIS Hub\n */\n get: function () {\n return this._properties;\n },\n enumerable: false,\n configurable: true\n });\n return ArcGISContext;\n}());\nexport { ArcGISContext };\n//# sourceMappingURL=ArcGISContext.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { getSelf, getUser } from \"@esri/arcgis-rest-portal\";\nimport { ArcGISContext, } from \"./ArcGISContext\";\nimport { cloneObject, Logger, Level } from \".\";\nimport { getHubApiFromPortalUrl } from \"./urls/getHubApiFromPortalUrl\";\nimport { getPortalBaseFromOrgUrl } from \"./urls/getPortalBaseFromOrgUrl\";\n/**\n * The manager exposes context (`IArcGISContext`), which combines a `UserSession` with\n * the `portal/self` and `user/self` responses to provide a central lookup for platform\n * information, api urls, and other useful properties for developers such as IRequestOptions\n * IUserRequestOptions, IHubRequestOptions etc.\n *\n * The context is exposed on gthe `.context` property, and as the authentication changes\n * the `.context` is re-created. This is done to allow web frameworks to watch for\n * changes on that single property, instead of having to leverage observers or events\n * for change detection.\n *\n * Please see the [ArcGISContext Guide](/hub.js/guides/context) for additional information.\n *\n */\nvar ArcGISContextManager = /** @class */ (function () {\n /**\n * Private constructor. Use `ArcGISContextManager.create(...)` to\n * instantiate an instance\n * @param opts\n */\n function ArcGISContextManager(opts) {\n this._portalUrl = \"https://www.arcgis.com\";\n this._logLevel = Level.error;\n // Having a unique id makes debugging easier\n this.id = new Date().getTime();\n if (opts.logLevel) {\n this._logLevel = opts.logLevel;\n }\n Logger.setLogLevel(this._logLevel);\n Logger.debug(\"ArcGISContextManager:ctor: Creating \" + this.id);\n if (opts.properties) {\n this._properties = opts.properties;\n }\n if (opts.authentication) {\n this._authentication = opts.authentication;\n this._portalUrl = this._authentication.portal.replace(\"/sharing/rest\", \"\");\n this._hubUrl = getHubApiFromPortalUrl(this._portalUrl);\n }\n else if (opts.portalUrl) {\n this._portalUrl = opts.portalUrl;\n this._hubUrl = getHubApiFromPortalUrl(this._portalUrl);\n }\n else {\n this._hubUrl = getHubApiFromPortalUrl(this._portalUrl);\n }\n if (opts.portal) {\n this._portalSelf = cloneObject(opts.portal);\n }\n if (opts.currentUser) {\n this._currentUser = cloneObject(opts.currentUser);\n }\n }\n /**\n * Used to create a new instance of the ArcGISContext class.\n *\n * ```js\n * const ctxMgr = await ArcGISContextManager.create();\n * ```\n *\n * @param opts\n * @returns\n */\n ArcGISContextManager.create = function (opts) {\n if (opts === void 0) { opts = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var ctx;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n ctx = new ArcGISContextManager(opts);\n return [4 /*yield*/, ctx.initialize()];\n case 1:\n _a.sent();\n return [2 /*return*/, ctx];\n }\n });\n });\n };\n /**\n * Set the Authentication (UserSession) for the context.\n * This should be called when a user signs into a running\n * application.\n * @param auth\n */\n ArcGISContextManager.prototype.setAuthentication = function (auth) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this._authentication = auth;\n this._portalUrl = auth.portal.replace(\"/sharing/rest\", \"\");\n return [4 /*yield*/, this.initialize()];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Set the properties hash and re-create the context\n * @param properties\n */\n ArcGISContextManager.prototype.setProperties = function (properties) {\n this._properties = properties;\n this._context = new ArcGISContext(this.contextOpts);\n };\n /**\n * Clear the Authentication (UserSession). This should be\n * called when a user signs out of an application, but\n * the application continues running\n */\n ArcGISContextManager.prototype.clearAuthentication = function () {\n // Reset the portalUrl from the org url to the base url\n // for ArcGIS Enterprise, we just leave the _portalUrl as-is\n if (!this._context.isPortal) {\n this._portalUrl = getPortalBaseFromOrgUrl(this._portalUrl);\n }\n // Clear the auth, portalSelf and currentUser props\n this._authentication = null;\n this._portalSelf = null;\n this._currentUser = null;\n this._context = new ArcGISContext(this.contextOpts);\n };\n Object.defineProperty(ArcGISContextManager.prototype, \"context\", {\n /**\n * Return a reference to the current state.\n * When `.setAuthentication()` or `.clearAuthenentication()` are\n * called, the state will be re-created. This is done so frameworks\n * like React or Ember can detect changes.\n */\n get: function () {\n return this._context;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * If we have a UserSession, fetch portal/self and\n * store that along with current user\n */\n ArcGISContextManager.prototype.initialize = function () {\n return __awaiter(this, void 0, void 0, function () {\n var username, requests, _a, portal, user, ex_1, msg;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(this._authentication && (!this._portalSelf || !this._currentUser))) return [3 /*break*/, 4];\n Logger.debug(\"ArcGISContextManager-\" + this.id + \": Initializing\");\n username = this._authentication.username;\n requests = [\n getSelf({ authentication: this._authentication }),\n getUser({ username: username, authentication: this._authentication }),\n ];\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 4]);\n return [4 /*yield*/, Promise.all(requests)];\n case 2:\n _a = _b.sent(), portal = _a[0], user = _a[1];\n this._portalSelf = portal;\n this._currentUser = user;\n Logger.debug(\"ArcGISContextManager-\" + this.id + \": received portalSelf and currentUser\");\n return [3 /*break*/, 4];\n case 3:\n ex_1 = _b.sent();\n msg = \"ArcGISContextManager could not fetch portal & user for \\\"\" + this._authentication.username + \"\\\" using \" + this._authentication.portal + \".\";\n Logger.error(msg);\n // tslint:disable-next-line:no-console\n console.error(msg);\n throw ex_1;\n case 4:\n Logger.debug(\"ArcGISContextManager-\" + this.id + \": updating context\");\n // update the context\n this._context = new ArcGISContext(this.contextOpts);\n return [2 /*return*/];\n }\n });\n });\n };\n Object.defineProperty(ArcGISContextManager.prototype, \"contextOpts\", {\n /**\n * Getter to streamline the creation of updated Context instances\n */\n get: function () {\n var contextOpts = {\n id: this.id,\n portalUrl: this._portalUrl,\n hubUrl: this._hubUrl,\n properties: this._properties,\n };\n if (this._authentication) {\n contextOpts.authentication = this._authentication;\n }\n if (this._portalSelf) {\n contextOpts.portalSelf = this._portalSelf;\n }\n if (this._currentUser) {\n contextOpts.currentUser = this._currentUser;\n }\n return contextOpts;\n },\n enumerable: false,\n configurable: true\n });\n return ArcGISContextManager;\n}());\nexport { ArcGISContextManager };\n//# sourceMappingURL=ArcGISContextManager.js.map","/* Copyright (c) 2018 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { request } from \"@esri/arcgis-rest-request\";\nimport { UserSession } from \"@esri/arcgis-rest-auth\";\n/**\n * A thin wrapper around [`UserSession.completeOAuth2()`](https://esri.github.io/arcgis-rest-js/api/auth/UserSession/#completeOAuth2) that sets search tags and other relevant metadata for newly created community users.\n */\n/* istanbul ignore next */\nexport function completeOAuth2(options, win) {\n if (win === void 0) { win = window; }\n var match = win.location.href.match(/access_token=(.+)&expires_in=.+&username=([^&]+)/);\n var token = match[1];\n var user = decodeURIComponent(match[2]);\n var baseUrl = \"https://www.arcgis.com/sharing/rest/community/users/\" + user;\n return request(baseUrl, {\n params: { token: token },\n httpMethod: \"GET\"\n }).then(function (response) {\n if (Date.now() - response.created < 5000) {\n return request(baseUrl + \"/update\", {\n params: {\n token: token,\n tags: [\"hubRole:participant\", \"org:\" + response.orgId],\n access: \"public\"\n }\n }).then(function () {\n return UserSession.completeOAuth2(options);\n });\n }\n else {\n return UserSession.completeOAuth2(options);\n }\n });\n}\n//# sourceMappingURL=auth.js.map","var app = [\n \"Application\",\n \"City Engine Web Scene\",\n \"CityEngine Web Scene\",\n \"Dashboard\",\n \"Insights Page\",\n \"Insights Workbook\",\n \"Operation View\",\n \"Web Mapping Application\",\n \"StoryMap\",\n \"Web Experience\",\n \"Urban Model\",\n];\nvar dataset = [\n \"CSV Collection\",\n \"CSV\",\n \"Feature Collection Template\",\n \"Feature Collection\",\n \"Feature Layer\",\n \"Feature Service\",\n \"File Geodatabase\",\n \"GeoJSON\",\n \"GeoJson\",\n \"KML Collection\",\n \"KML\",\n \"Microsoft Excel\",\n \"Raster Layer\",\n \"Shapefile\",\n \"Stream Service\",\n \"Table\",\n];\nvar document = [\n \"CAD Drawing\",\n \"Document Link\",\n \"Hub Page\",\n \"Site Page\",\n \"Image\",\n \"iWork Keynote\",\n \"iWork Numbers\",\n \"iWork Pages\",\n \"Microsoft Powerpoint\",\n \"Microsoft Visio\",\n \"Microsoft Word\",\n \"Notebook\",\n \"PDF\",\n \"Pro Map\",\n \"Report Template\",\n];\nvar event = [\"Hub Event\"];\nvar feedback = [\"Form\", \"Quick Capture Project\"];\nvar initiative = [\"Hub Initiative\"];\nvar solution = [\"Solution\"];\nvar template = [\"Hub Initiative Template\"];\nvar map = [\n \"Image Collection\",\n \"Image Service\",\n \"Map Service Layer\",\n \"Map Service\",\n \"Scene Service\",\n \"Scene Layer\",\n \"Vector Tile Service\",\n \"Web Map Service\",\n \"Web Map Tile Service\",\n \"Web Map\",\n \"Web Scene\",\n \"WFS\",\n \"WMS\",\n \"WMTS\",\n];\nvar other = [\n \"360 VR Experience\",\n \"AppBuilder Widget Package\",\n \"Application Configuration\",\n \"ArcPad Package\",\n \"Code Attachment\",\n \"Code Sample\",\n \"Desktop Add In\",\n \"Desktop Application Template\",\n \"Desktop Application\",\n \"Desktop Style\",\n \"Explorer Add In\",\n \"Explorer Layer\",\n \"Geocoding Service\",\n \"Geometry Service\",\n \"Geoprocessing Package\",\n \"Geoprocessing Sample\",\n \"Geoprocessing Service\",\n \"Layer File\",\n \"Layer Package\",\n \"Layer Template\",\n \"Layer\",\n \"Layout\",\n \"Locator Package\",\n \"Map Area\",\n \"Map Document\",\n \"Map Package\",\n \"Map Service Definition\",\n \"Map Template\",\n \"Mobile Application\",\n \"Mobile Map Package\",\n \"Native Application\",\n \"Network Analysis Service\",\n \"Operations Dashboard Add In\",\n \"Project Package\",\n \"Project Template\",\n \"Raster Function Template\",\n \"Rule Package\",\n \"Scene Package\",\n \"Service Definition\",\n \"SQLite Geodatabase\",\n \"Style\",\n \"Tile Package\",\n \"Vector Tile Package\",\n \"Workflow Manager Package\",\n];\nvar site = [\"Hub Site Application\", \"Site Application\"];\n/**\n * Get the Hub collection for a given item type\n * @param itemType The ArcGIS [item type](https://developers.arcgis.com/rest/users-groups-and-items/items-and-item-types.htm).\n * @returns the Hub collection of a given item type.\n * @private\n */\nexport var getCollection = function (type) {\n if (!type) {\n return;\n }\n var lowerCaseType = type.toLocaleLowerCase();\n return Object.keys(collections).find(function (key) {\n var collectionTypes = collections[key];\n return collectionTypes.some(function (t) { return t.toLocaleLowerCase() === lowerCaseType; });\n });\n};\n// TODO: remove this when we remove the deprecated categories\n// and then move the above arrays and getCollection() logic to get-family\nexport var collections = {\n app: app,\n dataset: dataset,\n document: document,\n event: event,\n feedback: feedback,\n initiative: initiative,\n template: template,\n solution: solution,\n map: map,\n other: other,\n site: site,\n};\n//# sourceMappingURL=collections.js.map","import { collections } from \"./collections\";\nvar app = collections.app, dataset = collections.dataset, document = collections.document, event = collections.event, feedback = collections.feedback, initiative = collections.initiative, map = collections.map, other = collections.other, site = collections.site;\nvar downloadableTypes = [\n \"360 VR Experience\",\n \"Application\",\n \"CityEngine Web Scene\",\n \"Code Sample\",\n \"CSV Collection\",\n \"CSV\",\n \"CAD Drawing\",\n \"Desktop Application\",\n \"Desktop Application Template\",\n \"Desktop Style\",\n \"File Geodatabase\",\n \"GeoJson\",\n \"Geoprocessing Package\",\n \"Geoprocessing Sample\",\n \"Image\",\n \"iWork Keynote\",\n \"iWork Numbers\",\n \"KML Collection\",\n \"KML\",\n \"Layer\",\n \"Layer File\",\n \"Layer Package\",\n \"Layout\",\n \"Locator Package\",\n \"Map Package\",\n \"Map Service Definition\",\n \"Map Template\",\n \"Microsoft Excel\",\n \"Microsoft Powerpoint\",\n \"Microsoft Visio\",\n \"Microsoft Word\",\n \"Notebook\",\n \"Operations Dashboard Add In\",\n \"PDF\",\n \"Pro Map\",\n \"Project Package\",\n \"Project Template\",\n \"Raster function template\",\n \"Rule Package\",\n \"Service Definition\",\n \"Shapefile\",\n \"Vector Tile Package\",\n \"Workflow Manager Package\",\n];\nvar downloadableTypeKeywords = [\"Data\"];\nvar apiTypes = [\"Feature Service\", \"Map Service\", \"Image Service\"];\n// DEPRECATED: remove this at next breaking version\n// this is currently used by hub-search and opendata-ui\n// (in the dataset-display and content-library-engine)\n// TODO: remove this once it is no longer used in those places\nexport var categories = {\n app: app.concat(feedback),\n dataset: dataset,\n document: document,\n event: event,\n initiative: initiative,\n map: map,\n other: other,\n site: site,\n downloadableTypes: downloadableTypes,\n downloadableTypeKeywords: downloadableTypeKeywords,\n apiTypes: apiTypes,\n};\n// TODO: move this function and supporting arrays to another module\n/**\n * Is the item type downloadable in the Hub app\n * @param item ArcGIS item with type and type keywords\n */\nexport function isDownloadable(item) {\n return (downloadableTypes.indexOf(item.type) !== -1 ||\n (item.typeKeywords &&\n downloadableTypeKeywords.some(function (downloadableTypeKeyword) {\n return item.typeKeywords.some(function (typeKeyword) { return typeKeyword === downloadableTypeKeyword; });\n })));\n}\n//# sourceMappingURL=categories.js.map","/* Copyright (c) 2017-2018 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { __assign } from \"tslib\";\nimport { request, cleanUrl, appendCustomParams } from \"@esri/arcgis-rest-request\";\n/**\n * ```js\n * import { getFeature } from '@esri/arcgis-rest-feature-layer';\n * //\n * const url = \"https://services.arcgis.com/V6ZHFr6zdgNZuVG0/arcgis/rest/services/Landscape_Trees/FeatureServer/0\";\n * //\n * getFeature({\n * url,\n * id: 42\n * }).then(feature => {\n * console.log(feature.attributes.FID); // 42\n * });\n * ```\n * Get a feature by id.\n *\n * @param requestOptions - Options for the request\n * @returns A Promise that will resolve with the feature or the [response](https://developer.mozilla.org/en-US/docs/Web/API/Response) itself if `rawResponse: true` was passed in.\n */\nexport function getFeature(requestOptions) {\n var url = cleanUrl(requestOptions.url) + \"/\" + requestOptions.id;\n // default to a GET request\n var options = __assign({ httpMethod: \"GET\" }, requestOptions);\n return request(url, options).then(function (response) {\n if (options.rawResponse) {\n return response;\n }\n return response.feature;\n });\n}\n/**\n * ```js\n * import { queryFeatures } from '@esri/arcgis-rest-feature-layer';\n * //\n * queryFeatures({\n * url: \"http://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer/3\",\n * where: \"STATE_NAME = 'Alaska'\"\n * })\n * .then(result)\n * ```\n * Query a feature service. See [REST Documentation](https://developers.arcgis.com/rest/services-reference/query-feature-service-layer-.htm) for more information.\n *\n * @param requestOptions - Options for the request\n * @returns A Promise that will resolve with the query response.\n */\nexport function queryFeatures(requestOptions) {\n var queryOptions = appendCustomParams(requestOptions, [\n \"where\",\n \"objectIds\",\n \"relationParam\",\n \"time\",\n \"distance\",\n \"units\",\n \"outFields\",\n \"geometry\",\n \"geometryType\",\n \"spatialRel\",\n \"returnGeometry\",\n \"maxAllowableOffset\",\n \"geometryPrecision\",\n \"inSR\",\n \"outSR\",\n \"gdbVersion\",\n \"returnDistinctValues\",\n \"returnIdsOnly\",\n \"returnCountOnly\",\n \"returnExtentOnly\",\n \"orderByFields\",\n \"groupByFieldsForStatistics\",\n \"outStatistics\",\n \"returnZ\",\n \"returnM\",\n \"multipatchOption\",\n \"resultOffset\",\n \"resultRecordCount\",\n \"quantizationParameters\",\n \"returnCentroid\",\n \"resultType\",\n \"historicMoment\",\n \"returnTrueCurves\",\n \"sqlFormat\",\n \"returnExceededLimitFeatures\",\n \"f\"\n ], {\n httpMethod: \"GET\",\n params: __assign({ \n // set default query parameters\n where: \"1=1\", outFields: \"*\" }, requestOptions.params)\n });\n return request(cleanUrl(requestOptions.url) + \"/query\", queryOptions);\n}\n//# sourceMappingURL=query.js.map","/* Copyright (c) 2017-2019 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { cleanUrl } from \"@esri/arcgis-rest-request\";\nvar serviceRegex = new RegExp(/.+(?:map|feature|image)server/i);\n/**\n * Return the service url. If not matched, returns what was passed in\n */\nexport function parseServiceUrl(url) {\n var match = url.match(serviceRegex);\n if (match) {\n return match[0];\n }\n else {\n return stripQueryString(url);\n }\n}\nfunction stripQueryString(url) {\n var stripped = url.split('?')[0];\n return cleanUrl(stripped);\n}\n//# sourceMappingURL=helpers.js.map","import { __rest } from \"tslib\";\nimport { parseServiceUrl } from \"./helpers\";\nimport { request } from '@esri/arcgis-rest-request';\n/**\n * ```js\n * import { getAllLayersAndTables } from '@esri/arcgis-rest-feature-layer';\n * getAllLayersAndTables({\n * url: \"https://sampleserver6.arcgisonline.com/arcgis/rest/services/ServiceRequest/FeatureServer/0\"\n * })\n * .then(response) // { layers: [...], tables: [...] }\n * ```\n * Fetches all the layers and tables associated with a given layer service.\n * Wrapper for https://developers.arcgis.com/rest/services-reference/all-layers-and-tables.htm\n *\n * @param options - Request options, including the url for the layer service\n * @returns A Promise that will resolve with the layers and tables for the given service\n */\n// TODO: should we expand this to support other valid params of the endpoint?\nexport function getAllLayersAndTables(options) {\n var url = options.url, requestOptions = __rest(options, [\"url\"]);\n var layersUrl = parseServiceUrl(url) + \"/layers\";\n return request(layersUrl, requestOptions);\n}\n//# sourceMappingURL=getAllLayersAndTables.js.map","/* Copyright (c) 2018 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { request, cleanUrl } from \"@esri/arcgis-rest-request\";\n/**\n * ```js\n * import { getLayer } from '@esri/arcgis-rest-feature-layer';\n * //\n * getLayer({\n * url: \"https://sampleserver6.arcgisonline.com/arcgis/rest/services/ServiceRequest/FeatureServer/0\"\n * })\n * .then(response) // { name: \"311\", id: 0, ... }\n * ```\n * Layer (Feature Service) request. See the [REST Documentation](https://developers.arcgis.com/rest/services-reference/layer-feature-service-.htm) for more information.\n *\n * @param options - Options for the request.\n * @returns A Promise that will resolve with the addFeatures response.\n */\nexport function getLayer(options) {\n return request(cleanUrl(options.url), options);\n}\n//# sourceMappingURL=getLayer.js.map","/* Copyright (c) 2018 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { request, cleanUrl } from \"@esri/arcgis-rest-request\";\n/**\n * ```js\n * import { getService } from '@esri/arcgis-rest-feature-layer';\n * //\n * getService({\n * url: \"https://sampleserver6.arcgisonline.com/arcgis/rest/services/ServiceRequest/FeatureServer\"\n * })\n * .then(response) // { name: \"311\", id: 0, ... }\n * ```\n * Feature Service request. See the [REST Documentation](https://developers.arcgis.com/rest/services-reference/feature-service.htm) for more information.\n *\n * @param options - Options for the request.\n * @returns A Promise that will resolve with the getService response.\n */\nexport function getService(options) {\n return request(cleanUrl(options.url), options);\n}\n//# sourceMappingURL=getService.js.map","export var PublisherSource;\n(function (PublisherSource) {\n PublisherSource[\"CitationContact\"] = \"metadata.resource.citation.contact\";\n PublisherSource[\"ResourceContact\"] = \"metadata.resource.contact\";\n PublisherSource[\"MetadataContact\"] = \"metadata.contact\";\n PublisherSource[\"ItemOwner\"] = \"item.owner\";\n PublisherSource[\"None\"] = \"none\";\n})(PublisherSource || (PublisherSource = {}));\n//# sourceMappingURL=IHubContent.js.map","import { getProp } from \"./objects\";\nimport { request } from \"@esri/arcgis-rest-request\";\n/**\n * Turns an bounding box coordinate array into an extent object\n * @param bBox bounding box coordinate array\n * @returns extent object\n */\nexport var bBoxToExtent = function (bBox) {\n var _a = bBox[0], xmin = _a[0], ymin = _a[1], _b = bBox[1], xmax = _b[0], ymax = _b[1];\n return createExtent(xmin, ymin, xmax, ymax);\n};\nexport function createExtent(xmin, ymin, xmax, ymax, wkid) {\n if (wkid === void 0) { wkid = 4326; }\n return {\n xmin: xmin,\n ymin: ymin,\n xmax: xmax,\n ymax: ymax,\n // type: 'extent',\n spatialReference: {\n wkid: wkid,\n },\n };\n}\n/**\n * Turns an extent object into a bounding box coordinate array\n * @param extent extent\n */\nexport function extentToBBox(extent) {\n return [\n [extent.xmin, extent.ymin],\n [extent.xmax, extent.ymax],\n ];\n}\nexport var GLOBAL_EXTENT = {\n xmin: -180,\n ymin: -90,\n xmax: 180,\n ymax: 90,\n spatialReference: {\n wkid: 4326,\n },\n};\n/**\n * Gets the geographic extent for an org\n * @param hubRequestOptions\n */\nexport function getGeographicOrgExtent(hubRequestOptions) {\n var portal = hubRequestOptions.portalSelf;\n var orgExtent = portal.defaultExtent;\n var geometryServiceUrl = getProp(portal, \"helperServices.geometry.url\");\n // Define a default global extent object\n if (!geometryServiceUrl) {\n return Promise.resolve(GLOBAL_EXTENT);\n }\n if (!orgExtent) {\n return Promise.resolve(GLOBAL_EXTENT);\n }\n var url = geometryServiceUrl + \"/project\";\n // geometry params...\n var geometryParam = {\n geometryType: \"esriGeometryEnvelope\",\n geometries: [orgExtent],\n };\n var options = {\n httpMethod: \"POST\",\n params: {\n geometries: JSON.stringify(geometryParam),\n transformForward: false,\n transformation: \"\",\n inSR: orgExtent.spatialReference.wkid,\n outSR: 4326,\n f: \"json\",\n },\n };\n // add in auth if it's passed\n if (hubRequestOptions.authentication) {\n options.authentication = hubRequestOptions.authentication;\n }\n return request(url, options)\n .then(function (response) {\n var geom = response.geometries[0];\n return {\n xmin: geom.xmin,\n ymin: geom.ymin,\n xmax: geom.xmax,\n ymax: geom.ymax,\n spatialReference: {\n wkid: 4326,\n },\n };\n })\n .catch(function (ex) {\n return GLOBAL_EXTENT;\n });\n}\n/**\n * Get the default org extent as a bbox for use on item.extent\n * @param {IHubRequestOptions} hubRequestOptions\n */\nexport function getOrgExtentAsBBox(hubRequestOptions) {\n return getGeographicOrgExtent(hubRequestOptions).then(function (extent) {\n return extentToBBox(extent);\n });\n}\n/**\n * checks if the extent is a valid BBox (2 element array of coordinate pair arrays)\n * @param extent\n * @returns\n */\nexport var isBBox = function (extent) {\n return (Array.isArray(extent) &&\n Array.isArray(extent[0]) &&\n Array.isArray(extent[1]));\n};\nfunction isExtentJSON(extent) {\n return [\"xmin\", \"ymin\", \"xmax\", \"ymax\"].every(function (key) { return typeof extent[key] === \"number\"; });\n}\n/**\n * Check if the given extent is in a known format\n * @param {Object} extent extent in any format\n * @return {Boolean} indicator\n */\nexport function isValidExtent(extent) {\n return !!extent && [isBBox, isExtentJSON].some(function (test) { return test(extent); });\n}\n/**\n * Convert an extent object into a polygon object\n * @param extent\n * @returns\n */\nexport var extentToPolygon = function (extent) {\n var xmin = extent.xmin, ymin = extent.ymin, xmax = extent.xmax, ymax = extent.ymax, spatialReference = extent.spatialReference;\n var rings = [\n [\n [xmin, ymax],\n [xmax, ymax],\n [xmax, ymin],\n [xmin, ymin],\n [xmin, ymax],\n ],\n ];\n return {\n rings: rings,\n spatialReference: spatialReference,\n };\n};\n/**\n * Get the center of an extent as a point\n * @param extent\n * @returns\n */\nexport var getExtentCenter = function (extent) {\n var xmin = extent.xmin, ymin = extent.ymin, xmax = extent.xmax, ymax = extent.ymax, spatialReference = extent.spatialReference;\n var x = (xmax - xmin) / 2 + xmin;\n var y = (ymax - ymin) / 2 + ymin;\n return { x: x, y: y, spatialReference: spatialReference };\n};\n//# sourceMappingURL=extent.js.map","import { getCollection } from \"../collections\";\n// private helper functions\nfunction collectionToFamily(collection) {\n var overrides = {\n other: \"content\",\n solution: \"template\",\n };\n return overrides[collection] || collection;\n}\n/**\n * return the Hub family given an item's type\n * @param type item type\n * @returns Hub family\n */\nexport function getFamily(type) {\n var family;\n // override default behavior for the rows that are highlighted in yellow here:\n // https://esriis.sharepoint.com/:x:/r/sites/ArcGISHub/_layouts/15/Doc.aspx?sourcedoc=%7BADA1C9DC-4F6C-4DE4-92C6-693EF9571CFA%7D&file=Hub%20Routes.xlsx&nav=MTBfe0VENEREQzI4LUZFMDctNEI0Ri04NjcyLThCQUE2MTA0MEZGRn1fezIwMTIwMEJFLTA4MEQtNEExRC05QzA4LTE5MTAzOUQwMEE1RH0&action=default&mobileredirect=true&cid=df1c874b-c367-4cea-bc13-7bebfad3f2ac\n switch (type.toLowerCase()) {\n case \"image service\":\n family = \"dataset\";\n break;\n case \"feature service\":\n case \"raster layer\":\n // TODO: check if feature service has > 1 layer first?\n family = \"map\";\n break;\n case \"microsoft excel\":\n family = \"document\";\n break;\n case \"cad drawing\":\n case \"feature collection template\":\n case \"report template\":\n family = \"content\";\n break;\n case \"hub project\":\n family = \"project\";\n break;\n default:\n // by default derive from collection\n family = collectionToFamily(getCollection(type));\n }\n return family;\n}\n//# sourceMappingURL=get-family.js.map","import { __assign } from \"tslib\";\n/**\n * Use this module for functions that do not need to be used by consumers (yet),\n * but may be shared between hub.js modules, and/or need to be tested\n * to get 100% coverage w/o writing cumbersome tests of higher level functions.\n *\n * Consuming will not be able to import these functions.\n *\n * It's probably a good pattern to add functions here first and then\n * move them to index.ts only when they are needed by a consumer.\n */\nimport { parseServiceUrl } from \"@esri/arcgis-rest-feature-layer\";\nimport { PublisherSource } from \"../core\";\nimport { bBoxToExtent, extentToBBox, extentToPolygon, getExtentCenter, isBBox, } from \"../extent\";\nimport { getFamily } from \"./get-family\";\nimport { getProp } from \"../objects\";\n/**\n * Create a new content with updated boundary properties\n * @param content original content\n * @param boundary boundary provenance\n * @returns\n * @private\n */\nexport var setContentBoundary = function (content, boundary) {\n // update content's item and boundary\n var properties = __assign(__assign({}, (content.item.properties || {})), { boundary: boundary });\n var item = __assign(__assign({}, content.item), { properties: properties });\n var updated = __assign(__assign({}, content), { item: item });\n return __assign(__assign({}, updated), { boundary: getContentBoundary(item) });\n};\n/**\n * get a content's boundary based on the item's boundary property\n * @param item\n * @returns\n * @private\n */\nexport var getContentBoundary = function (item) {\n var _a;\n var bBox = item.extent;\n var isValidItemExtent = isBBox(bBox);\n // user specified provenance is stored in item.properties\n var provenance = ((_a = item.properties) === null || _a === void 0 ? void 0 : _a.boundary) ||\n // but we default to item if the item has an extent\n (isValidItemExtent ? \"item\" : undefined);\n var boundary = {\n geometry: null,\n provenance: provenance,\n };\n if (provenance === \"item\" && isValidItemExtent) {\n var extent = bBoxToExtent(bBox);\n var center = getExtentCenter(extent);\n boundary.center = [center.x, center.y];\n boundary.geometry = __assign(__assign({}, extentToPolygon(extent)), { type: \"polygon\" });\n boundary.spatialReference = boundary.geometry.spatialReference;\n }\n return boundary;\n};\n/**\n * Determine if we are in an enterprise environment\n * NOTE: when no request options are provided, the underlying\n * request functions assume that we are online in production\n * so we only want use enterprise logic if isPortal is explicitly defined\n * @param requestOptions\n * @returns\n * @private\n */\nexport var isPortal = function (requestOptions) {\n return requestOptions && requestOptions.isPortal;\n};\n/**\n * Determine if we can use the Hub API for an item, i.e.\n * the item is public and we are not in an enterprise environment\n * @param item\n * @param requestOptions\n * @returns\n * @private\n */\nexport var canUseHubApiForItem = function (item, requestOptions) {\n return !!item && item.access === \"public\" && !isPortal(requestOptions);\n};\n/**\n * Returns whether or not an item is a proxied csv\n *\n * @param item\n * @param requestOptions Hub Request Options (including whether we're in portal)\n * @returns\n * @private\n */\nexport var isProxiedCSV = function (item, requestOptions) {\n return !isPortal(requestOptions) &&\n item.access === \"public\" &&\n item.type === \"CSV\" &&\n item.size <= 5000000;\n};\n/**\n * Get the relative URL to use for the item in a hub site\n * @param type\n * @param identifier\n * @param typeKeywords\n * @returns\n * @private\n */\nexport var getHubRelativeUrl = function (type, identifier, typeKeywords) {\n // solution types have their own logic\n var contentUrl = getSolutionUrl(type, identifier, typeKeywords);\n if (!contentUrl) {\n var family = getFamily(type);\n var familiesWithPluralizedRoute = [\n \"app\",\n \"dataset\",\n \"document\",\n \"map\",\n \"template\",\n \"project\",\n ];\n // default to the catchall content route\n var path = \"/content\";\n if (family === \"feedback\") {\n // the exception\n path = \"/feedback/surveys\";\n }\n else if (isPageType(type)) {\n // pages are in the document family,\n // but instead of showing the page's metadata on /documents/about\n // but we render the page on the pages route\n path = \"/pages\";\n }\n else if (familiesWithPluralizedRoute.indexOf(family) > -1) {\n // the rule: route name is plural of family name\n path = \"/\" + family + \"s\";\n }\n contentUrl = path + \"/\" + identifier;\n }\n return contentUrl;\n};\n/**\n * Is this content type a page?\n * @param type\n * @returns\n * @private\n */\nexport var isPageType = function (type) {\n return [\"Hub Page\", \"Site Page\"].includes(type);\n};\nvar getSolutionUrl = function (type, identifier, typeKeywords) {\n var hubUrl;\n if (type === \"Solution\") {\n // NOTE: as per the above spreadsheet,\n // solution types are now in the Template family\n // but we don't send them to the route for initiative templates\n if ((typeKeywords === null || typeKeywords === void 0 ? void 0 : typeKeywords.indexOf(\"Deployed\")) > 0) {\n // deployed solutions go to the generic content route\n hubUrl = \"/content/\" + identifier;\n }\n // TODO: I think this is a bug. The line below should be w/in else\n // in order to avoid overwriting the above for deployed solutions, right?\n // others go to the solution about route\n hubUrl = \"/templates/\" + identifier + \"/about\";\n }\n return hubUrl;\n};\n/**\n * Get the path to a well known metadata value\n * @param identifier identifier for well known metadata value\n * @returns path to be used like get(metadata, path)\n * @private\n */\nexport function getMetadataPath(identifier) {\n // NOTE: i have verified that this will work regardless of the \"Metadata Style\" set on the org\n var metadataPaths = {\n updateFrequency: \"metadata.dataIdInfo.resMaint.maintFreq.MaintFreqCd.@_value\",\n reviseDate: \"metadata.dataIdInfo.idCitation.date.reviseDate\",\n pubDate: \"metadata.dataIdInfo.idCitation.date.pubDate\",\n createDate: \"metadata.dataIdInfo.idCitation.date.createDate\",\n metadataUpdateFrequency: \"metadata.mdMaint.maintFreq.MaintFreqCd.@_value\",\n metadataUpdatedDate: \"metadata.mdDateSt\",\n };\n return metadataPaths[identifier];\n}\n/**\n * Get a well known value from metadata\n * @param metadata\n * @param identifier identifier for well known metadata value\n * @returns\n * @private\n */\nexport function getValueFromMetadata(metadata, identifier) {\n var path = getMetadataPath(identifier);\n return path && getProp(metadata, path);\n}\n/**\n * Date precisions\n */\nexport var DatePrecision;\n(function (DatePrecision) {\n DatePrecision[\"Year\"] = \"year\";\n DatePrecision[\"Month\"] = \"month\";\n DatePrecision[\"Day\"] = \"day\";\n DatePrecision[\"Time\"] = \"time\";\n})(DatePrecision || (DatePrecision = {}));\n/**\n * Parses an ISO8601 date string into a date and a precision.\n * This is because a) if somone entered 2018, we want to respect that and not treat it as the same as 2018-01-01\n * and b) you cannot naively call new Date with an ISO 8601 string that does not include time information\n * For example, when I, here in mountain time, do new Date('2018').getFullYear() I get \"2017\".\n * This is because when you do not provide time or timezone info, UTC is assumed, so new Date('2018') is 2018-01-01T00:00:00 in UTC\n * which is actually 7 hours earlier here in mountain time.\n *\n * @param {string} isoString\n * @return { date: Date, precision: DatePrecision }\n * @private\n */\nexport function parseISODateString(isoString) {\n isoString = \"\" + isoString;\n var date;\n var precision;\n if (/^\\d{4}$/.test(isoString)) {\n // yyyy\n date = new Date(+isoString, 0, 1);\n precision = DatePrecision.Year;\n }\n else if (/^\\d{4}-\\d{1,2}$/.test(isoString)) {\n // yyyy-mm\n var parts = isoString.split(\"-\");\n date = new Date(+parts[0], +parts[1] - 1, 1);\n precision = DatePrecision.Month;\n }\n else if (/^\\d{4}-\\d{1,2}-\\d{1,2}$/.test(isoString)) {\n // yyyy-mm-dd\n var parts = isoString.split(\"-\");\n date = new Date(+parts[0], +parts[1] - 1, +parts[2]);\n precision = DatePrecision.Day;\n }\n else if (!Number.isNaN(Date.parse(isoString))) {\n // any other string parsable to a valid date\n date = new Date(isoString);\n precision = isoString.includes(\"T\")\n ? DatePrecision.Time\n : DatePrecision.Day;\n }\n return date && precision && { date: date, precision: precision };\n}\n// NOTE: IItem has spatialRefernce: ISpatialReference, but\n// the portal REST API returns spatialReference as as string\n// that is always either WKID like \"102100\" or the name of a\n// WKT like \"NAD_1983_HARN_StatePlane_Hawaii_3_FIPS_5103_Feet\".\n// We only coerce WKIDs into a ISpatialReference objects since we\n// can't easily lookup a complete WKT.\n/**\n * Get the spatial reference as an object for an item\n * @param item\n * @returns spatial reference object\n * @private\n */\nexport var getItemSpatialReference = function (item) {\n var spatialReference = item.spatialReference;\n if (!spatialReference || typeof spatialReference === \"object\") {\n // no need to try and transform this into an ISpatialReference\n return spatialReference;\n }\n // otherwise it _should_ be a string (if coming form the REST API)\n // but we force it in case it was set to a number somewhere outside of TS\n var spatialReferenceString = spatialReference + \"\";\n var wkid = parseInt(spatialReferenceString, 10);\n return isNaN(wkid)\n ? // It looks like the portal api returns the name of a WKT, but we'd\n // need to perform a lookup to get the full WKT. Return null for now.\n null\n : //\n { wkid: wkid };\n};\n/**\n * Extracts additional resources from the provided metadata\n * and transforms them into a hub-friendly format.\n *\n * Returns null if no resources are available\n *\n * @param item\n * @param metadata formal metadata\n * @returns\n * @private\n */\nexport var getAdditionalResources = function (item, metadata, requestOptions) {\n var rawResources = extractRawResources(metadata);\n return (rawResources &&\n rawResources.map(function (resource) { return ({\n name: resource.orName,\n url: getAdditionalResourceUrl(resource, item, requestOptions),\n isDataSource: isDataSourceOfItem(resource, item),\n }); }));\n};\n/**\n * @private\n *\n * Extracts additional resources from formal item metadata.\n * If none are available, null is returned.\n *\n * @param metadata the formal item metadata\n * @returns an array of all additional resources, or null\n */\nexport var extractRawResources = function (metadata) {\n var rawResources = [];\n // The property path to additional resources should be fairly simple.\n // In many cases, it's just `metadata.metadata.distInfo.distTranOps.onLineSrc`.\n // However, since `distInfo`, `distTranOps` and `onLineSrc` can be either\n // Objects OR Arrays, we have to do all this looping.\n castToArray(getProp(metadata, \"metadata.distInfo\") || []).forEach(function (distInfo) {\n castToArray(distInfo.distTranOps || []).forEach(function (distTranOps) {\n castToArray(distTranOps.onLineSrc || []).forEach(function (onLineSrc) {\n rawResources.push(onLineSrc);\n });\n });\n });\n return rawResources.length ? rawResources : null;\n};\n/**\n * @private\n *\n * Arrays are returned as-is.\n * Objects are wrapped into a 1 element array.\n *\n * @param objectOrArray\n * @returns the casted array\n */\nvar castToArray = function (objectOrArray) {\n return Array.isArray(objectOrArray) ? objectOrArray : [objectOrArray];\n};\n/**\n * Determines whether a raw additional resource (i.e. extracted out of formal\n * metadata with no transformation) references the underlying service that backs\n * the item.\n *\n * @param resource raw additional resource of an item\n * @param item\n * @returns\n * @private\n */\nexport var isDataSourceOfItem = function (resource, item) {\n var serviceUrl = item.url && parseServiceUrl(item.url);\n return (serviceUrl && resource.linkage && resource.linkage.includes(serviceUrl));\n};\n/**\n * Returns the url for an additional resource.\n *\n * Automatically appends auth token if token is available\n * and resource points to the backing service of an item.\n *\n * @param resource raw additional resource of an item\n * @param item\n * @param requestOptions IHubRequestOptions, including authentication\n * @returns\n * @private\n */\nexport var getAdditionalResourceUrl = function (resource, item, requestOptions) {\n var result = resource.linkage;\n var token = getProp(requestOptions, \"authentication.token\");\n if (token && isDataSourceOfItem(resource, item)) {\n var resUrl = new URL(resource.linkage);\n var params = new URLSearchParams(resUrl.search);\n params.set(\"token\", token);\n resUrl.search = params.toString();\n result = resUrl.toString();\n }\n return result;\n};\n/**\n * @private\n *\n * Contains fallback logic for determining a content's extent.\n *\n * The fallback priority is as follows:\n * 1) item's extent (if valid bbox)\n * 2) extent enrichment from the hub api (if coordinates are valid bbox)\n * 3) layer's extent (if spatial reference is 4326)\n *\n * If none of these conditions are met, undefined is returned.\n *\n * @param item\n * @param layer\n * @param extentEnrichment\n * @returns the correct extent in a bbox format, or undefined\n */\nexport var determineExtent = function (item, extentEnrichment, layer) {\n var itemExtent = isBBox(item.extent) ? item.extent : undefined;\n var extentEnrichmentCoordinates = isBBox(extentEnrichment === null || extentEnrichment === void 0 ? void 0 : extentEnrichment.coordinates)\n ? extentEnrichment.coordinates\n : undefined;\n var layerExtent = getProp(layer, \"extent.spatialReference.wkid\") === 4326\n ? extentToBBox(layer.extent)\n : undefined;\n return itemExtent || extentEnrichmentCoordinates || layerExtent;\n};\n/**\n * @private\n *\n * Extracts the first contact from a given formal item metadata path.\n * This is particularly helpful if the contact path is either an object or an array.\n *\n * Note: the raw contact object must have the following properties:\n * - `rpIndName`: name of the individual\n * - `rpOrgName`: name of the individual's organization\n *\n * @param metadata formal item metadata\n * @param path path to the contact object/array\n * @returns\n */\nexport var extractFirstContact = function (metadata, path) {\n var rawContacts = getProp(metadata, path) || {};\n var _a = Array.isArray(rawContacts)\n ? rawContacts[0]\n : rawContacts, rpIndName = _a.rpIndName, rpOrgName = _a.rpOrgName;\n return { individualName: rpIndName, organizationName: rpOrgName };\n};\n/**\n * Determines the correct orgId for an item.\n * Note: it's undocumented, but the portal API will return orgId for items... sometimes.\n *\n * @param item\n * @param ownerUser item owner's hydrated user object\n */\nexport var getItemOrgId = function (item, ownerUser) {\n return item.orgId || (ownerUser === null || ownerUser === void 0 ? void 0 : ownerUser.orgId);\n};\n/**\n * Calculates the Publisher display info for the given item.\n * Utilizes this fallback pattern:\n * 1) Formal Item Metadata > Resource > Citation > Contact\n * 2) Formal Item Metadata > Resource > Contact\n * 3) Item’s Owner and Org Name\n * 4) Undefined (Item Owner / Org are private and we can't access additional info)\n *\n * @param item\n * @param metadata\n * @param org portal info of the item's organization\n * @param ownerUser the item owner's hydrated user\n * @returns\n */\nexport var getPublisherInfo = function (item, metadata, org, ownerUser) {\n var result = {\n nameSource: PublisherSource.None,\n organizationSource: PublisherSource.None,\n };\n var citationContact = extractFirstContact(metadata, \"metadata.dataIdInfo.idCitation.citRespParty\");\n var resourceContact = extractFirstContact(metadata, \"metadata.dataIdInfo.idPoC\");\n var metadataContact = extractFirstContact(metadata, \"metadata.mdContact\");\n // Determine publisher name properties\n var ownerFullName = getProp(ownerUser, \"fullName\");\n if (citationContact.individualName) {\n result.name = citationContact.individualName;\n result.nameSource = PublisherSource.CitationContact;\n }\n else if (resourceContact.individualName) {\n result.name = resourceContact.individualName;\n result.nameSource = PublisherSource.ResourceContact;\n }\n else if (metadataContact.individualName) {\n result.name = metadataContact.individualName;\n result.nameSource = PublisherSource.MetadataContact;\n }\n else if (ownerFullName) {\n result.name = ownerFullName;\n result.username = ownerUser.username;\n result.nameSource = PublisherSource.ItemOwner;\n }\n // Determine publisher org properties\n var orgName = getProp(org, \"name\");\n if (citationContact.organizationName) {\n result.organization = citationContact.organizationName;\n result.organizationSource = PublisherSource.CitationContact;\n }\n else if (resourceContact.organizationName) {\n result.organization = resourceContact.organizationName;\n result.organizationSource = PublisherSource.ResourceContact;\n }\n else if (metadataContact.organizationName) {\n result.organization = metadataContact.organizationName;\n result.organizationSource = PublisherSource.MetadataContact;\n }\n else if (orgName) {\n result.organization = orgName;\n result.orgId = getItemOrgId(item, ownerUser);\n result.organizationSource = PublisherSource.ItemOwner;\n }\n // We assume the item belongs to external org if no org info is available and the item is private\n result.isExternal =\n result.organizationSource === PublisherSource.None &&\n item.access !== \"public\";\n return result;\n};\n//# sourceMappingURL=_internal.js.map","export var STANDARD_LICENSES = [\n {\n type: \"CC0-1.0\",\n abbr: \"CC0\",\n name: \"Public Domain Dedication\",\n url: \"http://creativecommons.org/publicdomain/zero/1.0\",\n },\n {\n type: \"CC-BY-4.0\",\n abbr: \"CC BY\",\n name: \"Attribution 4.0 International\",\n url: \"http://creativecommons.org/licenses/by/4.0\",\n },\n {\n type: \"CC-BY-3.0\",\n abbr: \"CC BY 3.0\",\n name: \"Attribution 3.0 Unported\",\n url: \"http://creativecommons.org/licenses/by/3.0\",\n },\n {\n type: \"CC-BY-2.5\",\n abbr: \"CC BY 2.5\",\n name: \"Attribution 2.5 Generic\",\n url: \"http://creativecommons.org/licenses/by/2.5\",\n },\n {\n type: \"CC-BY-2.0\",\n abbr: \"CC BY 2.0\",\n name: \"Attribution 2.0 Generic\",\n url: \"http://creativecommons.org/licenses/by/2.0\",\n },\n {\n type: \"CC-BY-1.0\",\n abbr: \"CC BY 1.0\",\n name: \"Attribution 1.0 Generic\",\n url: \"http://creativecommons.org/licenses/by/1.0\",\n },\n {\n type: \"CC-BY-SA-4.0\",\n abbr: \"CC BY-SA\",\n name: \"Attribution-ShareAlike 4.0 International\",\n url: \"http://creativecommons.org/licenses/by-sa/4.0\",\n },\n {\n type: \"CC-BY-SA-3.0\",\n abbr: \"CC BY-SA 3.0\",\n name: \"Attribution-ShareAlike 3.0 Unported\",\n url: \"http://creativecommons.org/licenses/by-sa/3.0\",\n },\n {\n type: \"CC-BY-SA-2.5\",\n abbr: \"CC BY-SA 2.5\",\n name: \"Attribution-ShareAlike 2.5 Generic\",\n url: \"http://creativecommons.org/licenses/by-sa/2.5\",\n },\n {\n type: \"CC-BY-SA-2.0\",\n abbr: \"CC BY-SA 2.0\",\n name: \"Attribution-ShareAlike 2.0 Generic\",\n url: \"http://creativecommons.org/licenses/by-sa/2.0\",\n },\n {\n type: \"CC-BY-SA-1.0\",\n abbr: \"CC BY-SA 1.0\",\n name: \"Attribution-ShareAlike 1.0 Generic\",\n url: \"http://creativecommons.org/licenses/by-sa/1.0\",\n },\n {\n type: \"CC-BY-ND-4.0\",\n abbr: \"CC BY-ND\",\n name: \"Attribution-NoDerivatives 4.0 International\",\n url: \"http://creativecommons.org/licenses/by-nd/4.0\",\n },\n {\n type: \"CC-BY-ND-3.0\",\n abbr: \"CC BY-ND 3.0\",\n name: \"Attribution-NoDerivs 3.0 Unported\",\n url: \"http://creativecommons.org/licenses/by-nd/3.0\",\n },\n {\n type: \"CC-BY-ND-2.5\",\n abbr: \"CC BY-ND 2.5\",\n name: \"Attribution-NoDerivs 2.5 Generic\",\n url: \"http://creativecommons.org/licenses/by-nd/2.5\",\n },\n {\n type: \"CC-BY-ND-2.0\",\n abbr: \"CC BY-ND 2.0\",\n name: \"Attribution-NoDerivs 2.0 Generic\",\n url: \"http://creativecommons.org/licenses/by-nd/2.0\",\n },\n {\n type: \"CC-BY-ND-1.0\",\n abbr: \"CC BY-ND 1.0\",\n name: \"Attribution-NoDerivs 1.0 Generic\",\n url: \"http://creativecommons.org/licenses/by-nd/1.0\",\n },\n {\n type: \"CC-BY-NC-4.0\",\n abbr: \"CC BY-NC\",\n name: \"Attribution-NonCommercial 4.0 International\",\n url: \"https://creativecommons.org/licenses/by-nc/4.0\",\n },\n {\n type: \"CC-BY-NC-3.0\",\n abbr: \"CC BY-NC 3.0\",\n name: \"Attribution-NonCommercial 3.0 Unported\",\n url: \"https://creativecommons.org/licenses/by-nc/3.0\",\n },\n {\n type: \"CC-BY-NC-2.5\",\n abbr: \"CC BY-NC 2.5\",\n name: \"Attribution-NonCommercial 2.5 Generic\",\n url: \"https://creativecommons.org/licenses/by-nc/2.5\",\n },\n {\n type: \"CC-BY-NC-2.0\",\n abbr: \"CC BY-NC 2.0\",\n name: \"Attribution-NonCommercial 2.0 Generic\",\n url: \"https://creativecommons.org/licenses/by-nc/2.0\",\n },\n {\n type: \"CC-BY-NC-1.0\",\n abbr: \"CC BY-NC 1.0\",\n name: \"Attribution-NonCommercial 1.0 Generic\",\n url: \"https://creativecommons.org/licenses/by-nc/1.0\",\n },\n {\n type: \"CC-BY-NC-SA-4.0\",\n abbr: \"CC BY-NC-SA\",\n name: \"Attribution-NonCommercial-ShareAlike 4.0 International\",\n url: \"https://creativecommons.org/licenses/by-nc-sa/4.0\",\n },\n {\n type: \"CC-BY-NC-SA-3.0\",\n abbr: \"CC BY-NC-SA 3.0\",\n name: \"Attribution-NonCommercial-ShareAlike 3.0 Unported\",\n url: \"https://creativecommons.org/licenses/by-nc-sa/3.0\",\n },\n {\n type: \"CC-BY-NC-SA-2.5\",\n abbr: \"CC BY-NC-SA 2.5\",\n name: \"Attribution-NonCommercial-ShareAlike 2.5 Generic\",\n url: \"https://creativecommons.org/licenses/by-nc-sa/2.5\",\n },\n {\n type: \"CC-BY-NC-SA-2.0\",\n abbr: \"CC BY-NC-SA 2.0\",\n name: \"Attribution-NonCommercial-ShareAlike 2.0 Generic\",\n url: \"https://creativecommons.org/licenses/by-nc-sa/2.0\",\n },\n {\n type: \"CC-BY-NC-SA-1.0\",\n abbr: \"CC BY-NC-SA 1.0\",\n name: \"Attribution-NonCommercial-ShareAlike 1.0 Generic\",\n url: \"https://creativecommons.org/licenses/by-nc-sa/1.0\",\n },\n {\n type: \"CC-BY-NC-ND-4.0\",\n abbr: \"CC BY-NC-ND\",\n name: \"Attribution-NonCommercial-NoDerivatives 4.0 International\",\n url: \"https://creativecommons.org/licenses/by-nc-nd/4.0\",\n },\n {\n type: \"CC-BY-NC-ND-3.0\",\n abbr: \"CC BY-NC-ND 3.0\",\n name: \"Attribution-NonCommercial-NoDerivs 3.0 Unported\",\n url: \"https://creativecommons.org/licenses/by-nc-nd/3.0\",\n },\n {\n type: \"CC-BY-NC-ND-2.5\",\n abbr: \"CC BY-NC-ND 2.5\",\n name: \"Attribution-NonCommercial-NoDerivs 2.5 Generic\",\n url: \"https://creativecommons.org/licenses/by-nc-nd/2.5\",\n },\n {\n type: \"CC-BY-NC-ND-2.0\",\n abbr: \"CC BY-NC-ND 2.0\",\n name: \"Attribution-NonCommercial-NoDerivs 2.0 Generic\",\n url: \"https://creativecommons.org/licenses/by-nc-nd/2.0\",\n },\n {\n type: \"CC-BY-NC-ND-1.0\",\n abbr: \"CC BY-NC-ND 1.0\",\n name: \"Attribution-NonCommercial-NoDerivs 1.0 Generic\",\n url: \"https://creativecommons.org/licenses/by-nc-nd/1.0\",\n },\n {\n type: \"PDDL-1.0\",\n abbr: \"PDDL\",\n name: \"ODC Public Domain Dedication and License\",\n url: \"http://opendatacommons.org/licenses/pddl/summary\",\n },\n {\n type: \"ODbL-1.0\",\n abbr: \"ODbL\",\n name: \"ODC Open Database License\",\n url: \"http://opendatacommons.org/licenses/odbl/summary\",\n },\n {\n type: \"ODC-BY-1.0\",\n abbr: \"ODC BY\",\n name: \"ODC Attribution License\",\n url: \"http://opendatacommons.org/licenses/by/summary\",\n },\n];\n/**\n * generates the structured license of an item based on its\n * configured \"licenseInfo\"\n * @param rawLicense an item's raw licenseInfo string\n * @returns {IStructuredLicense}\n */\nexport function getStructuredLicense(rawLicense) {\n var structuredLicense;\n rawLicense = rawLicense || \"\";\n // (1) start by assuming it's either a custom license, or, if there's no\n // raw license, then there's no license at all\n structuredLicense = {\n type: rawLicense ? \"custom\" : \"none\",\n text: rawLicense,\n };\n // (2) Check for standard licenses: If the name, abbr, or url of any standard\n // license is in the raw license text, we assume that is the license.\n var hasStandardLicense = false;\n var matchingStandardLicenses = STANDARD_LICENSES.filter(function (standardLicense) {\n return licenseTextContainsStandardLicenseAttributes(rawLicense, standardLicense);\n });\n if (matchingStandardLicenses.length) {\n hasStandardLicense = true;\n structuredLicense = matchingStandardLicenses.pop();\n }\n // (3) if not a standard license, we check if the raw license is a url or link\n if (!hasStandardLicense) {\n var url = void 0;\n // a. check if the the raw license is simply a url\n if (isParseableAsURL(rawLicense)) {\n url = rawLicense;\n }\n // b. check if the raw license is simply a link (i.e. an anchor tag with an href)\n else if (isSingleAnchorWithHrefAttribute(rawLicense)) {\n var hrefRegex = new RegExp(/href\\s?=\\s?[\"'](.*?)[\"']/);\n var match = rawLicense.match(hrefRegex);\n var href = match[1];\n url = href;\n }\n if (url) {\n structuredLicense.url = url;\n structuredLicense.text = \"\";\n }\n }\n if (!structuredLicense.text)\n delete structuredLicense.text;\n return structuredLicense;\n}\n/**\n * helper function to determine if a raw license is one of the standard licenses.\n * We say it is if the raw license includes the name, url or abbreviation of the\n * standard license\n * @param rawLicense an item's raw licenseInfo string\n * @param standardLicense one of the standard licenses\n * @returns {boolean}\n */\nfunction licenseTextContainsStandardLicenseAttributes(rawLicense, standardLicense) {\n rawLicense = rawLicense.toLowerCase();\n return (rawLicense.includes(standardLicense.name.toLowerCase()) ||\n rawLicense.includes(standardLicense.url.toLowerCase()) ||\n rawLicense.includes(standardLicense.abbr.toLowerCase()));\n}\n/**\n * helper function to determine if an input string can be parsed\n * as a URL with a protocol\n * @param value string to check\n * @returns {boolean}\n */\nfunction isParseableAsURL(value) {\n try {\n var url = new URL(value);\n return !!url.protocol;\n }\n catch (err) {\n // just return fals if the URL couldn't be parsed\n return false;\n }\n}\n/**\n * helper function to determine if the raw license is simply a link, i.e. a single\n * anchor tag with an href attribute: <a href=\"https://google.com\">Click</a> or <a href=\"https://google.com\" />\n * @param rawLicense an item's raw licenseInfo string\n * @returns {boolean}\n */\nfunction isSingleAnchorWithHrefAttribute(rawLicense) {\n var isSingleAnchorTagRegex = new RegExp(/^<a[\\s]+(href\\s?=\\s?[\"'].*?[\"'])+([^>]?)>((?:.(?!\\<\\/a\\>))*.)?<\\/a>$|^<a[\\s]+(href\\s?=\\s?[\"'].*?[\"'])+([^>]?)\\/>/);\n return isSingleAnchorTagRegex.test(rawLicense);\n}\n//# sourceMappingURL=get-structured-license.js.map","import { getItemApiUrl } from \"../urls/get-item-api-url\";\n/**\n * Get the fully qualified URL for an item's thumbnail\n * @param item w/ id, thumbnail, and access\n * @param portalUrlOrObject a portal base or API URL, a portal object, or request options containing either of those\n * @param optionsOrToken options including width and/or token for the current user's session; will only be appended as a query parameter if the item's access is **not** `public`\n * @returns URL to the item's thumbnail, defaults to `https://www.arcgis.com/sharing/rest/content/items/{item.id}/info/{item.thumbnail}`. Returns `null` if the item does not have a thumbnail assigned.\n */\nexport function getItemThumbnailUrl(item, portalUrlOrObject, optionsOrToken) {\n if (!item || !item.thumbnail) {\n // TODO: handle image types by returning the image (item data) itself?\n return null;\n }\n // tslint:disable-next-line prefer-const\n var _a = optionsOrToken || {}, token = _a.token, width = _a.width;\n // TODO: at the next breaking change drop support for passing token as string\n if (!token && typeof optionsOrToken === \"string\") {\n token = optionsOrToken;\n }\n var itemApiUrl = getItemApiUrl(item, portalUrlOrObject, token);\n var _b = itemApiUrl.split(\"?\"), baseUrl = _b[0], search = _b[1];\n var searchParams = new URLSearchParams(search);\n searchParams.delete(\"f\");\n if (width) {\n searchParams.append(\"w\", width + \"\");\n }\n var newSearch = searchParams.toString();\n var url = baseUrl + \"/info/\" + item.thumbnail;\n return newSearch ? url + \"?\" + newSearch : url;\n}\n//# sourceMappingURL=get-item-thumbnail-url.js.map","import { __assign, __spreadArrays } from \"tslib\";\nimport { parseServiceUrl, } from \"@esri/arcgis-rest-feature-layer\";\nimport { getHubApiUrl } from \"../api\";\nimport { isDownloadable } from \"../categories\";\nimport { getStructuredLicense } from \"../items/get-structured-license\";\nimport { getProp } from \"../objects\";\nimport { getItemThumbnailUrl } from \"../resources/get-item-thumbnail-url\";\nimport { getItemHomeUrl } from \"../urls/get-item-home-url\";\nimport { getItemApiUrl } from \"../urls/get-item-api-url\";\nimport { getItemDataUrl } from \"../urls/get-item-data-url\";\nimport { camelize, isNil } from \"../util\";\nimport { includes } from \"../utils\";\nimport { DatePrecision, canUseHubApiForItem, getContentBoundary, getHubRelativeUrl, getItemSpatialReference, getValueFromMetadata, getMetadataPath, isProxiedCSV, parseISODateString, getAdditionalResources, determineExtent, getPublisherInfo, getItemOrgId, } from \"./_internal\";\nimport { getFamily } from \"./get-family\";\n// helper fns - move this to _internal if needed elsewhere\nvar getOnlyQueryLayer = function (layers) {\n var layer = layers && layers.length === 1 ? layers[0] : undefined;\n return layer && layer.capabilities.includes(\"Query\") ? layer : undefined;\n};\nvar shouldUseLayerInfo = function (item, layer, layers, requestOptions) {\n return (!isProxiedCSV(item, requestOptions) &&\n layer &&\n layers &&\n layers.length > 1 &&\n // we use item info instead of layer info for single layer items\n !getLayerIdFromUrl(item.url));\n};\n// this logic adapted from hub-indexer's determineName(), see\n// https://github.com/ArcGIS/hub-indexer/blob/8f4dd6f928124c1f35dd02bc11bd996191ee1160/packages/duke/compose/common.js#L7-L34\nvar getContentName = function (item, layer, layers, requestOptions) {\n return ((shouldUseLayerInfo(item, layer, layers, requestOptions)\n ? layer.name\n : item.title || item.name) || \"\").replace(/_/g, \" \");\n};\n/**\n * The possible values for updateFrequency\n *\n * @enum {string}\n */\nexport var UpdateFrequency;\n(function (UpdateFrequency) {\n UpdateFrequency[\"Continual\"] = \"continual\";\n UpdateFrequency[\"Daily\"] = \"daily\";\n UpdateFrequency[\"Weekly\"] = \"weekly\";\n UpdateFrequency[\"Fortnightly\"] = \"fortnightly\";\n UpdateFrequency[\"Monthly\"] = \"monthly\";\n UpdateFrequency[\"Quarterly\"] = \"quarterly\";\n UpdateFrequency[\"Biannually\"] = \"biannually\";\n UpdateFrequency[\"Annually\"] = \"annually\";\n UpdateFrequency[\"AsNeeded\"] = \"as-needed\";\n UpdateFrequency[\"Irregular\"] = \"irregular\";\n UpdateFrequency[\"NotPlanned\"] = \"not-planned\";\n UpdateFrequency[\"Unknown\"] = \"unknown\";\n UpdateFrequency[\"Semimonthly\"] = \"semimonthly\";\n})(UpdateFrequency || (UpdateFrequency = {}));\nvar getUpdateFrequencyFromMetadata = function (metadata, identifier) {\n var updateFrequencyMap = {\n \"001\": UpdateFrequency.Continual,\n \"002\": UpdateFrequency.Daily,\n \"003\": UpdateFrequency.Weekly,\n \"004\": UpdateFrequency.Fortnightly,\n \"005\": UpdateFrequency.Monthly,\n \"006\": UpdateFrequency.Quarterly,\n \"007\": UpdateFrequency.Biannually,\n \"008\": UpdateFrequency.Annually,\n \"009\": UpdateFrequency.AsNeeded,\n \"010\": UpdateFrequency.Irregular,\n \"011\": UpdateFrequency.NotPlanned,\n \"012\": UpdateFrequency.Unknown,\n \"013\": UpdateFrequency.Semimonthly,\n };\n return updateFrequencyMap[getValueFromMetadata(metadata, identifier || \"updateFrequency\")];\n};\nvar getDateInfoFromMetadata = function (metadata, identifier) {\n var metadataDateInfo = parseISODateString(getValueFromMetadata(metadata, identifier));\n return (metadataDateInfo && __assign(__assign({}, metadataDateInfo), { source: \"metadata.\" + getMetadataPath(identifier) }));\n};\nvar getLastEditDateInfo = function (content, layerOrServer) {\n var source = layerOrServer + \".editingInfo.lastEditDate\";\n var lastEditDate = getProp(content, source);\n return (lastEditDate && {\n date: new Date(lastEditDate),\n source: source,\n // NOTE: this default was taken from _enrichDates\n precision: DatePrecision.Day,\n });\n};\nvar getItemDateInfo = function (item, createdOrModified) {\n return {\n date: new Date(item[createdOrModified]),\n // NOTE: this was set to Day in _enrichDates()\n // but I wonder if it should be Time instead?\n precision: DatePrecision.Day,\n source: \"item.\" + createdOrModified,\n };\n};\nvar getUpdatedDateInfo = function (item, options) {\n return (\n // prefer metadata revise date\n getDateInfoFromMetadata(options.metadata, \"reviseDate\") ||\n // then layer last edit date\n getLastEditDateInfo(options, \"layer\") ||\n // then server last edit date\n getLastEditDateInfo(options, \"server\") ||\n // fall back to item modified date\n getItemDateInfo(item, \"modified\"));\n};\nvar getPublishedDateInfo = function (item, metadata) {\n return (\n // prefer metadata publish date\n getDateInfoFromMetadata(metadata, \"pubDate\") ||\n // then metadata create date\n getDateInfoFromMetadata(metadata, \"createDate\") ||\n // fall back to item created date\n getItemDateInfo(item, \"created\"));\n};\nvar getMetadataUpdatedDateInfo = function (item, metadata) {\n // prefer date from metadata\n return (getDateInfoFromMetadata(metadata, \"metadataUpdatedDate\") ||\n // default to when the item was last modified\n getItemDateInfo(item, \"modified\"));\n};\n// public API\n/**\n * Compute the content type calcite-icon based on the content type\n * @param content type\n * @returns content type icon\n */\nexport var getContentTypeIcon = function (contentType) {\n var _a;\n var type = camelize(contentType);\n var iconMap = {\n appbuilderExtension: \"file\",\n appbuilderWidgetPackage: \"widgets-source\",\n application: \"web\",\n applicationConfiguration: \"app-gear\",\n arcgisProMap: \"desktop\",\n cadDrawing: \"file-cad\",\n cityEngineWebScene: \"urban-model\",\n codeAttachment: \"file-code\",\n codeSample: \"file-code\",\n colorSet: \"palette\",\n contentCategorySet: \"label\",\n csv: \"file-csv\",\n cSV: \"file-csv\",\n cSVCollection: \"file-csv\",\n dashboard: \"dashboard\",\n desktopApplication: \"desktop\",\n documentLink: \"link\",\n excaliburImageryProject: \"file\",\n explorerMap: \"file\",\n exportPackage: \"file\",\n featureCollection: \"data\",\n featureCollectionTemplate: \"file\",\n featureLayer: \"data\",\n featureService: \"collection\",\n fileGeodatabase: \"data\",\n form: \"survey\",\n geocodingService: \"file\",\n geodataService: \"file\",\n geometryService: \"file\",\n geopackage: \"file\",\n geoprocessingService: \"file\",\n globeLayer: \"layers\",\n globeService: \"file\",\n hubInitiative: \"initiative\",\n hubInitiativeTemplate: \"initiative-template\",\n hubPage: \"browser\",\n hubProject: \"projects\",\n hubSiteApplication: \"web\",\n image: \"file-image\",\n imageService: \"data\",\n insightsModel: \"file\",\n insightsPage: \"graph-moving-average\",\n insightsTheme: \"palette\",\n insightsWorkbook: \"graph-moving-average\",\n iWorkPages: \"file-text\",\n iWorkKeynote: \"presentation\",\n iWorkNumbers: \"file-report\",\n kML: \"data\",\n kMLCollection: \"data\",\n layer: \"layers\",\n layerPackage: \"layers\",\n layerTemplate: \"file\",\n locatorPackage: \"file\",\n mapArea: \"file\",\n mapDocument: \"map-contents\",\n mapImageLayer: \"collection\",\n mapPackage: \"file\",\n mapService: \"collection\",\n microsoftExcel: \"file-report\",\n microsoftPowerpoint: \"presentation\",\n microsoftWord: \"file-text\",\n mission: \"file\",\n mobileMapPackage: \"map-contents\",\n nativeApplication: \"mobile\",\n nativeApplicationInstaller: \"file\",\n nativeApplicationTemplate: \"file\",\n mobileApplication: \"mobile\",\n networkAnalysisService: \"file\",\n notebook: \"code\",\n orientedImageryCatalog: \"file\",\n orthoMappingProject: \"file\",\n orthoMappingTemplate: \"file\",\n pDF: \"file-pdf\",\n quickCaptureProject: \"mobile\",\n rasterFunctionTemplate: \"file\",\n rasterLayer: \"map\",\n realTimeAnalytic: \"file\",\n relationalDatabaseConnection: \"file\",\n reportTemplate: \"file\",\n sceneLayer: \"data\",\n sceneService: \"urban-model\",\n serviceDefinition: \"file\",\n shapefile: \"data\",\n solution: \"puzzle-piece\",\n sqliteGeodatabase: \"file\",\n statisticalDataCollection: \"file\",\n storymap: \"tour\",\n storyMap: \"tour\",\n storymapTheme: \"palette\",\n symbolSet: \"file\",\n table: \"table\",\n urbanModel: \"urban-model\",\n vectorTilePackage: \"file-shape\",\n vectorTileService: \"map\",\n visioDocument: \"conditional-rules\",\n webExperience: \"apps\",\n webMap: \"map\",\n webMappingApplication: \"apps\",\n webScene: \"urban-model\",\n wfs: \"map\",\n wFS: \"map\",\n wMS: \"map\",\n wMTS: \"map\",\n workflowManagerService: \"file\",\n workforceProject: \"list-check\",\n };\n return (_a = iconMap[type]) !== null && _a !== void 0 ? _a : \"file\";\n};\n/**\n * get portal URLs (home, API, data, and thumbnail) for an item\n *\n * @param item Item\n * @param requestOptions Request options\n * @returns a hash with the portal URLs\n * @export\n */\nexport var getPortalUrls = function (item, requestOptions) {\n var authentication = requestOptions.authentication;\n var token = authentication && authentication.token;\n // add properties that depend on portal\n var portalHome = getItemHomeUrl(item.id, requestOptions);\n // the URL of the item's Portal API end point\n var portalApi = getItemApiUrl(item, requestOptions, token);\n // the URL of the item's data API end point\n var portalData = getItemDataUrl(item, requestOptions, token);\n // the full URL of the thumbnail\n var thumbnail = getItemThumbnailUrl(item, requestOptions, {\n token: token,\n });\n return {\n portalHome: portalHome,\n portalApi: portalApi,\n portalData: portalData,\n thumbnail: thumbnail,\n };\n};\n/**\n * If an item is a proxied csv, returns the url for the proxying feature layer.\n * If the item is not a proxied csv, returns undefined.\n *\n * @param item\n * @param requestOptions Hub Request Options (including whether we're in portal)\n * @returns\n */\nexport var getProxyUrl = function (item, requestOptions) {\n var result;\n if (isProxiedCSV(item, requestOptions)) {\n // Sometimes hubApiUrl includes /api/v3, sometimes it doesn't\n var baseUrl = getHubApiUrl(requestOptions).replace(\"/api/v3\", \"\");\n result = baseUrl + \"/datasets/\" + item.id + \"_0/FeatureServer/0\";\n }\n return result;\n};\n/**\n * parse layer id from a service URL\n * @param {string} url\n * @returns {string} layer id\n */\nexport var getLayerIdFromUrl = function (url) {\n var endsWithNumberSegmentRegEx = /\\/\\d+$/;\n var matched = url && url.match(endsWithNumberSegmentRegEx);\n return matched && matched[0].slice(1);\n};\n/**\n * Case-insensitive check if the type is \"Feature Service\"\n * @param {string} type - item's type\n * @returns {boolean}\n */\nexport var isFeatureService = function (type) {\n return type && type.toLowerCase() === \"feature service\";\n};\n/**\n * ```js\n * import { normalizeItemType } from \"@esri/hub-common\";\n * //\n * normalizeItemType(item)\n * > [ 'Hub Site Application' ]\n * ```\n * @param item Item object.\n * @returns type of the input item.\n *\n */\nexport function normalizeItemType(item) {\n if (item === void 0) { item = {}; }\n var ret = item.type;\n var typeKeywords = item.typeKeywords || [];\n if (item.type === \"Site Application\" ||\n (item.type === \"Web Mapping Application\" &&\n includes(typeKeywords, \"hubSite\"))) {\n ret = \"Hub Site Application\";\n }\n if (item.type === \"Site Page\" ||\n (item.type === \"Web Mapping Application\" &&\n includes(typeKeywords, \"hubPage\"))) {\n ret = \"Hub Page\";\n }\n if (item.type === \"Hub Initiative\" &&\n includes(typeKeywords, \"hubInitiativeTemplate\")) {\n ret = \"Hub Initiative Template\";\n }\n if (item.type === \"Web Mapping Application\" &&\n includes(typeKeywords, \"hubSolutionTemplate\")) {\n ret = \"Solution\";\n }\n return ret;\n}\n/**\n * return the layerId if we can tell that item is a single layer service\n * @param {*} item from AGO\n * @returns {string} layer id\n */\nexport var getItemLayerId = function (item) {\n // try to parse it from the URL, but failing that we check for\n // the Singlelayer typeKeyword, which I think is set when you create the item in AGO\n // but have not verified that, nor that we should alway return '0' in that case\n return (getLayerIdFromUrl(item.url) ||\n (isFeatureService(item.type) &&\n item.typeKeywords &&\n includes(item.typeKeywords, \"Singlelayer\") &&\n \"0\"));\n};\n/**\n * given an item, get the id to use w/ the Hub API\n * @param item\n * @returns Hub API id (hubId)\n */\nexport var getItemHubId = function (item) {\n if (item.access !== \"public\") {\n // the hub only indexes public items\n return;\n }\n var id = item.id;\n var layerId = getItemLayerId(item);\n return layerId ? id + \"_\" + layerId : id;\n};\n/**\n * Splits item category strings at slashes and discards the \"Categories\" keyword\n *\n * ```\n * [\"/Categories/Boundaries\", \"/Categories/Planning and cadastre/Property records\", \"/Categories/Structure\"]\n * ```\n * Should end up being\n * ```\n * [\"Boundaries\", \"Planning and cadastre\", \"Property records\", \"Structure\"]\n * ```\n *\n * @param categories - an array of strings\n * @private\n */\nexport function parseItemCategories(categories) {\n if (!categories)\n return categories;\n var exclude = [\"categories\", \"\"];\n var parsed = categories.map(function (cat) { return cat.split(\"/\"); });\n var flattened = parsed.reduce(function (acc, arr, _) { return __spreadArrays(acc, arr); }, []);\n return flattened.filter(function (cat) { return !includes(exclude, cat.toLowerCase()); });\n}\n/**\n * get the layer object for\n * - an item that refers to a specific layer of a service\n * - a multi-layer services (if a layer id was passed in)\n * - a single layer feature service\n * @param item\n * @param layers the layers and tables returned from the service\n * @param layerId a specific id\n * @returns layer definition\n * @private\n */\nexport var getItemLayer = function (item, layers, layerId) {\n // if item refers to a layer we always want to use that layer id\n // otherwise use the layer id that was passed in (if any)\n var _layerIdFromUrl = getLayerIdFromUrl(item.url);\n var _layerId = _layerIdFromUrl ? parseInt(_layerIdFromUrl, 10) : layerId;\n return (layers &&\n (!isNil(_layerId)\n ? // find the explicitly set layer id\n layers.find(function (_layer) { return _layer.id === _layerId; })\n : // for feature servers with a single layer always show the layer\n isFeatureService(item.type) && getOnlyQueryLayer(layers)));\n};\n/**\n * determine if a layer is a layer view\n * @param layer\n * @returns\n * @private\n */\nexport var isLayerView = function (layer) {\n return layer.isView;\n};\nvar determineHubId = function (item, layer, requestOptions) {\n // Proxied CSVs are one offs in that we don't index the proxied layer,\n // so we cannot append _0. Return item id instead.\n if (isProxiedCSV(item, requestOptions)) {\n return item.id;\n }\n return canUseHubApiForItem(item, requestOptions)\n ? layer\n ? item.id + \"_\" + layer.id\n : getItemHubId(item)\n : undefined;\n};\n/**\n * Compose a new content object out of an item, enrichments, and context\n * @param item\n * @param options any enrichments, current state (selected layerId), or context (requestOptions)\n * @returns new content object\n */\nexport var composeContent = function (item, options) {\n // extract enrichments and context out of the options\n var _a = options || {}, slug = _a.slug, requestOptions = _a.requestOptions, data = _a.data, metadata = _a.metadata, groupIds = _a.groupIds, ownerUser = _a.ownerUser, org = _a.org, errors = _a.errors, server = _a.server, layers = _a.layers, recordCount = _a.recordCount, boundary = _a.boundary, extent = _a.extent, searchDescription = _a.searchDescription, statistics = _a.statistics;\n // set common variables that we will use in the derived properties below\n var layer = getItemLayer(item, layers, options === null || options === void 0 ? void 0 : options.layerId);\n // NOTE: we only set hubId for public items in online\n var hubId = determineHubId(item, layer, requestOptions);\n var identifier = slug || hubId || item.id;\n // whether or not we should show layer info for name, description, etc\n var name = getContentName(item, layer, layers, requestOptions);\n var _layerDescription = shouldUseLayerInfo(item, layer, layers, requestOptions) &&\n layer.description;\n // so much depends on type\n var type = layer\n ? // use layer type (Feature Layer, Table, etc) for layer content\n layer.type\n : // otherwise use the normalized item type\n normalizeItemType(item);\n // all the urls\n var urls = __assign({ relative: getHubRelativeUrl(type, identifier, item.typeKeywords) }, (requestOptions && getPortalUrls(item, requestOptions)));\n var _proxyUrl = getProxyUrl(item, requestOptions);\n // NOTE: I'd rather not compute these date values up front,\n // but they are used by several getters below, so we do it here only once\n var _updatedDateInfo = getUpdatedDateInfo(item, {\n metadata: metadata,\n layer: layer,\n server: server,\n });\n var _publishedDateInfo = getPublishedDateInfo(item, metadata);\n var _metadataUpdatedDateInfo = getMetadataUpdatedDateInfo(item, metadata);\n // return all of the above composed into a content object\n return __assign(__assign({ \n // a reference to underlying item\n item: item }, item), { \n // item enrichments\n slug: slug,\n data: data,\n metadata: metadata,\n groupIds: groupIds,\n ownerUser: ownerUser,\n org: org, errors: errors || [], \n // server enrichments\n server: server,\n layers: layers,\n recordCount: recordCount,\n // enrichments from the Hub API (boundary is below)\n statistics: statistics,\n // derived properties\n // NOTE: in the getters below you can **not** use `this`\n // these are not meant to provide live updating computed props\n // their purpose is to avoid computing all these values above\n // especially where we want to defer computation of less used props\n hubId: hubId,\n identifier: identifier, get isProxied() {\n return !!_proxyUrl;\n }, layer: layer,\n name: name, get title() {\n return name;\n },\n get description() {\n return _layerDescription || item.description;\n }, type: type, get family() {\n return getFamily(type);\n }, get url() {\n return _proxyUrl\n ? _proxyUrl\n : layer\n ? parseServiceUrl(item.url) + \"/\" + layer.id\n : item.url;\n }, get categories() {\n return parseItemCategories(item.categories);\n },\n get actionLinks() {\n return item.properties && item.properties.links;\n },\n get hubActions() {\n return item.properties && item.properties.actions;\n },\n get isDownloadable() {\n return isDownloadable(item);\n },\n get structuredLicense() {\n return getStructuredLicense(item.licenseInfo);\n },\n get permissions() {\n return {\n visibility: item.access,\n control: item.itemControl || \"view\",\n };\n },\n get extent() {\n return determineExtent(item, extent, layer);\n }, \n // would require us to do client-side projection of server/layer extent\n get boundary() {\n // NOTE: the boundary from the Hub API will be undefined if item.properties.boundary === 'none'\n return (boundary === null || boundary === void 0 ? void 0 : boundary.provenance) === \"automatic\"\n ? boundary\n : getContentBoundary(item);\n }, get summary() {\n return (searchDescription ||\n // TODO: this should use the logic for the Hub API's searchDescription\n // see: https://github.com/ArcGIS/hub-indexer/blob/b352cfded8221a967ac80447879d493db6476d7a/packages/duke/compose/dataset.js#L238-L250\n item.snippet ||\n item.description);\n }, urls: urls, get portalHomeUrl() {\n return urls.portalHome;\n },\n get portalDataUrl() {\n return urls.portalData;\n },\n get portalApiUrl() {\n return urls.portalApi;\n },\n get thumbnailUrl() {\n return urls.thumbnail;\n },\n /** The date the item was created */\n get createdDate() {\n return new Date(item.created);\n }, createdDateSource: \"item.created\", get updatedDate() {\n return _updatedDateInfo.date;\n },\n get updatedDateSource() {\n return _updatedDateInfo.source;\n },\n get updatedDatePrecision() {\n return _updatedDateInfo.precision;\n },\n get modified() {\n return _updatedDateInfo.date.getTime();\n },\n get publishedDate() {\n return _publishedDateInfo.date;\n },\n get publishedDateSource() {\n return _publishedDateInfo.source;\n },\n get publishedDatePrecision() {\n return _publishedDateInfo.precision;\n },\n get metadataUpdatedDate() {\n return _metadataUpdatedDateInfo.date;\n },\n get metadataUpdatedDateSource() {\n return _metadataUpdatedDateInfo.source;\n },\n get metadataUpdatedDatePrecision() {\n return _metadataUpdatedDateInfo.precision;\n },\n get updateFrequency() {\n return getUpdateFrequencyFromMetadata(metadata);\n },\n get metadataUpdateFrequency() {\n return getUpdateFrequencyFromMetadata(metadata, \"metadataUpdateFrequency\");\n },\n get publisher() {\n return getPublisherInfo(item, metadata, org, ownerUser);\n },\n // TODO: is metrics in use?\n get metrics() {\n return item.properties && item.properties.metrics;\n }, get spatialReference() {\n var _a;\n return ((_a = layer === null || layer === void 0 ? void 0 : layer.extent) === null || _a === void 0 ? void 0 : _a.spatialReference) || getItemSpatialReference(item);\n },\n get viewDefinition() {\n // if this is a layer view and we have the item data\n // find the definition that corresponds to the current layer\n var dataLayer = layer &&\n isLayerView(layer) &&\n data &&\n Array.isArray(data.layers) &&\n data.layers.find(function (_layer) { return _layer.id === layer.id; });\n return dataLayer ? dataLayer.layerDefinition : undefined;\n }, get orgId() {\n return org ? org.id : getItemOrgId(item, ownerUser);\n },\n get contentTypeIcon() {\n /* Note: only returns calcite-icons */\n return getContentTypeIcon(type);\n },\n get additionalResources() {\n return getAdditionalResources(item, metadata);\n } });\n};\n//# sourceMappingURL=compose.js.map","import { isGuid } from \"../utils\";\n//////////////////////\n// Slug Helpers\n//////////////////////\n/**\n * Parse item ID and layer ID (if any) from dataset record ID\n *\n * @param datasetId Hub API dataset record id ({itemId}_{layerId} or {itemId})\n * @returns A hash with the `itemId` and `layerId` (if any)\n */\nexport function parseDatasetId(datasetId) {\n var _a = datasetId ? datasetId.split(\"_\") : [], itemId = _a[0], layerId = _a[1];\n return { itemId: itemId, layerId: layerId };\n}\n/**\n * Determine if an identifier is a Hub API slug\n *\n * @param identifier Hub API slug ({orgKey}::{title-as-slug} or {title-as-slug})\n * or record id ((itemId}_{layerId} or {itemId})\n * @returns true if the identifier is valid _and_ is **not** a record id\n */\nexport function isSlug(identifier) {\n var itemId = parseDatasetId(identifier).itemId;\n if (!itemId || isGuid(itemId)) {\n // it's either invalid, or an item id, or a dataset id\n return false;\n }\n // otherwise assume it's a slug\n return true;\n}\n/**\n * Add a context (prefix) to slug if it doesn't already have one\n *\n * @param slug Hub API slug (with or without context)\n * @param context usually a portal's orgKey\n * @returns slug with context ({context}::{slug})\n */\nexport function addContextToSlug(slug, context) {\n // the slug has an org key already e.g. dc::crime-incidents\n if (/.+::.+/.test(slug)) {\n return slug;\n // the slug belongs to the org that owns the site e.g. crime-incidents\n }\n else {\n return context + \"::\" + slug;\n }\n}\n/**\n * Remove context (prefix) from a slug\n *\n * @param slug Hub API slug with context\n * @param context usually a portal's orgKey\n * @returns slug without context\n */\nexport function removeContextFromSlug(slug, context) {\n if (context && slug.match(\"^\" + context + \"::\")) {\n return slug.split(context + \"::\")[1];\n }\n else {\n return slug;\n }\n}\n//# sourceMappingURL=slugs.js.map","/* Copyright (c) 2018-2020 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { __spreadArrays } from \"tslib\";\nimport { cloneObject, createId } from \"./util\";\nimport { getWithDefault } from \"./objects/get-with-default\";\n/**\n * Allows an application to track a series of operations, storing information\n * about the arguments passes in and the results returned\n *\n * ```js\n * import { OperationStack } from '@esri/solution-common';\n *\n * const stack = new OperationStack();\n *\n * // start an operation by type\n * const id = stack.start('getItem');\n * //.. work happens...\n * stack.finish(id);\n *\n * // start an operation with an Operation object\n * stack.start({\n * id: 'createItem_1',\n * type: 'createItem',\n * inputs: {\n * item: {...truncated...},\n * portal: 'https://www.arcgis.com',\n * username: 'jsmith'\n * },\n * });\n * // make the call\n * stack.finish('createItem_1', {newItemId: '00cf213'});\n *\n * // later you can get that information back out of the stack\n * const prevOp = stack.getOperation('createItem_1);\n *\n * // and if you need to roll back you can use the\n * // .cleanup and .output properties to help orchestrate\n *\n * ```\n *\n *\n * Can be used to implement \"atomic\" operations in an environment that does not\n * have this as a core feature\n */\nvar OperationStack = /** @class */ (function () {\n /**\n * Creates an instance of OperationStack.\n * @memberof OperationStack\n */\n function OperationStack() {\n this.operations = [];\n }\n /**\n * Start an Operation\n *\n * ```js\n * const stack = new OperationStack();\n * stack.startOperation({\n * id: 'get-bc3',\n * type: 'getItem',\n * cleanup: 'n/a',\n * inputs: {\n * id: 'bc3',\n * owner: 'vader'\n * }\n * });\n * // do work\n * stack.finish('get-bc3');\n * ```\n *\n *\n * @param {IOperation} operation\n * @memberof OperationStack\n */\n OperationStack.prototype.startOperation = function (operation) {\n var op = cloneObject(operation);\n op.startedAt = new Date().getTime();\n op.state = \"working\";\n this.operations.push(op);\n };\n /**\n * Start an operation without requiring a full operation\n *\n * ```js\n * const opId = stack.start('getItems');\n * //...work happens\n * stack.finish(opId);\n * ```\n *\n * @param {string} type Type of the operation. i.e. getItem\n * @param {Record<string, unknown>} [params] optionally pass in id, inputs, cleanup\n * @returns {string} Identifier of the new stack entry\n * @memberof OperationStack\n */\n OperationStack.prototype.start = function (type, params) {\n var op = {\n type: type,\n id: getWithDefault(params, \"id\", createId(type + \"_\")),\n inputs: getWithDefault(params, \"inputs\", {}),\n cleanup: getWithDefault(params, \"cleanup\", \"n/a\"),\n startedAt: new Date().getTime(),\n state: \"working\"\n };\n this.operations.push(op);\n return op.id;\n };\n /**\n * Returns a reference to an Operation\n *\n * @param {string} id Unique Identifier\n * @returns {Operation}\n * @memberof OperationStack\n */\n OperationStack.prototype.getOperation = function (id) {\n return this.operations.find(function (o) { return o.id === id; });\n };\n /**\n * Returns reference to the operations array\n *\n * @returns {Operation[]}\n * @memberof OperationStack\n */\n OperationStack.prototype.getOperations = function () {\n return this.operations;\n };\n /**\n * Inform the stack that an operation has finished.\n *\n * This will append in a duration property, and mark\n * the state as 'completed'.\n *\n * @param {string} id Unique identifier of the Operation\n * @param {Record<string, unknown>} [options] outputs\n * @memberof OperationStack\n */\n OperationStack.prototype.finish = function (id, options) {\n var op = this.getOperation(id);\n if (op) {\n op.duration = new Date().getTime() - op.startedAt;\n op.state = \"completed\";\n if (options) {\n op.output = cloneObject(options);\n }\n }\n else {\n throw new Error(\"No operation with id \" + id + \" present in stack\");\n }\n };\n /**\n * Merge a serialized operation stack into\n * a stack instance\n *\n * ```js\n * import { OperationStack } from '@esri/solution-common';\n * function someFunction() {\n * const stack = new OperationStack();\n * stack.start('getItem', {id: 'get-bc3'});\n * // do some work...\n * stack.finish('get-bc3');\n *\n * const itm = {title: 'Fake Item', type: 'Web Map'};\n * // create an entry for the function we are about to call...\n * stack.start('createItem', {id: 'createItem_01', inputs: {item: itm}});\n * // call a function that does work, and has it's own stack\n * // and returns a serialized version as part of it's results\n * return createItem(itm)\n * .then((result) => {\n * // tell the stack the last operation finished...\n * stack.finish('createItem_01');\n * // merge in the stack from the function we called\n * stack.merge(result.stack);\n * // > stack.getCompleted().length === 3\n * });\n * }\n *\n * function createItem (itm) {\n * const otherStack = new OperationStack();\n * const id = otherStack.start('createItem');\n * // make calls to create item etc\n * otherStack.finish(id, {itemId: newItem.id});\n * otherStack.start('protectItem', {id: 'protect-00c'});\n * // make call to protect item...\n * otherStack.finish('protect-00c');\n * // all done... return a result with a stack\n * return Promise.resolve({\n * success:true,\n * stack: otherStack.serialize()\n * });\n * }\n * ```\n *\n * Typically used to create a comprehensive list of operations\n * when a function returns a `SerializedOperationStack` as part of\n * it's response\n *\n *\n * @param {ISerializedOperationStack} stack\n * @memberof OperationStack\n */\n OperationStack.prototype.merge = function (stack) {\n this.operations = __spreadArrays(this.operations, stack.operations);\n };\n /**\n * Get a list of the completed operations\n *\n * @returns {IOperation[]}\n * @memberof OperationStack\n */\n OperationStack.prototype.getCompleted = function () {\n return cloneObject(this.operations.filter(function (e) { return e.state === \"completed\"; }));\n };\n /**\n * Return an array of working operations\n *\n * @returns {IOperation[]}\n * @memberof OperationStack\n */\n OperationStack.prototype.getWorking = function () {\n return cloneObject(this.operations.filter(function (e) { return e.state === \"working\"; }));\n };\n /**\n * Serialize the completed operations into a set of\n * human readable messages, sorted by the startedAt timestamp\n *\n *\n * @returns {string}\n * @memberof IOperationStack\n */\n OperationStack.prototype.toString = function () {\n // sort the operations by StartedAt\n var allOps = this.operations.sort(function (a, b) {\n if (a.startedAt < b.startedAt) {\n return -1;\n }\n if (b.startedAt < a.startedAt) {\n return 1;\n }\n return 0;\n });\n return allOps.map(getOperationMessage).join(\"\\n\");\n };\n /**\n * Serialize the stack into simple objects\n *\n * @returns {ISerializedOperationStack}\n * @memberof OperationStack\n */\n OperationStack.prototype.serialize = function () {\n return {\n operations: cloneObject(this.getOperations())\n };\n };\n return OperationStack;\n}());\nexport default OperationStack;\nfunction getOperationMessage(op) {\n var msg = op.startedAt + \" : Operation \" + op.id + \" started with inputs \" + JSON.stringify(op.inputs) + \" but was not completed\";\n if (op.state === \"completed\") {\n msg = op.startedAt + \" : Operation \" + op.id + \" took \" + op.duration + \" ms with inputs \" + JSON.stringify(op.inputs) + \" and output \" + (op.output ? JSON.stringify(op.output) : \"n/a\");\n }\n return msg;\n}\n//# sourceMappingURL=OperationStack.js.map","'use strict';\n\nconst nameStartChar = ':A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\nconst nameChar = nameStartChar + '\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040';\nconst nameRegexp = '[' + nameStartChar + '][' + nameChar + ']*'\nconst regexName = new RegExp('^' + nameRegexp + '$');\n\nconst getAllMatches = function(string, regex) {\n const matches = [];\n let match = regex.exec(string);\n while (match) {\n const allmatches = [];\n allmatches.startIndex = regex.lastIndex - match[0].length;\n const len = match.length;\n for (let index = 0; index < len; index++) {\n allmatches.push(match[index]);\n }\n matches.push(allmatches);\n match = regex.exec(string);\n }\n return matches;\n};\n\nconst isName = function(string) {\n const match = regexName.exec(string);\n return !(match === null || typeof match === 'undefined');\n};\n\nexports.isExist = function(v) {\n return typeof v !== 'undefined';\n};\n\nexports.isEmptyObject = function(obj) {\n return Object.keys(obj).length === 0;\n};\n\n/**\n * Copy all the properties of a into b.\n * @param {*} target\n * @param {*} a\n */\nexports.merge = function(target, a, arrayMode) {\n if (a) {\n const keys = Object.keys(a); // will return an array of own properties\n const len = keys.length; //don't make it inline\n for (let i = 0; i < len; i++) {\n if (arrayMode === 'strict') {\n target[keys[i]] = [ a[keys[i]] ];\n } else {\n target[keys[i]] = a[keys[i]];\n }\n }\n }\n};\n/* exports.merge =function (b,a){\n return Object.assign(b,a);\n} */\n\nexports.getValue = function(v) {\n if (exports.isExist(v)) {\n return v;\n } else {\n return '';\n }\n};\n\n// const fakeCall = function(a) {return a;};\n// const fakeCallNoReturn = function() {};\n\nexports.buildOptions = function(options, defaultOptions, props) {\n let newOptions = {};\n if (!options) {\n return defaultOptions; //if there are not options\n }\n\n for (let i = 0; i < props.length; i++) {\n if (options[props[i]] !== undefined) {\n newOptions[props[i]] = options[props[i]];\n } else {\n newOptions[props[i]] = defaultOptions[props[i]];\n }\n }\n return newOptions;\n};\n\n/**\n * Check if a tag name should be treated as array\n *\n * @param tagName the node tagname\n * @param arrayMode the array mode option\n * @param parentTagName the parent tag name\n * @returns {boolean} true if node should be parsed as array\n */\nexports.isTagNameInArrayMode = function (tagName, arrayMode, parentTagName) {\n if (arrayMode === false) {\n return false;\n } else if (arrayMode instanceof RegExp) {\n return arrayMode.test(tagName);\n } else if (typeof arrayMode === 'function') {\n return !!arrayMode(tagName, parentTagName);\n }\n\n return arrayMode === \"strict\";\n}\n\nexports.isName = isName;\nexports.getAllMatches = getAllMatches;\nexports.nameRegexp = nameRegexp;\n","'use strict';\n\nconst util = require('./util');\n\nconst convertToJson = function(node, options, parentTagName) {\n const jObj = {};\n\n // when no child node or attr is present\n if (!options.alwaysCreateTextNode && (!node.child || util.isEmptyObject(node.child)) && (!node.attrsMap || util.isEmptyObject(node.attrsMap))) {\n return util.isExist(node.val) ? node.val : '';\n }\n\n // otherwise create a textnode if node has some text\n if (util.isExist(node.val) && !(typeof node.val === 'string' && (node.val === '' || node.val === options.cdataPositionChar))) {\n const asArray = util.isTagNameInArrayMode(node.tagname, options.arrayMode, parentTagName)\n jObj[options.textNodeName] = asArray ? [node.val] : node.val;\n }\n\n util.merge(jObj, node.attrsMap, options.arrayMode);\n\n const keys = Object.keys(node.child);\n for (let index = 0; index < keys.length; index++) {\n const tagName = keys[index];\n if (node.child[tagName] && node.child[tagName].length > 1) {\n jObj[tagName] = [];\n for (let tag in node.child[tagName]) {\n if (node.child[tagName].hasOwnProperty(tag)) {\n jObj[tagName].push(convertToJson(node.child[tagName][tag], options, tagName));\n }\n }\n } else {\n const result = convertToJson(node.child[tagName][0], options, tagName);\n const asArray = (options.arrayMode === true && typeof result === 'object') || util.isTagNameInArrayMode(tagName, options.arrayMode, parentTagName);\n jObj[tagName] = asArray ? [result] : result;\n }\n }\n\n //add value\n return jObj;\n};\n\nexports.convertToJson = convertToJson;\n","'use strict';\n\nmodule.exports = function(tagname, parent, val) {\n this.tagname = tagname;\n this.parent = parent;\n this.child = {}; //child tags\n this.attrsMap = {}; //attributes map\n this.val = val; //text only\n this.addChild = function(child) {\n if (Array.isArray(this.child[child.tagname])) {\n //already presents\n this.child[child.tagname].push(child);\n } else {\n this.child[child.tagname] = [child];\n }\n };\n};\n","const hexRegex = /^[-+]?0x[a-fA-F0-9]+$/;\nconst numRegex = /^([\\-\\+])?(0*)(\\.[0-9]+([eE]\\-?[0-9]+)?|[0-9]+(\\.[0-9]+([eE]\\-?[0-9]+)?)?)$/;\n// const octRegex = /0x[a-z0-9]+/;\n// const binRegex = /0x[a-z0-9]+/;\n\n\n//polyfill\nif (!Number.parseInt && window.parseInt) {\n Number.parseInt = window.parseInt;\n}\nif (!Number.parseFloat && window.parseFloat) {\n Number.parseFloat = window.parseFloat;\n}\n\n \nconst consider = {\n hex : true,\n leadingZeros: true,\n decimalPoint: \"\\.\",\n eNotation: true\n //skipLike: /regex/\n};\n\nfunction toNumber(str, options = {}){\n // const options = Object.assign({}, consider);\n // if(opt.leadingZeros === false){\n // options.leadingZeros = false;\n // }else if(opt.hex === false){\n // options.hex = false;\n // }\n\n options = Object.assign({}, consider, options );\n if(!str || typeof str !== \"string\" ) return str;\n \n let trimmedStr = str.trim();\n // if(trimmedStr === \"0.0\") return 0;\n // else if(trimmedStr === \"+0.0\") return 0;\n // else if(trimmedStr === \"-0.0\") return -0;\n\n if(options.skipLike !== undefined && options.skipLike.test(trimmedStr)) return str;\n else if (options.hex && hexRegex.test(trimmedStr)) {\n return Number.parseInt(trimmedStr, 16);\n // } else if (options.parseOct && octRegex.test(str)) {\n // return Number.parseInt(val, 8);\n // }else if (options.parseBin && binRegex.test(str)) {\n // return Number.parseInt(val, 2);\n }else{\n //separate negative sign, leading zeros, and rest number\n const match = numRegex.exec(trimmedStr);\n if(match){\n const sign = match[1];\n const leadingZeros = match[2];\n let numTrimmedByZeros = trimZeros(match[3]); //complete num without leading zeros\n //trim ending zeros for floating number\n \n const eNotation = match[4] || match[6];\n if(!options.leadingZeros && leadingZeros.length > 0 && sign && trimmedStr[2] !== \".\") return str; //-0123\n else if(!options.leadingZeros && leadingZeros.length > 0 && !sign && trimmedStr[1] !== \".\") return str; //0123\n else{//no leading zeros or leading zeros are allowed\n const num = Number(trimmedStr);\n const numStr = \"\" + num;\n if(numStr.search(/[eE]/) !== -1){ //given number is long and parsed to eNotation\n if(options.eNotation) return num;\n else return str;\n }else if(eNotation){ //given number has enotation\n if(options.eNotation) return num;\n else return str;\n }else if(trimmedStr.indexOf(\".\") !== -1){ //floating number\n // const decimalPart = match[5].substr(1);\n // const intPart = trimmedStr.substr(0,trimmedStr.indexOf(\".\"));\n\n \n // const p = numStr.indexOf(\".\");\n // const givenIntPart = numStr.substr(0,p);\n // const givenDecPart = numStr.substr(p+1);\n if(numStr === \"0\" && (numTrimmedByZeros === \"\") ) return num; //0.0\n else if(numStr === numTrimmedByZeros) return num; //0.456. 0.79000\n else if( sign && numStr === \"-\"+numTrimmedByZeros) return num;\n else return str;\n }\n \n if(leadingZeros){\n // if(numTrimmedByZeros === numStr){\n // if(options.leadingZeros) return num;\n // else return str;\n // }else return str;\n if(numTrimmedByZeros === numStr) return num;\n else if(sign+numTrimmedByZeros === numStr) return num;\n else return str;\n }\n\n if(trimmedStr === numStr) return num;\n else if(trimmedStr === sign+numStr) return num;\n // else{\n // //number with +/- sign\n // trimmedStr.test(/[-+][0-9]);\n\n // }\n return str;\n }\n // else if(!eNotation && trimmedStr && trimmedStr !== Number(trimmedStr) ) return str;\n \n }else{ //non-numeric string\n return str;\n }\n }\n}\n\n/**\n * \n * @param {string} numStr without leading zeros\n * @returns \n */\nfunction trimZeros(numStr){\n if(numStr && numStr.indexOf(\".\") !== -1){//float\n numStr = numStr.replace(/0+$/, \"\"); //remove ending zeros\n if(numStr === \".\") numStr = \"0\";\n else if(numStr[0] === \".\") numStr = \"0\"+numStr;\n else if(numStr[numStr.length-1] === \".\") numStr = numStr.substr(0,numStr.length-1);\n return numStr;\n }\n return numStr;\n}\nmodule.exports = toNumber\n","'use strict';\n\nconst util = require('./util');\nconst buildOptions = require('./util').buildOptions;\nconst xmlNode = require('./xmlNode');\nconst toNumber = require(\"strnum\");\n\nconst regx =\n '<((!\\\\[CDATA\\\\[([\\\\s\\\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\\\/)(NAME)\\\\s*>))([^<]*)'\n .replace(/NAME/g, util.nameRegexp);\n\n//const tagsRegx = new RegExp(\"<(\\\\/?[\\\\w:\\\\-\\._]+)([^>]*)>(\\\\s*\"+cdataRegx+\")*([^<]+)?\",\"g\");\n//const tagsRegx = new RegExp(\"<(\\\\/?)((\\\\w*:)?([\\\\w:\\\\-\\._]+))([^>]*)>([^<]*)(\"+cdataRegx+\"([^<]*))*([^<]+)?\",\"g\");\n\n//polyfill\nif (!Number.parseInt && window.parseInt) {\n Number.parseInt = window.parseInt;\n}\nif (!Number.parseFloat && window.parseFloat) {\n Number.parseFloat = window.parseFloat;\n}\n\nconst defaultOptions = {\n attributeNamePrefix: '@_',\n attrNodeName: false,\n textNodeName: '#text',\n ignoreAttributes: true,\n ignoreNameSpace: false,\n allowBooleanAttributes: false, //a tag can have attributes without any value\n //ignoreRootElement : false,\n parseNodeValue: true,\n parseAttributeValue: false,\n arrayMode: false,\n trimValues: true, //Trim string values of tag and attributes\n cdataTagName: false,\n cdataPositionChar: '\\\\c',\n numParseOptions: {\n hex: true,\n leadingZeros: true\n },\n tagValueProcessor: function(a, tagName) {\n return a;\n },\n attrValueProcessor: function(a, attrName) {\n return a;\n },\n stopNodes: [],\n alwaysCreateTextNode: false\n //decodeStrict: false,\n};\n\nexports.defaultOptions = defaultOptions;\n\nconst props = [\n 'attributeNamePrefix',\n 'attrNodeName',\n 'textNodeName',\n 'ignoreAttributes',\n 'ignoreNameSpace',\n 'allowBooleanAttributes',\n 'parseNodeValue',\n 'parseAttributeValue',\n 'arrayMode',\n 'trimValues',\n 'cdataTagName',\n 'cdataPositionChar',\n 'tagValueProcessor',\n 'attrValueProcessor',\n 'parseTrueNumberOnly',\n 'numParseOptions',\n 'stopNodes',\n 'alwaysCreateTextNode'\n];\nexports.props = props;\n\n/**\n * Trim -> valueProcessor -> parse value\n * @param {string} tagName\n * @param {string} val\n * @param {object} options\n */\nfunction processTagValue(tagName, val, options) {\n if (val) {\n if (options.trimValues) {\n val = val.trim();\n }\n val = options.tagValueProcessor(val, tagName);\n val = parseValue(val, options.parseNodeValue, options.numParseOptions);\n }\n\n return val;\n}\n\nfunction resolveNameSpace(tagname, options) {\n if (options.ignoreNameSpace) {\n const tags = tagname.split(':');\n const prefix = tagname.charAt(0) === '/' ? '/' : '';\n if (tags[0] === 'xmlns') {\n return '';\n }\n if (tags.length === 2) {\n tagname = prefix + tags[1];\n }\n }\n return tagname;\n}\n\nfunction parseValue(val, shouldParse, options) {\n if (shouldParse && typeof val === 'string') {\n //console.log(options)\n const newval = val.trim();\n if(newval === 'true' ) return true;\n else if(newval === 'false' ) return false;\n else return toNumber(val, options);\n } else {\n if (util.isExist(val)) {\n return val;\n } else {\n return '';\n }\n }\n}\n\n//TODO: change regex to capture NS\n//const attrsRegx = new RegExp(\"([\\\\w\\\\-\\\\.\\\\:]+)\\\\s*=\\\\s*(['\\\"])((.|\\n)*?)\\\\2\",\"gm\");\nconst attrsRegx = new RegExp('([^\\\\s=]+)\\\\s*(=\\\\s*([\\'\"])(.*?)\\\\3)?', 'g');\n\nfunction buildAttributesMap(attrStr, options) {\n if (!options.ignoreAttributes && typeof attrStr === 'string') {\n attrStr = attrStr.replace(/\\r?\\n/g, ' ');\n //attrStr = attrStr || attrStr.trim();\n\n const matches = util.getAllMatches(attrStr, attrsRegx);\n const len = matches.length; //don't make it inline\n const attrs = {};\n for (let i = 0; i < len; i++) {\n const attrName = resolveNameSpace(matches[i][1], options);\n if (attrName.length) {\n if (matches[i][4] !== undefined) {\n if (options.trimValues) {\n matches[i][4] = matches[i][4].trim();\n }\n matches[i][4] = options.attrValueProcessor(matches[i][4], attrName);\n attrs[options.attributeNamePrefix + attrName] = parseValue(\n matches[i][4],\n options.parseAttributeValue,\n options.numParseOptions\n );\n } else if (options.allowBooleanAttributes) {\n attrs[options.attributeNamePrefix + attrName] = true;\n }\n }\n }\n if (!Object.keys(attrs).length) {\n return;\n }\n if (options.attrNodeName) {\n const attrCollection = {};\n attrCollection[options.attrNodeName] = attrs;\n return attrCollection;\n }\n return attrs;\n }\n}\n\nconst getTraversalObj = function(xmlData, options) {\n xmlData = xmlData.replace(/\\r\\n?/g, \"\\n\");\n options = buildOptions(options, defaultOptions, props);\n const xmlObj = new xmlNode('!xml');\n let currentNode = xmlObj;\n let textData = \"\";\n\n//function match(xmlData){\n for(let i=0; i< xmlData.length; i++){\n const ch = xmlData[i];\n if(ch === '<'){\n if( xmlData[i+1] === '/') {//Closing Tag\n const closeIndex = findClosingIndex(xmlData, \">\", i, \"Closing Tag is not closed.\")\n let tagName = xmlData.substring(i+2,closeIndex).trim();\n\n if(options.ignoreNameSpace){\n const colonIndex = tagName.indexOf(\":\");\n if(colonIndex !== -1){\n tagName = tagName.substr(colonIndex+1);\n }\n }\n\n /* if (currentNode.parent) {\n currentNode.parent.val = util.getValue(currentNode.parent.val) + '' + processTagValue2(tagName, textData , options);\n } */\n if(currentNode){\n if(currentNode.val){\n currentNode.val = util.getValue(currentNode.val) + '' + processTagValue(tagName, textData , options);\n }else{\n currentNode.val = processTagValue(tagName, textData , options);\n }\n }\n\n if (options.stopNodes.length && options.stopNodes.includes(currentNode.tagname)) {\n currentNode.child = []\n if (currentNode.attrsMap == undefined) { currentNode.attrsMap = {}}\n currentNode.val = xmlData.substr(currentNode.startIndex + 1, i - currentNode.startIndex - 1)\n }\n currentNode = currentNode.parent;\n textData = \"\";\n i = closeIndex;\n } else if( xmlData[i+1] === '?') {\n i = findClosingIndex(xmlData, \"?>\", i, \"Pi Tag is not closed.\")\n } else if(xmlData.substr(i + 1, 3) === '!--') {\n i = findClosingIndex(xmlData, \"-->\", i, \"Comment is not closed.\")\n } else if( xmlData.substr(i + 1, 2) === '!D') {\n const closeIndex = findClosingIndex(xmlData, \">\", i, \"DOCTYPE is not closed.\")\n const tagExp = xmlData.substring(i, closeIndex);\n if(tagExp.indexOf(\"[\") >= 0){\n i = xmlData.indexOf(\"]>\", i) + 1;\n }else{\n i = closeIndex;\n }\n }else if(xmlData.substr(i + 1, 2) === '![') {\n const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"CDATA is not closed.\") - 2\n const tagExp = xmlData.substring(i + 9,closeIndex);\n\n //considerations\n //1. CDATA will always have parent node\n //2. A tag with CDATA is not a leaf node so it's value would be string type.\n if(textData){\n currentNode.val = util.getValue(currentNode.val) + '' + processTagValue(currentNode.tagname, textData , options);\n textData = \"\";\n }\n\n if (options.cdataTagName) {\n //add cdata node\n const childNode = new xmlNode(options.cdataTagName, currentNode, tagExp);\n currentNode.addChild(childNode);\n //for backtracking\n currentNode.val = util.getValue(currentNode.val) + options.cdataPositionChar;\n //add rest value to parent node\n if (tagExp) {\n childNode.val = tagExp;\n }\n } else {\n currentNode.val = (currentNode.val || '') + (tagExp || '');\n }\n\n i = closeIndex + 2;\n }else {//Opening tag\n const result = closingIndexForOpeningTag(xmlData, i+1)\n let tagExp = result.data;\n const closeIndex = result.index;\n const separatorIndex = tagExp.indexOf(\" \");\n let tagName = tagExp;\n let shouldBuildAttributesMap = true;\n if(separatorIndex !== -1){\n tagName = tagExp.substr(0, separatorIndex).replace(/\\s\\s*$/, '');\n tagExp = tagExp.substr(separatorIndex + 1);\n }\n\n if(options.ignoreNameSpace){\n const colonIndex = tagName.indexOf(\":\");\n if(colonIndex !== -1){\n tagName = tagName.substr(colonIndex+1);\n shouldBuildAttributesMap = tagName !== result.data.substr(colonIndex + 1);\n }\n }\n\n //save text to parent node\n if (currentNode && textData) {\n if(currentNode.tagname !== '!xml'){\n currentNode.val = util.getValue(currentNode.val) + '' + processTagValue( currentNode.tagname, textData, options);\n }\n }\n\n if(tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1){//selfClosing tag\n\n if(tagName[tagName.length - 1] === \"/\"){ //remove trailing '/'\n tagName = tagName.substr(0, tagName.length - 1);\n tagExp = tagName;\n }else{\n tagExp = tagExp.substr(0, tagExp.length - 1);\n }\n\n const childNode = new xmlNode(tagName, currentNode, '');\n if(tagName !== tagExp){\n childNode.attrsMap = buildAttributesMap(tagExp, options);\n }\n currentNode.addChild(childNode);\n }else{//opening tag\n\n const childNode = new xmlNode( tagName, currentNode );\n if (options.stopNodes.length && options.stopNodes.includes(childNode.tagname)) {\n childNode.startIndex=closeIndex;\n }\n if(tagName !== tagExp && shouldBuildAttributesMap){\n childNode.attrsMap = buildAttributesMap(tagExp, options);\n }\n currentNode.addChild(childNode);\n currentNode = childNode;\n }\n textData = \"\";\n i = closeIndex;\n }\n }else{\n textData += xmlData[i];\n }\n }\n return xmlObj;\n}\n\nfunction closingIndexForOpeningTag(data, i){\n let attrBoundary;\n let tagExp = \"\";\n for (let index = i; index < data.length; index++) {\n let ch = data[index];\n if (attrBoundary) {\n if (ch === attrBoundary) attrBoundary = \"\";//reset\n } else if (ch === '\"' || ch === \"'\") {\n attrBoundary = ch;\n } else if (ch === '>') {\n return {\n data: tagExp,\n index: index\n }\n } else if (ch === '\\t') {\n ch = \" \"\n }\n tagExp += ch;\n }\n}\n\nfunction findClosingIndex(xmlData, str, i, errMsg){\n const closingIndex = xmlData.indexOf(str, i);\n if(closingIndex === -1){\n throw new Error(errMsg)\n }else{\n return closingIndex + str.length - 1;\n }\n}\n\nexports.getTraversalObj = getTraversalObj;\n","'use strict';\n\nconst util = require('./util');\n\nconst defaultOptions = {\n allowBooleanAttributes: false, //A tag can have attributes without any value\n};\n\nconst props = ['allowBooleanAttributes'];\n\n//const tagsPattern = new RegExp(\"<\\\\/?([\\\\w:\\\\-_\\.]+)\\\\s*\\/?>\",\"g\");\nexports.validate = function (xmlData, options) {\n options = util.buildOptions(options, defaultOptions, props);\n\n //xmlData = xmlData.replace(/(\\r\\n|\\n|\\r)/gm,\"\");//make it single line\n //xmlData = xmlData.replace(/(^\\s*<\\?xml.*?\\?>)/g,\"\");//Remove XML starting tag\n //xmlData = xmlData.replace(/(<!DOCTYPE[\\s\\w\\\"\\.\\/\\-\\:]+(\\[.*\\])*\\s*>)/g,\"\");//Remove DOCTYPE\n const tags = [];\n let tagFound = false;\n\n //indicates that the root tag has been closed (aka. depth 0 has been reached)\n let reachedRoot = false;\n\n if (xmlData[0] === '\\ufeff') {\n // check for byte order mark (BOM)\n xmlData = xmlData.substr(1);\n }\n\n for (let i = 0; i < xmlData.length; i++) {\n\n if (xmlData[i] === '<' && xmlData[i+1] === '?') {\n i+=2;\n i = readPI(xmlData,i);\n if (i.err) return i;\n }else if (xmlData[i] === '<') {\n //starting of tag\n //read until you reach to '>' avoiding any '>' in attribute value\n let tagStartPos = i;\n i++;\n \n if (xmlData[i] === '!') {\n i = readCommentAndCDATA(xmlData, i);\n continue;\n } else {\n let closingTag = false;\n if (xmlData[i] === '/') {\n //closing tag\n closingTag = true;\n i++;\n }\n //read tagname\n let tagName = '';\n for (; i < xmlData.length &&\n xmlData[i] !== '>' &&\n xmlData[i] !== ' ' &&\n xmlData[i] !== '\\t' &&\n xmlData[i] !== '\\n' &&\n xmlData[i] !== '\\r'; i++\n ) {\n tagName += xmlData[i];\n }\n tagName = tagName.trim();\n //console.log(tagName);\n\n if (tagName[tagName.length - 1] === '/') {\n //self closing tag without attributes\n tagName = tagName.substring(0, tagName.length - 1);\n //continue;\n i--;\n }\n if (!validateTagName(tagName)) {\n let msg;\n if (tagName.trim().length === 0) {\n msg = \"Invalid space after '<'.\";\n } else {\n msg = \"Tag '\"+tagName+\"' is an invalid name.\";\n }\n return getErrorObject('InvalidTag', msg, getLineNumberForPosition(xmlData, i));\n }\n\n const result = readAttributeStr(xmlData, i);\n if (result === false) {\n return getErrorObject('InvalidAttr', \"Attributes for '\"+tagName+\"' have open quote.\", getLineNumberForPosition(xmlData, i));\n }\n let attrStr = result.value;\n i = result.index;\n\n if (attrStr[attrStr.length - 1] === '/') {\n //self closing tag\n const attrStrStart = i - attrStr.length;\n attrStr = attrStr.substring(0, attrStr.length - 1);\n const isValid = validateAttributeString(attrStr, options);\n if (isValid === true) {\n tagFound = true;\n //continue; //text may presents after self closing tag\n } else {\n //the result from the nested function returns the position of the error within the attribute\n //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n //this gives us the absolute index in the entire xml, which we can use to find the line at last\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid.err.line));\n }\n } else if (closingTag) {\n if (!result.tagClosed) {\n return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' doesn't have proper closing.\", getLineNumberForPosition(xmlData, i));\n } else if (attrStr.trim().length > 0) {\n return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' can't have attributes or invalid starting.\", getLineNumberForPosition(xmlData, tagStartPos));\n } else {\n const otg = tags.pop();\n if (tagName !== otg.tagName) {\n let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos);\n return getErrorObject('InvalidTag',\n \"Expected closing tag '\"+otg.tagName+\"' (opened in line \"+openPos.line+\", col \"+openPos.col+\") instead of closing tag '\"+tagName+\"'.\",\n getLineNumberForPosition(xmlData, tagStartPos));\n }\n\n //when there are no more tags, we reached the root level.\n if (tags.length == 0) {\n reachedRoot = true;\n }\n }\n } else {\n const isValid = validateAttributeString(attrStr, options);\n if (isValid !== true) {\n //the result from the nested function returns the position of the error within the attribute\n //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n //this gives us the absolute index in the entire xml, which we can use to find the line at last\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i - attrStr.length + isValid.err.line));\n }\n\n //if the root level has been reached before ...\n if (reachedRoot === true) {\n return getErrorObject('InvalidXml', 'Multiple possible root nodes found.', getLineNumberForPosition(xmlData, i));\n } else {\n tags.push({tagName, tagStartPos});\n }\n tagFound = true;\n }\n\n //skip tag text value\n //It may include comments and CDATA value\n for (i++; i < xmlData.length; i++) {\n if (xmlData[i] === '<') {\n if (xmlData[i + 1] === '!') {\n //comment or CADATA\n i++;\n i = readCommentAndCDATA(xmlData, i);\n continue;\n } else if (xmlData[i+1] === '?') {\n i = readPI(xmlData, ++i);\n if (i.err) return i;\n } else{\n break;\n }\n } else if (xmlData[i] === '&') {\n const afterAmp = validateAmpersand(xmlData, i);\n if (afterAmp == -1)\n return getErrorObject('InvalidChar', \"char '&' is not expected.\", getLineNumberForPosition(xmlData, i));\n i = afterAmp;\n }\n } //end of reading tag text value\n if (xmlData[i] === '<') {\n i--;\n }\n }\n } else {\n if (xmlData[i] === ' ' || xmlData[i] === '\\t' || xmlData[i] === '\\n' || xmlData[i] === '\\r') {\n continue;\n }\n return getErrorObject('InvalidChar', \"char '\"+xmlData[i]+\"' is not expected.\", getLineNumberForPosition(xmlData, i));\n }\n }\n\n if (!tagFound) {\n return getErrorObject('InvalidXml', 'Start tag expected.', 1);\n }else if (tags.length == 1) {\n return getErrorObject('InvalidTag', \"Unclosed tag '\"+tags[0].tagName+\"'.\", getLineNumberForPosition(xmlData, tags[0].tagStartPos));\n }else if (tags.length > 0) {\n return getErrorObject('InvalidXml', \"Invalid '\"+\n JSON.stringify(tags.map(t => t.tagName), null, 4).replace(/\\r?\\n/g, '')+\n \"' found.\", {line: 1, col: 1});\n }\n\n return true;\n};\n\n/**\n * Read Processing insstructions and skip\n * @param {*} xmlData\n * @param {*} i\n */\nfunction readPI(xmlData, i) {\n const start = i;\n for (; i < xmlData.length; i++) {\n if (xmlData[i] == '?' || xmlData[i] == ' ') {\n //tagname\n const tagname = xmlData.substr(start, i - start);\n if (i > 5 && tagname === 'xml') {\n return getErrorObject('InvalidXml', 'XML declaration allowed only at the start of the document.', getLineNumberForPosition(xmlData, i));\n } else if (xmlData[i] == '?' && xmlData[i + 1] == '>') {\n //check if valid attribut string\n i++;\n break;\n } else {\n continue;\n }\n }\n }\n return i;\n}\n\nfunction readCommentAndCDATA(xmlData, i) {\n if (xmlData.length > i + 5 && xmlData[i + 1] === '-' && xmlData[i + 2] === '-') {\n //comment\n for (i += 3; i < xmlData.length; i++) {\n if (xmlData[i] === '-' && xmlData[i + 1] === '-' && xmlData[i + 2] === '>') {\n i += 2;\n break;\n }\n }\n } else if (\n xmlData.length > i + 8 &&\n xmlData[i + 1] === 'D' &&\n xmlData[i + 2] === 'O' &&\n xmlData[i + 3] === 'C' &&\n xmlData[i + 4] === 'T' &&\n xmlData[i + 5] === 'Y' &&\n xmlData[i + 6] === 'P' &&\n xmlData[i + 7] === 'E'\n ) {\n let angleBracketsCount = 1;\n for (i += 8; i < xmlData.length; i++) {\n if (xmlData[i] === '<') {\n angleBracketsCount++;\n } else if (xmlData[i] === '>') {\n angleBracketsCount--;\n if (angleBracketsCount === 0) {\n break;\n }\n }\n }\n } else if (\n xmlData.length > i + 9 &&\n xmlData[i + 1] === '[' &&\n xmlData[i + 2] === 'C' &&\n xmlData[i + 3] === 'D' &&\n xmlData[i + 4] === 'A' &&\n xmlData[i + 5] === 'T' &&\n xmlData[i + 6] === 'A' &&\n xmlData[i + 7] === '['\n ) {\n for (i += 8; i < xmlData.length; i++) {\n if (xmlData[i] === ']' && xmlData[i + 1] === ']' && xmlData[i + 2] === '>') {\n i += 2;\n break;\n }\n }\n }\n\n return i;\n}\n\nconst doubleQuote = '\"';\nconst singleQuote = \"'\";\n\n/**\n * Keep reading xmlData until '<' is found outside the attribute value.\n * @param {string} xmlData\n * @param {number} i\n */\nfunction readAttributeStr(xmlData, i) {\n let attrStr = '';\n let startChar = '';\n let tagClosed = false;\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === doubleQuote || xmlData[i] === singleQuote) {\n if (startChar === '') {\n startChar = xmlData[i];\n } else if (startChar !== xmlData[i]) {\n //if vaue is enclosed with double quote then single quotes are allowed inside the value and vice versa\n } else {\n startChar = '';\n }\n } else if (xmlData[i] === '>') {\n if (startChar === '') {\n tagClosed = true;\n break;\n }\n }\n attrStr += xmlData[i];\n }\n if (startChar !== '') {\n return false;\n }\n\n return {\n value: attrStr,\n index: i,\n tagClosed: tagClosed\n };\n}\n\n/**\n * Select all the attributes whether valid or invalid.\n */\nconst validAttrStrRegxp = new RegExp('(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*([\\'\"])(([\\\\s\\\\S])*?)\\\\5)?', 'g');\n\n//attr, =\"sd\", a=\"amit's\", a=\"sd\"b=\"saf\", ab cd=\"\"\n\nfunction validateAttributeString(attrStr, options) {\n //console.log(\"start:\"+attrStr+\":end\");\n\n //if(attrStr.trim().length === 0) return true; //empty string\n\n const matches = util.getAllMatches(attrStr, validAttrStrRegxp);\n const attrNames = {};\n\n for (let i = 0; i < matches.length; i++) {\n if (matches[i][1].length === 0) {\n //nospace before attribute name: a=\"sd\"b=\"saf\"\n return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' has no space in starting.\", getPositionFromMatch(matches[i]))\n } else if (matches[i][3] === undefined && !options.allowBooleanAttributes) {\n //independent attribute: ab\n return getErrorObject('InvalidAttr', \"boolean attribute '\"+matches[i][2]+\"' is not allowed.\", getPositionFromMatch(matches[i]));\n }\n /* else if(matches[i][6] === undefined){//attribute without value: ab=\n return { err: { code:\"InvalidAttr\",msg:\"attribute \" + matches[i][2] + \" has no value assigned.\"}};\n } */\n const attrName = matches[i][2];\n if (!validateAttrName(attrName)) {\n return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is an invalid name.\", getPositionFromMatch(matches[i]));\n }\n if (!attrNames.hasOwnProperty(attrName)) {\n //check for duplicate attribute.\n attrNames[attrName] = 1;\n } else {\n return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is repeated.\", getPositionFromMatch(matches[i]));\n }\n }\n\n return true;\n}\n\nfunction validateNumberAmpersand(xmlData, i) {\n let re = /\\d/;\n if (xmlData[i] === 'x') {\n i++;\n re = /[\\da-fA-F]/;\n }\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === ';')\n return i;\n if (!xmlData[i].match(re))\n break;\n }\n return -1;\n}\n\nfunction validateAmpersand(xmlData, i) {\n // https://www.w3.org/TR/xml/#dt-charref\n i++;\n if (xmlData[i] === ';')\n return -1;\n if (xmlData[i] === '#') {\n i++;\n return validateNumberAmpersand(xmlData, i);\n }\n let count = 0;\n for (; i < xmlData.length; i++, count++) {\n if (xmlData[i].match(/\\w/) && count < 20)\n continue;\n if (xmlData[i] === ';')\n break;\n return -1;\n }\n return i;\n}\n\nfunction getErrorObject(code, message, lineNumber) {\n return {\n err: {\n code: code,\n msg: message,\n line: lineNumber.line || lineNumber,\n col: lineNumber.col,\n },\n };\n}\n\nfunction validateAttrName(attrName) {\n return util.isName(attrName);\n}\n\n// const startsWithXML = /^xml/i;\n\nfunction validateTagName(tagname) {\n return util.isName(tagname) /* && !tagname.match(startsWithXML) */;\n}\n\n//this function returns the line number for the character at the given index\nfunction getLineNumberForPosition(xmlData, index) {\n const lines = xmlData.substring(0, index).split(/\\r?\\n/);\n return {\n line: lines.length,\n\n // column number is last line's length + 1, because column numbering starts at 1:\n col: lines[lines.length - 1].length + 1\n };\n}\n\n//this function returns the position of the first character of match within attrStr\nfunction getPositionFromMatch(match) {\n return match.startIndex + match[1].length;\n}\n","'use strict';\nconst char = function(a) {\n return String.fromCharCode(a);\n};\n\nconst chars = {\n nilChar: char(176),\n missingChar: char(201),\n nilPremitive: char(175),\n missingPremitive: char(200),\n\n emptyChar: char(178),\n emptyValue: char(177), //empty Premitive\n\n boundryChar: char(179),\n\n objStart: char(198),\n arrStart: char(204),\n arrayEnd: char(185),\n};\n\nconst charsArr = [\n chars.nilChar,\n chars.nilPremitive,\n chars.missingChar,\n chars.missingPremitive,\n chars.boundryChar,\n chars.emptyChar,\n chars.emptyValue,\n chars.arrayEnd,\n chars.objStart,\n chars.arrStart,\n];\n\nconst _e = function(node, e_schema, options) {\n if (typeof e_schema === 'string') {\n //premitive\n if (node && node[0] && node[0].val !== undefined) {\n return getValue(node[0].val, e_schema);\n } else {\n return getValue(node, e_schema);\n }\n } else {\n const hasValidData = hasData(node);\n if (hasValidData === true) {\n let str = '';\n if (Array.isArray(e_schema)) {\n //attributes can't be repeated. hence check in children tags only\n str += chars.arrStart;\n const itemSchema = e_schema[0];\n //const itemSchemaType = itemSchema;\n const arr_len = node.length;\n\n if (typeof itemSchema === 'string') {\n for (let arr_i = 0; arr_i < arr_len; arr_i++) {\n const r = getValue(node[arr_i].val, itemSchema);\n str = processValue(str, r);\n }\n } else {\n for (let arr_i = 0; arr_i < arr_len; arr_i++) {\n const r = _e(node[arr_i], itemSchema, options);\n str = processValue(str, r);\n }\n }\n str += chars.arrayEnd; //indicates that next item is not array item\n } else {\n //object\n str += chars.objStart;\n const keys = Object.keys(e_schema);\n if (Array.isArray(node)) {\n node = node[0];\n }\n for (let i in keys) {\n const key = keys[i];\n //a property defined in schema can be present either in attrsMap or children tags\n //options.textNodeName will not present in both maps, take it's value from val\n //options.attrNodeName will be present in attrsMap\n let r;\n if (!options.ignoreAttributes && node.attrsMap && node.attrsMap[key]) {\n r = _e(node.attrsMap[key], e_schema[key], options);\n } else if (key === options.textNodeName) {\n r = _e(node.val, e_schema[key], options);\n } else {\n r = _e(node.child[key], e_schema[key], options);\n }\n str = processValue(str, r);\n }\n }\n return str;\n } else {\n return hasValidData;\n }\n }\n};\n\nconst getValue = function(a /*, type*/) {\n switch (a) {\n case undefined:\n return chars.missingPremitive;\n case null:\n return chars.nilPremitive;\n case '':\n return chars.emptyValue;\n default:\n return a;\n }\n};\n\nconst processValue = function(str, r) {\n if (!isAppChar(r[0]) && !isAppChar(str[str.length - 1])) {\n str += chars.boundryChar;\n }\n return str + r;\n};\n\nconst isAppChar = function(ch) {\n return charsArr.indexOf(ch) !== -1;\n};\n\nfunction hasData(jObj) {\n if (jObj === undefined) {\n return chars.missingChar;\n } else if (jObj === null) {\n return chars.nilChar;\n } else if (\n jObj.child &&\n Object.keys(jObj.child).length === 0 &&\n (!jObj.attrsMap || Object.keys(jObj.attrsMap).length === 0)\n ) {\n return chars.emptyChar;\n } else {\n return true;\n }\n}\n\nconst x2j = require('./xmlstr2xmlnode');\nconst buildOptions = require('./util').buildOptions;\n\nconst convert2nimn = function(node, e_schema, options) {\n options = buildOptions(options, x2j.defaultOptions, x2j.props);\n return _e(node, e_schema, options);\n};\n\nexports.convert2nimn = convert2nimn;\n","'use strict';\n\nconst util = require('./util');\nconst buildOptions = require('./util').buildOptions;\nconst x2j = require('./xmlstr2xmlnode');\n\n//TODO: do it later\nconst convertToJsonString = function(node, options) {\n options = buildOptions(options, x2j.defaultOptions, x2j.props);\n\n options.indentBy = options.indentBy || '';\n return _cToJsonStr(node, options, 0);\n};\n\nconst _cToJsonStr = function(node, options, level) {\n let jObj = '{';\n\n //traver through all the children\n const keys = Object.keys(node.child);\n\n for (let index = 0; index < keys.length; index++) {\n const tagname = keys[index];\n if (node.child[tagname] && node.child[tagname].length > 1) {\n jObj += '\"' + tagname + '\" : [ ';\n for (let tag in node.child[tagname]) {\n jObj += _cToJsonStr(node.child[tagname][tag], options) + ' , ';\n }\n jObj = jObj.substr(0, jObj.length - 1) + ' ] '; //remove extra comma in last\n } else {\n jObj += '\"' + tagname + '\" : ' + _cToJsonStr(node.child[tagname][0], options) + ' ,';\n }\n }\n util.merge(jObj, node.attrsMap);\n //add attrsMap as new children\n if (util.isEmptyObject(jObj)) {\n return util.isExist(node.val) ? node.val : '';\n } else {\n if (util.isExist(node.val)) {\n if (!(typeof node.val === 'string' && (node.val === '' || node.val === options.cdataPositionChar))) {\n jObj += '\"' + options.textNodeName + '\" : ' + stringval(node.val);\n }\n }\n }\n //add value\n if (jObj[jObj.length - 1] === ',') {\n jObj = jObj.substr(0, jObj.length - 2);\n }\n return jObj + '}';\n};\n\nfunction stringval(v) {\n if (v === true || v === false || !isNaN(v)) {\n return v;\n } else {\n return '\"' + v + '\"';\n }\n}\n\nfunction indentate(options, level) {\n return options.indentBy.repeat(level);\n}\n\nexports.convertToJsonString = convertToJsonString;\n","'use strict';\n//parse Empty Node as self closing node\nconst buildOptions = require('./util').buildOptions;\n\nconst defaultOptions = {\n attributeNamePrefix: '@_',\n attrNodeName: false,\n textNodeName: '#text',\n ignoreAttributes: true,\n cdataTagName: false,\n cdataPositionChar: '\\\\c',\n format: false,\n indentBy: ' ',\n supressEmptyNode: false,\n tagValueProcessor: function(a) {\n return a;\n },\n attrValueProcessor: function(a) {\n return a;\n },\n};\n\nconst props = [\n 'attributeNamePrefix',\n 'attrNodeName',\n 'textNodeName',\n 'ignoreAttributes',\n 'cdataTagName',\n 'cdataPositionChar',\n 'format',\n 'indentBy',\n 'supressEmptyNode',\n 'tagValueProcessor',\n 'attrValueProcessor',\n 'rootNodeName', //when array as root\n];\n\nfunction Parser(options) {\n this.options = buildOptions(options, defaultOptions, props);\n if (this.options.ignoreAttributes || this.options.attrNodeName) {\n this.isAttribute = function(/*a*/) {\n return false;\n };\n } else {\n this.attrPrefixLen = this.options.attributeNamePrefix.length;\n this.isAttribute = isAttribute;\n }\n if (this.options.cdataTagName) {\n this.isCDATA = isCDATA;\n } else {\n this.isCDATA = function(/*a*/) {\n return false;\n };\n }\n this.replaceCDATAstr = replaceCDATAstr;\n this.replaceCDATAarr = replaceCDATAarr;\n\n this.processTextOrObjNode = processTextOrObjNode\n\n if (this.options.format) {\n this.indentate = indentate;\n this.tagEndChar = '>\\n';\n this.newLine = '\\n';\n } else {\n this.indentate = function() {\n return '';\n };\n this.tagEndChar = '>';\n this.newLine = '';\n }\n\n if (this.options.supressEmptyNode) {\n this.buildTextNode = buildEmptyTextNode;\n this.buildObjNode = buildEmptyObjNode;\n } else {\n this.buildTextNode = buildTextValNode;\n this.buildObjNode = buildObjectNode;\n }\n\n this.buildTextValNode = buildTextValNode;\n this.buildObjectNode = buildObjectNode;\n}\n\nParser.prototype.parse = function(jObj) {\n if(Array.isArray(jObj) && this.options.rootNodeName && this.options.rootNodeName.length > 1){\n jObj = {\n [this.options.rootNodeName] : jObj\n }\n }\n return this.j2x(jObj, 0).val;\n};\n\nParser.prototype.j2x = function(jObj, level) {\n let attrStr = '';\n let val = '';\n for (let key in jObj) {\n if (typeof jObj[key] === 'undefined') {\n // supress undefined node\n } else if (jObj[key] === null) {\n val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n } else if (jObj[key] instanceof Date) {\n val += this.buildTextNode(jObj[key], key, '', level);\n } else if (typeof jObj[key] !== 'object') {\n //premitive type\n const attr = this.isAttribute(key);\n if (attr) {\n attrStr += ' ' + attr + '=\"' + this.options.attrValueProcessor('' + jObj[key]) + '\"';\n } else if (this.isCDATA(key)) {\n if (jObj[this.options.textNodeName]) {\n val += this.replaceCDATAstr(jObj[this.options.textNodeName], jObj[key]);\n } else {\n val += this.replaceCDATAstr('', jObj[key]);\n }\n } else {\n //tag value\n if (key === this.options.textNodeName) {\n if (jObj[this.options.cdataTagName]) {\n //value will added while processing cdata\n } else {\n val += this.options.tagValueProcessor('' + jObj[key]);\n }\n } else {\n val += this.buildTextNode(jObj[key], key, '', level);\n }\n }\n } else if (Array.isArray(jObj[key])) {\n //repeated nodes\n if (this.isCDATA(key)) {\n val += this.indentate(level);\n if (jObj[this.options.textNodeName]) {\n val += this.replaceCDATAarr(jObj[this.options.textNodeName], jObj[key]);\n } else {\n val += this.replaceCDATAarr('', jObj[key]);\n }\n } else {\n //nested nodes\n const arrLen = jObj[key].length;\n for (let j = 0; j < arrLen; j++) {\n const item = jObj[key][j];\n if (typeof item === 'undefined') {\n // supress undefined node\n } else if (item === null) {\n val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n } else if (typeof item === 'object') {\n val += this.processTextOrObjNode(item, key, level)\n } else {\n val += this.buildTextNode(item, key, '', level);\n }\n }\n }\n } else {\n //nested node\n if (this.options.attrNodeName && key === this.options.attrNodeName) {\n const Ks = Object.keys(jObj[key]);\n const L = Ks.length;\n for (let j = 0; j < L; j++) {\n attrStr += ' ' + Ks[j] + '=\"' + this.options.attrValueProcessor('' + jObj[key][Ks[j]]) + '\"';\n }\n } else {\n val += this.processTextOrObjNode(jObj[key], key, level)\n }\n }\n }\n return {attrStr: attrStr, val: val};\n};\n\nfunction processTextOrObjNode (object, key, level) {\n const result = this.j2x(object, level + 1);\n if (object[this.options.textNodeName] !== undefined && Object.keys(object).length === 1) {\n return this.buildTextNode(result.val, key, result.attrStr, level);\n } else {\n return this.buildObjNode(result.val, key, result.attrStr, level);\n }\n}\n\nfunction replaceCDATAstr(str, cdata) {\n str = this.options.tagValueProcessor('' + str);\n if (this.options.cdataPositionChar === '' || str === '') {\n return str + '<![CDATA[' + cdata + ']]' + this.tagEndChar;\n } else {\n return str.replace(this.options.cdataPositionChar, '<![CDATA[' + cdata + ']]' + this.tagEndChar);\n }\n}\n\nfunction replaceCDATAarr(str, cdata) {\n str = this.options.tagValueProcessor('' + str);\n if (this.options.cdataPositionChar === '' || str === '') {\n return str + '<![CDATA[' + cdata.join(']]><![CDATA[') + ']]' + this.tagEndChar;\n } else {\n for (let v in cdata) {\n str = str.replace(this.options.cdataPositionChar, '<![CDATA[' + cdata[v] + ']]>');\n }\n return str + this.newLine;\n }\n}\n\nfunction buildObjectNode(val, key, attrStr, level) {\n if (attrStr && val.indexOf('<') === -1) {\n return (\n this.indentate(level) +\n '<' +\n key +\n attrStr +\n '>' +\n val +\n //+ this.newLine\n // + this.indentate(level)\n '</' +\n key +\n this.tagEndChar\n );\n } else {\n return (\n this.indentate(level) +\n '<' +\n key +\n attrStr +\n this.tagEndChar +\n val +\n //+ this.newLine\n this.indentate(level) +\n '</' +\n key +\n this.tagEndChar\n );\n }\n}\n\nfunction buildEmptyObjNode(val, key, attrStr, level) {\n if (val !== '') {\n return this.buildObjectNode(val, key, attrStr, level);\n } else {\n return this.indentate(level) + '<' + key + attrStr + '/' + this.tagEndChar;\n //+ this.newLine\n }\n}\n\nfunction buildTextValNode(val, key, attrStr, level) {\n return (\n this.indentate(level) +\n '<' +\n key +\n attrStr +\n '>' +\n this.options.tagValueProcessor(val) +\n '</' +\n key +\n this.tagEndChar\n );\n}\n\nfunction buildEmptyTextNode(val, key, attrStr, level) {\n if (val !== '') {\n return this.buildTextValNode(val, key, attrStr, level);\n } else {\n return this.indentate(level) + '<' + key + attrStr + '/' + this.tagEndChar;\n }\n}\n\nfunction indentate(level) {\n return this.options.indentBy.repeat(level);\n}\n\nfunction isAttribute(name /*, options*/) {\n if (name.startsWith(this.options.attributeNamePrefix)) {\n return name.substr(this.attrPrefixLen);\n } else {\n return false;\n }\n}\n\nfunction isCDATA(name) {\n return name === this.options.cdataTagName;\n}\n\n//formatting\n//indentation\n//\\n after each closing or self closing tag\n\nmodule.exports = Parser;\n","'use strict';\n\nconst nodeToJson = require('./node2json');\nconst xmlToNodeobj = require('./xmlstr2xmlnode');\nconst x2xmlnode = require('./xmlstr2xmlnode');\nconst buildOptions = require('./util').buildOptions;\nconst validator = require('./validator');\n\nexports.parse = function(xmlData, givenOptions = {}, validationOption) {\n if( validationOption){\n if(validationOption === true) validationOption = {}\n \n const result = validator.validate(xmlData, validationOption);\n if (result !== true) {\n throw Error( result.err.msg)\n }\n }\n if(givenOptions.parseTrueNumberOnly \n && givenOptions.parseNodeValue !== false\n && !givenOptions.numParseOptions){\n \n givenOptions.numParseOptions = {\n leadingZeros: false,\n }\n }\n let options = buildOptions(givenOptions, x2xmlnode.defaultOptions, x2xmlnode.props);\n\n const traversableObj = xmlToNodeobj.getTraversalObj(xmlData, options)\n //print(traversableObj, \" \");\n return nodeToJson.convertToJson(traversableObj, options);\n};\nexports.convertTonimn = require('./nimndata').convert2nimn;\nexports.getTraversalObj = xmlToNodeobj.getTraversalObj;\nexports.convertToJson = nodeToJson.convertToJson;\nexports.convertToJsonString = require('./node2json_str').convertToJsonString;\nexports.validate = validator.validate;\nexports.j2xParser = require('./json2xml');\nexports.parseToNimn = function(xmlData, schema, options) {\n return exports.convertTonimn(exports.getTraversalObj(xmlData, options), schema, options);\n};\n\n\nfunction print(xmlNode, indentation){\n if(xmlNode){\n console.log(indentation + \"{\")\n console.log(indentation + \" \\\"tagName\\\": \\\"\" + xmlNode.tagname + \"\\\", \");\n if(xmlNode.parent){\n console.log(indentation + \" \\\"parent\\\": \\\"\" + xmlNode.parent.tagname + \"\\\", \");\n }\n console.log(indentation + \" \\\"val\\\": \\\"\" + xmlNode.val + \"\\\", \");\n console.log(indentation + \" \\\"attrs\\\": \" + JSON.stringify(xmlNode.attrsMap,null,4) + \", \");\n\n if(xmlNode.child){\n console.log(indentation + \"\\\"child\\\": {\")\n const indentation2 = indentation + indentation;\n Object.keys(xmlNode.child).forEach( function(key) {\n const node = xmlNode.child[key];\n\n if(Array.isArray(node)){\n console.log(indentation + \"\\\"\"+key+\"\\\" :[\")\n node.forEach( function(item,index) {\n //console.log(indentation + \" \\\"\"+index+\"\\\" : [\")\n print(item, indentation2);\n })\n console.log(indentation + \"],\") \n }else{\n console.log(indentation + \" \\\"\"+key+\"\\\" : {\")\n print(node, indentation2);\n console.log(indentation + \"},\") \n }\n });\n console.log(indentation + \"},\")\n }\n console.log(indentation + \"},\")\n }\n}\n","import { __assign } from \"tslib\";\nimport { getProp } from \"../objects/get-prop\";\nimport { getPortalBaseFromOrgUrl } from \"../urls/getPortalBaseFromOrgUrl\";\nimport { getPortal } from \"@esri/arcgis-rest-portal\";\n/**\n * Fetches the portal for a given org.\n *\n * @param orgId\n * @param options request options\n * @returns\n */\nexport var fetchOrg = function (orgId, options) {\n var orgPortalUrl = getProp(options, \"portal\") ||\n getProp(options, \"authentication.portal\") ||\n \"www.arcgis.com\";\n // In order to get the correct response, we must pass options.portal\n // as a base portal url (e.g., www.arcgis.com, qaext.arcgis.com, etc)\n // **not** an org portal (i.e. org.maps.arcgis.com).\n var basePortalUrl = getPortalBaseFromOrgUrl(orgPortalUrl) + \"/sharing/rest\";\n return getPortal(orgId, __assign(__assign({}, options), { portal: basePortalUrl }));\n};\n//# sourceMappingURL=fetch-org.js.map","import { request } from \"@esri/arcgis-rest-request\";\n/**\n * Generic function to fetch org limits\n * @param orgId\n * @param limitsType\n * @param limitName\n * @param options\n * @returns\n */\nexport function fetchOrgLimits(orgId, limitsType, limitName, options) {\n var portal = options.authentication.portal;\n var url = portal + \"/portals/\" + orgId + \"/limits?limitsType=\" + limitsType + \"&limitName=\" + limitName + \"&f=json\";\n return request(url, options);\n}\n/**\n * Fetch the maximum number of groups a user can create in an org\n * @param orgId\n * @param options\n * @returns\n */\nexport function fetchMaxNumUserGroupsLimit(orgId, options) {\n return fetchOrgLimits(orgId, \"Groups\", \"MaxNumUserGroups\", options)\n .then(function (response) {\n return response.limitValue;\n })\n .catch(function (_) {\n // it's possible that the org doesn't have this property set, and\n // the api will return a 500 error. So we just return the default value\n return 512;\n });\n}\n//# sourceMappingURL=fetchOrgLimits.js.map","import { __assign, __spreadArrays } from \"tslib\";\nimport { getItemData, getItemGroups, getUser, } from \"@esri/arcgis-rest-portal\";\nimport { getAllLayersAndTables, getService, parseServiceUrl, } from \"@esri/arcgis-rest-feature-layer\";\nimport { createOperationPipeline } from \"../utils\";\nimport OperationStack from \"../OperationStack\";\n// TODO: move these functions here under /items\nimport { getItemMetadata } from \"@esri/arcgis-rest-portal\";\nimport { parse } from \"fast-xml-parser\";\nimport { getItemOrgId } from \"../content/_internal\";\nimport { fetchOrg } from \"../org\";\n/**\n * Parse metadataxml into json object\n * @param metadataXml\n * @returns\n */\nfunction parseMetadataXml(metadataXml) {\n var opts = {\n // options for fastXmlParser to read tag attrs\n ignoreAttributes: false,\n attributeNamePrefix: \"@_\",\n textNodeName: \"#value\",\n };\n return parse(metadataXml, opts);\n}\n/**\n * Fetch an [item's metadata](https://doc.arcgis.com/en/arcgis-online/manage-data/metadata.htm) from a portal\n * and parse and return it as JSON\n * @param id item id\n * @param requestOptions\n */\nfunction fetchContentMetadata(id, requestOptions) {\n return getItemMetadata(id, requestOptions)\n .then(function (metadataXml) { return parseMetadataXml(metadataXml); })\n .catch(function () {\n // many items don't have metadata and the request will 404\n // in these cases we don't want to treat it as an error\n // content.metadata === null signals to consumers that\n // we attempted to fetch the metadata, but it doesn't exist\n // TODO: we should probably still throw the error if it's not a 404\n return null;\n });\n}\nvar enrichGroupIds = function (input) {\n var data = input.data, stack = input.stack, requestOptions = input.requestOptions;\n var opId = stack.start(\"enrichGroupIds\");\n return getItemGroups(data.item.id, requestOptions)\n .then(function (response) {\n var admin = response.admin, member = response.member, other = response.other;\n var groupIds = __spreadArrays(admin, member, other).map(function (group) { return group.id; });\n stack.finish(opId);\n return {\n data: __assign(__assign({}, data), { groupIds: groupIds }),\n stack: stack,\n requestOptions: requestOptions,\n };\n })\n .catch(function (error) { return handleEnrichmentError(error, input, opId); });\n};\nvar enrichMetadata = function (input) {\n var data = input.data, stack = input.stack, requestOptions = input.requestOptions;\n var opId = stack.start(\"enrichMetadata\");\n return fetchContentMetadata(data.item.id, requestOptions).then(function (metadata) {\n stack.finish(opId);\n return {\n data: __assign(__assign({}, data), { metadata: metadata }),\n stack: stack,\n requestOptions: requestOptions,\n };\n });\n // TODO: currently fetchContentMetadata will never throw, but\n // if we update it to throw for non-404 errors, need to uncomment this:\n // .catch((error) => handleEnrichmentError(error, input, opId));\n};\nvar enrichOwnerUser = function (input) {\n var data = input.data, stack = input.stack, requestOptions = input.requestOptions;\n var opId = stack.start(\"enrichOwner\");\n // w/o the : any here, I get a compile error about\n // .authentication being incompatible w/ UserSession\n var options = __assign({ username: data.item.owner }, requestOptions);\n return getUser(options)\n .then(function (ownerUser) {\n stack.finish(opId);\n return {\n data: __assign(__assign({}, data), { ownerUser: ownerUser }),\n stack: stack,\n requestOptions: requestOptions,\n };\n })\n .catch(function (error) { return handleEnrichmentError(error, input, opId); });\n};\n// Note, this MUST be run after `enrichOwnerUser` to access the correct orgId during processing.\n// `item.orgId` is only SOMETIMES returned by Portal, so we need the ownerUser's orgId as a backup.\n//\n// If an orgId isn't present on either the item or the ownerUser, this operation will be skipped.\nvar enrichOrg = function (input) {\n var data = input.data, stack = input.stack, requestOptions = input.requestOptions;\n var opId = stack.start(\"enrichOrg\");\n var orgId = getItemOrgId(data.item, data.ownerUser);\n // Only fetch the org if an explicit orgId is present\n var orgPromise = orgId\n ? fetchOrg(orgId, requestOptions)\n : Promise.resolve(undefined);\n return orgPromise\n .then(function (org) {\n stack.finish(opId);\n return {\n data: __assign(__assign({}, data), { org: org }),\n stack: stack,\n requestOptions: requestOptions,\n };\n })\n .catch(function (error) { return handleEnrichmentError(error, input, opId); });\n};\nvar enrichData = function (input) {\n var data = input.data, stack = input.stack, requestOptions = input.requestOptions;\n var opId = stack.start(\"enrichData\");\n return getItemData(data.item.id, requestOptions)\n .then(function (itemData) {\n stack.finish(opId);\n return { data: __assign(__assign({}, data), { data: itemData }), stack: stack, requestOptions: requestOptions };\n })\n .catch(function (error) { return handleEnrichmentError(error, input, opId); });\n};\nvar enrichServer = function (input) {\n var data = input.data, stack = input.stack, requestOptions = input.requestOptions;\n var opId = stack.start(\"enrichServer\");\n var url = parseServiceUrl(data.item.url);\n var options = __assign(__assign({}, requestOptions), { url: url });\n return getService(options)\n .then(function (server) {\n stack.finish(opId);\n return { data: __assign(__assign({}, data), { server: server }), stack: stack, requestOptions: requestOptions };\n })\n .catch(function (error) { return handleEnrichmentError(error, input, opId); });\n};\nvar enrichLayers = function (input) {\n var data = input.data, stack = input.stack, requestOptions = input.requestOptions;\n var opId = stack.start(\"enrichLayers\");\n var url = data.item.url;\n var options = __assign(__assign({}, requestOptions), { url: url });\n return (getAllLayersAndTables(options)\n // merge layers and tables into a single array\n // and filter out any group layers\n .then(function (response) {\n var merged = __spreadArrays(response.layers, response.tables);\n return merged.filter(function (layer) { return layer.type !== \"Group Layer\"; });\n })\n .then(function (layers) {\n stack.finish(opId);\n return { data: __assign(__assign({}, data), { layers: layers }), stack: stack, requestOptions: requestOptions };\n })\n .catch(function (error) { return handleEnrichmentError(error, input, opId); }));\n};\n// add the error to the content.errors,\n// log current stack operation as finished with an error\n// and return output that can be piped into the next operation\nvar handleEnrichmentError = function (error, input, opId) {\n var data = input.data, stack = input.stack, requestOptions = input.requestOptions;\n stack.finish(opId, { error: error });\n return {\n data: __assign(__assign({}, data), { errors: getEnrichmentErrors(error, data.errors) }),\n stack: stack,\n requestOptions: requestOptions,\n };\n};\nvar enrichmentOperations = {\n groupIds: enrichGroupIds,\n metadata: enrichMetadata,\n ownerUser: enrichOwnerUser,\n org: enrichOrg,\n data: enrichData,\n server: enrichServer,\n layers: enrichLayers,\n};\n/**\n * convert an error to an enrichment error info format\n * and optionally append it to an existing array of those\n * @param error\n * @param errors an array of existing enrichment error info\n * @returns a new array of enrichment error info\n * @private\n */\nexport var getEnrichmentErrors = function (error, errors) {\n if (errors === void 0) { errors = []; }\n var message = typeof error === \"string\"\n ? /* istanbul ignore next our tests only throw Error objects */\n error\n : error.message;\n return __spreadArrays(errors, [\n {\n // NOTE: for now we just return the message and type \"Other\"\n // but we could later introspect for HTTP or AGO errors\n // and/or return the status code if available\n type: \"Other\",\n message: message,\n },\n ]);\n};\n/**\n * Fetch enrichments for an item\n * @param item\n * @param enrichments the list of enrichments to fetch\n * @param requestOptions\n * @returns an object with the item and enrichments\n * @private\n */\nexport var fetchItemEnrichments = function (item, enrichments, requestOptions) {\n // create a pipeline of enrichment operations\n var operations = enrichments.reduce(function (ops, enrichment) {\n var operation = enrichmentOperations[enrichment];\n // only include the enrichments that we know how to fetch\n operation && ops.push(operation);\n return ops;\n }, []);\n var pipeline = createOperationPipeline(operations);\n // execute pipeline and return the item and enrichments\n return pipeline({\n data: { item: item },\n stack: new OperationStack(),\n requestOptions: requestOptions,\n }).then(function (output) {\n // TODO: send telemetry so we have info on what enrichments are requested and possible errors\n return output.data;\n });\n};\n//# sourceMappingURL=_enrichments.js.map","/**\n * concat an array of arrays\n * excluding any elements of the top level array\n * that are not actually arrays\n * @param arrays An array of arrays\n * @returns concatenated array\n * @private\n */\nexport var maybeConcat = function (arrays) {\n var result = [].concat.apply([], arrays.filter(Array.isArray));\n return result.length ? result : undefined;\n};\n//# sourceMappingURL=_array.js.map","import { __assign, __extends } from \"tslib\";\nimport { getHubApiUrl } from \".\";\nimport { buildUrl } from \"./urls/build-url\";\n/**\n * remote server error\n */\nvar RemoteServerError = /** @class */ (function (_super) {\n __extends(RemoteServerError, _super);\n function RemoteServerError(message, url, status) {\n var _this = _super.call(this, message) || this;\n _this.status = status;\n _this.url = url;\n return _this;\n }\n return RemoteServerError;\n}(Error));\nexport { RemoteServerError };\n/**\n * ```js\n * import { hubApiRequest } from \"@esri/hub-common\";\n * //\n * hubApiRequest(\n * \"/datasets\",\n * requestOptions\n * })\n * .then(response);\n * ```\n * make a request to the Hub API\n * @param route API route\n * @param requestOptions request options\n */\nexport function hubApiRequest(route, requestOptions) {\n // merge in default request options\n var options = __assign({ \n // why do we default to GET w/ our API?\n httpMethod: \"GET\" }, requestOptions);\n // use fetch override if any\n var _fetch = options.fetch || fetch;\n // merge in default headers\n var headers = __assign({ \"Content-Type\": \"application/json\" }, options.headers);\n // build query params/body based on requestOptions.params\n var query;\n var body;\n if (options.httpMethod === \"GET\") {\n // pass params in query string\n query = options.params;\n }\n else {\n // pass params in request body\n body = JSON.stringify(options.params);\n }\n // build Hub API URL\n var url = buildUrl({\n host: getHubApiUrl(options),\n path: (\"/api/v3/\" + route).replace(/\\/\\//g, \"/\"),\n query: query,\n });\n return _fetch(url, {\n method: options.httpMethod,\n headers: headers,\n body: body,\n }).then(function (resp) {\n if (resp.ok) {\n return resp.json();\n }\n else {\n throw new RemoteServerError(resp.statusText, url, resp.status);\n }\n });\n}\n//# sourceMappingURL=request.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { getEnrichmentErrors, } from \"../items/_enrichments\";\nimport { hubApiRequest } from \"../request\";\nimport { isMapOrFeatureServerUrl } from \"../urls\";\nimport { cloneObject } from \"../util\";\nimport { includes } from \"../utils\";\nimport { normalizeItemType } from \"./compose\";\nimport { getFamily } from \"./get-family\";\nimport { parseDatasetId } from \"./slugs\";\n// TODO: need to fetch data for client-side layer views as well\n// determine if we should fetch data for an item\nvar shouldFetchData = function (item) {\n var type = normalizeItemType(item);\n var family = getFamily(type);\n var dataFamilies = [\"template\", \"solution\"];\n var dataTypes = [\"Web Map\", \"Web Scene\"];\n return includes(dataFamilies, family) || includes(dataTypes, type);\n};\n/**\n * get the default list of enrichments to fetch for content\n * @param item\n * @returns the default list of enrichments to fetch for content\n * @private\n */\nexport var getContentEnrichments = function (item) {\n // we fetch these enrichments for all content types\n var enrichments = [\n \"groupIds\",\n \"metadata\",\n \"ownerUser\",\n \"org\",\n ];\n // we only fetch data for certain content\n if (shouldFetchData(item)) {\n enrichments.push(\"data\");\n }\n // we fetch server and layers for map and feature services\n return isMapOrFeatureServerUrl(item.url)\n ? enrichments.concat(\"server\", \"layers\")\n : enrichments;\n};\n// build up request options to only include the above enrichments\n// that we fetch from the Hub API, and to optionally filter by slug\nvar getHubEnrichmentsOptions = function (requestOptions, slug) {\n var opts = cloneObject(requestOptions);\n opts.params = __assign(__assign({}, opts.params), { \n // TODO: we should fetch errors too\n // TODO: stop fetching recordCount at next breaking change\n \"fields[datasets]\": \"slug,boundary,extent,recordCount,searchDescription,statistics\" });\n if (slug) {\n opts.params[\"filter[slug]\"] = slug;\n }\n return opts;\n};\n// extract the ids and enrichments from the Hub API response\nvar getDatasetEnrichments = function (dataset) {\n var _a = parseDatasetId(dataset.id), itemId = _a.itemId, layerIdString = _a.layerId;\n var layerId = layerIdString && parseInt(layerIdString, 10);\n var _b = dataset.attributes, slug = _b.slug, boundary = _b.boundary, extent = _b.extent, recordCount = _b.recordCount, searchDescription = _b.searchDescription, statistics = _b.statistics;\n return {\n itemId: itemId,\n layerId: layerId,\n slug: slug,\n boundary: boundary,\n extent: extent,\n recordCount: recordCount,\n searchDescription: searchDescription,\n statistics: statistics,\n };\n};\n/**\n * fetch enrichment from the Hub API by slug\n * @param slug\n * @param requestOptions\n * @returns enrichments from the Hub API (slug, boundary, statistic, etc)\n * @private\n */\nexport var fetchHubEnrichmentsBySlug = function (slug, requestOptions) { return __awaiter(void 0, void 0, void 0, function () {\n var response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, hubApiRequest(\"/datasets\", getHubEnrichmentsOptions(requestOptions, slug))];\n case 1:\n response = _a.sent();\n return [2 /*return*/, getDatasetEnrichments(response.data[0])];\n }\n });\n}); };\n/**\n * fetch enrichment from the Hub API by id\n * @param slug\n * @param requestOptions\n * @returns enrichments from the Hub API (slug, boundary, statistic, etc)\n * @private\n */\nexport var fetchHubEnrichmentsById = function (hubId, requestOptions) { return __awaiter(void 0, void 0, void 0, function () {\n var response, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, hubApiRequest(\"/datasets/\" + hubId, getHubEnrichmentsOptions(requestOptions))];\n case 1:\n response = _a.sent();\n return [2 /*return*/, getDatasetEnrichments(response.data)];\n case 2:\n e_1 = _a.sent();\n // dataset record not found, just log the error\n // b/c we can still look up the item and enrichments by id\n return [2 /*return*/, { errors: getEnrichmentErrors(e_1) }];\n case 3: return [2 /*return*/];\n }\n });\n}); };\n//# sourceMappingURL=_fetch.js.map","import { __assign, __awaiter, __generator, __rest } from \"tslib\";\nimport { getLayer, parseServiceUrl, queryFeatures, } from \"@esri/arcgis-rest-feature-layer\";\nimport { getItem } from \"@esri/arcgis-rest-portal\";\nimport { fetchItemEnrichments, } from \"../items/_enrichments\";\nimport { isNil } from \"../util\";\nimport { maybeConcat } from \"../utils/_array\";\nimport { addContextToSlug, isSlug, parseDatasetId } from \"./slugs\";\nimport { fetchHubEnrichmentsById, fetchHubEnrichmentsBySlug, getContentEnrichments, } from \"./_fetch\";\nimport { canUseHubApiForItem } from \"./_internal\";\nimport { composeContent, getItemLayer, getProxyUrl, isLayerView, } from \"./compose\";\nvar hasFeatures = function (contentType) {\n return [\"Feature Layer\", \"Table\"].includes(contentType);\n};\nvar maybeFetchLayerEnrichments = function (itemAndEnrichments, options) { return __awaiter(void 0, void 0, void 0, function () {\n var item, data, layers, layer, layerUrl, getLayerOptions, layerEnrichments, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n item = itemAndEnrichments.item, data = itemAndEnrichments.data;\n layers = itemAndEnrichments.layers;\n layer = layers && getItemLayer(item, layers, options && options.layerId);\n if (!(layer && !layer.type)) return [3 /*break*/, 2];\n layerUrl = parseServiceUrl(item.url) + \"/\" + layer.id;\n getLayerOptions = Object.assign({ url: layerUrl }, options);\n return [4 /*yield*/, getLayer(getLayerOptions)];\n case 1:\n layer = _b.sent();\n layers = layers.map(function (unhydratedLayer) {\n return unhydratedLayer.id === layer.id ? layer : unhydratedLayer;\n });\n _b.label = 2;\n case 2:\n if (!(layer && isLayerView(layer) && !data)) return [3 /*break*/, 4];\n // to store (at least part of) it's view definition in item data\n // it seems that most do not, but until we have a reliable signal\n // we just fetch the item data for all layer views\n return [4 /*yield*/, fetchItemEnrichments(item, [\"data\"], options)];\n case 3:\n // to store (at least part of) it's view definition in item data\n // it seems that most do not, but until we have a reliable signal\n // we just fetch the item data for all layer views\n _a = _b.sent();\n return [3 /*break*/, 5];\n case 4:\n _a = undefined;\n _b.label = 5;\n case 5:\n layerEnrichments = _a;\n return [2 /*return*/, __assign(__assign(__assign({}, itemAndEnrichments), layerEnrichments), { \n // merge error arrays\n errors: maybeConcat([itemAndEnrichments.errors, layerEnrichments === null || layerEnrichments === void 0 ? void 0 : layerEnrichments.errors]), \n // Also remove once we stop supporting ArcGIS Servers below version 10.5\n layers: layers })];\n }\n });\n}); };\nvar fetchItemAndEnrichments = function (itemId, options) { return __awaiter(void 0, void 0, void 0, function () {\n var item, enrichmentsToFetch, enrichments;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, getItem(itemId, options)];\n case 1:\n item = _a.sent();\n // The Hub Application expects the item url of proxied CSVs to point to the\n // proxying feature service. Stabbing it on here maintains that consistency\n // and also helps us fetch and calculate the correct reference layer\n item.url = getProxyUrl(item, options) || item.url;\n enrichmentsToFetch = (options === null || options === void 0 ? void 0 : options.enrichments) || getContentEnrichments(item);\n return [4 /*yield*/, fetchItemEnrichments(item, enrichmentsToFetch, options)];\n case 2:\n enrichments = _a.sent();\n return [2 /*return*/, maybeFetchLayerEnrichments(__assign(__assign({}, enrichments), { item: item }), options)];\n }\n });\n}); };\nvar fetchContentById = function (hubId, options) { return __awaiter(void 0, void 0, void 0, function () {\n var itemId, _a, item, itemEnrichments, specifiedLayerId, hubEnrichments, _b, layerId;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n itemId = parseDatasetId(hubId).itemId;\n return [4 /*yield*/, fetchItemAndEnrichments(itemId, options)];\n case 1:\n _a = _c.sent(), item = _a.item, itemEnrichments = __rest(_a, [\"item\"]);\n specifiedLayerId = options && options.layerId;\n if (!canUseHubApiForItem(item, options)) return [3 /*break*/, 3];\n return [4 /*yield*/, fetchHubEnrichmentsById(hubId, options)];\n case 2:\n _b = _c.sent();\n return [3 /*break*/, 4];\n case 3:\n _b = {};\n _c.label = 4;\n case 4:\n hubEnrichments = _b;\n layerId = hubEnrichments.layerId;\n // return a new content object composed from the item and enrichments we fetched\n return [2 /*return*/, composeContent(item, __assign(__assign(__assign({ requestOptions: options }, itemEnrichments), hubEnrichments), { \n // prefer specified layer id if any\n layerId: isNil(specifiedLayerId) ? layerId : specifiedLayerId, \n // merge error arrays\n errors: maybeConcat([itemEnrichments.errors, hubEnrichments.errors]) }))];\n }\n });\n}); };\nvar fetchContentBySlug = function (fullyQualifiedSlug, options) { return __awaiter(void 0, void 0, void 0, function () {\n var hubEnrichments, itemId, layerId, _a, item, itemEnrichments, specifiedLayerId, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4 /*yield*/, fetchHubEnrichmentsBySlug(fullyQualifiedSlug, options)];\n case 1:\n hubEnrichments = _c.sent();\n itemId = hubEnrichments.itemId;\n layerId = hubEnrichments.layerId;\n return [4 /*yield*/, fetchItemAndEnrichments(itemId, options)];\n case 2:\n _a = _c.sent(), item = _a.item, itemEnrichments = __rest(_a, [\"item\"]);\n specifiedLayerId = options && options.layerId;\n if (!(!isNil(specifiedLayerId) && specifiedLayerId !== layerId)) return [3 /*break*/, 4];\n // we fetched Hub enrichments by slug for another record,\n // most likely the record for the parent service of this layer,\n // so we need to fetch them for the specified layer instead\n layerId = specifiedLayerId;\n _b = [__assign({}, hubEnrichments)];\n return [4 /*yield*/, fetchHubEnrichmentsById(itemId + \"_\" + layerId, options)];\n case 3:\n hubEnrichments = __assign.apply(void 0, _b.concat([(_c.sent())]));\n _c.label = 4;\n case 4: return [2 /*return*/, composeContent(item, __assign(__assign(__assign({ requestOptions: options }, itemEnrichments), hubEnrichments), { layerId: layerId, \n // Note that we are not extracting the slug for the specified layer.\n // It seems that the old client composer code always populated the slug\n // field with the slug that was passed into the function (typically the\n // slug of the parent service). To maintain parity, we do the same here.\n //\n // TODO: should we prefer the slug of the fetched layer instead?\n // return a new content object composed from the item and enrichments we fetched\n slug: fullyQualifiedSlug, \n // merge error arrays\n errors: maybeConcat([itemEnrichments.errors, hubEnrichments.errors]) }))];\n }\n });\n}); };\nvar fetchContentRecordCount = function (content, requestOptions) { return __awaiter(void 0, void 0, void 0, function () {\n var url, viewDefinition, where, response, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n url = content.url, viewDefinition = content.viewDefinition;\n where = viewDefinition === null || viewDefinition === void 0 ? void 0 : viewDefinition.definitionExpression;\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 4]);\n return [4 /*yield*/, queryFeatures(__assign(__assign({}, requestOptions), { url: url,\n where: where, returnCountOnly: true }))];\n case 2:\n response = _b.sent();\n return [2 /*return*/, response.count];\n case 3:\n _a = _b.sent();\n // swallow the error and return Infinity as a flag that the caller can act on\n // NOTE: this is what the -ui app currently expects, see:\n // https://github.com/ArcGIS/opendata-ui/blob/300601918eb2dee79a89314880541ecd60f21e68/packages/opendata-ui/app/utils/composer.js#L273-L279\n // however, we should probably push the error message into content.errors instead\n return [2 /*return*/, Infinity];\n case 4: return [2 /*return*/];\n }\n });\n}); };\n/**\n * Fetch enriched content from the Portal and Hub APIs.\n * @param identifier content slug or id\n * @param options Request options with additional options to control how the content or enrichments are fetched\n * @returns A content object composed of the backing item and enrichments\n *\n * ```js\n * import { fetchContent } from '@esri/hub-common'\n * // fetch content by slug\n * const content = await fetchContent('my-org::item-name')\n * ```\n */\nexport var fetchContent = function (identifier, options) { return __awaiter(void 0, void 0, void 0, function () {\n var content, _a, layer, type, canQuery, _b, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n if (!isSlug(identifier)) return [3 /*break*/, 2];\n return [4 /*yield*/, fetchContentBySlug(addContextToSlug(identifier, options === null || options === void 0 ? void 0 : options.siteOrgKey), options)];\n case 1:\n _a = _d.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, fetchContentById(identifier, options)];\n case 3:\n _a = _d.sent();\n _d.label = 4;\n case 4:\n content = _a;\n layer = content.layer, type = content.type;\n canQuery = !!layer && hasFeatures(type);\n _b = content;\n if (!(canQuery && (isNil(content.recordCount) || content.viewDefinition))) return [3 /*break*/, 6];\n return [4 /*yield*/, fetchContentRecordCount(content, options)];\n case 5:\n _c = _d.sent();\n return [3 /*break*/, 7];\n case 6:\n _c = content.recordCount;\n _d.label = 7;\n case 7:\n _b.recordCount = _c;\n return [2 /*return*/, content];\n }\n });\n}); };\n//# sourceMappingURL=fetch.js.map","/**\n * Add a token to the resource request if the request is to the portal\n * @param {string} url Resource Url\n * @param {IRequestOptions} requestOptions\n * @private\n */\nexport function _addTokenToResourceUrl(url, requestOptions) {\n var result = url;\n if (url.indexOf(\"token\") === -1) {\n // no token\n // Note: authentication.portal is a fully org url\n // i.e. https://dcdev.maps.arcgis.com/sharing/rest\n // this may need to be smarter to handle non-public solutions\n // shared across orgs\n if (url.indexOf(requestOptions.authentication.portal) > -1) {\n // is the portal\n result = url + \"?token=\" + requestOptions.authentication.token;\n }\n }\n return result;\n}\n//# sourceMappingURL=_add-token-to-resource-url.js.map","import { getPortalApiUrl } from \"../urls\";\n/**\n * Convert the resources array on an individual template in a solution\n * into an assets array that can be used to upload the resources to\n * the newly created item.\n * @param {object} template Template from a Solution\n * @param {IHubRequestOptions} hubRequestOptions\n */\nexport function convertSolutionTemplateResourcesToAssets(template, hubRequestOptions) {\n var assets = [];\n if (template.resources && template.bundleItemId) {\n var portalRestUrl = getPortalApiUrl(hubRequestOptions.portalSelf);\n // the resources are stored on the solution item, and that Id is attached\n // into the template as .bundleItemId\n var solutionItemUrl_1 = portalRestUrl + \"/content/items/\" + template.bundleItemId;\n // the resources on the solution are prefixed with the item id of the item the\n // template was created from, which is stored as .itemId\n var prefix_1 = template.itemId;\n // map over the resources and convert them into assets\n assets = template.resources.map(function (name) {\n // we fetch the resource from .url property\n // and we upload it using the .name property\n return {\n name: name,\n type: \"resource\",\n url: solutionItemUrl_1 + \"/resources/\" + prefix_1 + \"-\" + name\n };\n });\n }\n return assets;\n}\n//# sourceMappingURL=convert-solution-template-resources-to-assets.js.map","/**\n * Given a url to an image, return it as a blob\n * @param {String} url Url to fetch the image from. Must have token if it's a non-publi item resource url\n * @param {Object} options additional optinos\n */\nexport function fetchImageAsBlob(url, options) {\n if (options === void 0) { options = {}; }\n if (!options.credentials) {\n options.credentials = \"same-origin\";\n }\n // We use fetch intentionally as the url may or may not be for an item url, so we don't\n // want this to run thru the main request logic\n return fetch(url, options).then(function (response) {\n return response.blob();\n });\n}\n//# sourceMappingURL=fetch-image-as-blob.js.map","import { addItemResource } from \"@esri/arcgis-rest-portal\";\nimport { fetchImageAsBlob } from \"./fetch-image-as-blob\";\n/**\n * Fetch image from a url, and upload as a resource\n * @param {Object} options {id, owner, fileName, url, authentication}\n */\nexport function fetchAndUploadResource(options) {\n // first fetch it as a blob...\n return fetchImageAsBlob(options.url).then(function (file) {\n // upload it to the item...\n return addItemResource({\n id: options.id,\n owner: options.owner,\n name: options.fileName,\n resource: file,\n authentication: options.authentication\n });\n });\n}\n//# sourceMappingURL=fetch-and-upload-resource.js.map","import { fetchImageAsBlob } from \"./fetch-image-as-blob\";\nimport { updateItem } from \"@esri/arcgis-rest-portal\";\n/**\n * Fetch image from a url, then upload to an item as it's thumbnail\n * @param {object} options\n */\nexport function fetchAndUploadThumbnail(options) {\n // first fetch it as a blob...\n return fetchImageAsBlob(options.url)\n .then(function (file) {\n return updateItem({\n item: {\n id: options.id,\n owner: options.owner\n },\n params: {\n fileName: options.fileName,\n thumbnail: file\n },\n authentication: options.authentication\n }).catch(function (_) {\n // resolve b/c this is not crtical\n return Promise.resolve();\n });\n })\n .catch(function (_) {\n return Promise.resolve();\n });\n}\n//# sourceMappingURL=fetch-and-upload-thumbnail.js.map","import { getPortalApiUrl } from \"../urls\";\nimport { getItemThumbnailUrl } from \"./get-item-thumbnail-url\";\nimport { getItemResources } from \"@esri/arcgis-rest-portal\";\n/**\n * Given an item, return an array of assets that includes\n * all the resources, as well as the thumbnail\n * @param {object} item Item\n * @param {IHubRequestOptions} IHubRequestOptions\n */\nexport function getItemAssets(item, hubRequestOptions) {\n var portalRestUrl = getPortalApiUrl(hubRequestOptions.portalSelf);\n var itemUrl = portalRestUrl + \"/content/items/\" + item.id;\n // if construct the asset for the thumbnail\n var thumbnailUrl = getItemThumbnailUrl(item, hubRequestOptions);\n var assets = [];\n if (thumbnailUrl) {\n assets.push({\n name: item.thumbnail,\n url: thumbnailUrl,\n type: \"thumbnail\"\n });\n }\n // get all the other resources\n // TODO: see how this works w/ folders\n return getItemResources(item.id, hubRequestOptions).then(function (response) {\n var resourceAssets = response.resources.map(function (e) {\n return {\n name: e.resource,\n type: \"resource\",\n url: itemUrl + \"/resources/\" + e.resource\n };\n });\n return assets.concat(resourceAssets);\n });\n}\n//# sourceMappingURL=get-item-assets.js.map","/**\n * Given a string, return it as a blob\n * NOTE: USE objectToJsonBlob if you're saving a JSON resource!!!\n * NOTE: This is not currently supported in Node\n * @param {string} the string\n */\nexport function stringToBlob(s, type) {\n if (type === void 0) { type = \"application/octet-stream\"; }\n /* istanbul ignore next */\n if (typeof Blob !== \"undefined\") {\n var bytes = [];\n for (var i = 0; i < s.length; i++) {\n bytes[i] = s.charCodeAt(i);\n }\n var encoded = new Uint8Array(bytes);\n return new Blob([encoded], { type: type });\n }\n else {\n throw new Error(\"stringToBlob is not currently supported on Node\");\n }\n}\n//# sourceMappingURL=string-to-blob.js.map","import { fetchAndUploadResource } from \"./fetch-and-upload-resource\";\nimport { fetchAndUploadThumbnail } from \"./fetch-and-upload-thumbnail\";\nimport { _addTokenToResourceUrl } from \"./_add-token-to-resource-url\";\n/**\n * Given an Item and an array of resources, upload them\n * @param {Object} itemModel Item add the resource to\n * @param {Array} resources Array of resources, with urls, to upload to the item\n * @param {Object} requestOptions {authentication}\n */\nexport function uploadResourcesFromUrl(itemModel, resources, requestOptions) {\n if (Array.isArray(resources)) {\n var resourcePromises = resources.reduce(function (acc, resource) {\n if (resource.url) {\n var opts = {\n id: itemModel.item.id,\n owner: itemModel.item.owner,\n fileName: resource.name,\n url: _addTokenToResourceUrl(resource.url, requestOptions),\n authentication: requestOptions.authentication\n };\n if (resource.type === \"thumbnail\") {\n acc.push(fetchAndUploadThumbnail(opts));\n }\n else {\n // treat as a resource\n acc.push(fetchAndUploadResource(opts));\n }\n }\n return acc;\n }, []);\n // Let them resolve...\n return Promise.all(resourcePromises);\n }\n else {\n return Promise.resolve([]);\n }\n}\n//# sourceMappingURL=upload-resources-from-url.js.map","import { getPortalApiUrl } from \"../urls\";\n/**\n * Add a url property to the entries in the assets hash\n * @param {IModelTemplate} template\n * @param {IHubRequestOptions} hubRequestOptions\n */\nexport function addSolutionResourceUrlToAssets(template, hubRequestOptions) {\n /* istanbul ignore next */\n var assets = template.assets || template.resources || [];\n if (template.bundleItemId) {\n var portalRestUrl = getPortalApiUrl(hubRequestOptions.portalSelf);\n // the resources are stored on the solution item, and that Id is attached\n // into the template as .bundleItemId\n var solutionItemUrl_1 = portalRestUrl + \"/content/items/\" + template.bundleItemId;\n // the resources on the solution are prefixed with the item id of the item the\n // template was created from, which is stored as .itemId\n var prefix_1 = template.itemId;\n // map over the resources and convert them into assets\n assets = assets.map(function (asset) {\n // we fetch the resource from .url property\n // and we upload it using the .name property\n return {\n name: asset.name,\n type: asset.type || \"resource\",\n url: solutionItemUrl_1 + \"/resources/\" + prefix_1 + \"-\" + asset.name\n };\n });\n }\n return assets;\n}\n//# sourceMappingURL=add-solution-resource-url-to-assets.js.map","/**\n * Convert an object to a Blob with type 'application/json'\n * @param {*} obj\n * @returns Blob\n */\nexport function objectToJsonBlob(obj) {\n /* istanbul ignore next */\n if (typeof Blob !== \"undefined\") {\n return new Blob([JSON.stringify(obj)], { type: \"application/json\" });\n }\n else {\n throw new Error(\"objectToJsonBlob is not currently supported on Node\");\n }\n}\n//# sourceMappingURL=object-to-json-blob.js.map","/* Copyright (c) 2018 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\n/**\n * ENUM which defines File extensions.\n */\nexport var FileExtension;\n(function (FileExtension) {\n FileExtension[\"aptx\"] = \"aptx\";\n FileExtension[\"bpk\"] = \"bpk\";\n FileExtension[\"csv\"] = \"csv\";\n FileExtension[\"eaz\"] = \"eaz\";\n FileExtension[\"esriaddin\"] = \"esriaddin\";\n FileExtension[\"esriaddinx\"] = \"esriaddinx\";\n FileExtension[\"doc\"] = \"doc\";\n FileExtension[\"docx\"] = \"docx\";\n FileExtension[\"dlpk\"] = \"dlpk\";\n FileExtension[\"featurecollection\"] = \"featurecollection\";\n FileExtension[\"geojson\"] = \"geojson\";\n FileExtension[\"gcpk\"] = \"gcpk\";\n FileExtension[\"gpk\"] = \"gpk\";\n FileExtension[\"gpkg\"] = \"gpkg\";\n FileExtension[\"gpkx\"] = \"gpkx\";\n FileExtension[\"insightswbk\"] = \"insightswbk\";\n FileExtension[\"ipynb\"] = \"ipynb\";\n FileExtension[\"jpg\"] = \"jpg\";\n FileExtension[\"jpeg\"] = \"jpeg\";\n FileExtension[\"json\"] = \"json\";\n FileExtension[\"key\"] = \"key\";\n FileExtension[\"kml\"] = \"kml\";\n FileExtension[\"kmz\"] = \"kmz\";\n FileExtension[\"lpk\"] = \"lpk\";\n FileExtension[\"lpkx\"] = \"lpkx\";\n FileExtension[\"lyr\"] = \"lyr\";\n FileExtension[\"lyrx\"] = \"lyrx\";\n FileExtension[\"mapx\"] = \"mapx\";\n FileExtension[\"mmpk\"] = \"mmpk\";\n FileExtension[\"mpk\"] = \"mpk\";\n FileExtension[\"mpkx\"] = \"mpkx\";\n FileExtension[\"msd\"] = \"msd\";\n FileExtension[\"mspk\"] = \"mspk\";\n FileExtension[\"mxd\"] = \"mxd\";\n FileExtension[\"ncfg\"] = \"ncfg\";\n FileExtension[\"nmc\"] = \"nmc\";\n FileExtension[\"nmf\"] = \"nmf\";\n FileExtension[\"numbers\"] = \"numbers\";\n FileExtension[\"pages\"] = \"pages\";\n FileExtension[\"pagx\"] = \"pagx\";\n FileExtension[\"parquet\"] = \"parquet\";\n FileExtension[\"pdf\"] = \"pdf\";\n FileExtension[\"pmf\"] = \"pmf\";\n FileExtension[\"png\"] = \"png\";\n FileExtension[\"ppkx\"] = \"ppkx\";\n FileExtension[\"ppt\"] = \"ppt\";\n FileExtension[\"pptx\"] = \"pptx\";\n FileExtension[\"proconfigx\"] = \"proconfigx\";\n FileExtension[\"rpk\"] = \"rpk\";\n FileExtension[\"rptx\"] = \"rptx\";\n FileExtension[\"sd\"] = \"sd\";\n FileExtension[\"slpk\"] = \"slpk\";\n FileExtension[\"spk\"] = \"spk\";\n FileExtension[\"stylx\"] = \"stylx\";\n FileExtension[\"surveyaddin\"] = \"surveyaddin\";\n FileExtension[\"sxd\"] = \"sxd\";\n FileExtension[\"tif\"] = \"tif\";\n FileExtension[\"tiff\"] = \"tiff\";\n FileExtension[\"tpk\"] = \"tpk\";\n FileExtension[\"tpkx\"] = \"tpkx\";\n FileExtension[\"vsd\"] = \"vsd\";\n FileExtension[\"vtpk\"] = \"vtpk\";\n FileExtension[\"wmpk\"] = \"wmpk\";\n FileExtension[\"wpk\"] = \"wpk\";\n FileExtension[\"xls\"] = \"xls\";\n FileExtension[\"xml\"] = \"xml\";\n FileExtension[\"xlsx\"] = \"xlsx\";\n FileExtension[\"zip\"] = \"zip\";\n FileExtension[\"3dd\"] = \"3dd\";\n FileExtension[\"3vr\"] = \"3vr\";\n FileExtension[\"3ws\"] = \"3ws\";\n FileExtension[\"rft.json\"] = \"rft.json\";\n FileExtension[\"rft.xml\"] = \"rft.xml\";\n})(FileExtension || (FileExtension = {}));\n/**\n * ENUM which defines human readable Item Type names\n */\nexport var ItemType;\n(function (ItemType) {\n ItemType[\"360 VR Experience\"] = \"360 VR Experience\";\n ItemType[\"Apache Parquet\"] = \"Apache Parquet\";\n ItemType[\"AppBuilder Widget Package\"] = \"AppBuilder Widget Package\";\n ItemType[\"Desktop Add In\"] = \"Desktop Add In\";\n ItemType[\"Explorer Add In\"] = \"Explorer Add In\";\n ItemType[\"Explorer Map\"] = \"Explorer Map\";\n ItemType[\"Explorer Layer\"] = \"Explorer Layer\";\n ItemType[\"Windows Mobile Package\"] = \"Windows Mobile Package\";\n ItemType[\"ArcGIS Pro Add In\"] = \"ArcGIS Pro Add In\";\n ItemType[\"ArcGIS Pro Configuration\"] = \"ArcGIS Pro Configuration\";\n ItemType[\"Globe Document\"] = \"Globe Document\";\n ItemType[\"Map Document\"] = \"Map Document\";\n ItemType[\"ArcPad Package\"] = \"ArcPad Package\";\n ItemType[\"Published Map\"] = \"Published Map\";\n ItemType[\"Scene Document\"] = \"Scene Document\";\n ItemType[\"CityEngine Web Scene\"] = \"CityEngine Web Scene\";\n ItemType[\"Code Sample\"] = \"Code Sample\";\n ItemType[\"CSV Collection\"] = \"CSV Collection\";\n ItemType[\"CSV\"] = \"CSV\";\n ItemType[\"CAD Drawing\"] = \"CAD Drawing\";\n ItemType[\"Deep Learning Package\"] = \"Deep Learning Package\";\n ItemType[\"Desktop Application\"] = \"Desktop Application\";\n ItemType[\"Desktop Application Template\"] = \"Desktop Application Template\";\n ItemType[\"Desktop Style\"] = \"Desktop Style\";\n ItemType[\"Earth Configuration\"] = \"Earth Configuration\";\n ItemType[\"Feature Collection\"] = \"Feature Collection\";\n ItemType[\"File Geodatabase\"] = \"File Geodatabase\";\n ItemType[\"GeoJson\"] = \"GeoJson\";\n ItemType[\"Geoprocessing Package\"] = \"Geoprocessing Package\";\n ItemType[\"GeoPackage\"] = \"GeoPackage\";\n ItemType[\"Geoprocessing Sample\"] = \"Geoprocessing Sample\";\n ItemType[\"GML\"] = \"GML\";\n ItemType[\"Image Collection\"] = \"Image Collection\";\n ItemType[\"Image\"] = \"Image\";\n ItemType[\"iWork Keynote\"] = \"iWork Keynote\";\n ItemType[\"iWork Numbers\"] = \"iWork Numbers\";\n ItemType[\"iWork Pages\"] = \"iWork Pages\";\n ItemType[\"KML Collection\"] = \"KML Collection\";\n ItemType[\"KML\"] = \"KML\";\n ItemType[\"Layer\"] = \"Layer\";\n ItemType[\"Layer Package\"] = \"Layer Package\";\n ItemType[\"Layout\"] = \"Layout\";\n ItemType[\"Locator Package\"] = \"Locator Package\";\n ItemType[\"Map Package\"] = \"Map Package\";\n ItemType[\"Map Template\"] = \"Map Template\";\n ItemType[\"Microsoft Excel\"] = \"Microsoft Excel\";\n ItemType[\"Microsoft Powerpoint\"] = \"Microsoft Powerpoint\";\n ItemType[\"Visio Document\"] = \"Visio Document\";\n ItemType[\"Microsoft Word\"] = \"Microsoft Word\";\n ItemType[\"Mobile Basemap Package\"] = \"Mobile Basemap Package\";\n ItemType[\"Mobile Map Package\"] = \"Mobile Map Package\";\n ItemType[\"Mobile Scene Package\"] = \"Mobile Scene Package\";\n ItemType[\"Notebook\"] = \"Notebook\";\n ItemType[\"PDF\"] = \"PDF\";\n ItemType[\"Pro Map\"] = \"Pro Map\";\n ItemType[\"Pro Report\"] = \"Pro Report\";\n ItemType[\"Project Package\"] = \"Project Package\";\n ItemType[\"Project Template\"] = \"Project Template\";\n ItemType[\"Raster function template\"] = \"Raster function template\";\n ItemType[\"Rule Package\"] = \"Rule Package\";\n ItemType[\"Scene Package\"] = \"Scene Package\";\n ItemType[\"Service Definition\"] = \"Service Definition\";\n ItemType[\"Shapefile\"] = \"Shapefile\";\n ItemType[\"Survey123 Add In\"] = \"Survey123 Add In\";\n ItemType[\"Tile Package\"] = \"Tile Package\";\n ItemType[\"Vector Tile Package\"] = \"Vector Tile Package\";\n ItemType[\"Workflow Manager Package\"] = \"Workflow Manager Package\";\n ItemType[\"Document Link\"] = \"Document Link\";\n ItemType[\"Feature Service\"] = \"Feature Service\";\n ItemType[\"Geocoding Service\"] = \"Geocoding Service\";\n ItemType[\"Geodata Service\"] = \"Geodata Service\";\n ItemType[\"Geometry Service\"] = \"Geometry Service\";\n ItemType[\"Geoprocessing Service\"] = \"Geoprocessing Service\";\n ItemType[\"Geoenrichment Service\"] = \"Geoenrichment Service\";\n ItemType[\"Globe Service\"] = \"Globe Service\";\n ItemType[\"Image Service\"] = \"Image Service\";\n ItemType[\"Map Service\"] = \"Map Service\";\n ItemType[\"Network Analysis Service\"] = \"Network Analysis Service\";\n ItemType[\"Vector Tile Service\"] = \"Vector Tile Service\";\n ItemType[\"WFS\"] = \"WFS\";\n ItemType[\"WMS\"] = \"WMS\";\n ItemType[\"WMTS\"] = \"WMTS\";\n ItemType[\"OGCFeatureServer\"] = \"OGCFeatureServer\";\n ItemType[\"Scene Service\"] = \"Scene Service\";\n ItemType[\"Stream Service\"] = \"Stream Service\";\n ItemType[\"Workflow Manager Service\"] = \"Workflow Manager Service\";\n ItemType[\"Web Mapping Application\"] = \"Web Mapping Application\";\n ItemType[\"Mobile Application\"] = \"Mobile Application\";\n ItemType[\"AppBuilder Extension\"] = \"AppBuilder Extension\";\n ItemType[\"Google Drive\"] = \"Google Drive\";\n ItemType[\"Dropbox\"] = \"Dropbox\";\n ItemType[\"OneDrive\"] = \"OneDrive\";\n ItemType[\"StoryMap\"] = \"StoryMap\";\n ItemType[\"Dashboard\"] = \"Dashboard\";\n ItemType[\"Hub Initiative\"] = \"Hub Initiative\";\n ItemType[\"Hub Site Application\"] = \"Hub Site Application\";\n ItemType[\"Web Experience\"] = \"Web Experience\";\n ItemType[\"Insights Workbook Package\"] = \"Insights Workbook Package\";\n ItemType[\"Application\"] = \"Application\";\n ItemType[\"ArcGIS Explorer Application Configuration\"] = \"ArcGIS Explorer Application Configuration\";\n ItemType[\"ArcMap Document\"] = \"ArcMap Document\";\n ItemType[\"Layer File\"] = \"Layer File\";\n ItemType[\"ogcFeature\"] = \"ogcFeature\";\n ItemType[\"FeatureServer\"] = \"Feature Service\";\n ItemType[\"GeocodeServer\"] = \"GeocodeServer\";\n ItemType[\"GeoDataServer\"] = \"GeoDataServer\";\n ItemType[\"GeometryServer\"] = \"GeometryServer\";\n ItemType[\"GeoenrichmentServer\"] = \"GeoenrichmentServer\";\n ItemType[\"GPServer\"] = \"GPServer\";\n ItemType[\"GlobeServer\"] = \"GlobeServer\";\n ItemType[\"ImageServer\"] = \"ImageServer\";\n ItemType[\"MapServer\"] = \"MapServer\";\n ItemType[\"NAServer\"] = \"NAServer\";\n ItemType[\"ElevationServer\"] = \"ElevationServer\";\n ItemType[\"VectorTileServer\"] = \"VectorTileServer\";\n ItemType[\"Scene Server\"] = \"Scene Server\";\n ItemType[\"StreamServer\"] = \"StreamServer\";\n ItemType[\"WMServer\"] = \"WMServer\";\n ItemType[\"TiledImageServer\"] = \"TiledImageServer\";\n})(ItemType || (ItemType = {}));\n/**\n * Maps human readable file names to extensions IE Image === jpg, png, etc\n */\nexport var addCreateItemTypes = {\n \"360 VR Experience\": {\n fileExt: [FileExtension[\"3dd\"]],\n type: ItemType[\"360 VR Experience\"],\n typeKeywords: [],\n },\n \"Apache Parquet\": {\n fileExt: [FileExtension.parquet],\n type: ItemType[\"Apache Parquet\"],\n typeKeywords: [],\n },\n \"AppBuilder Widget Package\": {\n fileExt: [FileExtension.zip],\n type: ItemType[\"AppBuilder Widget Package\"],\n typeKeywords: [],\n },\n \"Desktop Add In\": {\n fileExt: [FileExtension.esriaddin],\n type: ItemType[\"Desktop Add In\"],\n typeKeywords: [\n \"Tool\",\n \"Add In\",\n \"Desktop Add In\",\n \"ArcGIS Desktop\",\n \"ArcMap\",\n \"ArcGlobe\",\n \"ArcScene\",\n \"esriaddin\",\n ],\n },\n \"Explorer Add In\": {\n fileExt: [FileExtension.eaz],\n type: ItemType[\"Explorer Add In\"],\n typeKeywords: [\n \"Tool\",\n \"Add In\",\n \"Explorer Add In\",\n \"ArcGIS Explorer\",\n \"eaz\",\n ],\n },\n \"Explorer Map\": {\n fileExt: [FileExtension.nmf],\n type: ItemType[\"Explorer Map\"],\n typeKeywords: [\n \"Map\",\n \"Explorer Map\",\n \"Explorer Document\",\n \"2D\",\n \"3D\",\n \"ArcGIS Explorer\",\n \"nmf\",\n ],\n },\n \"ArcGIS Explorer Application Configuration\": {\n fileExt: [FileExtension.ncfg],\n type: ItemType[\"Explorer Map\"],\n typeKeywords: [\n \"Map\",\n \"Explorer Map\",\n \"Explorer Mapping Application\",\n \"2D\",\n \"3D\",\n \"ArcGIS Explorer\",\n ],\n },\n \"Explorer Layer\": {\n fileExt: [FileExtension.nmc],\n type: ItemType[\"Explorer Layer\"],\n typeKeywords: [\"Data\", \"Layer\", \"Explorer Layer\", \"ArcGIS Explorer\", \"nmc\"],\n },\n \"Windows Mobile Package\": {\n fileExt: [FileExtension.wmpk],\n type: ItemType[\"Windows Mobile Package\"],\n typeKeywords: [],\n },\n \"ArcGIS Pro Add In\": {\n fileExt: [FileExtension.esriaddinx],\n type: ItemType[\"ArcGIS Pro Add In\"],\n typeKeywords: [\"Tool\", \"Add In\", \"Pro Add In\", \"esriaddinx\"],\n },\n \"ArcGIS Pro Configuration\": {\n fileExt: [FileExtension.proconfigx],\n type: ItemType[\"ArcGIS Pro Configuration\"],\n typeKeywords: [],\n },\n \"Globe Document\": {\n fileExt: [FileExtension[\"3dd\"]],\n type: ItemType[\"Globe Document\"],\n typeKeywords: [\n \"Map\",\n \"Globe Document\",\n \"3D\",\n \"ArcGlobe\",\n \"ArcGIS Server\",\n \"3dd\",\n ],\n },\n \"Map Document\": {\n fileExt: [FileExtension.msd],\n type: ItemType[\"Map Document\"],\n typeKeywords: [\n \"Map Document\",\n \"Map\",\n \"2D\",\n \"ArcMap\",\n \"ArcGIS Server\",\n \"msd\",\n ],\n },\n \"ArcMap Document\": {\n fileExt: [FileExtension.mxd],\n type: ItemType[\"Map Document\"],\n typeKeywords: [\"Map Document\", \"Map\", \"2D\", \"ArcMap\", \"ArcGIS Server\"],\n },\n \"ArcPad Package\": {\n fileExt: [FileExtension.zip],\n type: ItemType[\"ArcPad Package\"],\n typeKeywords: [\"Map\", \"Layer\", \"Data\"],\n },\n \"Published Map\": {\n fileExt: [FileExtension.pmf],\n type: ItemType[\"Published Map\"],\n typeKeywords: [\n \"Map\",\n \"Published Map\",\n \"2D\",\n \"ArcReader\",\n \"ArcMap\",\n \"ArcGIS Server\",\n \"pmf\",\n ],\n },\n \"Scene Document\": {\n fileExt: [FileExtension.sxd],\n type: ItemType[\"Scene Document\"],\n typeKeywords: [\"Map\", \"Scene Document\", \"3D\", \"ArcScene\", \"sxd\"],\n },\n \"CityEngine Web Scene\": {\n fileExt: [FileExtension[\"3ws\"]],\n type: ItemType[\"CityEngine Web Scene\"],\n typeKeywords: [\"3D\", \"Map\", \"Scene\", \"Web\"],\n },\n \"Code Sample\": {\n fileExt: [FileExtension.zip],\n type: ItemType[\"Code Sample\"],\n typeKeywords: [\"Code\", \"Sample\"],\n },\n \"CSV Collection\": {\n fileExt: [FileExtension.zip],\n type: ItemType[\"CSV Collection\"],\n typeKeywords: [],\n },\n CSV: {\n fileExt: [FileExtension.csv],\n type: ItemType.CSV,\n typeKeywords: [\"CSV\"],\n },\n \"CAD Drawing\": {\n fileExt: [FileExtension.zip],\n type: ItemType[\"CAD Drawing\"],\n typeKeywords: [],\n },\n \"Deep Learning Package\": {\n fileExt: [FileExtension.zip, FileExtension.dlpk],\n type: ItemType[\"Deep Learning Package\"],\n typeKeywords: [\"Deep Learning\", \"Raster\"],\n },\n \"Desktop Application\": {\n type: ItemType[\"Desktop Application\"],\n typeKeywords: [\"Desktop Application\"],\n },\n \"Desktop Application Template\": {\n fileExt: [FileExtension.zip],\n type: ItemType[\"Desktop Application Template\"],\n typeKeywords: [\"application\", \"template\", \"ArcGIS desktop\"],\n },\n \"Desktop Style\": {\n fileExt: [FileExtension.stylx],\n type: ItemType[\"Desktop Style\"],\n typeKeywords: [\"ArcGIS Pro\", \"Symbology\", \"Style\", \"Symbols\"],\n },\n \"Earth Configuration\": {\n fileExt: [FileExtension.xml],\n type: ItemType[\"Earth Configuration\"],\n typeKeywords: [\"ArcGIS Earth\", \"Earth\", \"Earth Configuration\"],\n },\n \"Feature Collection\": {\n type: ItemType[\"Feature Collection\"],\n fileExt: [FileExtension.featurecollection],\n typeKeywords: [],\n },\n \"File Geodatabase\": {\n fileExt: [FileExtension.zip],\n type: ItemType[\"File Geodatabase\"],\n typeKeywords: [],\n },\n GeoJson: {\n fileExt: [FileExtension.geojson, FileExtension.json],\n type: ItemType.GeoJson,\n typeKeywords: [\n \"Coordinates Type\",\n \"CRS\",\n \"Feature\",\n \"FeatureCollection\",\n \"GeoJSON\",\n \"Geometry\",\n \"GeometryCollection\",\n ],\n },\n \"Geoprocessing Package\": {\n fileExt: [FileExtension.gpk, FileExtension.gpkx],\n type: ItemType[\"Geoprocessing Package\"],\n typeKeywords: [\n \"ArcGIS Desktop\",\n \"ArcGlobe\",\n \"ArcMap\",\n \"ArcScene\",\n \"Geoprocessing Package\",\n \"gpk\",\n \"Model\",\n \"Result\",\n \"Script\",\n \"Sharing\",\n \"Tool\",\n \"Toolbox\",\n ],\n },\n GeoPackage: {\n fileExt: [FileExtension.gpkg],\n type: ItemType.GeoPackage,\n typeKeywords: [\"Data\", \"GeoPackage\", \"gpkg\"],\n },\n \"Geoprocessing Sample\": {\n fileExt: [FileExtension.zip],\n type: ItemType[\"Geoprocessing Sample\"],\n typeKeywords: [\"tool\", \"geoprocessing\", \"sample\"],\n },\n GML: {\n fileExt: [FileExtension.zip],\n type: ItemType.GML,\n typeKeywords: [],\n },\n \"Image Collection\": {\n fileExt: [FileExtension.zip],\n type: ItemType[\"Image Collection\"],\n typeKeywords: [],\n },\n Image: {\n fileExt: [\n FileExtension.jpg,\n FileExtension.jpeg,\n FileExtension.png,\n FileExtension.tif,\n FileExtension.tiff,\n ],\n type: ItemType.Image,\n typeKeywords: [\"Data\", \"Image\"],\n },\n \"iWork Keynote\": {\n fileExt: [FileExtension.key],\n type: ItemType[\"iWork Keynote\"],\n typeKeywords: [\"Data\", \"Document\", \"Mac\"],\n },\n \"iWork Numbers\": {\n fileExt: [FileExtension.numbers],\n type: ItemType[\"iWork Numbers\"],\n typeKeywords: [\"Data\", \"Document\", \"Mac\"],\n },\n \"iWork Pages\": {\n fileExt: [FileExtension.pages],\n type: ItemType[\"iWork Pages\"],\n typeKeywords: [\"Data\", \"Document\", \"Mac\"],\n },\n \"KML Collection\": {\n fileExt: [FileExtension.zip],\n type: ItemType[\"KML Collection\"],\n typeKeywords: [],\n },\n KML: {\n type: ItemType.KML,\n fileExt: [FileExtension.kml, FileExtension.kmz],\n typeKeywords: [\"Data\", \"Map\", \"kml\"],\n },\n Layer: {\n fileExt: [FileExtension.lyr],\n type: ItemType.Layer,\n typeKeywords: [\n \"Data\",\n \"Layer\",\n \"ArcMap\",\n \"ArcGlobe\",\n \"ArcGIS Explorer\",\n \"lyr\",\n ],\n },\n \"Layer File\": {\n fileExt: [FileExtension.lyrx],\n type: ItemType.Layer,\n typeKeywords: [\"ArcGIS Pro\", \"Layer\", \"Layer File\"],\n },\n \"Layer Package\": {\n fileExt: [FileExtension.lpk, FileExtension.lpkx],\n type: ItemType[\"Layer Package\"],\n typeKeywords: [],\n },\n Layout: {\n fileExt: [FileExtension.pagx],\n type: ItemType.Layout,\n typeKeywords: [\"ArcGIS Pro\", \"Layout\", \"Layout File\", \"pagx\"],\n },\n \"Locator Package\": {\n fileExt: [FileExtension.gcpk],\n type: ItemType[\"Locator Package\"],\n typeKeywords: [],\n },\n \"Map Package\": {\n fileExt: [FileExtension.mpk, FileExtension.mpkx],\n type: ItemType[\"Map Package\"],\n typeKeywords: [],\n },\n \"Map Template\": {\n fileExt: [FileExtension.zip],\n type: ItemType[\"Map Template\"],\n typeKeywords: [\"map\", \"ArcMap\", \"template\", \"ArcGIS desktop\"],\n },\n \"Microsoft Excel\": {\n fileExt: [FileExtension.xls, FileExtension.xlsx],\n type: ItemType[\"Microsoft Excel\"],\n typeKeywords: [\"Data\", \"Document\", \"Microsoft Excel\"],\n },\n \"Microsoft Powerpoint\": {\n fileExt: [FileExtension.ppt, FileExtension.pptx],\n type: ItemType[\"Microsoft Powerpoint\"],\n typeKeywords: [\"Data\", \"Document\", \"Microsoft Powerpoint\"],\n },\n \"Visio Document\": {\n fileExt: [FileExtension.vsd],\n type: ItemType[\"Visio Document\"],\n typeKeywords: [\"Data\", \"Document\", \"Visio Document\"],\n },\n \"Microsoft Word\": {\n fileExt: [FileExtension.doc, FileExtension.docx],\n type: ItemType[\"Microsoft Word\"],\n typeKeywords: [\"Data\", \"Document\"],\n },\n \"Mobile Basemap Package\": {\n fileExt: [FileExtension.bpk],\n type: ItemType[\"Mobile Basemap Package\"],\n typeKeywords: [],\n },\n \"Mobile Map Package\": {\n fileExt: [FileExtension.mmpk],\n type: ItemType[\"Mobile Map Package\"],\n typeKeywords: [],\n },\n \"Mobile Scene Package\": {\n fileExt: [FileExtension.mspk],\n type: ItemType[\"Mobile Scene Package\"],\n typeKeywords: [],\n },\n Notebook: {\n fileExt: [FileExtension.ipynb],\n type: ItemType.Notebook,\n typeKeywords: [\"Notebook\", \"Python\"],\n },\n PDF: {\n fileExt: [FileExtension.pdf],\n type: ItemType.PDF,\n typeKeywords: [\"Data\", \"Document\", \"PDF\"],\n },\n \"Pro Map\": {\n fileExt: [FileExtension.mapx],\n type: ItemType[\"Pro Map\"],\n typeKeywords: [\"ArcGIS Pro\", \"Map\", \"Map File\", \"mapx\"],\n },\n \"Pro Report\": {\n fileExt: [FileExtension.rptx],\n type: ItemType[\"Pro Report\"],\n typeKeywords: [],\n },\n \"Project Package\": {\n fileExt: [FileExtension.ppkx],\n type: ItemType[\"Project Package\"],\n typeKeywords: [],\n },\n \"Project Template\": {\n fileExt: [FileExtension.aptx],\n type: ItemType[\"Project Template\"],\n typeKeywords: [],\n },\n \"Raster function template\": {\n fileExt: [FileExtension[\"rft.json\"], FileExtension[\"rft.xml\"]],\n type: ItemType[\"Raster function template\"],\n typeKeywords: [\n \"Raster\",\n \"Functions\",\n \"Processing\",\n \"rft\",\n \"srf\",\n \"function template\",\n \"templates\",\n \"ArcGIS Pro\",\n ],\n },\n \"Rule Package\": {\n fileExt: [FileExtension.rpk],\n type: ItemType[\"Rule Package\"],\n typeKeywords: [],\n },\n \"Scene Package\": {\n fileExt: [FileExtension.slpk, FileExtension.spk],\n type: ItemType[\"Scene Package\"],\n typeKeywords: [],\n },\n \"Service Definition\": {\n fileExt: [FileExtension.sd],\n type: ItemType[\"Service Definition\"],\n typeKeywords: [\"Data\", \"Service\", \"Service Definition\"],\n },\n Shapefile: {\n fileExt: [FileExtension.zip],\n type: ItemType.Shapefile,\n typeKeywords: [\"Data\", \"Layer\", \"shapefile\"],\n },\n \"Survey123 Add In\": {\n fileExt: [FileExtension.surveyaddin],\n type: ItemType[\"Survey123 Add In\"],\n typeKeywords: [\"Add In\", \"Survey123 Add In\", \"Tool\"],\n },\n \"Tile Package\": {\n fileExt: [FileExtension.tpk, FileExtension.tpkx],\n type: ItemType[\"Tile Package\"],\n typeKeywords: [],\n },\n \"Vector Tile Package\": {\n fileExt: [FileExtension.vtpk],\n type: ItemType[\"Vector Tile Package\"],\n typeKeywords: [],\n },\n \"Workflow Manager Package\": {\n fileExt: [FileExtension.wpk],\n type: ItemType[\"Workflow Manager Package\"],\n typeKeywords: [],\n },\n \"Document Link\": {\n type: ItemType[\"Document Link\"],\n typeKeywords: [\"Data\", \"Document\"],\n },\n \"Feature Service\": {\n type: ItemType[\"Feature Service\"],\n typeKeywords: [\n \"ArcGIS Server\",\n \"Data\",\n \"Feature Access\",\n \"Feature Service\",\n \"Service\",\n \"Singlelayer\",\n \"Hosted Service\",\n ],\n },\n GeocodeServer: {\n type: ItemType[\"Geocoding Service\"],\n typeKeywords: [\n \"ArcGIS Server\",\n \"Geocoding Service\",\n \"Locator Service\",\n \"Service\",\n \"Tool\",\n \"Service Proxy\",\n ],\n },\n GeoDataServer: {\n type: ItemType[\"Geodata Service\"],\n typeKeywords: [\"Data\", \"Service\", \"Geodata Service\", \"ArcGIS Server\"],\n },\n GeometryServer: {\n type: ItemType[\"Geometry Service\"],\n typeKeywords: [\"Tool\", \"Service\", \"Geometry Service\", \"ArcGIS Server\"],\n },\n GeoenrichmentServer: {\n type: ItemType[\"Geoenrichment Service\"],\n typeKeywords: [\"Geoenrichment Service\", \"ArcGIS Server\"],\n },\n GPServer: {\n type: ItemType[\"Geoprocessing Service\"],\n typeKeywords: [\"Tool\", \"Service\", \"Geoprocessing Service\", \"ArcGIS Server\"],\n },\n GlobeServer: {\n type: ItemType[\"Globe Service\"],\n typeKeywords: [\"Data\", \"Service\", \"Globe Service\", \"ArcGIS Server\"],\n },\n ImageServer: {\n type: ItemType[\"Image Service\"],\n typeKeywords: [\"Data\", \"Service\", \"Image Service\", \"ArcGIS Server\"],\n },\n MapServer: {\n type: ItemType[\"Map Service\"],\n typeKeywords: [\"Data\", \"Service\", \"Map Service\", \"ArcGIS Server\"],\n },\n NAServer: {\n type: ItemType[\"Network Analysis Service\"],\n typeKeywords: [\n \"Tool\",\n \"Service\",\n \"Network Analysis Service\",\n \"ArcGIS Server\",\n ],\n },\n ElevationServer: {\n type: ItemType[\"Image Service\"],\n typeKeywords: [\"Elevation 3D Layer\"],\n },\n VectorTileServer: {\n type: ItemType[\"Vector Tile Service\"],\n typeKeywords: [],\n },\n WFS: {\n type: ItemType.WFS,\n typeKeywords: [\"Data\", \"Service\", \"Web Feature Service\", \"OGC\"],\n },\n WMS: {\n type: ItemType.WMS,\n typeKeywords: [\"Data\", \"Service\", \"Web Map Service\", \"OGC\"],\n },\n WMTS: {\n type: ItemType.WMTS,\n typeKeywords: [\"Data\", \"Service\", \"OGC\"],\n },\n ogcFeature: {\n type: ItemType.OGCFeatureServer,\n typeKeywords: [\n \"Data\",\n \"Service\",\n \"Feature Service\",\n \"OGC\",\n \"OGC Feature Service\",\n ],\n },\n SceneServer: {\n type: ItemType[\"Scene Service\"],\n typeKeywords: [\"Scene Service\"],\n },\n StreamServer: {\n type: ItemType[\"Stream Service\"],\n typeKeywords: [\"Data\", \"Service\", \"Stream Service\", \"ArcGIS Server\"],\n },\n WMServer: {\n type: ItemType[\"Workflow Manager Service\"],\n typeKeywords: [\n \"Workflow Manager\",\n \"ArcGIS Server\",\n \"WMServer\",\n \"Workflow\",\n \"JTX\",\n \"Job Tracking\",\n ],\n },\n TiledImageServer: {\n type: ItemType[\"Image Service\"],\n typeKeywords: [\"Tiled Imagery\"],\n },\n \"Web Mapping Application\": {\n type: ItemType[\"Web Mapping Application\"],\n typeKeywords: [\n \"JavaScript\",\n \"Map\",\n \"Mapping Site\",\n \"Online Map\",\n \"Ready To Use\",\n \"Web AppBuilder\",\n \"Web Map (+ WAB2D or WAB3D)\",\n ],\n },\n \"Mobile Application\": {\n type: ItemType[\"Mobile Application\"],\n typeKeywords: [\"ArcGIS Mobile Map\", \"Mobile Application\"],\n },\n \"AppBuilder Extension\": {\n type: ItemType[\"AppBuilder Extension\"],\n typeKeywords: [\"Widget\", \"App Builder\"],\n },\n \"Google Drive\": {\n type: ItemType[\"Google Drive\"],\n typeKeywords: [\"CSV\", \"Shapefile\", \"GeoJSON\", \"Excel\", \"FileGeodatabase\"],\n },\n Dropbox: {\n type: ItemType.Dropbox,\n typeKeywords: [\"CSV\", \"Shapefile\", \"GeoJSON\", \"Excel\", \"FileGeodatabase\"],\n },\n OneDrive: {\n type: ItemType.OneDrive,\n typeKeywords: [\"CSV\", \"Shapefile\", \"GeoJSON\", \"Excel\", \"FileGeodatabase\"],\n },\n \"Map Service\": {\n type: ItemType[\"Map Service\"],\n typeKeywords: [\n \"ArcGIS Server\",\n \"Data\",\n \"Map Service\",\n \"Service\",\n \"Hosted Service\",\n ],\n },\n StoryMap: {\n type: ItemType.StoryMap,\n typeKeywords: [\n \"arcgis-storymaps\",\n \"StoryMap\",\n \"Web Application (smstatusdraft or smsstatuspublished)\",\n ],\n },\n Dashboard: {\n type: ItemType.Dashboard,\n typeKeywords: [\"Dashboard\", \"Operations Dashboard\"],\n },\n \"Hub Initiative\": {\n type: ItemType[\"Hub Initiative\"],\n typeKeywords: [\"Hub\", \"hubInitiative\", \"OpenData\"],\n },\n \"Hub Site Application\": {\n type: ItemType[\"Hub Site Application\"],\n typeKeywords: [\n \"Hub\",\n \"hubSite\",\n \"hubSolution\",\n \"JavaScript\",\n \"Map\",\n \"Mapping Site\",\n \"Online Map\",\n \"OpenData\",\n \"Ready To Use\",\n \"selfConfigured\",\n \"Web Map\",\n \"Registered App\",\n ],\n },\n \"Web Experience\": {\n type: ItemType[\"Web Experience\"],\n typeKeywords: [\n \"EXB Experience\",\n \"JavaScript\",\n \"Ready To Use Web Application\",\n \"Web Experience\",\n \"Web Mapping Application\",\n \"Web Page\",\n \"Web Site\",\n ],\n },\n \"Insights Workbook Package\": {\n type: ItemType[\"Insights Workbook Package\"],\n fileExt: [FileExtension.insightswbk],\n typeKeywords: [\"Insights\", \"Insights Workbook Package\"],\n },\n};\n//# sourceMappingURL=types.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { ItemType } from \"../../types\";\nimport { Logger } from \"../../utils\";\nvar FEATURE_SERVICE_URL_REGEX = /(feature)server(\\/|\\/(\\d+))?$/i;\nvar SERVICE_URL_REGEX = /\\/[a-zA-Z]+server(\\/|\\/(\\d+))?$/i;\n/**\n * Feature service / Doc Links Should not have data urls. Let\"s exclude them from that.\n *\n * @export\n * @param {string} itemType What type of item is it?\n * @return {*} {boolean}\n */\nexport function shouldHaveDataUrl(itemType) {\n // Specifically we want to avoid FS / DL from having a data url.\n return ![\"Feature Service\", \"Document Link\"].includes(itemType);\n}\n/**\n * Get the file name out of a url. Will return either the\n * hostname, or the pathname if it exists\n *\n * @export\n * @param {string} url Url to get a file name out of\n * @return {*} {string}\n */\nexport function getFileName(url) {\n var filename;\n try {\n var parsed = new URL(url);\n // If the URL pathname exists, return its last segment,\n // otherwise return the hostname\n filename =\n parsed.pathname !== \"/\"\n ? parsed.pathname.split(\"/\").pop()\n : parsed.hostname;\n }\n catch (e) {\n throw new Error(\"Error getting file name from data url\");\n }\n return filename;\n}\n/**\n * Is this a valid url?\n *\n * @param {string} url Url to validate\n * @return {*} {boolean}\n */\nexport function isUrl(url) {\n // Use try / catch as a simple string \"test\" will cause new URL() to throw an error.\n try {\n var result = new URL(url);\n // Cast to bool.\n return !!result;\n }\n catch (e) {\n Logger.error(\"Error parsing data url\");\n return false;\n }\n}\n/**\n * Tests if url string is a feature service / layer.\n *\n * @param {string} url URL to test\n * @return {*} {boolean}\n */\nexport function isFeatureService(url) {\n return FEATURE_SERVICE_URL_REGEX.test(url);\n}\n/**\n * Tests if url string is a service (map, feature, image, etc)\n *\n * @param {string} url Url to test\n * @return {*} {boolean}\n */\nexport function isService(url) {\n return SERVICE_URL_REGEX.test(url);\n}\n/**\n * Is the service a feature service AND is it a layer specifically\n *\n * @param {string} url\n * @return {*} {boolean}\n */\nexport function isFeatureLayer(url) {\n var results = url.match(FEATURE_SERVICE_URL_REGEX);\n return results && !!results[3];\n}\n/**\n * Gets item title from url as a fall back\n *\n * @param {string} url item url\n * @return {*} {string}\n */\nexport function getFeatureServiceTitle(url) {\n return url.match(/\\/services\\/(.+)\\/(feature|map|image)server/i)[1];\n}\n/**\n * Gets item info out of a feature layer item.\n *\n * @export\n * @param url Item URL\n * @param body Item body.\n * @return Item info (title, description, extent, url)\n */\nexport function getFeatureLayerItem(url, body) {\n return {\n title: body.name,\n description: body.description,\n extent: body.extent,\n url: url,\n };\n}\n/**\n * Gets item info out of a feature service response (which is not a specific layer)\n *\n * @export\n * @param {*} url\n * @param {*} body\n * @return {*}\n */\nexport function getFeatureServiceItem(url, body) {\n var description = body.serviceDescription || body.description;\n var title = getFeatureServiceTitle(url);\n var extent = body.fullExtent || body.initialExtent;\n return { title: title, description: description, extent: extent, url: url };\n}\n/**\n * Ping a non FS url and return response status && headers\n *\n * @export\n * @param {string} url Non FS URL\n * @return {*} {Promise<{ ok: boolean, headers: Headers }>}\n */\nexport function pingUrl(url) {\n return __awaiter(this, void 0, void 0, function () {\n var response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, fetch(url, { method: \"HEAD\" })];\n case 1:\n response = _a.sent();\n return [2 /*return*/, {\n ok: response.ok,\n headers: response.headers,\n }];\n }\n });\n });\n}\n/**\n * Ping a FS URL and handle matters such as \"hidden\" success failures.\n *\n * @export\n * @param {string} url\n * @return {*} {Promise<{ ok: boolean, item?: any }>}\n */\nexport function pingFeatureService(url) {\n return __awaiter(this, void 0, void 0, function () {\n var parsed, response, body, getItem, item;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n parsed = new URL(url);\n parsed.searchParams.set(\"f\", \"json\");\n return [4 /*yield*/, fetch(parsed.href)];\n case 1:\n response = _a.sent();\n if (!response.ok) {\n return [2 /*return*/, { ok: false }];\n }\n return [4 /*yield*/, response.json()];\n case 2:\n body = _a.sent();\n // Exit if the request returns an error\n if (body.error) {\n return [2 /*return*/, { ok: false }];\n }\n getItem = isFeatureLayer(url)\n ? getFeatureLayerItem\n : getFeatureServiceItem;\n item = getItem(url, body);\n return [2 /*return*/, {\n ok: true,\n item: item,\n }];\n }\n });\n });\n}\nexport function detectDataTypeFromHeader(headers) {\n var contentType = headers.get(\"Content-Type\");\n var dataType;\n if (!contentType) {\n return;\n }\n // Only get the \"media-type\"\n contentType = contentType.split(\";\").shift();\n if (contentType === \"text/csv\") {\n dataType = ItemType.CSV;\n }\n else if (contentType === \"application/vnd.ms-excel\" ||\n contentType ===\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\") {\n dataType = ItemType[\"Microsoft Excel\"];\n }\n else if (contentType === \"application/pdf\") {\n dataType = ItemType.PDF;\n }\n else if (contentType === \"image/jpeg\" ||\n contentType === \"image/jpg\" ||\n contentType === \"image/png\") {\n dataType = ItemType.Image;\n }\n else if (contentType === \"application/geo+json\") {\n dataType = ItemType.GeoJson;\n }\n return dataType;\n}\nexport function detectDataTypeFromExtension(url) {\n var contentType = url.toLowerCase().split(\".\").pop();\n var dataType;\n if (contentType === \"csv\") {\n dataType = ItemType.CSV;\n }\n else if (contentType === \"xls\" || contentType === \"xlsx\") {\n dataType = ItemType[\"Microsoft Excel\"];\n }\n else if (contentType === \"pdf\") {\n dataType = ItemType.PDF;\n }\n else if (contentType === \"jpeg\" ||\n contentType === \"jpg\" ||\n contentType === \"png\") {\n dataType = ItemType.Image;\n }\n else if (contentType === \"geojson\") {\n dataType = ItemType.GeoJson;\n }\n return dataType;\n}\n//# sourceMappingURL=_validate-url-helpers.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { ItemType } from \"../types\";\nimport { Logger } from \"../utils\";\nimport { isUrl, isFeatureService, isService, pingFeatureService, pingUrl, detectDataTypeFromHeader, getFileName, detectDataTypeFromExtension, shouldHaveDataUrl, } from \"./_internal/_validate-url-helpers\";\n/**\n * Takes in a URL and validates it based on valid url, type of item, etc\n *\n * @export\n * @param {string} url\n * @return {*} {Promise<any>}\n */\nexport function validateUrl(url) {\n return __awaiter(this, void 0, void 0, function () {\n var isFeatureServiceUrl, isServiceUrl, type, item, pingResult, _a, e_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n // If URL doesn't pass then exit out immediately.\n if (!isUrl(url)) {\n return [2 /*return*/, {\n pass: false,\n error: \"invalidFormat\",\n }];\n }\n isFeatureServiceUrl = isFeatureService(url);\n isServiceUrl = isService(url);\n if (isServiceUrl && !isFeatureServiceUrl) {\n return [2 /*return*/, {\n pass: false,\n error: \"invalidFormat\",\n }];\n }\n pingResult = {};\n _b.label = 1;\n case 1:\n _b.trys.push([1, 6, , 7]);\n if (!isFeatureServiceUrl) return [3 /*break*/, 3];\n return [4 /*yield*/, pingFeatureService(url)];\n case 2:\n _a = _b.sent();\n return [3 /*break*/, 5];\n case 3: return [4 /*yield*/, pingUrl(url)];\n case 4:\n _a = _b.sent();\n _b.label = 5;\n case 5:\n pingResult = _a;\n // return an error if the response is not okay\n if (!pingResult.ok) {\n return [2 /*return*/, {\n pass: false,\n error: \"invalidUrl\",\n }];\n }\n return [3 /*break*/, 7];\n case 6:\n e_1 = _b.sent();\n // TODO: This is tricky. The fetch() API rejects when a network error\n // happens. This error can be a CORS error, or a 404 error, or a timeout\n // error. While an error like 404 does suggest a bad URL, the CORS occurs\n // because this is a front-end request and the file is likely accessible by\n // the server. Unfortunately, the error doesn't have any information about\n // underline failure type. For now, the network failure is ignored, so the\n // user can paste a URL from any domain and avoid the CORS issue.\n Logger.error(\"error requesting url\");\n return [3 /*break*/, 7];\n case 7:\n // Use the metadata from the ping response if exists, otherwise guess the file\n // name from the URL\n if (pingResult.item) {\n item = pingResult.item;\n }\n else {\n item = { title: getFileName(url), url: url };\n }\n if (pingResult.headers) {\n type = detectDataTypeFromHeader(pingResult.headers);\n }\n if (isFeatureServiceUrl) {\n type = ItemType[\"Feature Service\"];\n }\n else if (!type) {\n // Guess the data type from the extension\n type = detectDataTypeFromExtension(url);\n }\n if (type) {\n item.type = type;\n }\n if (item.type && shouldHaveDataUrl(item.type)) {\n item.dataUrl = item.url;\n }\n return [2 /*return*/, {\n pass: true,\n // The type may or may not be true\n type: type,\n // fetched / calculated item\n item: item,\n }];\n }\n });\n });\n}\n//# sourceMappingURL=validate-url.js.map","/**\n * Parse an IncludeSpec from the include string\n * Include String structure:\n * - `enrichment{.deep.path} AS propertyName`\n *\n * Examples\n * - `server.layers.0.name as layerName` -> use the `server` enrichment, extract the name of the first layer and attach that as `layerName`\n * - `server.layers` -> use the `server` enrichment, attach the `layers` array as `layers`\n * @param include\n * @returns\n */\nexport function parseInclude(include) {\n // TODO: Validate enrichment? Not clear how we'd do that other than a manully maintained string list\n var parts = include.split(\" AS \");\n var path = parts[0];\n var prop = parts[1] || path.split(\".\").reverse()[0];\n var enrichment = path.split(\".\")[0];\n // We need the actual list of string values so we can verify\n // what we get in, is infact a valid enrichment.\n var spec = {\n enrichment: enrichment,\n path: path,\n prop: prop,\n };\n return spec;\n}\n//# sourceMappingURL=parseInclude.js.map","import { __awaiter, __generator, __spreadArrays } from \"tslib\";\nimport { fetchItemEnrichments } from \"../items/_enrichments\";\nimport { getProp } from \"../objects\";\nimport { getItemThumbnailUrl } from \"../resources\";\nimport { parseInclude } from \"../search/_internal/parseInclude\";\nimport { getItemHomeUrl } from \"../urls\";\nimport { unique } from \"../util\";\nimport { mapBy } from \"../utils\";\nimport { getFamily } from \"./get-family\";\nimport { getHubRelativeUrl } from \"./_internal\";\n/**\n * Enrich a generic search result\n * @param item\n * @param includes\n * @param requestOptions\n * @returns\n */\nexport function enrichContentSearchResult(item, include, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var result, DEFAULTS, specs, enrichments, enriched;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n result = {\n access: item.access,\n id: item.id,\n type: item.type,\n name: item.title,\n owner: item.owner,\n summary: item.snippet || item.description,\n createdDate: new Date(item.created),\n createdDateSource: \"item.created\",\n updatedDate: new Date(item.modified),\n updatedDateSource: \"item.modified\",\n family: getFamily(item.type),\n links: {\n self: \"not-implemented\",\n siteRelative: \"not-implemented\",\n thumbnail: \"not-implemented\",\n },\n };\n DEFAULTS = [];\n // Add any type-specific defaults here\n // if ([\"Map Service\", \"Feature Service\"].includes(item.type)) {\n // DEFAULTS = [\"server.layers.length AS layerCount\"];\n // }\n // if (item.type === \"Web Map\") {\n // DEFAULTS = [\"data.operationalLayers.length AS layerCount\"];\n // }\n // merge includes\n include = __spreadArrays(DEFAULTS, include).filter(unique);\n specs = include.map(parseInclude);\n enrichments = mapBy(\"enrichment\", specs).filter(unique);\n enriched = {};\n if (!enrichments.length) return [3 /*break*/, 2];\n return [4 /*yield*/, fetchItemEnrichments(item, enrichments, requestOptions)];\n case 1:\n enriched = _a.sent();\n _a.label = 2;\n case 2:\n // map the enriched props onto the result\n specs.forEach(function (spec) {\n result[spec.prop] = getProp(enriched, spec.path);\n });\n // Handle links\n // TODO: Link handling should be an enrichment\n result.links.thumbnail = getItemThumbnailUrl(item, requestOptions);\n result.links.self = getItemHomeUrl(result.id, requestOptions);\n result.links.siteRelative = getHubRelativeUrl(result.type, result.id, item.typeKeywords);\n return [2 /*return*/, result];\n }\n });\n });\n}\n//# sourceMappingURL=HubContent.js.map","import { __assign } from \"tslib\";\nimport { getCollection } from \"../collections\";\nimport { categories as allCategories } from \"../categories\";\nimport { includes } from \"../utils\";\nimport { getProp } from \"../objects\";\nimport { getServiceTypeFromUrl } from \"../urls\";\nimport { getHubRelativeUrl, isPageType } from \"./_internal\";\nimport { camelize } from \"../util\";\nimport { normalizeItemType, getContentTypeIcon, composeContent, } from \"./compose\";\nimport { getFamily } from \"./get-family\";\nimport { parseDatasetId, removeContextFromSlug } from \"./slugs\";\n// re-export functions used in this file\nexport * from \"./compose\";\nexport * from \"./get-family\";\nexport * from \"./slugs\";\nexport * from \"./fetch\";\nexport * from \"./types\";\nexport * from \"./HubContent\";\n// TODO: remove this at next breaking version\n/**\n * ```js\n * import { getCategory } from \"@esri/hub-common\";\n * //\n * getCategory('Feature Layer')\n * > 'dataset'\n * ```\n * **DEPRECATED: Use getFamily() instead**\n * returns the Hub category for a given item type\n * @param itemType The ArcGIS [item type](https://developers.arcgis.com/rest/users-groups-and-items/items-and-item-types.htm).\n * @returns the category of a given item type.\n */\n/* istanbul ignore next deprecated */\nexport function getCategory(itemType) {\n if (itemType === void 0) { itemType = \"\"; }\n /* tslint:disable no-console */\n console.warn(\"DEPRECATED: Use getFamily() instead. getCategory will be removed at the next breaking version\");\n /* tslint:enable no-console */\n var collection = getCollection(itemType);\n // for backwards compatibility\n return collection === \"feedback\" ? \"app\" : collection;\n}\n/**\n * ```js\n * import { getTypes } from \"@esri/hub-common\";\n * //\n * getTypes('site')\n * > [ 'hub site application' ]\n * ```\n * To do.\n * @param category The ArcGIS Hub category.\n * @returns all the item types for the given category.\n *\n */\nexport function getTypes(category) {\n if (category === void 0) { category = \"\"; }\n return allCategories[category.toLowerCase()];\n}\n/**\n * ```js\n * import { getTypeCategories } from \"@esri/hub-common\";\n * //\n * getTypeCategories(item)\n * > [ 'Hub Site Application' ]\n * ```\n * **DEPRECATED: getTypeCategories will be removed at the next breaking version**\n * @param item Item object.\n * @returns typeCategory of the input item.\n *\n */\n/* istanbul ignore next deprecated */\nexport function getTypeCategories(item) {\n if (item === void 0) { item = {}; }\n /* tslint:disable no-console */\n console.warn(\"DEPRECATED: getTypeCategories will be removed at the next breaking version\");\n /* tslint:enable no-console */\n var type = normalizeItemType(item);\n var category = getCategory(type);\n if (category) {\n // upper case first letter and return as element in array for backwards compatibility\n var chars = Array.from(category);\n chars[0] = chars[0].toUpperCase();\n return [chars.join(\"\")];\n }\n else {\n return [\"Other\"];\n }\n}\n/**\n * ```js\n * import { getContentIdentifier } from \"@esri/hub-common\";\n * //\n * getContentIdentifier(content, site)\n * > 'f12hhjk32' // id\n * // OR\n * > 'content-slug' // human-readable slug\n * ```\n * Returns the preferred identifier for a piece of content (determined by content type):\n * - Content from the 'template' and 'feedback' families return the standard id field\n * - Pages that are linked to the site parameter will return the slug defined by the site. Otherwise, the page id will be returned\n * - All other content will return the highest available item in the following hierarchy:\n * 1. slug - includes org prefix if the site parameter is a portal or has an orgKey different from the slug prefix\n * 2. hubId\n * 3. id\n * @param content The IHubContent item\n * @param site The site to compare content against\n * @returns the preferred id for the given content.\n */\nexport function getContentIdentifier(content, site) {\n // We don't currently support slugs for hub initiative templates, solutions or surveys\n if (includes([\"template\", \"feedback\"], content.family)) {\n return content.id;\n }\n // If it is a hub page linked to a site, return the page slug at the\n // site data instead. Because this one is the original one that was used\n // to create the page url (not mutable once created) and the slug (below)\n // generated by the hub-indexer could simply change with page name.\n if (isPageType(content.type)) {\n // check if the page is linked to the current site\n var pages = getProp(site, \"data.values.pages\") || [];\n // if so, return the page slug otherwise the page id\n var page = pages.find(function (p) { return p.id === content.id; });\n return page ? page.slug : content.id;\n }\n // If a slug is present, always return it\n if (content.slug) {\n var slug = void 0;\n var orgKey = getProp(site, \"domainInfo.orgKey\");\n // Use namespaced slug when on the umbrella site\n if (getProp(site, \"data.values.isUmbrella\")) {\n slug = content.slug;\n }\n else {\n // Use shortened slug if the slug's namespace is the same as the orgKey\n slug = removeContextFromSlug(content.slug, orgKey);\n }\n return slug;\n }\n return content.hubId || content.id;\n}\n/**\n * Convert a Portal item to Hub content\n *\n * @param item Portal Item\n * @returns Hub content\n * @export\n */\nexport function itemToContent(item) {\n return composeContent(item);\n}\n/**\n * Convert a Hub API dataset resource to Hub Content\n *\n * @param {DatasetResource} Dataset resource\n * @returns {IHubContent} Hub content object\n * @export\n */\nexport function datasetToContent(dataset) {\n // extract item from dataset, create content from the item\n var item = datasetToItem(dataset);\n // extract enrichments from attributes\n var _a = dataset.attributes, \n // item enrichments\n errors = _a.errors, boundary = _a.boundary, metadata = _a.metadata, slug = _a.slug, groupIds = _a.groupIds, orgId = _a.orgId, orgName = _a.orgName, organization = _a.organization, orgExtent = _a.orgExtent, \n // map and feature server enrichments\n server = _a.server, layers = _a.layers, layer = _a.layer, recordCount = _a.recordCount, statistics = _a.statistics, \n // additional attributes needed\n extent = _a.extent, searchDescription = _a.searchDescription;\n // get the layerId from the layer\n var layerId = layer && layer.id;\n // re-assemble the org as an enrichment\n var org = orgId && {\n id: orgId,\n name: orgName || organization,\n extent: orgExtent,\n };\n // compose a content out of the above\n return composeContent(item, {\n layerId: layerId,\n slug: slug,\n errors: errors,\n // setting this to null signals to enrichMetadata to skip this\n metadata: metadata || null,\n groupIds: groupIds,\n org: org,\n server: server,\n layers: layers,\n recordCount: recordCount,\n boundary: boundary,\n extent: extent,\n searchDescription: searchDescription,\n statistics: statistics,\n });\n}\n/**\n * Convert a Hub API dataset resource to a portal item\n *\n * @param {DatasetResource} Dataset resource\n * @returns {IItem} portal item\n * @export\n */\nexport function datasetToItem(dataset) {\n if (!dataset) {\n return;\n }\n var id = dataset.id, attributes = dataset.attributes;\n if (!attributes) {\n return;\n }\n // parse item id\n var itemId = parseDatasetId(id).itemId;\n // read item properties from attributes\n // NOTE: we attempt to read all item properties\n // even though some may not be currently returned\n var \n // start w/ item properties from\n // https://developers.arcgis.com/rest/users-groups-and-items/item.htm\n owner = attributes.owner, orgId = attributes.orgId, created = attributes.created, \n // the Hub API returns item.modified in attributes.itemModified (below)\n modified = attributes.modified, \n // NOTE: we use attributes.name to store the title or the service/layer name\n // but in Portal name is only used for file types to store the file name (read only)\n name = attributes.name, title = attributes.title, type = attributes.type, typeKeywords = attributes.typeKeywords, description = attributes.description, snippet = attributes.snippet, tags = attributes.tags, thumbnail = attributes.thumbnail, \n // the Hub API returns item.extent in attributes.itemExtent (below)\n // extent,\n categories = attributes.categories, contentStatus = attributes.contentStatus, \n // the Hub API doesn't currently return spatialReference\n spatialReference = attributes.spatialReference, \n // the Hub API doesn't currently return accessInformation\n accessInformation = attributes.accessInformation, licenseInfo = attributes.licenseInfo, culture = attributes.culture, url = attributes.url, access = attributes.access, \n // the Hub API doesn't currently return proxyFilter\n proxyFilter = attributes.proxyFilter, properties = attributes.properties, \n // the Hub API doesn't currently return appCategories, industries,\n // languages, largeThumbnail, banner, screenshots, listed, ownerFolder\n appCategories = attributes.appCategories, industries = attributes.industries, languages = attributes.languages, largeThumbnail = attributes.largeThumbnail, banner = attributes.banner, screenshots = attributes.screenshots, listed = attributes.listed, ownerFolder = attributes.ownerFolder, size = attributes.size, \n // the Hub API doesn't currently return protected\n isProtected = attributes.protected, commentsEnabled = attributes.commentsEnabled, \n // the Hub API doesn't currently return numComments, numRatings,\n // avgRating, numViews, itemControl, scoreCompleteness\n numComments = attributes.numComments, numRatings = attributes.numRatings, avgRating = attributes.avgRating, numViews = attributes.numViews, itemControl = attributes.itemControl, scoreCompleteness = attributes.scoreCompleteness, \n // additional attributes we'll need\n // to derive the above values when missing\n itemExtent = attributes.itemExtent, itemModified = attributes.itemModified, modifiedProvenance = attributes.modifiedProvenance, serviceSpatialReference = attributes.serviceSpatialReference;\n // layer datasets will get their type from the layer\n // so we will need to derive the item type from the URL\n var serviceType = url && getServiceTypeFromUrl(url);\n // build and return an item from properties\n // NOTE: we currently do NOT provide default values\n // (i.e. null for scalar attributes, [] for arrays, etc)\n // for attributes that are not returned by the Hub API\n // this helps distinguish an item that comes from the API\n // but forces all consumers to do handle missing properties\n return {\n id: itemId,\n owner: owner,\n orgId: orgId,\n created: created,\n // for feature layers, modified will usually come from the layer so\n // we prefer itemModified, but fall back to modified if it came from the item\n modified: (itemModified ||\n (modifiedProvenance === \"item.modified\" && modified)),\n title: (title || name),\n type: serviceType || type,\n typeKeywords: typeKeywords,\n description: description,\n tags: tags,\n snippet: snippet,\n thumbnail: thumbnail,\n extent: itemExtent ||\n /* istanbul ignore next: API should always return itemExtent, but we default to [] just in case */ [],\n categories: categories,\n contentStatus: contentStatus,\n spatialReference: spatialReference || serviceSpatialReference,\n accessInformation: accessInformation,\n licenseInfo: licenseInfo,\n culture: culture,\n url: url,\n access: access,\n size: size,\n protected: isProtected,\n proxyFilter: proxyFilter,\n properties: properties,\n appCategories: appCategories,\n industries: industries,\n languages: languages,\n largeThumbnail: largeThumbnail,\n banner: banner,\n screenshots: screenshots,\n listed: listed,\n ownerFolder: ownerFolder,\n commentsEnabled: commentsEnabled,\n numComments: numComments,\n numRatings: numRatings,\n avgRating: avgRating,\n numViews: numViews,\n itemControl: itemControl,\n scoreCompleteness: scoreCompleteness,\n };\n}\n/**\n * returns a new content that has the specified type and\n * and updated related properties like, family, etc\n * @param content orignal content\n * @param type new type\n * @returns new content\n */\nexport var setContentType = function (content, type) {\n // get family and normalized type based on new type\n var normalizedType = normalizeItemType(__assign(__assign({}, content.item), { type: type }));\n var family = getFamily(normalizedType);\n var contentTypeIcon = getContentTypeIcon(normalizedType);\n var contentTypeLabel = getContentTypeLabel(normalizedType, content.isProxied);\n var updated = __assign(__assign({}, content), { type: normalizedType, family: family,\n contentTypeIcon: contentTypeIcon,\n contentTypeLabel: contentTypeLabel });\n // update the relative URL to the content\n // which is based on type and family\n return appendContentUrls(updated, {\n relative: getContentRelativeUrl(updated),\n });\n};\n/**\n * Compute the content type label\n * @param contentType\n * @param isProxied\n * @returns content type label\n */\nexport var getContentTypeLabel = function (contentType, isProxied) {\n return isProxied ? \"CSV\" : camelize(contentType || \"\");\n};\n// URL helpers\nvar appendContentUrls = function (content, newUrls) {\n // merge new urls into existing ones and return a new content\n var urls = __assign(__assign({}, content.urls), newUrls);\n return __assign(__assign({}, content), { urls: urls });\n};\nvar getContentRelativeUrl = function (content, siteIdentifier) {\n return getHubRelativeUrl(content.type, siteIdentifier || content.identifier, content.typeKeywords);\n};\n//# sourceMappingURL=index.js.map","\"use strict\";\n\n/**\n * Implementation of atob() according to the HTML and Infra specs, except that\n * instead of throwing INVALID_CHARACTER_ERR we return null.\n */\nfunction atob(data) {\n if (arguments.length === 0) {\n throw new TypeError(\"1 argument required, but only 0 present.\");\n }\n\n // Web IDL requires DOMStrings to just be converted using ECMAScript\n // ToString, which in our case amounts to using a template literal.\n data = `${data}`;\n // \"Remove all ASCII whitespace from data.\"\n data = data.replace(/[ \\t\\n\\f\\r]/g, \"\");\n // \"If data's length divides by 4 leaving no remainder, then: if data ends\n // with one or two U+003D (=) code points, then remove them from data.\"\n if (data.length % 4 === 0) {\n data = data.replace(/==?$/, \"\");\n }\n // \"If data's length divides by 4 leaving a remainder of 1, then return\n // failure.\"\n //\n // \"If data contains a code point that is not one of\n //\n // U+002B (+)\n // U+002F (/)\n // ASCII alphanumeric\n //\n // then return failure.\"\n if (data.length % 4 === 1 || /[^+/0-9A-Za-z]/.test(data)) {\n return null;\n }\n // \"Let output be an empty byte sequence.\"\n let output = \"\";\n // \"Let buffer be an empty buffer that can have bits appended to it.\"\n //\n // We append bits via left-shift and or. accumulatedBits is used to track\n // when we've gotten to 24 bits.\n let buffer = 0;\n let accumulatedBits = 0;\n // \"Let position be a position variable for data, initially pointing at the\n // start of data.\"\n //\n // \"While position does not point past the end of data:\"\n for (let i = 0; i < data.length; i++) {\n // \"Find the code point pointed to by position in the second column of\n // Table 1: The Base 64 Alphabet of RFC 4648. Let n be the number given in\n // the first cell of the same row.\n //\n // \"Append to buffer the six bits corresponding to n, most significant bit\n // first.\"\n //\n // atobLookup() implements the table from RFC 4648.\n buffer <<= 6;\n buffer |= atobLookup(data[i]);\n accumulatedBits += 6;\n // \"If buffer has accumulated 24 bits, interpret them as three 8-bit\n // big-endian numbers. Append three bytes with values equal to those\n // numbers to output, in the same order, and then empty buffer.\"\n if (accumulatedBits === 24) {\n output += String.fromCharCode((buffer & 0xff0000) >> 16);\n output += String.fromCharCode((buffer & 0xff00) >> 8);\n output += String.fromCharCode(buffer & 0xff);\n buffer = accumulatedBits = 0;\n }\n // \"Advance position by 1.\"\n }\n // \"If buffer is not empty, it contains either 12 or 18 bits. If it contains\n // 12 bits, then discard the last four and interpret the remaining eight as\n // an 8-bit big-endian number. If it contains 18 bits, then discard the last\n // two and interpret the remaining 16 as two 8-bit big-endian numbers. Append\n // the one or two bytes with values equal to those one or two numbers to\n // output, in the same order.\"\n if (accumulatedBits === 12) {\n buffer >>= 4;\n output += String.fromCharCode(buffer);\n } else if (accumulatedBits === 18) {\n buffer >>= 2;\n output += String.fromCharCode((buffer & 0xff00) >> 8);\n output += String.fromCharCode(buffer & 0xff);\n }\n // \"Return output.\"\n return output;\n}\n/**\n * A lookup table for atob(), which converts an ASCII character to the\n * corresponding six-bit number.\n */\n\nconst keystr =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\nfunction atobLookup(chr) {\n const index = keystr.indexOf(chr);\n // Throw exception if character is not in the lookup string; should not be hit in tests\n return index < 0 ? undefined : index;\n}\n\nmodule.exports = atob;\n","\"use strict\";\n\n/**\n * btoa() as defined by the HTML and Infra specs, which mostly just references\n * RFC 4648.\n */\nfunction btoa(s) {\n if (arguments.length === 0) {\n throw new TypeError(\"1 argument required, but only 0 present.\");\n }\n\n let i;\n // String conversion as required by Web IDL.\n s = `${s}`;\n // \"The btoa() method must throw an \"InvalidCharacterError\" DOMException if\n // data contains any character whose code point is greater than U+00FF.\"\n for (i = 0; i < s.length; i++) {\n if (s.charCodeAt(i) > 255) {\n return null;\n }\n }\n let out = \"\";\n for (i = 0; i < s.length; i += 3) {\n const groupsOfSix = [undefined, undefined, undefined, undefined];\n groupsOfSix[0] = s.charCodeAt(i) >> 2;\n groupsOfSix[1] = (s.charCodeAt(i) & 0x03) << 4;\n if (s.length > i + 1) {\n groupsOfSix[1] |= s.charCodeAt(i + 1) >> 4;\n groupsOfSix[2] = (s.charCodeAt(i + 1) & 0x0f) << 2;\n }\n if (s.length > i + 2) {\n groupsOfSix[2] |= s.charCodeAt(i + 2) >> 6;\n groupsOfSix[3] = s.charCodeAt(i + 2) & 0x3f;\n }\n for (let j = 0; j < groupsOfSix.length; j++) {\n if (typeof groupsOfSix[j] === \"undefined\") {\n out += \"=\";\n } else {\n out += btoaLookup(groupsOfSix[j]);\n }\n }\n }\n return out;\n}\n\n/**\n * Lookup table for btoa(), which converts a six-bit number into the\n * corresponding ASCII character.\n */\nconst keystr =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\nfunction btoaLookup(index) {\n if (index >= 0 && index < 64) {\n return keystr[index];\n }\n\n // Throw INVALID_CHARACTER_ERR exception here -- won't be hit in the tests.\n return undefined;\n}\n\nmodule.exports = btoa;\n","\"use strict\";\n\nconst atob = require(\"./lib/atob\");\nconst btoa = require(\"./lib/btoa\");\n\nmodule.exports = {\n atob,\n btoa\n};\n","import { SearchQueryBuilder } from \"@esri/arcgis-rest-portal\";\nimport { btoa } from \"abab\";\nimport { flattenArray } from \"../util\";\nexport var WGS84_WKID = \"4326\";\nexport var PORTAL_EXPORT_TYPES = {\n csv: {\n name: \"CSV\",\n itemTypes: [\"CSV\", \"CSV Collection\"],\n supportsProjection: true,\n },\n kml: {\n name: \"KML\",\n itemTypes: [\"KML\", \"KML Collection\"],\n supportsProjection: false,\n },\n shapefile: {\n name: \"Shapefile\",\n itemTypes: [\"Shapefile\"],\n supportsProjection: true,\n },\n fileGeodatabase: {\n name: \"File Geodatabase\",\n itemTypes: [\"File Geodatabase\"],\n supportsProjection: true,\n },\n geojson: {\n name: \"GeoJson\",\n itemTypes: [\"GeoJson\"],\n supportsProjection: false,\n },\n excel: {\n name: \"Excel\",\n itemTypes: [\"Microsoft Excel\"],\n supportsProjection: true,\n },\n featureCollection: {\n name: \"Feature Collection\",\n itemTypes: [\"Feature Collection\"],\n supportsProjection: true,\n },\n};\n/**\n * Puts a spatial reference into a serialized format that can be used\n * for item typeKeywords.\n *\n * **Note**: discards \"latestWkid\"\n *\n * In the past we used `JSON.stringify`, but that causes problems because\n * it can include commas which are interpreted by the portal [update item call](https://developers.arcgis.com/rest/users-groups-and-items/update-item.htm)\n * as being separate typekeywords. With `JSON.stringify`, equality was also\n * dependent on the order of the properties in the spatial reference.\n *\n * Check https://developers.arcgis.com/web-map-specification/objects/spatialReference/\n * for more details on what this object looks like.\n */\nexport function serializeSpatialReference(spatialReference) {\n if (typeof spatialReference === \"object\") {\n var wkid = spatialReference.wkid, wkt = spatialReference.wkt;\n return wkid ? wkid + \"\" : btoa(wkt);\n }\n else {\n return spatialReference;\n }\n}\n/**\n * spatialRefId can currently take the form of either a WKID string or a\n * serialized ISpatialReference object.\n *\n * TODO - we shouldn't need this function. Instead, spatialRefId should\n * always be consistent, maybe by using serializeSpatialReference\n *\n * @private\n */\nfunction parseSpatialRefId(spatialRefId) {\n var _spatialRefId;\n try {\n _spatialRefId = JSON.parse(spatialRefId);\n }\n catch (_a) {\n _spatialRefId = spatialRefId;\n }\n return _spatialRefId;\n}\n/**\n * Builds the Portal API query string to search for exports from a given dataset\n *\n * @param itemId - The dataset ID\n * @param options - A set of options including item types, layerId, and spatialRefId\n * @returns\n */\nexport function buildExistingExportsPortalQuery(itemId, options) {\n var _a = maybeExtractOptions(options), onlyTypes = _a.onlyTypes, layerId = _a.layerId, spatialRefId = _a.spatialRefId;\n var formatInfos = Object.keys(PORTAL_EXPORT_TYPES).map(function (key) { return PORTAL_EXPORT_TYPES[key]; });\n var noProjectionItemTypes = new Set(flattenArray(formatInfos\n .filter(function (info) { return !info.supportsProjection; })\n .map(function (info) { return info.itemTypes; })));\n var types;\n if (!onlyTypes) {\n types = flattenArray(formatInfos.map(function (info) { return info.itemTypes; }));\n }\n else {\n types = onlyTypes;\n }\n var queryBuilder = new SearchQueryBuilder()\n .startGroup()\n .match(getExportItemTypeKeyword(itemId))\n .in(\"typekeywords\")\n .and()\n .match(getExportLayerTypeKeyword(layerId))\n .in(\"typekeywords\")\n .endGroup()\n .and()\n .startGroup();\n buildExportTypesClause(queryBuilder, {\n types: types,\n spatialRefId: spatialRefId,\n noProjectionItemTypes: noProjectionItemTypes,\n });\n queryBuilder.endGroup();\n return queryBuilder.toParam();\n}\nfunction maybeExtractOptions(options) {\n if (options) {\n return {\n onlyTypes: options.onlyTypes,\n layerId: options.layerId,\n spatialRefId: options.spatialRefId,\n };\n }\n return {};\n}\nfunction buildExportTypesClause(builder, options) {\n var types = options.types, noProjectionItemTypes = options.noProjectionItemTypes, spatialRefId = options.spatialRefId;\n var getSpatialRefIdWithDefaults = function (_spatialRefId, itemType) {\n var ret = WGS84_WKID;\n if (_spatialRefId && !noProjectionItemTypes.has(itemType)) {\n ret = _spatialRefId;\n }\n return ret;\n };\n var buildQueryForType = function (type, _builder) {\n _builder\n .startGroup()\n .match(/\\s/g.test(type) ? type : \"\\\"\" + type + \"\\\"\") // temporary logic until https://github.com/Esri/arcgis-rest-js/issues/916 is resolved\n .in(\"type\")\n .and()\n .match(getSpatialRefTypeKeyword(getSpatialRefIdWithDefaults(spatialRefId, type)))\n .in(\"typekeywords\")\n .endGroup();\n };\n types.forEach(function (type, i) {\n buildQueryForType(type, builder);\n if (i < types.length - 1) {\n builder.or();\n }\n });\n}\n/**\n * Generates typekeyword for identifying which spatialRefId an export is\n * @param spatialRefId - either a WKID, WKT, or stringified ISpatialReference\n * @private\n */\nexport function getSpatialRefTypeKeyword(spatialRefId) {\n var parsedSpatialReference = parseSpatialRefId(spatialRefId);\n var serializedSpatialReference = serializeSpatialReference(parsedSpatialReference);\n return \"spatialRefId:\" + serializedSpatialReference;\n}\n/**\n * Returns the keyword identifying exports by the item they originate from\n * @param itemId - ID for the item from which the export originated\n * @private\n */\nexport function getExportItemTypeKeyword(itemId) {\n return \"exportItem:\" + itemId;\n}\n/**\n * Returns the keyword identifying exports by the layer they originate from\n * @param layerId - ID for the layer from which the export originated\n * @private\n */\nexport function getExportLayerTypeKeyword(layerId) {\n // NOTE - Layer Id's need to be padded with \"0\" so that /search results are predictable. Searches for typeKeywords:\"exportLayer:1\" don't work.\n // See https://github.com/Esri/hub.js/pull/472 for more information.\n // TODO - use `filter` when Enterprise Sites adds support.\n return layerId ? \"exportLayer:0\" + layerId : \"exportLayer:null\";\n}\n//# sourceMappingURL=build-existing-exports-portal-query.js.map","import { failSafe } from \"../utils\";\nimport { unprotectGroup, removeGroup } from \"@esri/arcgis-rest-portal\";\n/**\n * Unprotect and Remove a Group.\n * Assumed caller has checked that the current user should be able\n * to unprotect and remove the group. Underlying calls are failsafe\n * so a failure to unprotect or remove the group will not reject\n * @param {IUserGroupOptions} userGroupOptions id and authentication\n * @private\n */\nexport function _unprotectAndRemoveGroup(userGroupOptions) {\n var failSafeUnprotect = failSafe(unprotectGroup, { success: true });\n var failSafeRemove = failSafe(removeGroup, { success: true });\n return failSafeUnprotect(userGroupOptions).then(function () {\n return failSafeRemove(userGroupOptions);\n });\n}\n//# sourceMappingURL=_unprotect-and-remove-group.js.map","import { getWithDefault } from \"../../../objects/get-with-default\";\n/**\n * @private\n */\nexport function _consolidateResults(context) {\n var autoAddResult = context.autoAddResult, inviteResult = context.inviteResult, primaryEmailResult = context.primaryEmailResult, secondaryEmailResult = context.secondaryEmailResult;\n var combinedEmailResults;\n if (primaryEmailResult || secondaryEmailResult) {\n var validResults = [primaryEmailResult, secondaryEmailResult].filter(function (r) { return r; });\n var combinedSuccess = validResults.every(function (r) { return r.success; });\n var combinedErrors = validResults.reduce(function (collection, r) { return collection.concat(getWithDefault(r, \"errors\", [])); }, []);\n combinedEmailResults = {\n success: combinedSuccess\n };\n if (combinedErrors.length) {\n combinedEmailResults.errors = combinedErrors;\n }\n }\n var overallSuccess = [autoAddResult, inviteResult, combinedEmailResults]\n .filter(function (r) { return r; })\n .every(function (r) { return r.success; });\n return {\n success: overallSuccess,\n autoAdd: autoAddResult,\n invite: inviteResult,\n email: combinedEmailResults\n };\n}\n//# sourceMappingURL=_consolidate-results.js.map","import { ArcGISRequestError } from \"@esri/arcgis-rest-request\";\nimport { getProp } from \"../../../objects/get-prop\";\nimport { includes } from \"../../../utils\";\n/**\n * @private\n *\n * Coerce autoAdd response into a more similar interface as\n * the other rest calls.\n *\n * If any users are not auto added, an error is added to the response\n * and unadded users are placed into the invitation list\n */\nexport function _formatAutoAddResponse(rawResponse, context) {\n if (rawResponse) {\n var success = !getProp(rawResponse, \"notAdded.length\") && !rawResponse.errors;\n context.autoAddResult = { success: success };\n if (!success) {\n var errors = rawResponse.errors || [];\n if (getProp(rawResponse, \"notAdded.length\")) {\n errors.push(new ArcGISRequestError(\"Users not auto-added: \" + rawResponse.notAdded.join(\", \")));\n }\n context.autoAddResult.errors = errors;\n // Move unadded users to invite list;\n var unaddedUsers = context.usersToAutoAdd.filter(function (user) {\n return includes(rawResponse.notAdded, user.username);\n });\n context.usersToInvite = context.usersToInvite.concat(unaddedUsers);\n }\n }\n return context;\n}\n//# sourceMappingURL=_format-auto-add-response.js.map","/**\n * @private\n *\n * returns whether or not the users are in the same org\n */\nexport function _canEmailUser(recipient, sender) {\n return recipient.orgId === sender.orgId;\n}\n//# sourceMappingURL=_can-email-user.js.map","/**\n * @private\n */\nexport function _isOrgAdmin(user) {\n return user.role === \"org_admin\" && !user.roleId;\n}\n//# sourceMappingURL=_is-org-admin.js.map","import { createOrgNotification } from \"@esri/arcgis-rest-portal\";\n/**\n * Attempts to email members of the requesting user's organization.\n *\n * @param {IUser[]} users Users to email (must be in the same org as the requesting user)\n * @param {IEmail} email\n * @param {IAuthenticationManager} authentication\n * @param {boolean} isOrgAdmin // Whether the requesting user in an org admin\n *\n * @returns {object|null} A promise that resolves to the result of the transaction (null if no users are passed in)\n */\nexport function emailOrgUsers(users, email, authentication, isOrgAdmin) {\n var response = Promise.resolve(null);\n if (users.length) {\n var args = {\n authentication: authentication,\n message: email.body,\n subject: email.subject,\n notificationChannelType: \"email\",\n users: users.map(function (u) { return u.username; })\n };\n if (!isOrgAdmin) {\n args.batchSize = 1;\n }\n response = createOrgNotification(args);\n }\n return response;\n}\n//# sourceMappingURL=email-org-users.js.map","import { _canEmailUser } from \"../../add-users-workflow/utils/_can-email-user\";\nimport { _isOrgAdmin } from \"../../add-users-workflow/utils/_is-org-admin\";\nimport { getProp, getWithDefault } from \"../../../objects\";\nimport { emailOrgUsers } from \"../workflow-sections/email-org-users\";\n/**\n * @private\n *\n * If a secondary authentication is passed in AND\n * an email object is passed in AND\n * the previous invitation call was successful:\n *\n * Send an email notification to the invited\n * users that are part of the secondary authentication's org\n */\nexport function _processSecondaryEmail(context) {\n var response = Promise.resolve(context);\n // If secondaryRO provided, send email to the invited users in the secondaryRO's org (typically a community org)\n if (context.email &&\n context.secondaryRO &&\n getProp(context, \"inviteResult.success\")) {\n var secondaryUser_1 = getWithDefault(context, \"secondaryRO.portalSelf.user\", {});\n var secondaryOrgUsersToEmail = context.usersToInvite.filter(function (u) {\n return _canEmailUser(u, secondaryUser_1);\n });\n response = emailOrgUsers(secondaryOrgUsersToEmail, context.email, context.secondaryRO.authentication, _isOrgAdmin(secondaryUser_1)).then(function (result) {\n context.secondaryEmailResult = result;\n return context;\n });\n }\n return response;\n}\n//# sourceMappingURL=_process-secondary-email.js.map","import { addGroupUsers } from \"@esri/arcgis-rest-portal\";\n/**\n *\n * Attempts to auto-add users to a group\n *\n * @param {string} id ID of the group the users will be added to\n * @param {IUser[]} users\n * @param {IAuthenticationManager} authentication\n *\n * @returns {IAddGroupUsersResult|null} Result of the transaction (null if no users are passed in)\n */\nexport function autoAddUsers(id, users, authentication) {\n var response = Promise.resolve(null);\n if (users.length) {\n var args = {\n id: id,\n users: users.map(function (u) { return u.username; }),\n authentication: authentication\n };\n response = addGroupUsers(args);\n }\n return response;\n}\n//# sourceMappingURL=auto-add-users.js.map","import { getProp } from \"../../../objects/get-prop\";\nimport { autoAddUsers } from \"../workflow-sections/auto-add-users\";\nimport { _formatAutoAddResponse } from \"./_format-auto-add-response\";\n/**\n * @private\n */\nexport function _processAutoAdd(context) {\n return autoAddUsers(getProp(context, \"groupId\"), getProp(context, \"usersToAutoAdd\"), getProp(context, \"primaryRO.authentication\")).then(function (rawResponse) { return _formatAutoAddResponse(rawResponse, context); });\n}\n//# sourceMappingURL=_process-auto-add.js.map","import { inviteGroupUsers, } from \"@esri/arcgis-rest-portal\";\n/**\n *\n * Attempts to invite users to a group\n *\n * @param {string} id ID of the group the users will be invited to\n * @param {object[]} users\n * @param {object} authentication\n * @param {number} expiration How long the invite will be active (in minutes)\n * @param {string} role What role should they be added as. Defaults to group member\n *\n * @returns {object|null} Result of the transaction (null if no users are passed in)\n */\nexport function inviteUsers(id, users, authentication, expiration, // default to 2 week expiration TODO: is this actually 2 weeks?\nrole // default to group member, but allow for team_admin as well\n) {\n if (expiration === void 0) { expiration = 20160; }\n if (role === void 0) { role = \"group_member\"; }\n var response = Promise.resolve(null);\n if (users.length) {\n var args = {\n id: id,\n users: users.map(function (u) { return u.username; }),\n authentication: authentication,\n role: role,\n expiration: expiration,\n };\n response = inviteGroupUsers(args);\n }\n return response;\n}\n//# sourceMappingURL=invite-users.js.map","import { getProp } from \"../../../objects/get-prop\";\nimport { inviteUsers } from \"../workflow-sections/invite-users\";\n/**\n * @private\n */\nexport function _processInvite(context) {\n return inviteUsers(getProp(context, \"groupId\"), getProp(context, \"usersToInvite\"), getProp(context, \"primaryRO.authentication\")).then(function (result) {\n context.inviteResult = result;\n return context;\n });\n}\n//# sourceMappingURL=_process-invite.js.map","import { getProp } from \"../../../objects/get-prop\";\nimport { _isOrgAdmin } from \"../utils/_is-org-admin\";\nimport { emailOrgUsers } from \"../workflow-sections/email-org-users\";\n/**\n * @private\n *\n * Send email notification if an email object is present and\n * the previous invitation call was successful\n */\nexport function _processPrimaryEmail(context) {\n var response = Promise.resolve(context);\n // Email users if invite succeeds\n if (context.email && getProp(context, \"inviteResult.success\")) {\n response = emailOrgUsers(context.usersToEmail, context.email, context.primaryRO.authentication, _isOrgAdmin(context.requestingUser)).then(function (result) {\n context.primaryEmailResult = result;\n return context;\n });\n }\n return response;\n}\n//# sourceMappingURL=_process-primary-email.js.map","/**\n * @private\n *\n * A user can be auto-added if they are part of the requesting user's e-org\n * or c-org and the requesting user has the assignToGroups privilege\n */\nexport function _getAutoAddUsers(users, requestingUser) {\n var usersToAutoAdd = [];\n if (requestingUser.privileges.indexOf(\"portal:admin:assignToGroups\") !== -1) {\n var orgIds_1 = [requestingUser.orgId, requestingUser.cOrgId].filter(function (o) { return o; });\n usersToAutoAdd = users.filter(function (u) { return orgIds_1.indexOf(u.orgId) !== -1; });\n }\n return usersToAutoAdd;\n}\n//# sourceMappingURL=_get-auto-add-users.js.map","import { _getAutoAddUsers } from \"./_get-auto-add-users\";\n/**\n * @private\n *\n * A user will be invited if they cannot be auto-added\n */\nexport function _getInviteUsers(users, requestingUser) {\n var autoAddedUsers = _getAutoAddUsers(users, requestingUser);\n return users.filter(function (user) { return !autoAddedUsers.some(function (aau) { return aau.username === user.username; }); });\n}\n//# sourceMappingURL=_get-invite-users.js.map","import { _canEmailUser } from \"./_can-email-user\";\nimport { _getInviteUsers } from \"./_get-invite-users\";\n/**\n * @private\n *\n * A user can be emailed if they are invited (not auto-added)\n * and the _canEmailUser condition is met\n */\nexport function _getEmailUsers(users, requestingUser, includeSelf) {\n if (includeSelf === void 0) { includeSelf = false; }\n var invitedUsers = _getInviteUsers(users, requestingUser);\n var emailUsers = invitedUsers.filter(function (user) {\n return _canEmailUser(user, requestingUser);\n });\n if (includeSelf) {\n emailUsers.push(requestingUser);\n }\n return emailUsers;\n}\n//# sourceMappingURL=_get-email-users.js.map","import { getProp } from \"../../objects/get-prop\";\nimport { getWithDefault } from \"../../objects/get-with-default\";\nimport { cloneObject } from \"../../util\";\nimport { _consolidateResults } from \"./output-processors/_consolidate-results\";\nimport { _processAutoAdd } from \"./output-processors/_process-auto-add\";\nimport { _processInvite } from \"./output-processors/_process-invite\";\nimport { _processPrimaryEmail } from \"./output-processors/_process-primary-email\";\nimport { _processSecondaryEmail } from \"./output-processors/_process-secondary-email\";\nimport { _getAutoAddUsers } from \"./utils/_get-auto-add-users\";\nimport { _getEmailUsers } from \"./utils/_get-email-users\";\nimport { _getInviteUsers } from \"./utils/_get-invite-users\";\n/**\n * Adds, invites or emails users about joining a group\n * based on the permissions of the requesting user. The\n * function returns a hash of results indicating which\n * operations were attempted and whether they were successful.\n *\n * In general, this algorithm will auto-add all the users\n * that it can, invite the others, and send emails to eligible\n * invited users (See below for more details)\n *\n * Here are a couple caveats to be aware of:\n * 1) If the requestingUser can auto-add to the group (A.K.A. has\n * portal:admin:assignToGroups) no email will be sent, period.\n * 2) Emails can only be sent to members of the same org as the\n * requesting user if they have been invited (not auto-added)\n * to the group. If emails must to be sent to invited members\n * of a second org (e.g a community org), an authenticated user\n * of the second org must be passed in (see secondaryRO)\n * 3) If no email is passed in, no email will be sent\n * 4) If auto-adding fails, the unadded users will be invited\n *\n * @param {string} groupId\n * @param {IUser[]} allUsers\n * @param {IHubRequestOptions} primaryRO Info and authentication for the requesting user\n * @param {IEmail} [email] Email to be sent (if qualifying users are passed in)\n * @param {IHubRequestOptions} [secondaryRO] Info and authentication for emailing members of a secondary organization (typically a community org)\n *\n * @returns {IConsolidatedResult} The operations attempted, whether they were successful and any errors\n */\nexport function addUsersToGroup(groupId, allUsers, primaryRO, email, secondaryRO) {\n // Extract requesting user\n var requestingUser = cloneObject(getWithDefault(primaryRO, \"portalSelf.user\", {}));\n requestingUser.cOrgId = getProp(primaryRO, \"portalSelf.portalProperties.hub.settings.communityOrg.orgId\");\n // Context for each process segment\n var context = {\n groupId: groupId,\n allUsers: allUsers,\n primaryRO: primaryRO,\n email: email,\n secondaryRO: secondaryRO,\n requestingUser: requestingUser,\n usersToAutoAdd: _getAutoAddUsers(allUsers, requestingUser),\n usersToInvite: _getInviteUsers(allUsers, requestingUser),\n usersToEmail: _getEmailUsers(allUsers, requestingUser, getProp(email, \"copyMe\"))\n };\n return _processAutoAdd(context)\n .then(_processInvite)\n .then(_processPrimaryEmail)\n .then(_processSecondaryEmail)\n .then(_consolidateResults);\n}\n//# sourceMappingURL=add-users-to-group.js.map","import { __assign } from \"tslib\";\nimport { searchGroupContent, searchGroupUsers, } from \"@esri/arcgis-rest-portal\";\nimport { getEnrichmentErrors } from \"../../items/_enrichments\";\nimport OperationStack from \"../../OperationStack\";\nimport { createOperationPipeline } from \"../../utils\";\n/**\n * Fetch the count of items shared to the group.\n * This is done by searching for content in the group\n * and using the returned `total` value\n * @param input\n * @returns\n */\nvar enrichGroupContentCount = function (input) {\n var data = input.data, stack = input.stack, requestOptions = input.requestOptions;\n var opId = stack.start(\"enrichGroupContentCount\");\n // w/o the : any here, I get a compile error about\n // .authentication being incompatible w/ UserSession\n var options = __assign({ groupId: data.group.id, num: 1 }, requestOptions);\n return searchGroupContent(options)\n .then(function (results) {\n stack.finish(opId);\n return {\n data: __assign(__assign({}, data), { contentCount: results.total }),\n stack: stack,\n requestOptions: requestOptions,\n };\n })\n .catch(function (error) { return handleEnrichmentError(error, input, opId); });\n};\n/**\n * Create a summary of the Group membership by searching for members,\n * limiting to three for a sample, and using the `total`.\n * @param input\n * @returns\n */\nvar enrichGroupMembershipSummary = function (input) {\n var data = input.data, stack = input.stack, requestOptions = input.requestOptions;\n var opId = stack.start(\"enrichGroupContentCount\");\n // w/o the `: any` here, I get a compile error about\n // .authentication being incompatible w/ UserSession\n var options = __assign({ num: 3 }, requestOptions);\n return searchGroupUsers(data.group.id, options)\n .then(function (results) {\n stack.finish(opId);\n return {\n data: __assign(__assign({}, data), {\n membershipSummary: { total: results.total, users: results.users },\n }),\n stack: stack,\n requestOptions: requestOptions,\n };\n })\n .catch(function (error) { return handleEnrichmentError(error, input, opId); });\n};\n// add the error to the content.errors,\n// log current stack operation as finished with an error\n// and return output that can be piped into the next operation\nvar handleEnrichmentError = function (error, input, opId) {\n var data = input.data, stack = input.stack, requestOptions = input.requestOptions;\n stack.finish(opId, { error: error });\n return {\n data: __assign(__assign({}, data), { errors: getEnrichmentErrors(error, data.errors) }),\n stack: stack,\n requestOptions: requestOptions,\n };\n};\n/**\n * Available enrichments for Groups\n */\nvar groupEnrichementOperations = {\n membershipSummary: enrichGroupMembershipSummary,\n contentCount: enrichGroupContentCount,\n};\n/**\n * Fetch enrichments for Groups\n * @param group\n * @param enrichments\n * @param requestOptions\n * @returns\n */\nexport function fetchGroupEnrichments(group, enrichments, requestOptions) {\n // create a pipeline of enrichment operations\n var operations = enrichments.reduce(function (ops, enrichment) {\n var operation = groupEnrichementOperations[enrichment];\n // only include the enrichments that we know how to fetch\n operation && ops.push(operation);\n return ops;\n }, []);\n var pipeline = createOperationPipeline(operations);\n // execute pipeline and return the item and enrichments\n return pipeline({\n data: { group: group },\n stack: new OperationStack(),\n requestOptions: requestOptions,\n }).then(function (output) {\n // TODO: send telemetry so we have info on what enrichments are requested and possible errors\n return output.data;\n });\n}\n//# sourceMappingURL=enrichments.js.map","/* Copyright (c) 2018-2021 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { UserSession } from \"@esri/arcgis-rest-auth\";\nimport { cloneObject } from \"../util\";\n/**\n * Well known APIs\n * Short-forms for specifying common APIs\n * We will likely deprecate this\n */\nexport var SEARCH_APIS = {\n arcgis: {\n label: \"ArcGIS Online\",\n url: \"https://www.arcgis.com\",\n type: \"arcgis\",\n },\n arcgisQA: {\n label: \"ArcGIS Online QAEXT\",\n url: \"https://qaext.arcgis.com\",\n type: \"arcgis\",\n },\n arcgisDEV: {\n label: \"ArcGIS Online DEVEXT\",\n url: \"https://devext.arcgis.com\",\n type: \"arcgis\",\n },\n hub: {\n label: \"ArcGIS Hub\",\n url: \"https://hub.arcgis.com/api\",\n type: \"arcgis-hub\",\n },\n hubDEV: {\n label: \"ArcGIS Hub DEV\",\n url: \"https://hubdev.arcgis.com/api\",\n type: \"arcgis-hub\",\n },\n hubQA: {\n label: \"ArcGIS Hub QA\",\n url: \"https://hubqa.arcgis.com/api\",\n type: \"arcgis-hub\",\n },\n};\n/**\n * @private\n * Convert array of api \"names\" into full ApiDefinitions\n * @param apis\n * @returns\n */\nexport function expandApis(apis) {\n return apis.map(expandApi);\n}\n/**\n * @private\n * Convert an api \"name\" into a full ApiDefinition\n * @param api\n * @returns\n */\nexport function expandApi(api) {\n if (typeof api === \"string\" && api in SEARCH_APIS) {\n return SEARCH_APIS[api];\n }\n else {\n // it's an object, so we trust that it's well formed\n return api;\n }\n}\n/**\n * @private\n * Convert a field value into a MatchOptions if it's not already one\n * @param value\n * @returns\n */\nexport function valueToMatchOptions(value) {\n var result = {};\n if (Array.isArray(value)) {\n result = {\n any: value,\n };\n }\n else {\n if (typeof value === \"string\") {\n result = {\n any: [value],\n };\n }\n if (typeof value === \"object\") {\n result = value;\n }\n }\n return result;\n}\n/**\n * @private\n * Convert a RelativeDate to a DateRange<number>\n * @param relative\n * @returns\n */\nexport function relativeDateToDateRange(relative) {\n // hash of offsets\n var offsetMs = {\n min: 1000 * 60,\n hours: 1000 * 60 * 60,\n days: 1000 * 60 * 60 * 24,\n weeks: 1000 * 60 * 60 * 24 * 7,\n };\n var now = new Date();\n // default\n var result = {\n type: \"date-range\",\n from: now.getTime(),\n to: now.getTime(),\n };\n //\n switch (relative.unit) {\n case \"hours\":\n case \"days\":\n case \"weeks\":\n result.from = result.to - offsetMs[relative.unit] * relative.num;\n break;\n case \"months\":\n // get the current month and subtract num\n // NOTE: when the previous month has fewer days than this month\n // setMonth() will return a date w/in the current month\n // example: 3/30 -> 3/2 b/c there is no 2/28\n now.setMonth(now.getMonth() - relative.num);\n result.from = now.getTime();\n break;\n case \"years\":\n now.setFullYear(now.getFullYear() - relative.num);\n result.from = now.getTime();\n break;\n }\n return result;\n}\n/**\n * Create a `.next()` function for a type\n * @param request\n * @param nextStart\n * @param total\n * @param fn\n * @returns\n */\nexport function getNextFunction(request, nextStart, total, fn) {\n var clonedRequest = cloneObject(request);\n // clone will not handle authentication so we do it manually\n if (request.authentication) {\n clonedRequest.authentication = UserSession.deserialize(request.authentication.serialize());\n }\n // figure out the start\n clonedRequest.start = nextStart > -1 ? nextStart : total + 1;\n return function (authentication) {\n if (authentication) {\n clonedRequest.authentication = authentication;\n }\n return fn(clonedRequest);\n };\n}\n/**\n * Construct a the full url to a group thumbnail\n *\n * - If the group has a thumbnail, construct the full url\n * - If the group is not public, append on the token (if passed in)\n * @param portalUrl\n * @param group\n * @param token\n * @returns\n */\nexport function getGroupThumbnailUrl(portalUrl, group, token) {\n var thumbnailUrl = null;\n if (group.thumbnail) {\n thumbnailUrl = portalUrl + \"/community/groups/\" + group.id + \"/info/\" + group.thumbnail;\n if (token && group.access !== \"public\") {\n thumbnailUrl = thumbnailUrl + \"?token=\" + token;\n }\n }\n return thumbnailUrl;\n}\n/**\n * Construct a the full url to a user thumbnail\n *\n * - If the user has a thumbnail, construct the full url\n * - If the user is not public, append on the token\n * @param portalUrl\n * @param user\n * @param token\n * @returns\n */\nexport function getUserThumbnailUrl(portalUrl, user, token) {\n var thumbnailUrl = null;\n if (user.thumbnail) {\n thumbnailUrl = portalUrl + \"/community/users/\" + user.username + \"/info/\" + user.thumbnail;\n if (token && user.access !== \"public\") {\n thumbnailUrl = thumbnailUrl + \"?token=\" + token;\n }\n }\n return thumbnailUrl;\n}\n//# sourceMappingURL=utils.js.map","import { getProp } from \"../objects\";\nimport { cloneObject } from \"../util\";\nvar CATALOG_SCHEMA_VERSION = 1.0;\n/**\n * Apply schema upgrades to Catalog objects\n * @param catalog\n * @returns\n */\nexport function upgradeCatalogSchema(catalog) {\n var clone = cloneObject(catalog);\n if (getProp(clone, \"schemaVersion\") === CATALOG_SCHEMA_VERSION) {\n return clone;\n }\n else {\n // apply migrations in order\n clone = applyCatalogSchema(clone);\n return clone;\n }\n}\n/**\n * Apply the Catalog schema to the original, unversioned\n * site catalog objects\n * @param original\n * @returns\n */\nfunction applyCatalogSchema(original) {\n if (getProp(original, \"schemaVersion\") > 1.0) {\n return original;\n }\n else {\n var catalog = {\n schemaVersion: 1,\n title: \"Default Catalog\",\n scopes: {\n item: {\n targetEntity: \"item\",\n filters: [],\n },\n },\n collections: [],\n };\n var rawGroups = getProp(original, \"groups\");\n var groups = [];\n if (Array.isArray(rawGroups) && rawGroups.length) {\n groups = rawGroups;\n }\n else if (typeof rawGroups === \"string\") {\n groups = [rawGroups];\n }\n if (groups.length) {\n catalog.scopes.item.filters.push({\n predicates: [{ group: groups }],\n });\n }\n return catalog;\n }\n}\n//# sourceMappingURL=upgradeCatalogSchema.js.map","import { __spreadArrays } from \"tslib\";\nimport { getProp, setProp } from \"../../objects\";\nimport { cloneObject } from \"../../util\";\nimport { relativeDateToDateRange, valueToMatchOptions } from \"../utils\";\n/**\n * @private\n * Expand a predicate\n * @param predicate\n * @returns\n */\nexport function expandPredicate(predicate) {\n var result = {};\n var dateProps = [\"created\", \"modified\", \"lastlogin\"];\n var copyProps = [\n \"filterType\",\n \"term\",\n \"searchUserAccess\",\n \"isopendata\",\n \"searchUserName\",\n ];\n var nonMatchOptionsFields = __spreadArrays(dateProps, copyProps);\n // Do the conversion\n Object.entries(predicate).forEach(function (_a) {\n var key = _a[0], value = _a[1];\n // Handle MatchOptions fields\n if (!nonMatchOptionsFields.includes(key)) {\n setProp(key, valueToMatchOptions(value), result);\n }\n // Handle Date fields\n if (dateProps.includes(key)) {\n var dateFieldValue = cloneObject(getProp(predicate, key));\n if (getProp(predicate, key + \".type\") === \"relative-date\") {\n setProp(key, relativeDateToDateRange(dateFieldValue), result);\n }\n else {\n setProp(key, dateFieldValue, result);\n }\n }\n // Handle fields that are just copied forward\n if (copyProps.includes(key) && predicate.hasOwnProperty(key)) {\n setProp(key, value, result);\n }\n });\n return result;\n}\n//# sourceMappingURL=expandPredicate.js.map","import { __spreadArrays } from \"tslib\";\nimport { expandPredicate } from \"./_internal/expandPredicate\";\n/**\n * Serialize IQuery into ISearchOptions for ArcGIS Portal\n * @param query\n * @returns\n */\nexport function serializeQueryForPortal(query) {\n var filterSearchOptions = query.filters.map(serializeFilter);\n // remove any empty entries\n var nonEmptyOptions = filterSearchOptions.filter(removeEmptyEntries);\n var result = mergeSearchOptions(nonEmptyOptions, \"AND\");\n return result;\n}\n/**\n * Predicate to remove things from array\n * @param e\n * @returns\n */\nfunction removeEmptyEntries(e) {\n return !(typeof e === \"undefined\" || e === null || e === \"\");\n}\nfunction mergeSearchOptions(options, operation) {\n var result = options.reduce(function (acc, entry) {\n // walk the props\n Object.entries(entry).forEach(function (_a) {\n var key = _a[0], value = _a[1];\n // if prop exists and is not empty string\n if (acc[key] && value !== \"\") {\n // combine via operation\n acc[key] = acc[key] + \" \" + operation + \" \" + value;\n }\n else {\n // just copy the value if it's not empty string\n if (value !== \"\") {\n acc[key] = value;\n }\n }\n });\n return acc;\n }, { q: \"\" });\n return result;\n}\n/**\n * Serialize the filters in a FitlerGroup into a Portal Query\n * @param filter\n * @returns\n */\nfunction serializeFilter(filter) {\n var operation = filter.operation || \"AND\";\n var predicates = filter.predicates.map(expandPredicate);\n var predicateSearchOptions = predicates\n .map(serializePredicate)\n .filter(function (e) { return e !== undefined && e !== null; });\n // combine these searchOptions\n var searchOptions = mergeSearchOptions(predicateSearchOptions, operation);\n // wrap in parens if we have more than one predicate\n if (predicates.length > 1) {\n searchOptions.q = \"(\" + searchOptions.q + \")\";\n }\n return searchOptions;\n}\n/**\n * Serialize a Filter into a Portal Query\n * @param predicate\n * @returns\n */\nfunction serializePredicate(predicate) {\n var dateProps = [\"created\", \"modified\"];\n var boolProps = [\"isopendata\"];\n var passThroughProps = [\"searchUserAccess\", \"searchUserName\"];\n var specialProps = __spreadArrays([\n \"filterType\",\n \"term\"\n ], dateProps, boolProps, passThroughProps);\n var portalAllowList = [\n \"access\",\n \"categories\",\n \"created\",\n \"description\",\n \"disabled\",\n \"email\",\n \"emailstatus\",\n \"firstname\",\n \"fullname\",\n \"group\",\n \"id\",\n \"isInvitationOnly\",\n \"isopendata\",\n \"joined\",\n \"lastlogin\",\n \"lastname\",\n \"memberType\",\n \"modified\",\n \"name\",\n \"orgid\",\n \"orgIds\",\n \"owner\",\n \"provider\",\n \"role\",\n \"searchUserAccess\",\n \"searchUserName\",\n \"snippet\",\n \"tags\",\n \"term\",\n \"title\",\n \"type\",\n \"typekeywords\",\n \"userlicensetype\",\n \"username\",\n ];\n var qCount = 0;\n // TODO: Look at using reduce vs .map and remove the `.filter`\n var opts = Object.entries(predicate)\n .map(function (_a) {\n var key = _a[0], value = _a[1];\n // When serializing for portal we limit predicate properties to\n // a list of known properties that the portal api accepts. This will\n // not attempt to ensure the properties are used in the correct combinations\n if (portalAllowList.includes(key)) {\n var so = { q: \"\" };\n if (!specialProps.includes(key) && key !== \"term\") {\n qCount++;\n so.q = serializeMatchOptions(key, value);\n }\n if (dateProps.includes(key)) {\n qCount++;\n so.q = serializeDateRange(key, value);\n }\n if (boolProps.includes(key)) {\n qCount++;\n so.q = key + \":\" + value;\n }\n if (passThroughProps.includes(key)) {\n so[key] = value;\n }\n if (key === \"term\") {\n qCount++;\n so.q = value;\n }\n return so;\n }\n })\n .filter(removeEmptyEntries);\n // merge up all the searchOptions\n if (opts.length) {\n var searchOptions = mergeSearchOptions(opts, \"AND\");\n if (qCount > 1) {\n searchOptions.q = \"(\" + searchOptions.q + \")\";\n }\n return searchOptions;\n }\n else {\n return null;\n }\n}\n/**\n * Serialize MatchOptions into portal syntax\n * @param key\n * @param value\n * @returns\n */\nfunction serializeMatchOptions(key, value) {\n var result = \"\";\n if (value.any) {\n result = \"\" + serializeStringOrArray(\"OR\", key, value.any);\n }\n if (value.all) {\n result =\n (result ? result + \" AND \" : \"\") +\n (\"\" + serializeStringOrArray(\"AND\", key, value.all));\n }\n if (value.not) {\n // negate the entries if they are not\n result =\n (result ? result + \" AND \" : \"\") +\n (\"\" + serializeStringOrArray(\"OR\", \"-\" + key, value.not));\n }\n return result;\n}\n/**\n * Serialize a date-range into Portal syntax\n * @param key\n * @param range\n * @returns\n */\nfunction serializeDateRange(key, range) {\n return key + \":[\" + range.from + \" TO \" + range.to + \"]\";\n}\n/**\n * Serialize a `string` or `string[]` into a string\n * @param join\n * @param key\n * @param value\n * @returns\n */\nfunction serializeStringOrArray(join, key, value) {\n var q = \"\";\n if (Array.isArray(value)) {\n q = key + \":\\\"\" + value.join(\"\\\" \" + join + \" \" + key + \":\\\"\") + \"\\\"\";\n if (value.length > 1) {\n q = \"(\" + q + \")\";\n }\n }\n else {\n q = key + \":\\\"\" + value + \"\\\"\";\n }\n return q;\n}\n//# sourceMappingURL=serializeQueryForPortal.js.map","import { __extends } from \"tslib\";\nimport { getWithDefault } from \"./objects/get-with-default\";\nimport OperationError from \"./OperationError\";\n/**\n * Generic Hub Error with an Error stack as well\n * as an optional serialized OperationStack.\n *\n * Also accepts a `rootCause` Error object\n */\nvar HubError = /** @class */ (function (_super) {\n __extends(HubError, _super);\n /**\n * Creates an instance of HubError.\n * @param {string} operation\n * @param {string} [message]\n * @param {Error} [rootCause]\n * @memberof HubError\n */\n function HubError(operation, message, rootCause) {\n var _this = this;\n message = message || \"UNKNOWN_ERROR\";\n // if the rootCause has a .rootCause, use that so we don't deeply nest\n rootCause = getWithDefault(rootCause, \"rootCause\", rootCause);\n /* Skip coverage on super(...) as per:\n https://github.com/Microsoft/TypeScript/issues/13029\n https://github.com/SitePen/remap-istanbul/issues/106\n */\n /* istanbul ignore next */\n _this = _super.call(this, operation, message, rootCause) || this;\n _this.name = \"HubError\";\n // if the original error has a stack use it, otherwise create a new\n // stack. Note: a new Stack will make it look like the error origninated\n // in the HubError constructor. This is only an issue in tests but\n // it can be confusing to debug\n _this.stack = getWithDefault(rootCause, \"stack\", new Error().stack);\n return _this;\n }\n return HubError;\n}(OperationError));\nexport default HubError;\n//# sourceMappingURL=HubError.js.map","/**\n * @private\n * Convert a portal aggregation structure into the HubAggregations structure\n * @param searchResults\n * @returns\n */\nexport function convertPortalAggregations(searchResults) {\n var _a;\n if ((_a = searchResults.aggregations) === null || _a === void 0 ? void 0 : _a.counts) {\n return searchResults.aggregations.counts.map(function (entry) {\n return {\n mode: \"terms\",\n field: entry.fieldName,\n values: entry.fieldValues,\n };\n });\n }\n else {\n return [];\n }\n}\n//# sourceMappingURL=portalSearchUtils.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { searchItems } from \"@esri/arcgis-rest-portal\";\nimport { expandApi, getNextFunction } from \"../utils\";\nimport { serializeQueryForPortal } from \"../serializeQueryForPortal\";\nimport { convertPortalAggregations } from \"./portalSearchUtils\";\n/**\n * @private\n * Execute a search and convert to a specific entity\n * @param query\n * @param convertFn\n * @param options\n * @returns\n */\nexport function searchEntities(query, convertFn, options) {\n var _a;\n // serialize query to searchOptions\n var searchOptions = serializeQueryForPortal(query);\n // Aggregations\n if ((_a = options.aggFields) === null || _a === void 0 ? void 0 : _a.length) {\n searchOptions.countFields = options.aggFields.join(\",\");\n searchOptions.countSize = options.aggLimit || 10;\n }\n // properties to copy from IHubSearchOptions to the ISearchOptions\n var props = [\n \"num\",\n \"sortField\",\n \"sortOrder\",\n \"start\",\n \"requestOptions\",\n ];\n // Include \"start\" here\n // copy the props over\n props.forEach(function (prop) {\n if (options.hasOwnProperty(prop)) {\n searchOptions[prop] = options[prop];\n }\n });\n // create the entitySearchFn\n var searchFn = createEntitySearchFn(convertFn);\n // Add ArcGIS API\n if (options.api && !options.authentication) {\n var expandedApi = expandApi(options.api);\n searchOptions.portal = expandedApi.url;\n }\n return searchFn(searchOptions);\n}\n/**\n * @private\n * @param convertFn\n * @returns\n */\nexport function createEntitySearchFn(convertFn) {\n // Return a function that does the search, with a closure over the\n // conversion function. Naming this function is important as it's\n // referenced in the `next` section below\n return function executeSearch(searchOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var response, entities, aggregations;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, searchItems(searchOptions)];\n case 1:\n response = _a.sent();\n return [4 /*yield*/, Promise.all(response.results.map(function (itm) {\n return convertFn(itm, searchOptions);\n }))];\n case 2:\n entities = _a.sent();\n aggregations = convertPortalAggregations(response);\n return [2 /*return*/, {\n total: response.total,\n results: entities,\n aggregations: aggregations,\n hasNext: response.nextStart > -1,\n next: getNextFunction(searchOptions, response.nextStart, response.total, executeSearch),\n }];\n }\n });\n });\n };\n}\n//# sourceMappingURL=searchEntities.js.map","import { __awaiter, __generator, __spreadArrays } from \"tslib\";\nimport { getFamily } from \"../content\";\nimport { getHubRelativeUrl } from \"../content/_internal\";\nimport { fetchItemEnrichments } from \"../items/_enrichments\";\nimport { getProp } from \"../objects\";\nimport { getItemThumbnailUrl } from \"../resources\";\nimport { parseInclude } from \"../search/_internal/parseInclude\";\nimport { getItemHomeUrl } from \"../urls\";\nimport { unique } from \"../util\";\nimport { mapBy } from \"../utils\";\n/**\n * Fetch Page specific Enrichments\n * @param item\n * @param include\n * @param requestOptions\n * @returns\n */\nexport function enrichPageSearchResult(item, include, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var result, DEFAULTS, specs, enrichments, enriched;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n result = {\n access: item.access,\n id: item.id,\n type: item.type,\n name: item.title,\n owner: item.owner,\n summary: item.snippet || item.description,\n createdDate: new Date(item.created),\n createdDateSource: \"item.created\",\n updatedDate: new Date(item.modified),\n updatedDateSource: \"item.modified\",\n family: getFamily(item.type),\n links: {\n self: \"not-implemented\",\n siteRelative: \"not-implemented\",\n thumbnail: \"not-implemented\",\n },\n };\n DEFAULTS = [];\n // merge includes\n include = __spreadArrays(DEFAULTS, include).filter(unique);\n specs = include.map(parseInclude);\n enrichments = mapBy(\"enrichment\", specs).filter(unique);\n enriched = {};\n if (!enrichments.length) return [3 /*break*/, 2];\n return [4 /*yield*/, fetchItemEnrichments(item, enrichments, requestOptions)];\n case 1:\n // TODO: Look into caching for the requests in fetchItemEnrichments\n enriched = _a.sent();\n _a.label = 2;\n case 2:\n // map the enriched props onto the result\n specs.forEach(function (spec) {\n result[spec.prop] = getProp(enriched, spec.path);\n });\n // Handle Links\n result.links.thumbnail = getItemThumbnailUrl(item, requestOptions);\n result.links.self = getItemHomeUrl(result.id, requestOptions);\n result.links.siteRelative = getHubRelativeUrl(result.type, result.id, item.typeKeywords);\n return [2 /*return*/, result];\n }\n });\n });\n}\n//# sourceMappingURL=HubPages.js.map","import { cloneObject } from \"../util\";\n/**\n * Given a model, return a serialized clone that can be sent to\n * the items api\n * @param {Object} model Item model {item:{}, data:{}}\n */\nexport function serializeModel(model) {\n var serialized = cloneObject(model.item);\n serialized.text = JSON.stringify(model.data);\n return serialized;\n}\n//# sourceMappingURL=serializeModel.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nexport * from \"./serializeModel\";\nimport { createItem, getItem, getItemData, updateItem, } from \"@esri/arcgis-rest-portal\";\nimport { cloneObject, getItemBySlug } from \"..\";\n/**\n * Gets the full item/data model for an item id\n * @param {string} id\n * @param {Object} requestOptions\n */\nexport function getModel(id, requestOptions) {\n return Promise.all([\n getItem(id, requestOptions),\n getItemData(id, requestOptions),\n ]).then(function (result) {\n // shape this into a model\n return {\n item: result[0],\n data: result[1],\n };\n });\n}\n/**\n * Get a model by it's slug\n *\n * This uses the [Filter](https://developers.arcgis.com/rest/users-groups-and-items/search-reference.htm) option of the\n * to search for an item that has a typekeyword of `slug|{slug-value}`\n *\n * This is useful for applications that want to use human-readable urls instead\n * of using item ids.\n *\n * @param slug\n * @param requestOptions\n * @returns\n */\nexport function getModelBySlug(slug, requestOptions) {\n return getItemBySlug(slug, requestOptions)\n .then(function (item) {\n var prms = [Promise.resolve(item)];\n if (item) {\n prms.push(getItemData(item.id, requestOptions));\n }\n else {\n prms.push(Promise.resolve(null));\n }\n return Promise.all(prms);\n })\n .then(function (result) {\n if (result[0]) {\n return {\n item: result[0],\n data: result[1],\n };\n }\n else {\n return null;\n }\n });\n}\n/**\n * Create an item to back and IModel.\n *\n * @param {IModel}\n * @param {IRequestOptions} requestOptions\n * @returns {Promise<IModel>}\n */\nexport function createModel(model, requestOptions) {\n var clone = cloneObject(model);\n var item = cloneObject(model.item);\n item.data = cloneObject(model.data);\n var opts = __assign({ item: item }, requestOptions);\n return createItem(opts).then(function (response) {\n clone.item.id = response.id;\n clone.item.created = new Date().getTime();\n clone.item.modified = clone.item.created;\n return clone;\n });\n}\n/**\n * Update an IModel. Generic function that will be used across all\n * type-specific update functions\n *\n * @export\n * @param {IModel} \"model\" object (i.e. `{item:{...}, data:{...}}`)\n * @param {IRequestOptions} requestOptions\n * @returns {Promise<IModel>}\n */\nexport function updateModel(model, requestOptions) {\n var clone = cloneObject(model);\n var item = cloneObject(model.item);\n item.data = cloneObject(model.data);\n var opts = __assign({ item: item }, requestOptions);\n return updateItem(opts).then(function () {\n // update the modified prop\n // this won't be exact, but it will be very close\n clone.item.modified = new Date().getTime();\n return clone;\n });\n}\n/**\n * Given an Item, fetch the data json and return an IModel\n * @param item\n * @param requestOptions\n * @returns\n */\nexport function fetchModelFromItem(item, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, getItemData(item.id, requestOptions)];\n case 1:\n data = _a.sent();\n return [2 /*return*/, {\n item: item,\n data: data,\n }];\n }\n });\n });\n}\n//# sourceMappingURL=index.js.map","import { searchItems } from \"@esri/arcgis-rest-portal\";\nimport { slugify } from \"..\";\n// TODO: work out how to unify content slug fns\n// https: github.com/Esri/hub.js/blob/master/packages/common/src/content/index.ts#L301-L348\n/**\n * Create a slug, namespaced to an org\n * Typically used to lookup items by a human readable name in urls\n *\n * @param title\n * @param orgKey\n * @returns\n */\nexport function constructSlug(title, orgKey) {\n return orgKey.toLowerCase() + \"-\" + slugify(title);\n}\n/**\n * Adds/Updates the slug typekeyword\n * Returns a new array of keywords\n * @param typeKeywords\n * @param slug\n * @returns\n */\nexport function setSlugKeyword(typeKeywords, slug) {\n // remove slug entry from array\n var removed = typeKeywords.filter(function (entry) {\n return !entry.startsWith(\"slug|\");\n });\n // now add it\n removed.push(\"slug|\" + slug);\n return removed;\n}\n/**\n * Get an item by searching for items with a typeKeyword like `slug|{slug-value}`\n *\n * For example, if you pass a slug `\"snow-map\"` into this function, it will\n * search for items with `slug|snow-map` in it's typeKeywords array,\n *\n * @param slug\n * @param requestOptions\n * @returns\n */\nexport function getItemBySlug(slug, requestOptions) {\n return findItemsBySlug({ slug: slug }, requestOptions).then(function (results) {\n if (results.length) {\n return results[0];\n }\n else {\n return null;\n }\n });\n}\n/**\n * Find items by slug typeKeywords.\n *\n * Optional exclude parameter accepts the id of an item we expect to\n * have this particular slug. This is used during update calls\n * where we don't know if the slug specifically has been updated, but we\n * don't want a false-postive from the item we are updating\n *\n * @param slug\n * @param requestOptions\n * @returns\n */\nexport function findItemsBySlug(slugInfo, requestOptions) {\n var opts = {\n filter: \"typekeywords:\\\"slug|\" + slugInfo.slug + \"\\\"\",\n };\n if (requestOptions.authentication) {\n opts.authentication = requestOptions.authentication;\n }\n else if (requestOptions.portal) {\n opts.portal = requestOptions.portal;\n }\n // We need to check for other items w/ a slug during\n // the update calls. For those scenarios we are interested\n // in any _other_ items which may have a specific slug\n // but not one specific item\n if (slugInfo.exclude) {\n opts.q = \"NOT id:\" + slugInfo.exclude;\n }\n return searchItems(opts)\n .then(function (response) {\n return response.results;\n })\n .catch(function (e) {\n throw e;\n });\n}\n/**\n * Given a slug, search for items using that slug, incrementing the slug name until\n * a unique value is found\n *\n * For example, if a slug of `\"snow-map\"` into this function and some item exists\n * with that slug, it would return `\"snow-map-1\"`.\n *\n * @param slug\n * @param requestOptions\n * @param step\n * @returns\n */\nexport function getUniqueSlug(slugInfo, requestOptions, step) {\n if (step === void 0) { step = 0; }\n var combinedSlug = slugInfo.slug;\n if (step) {\n combinedSlug = slugInfo.slug + \"-\" + step;\n }\n return findItemsBySlug({ slug: combinedSlug, exclude: slugInfo.existingId }, requestOptions)\n .then(function (results) {\n if (results.length) {\n step++;\n return getUniqueSlug(slugInfo, requestOptions, step);\n }\n else {\n return combinedSlug;\n }\n })\n .catch(function (e) {\n throw Error(\"Error in getUniqueSlug \" + e);\n });\n}\n//# sourceMappingURL=slugs.js.map","import { cloneObject, deepSet, getProp } from \"../..\";\n/**\n * Manage forward and backward property mappings to\n * streamline conversion between the Hub entities, and\n * the backing IModel\n */\nvar PropertyMapper = /** @class */ (function () {\n /**\n * Pass in the mappings between the Entity and\n * it's backing structure (model or otherwise)\n * @param mappings\n */\n function PropertyMapper(mappings) {\n this.mappings = mappings;\n }\n /**\n * Map properties from a model on to the entity object.\n *\n * Used when constructing an entity can from a fetched model,\n * in which case the entity should be an empty object (`{}`).\n *\n * Can also be used to apply changes to an entity from a model,\n * in which case an existing entity can be passed in.\n * @param model\n * @param object\n * @returns\n */\n PropertyMapper.prototype.modelToObject = function (model, object) {\n return mapModelToObject(model, object, this.mappings);\n };\n /**\n * Map properties from an entity object onto a model.\n *\n * Typically the model will already exist, and this\n * method is used to transfer changes to the model\n * prior to storage.\n * @param object\n * @param model\n * @returns\n */\n PropertyMapper.prototype.objectToModel = function (object, model) {\n return mapObjectToModel(object, model, this.mappings);\n };\n return PropertyMapper;\n}());\nexport { PropertyMapper };\n/**\n * Generic function to apply properties from an Object\n * (i.e. IHubProject) onto a Model that can be persisted to an Item\n * @param object\n * @param model\n * @param mappings\n * @returns\n */\nexport function mapObjectToModel(object, model, mappings) {\n return mapProps(object, \"objectKey\", model, \"modelKey\", mappings);\n}\n/**\n * Generic function to apply properties from a Model\n * onto an Object (i.e. IHubProject etc)\n * @param model\n * @param object\n * @param mappings\n * @returns\n */\nexport function mapModelToObject(model, object, mappings) {\n return mapProps(model, \"modelKey\", object, \"objectKey\", mappings);\n}\n/**\n * Internal function to map between objects\n * @param source\n * @param sourceKey\n * @param target\n * @param targetKey\n * @param mappings\n * @returns\n */\nfunction mapProps(source, sourceKey, target, targetKey, mappings) {\n // clone the target\n var clone = cloneObject(target);\n // walk the property map array\n mappings.forEach(function (entry) {\n // Verbose b/c typescript hates the use of property indexing with generics\n // i.e. entry<T>[sourceKey] make typescript angry\n var sourcePath = getProp(entry, sourceKey);\n var targetPath = getProp(entry, targetKey);\n // get the value from the source\n var sourceVal = getProp(source, sourcePath);\n // if it's not null or undefined\n if (sourceVal !== null && sourceVal !== undefined) {\n // set it\n deepSet(clone, targetPath, sourceVal);\n }\n });\n return clone;\n}\n//# sourceMappingURL=PropertyMapper.js.map","import { __assign, __awaiter, __generator, __spreadArrays } from \"tslib\";\n// Note - we separate these imports so we can cleanly spy on things in tests\nimport { createModel, fetchModelFromItem, getModel, updateModel, } from \"../models\";\nimport { constructSlug, getItemBySlug, getUniqueSlug, setSlugKeyword, } from \"../items/slugs\";\nimport { isGuid, cloneObject, getItemThumbnailUrl, unique, mapBy, getProp, getFamily, getItemHomeUrl, } from \"../index\";\nimport { removeItem, getItem, } from \"@esri/arcgis-rest-portal\";\nimport { searchEntities } from \"../search/_internal/searchEntities\";\nimport { PropertyMapper } from \"../core/_internal/PropertyMapper\";\nimport { parseInclude } from \"../search/_internal/parseInclude\";\nimport { fetchItemEnrichments } from \"../items/_enrichments\";\nimport { getHubRelativeUrl } from \"../content/_internal\";\nimport { createQueryFromString } from \"../search/_internal\";\nexport var HUB_PROJECT_ITEM_TYPE = \"Hub Project\";\n/**\n * Default values of a IHubProject\n */\nvar DEFAULT_PROJECT = {\n name: \"No title provided\",\n tags: [],\n typeKeywords: [\"Hub Project\"],\n status: \"inactive\",\n};\n/**\n * Default values for a new HubProject Model\n */\nvar DEFAULT_PROJECT_MODEL = {\n item: {\n type: HUB_PROJECT_ITEM_TYPE,\n title: \"No Title Provided\",\n description: \"No Description Provided\",\n snippet: \"\",\n tags: [],\n typeKeywords: [\"Hub Project\"],\n properties: {\n slug: \"\",\n },\n },\n data: {\n display: \"about\",\n timeline: {},\n status: \"inactive\",\n contacts: [],\n schemaVersion: 1,\n },\n};\n/**\n * Returns an Array of IPropertyMap objects\n * We could define these directly, but since the\n * properties of IHubProject map directly to properties\n * on item or data, it's slightly less verbose to\n * generate the structure.\n * @returns\n */\nfunction getProjectPropertyMap() {\n var itemProps = [\n \"created\",\n \"culture\",\n \"description\",\n \"extent\",\n \"id\",\n \"modified\",\n \"owner\",\n \"snippet\",\n \"tags\",\n \"typeKeywords\",\n \"url\",\n \"type\",\n ];\n var dataProps = [\n \"contacts\",\n \"display\",\n \"geometry\",\n \"headerImage\",\n \"layout\",\n \"location\",\n \"status\",\n ];\n var map = [];\n itemProps.forEach(function (entry) {\n map.push({ objectKey: entry, modelKey: \"item.\" + entry });\n });\n dataProps.forEach(function (entry) {\n map.push({ objectKey: entry, modelKey: \"data.\" + entry });\n });\n // Deeper mappings\n map.push({\n objectKey: \"slug\",\n modelKey: \"item.properties.slug\",\n });\n map.push({\n objectKey: \"orgUrlKey\",\n modelKey: \"item.properties.orgUrlKey\",\n });\n map.push({\n objectKey: \"name\",\n modelKey: \"item.title\",\n });\n return map;\n}\n/**\n * Create a new Hub Project item\n *\n * Minimal properties are name and org\n *\n * @param project\n * @param requestOptions\n */\nexport function createProject(partialProject, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var project, _a, mapper, model, newProject;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n project = __assign(__assign({}, DEFAULT_PROJECT), partialProject);\n // Create a slug from the title if one is not passed in\n if (!project.slug) {\n project.slug = constructSlug(project.name, project.orgUrlKey);\n }\n // Ensure slug is unique\n _a = project;\n return [4 /*yield*/, getUniqueSlug({ slug: project.slug }, requestOptions)];\n case 1:\n // Ensure slug is unique\n _a.slug = _b.sent();\n // add slug to keywords\n project.typeKeywords = setSlugKeyword(project.typeKeywords, project.slug);\n mapper = new PropertyMapper(getProjectPropertyMap());\n model = mapper.objectToModel(project, cloneObject(DEFAULT_PROJECT_MODEL));\n return [4 /*yield*/, createModel(model, requestOptions)];\n case 2:\n // create the item\n model = _b.sent();\n newProject = mapper.modelToObject(model, {});\n // and return it\n return [2 /*return*/, newProject];\n }\n });\n });\n}\n/**\n * Update a Hub Project\n * @param project\n * @param requestOptions\n */\nexport function updateProject(project, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, model, mapper, modelToUpdate, updatedModel, updatedProject;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n // verify that the slug is unique, excluding the current project\n _a = project;\n return [4 /*yield*/, getUniqueSlug({ slug: project.slug, existingId: project.id }, requestOptions)];\n case 1:\n // verify that the slug is unique, excluding the current project\n _a.slug = _b.sent();\n return [4 /*yield*/, getModel(project.id, requestOptions)];\n case 2:\n model = _b.sent();\n mapper = new PropertyMapper(getProjectPropertyMap());\n modelToUpdate = mapper.objectToModel(project, model);\n return [4 /*yield*/, updateModel(modelToUpdate, requestOptions)];\n case 3:\n updatedModel = _b.sent();\n updatedProject = mapper.modelToObject(updatedModel, project);\n // the casting is needed because modelToObject returns a `Partial<T>`\n // where as this function returns a `T`\n return [2 /*return*/, updatedProject];\n }\n });\n });\n}\n/**\n * Get a Hub Project by id or slug\n * @param identifier item id or slug\n * @param requestOptions\n */\nexport function fetchProject(identifier, requestOptions) {\n var getPrms;\n if (isGuid(identifier)) {\n // get item by id\n getPrms = getItem(identifier, requestOptions);\n }\n else {\n getPrms = getItemBySlug(identifier, requestOptions);\n }\n return getPrms.then(function (item) {\n if (!item)\n return null;\n return convertItemToProject(item, requestOptions);\n });\n}\n/**\n * Remove a Hub Project\n * @param id\n * @param requestOptions\n */\nexport function destroyProject(id, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var ro;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n ro = __assign(__assign({}, requestOptions), { id: id });\n return [4 /*yield*/, removeItem(ro)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n}\n/**\n * Search for Projects, and get IHubProject results\n *\n * Different from `hubSearch` in that this returns the IHubProjects\n *\n * @param filter\n * @param options\n * @returns\n */\nexport function searchProjects(query, options) {\n return __awaiter(this, void 0, void 0, function () {\n var qry, scopingFilters;\n return __generator(this, function (_a) {\n if (typeof query === \"string\") {\n qry = createQueryFromString(query, \"term\", \"item\");\n }\n else {\n qry = cloneObject(query);\n }\n scopingFilters = [\n {\n predicates: [\n {\n type: \"Hub Project\",\n },\n ],\n },\n ];\n // add filters from the passed in query\n qry.filters = __spreadArrays(scopingFilters, qry.filters);\n return [2 /*return*/, searchEntities(qry, convertItemToProject, options)];\n });\n });\n}\n/**\n * Convert an Hub Project Item into a Hub Project, fetching any additional\n * information that may be required\n * @param item\n * @param auth\n * @returns\n */\nexport function convertItemToProject(item, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var model, mapper, token, session, prj;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, fetchModelFromItem(item, requestOptions)];\n case 1:\n model = _a.sent();\n mapper = new PropertyMapper(getProjectPropertyMap());\n if (requestOptions.authentication) {\n session = requestOptions.authentication;\n token = session.token;\n }\n prj = mapper.modelToObject(model, {});\n prj.thumbnailUrl = getItemThumbnailUrl(model.item, requestOptions, token);\n return [2 /*return*/, prj];\n }\n });\n });\n}\n/**\n * Fetch project specific enrichments\n * @param item\n * @param include\n * @param requestOptions\n * @returns\n */\nexport function enrichProjectSearchResult(item, include, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var result, DEFAULTS, specs, enrichments, enriched;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n result = {\n access: item.access,\n id: item.id,\n type: item.type,\n name: item.title,\n owner: item.owner,\n summary: item.snippet || item.description,\n createdDate: new Date(item.created),\n createdDateSource: \"item.created\",\n updatedDate: new Date(item.modified),\n updatedDateSource: \"item.modified\",\n family: getFamily(item.type),\n links: {\n self: \"not-implemented\",\n siteRelative: \"not-implemented\",\n thumbnail: \"not-implemented\",\n },\n };\n DEFAULTS = [];\n // merge includes\n include = __spreadArrays(DEFAULTS, include).filter(unique);\n specs = include.map(parseInclude);\n enrichments = mapBy(\"enrichment\", specs).filter(unique);\n enriched = {};\n if (!enrichments.length) return [3 /*break*/, 2];\n return [4 /*yield*/, fetchItemEnrichments(item, enrichments, requestOptions)];\n case 1:\n // TODO: Look into caching for the requests in fetchItemEnrichments\n enriched = _a.sent();\n _a.label = 2;\n case 2:\n // map the enriched props onto the result\n specs.forEach(function (spec) {\n result[spec.prop] = getProp(enriched, spec.path);\n });\n // Handle links\n // TODO: Link handling should be an enrichment\n result.links.thumbnail = getItemThumbnailUrl(item, requestOptions);\n result.links.self = getItemHomeUrl(result.id, requestOptions);\n result.links.siteRelative = getHubRelativeUrl(result.type, result.id, item.typeKeywords);\n return [2 /*return*/, result];\n }\n });\n });\n}\n//# sourceMappingURL=HubProjects.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { updateItem } from \"@esri/arcgis-rest-portal\";\nimport { HubError } from \"..\";\n/**\n * Upload a file to be used as the thumbnail for an item\n * @param id\n * @param file\n * @param filename\n * @param requestOptions\n */\nexport function setItemThumbnail(id, file, filename, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var opts, response, err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n opts = __assign({ item: {\n id: id,\n }, params: {\n thumbnail: file,\n }, filename: filename }, requestOptions);\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, updateItem(opts)];\n case 2:\n response = _a.sent();\n if (!response.success) {\n throw new HubError(\"Set Project Thumbnail\", \"Unknown error setting thumbnail.\");\n }\n return [3 /*break*/, 4];\n case 3:\n err_1 = _a.sent();\n if (err_1 instanceof Error) {\n throw new HubError(\"Set Project Thumbnail\", err_1.message, err_1);\n }\n else {\n throw new HubError(\"Set Project Thumbnail\", \"Unknown error setting thumbnail.\");\n }\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n}\n//# sourceMappingURL=setItemThumbnail.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { createProject, updateProject, destroyProject, fetchProject, searchProjects, convertItemToProject, } from \"./HubProjects\";\n// Node has issues if this is not directly imported\nimport { ArcGISContextManager } from \"../ArcGISContextManager\";\nimport { HubError, } from \"..\";\nimport { setItemThumbnail as updateItemThumbnail } from \"../items/setItemThumbnail\";\n/**\n * Centralized functions used to manage IHubProject instances\n *\n * This class is a convenience wrapper over util functions which\n * are also directly accessible for use in scenarios where\n * classes are inconvenient.\n */\nvar HubProjectManager = /** @class */ (function () {\n /**\n * Private so we can employ a factory function should we need\n * async work during creation\n * @param contextOrManager\n */\n function HubProjectManager(contextOrManager) {\n if (contextOrManager instanceof ArcGISContextManager) {\n this._contextManager = contextOrManager;\n }\n else {\n this._context = contextOrManager;\n }\n }\n /**\n * Factory function to construct a new HubProjectManager instance.\n *\n * Note: Used so that we could do async actions in the ctor.\n * @param contextOrManager\n * @returns\n */\n HubProjectManager.init = function (contextOrManager) {\n return new HubProjectManager(contextOrManager);\n };\n Object.defineProperty(HubProjectManager.prototype, \"context\", {\n /**\n * Getter to abstract how we store the context\n */\n get: function () {\n if (this._contextManager) {\n return this._contextManager.context;\n }\n else {\n return this._context;\n }\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Create and store new project.\n *\n * Projects are stored as Items in the Sharing API\n * @param project\n * @param requestOptions\n * @returns\n */\n HubProjectManager.prototype.create = function (project, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (requestOptions || this.context.isAuthenticated) {\n // ammend in the orgUrlKey\n if (!project.orgUrlKey) {\n project.orgUrlKey = this.context.portal.urlKey;\n }\n return [2 /*return*/, createProject(project, requestOptions || this.context.userRequestOptions)];\n }\n else {\n throw new HubError(\"Create Project\", \"Creating Hub Projects requires authentication.\");\n }\n return [2 /*return*/];\n });\n });\n };\n /**\n * Update a project\n * @param project\n * @param requestOptions\n * @returns\n */\n HubProjectManager.prototype.update = function (project, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (requestOptions || this.context.isAuthenticated) {\n return [2 /*return*/, updateProject(project, requestOptions || this.context.userRequestOptions)];\n }\n else {\n throw new HubError(\"Update Project\", \"Updating Hub Projects requires authentication.\");\n }\n return [2 /*return*/];\n });\n });\n };\n /**\n * Destroy a project.\n * This permanently removes the backing Item\n * @param id\n * @param requestOptions\n * @returns\n */\n HubProjectManager.prototype.destroy = function (id, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (requestOptions || this.context.isAuthenticated) {\n return [2 /*return*/, destroyProject(id, requestOptions || this.context.userRequestOptions)];\n }\n else {\n throw new HubError(\"Destroy Project\", \"Destroying Hub Projects requires authentication.\");\n }\n return [2 /*return*/];\n });\n });\n };\n /**\n * Fetch a Project via id or it's slug\n *\n * This function does not require a user to be\n * authenticated, but it does require an `IRequestOptions`\n * which contains the portal instance to communicate with\n * @param identifier\n * @param requestOptions\n * @returns\n */\n HubProjectManager.prototype.fetch = function (identifier, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (requestOptions || this.context.requestOptions) {\n return [2 /*return*/, fetchProject(identifier, requestOptions || this.context.requestOptions)];\n }\n else {\n throw new HubError(\"Fetch Project\", \"Can not retrieve context.requestOptions from Context Manager. HubProjectManager is configured incorrectly.\");\n }\n return [2 /*return*/];\n });\n });\n };\n /**\n * Search for Projects\n *\n * @param query\n * @param options\n */\n HubProjectManager.prototype.search = function (query, options) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n // if we were not passed auth, and we have a session, use it\n if (!options.authentication && this.context.session) {\n options.authentication = this.context.session;\n }\n return [2 /*return*/, searchProjects(query, options)];\n });\n });\n };\n /**\n * Set the thumbnail for the Project\n * @param id\n * @param file\n * @param filename\n * @param requestOptions\n * @returns\n */\n HubProjectManager.prototype.updateThumbnail = function (project, file, filename, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var ro;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n ro = requestOptions || this.context.userRequestOptions;\n return [4 /*yield*/, updateItemThumbnail(project.id, file, filename, ro)];\n case 1:\n _a.sent();\n // get the item so we have updated props and timestamps\n return [2 /*return*/, this.fetch(project.id, requestOptions)];\n }\n });\n });\n };\n /**\n * Convert a Hub Project Item to a IHubProject\n * @param item\n * @param requestOptions\n * @returns\n */\n HubProjectManager.prototype.fromItem = function (item, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var ro;\n return __generator(this, function (_a) {\n ro = requestOptions || this.context.userRequestOptions;\n return [2 /*return*/, convertItemToProject(item, ro)];\n });\n });\n };\n return HubProjectManager;\n}());\nexport { HubProjectManager };\n//# sourceMappingURL=HubProjectManager.js.map","import { getProp, cloneObject, deleteProp, setProp, } from \"../..\";\n/**\n * Add telemetry config object\n * @private\n * @param {object} model Site Model\n * @returns {object}\n */\nexport function _ensureTelemetry(model) {\n if (getProp(model, \"item.properties.schemaVersion\") >= 1.4)\n return model;\n var clone = cloneObject(model);\n var gacode = getProp(clone, \"data.values.gacode\");\n clone.data.values.telemetry = {\n consentNotice: {\n isTheme: true,\n consentText: \"\",\n policyURL: \"\",\n },\n customAnalytics: {\n ga: {\n customerTracker: {\n enabled: Boolean(gacode),\n id: gacode,\n },\n },\n },\n };\n deleteProp(clone, \"data.values.gacode\");\n setProp(\"item.properties.schemaVersion\", 1.4, clone);\n return clone;\n}\n//# sourceMappingURL=_ensure-telemetry.js.map","import { __awaiter, __generator } from \"tslib\";\n/**\n * Parse a response object, and throw if it contains an error.\n * Just a wrapper to hide some platform idiosyncracies\n * @param {Response} response Response object to parse\n * @private\n */\nexport function _checkStatusAndParseJson(response) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (response.status >= 200 && response.status < 300) {\n // don't try to parse the body if it's empty\n // if (response.body) { // the fetch polyfill for IE... does not expose a body property... :(\n return [2 /*return*/, response.json()];\n // }\n }\n else {\n // we're gonna throw, but we need to construct the error\n return [2 /*return*/, response.json().then(function (json) {\n if (json.error) {\n var error = new Error(json.error.title + \" :: \" + json.error.detail + \" :: \" + response.status);\n throw error;\n }\n else {\n throw new Error(\"Got \" + response.status + \" \" + response.statusText);\n }\n })];\n }\n return [2 /*return*/];\n });\n });\n}\n//# sourceMappingURL=_check-status-and-parse-json.js.map","import { getProp } from \"../../objects\";\n/**\n * Construct the auth header from a hub request options\n * @param {IHubRequestOptions} hubRequestOptions\n * @private\n */\nexport function _getAuthHeader(hubRequestOptions) {\n var result = {};\n var token = getProp(hubRequestOptions, \"authentication.token\");\n if (token) {\n result.Authorization = token;\n }\n return result;\n}\n//# sourceMappingURL=_get-auth-header.js.map","/**\n * Extract the domain service from the request options\n * @param {string} hubApiUrl\n * @private\n */\nexport function _getDomainServiceUrl(hubApiUrl) {\n var base = hubApiUrl || \"https://hub.arcgis.com\";\n return base + \"/api/v3/domains\";\n}\n//# sourceMappingURL=_get-domain-service-url.js.map","import { searchItems } from \"@esri/arcgis-rest-portal\";\nimport { includes } from \"../../utils\";\n/**\n * Lookup a domain in Portal\n * @param {string} hostname to locate the site for\n * @param {IRequestOptions} requestOptions\n * @private\n */\nexport function _lookupPortal(hostname, requestOptions) {\n // for portal we search for a site w/ `hubsubdomain|<domain>` type keyword\n var subdomain = hostname;\n // if this subdomain has a hash in it, knock that off\n if (hostname.indexOf(\"#/\") > -1) {\n subdomain = hostname.split(\"#/\")[1];\n }\n var queryTerm = \"hubsubdomain|\" + subdomain;\n var opts = Object.assign({\n q: \"typekeywords: \" + queryTerm,\n }, requestOptions);\n return searchItems(opts)\n .then(function (res) {\n // since the search api stems the terms, we need to verify\n // by looking at the results\n return res.results.filter(function (r) {\n return includes(r.typeKeywords, queryTerm);\n })[0];\n })\n .then(function (site) {\n if (!site)\n throw new Error(\"site not found\");\n return {\n hostname: site.url,\n siteId: site.id,\n };\n });\n}\n//# sourceMappingURL=_lookup-portal.js.map","import { _getAuthHeader } from \"./_get-auth-header\";\nimport { _getDomainServiceUrl } from \"./_get-domain-service-url\";\nimport { _checkStatusAndParseJson } from \"./_check-status-and-parse-json\";\n/**\n * Create an entry in the domain system\n * @param {IHubDomain} domainEntry Domain hash to be stored\n * @param {IHubRequestOptions} hubRequestOptions\n */\nexport function addDomain(domainEntry, hubRequestOptions) {\n if (hubRequestOptions.isPortal) {\n throw new Error(\"addDomain is not available in ArcGIS Enterprise. Instead, edit the hubdomain typekeyword on the item\");\n }\n var headers = _getAuthHeader(hubRequestOptions);\n headers[\"Content-Type\"] = \"application/json\";\n var url = \"\" + _getDomainServiceUrl(hubRequestOptions.hubApiUrl);\n // handle case of siteTitle being numeric\n var title = domainEntry.siteTitle;\n if (typeof title === \"number\") {\n domainEntry.siteTitle = title.toString();\n }\n return fetch(url, {\n method: \"POST\",\n headers: headers,\n mode: \"cors\",\n body: JSON.stringify(domainEntry),\n }).then(_checkStatusAndParseJson);\n}\n//# sourceMappingURL=add-domain.js.map","import { _getDomainServiceUrl } from \"./_get-domain-service-url\";\nimport { _getAuthHeader } from \"./_get-auth-header\";\nimport { stripProtocol } from \"../../urls\";\n/**\n * Check if a domain entry exists. Different from lookupDomain\n * in that this will return true/false, where as lookupDomain will\n * return the domain entry or throw. However, lookupDomain can work\n * with ArcGIS Enterprise.\n * Will throw if used in Portal.\n * @param {string} hostname Domain entry to check for\n * @param {IHubRequestOptions} hubRequestOptions\n */\nexport function domainExists(hostname, hubRequestOptions) {\n if (hubRequestOptions.isPortal) {\n throw new Error(\"domainExists is not available in ArcGIS Enterprise.\");\n }\n hostname = stripProtocol(hostname);\n var url = _getDomainServiceUrl(hubRequestOptions.hubApiUrl) + \"/\" + hostname;\n var headers = _getAuthHeader(hubRequestOptions);\n return fetch(url, { method: \"GET\", headers: headers, mode: \"cors\" }).then(function (response) { return response.status !== 404; });\n}\n//# sourceMappingURL=domain-exists.js.map","import { _lookupPortal } from \"./_lookup-portal\";\n/**\n * Check if an item exists with the specified domain keyword\n * @param {String} hostname to check for\n * @param {IHubRequestOptions} hubRequestOptions\n */\nexport function domainExistsPortal(hostname, hubRequestOptions) {\n return _lookupPortal(hostname, hubRequestOptions)\n .then(function (_) {\n return true;\n })\n .catch(function (_) {\n return false;\n });\n}\n//# sourceMappingURL=domain-exists-portal.js.map","import { _getDomainServiceUrl } from \"./_get-domain-service-url\";\nimport { _getAuthHeader } from \"./_get-auth-header\";\nimport { _checkStatusAndParseJson } from \"./_check-status-and-parse-json\";\n/**\n * Get a list\n * @param {string} siteId Item id of the Site\n * @param {IHubRequestOptions} hubRequestOptions\n */\nexport function getDomainsForSite(siteId, hubRequestOptions) {\n if (hubRequestOptions.isPortal) {\n return Promise.resolve([]);\n }\n var url = _getDomainServiceUrl(hubRequestOptions.hubApiUrl) + \"?siteId=\" + siteId;\n var headers = _getAuthHeader(hubRequestOptions);\n return fetch(url, { method: \"GET\", headers: headers, mode: \"cors\" })\n .then(_checkStatusAndParseJson)\n .catch(function (err) {\n throw Error(\"Error in getDomainsForSite \" + err);\n });\n}\n//# sourceMappingURL=get-domains-for-site.js.map","import { domainExists } from \"./domain-exists\";\n/**\n * Ensure a unique domain name by checking for and incrementing\n * a subdomain\n * @param {String} subdomain Subdomain to ensure is unique\n * @param {String} baseHostname base hostname\n * @param hubRequestOptions\n * @param {Number} step Step number\n */\nexport function getUniqueDomainName(subdomain, baseHostname, hubRequestOptions, step) {\n if (step === void 0) { step = 0; }\n var combinedName = subdomain;\n if (step) {\n combinedName = subdomain + \"-\" + step;\n }\n var hostname = combinedName + \"-\" + baseHostname;\n return domainExists(hostname, hubRequestOptions).then(function (exists) {\n // if result === true, then we need to step the name...\n if (exists) {\n var nextStep = step + 1;\n return getUniqueDomainName(subdomain, baseHostname, hubRequestOptions, nextStep);\n }\n else {\n return combinedName;\n }\n });\n}\n//# sourceMappingURL=get-unique-domain-name.js.map","import { domainExistsPortal } from \"./domain-exists-portal\";\n/**\n * Ensure a unique domain name by checking for and incrementing\n * a subdomain\n * @param {String} subdomain Subdomain to ensure is unique\n * @param {IHubRequestOptions} hubRequestOptions\n * @param {*} step Step number\n */\nexport function getUniqueDomainNamePortal(subdomain, hubRequestOptions, step) {\n if (step === void 0) { step = 0; }\n var combinedName = subdomain;\n if (step) {\n combinedName = subdomain + \"-\" + step;\n }\n // now we search for existing items w/ this...\n return domainExistsPortal(combinedName, hubRequestOptions).then(function (exists) {\n if (exists) {\n var nextStep = step + 1;\n return getUniqueDomainNamePortal(subdomain, hubRequestOptions, nextStep);\n }\n else {\n return combinedName;\n }\n });\n}\n//# sourceMappingURL=get-unique-domain-name-portal.js.map","import { isGuid } from \"../../utils\";\n/**\n * Determine if a domain entry belongs to a legacy site.\n * This is used to allow customers to \"reclaim\" domains that\n * were associated with legacy sites which can no longer be\n * edited.\n * @param {IHubDomain} domainEntry Domain Info record\n */\nexport function isDomainForLegacySite(domainEntry) {\n return !isGuid(domainEntry.siteId);\n}\n//# sourceMappingURL=is-domain-for-legacy-site.js.map","import { _lookupPortal } from \"./_lookup-portal\";\nimport { _getDomainServiceUrl } from \"./_get-domain-service-url\";\nimport { _getAuthHeader } from \"./_get-auth-header\";\nimport { _checkStatusAndParseJson } from \"./_check-status-and-parse-json\";\n/**\n * Fetch a the information about a domain.\n * Different implementation for Portal vs AGO\n * @param {string} hostname of domain record to locate\n * @param {IHubRequestOptions} hubRequestOptions\n */\nexport function lookupDomain(hostname, hubRequestOptions) {\n if (hubRequestOptions.isPortal) {\n return _lookupPortal(hostname, hubRequestOptions);\n }\n else {\n var url = _getDomainServiceUrl(hubRequestOptions.hubApiUrl) + \"/\" + hostname;\n var headers = _getAuthHeader(hubRequestOptions);\n return fetch(url, { method: \"GET\", headers: headers, mode: \"cors\" }).then(_checkStatusAndParseJson);\n }\n}\n//# sourceMappingURL=lookup-domain.js.map","import { lookupDomain } from \"./lookup-domain\";\n/**\n * Check to see if a domain is in use by any site other than the\n * one passed in. This is used in various validators while the\n * user is editing properties of the site.\n * @param {string} hostname to check\n * @param {string} siteId Site Id we are checking for\n * @param {IHubRequestOptions} hubRequestOptions\n */\nexport function isDomainUsedElsewhere(hostname, siteId, hubRequestOptions) {\n return lookupDomain(hostname, hubRequestOptions)\n .then(function (domainEntry) {\n return domainEntry.siteId !== siteId;\n })\n .catch(function () {\n // domain entry not found, ergo not used on another site\n return false;\n });\n}\n//# sourceMappingURL=is-domain-used-elsewhere.js.map","import { _getAuthHeader } from \"./_get-auth-header\";\nimport { _getDomainServiceUrl } from \".\";\n/**\n * Validate a custom domain\n * @param {string} hostname to validate\n * @param {IHubRequestOptions} hubRequestOptions\n */\nexport function isValidDomain(hostname, hubRequestOptions) {\n if (hubRequestOptions.isPortal) {\n throw new Error(\"isValidDomain is not available in ArcGIS Enterprise.\");\n }\n var url = _getDomainServiceUrl(hubRequestOptions.hubApiUrl) + \"/validate?hostname=\" + hostname;\n var headers = _getAuthHeader(hubRequestOptions);\n return fetch(url, { method: \"GET\", headers: headers, mode: \"cors\" })\n .then(function (response) {\n return response.json();\n })\n .catch(function (e) {\n return {\n success: false,\n input: hostname,\n error: {\n code: 400,\n detail: e,\n message: \"lookupFailed\",\n },\n };\n });\n}\n//# sourceMappingURL=is-valid-domain.js.map","import { _getAuthHeader } from \"./_get-auth-header\";\nimport { _getDomainServiceUrl } from \"./_get-domain-service-url\";\nimport { _checkStatusAndParseJson } from \"./_check-status-and-parse-json\";\n/**\n * Remove a domain entry.\n * User must be a member of the org that owns the domain entry.\n * @param {int} domainId Id of the domain entry to remove\n * @param {IHubRequestOptions} hubRequestOptions`dom\n */\nexport function removeDomain(domainId, hubRequestOptions) {\n if (hubRequestOptions.isPortal) {\n throw new Error(\"removeDomain is not available in ArcGIS Enterprise. Instead, edit the hubdomain typekeyword on the item\");\n }\n var headers = _getAuthHeader(hubRequestOptions);\n headers[\"Content-Type\"] = \"application/json\";\n var url = _getDomainServiceUrl(hubRequestOptions.hubApiUrl) + \"/\" + domainId;\n return fetch(url, { method: \"DELETE\", headers: headers, mode: \"cors\" }).then(_checkStatusAndParseJson);\n}\n//# sourceMappingURL=remove-domain.js.map","import { _getAuthHeader } from \"./_get-auth-header\";\nimport { _getDomainServiceUrl } from \"./_get-domain-service-url\";\nimport { _checkStatusAndParseJson } from \"./_check-status-and-parse-json\";\n/**\n * Remove all domain entries by site id.\n * User must be a member of the org that owns the domain entry.\n * @param {int} domainSiteId of the domain entries to remove\n * @param {IHubRequestOptions} hubRequestOptions`dom\n */\nexport function removeDomainsBySiteId(domainSiteId, hubRequestOptions) {\n // TODO: Can remove this if no longer required\n if (hubRequestOptions.isPortal) {\n throw new Error(\"removeDomainsBySiteId is not available in ArcGIS Enterprise. Instead, edit the hubdomain typekeyword on the item\");\n }\n var headers = _getAuthHeader(hubRequestOptions);\n headers[\"Content-Type\"] = \"application/json\";\n var url = _getDomainServiceUrl(hubRequestOptions.hubApiUrl) + \"/?siteId=\" + domainSiteId;\n return fetch(url, { method: \"DELETE\", headers: headers, mode: \"cors\" }).then(_checkStatusAndParseJson);\n}\n//# sourceMappingURL=remove-domains-by-site-id.js.map","import { _getAuthHeader } from \"./_get-auth-header\";\nimport { _getDomainServiceUrl } from \"./_get-domain-service-url\";\nimport { _checkStatusAndParseJson } from \"./_check-status-and-parse-json\";\n/**\n * Update an entry in the domain system\n * @param {IHubDomain} domainEntry Doman object to be updated\n * @param {IHubRequestOptions} hubRequestOptions\n */\nexport function updateDomain(domainEntry, hubRequestOptions) {\n if (hubRequestOptions.isPortal) {\n throw new Error(\"updateDomain is not available in ArcGIS Enterprise. Instead, edit the hubdomain typekeyword on the item\");\n }\n var headers = _getAuthHeader(hubRequestOptions);\n headers[\"Content-Type\"] = \"application/json\";\n var url = _getDomainServiceUrl(hubRequestOptions.hubApiUrl) + \"/\" + domainEntry.id;\n // handle case of siteTitle being numeric\n var title = domainEntry.siteTitle;\n if (typeof title === \"number\") {\n domainEntry.siteTitle = title.toString();\n }\n return fetch(url, {\n method: \"PUT\",\n headers: headers,\n mode: \"cors\",\n body: JSON.stringify(domainEntry),\n }).then(_checkStatusAndParseJson);\n}\n//# sourceMappingURL=update-domain.js.map","import { cloneObject } from \"../../util\";\nimport { generateRandomString } from \"../../utils\";\n/**\n * Ensure that a subdomain is not greater than 63 characters in length\n * Subdomains are prep-ended on the org's url key, and the combined\n * length can not exceed 63 chars as per rules of domains.\n * If the requested subdomain + the url key is > 63 chars, we\n * strip off the last 6 chars and replace that w/ random characeters\n * This was an actual reported bug.\n * @param {String} subdomain Proposed subdomain\n * @param {String} urlKey Org url key\n * @private\n */\nexport function _ensureSafeDomainLength(subdomain, urlKey) {\n var result = cloneObject(subdomain);\n var max = 63;\n if (urlKey)\n max = max - (urlKey.length + 1);\n if (result.length > max) {\n result = result.slice(0, max - 6) + \"-\" + generateRandomString(5);\n }\n return result;\n}\n//# sourceMappingURL=_ensure-safe-domain-length.js.map","import { getUniqueDomainNamePortal } from \"./get-unique-domain-name-portal\";\nimport { getUniqueDomainName } from \"./get-unique-domain-name\";\nimport { _ensureSafeDomainLength } from \"./_ensure-safe-domain-length\";\nimport { stripProtocol } from \"../../urls\";\nimport { getHubApiUrl } from \"../..\";\n/**\n * Given a subdomain, ensure that we have a unique hostname\n * incrementing if needed\n * @param {String} subdomain Subdomain to unique-ify\n * @param {IHubRequestOptions} hubRequestOptions\n */\nexport function ensureUniqueDomainName(subdomain, hubRequestOptions) {\n var prms;\n if (hubRequestOptions.isPortal) {\n prms = getUniqueDomainNamePortal(subdomain, hubRequestOptions);\n }\n else {\n var baseDomain = hubRequestOptions.portalSelf.urlKey + \".\" + stripProtocol(getHubApiUrl(hubRequestOptions));\n prms = getUniqueDomainName(subdomain, baseDomain, hubRequestOptions);\n }\n return prms.then(function (uniqueDomain) {\n return _ensureSafeDomainLength(uniqueDomain, hubRequestOptions.portalSelf.urlKey);\n });\n}\n//# sourceMappingURL=ensure-unique-domain-name.js.map","import { getProp, addDomain } from \"../..\";\n/**\n * Given a Site Model, register the domains with the Domain Service.\n *\n * This should only be used when creating a site. To update domains related\n * to a site, use the `addDomain` and `removeDomain` functions directly\n *\n * @param {Object} model site model\n * @param {IHubRequestOptions} hubRequestOptions\n */\nexport function addSiteDomains(model, hubRequestOptions) {\n if (hubRequestOptions.isPortal) {\n return Promise.resolve([]);\n }\n else {\n var props = [\"defaultHostname\", \"customHostname\"];\n return Promise.all(props.reduce(function (acc, prop) {\n var hostname = getProp(model, \"data.values.\" + prop);\n if (hostname) {\n var domainOpts = {\n hostname: hostname,\n clientKey: model.data.values.clientId,\n orgId: hubRequestOptions.portalSelf.id,\n orgTitle: hubRequestOptions.portalSelf.name,\n orgKey: hubRequestOptions.portalSelf.urlKey,\n siteId: model.item.id,\n siteTitle: model.item.title,\n sslOnly: true,\n };\n acc.push(addDomain(domainOpts, hubRequestOptions));\n }\n return acc;\n }, []));\n }\n}\n//# sourceMappingURL=addSiteDomains.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { lookupDomain, removeDomain } from \".\";\nimport { getProp } from \"../..\";\n/**\n * Remove an entry from the domain service, based on a hostname\n *\n * Callers must ensure the user is a member of the org that\n * owns the domain entry else the call will fail.\n * @param hostname\n * @param hubRequestOptions\n */\nexport function removeDomainByHostname(hostname, hubRequestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var domainEntry, id, ex_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (hubRequestOptions.isPortal) {\n throw new Error(\"removeDomainByHostname is not available in ArcGIS Enterprise. Instead, edit the hubdomain typekeyword on the item\");\n }\n _a.label = 1;\n case 1:\n _a.trys.push([1, 5, , 6]);\n return [4 /*yield*/, lookupDomain(hostname, hubRequestOptions)];\n case 2:\n domainEntry = _a.sent();\n id = getProp(domainEntry, \"id\");\n if (!id) return [3 /*break*/, 4];\n return [4 /*yield*/, removeDomain(id, hubRequestOptions)];\n case 3:\n _a.sent();\n _a.label = 4;\n case 4: return [3 /*break*/, 6];\n case 5:\n ex_1 = _a.sent();\n throw new Error(\"Error removing domain entry for \" + hostname + \": \" + ex_1);\n case 6: return [2 /*return*/];\n }\n });\n });\n}\n//# sourceMappingURL=removeDomainByHostname.js.map","import { mergeObjects } from \"../..\";\n/**\n * Builds a draft with a subset of the model properties\n * @param {*} model - item model\n * @param {*} includeList - list of property paths to include in draft object\n */\nexport function buildDraft(model, includeList) {\n return mergeObjects(model, {}, includeList);\n}\n//# sourceMappingURL=build-draft.js.map","import { isGuid, stripProtocol, getSiteById, lookupDomain, } from \"..\";\n/**\n * Returns site model given various kinds of identifier\n *\n * @param identifier - a site item ID, site hostname, enterprise site slug, or full site URL\n * @param hubRequestOptions\n */\nexport function fetchSiteModel(identifier, hubRequestOptions) {\n var prms;\n if (isGuid(identifier)) {\n prms = getSiteById(identifier, hubRequestOptions);\n }\n else {\n var hostnameOrSlug = identifier;\n // get down the the hostname\n hostnameOrSlug = stripProtocol(hostnameOrSlug);\n hostnameOrSlug = hostnameOrSlug.split(\"/\")[0];\n prms = lookupDomain(hostnameOrSlug, hubRequestOptions).then(function (_a) {\n var siteId = _a.siteId;\n return getSiteById(siteId, hubRequestOptions);\n });\n }\n return prms;\n}\n//# sourceMappingURL=fetchSiteModel.js.map","import { upgradeSiteSchema } from \".\";\nimport { getModel } from \"..\";\n/**\n * Get a Site Model by it's Item Id, and apply schema upgrades\n * @param {String} id Site Item Id\n * @param {IHubRequestOptions} hubRequestOptions\n */\nexport function getSiteById(id, hubRequestOptions) {\n return getModel(id, hubRequestOptions).then(upgradeSiteSchema);\n}\n//# sourceMappingURL=get-site-by-id.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { getProp, removeDomainByHostname, addDomain, } from \"../..\";\n/**\n * Given two site models, determine the domain changes and apply them\n * @param currentModel\n * @param updatedModel\n * @param requestOptions\n * @private\n */\nexport function handleDomainChanges(updatedModel, currentModel, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var defaultDomainRecord, domainChanges, domainChangePromises;\n return __generator(this, function (_a) {\n defaultDomainRecord = {\n clientKey: updatedModel.data.values.clientId,\n orgId: requestOptions.portalSelf.id,\n orgTitle: requestOptions.portalSelf.name,\n orgKey: requestOptions.portalSelf.urlKey,\n siteId: updatedModel.item.id,\n siteTitle: updatedModel.item.title,\n sslOnly: true,\n };\n domainChanges = {\n remove: [],\n add: [],\n };\n [\"customHostname\", \"defaultHostname\"].forEach(function (key) {\n var currentValue = getProp(currentModel, \"data.values.\" + key);\n var updatedValue = getProp(updatedModel, \"data.values.\" + key);\n if (updatedValue !== currentValue) {\n domainChanges.remove.push(currentValue);\n domainChanges.add.push(updatedValue);\n }\n });\n domainChangePromises = [];\n // handle additions\n domainChanges.add.map(function (hostname) {\n var domainOpts = __assign({ hostname: hostname }, defaultDomainRecord);\n domainChangePromises.push(addDomain(domainOpts, requestOptions));\n });\n // handle removals\n domainChanges.remove.map(function (hostname) {\n domainChangePromises.push(removeDomainByHostname(hostname, requestOptions));\n });\n return [2 /*return*/, Promise.all(domainChangePromises)];\n });\n });\n}\n//# sourceMappingURL=handleDomainChanges.js.map","/**\n * @private\n * Construct a query from a string\n * @param value\n * @param predicateKey\n * @param targetEntity\n * @returns\n */\nexport function createQueryFromString(value, predicateKey, targetEntity) {\n var predicate = {};\n predicate[predicateKey] = value;\n var qry = {\n targetEntity: targetEntity,\n filters: [\n {\n predicates: [predicate],\n },\n ],\n };\n return qry;\n}\n//# sourceMappingURL=createQueryFromString.js.map","import { __assign, __awaiter, __generator, __spreadArrays } from \"tslib\";\nimport { removeItem } from \"@esri/arcgis-rest-portal\";\nimport { addSiteDomains, cloneObject, constructSlug, createModel, ensureUniqueDomainName, fetchModelFromItem, fetchSiteModel, getFamily, getHubApiUrl, getItemThumbnailUrl, getModel, getOrgDefaultTheme, getProp, mapBy, registerSiteAsApplication, removeDomainsBySiteId, setProp, setSlugKeyword, slugify, stripProtocol, unique, updateModel, } from \"../index\";\nimport { PropertyMapper } from \"../core/_internal/PropertyMapper\";\nimport { handleDomainChanges } from \"./_internal\";\nimport { searchEntities } from \"../search/_internal/searchEntities\";\nimport { fetchItemEnrichments } from \"../items/_enrichments\";\nimport { parseInclude } from \"../search/_internal/parseInclude\";\nimport { getHubRelativeUrl } from \"../content/_internal\";\nimport { createQueryFromString } from \"../search/_internal/createQueryFromString\";\nexport var HUB_SITE_ITEM_TYPE = \"Hub Site Application\";\nexport var ENTERPRISE_SITE_ITEM_TYPE = \"Site Application\";\n/**\n * Default values of a IHubSite\n */\nvar DEFAULT_SITE = {\n name: \"No title provided\",\n tags: [],\n typeKeywords: [\"Hub Site\", \"hubSite\", \"DELETEMESITE\"],\n capabilities: [\n \"api_explorer\",\n \"pages\",\n \"my_data\",\n \"social_logins\",\n \"json_chart_card\",\n \"document_iframes\",\n \"items_view\",\n \"app_page\",\n \"underlinedLinks\",\n \"globalNav\",\n \"socialSharing\",\n ],\n catalog: {\n groups: [],\n },\n subdomain: \"\",\n defaultHostname: \"\",\n customHostname: \"\",\n clientId: \"\",\n map: null,\n feeds: {},\n pages: [],\n theme: null,\n contentViews: {\n sidePanelOpen: {\n app: true,\n map: true,\n dataset: true,\n document: true,\n feedback: true,\n },\n },\n};\n/**\n * Default values for a new HubSite Model\n */\nvar DEFAULT_SITE_MODEL = {\n item: {\n // type: intentionally left out as we need to\n // set that based on portal/enterprise\n title: \"No Title Provided\",\n description: \"No Description Provided\",\n snippet: \"\",\n tags: [],\n typeKeywords: [\"Hub Site\", \"hubSite\", \"DELETEMESITE\"],\n properties: {\n slug: \"\",\n orgUrlKey: \"\",\n defaultHostname: \"\",\n customHostname: \"\",\n clientId: \"\",\n subdomain: \"\",\n schemaVersion: 1.5,\n },\n url: \"\",\n },\n data: {\n catalog: {\n groups: [],\n },\n feeds: {},\n values: {\n title: \"\",\n defaultHostname: \"\",\n customHostname: \"\",\n subdomain: \"\",\n faviconUrl: \"\",\n uiVersion: \"2.4\",\n clientId: \"\",\n map: {\n basemaps: {},\n },\n defaultExtent: {},\n pages: [],\n theme: {},\n layout: {\n sections: [],\n header: {\n component: {\n name: \"site-header\",\n settings: {\n fullWidth: false,\n iframeHeight: \"150px\",\n iframeUrl: \"\",\n links: [],\n logoUrl: \"\",\n title: \"default site\",\n markdown: \"\",\n headerType: \"default\",\n schemaVersion: 3,\n showLogo: true,\n showTitle: true,\n logo: {\n display: {},\n state: \"valid\",\n },\n shortTitle: \"\",\n menuLinks: [],\n socialLinks: {\n facebook: {},\n twitter: {},\n instagram: {},\n youtube: {},\n },\n },\n },\n showEditor: false,\n },\n footer: {\n component: {\n name: \"site-footer\",\n settings: {\n footerType: \"none\",\n markdown: \"\",\n schemaVersion: 2.1,\n },\n },\n showEditor: false,\n },\n },\n contentViews: {\n sidePanelOpen: {\n app: true,\n map: true,\n dataset: true,\n document: true,\n feedback: true,\n },\n },\n },\n },\n};\n/**\n * Returns an Array of IPropertyMap objects\n * We could define these directly, but since the\n * properties of IHubSite map directly to properties\n * on item or data, it's slightly less verbose to\n * generate the structure.\n * @returns\n */\nfunction getSitePropertyMap() {\n var itemProps = [\n \"created\",\n \"culture\",\n \"description\",\n \"extent\",\n \"id\",\n \"modified\",\n \"owner\",\n \"snippet\",\n \"tags\",\n \"typeKeywords\",\n \"url\",\n \"type\",\n ];\n var map = [];\n itemProps.forEach(function (entry) {\n map.push({ objectKey: entry, modelKey: \"item.\" + entry });\n });\n var dataProps = [\"catalog\", \"feeds\"];\n dataProps.forEach(function (entry) {\n map.push({ objectKey: entry, modelKey: \"data.\" + entry });\n });\n var valueProps = [\n \"pages\",\n \"theme\",\n \"capabilities\",\n \"subdomain\",\n \"defaultHostname\",\n \"customHostname\",\n \"clientId\",\n \"defaultExtent\",\n \"map\",\n \"telemetry\",\n \"headerSass\",\n ];\n valueProps.forEach(function (entry) {\n map.push({ objectKey: entry, modelKey: \"data.values.\" + entry });\n });\n // Deeper/Indirect mappings\n map.push({\n objectKey: \"slug\",\n modelKey: \"item.properties.slug\",\n });\n map.push({\n objectKey: \"orgUrlKey\",\n modelKey: \"item.properties.orgUrlKey\",\n });\n map.push({\n objectKey: \"name\",\n modelKey: \"item.title\",\n });\n return map;\n}\n// TODO: Add OperationStack & Error Handling\n/**\n * Create a new Hub Site\n *\n * Minimum properties are `name` and `org`\n * @param partialSite\n * @param requestOptions\n */\nexport function createSite(partialSite, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var site, portal, _a, mapper, model, registration, updatedModel;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n site = __assign(__assign({}, DEFAULT_SITE), partialSite);\n portal = requestOptions.portalSelf;\n // Set the type based on the environment we are working in\n site.type = requestOptions.isPortal\n ? ENTERPRISE_SITE_ITEM_TYPE\n : HUB_SITE_ITEM_TYPE;\n // Create a slug from the title if one is not passed in\n if (!site.slug) {\n site.slug = constructSlug(site.name, site.orgUrlKey);\n }\n // Ensure slug is unique\n // site.slug = await getUniqueSlug({ slug: site.slug }, requestOptions);\n // add slug to keywords\n site.typeKeywords = setSlugKeyword(site.typeKeywords, site.slug);\n if (!site.subdomain) {\n site.subdomain = slugify(site.name);\n }\n _a = site;\n return [4 /*yield*/, ensureUniqueDomainName(site.subdomain, requestOptions)];\n case 1:\n _a.subdomain = _b.sent();\n // Domains\n if (!requestOptions.isPortal) {\n // now that we know the subdomain is available, set the defaultHostname\n site.defaultHostname = site.subdomain + \"-\" + portal.urlKey + \".\" + stripProtocol(getHubApiUrl(requestOptions));\n // set the url\n site.url = \"https://\" + (site.customHostname ? site.customHostname : site.defaultHostname);\n }\n else {\n // Portal Sites use subdomain in hash based router\n site.typeKeywords.push((\"hubsubdomain|\" + site.subdomain).toLowerCase());\n site.url = requestOptions.authentication.portal.replace(\"/sharing/rest\", \"/apps/sites\") + \"/#/\" + site.subdomain;\n }\n // Note: We used to use adlib for this, but it's much harder to\n // use templates with typescript. i.e. you can't assign a string template\n // to a property defined as `IExtent` without using `as unknown as ...`\n // which basically removes typechecking\n site.orgUrlKey = portal.urlKey;\n // override only if not set...\n if (!site.theme) {\n site.theme = getOrgDefaultTheme(portal);\n }\n if (!site.defaultExtent) {\n site.defaultExtent = portal.defaultExtent;\n }\n if (!site.culture) {\n site.culture = portal.culture;\n }\n // pull the basemap from portalSelf\n if (!getProp(site, \"map.basemaps.primary\")) {\n setProp(\"map.basemaps.primary\", portal.defaultBasemap, site);\n }\n // Put the title into the header\n if (!getProp(site, \"layout.header.component.settings.title\")) {\n setProp(\"layout.header.component.settings.title\", site.name, site);\n }\n mapper = new PropertyMapper(getSitePropertyMap());\n model = mapper.objectToModel(site, cloneObject(DEFAULT_SITE_MODEL));\n return [4 /*yield*/, createModel(model, requestOptions)];\n case 2:\n // create the backing item\n model = _b.sent();\n return [4 /*yield*/, registerSiteAsApplication(model, requestOptions)];\n case 3:\n registration = _b.sent();\n model.data.values.clientId = registration.client_id;\n // Register domains\n return [4 /*yield*/, addSiteDomains(model, requestOptions)];\n case 4:\n // Register domains\n _b.sent();\n return [4 /*yield*/, updateModel(model, requestOptions)];\n case 5:\n updatedModel = _b.sent();\n // convert the model into a IHubSite and return\n return [2 /*return*/, mapper.modelToObject(updatedModel, {})];\n }\n });\n });\n}\n/**\n * Update a Hub Site\n *\n * This checks for and applies domain changes\n * @param site\n * @param requestOptions\n * @returns\n */\nexport function updateSite(site, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var mapper, updatedModel, currentModel, modelToStore, updatedSiteModel, updatedSite;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n mapper = new PropertyMapper(getSitePropertyMap());\n updatedModel = mapper.objectToModel(site, cloneObject(DEFAULT_SITE_MODEL));\n return [4 /*yield*/, getModel(site.id, requestOptions)];\n case 1:\n currentModel = _a.sent();\n // handle any domain changes\n return [4 /*yield*/, handleDomainChanges(updatedModel, currentModel, requestOptions)];\n case 2:\n // handle any domain changes\n _a.sent();\n if (updatedModel.item.properties.slug !== currentModel.item.properties.slug) {\n // ensure slug to keywords\n updatedModel.item.typeKeywords = setSlugKeyword(updatedModel.item.typeKeywords, updatedModel.item.properties.slug);\n }\n modelToStore = mapper.objectToModel(site, currentModel);\n return [4 /*yield*/, updateModel(modelToStore, requestOptions)];\n case 3:\n updatedSiteModel = _a.sent();\n updatedSite = mapper.modelToObject(updatedSiteModel, site);\n return [2 /*return*/, updatedSite];\n }\n });\n });\n}\n/**\n * Remove a Hub Site\n *\n * This simply removes the Site item, and it's associated domain records.\n * This does not remove any Teams/Groups or content associated with the\n * Site\n * @param id\n * @param requestOptions\n * @returns\n */\nexport function destroySite(id, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var ro;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!requestOptions.isPortal) return [3 /*break*/, 2];\n return [4 /*yield*/, removeDomainsBySiteId(id, requestOptions)];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n ro = __assign(__assign({}, requestOptions), { id: id });\n return [4 /*yield*/, removeItem(ro)];\n case 3:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n}\n/**\n * Returns site model given various kinds of identifier\n *\n * @param identifier - a site item ID, site hostname, enterprise site slug, or full site URL\n * @param requestOptions\n * @private // remove when we remove existing fetchSite function\n */\nexport function _fetchSite(identifier, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var model, mapper, site, token, us;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, fetchSiteModel(identifier, requestOptions)];\n case 1:\n model = _a.sent();\n mapper = new PropertyMapper(getSitePropertyMap());\n site = mapper.modelToObject(model, {});\n if (requestOptions.authentication) {\n us = requestOptions.authentication;\n token = us.token;\n }\n site.thumbnailUrl = getItemThumbnailUrl(model.item, requestOptions, token);\n return [2 /*return*/, site];\n }\n });\n });\n}\n/**\n * Convert a Hub Site Application item into a Hub Site, fetching any\n * additional information that may be required\n * @param item\n * @param auth\n * @returns\n */\nexport function convertItemToSite(item, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var model, mapper, token, session, prj;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, fetchModelFromItem(item, requestOptions)];\n case 1:\n model = _a.sent();\n mapper = new PropertyMapper(getSitePropertyMap());\n if (requestOptions.authentication) {\n session = requestOptions.authentication;\n token = session.token;\n }\n prj = mapper.modelToObject(model, {});\n prj.thumbnailUrl = getItemThumbnailUrl(model.item, requestOptions, token);\n return [2 /*return*/, prj];\n }\n });\n });\n}\n/**\n * Search for Sites and get IHubSite results\n * @param filter\n * @param options\n * @returns\n */\nexport function searchSites(query, options) {\n return __awaiter(this, void 0, void 0, function () {\n var qry, scopingFilters;\n return __generator(this, function (_a) {\n if (typeof query === \"string\") {\n qry = createQueryFromString(query, \"term\", \"item\");\n }\n else {\n qry = cloneObject(query);\n }\n scopingFilters = [\n {\n predicates: [\n {\n type: \"Hub Project\",\n },\n ],\n },\n ];\n // add filters from the passed in query\n qry.filters = __spreadArrays(scopingFilters, qry.filters);\n return [2 /*return*/, searchEntities(qry, convertItemToSite, options)];\n });\n });\n}\n/**\n * Fetch Site specific enrichments\n * @param item\n * @param include\n * @param requestOptions\n * @returns\n */\nexport function enrichSiteSearchResult(item, include, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var result, DEFAULTS, specs, enrichments, enriched;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n result = {\n access: item.access,\n id: item.id,\n type: item.type,\n name: item.title,\n owner: item.owner,\n summary: item.snippet || item.description,\n createdDate: new Date(item.created),\n createdDateSource: \"item.created\",\n updatedDate: new Date(item.modified),\n updatedDateSource: \"item.modified\",\n family: getFamily(item.type),\n links: {\n self: \"not-implemented\",\n siteRelative: \"not-implemented\",\n thumbnail: \"not-implemented\",\n },\n };\n DEFAULTS = [];\n // merge includes\n include = __spreadArrays(DEFAULTS, include).filter(unique);\n specs = include.map(parseInclude);\n enrichments = mapBy(\"enrichment\", specs).filter(unique);\n enriched = {};\n if (!enrichments.length) return [3 /*break*/, 2];\n return [4 /*yield*/, fetchItemEnrichments(item, enrichments, requestOptions)];\n case 1:\n // TODO: Look into caching for the requests in fetchItemEnrichments\n enriched = _a.sent();\n _a.label = 2;\n case 2:\n // map the enriched props onto the result\n specs.forEach(function (spec) {\n result[spec.prop] = getProp(enriched, spec.path);\n });\n // Handle links\n result.links.thumbnail = getItemThumbnailUrl(item, requestOptions);\n result.links.self = item.url;\n result.links.siteRelative = getHubRelativeUrl(result.type, result.id, item.typeKeywords);\n return [2 /*return*/, result];\n }\n });\n });\n}\n//# sourceMappingURL=HubSites.js.map","import { __awaiter, __generator } from \"tslib\";\nimport HubError from \"../HubError\";\n// Node has issues if this is not directly imported\nimport { ArcGISContextManager } from \"../ArcGISContextManager\";\nimport { updateSite, destroySite, createSite, _fetchSite, convertItemToSite, searchSites, } from \"./HubSites\";\nimport { setItemThumbnail as updateItemThumbnail } from \"../items/setItemThumbnail\";\nvar HubSiteManager = /** @class */ (function () {\n /**\n * Private so we can employ a factory function should we need\n * async work during creation\n * @param contextOrManager\n */\n function HubSiteManager(contextOrManager) {\n if (contextOrManager instanceof ArcGISContextManager) {\n this._contextManager = contextOrManager;\n }\n else {\n this._context = contextOrManager;\n }\n }\n /**\n * Factory function to construct a new HubProjectManager instance.\n *\n * Note: Used so that we could do async actions in the ctor.\n * @param contextOrManager\n * @returns\n */\n HubSiteManager.init = function (contextOrManager) {\n return new HubSiteManager(contextOrManager);\n };\n Object.defineProperty(HubSiteManager.prototype, \"context\", {\n /**\n * Getter to abstract how we store the context\n */\n get: function () {\n if (this._contextManager) {\n return this._contextManager.context;\n }\n else {\n return this._context;\n }\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Create and store a new Site\n *\n * This also registers the item for oAuth and\n * registers domain names with the hub Domain system\n *\n * Sites are stored as Items in the Sharing API\n * @param site\n * @param requestOptions\n * @returns\n */\n HubSiteManager.prototype.create = function (site, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (requestOptions || this.context.isAuthenticated) {\n // ammend in the orgUrlKey\n if (!site.orgUrlKey) {\n site.orgUrlKey = this.context.portal.urlKey;\n }\n return [2 /*return*/, createSite(site, requestOptions || this.context.hubRequestOptions)];\n }\n else {\n throw new HubError(\"Create Site\", \"Creating Hub Sites requires authentication.\");\n }\n return [2 /*return*/];\n });\n });\n };\n /**\n * Update a Site\n * @param site\n * @param requestOptions\n * @returns\n */\n HubSiteManager.prototype.update = function (site, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (requestOptions || this.context.isAuthenticated) {\n return [2 /*return*/, updateSite(site, requestOptions || this.context.hubRequestOptions)];\n }\n else {\n throw new HubError(\"Update Site\", \"Updating a Hub Site requires authentication.\");\n }\n return [2 /*return*/];\n });\n });\n };\n /**\n * Destroy a Site\n * This permanently removes the backing Item,\n * and clears the domain entries for it.\n * @param id\n * @param requestOptions\n * @returns\n */\n HubSiteManager.prototype.destroy = function (id, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (requestOptions || this.context.isAuthenticated) {\n return [2 /*return*/, destroySite(id, requestOptions || this.context.hubRequestOptions)];\n }\n else {\n throw new HubError(\"Destroy Site\", \"Destroying Hub Sites requires authentication.\");\n }\n return [2 /*return*/];\n });\n });\n };\n /**\n * Fetch a Site via Id, slug or domain\n *\n * This function does not require a user to be\n * authenticated, but it does require an `IRequestOptions`\n * which contains the portal instance to communicate with\n * @param identifier\n * @param requestOptions\n * @returns\n */\n HubSiteManager.prototype.fetch = function (identifier, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n try {\n if (requestOptions || this.context.hubRequestOptions) {\n return [2 /*return*/, _fetchSite(identifier, requestOptions || this.context.hubRequestOptions)];\n }\n else {\n throw new HubError(\"Fetch Site\", \"Can not retrieve context.hubRequestOptions from Context Manager. HubSiteManager is configured incorrectly.\");\n }\n }\n catch (ex) {\n throw new HubError(\"Fetch Site\", \"Can not retrieve context.hubRequestOptions from Context Manager. HubSiteManager is configured incorrectly.\", ex);\n }\n return [2 /*return*/];\n });\n });\n };\n /**\n * Search for Sites\n *\n * @param filter\n * @param opts\n */\n HubSiteManager.prototype.search = function (query, options) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n // if we were not passed auth, and we have a session, use it\n if (!options.authentication && this.context.session) {\n options.authentication = this.context.session;\n }\n return [2 /*return*/, searchSites(query, options)];\n });\n });\n };\n /**\n * Set the thumbnail for the Site\n * @param id\n * @param file\n * @param filename\n * @param requestOptions\n * @returns\n */\n HubSiteManager.prototype.updateThumbnail = function (site, file, filename, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var ro;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n ro = requestOptions || this.context.userRequestOptions;\n return [4 /*yield*/, updateItemThumbnail(site.id, file, filename, ro)];\n case 1:\n _a.sent();\n // get the item so we have updated props and timestamps\n return [2 /*return*/, this.fetch(site.id, requestOptions)];\n }\n });\n });\n };\n /**\n * Convert a Hub Project Item to a IHubProject\n * @param item\n * @param requestOptions\n * @returns\n */\n HubSiteManager.prototype.fromItem = function (item, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var ro;\n return __generator(this, function (_a) {\n ro = requestOptions || this.context.userRequestOptions;\n return [2 /*return*/, convertItemToSite(item, ro)];\n });\n });\n };\n return HubSiteManager;\n}());\nexport { HubSiteManager };\n//# sourceMappingURL=HubSiteManager.js.map","import { request } from \"@esri/arcgis-rest-request\";\nimport { getPortalApiUrl } from \"..\";\n/**\n * Register an Item as an application, enabling oAuth flows at custom\n * domains. Only item types with \"Application\" in the name are valid\n * with this API call.\n * @param {string} itemId Item Id of item to create an application for\n * @param {Array} redirectUris Array of valid redirect uris for the app\n * @param {string} appType Defaults to \"browser\"\n * @param {IRequestOptions} requestOptions\n */\nexport function registerBrowserApp(itemId, redirectUris, requestOptions) {\n var url = getPortalApiUrl(requestOptions) + \"/oauth2/registerApp\";\n var options = {\n method: \"POST\",\n authentication: requestOptions.authentication,\n params: {\n itemId: itemId,\n appType: \"browser\",\n redirect_uris: JSON.stringify(redirectUris),\n },\n };\n return request(url, options);\n}\n//# sourceMappingURL=registerBrowserApp.js.map","import { getProp, _getHttpAndHttpsUris } from \"..\";\nimport { registerBrowserApp } from \"../items/registerBrowserApp\";\n/**\n * Register the Site item as an application so we can oauth against it\n * @param {string} siteId Item Id of the site\n * @param {Array} uris Arrayf valid uris for the site\n * @param {IHubRequestOptions} hubRequestOptions\n */\nexport function registerSiteAsApplication(model, hubRequestOptions) {\n // PORTAL-ENV: we can't register sites as `arcgisonline` because it will bust sign in on the portal\n if (hubRequestOptions.isPortal)\n return Promise.resolve({});\n var uris = [model.data.values.defaultHostname];\n if (getProp(model, \"data.values.customHostname\")) {\n uris.push(model.data.values.customHostname);\n }\n // get both the http and https versions of the urls, just to cover all the bases\n var redirectUris = uris.reduce(function (acc, uri) {\n return acc.concat(_getHttpAndHttpsUris(uri));\n }, []);\n return registerBrowserApp(model.item.id, redirectUris, hubRequestOptions);\n}\n//# sourceMappingURL=registerSiteAsApplication.js.map","export var SITE_SCHEMA_VERSION = 1.5;\n//# sourceMappingURL=site-schema-version.js.map","import { cloneObject, getProp, removeEmptyProps, extend, } from \"..\";\n/**\n * Default Site Theme\n */\nexport var DEFAULT_THEME = {\n header: {\n background: \"#fff\",\n text: \"#4c4c4c\",\n },\n body: {\n background: \"#fff\",\n text: \"#4c4c4c\",\n link: \"#0079c1\",\n },\n button: {\n background: \"#0079c1\",\n text: \"#fff\",\n },\n logo: {\n small: \"\",\n },\n fonts: {\n base: {\n url: \"\",\n family: \"Avenir Next\",\n },\n heading: {\n url: \"\",\n family: \"Avenir Next\",\n },\n },\n};\n/**\n * Return the default theme, extended with values from the Org's shared theme\n * @param {Object} portalSelf Org's Portal object\n */\nexport function getOrgDefaultTheme(portalSelf) {\n var defaultTheme = cloneObject(DEFAULT_THEME);\n var sharedTheme = getProp(portalSelf, \"portalProperties.sharedTheme\");\n if (sharedTheme) {\n sharedTheme = removeEmptyProps(sharedTheme);\n defaultTheme = extend(defaultTheme, sharedTheme);\n }\n return defaultTheme;\n}\n//# sourceMappingURL=themes.js.map","import { getProp } from \"../../objects\";\nimport { cloneObject } from \"../../util\";\n/**\n * Apply the first schema version to the item\n * @param {Object} model Site Model\n * @private\n */\nexport function _applySiteSchema(model) {\n // if this has already been thru this step... skip it...\n if (getProp(model, \"item.properties.schemaVersion\") >= 1)\n return model;\n var clone = cloneObject(model);\n // proactively purge old properties\n [\"groupId\", \"title\"].forEach(function (prop) {\n delete clone.data.values[prop];\n });\n // ensure item.properties\n if (!clone.item.properties) {\n clone.item.properties = {};\n }\n clone.item.properties.schemaVersion = 1;\n // Groups!\n if (clone.data.values.groups && Array.isArray(clone.data.values.groups)) {\n // we have some groups arrays in prod where the contents are a mix of strings and objects.\n // we need to ensure this is just an array of groupIds...\n var groupIds = clone.data.values.groups\n .map(function (entry) {\n if (typeof entry === \"object\") {\n return entry.id;\n }\n else {\n return entry;\n }\n })\n .filter(function (entry) { return !!entry; });\n // now assign this back to the groups\n clone.data.values.groups = groupIds;\n }\n return clone;\n}\n//# sourceMappingURL=_apply-site-schema.js.map","import { getProp, cloneObject } from \"../..\";\n/**\n * Enforce lowercase domains\n * @param {Object} model Site Model\n * @private\n */\nexport function _enforceLowercaseDomains(model) {\n // exit if this has been applied...\n if (getProp(model, \"item.properties.schemaVersion\") >= 1.1)\n return model;\n var clone = cloneObject(model);\n // all the possible domain properties must be lower case\n [\n \"subdomain\",\n \"defaultHostname\",\n \"internalUrl\",\n \"customHostname\",\n \"externalUrl\",\n ].forEach(function (prop) {\n if (clone.data.values[prop] &&\n typeof clone.data.values[prop] === \"string\") {\n clone.data.values[prop] = clone.data.values[prop].toLowerCase();\n }\n });\n // bump the schemaVersion\n clone.item.properties.schemaVersion = 1.1;\n return clone;\n}\n//# sourceMappingURL=_enforce-lowercase-domains.js.map","import { getProp, cloneObject } from \"../..\";\n/**\n * Move the data.values.groups array into the\n * data.catalog object\n * @param {Object} model Site Model\n * @private\n */\nexport function _ensureCatalog(model) {\n // early exit\n if (getProp(model, \"item.properties.schemaVersion\") >= 1.2)\n return model;\n var clone = cloneObject(model);\n var catalog = getProp(clone, \"data.catalog\") || {};\n if (getProp(clone, \"data.values.groups\")) {\n catalog.groups = cloneObject(clone.data.values.groups);\n delete clone.data.values.groups;\n }\n clone.data.catalog = catalog;\n // bump the schemaVersion\n clone.item.properties.schemaVersion = 1.2;\n return clone;\n}\n//# sourceMappingURL=_ensure-catalog.js.map","import { getProp, cloneObject, isGuid } from \"../..\";\n/**\n * Remove any non-guid entries from the data catalog groups array\n * @param {object} model Site Model\n * @private\n */\nexport function _purgeNonGuidsFromCatalog(model) {\n if (getProp(model, \"item.properties.schemaVersion\") >= 1.3)\n return model;\n var clone = cloneObject(model);\n var groups = getProp(clone, \"data.catalog.groups\") || [];\n clone.data.catalog.groups = groups.filter(isGuid);\n clone.item.properties.schemaVersion = 1.3;\n return clone;\n}\n//# sourceMappingURL=_purge-non-guids-from-catalog.js.map","import { cloneObject, getProp } from \"../..\";\n/**\n * Migrates the site so it can store configurations for multiple feed formats\n * (dcat-us-1.1, dcat-ap-2.0.1, etc.). If the site has an existing custom\n * configuration for dcat-us 1.1, a copy of that configuration will be modified\n * to use values from the v3 api instead of values from the index.\n *\n * Structural Impacts:\n * - site.data.feeds will be added.\n * - site.data.feeds.dcatUS11 will be added if site.data.values.dcatConfig exists.\n *\n * @param {object} model Site Model\n * @private\n */\nexport function _migrateFeedConfig(model) {\n if (getProp(model, \"item.properties.schemaVersion\") >= 1.5)\n return model;\n var clone = cloneObject(model);\n var oldDcatUS11Config = clone.data.values.dcatConfig;\n clone.data.feeds = {};\n if (oldDcatUS11Config) {\n clone.data.feeds.dcatUS11 = _migrateToV3Values(oldDcatUS11Config);\n }\n clone.item.properties.schemaVersion = 1.5;\n return clone;\n}\nvar indexValueToV3Value = {\n // Defaults\n \"{{default.name}}\": \"{{name}}\",\n \"{{default.description}}\": \"{{description}}\",\n \"{{item.tags}}\": \"{{tags}}\",\n \"{{item.created:toISO}}\": \"{{created:toISO}}\",\n \"{{item.modified:toISO}}\": \"{{modified:toISO}}\",\n \"{{default.source.source}}\": \"{{source}}\",\n \"{{item.owner}}\": \"{{owner}}\",\n \"{{org.portalProperties.links.contactUs.url}}\": \"{{orgContactEmail}}\",\n // Custom Values\n \"{{org.name}}\": \"{{orgName}}\",\n \"{{item.categories}}\": \"{{categories}}\",\n \"{{item.licenseInfo}}\": \"{{licenseInfo}}\",\n \"{{item.modified}}\": \"{{modified}}\",\n \"{{enrichments.categories}}\": \"{{categories}}\",\n \"{{default.id}}\": \"{{id}}\",\n \"{{item.licenseInfo || No License}}\": \"{{licenseInfo || No License}}\",\n \"{{org.portalProperties.links.contactUs.url || mailto:data@tempe.gov}}\": \"{{orgContactEmail || mailto:data@tempe.gov}}\",\n \"{{default.description || No Description}}\": \"{{description || No Description}}\",\n \"{{item.id}}\": \"{{id}}\",\n};\nfunction _migrateToV3Values(originalConfig) {\n var migratedConfigString = JSON.stringify(originalConfig);\n var supportedIndexValues = Object.keys(indexValueToV3Value);\n supportedIndexValues.forEach(function (indexValue) {\n // Replace all occurrences of indexValue with the corresponding v3Value\n var v3Value = indexValueToV3Value[indexValue];\n migratedConfigString = migratedConfigString.split(indexValue).join(v3Value);\n });\n return JSON.parse(migratedConfigString);\n}\n//# sourceMappingURL=_migrate-feed-config.js.map","import { getProp } from \"../objects\";\nimport { SITE_SCHEMA_VERSION } from \"./site-schema-version\";\nimport { _applySiteSchema } from \"./_internal/_apply-site-schema\";\nimport { _enforceLowercaseDomains } from \"./_internal/_enforce-lowercase-domains\";\nimport { _ensureCatalog } from \"./_internal/_ensure-catalog\";\nimport { _purgeNonGuidsFromCatalog } from \"./_internal/_purge-non-guids-from-catalog\";\nimport { _ensureTelemetry } from \"./_internal/_ensure-telemetry\";\nimport { _migrateFeedConfig } from \"./_internal/_migrate-feed-config\";\n/**\n * Upgrades the schema upgrades\n * @param model IModel\n */\nexport function upgradeSiteSchema(model) {\n if (getProp(model, \"item.properties.schemaVersion\") === SITE_SCHEMA_VERSION) {\n return model;\n }\n else {\n // apply upgrade functions in order...\n model = _applySiteSchema(model);\n model = _enforceLowercaseDomains(model);\n model = _ensureCatalog(model);\n model = _purgeNonGuidsFromCatalog(model);\n model = _ensureTelemetry(model);\n model = _migrateFeedConfig(model);\n // WARNING - If you are writing a site schema migration,\n // you probably need to apply it to site drafts as well!\n // See https://github.com/Esri/hub.js/issues/498 for more details.\n return model;\n }\n}\n//# sourceMappingURL=upgrade-site-schema.js.map","import { __awaiter, __generator, __spreadArrays } from \"tslib\";\nimport { searchItems } from \"@esri/arcgis-rest-portal\";\nimport { cloneObject, enrichContentSearchResult, HubError } from \"../..\";\nimport { serializeQueryForPortal } from \"../serializeQueryForPortal\";\nimport { enrichPageSearchResult } from \"../../pages/HubPages\";\nimport { enrichProjectSearchResult } from \"../../projects\";\nimport { enrichSiteSearchResult } from \"../../sites\";\nimport { getNextFunction } from \"../utils\";\nimport { convertPortalAggregations } from \"./portalSearchUtils\";\nimport { expandPredicate } from \"./expandPredicate\";\n/**\n * @private\n * Portal Search Implementation for Items\n * @param query\n * @param options\n * @returns\n */\nexport function portalSearchItems(query, options) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n var updatedQuery, so, props;\n return __generator(this, function (_b) {\n if (!options.requestOptions) {\n throw new HubError(\"portalSearchItems\", \"options.requestOptions is required.\");\n }\n updatedQuery = applyWellKnownItemPredicates(query);\n // Expand the individual predicates in each filter\n updatedQuery.filters = updatedQuery.filters.map(function (filter) {\n filter.predicates = filter.predicates.map(expandPredicate);\n return filter;\n });\n so = serializeQueryForPortal(updatedQuery);\n props = [\n \"num\",\n \"sortField\",\n \"sortOrder\",\n \"include\",\n \"start\",\n \"requestOptions\",\n ];\n // copy the props over\n props.forEach(function (prop) {\n if (options.hasOwnProperty(prop)) {\n so[prop] = options[prop];\n }\n });\n if (options.requestOptions.authentication) {\n so.authentication = options.requestOptions.authentication;\n }\n else {\n so.portal = options.requestOptions.portal;\n }\n // Aggregations\n if ((_a = options.aggFields) === null || _a === void 0 ? void 0 : _a.length) {\n so.countFields = options.aggFields.join(\",\");\n so.countSize = options.aggLimit || 10;\n }\n return [2 /*return*/, searchPortal(so)];\n });\n });\n}\n/**\n * Internal portal search, which then converts `IItem`s to `IHubSearchResult`s\n * handling enrichments & includes along the way\n *\n * @param searchOptions\n * @returns\n */\nfunction searchPortal(searchOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var resp, fn, results, aggregations;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, searchItems(searchOptions)];\n case 1:\n resp = _a.sent();\n fn = function (item) {\n return itemToSearchResult(item, searchOptions.includes, searchOptions.requestOptions);\n };\n return [4 /*yield*/, Promise.all(resp.results.map(fn))];\n case 2:\n results = _a.sent();\n aggregations = convertPortalAggregations(resp);\n // Construct the return\n return [2 /*return*/, {\n total: resp.total,\n results: results,\n aggregations: aggregations,\n hasNext: resp.nextStart > -1,\n next: getNextFunction(searchOptions, resp.nextStart, resp.total, searchPortal),\n }];\n }\n });\n });\n}\n/**\n * Convert an `IItem` to a `IHubSearchResult`\n * Fetches the enrichments, and attaches them as directed in the `include` list\n * @param item\n * @param includes\n * @param requestOptions\n * @returns\n */\nfunction itemToSearchResult(item, includes, requestOptions) {\n if (includes === void 0) { includes = []; }\n return __awaiter(this, void 0, void 0, function () {\n var fn;\n return __generator(this, function (_a) {\n fn = enrichContentSearchResult;\n switch (item.type) {\n case \"Hub Site Application\":\n case \"Site Application\":\n fn = enrichSiteSearchResult;\n break;\n case \"Hub Page\":\n case \"Site Page\":\n fn = enrichPageSearchResult;\n break;\n case \"Hub Project\":\n fn = enrichProjectSearchResult;\n break;\n }\n return [2 /*return*/, fn(item, includes, requestOptions)];\n });\n });\n}\nexport var WellKnownItemPredicates = {\n $application: [\n {\n type: {\n any: [\n \"Web Mapping Application\",\n \"Application\",\n \"Insights\",\n \"Web Experience\",\n ],\n not: [\"Insights Theme\", \"Insights Model\"],\n },\n typekeywords: {\n not: [\"hubSite\", \"Story Map\"],\n },\n },\n {\n type: \"Web Mapping Experience\",\n typekeywords: \"EXB Experience\",\n },\n ],\n $dashboard: [\n {\n type: {\n any: [\"Dashboard\"],\n not: [\"Operation View\"],\n },\n typekeywords: {\n not: [\"Extension\", \"ArcGIS Operation View\"],\n },\n },\n ],\n $dataset: [\n {\n type: {\n any: [\n \"Scene Service\",\n \"Feature Collection\",\n \"Route Layer\",\n \"Layer\",\n \"Explorer Layer\",\n \"Tile Package\",\n \"Vector Tile Package\",\n \"Scene Package\",\n \"Layer Package\",\n \"Feature Service\",\n \"Stream Service\",\n \"Map Service\",\n \"Vector Tile Service\",\n \"Image Service\",\n \"WMS\",\n \"WFS\",\n \"WMTS\",\n \"KML\",\n \"KML Collection\",\n \"Globe Service\",\n \"CSV\",\n \"Shapefile\",\n \"GeoJson\",\n \"Service Definition\",\n \"File Geodatabase\",\n \"CAD Drawing\",\n \"Relational Database Connection\",\n ],\n not: [\"Web Mapping Application\", \"Geodata Service\"],\n },\n },\n {\n typekeywords: [\"OGC\", \"Geodata Service\"],\n },\n ],\n $document: [\n {\n type: [\n \"PDF\",\n \"Microsoft Excel\",\n \"Microsoft Word\",\n \"Microsoft Powerpoint\",\n \"iWork Keynote\",\n \"iWork Pages\",\n \"iWork Numbers\",\n \"Visio Document\",\n \"Document Link\",\n ],\n },\n ],\n $initiative: [\n {\n type: \"Hub Initiative\",\n },\n ],\n $experience: [\n {\n type: \"Web Experience\",\n },\n ],\n $feedback: [\n {\n type: \"Form\",\n },\n ],\n $page: [\n {\n typekeywords: \"hubPage\",\n },\n ],\n $site: [\n {\n type: [\"Hub Site Application\", \"Site Application\"],\n },\n ],\n $storymap: [\n {\n type: \"Storymap\",\n },\n {\n type: \"Web Mapping Application\",\n typekeywords: \"Story Map\",\n },\n ],\n $template: [\n {\n type: [\n \"Web Mapping Application\",\n \"Hub Initiative\",\n \"Hub Initiative Template\",\n \"Solution\",\n ],\n typekeywords: {\n any: [\"hubInitiativeTemplate\", \"hubSolutionTemplate\", \"Template\"],\n not: \"Deployed\",\n },\n },\n ],\n $webmap: [\n {\n type: {\n any: [\"Web Map\", \"Web Scene\"],\n not: \"Web Mapping Application\",\n },\n },\n ],\n};\n/**\n * @private\n * Convert a Filter Group to expand well-known type filters\n *\n * The purpose of this function is to allow for the use of short-hand\n * names for commonly used, complex queries.\n *\n * It works by looking for filters using the .type property, the value\n * of which is a key in the WellKnownItemFilters hash. If found in the\n * hash, the filters array of the active filterGroup is replaced with the\n * filters specified in the hash.\n *\n * NOTE: Any other properties specified in a filter will be removed\n *\n * Only exported to enable extensive testing\n * @param filterGroups\n */\nexport function applyWellKnownItemPredicates(query) {\n var queryClone = cloneObject(query);\n // iterate the filters\n queryClone.filters = queryClone.filters.map(function (filter) {\n // replace predicates with well-known types\n var replacedPredicates = false;\n filter.predicates = filter.predicates.reduce(function (acc, predicate) {\n // if the predicate has a well-known type\n // we replace it with the set of predicates defined\n // for the well-known type\n if (isWellKnownTypeFilter(predicate.type)) {\n var replacements = lookupTypePredicates(predicate.type);\n acc = __spreadArrays(acc, replacements);\n replacedPredicates = true;\n }\n else {\n // this predicate does not have a well-known type\n // so we just keep it\n acc.push(predicate);\n }\n return acc;\n }, []);\n if (replacedPredicates) {\n // Any filter who's predicates were replaced with\n // well-known predicates, needs to use \"OR\" to ensure\n // correct query logic\n filter.operation = \"OR\";\n }\n return filter;\n });\n return queryClone;\n}\n/**\n * Is the argument a well-known type \"key\"\n *\n * Accepts `string`, `string[]` or `IMatchOptions`\n * but only string values can possibly be keys\n * on `WellKnownItemFilters`\n * @param key\n * @returns\n */\nexport function isWellKnownTypeFilter(key) {\n var result = false;\n if (typeof key === \"string\") {\n result = key in WellKnownItemPredicates;\n }\n return result;\n}\n/**\n * Return the predicates for a well-known type\n * @param key\n * @returns\n */\nfunction lookupTypePredicates(key) {\n return WellKnownItemPredicates[key];\n}\n//# sourceMappingURL=portalSearchItems.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { cloneObject } from \"../../util\";\n// ## ## ####### ######## ########\n// ### ## ## ## ## ##\n// #### ## ## ## ## ##\n// ## ## ## ## ## ## ######\n// ## #### ## ## ## ##\n// ## ### ## ## ## ##\n// ## ## ####### ## ########\n//\n// Since Hub API is still in flux, there is no code coverage for this file\n/**\n * @private\n * Execute item search against the Hub API\n * @param query\n * @param options\n * @returns\n */\n/* istanbul ignore next */\nexport function hubSearchItems(query, options) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n throw new Error(\"Not implemented\");\n });\n });\n}\n/**\n * Re-structure a jsonApi data entry into a flat object cast into\n * IHubContent\n * @param data\n * @returns\n */\n/* istanbul ignore next */\nexport function jsonApiToHubContent(data) {\n var content = cloneObject(data.attributes);\n content.id = data.id;\n return content;\n}\n/* istanbul ignore next */\nexport function hubContentToSearchResult(content) {\n var result = {\n access: content.access,\n id: content.id,\n type: content.type,\n name: content.name,\n owner: content.owner,\n summary: content.snippet || content.description,\n createdDate: new Date(content.createdDate),\n createdDateSource: content.createdDateSource,\n updatedDate: new Date(content.updatedDate),\n updatedDateSource: content.updatedDateSource,\n thumbnailUrl: content.thumbnailUrl,\n metadata: [],\n family: content.family,\n urls: {\n portalHome: \"not-implemented\",\n relative: \"not-implemented\",\n },\n };\n // TODO: Per-type plucking of props into the `meta` hash for use in the card components\n return Promise.resolve(result);\n}\n//# sourceMappingURL=hubSearchItems.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { searchGroups } from \"@esri/arcgis-rest-portal\";\nimport { HubError } from \"../../index\";\nimport { enrichGroupSearchResult } from \"../../groups/HubGroups\";\nimport { serializeQueryForPortal } from \"../serializeQueryForPortal\";\nimport { getNextFunction } from \"../utils\";\nimport { expandPredicate } from \"./expandPredicate\";\n/**\n * @private\n * Portal Search Implementation for Groups\n * @param query\n * @param options\n * @returns\n */\nexport function portalSearchGroups(query, options) {\n return __awaiter(this, void 0, void 0, function () {\n var so, props;\n return __generator(this, function (_a) {\n if (!options.requestOptions) {\n throw new HubError(\"portalSearchGroups\", \"options.requestOptions is required.\");\n }\n // Expand the individual predicates in each filter\n query.filters = query.filters.map(function (filter) {\n filter.predicates = filter.predicates.map(expandPredicate);\n return filter;\n });\n so = serializeQueryForPortal(query);\n props = [\n \"num\",\n \"sortField\",\n \"sortOrder\",\n \"include\",\n \"start\",\n \"requestOptions\",\n ];\n // copy the props over\n props.forEach(function (prop) {\n if (options.hasOwnProperty(prop)) {\n so[prop] = options[prop];\n }\n });\n // If we don't have auth, ensure we have .portal\n if (options.requestOptions.authentication) {\n so.authentication = options.requestOptions.authentication;\n }\n else {\n so.portal = options.requestOptions.portal;\n }\n return [2 /*return*/, searchPortal(so)];\n });\n });\n}\n/**\n * Internal portal search, which then converts `IGroup`s to `IHubSearchResult`s\n * handling enrichments & includes along the way\n *\n * @param searchOptions\n * @returns\n */\nfunction searchPortal(searchOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var resp, fn, results;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, searchGroups(searchOptions)];\n case 1:\n resp = _a.sent();\n fn = function (item) {\n return groupToSearchResult(item, searchOptions.include, searchOptions.requestOptions);\n };\n return [4 /*yield*/, Promise.all(resp.results.map(fn))];\n case 2:\n results = _a.sent();\n // Group Search does not support aggregations\n // Construct the return\n return [2 /*return*/, {\n total: resp.total,\n results: results,\n hasNext: resp.nextStart > -1,\n next: getNextFunction(searchOptions, resp.nextStart, resp.total, searchPortal),\n }];\n }\n });\n });\n}\n/**\n * Convert an Item to a IHubSearchResult\n * Fetches the includes and attaches them to the item\n * @param item\n * @param includes\n * @param requestOptions\n * @returns\n */\nfunction groupToSearchResult(group, includes, requestOptions) {\n if (includes === void 0) { includes = []; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n // Delegate to HubGroups module\n // This layer of indirection is not necessary but\n // aligns with how the items search works and\n // allows for future specialization\n return [2 /*return*/, enrichGroupSearchResult(group, includes, requestOptions)];\n });\n });\n}\n//# sourceMappingURL=portalSearchGroups.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { searchUsers, } from \"@esri/arcgis-rest-portal\";\nimport { enrichUserSearchResult } from \"../..\";\nimport { serializeQueryForPortal } from \"../serializeQueryForPortal\";\nimport HubError from \"../../HubError\";\nimport { getNextFunction } from \"../utils\";\nimport { expandPredicate } from \"./expandPredicate\";\n/**\n * @private\n * Portal Search Implementation for Users\n * @param filterGroups\n * @param options\n * @returns\n */\nexport function portalSearchUsers(query, options) {\n return __awaiter(this, void 0, void 0, function () {\n var so, props;\n return __generator(this, function (_a) {\n // requestOptions is always required and user must be authd\n if (!options.requestOptions) {\n throw new HubError(\"portalSearchUsers\", \"requestOptions: IHubRequestOptions is required.\");\n }\n if (!options.requestOptions.authentication) {\n throw new HubError(\"portalSearchUsers\", \"requestOptions must pass authentication.\");\n }\n // Expand the individual predicates in each filter\n query.filters = query.filters.map(function (filter) {\n filter.predicates = filter.predicates.map(expandPredicate);\n return filter;\n });\n so = serializeQueryForPortal(query);\n props = [\n \"num\",\n \"sortField\",\n \"sortOrder\",\n \"include\",\n \"start\",\n \"requestOptions\",\n ];\n // copy the props over\n props.forEach(function (prop) {\n if (options.hasOwnProperty(prop)) {\n so[prop] = options[prop];\n }\n });\n // Unlike Groups and Item, the Users api *requires* authentication\n // so we set it directly\n so.authentication = options.requestOptions.authentication;\n // Execute search\n return [2 /*return*/, searchPortal(so)];\n });\n });\n}\n/**\n * Internal portal search, which then converts `IGroup`s to `IHubSearchResult`s\n * handling enrichments & includes along the way\n *\n * @param searchOptions\n * @returns\n */\nfunction searchPortal(searchOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var resp, fn, results;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, searchUsers(searchOptions)];\n case 1:\n resp = _a.sent();\n fn = function (user) {\n return userToSearchResult(user, searchOptions.include, searchOptions.requestOptions);\n };\n return [4 /*yield*/, Promise.all(resp.results.map(fn))];\n case 2:\n results = _a.sent();\n // Group Search does not support aggregations\n // Construct the return\n return [2 /*return*/, {\n total: resp.total,\n results: results,\n hasNext: resp.nextStart > -1,\n next: getNextFunction(searchOptions, resp.nextStart, resp.total, searchPortal),\n }];\n }\n });\n });\n}\n/**\n * Convert an Item to a IHubSearchResult\n * Fetches the includes and attaches them to the item\n * @param item\n * @param includes\n * @param requestOptions\n * @returns\n */\nfunction userToSearchResult(user, includes, requestOptions) {\n if (includes === void 0) { includes = []; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n // Delegate to HubGroups module\n // This layer of indirection is not necessary but\n // aligns with how the items search works and\n // allows for future specialization\n return [2 /*return*/, enrichUserSearchResult(user, includes, requestOptions)];\n });\n });\n}\n//# sourceMappingURL=portalSearchUsers.js.map","import { __awaiter, __generator } from \"tslib\";\nimport HubError from \"../HubError\";\nimport { getProp } from \"../objects\";\nimport { cloneObject } from \"../util\";\nimport { expandApi } from \"./utils\";\nimport { hubSearchItems, portalSearchItems, portalSearchGroups, portalSearchUsers, } from \"./_internal\";\n/**\n * Main entrypoint for searching via Hub\n *\n * Default's to search ArcGIS Portal but can delegate\n * to Hub API when it's available.\n * @param query\n * @param options\n * @returns\n */\nexport function hubSearch(query, options) {\n return __awaiter(this, void 0, void 0, function () {\n var filterType, apiType, fnHash, fn;\n return __generator(this, function (_a) {\n // Validate inputs\n if (!query) {\n throw new HubError(\"hubSearch\", \"Query is required.\");\n }\n if (!query.filters || !query.filters.length) {\n throw new HubError(\"hubSearch\", \"Query must contain at least one Filter.\");\n }\n if (!options.requestOptions) {\n throw new HubError(\"hubSearch\", \"requestOptions: IHubRequestOptions is required.\");\n }\n // Ensure includes is an array\n if (!options.include) {\n options.include = [];\n }\n filterType = query.targetEntity;\n apiType = expandApi(options.api || \"arcgis\").type;\n fnHash = {\n arcgis: {\n item: portalSearchItems,\n group: portalSearchGroups,\n user: portalSearchUsers,\n },\n \"arcgis-hub\": {\n item: hubSearchItems,\n },\n };\n fn = getProp(fnHash, apiType + \".\" + filterType);\n if (!fn) {\n throw new HubError(\"hubSearch\", \"Search via \\\"\" + filterType + \"\\\" filter against \\\"\" + apiType + \"\\\" api is not implemented. Please ensure \\\"targetEntity\\\" is defined on the query.\");\n }\n return [2 /*return*/, fn(cloneObject(query), options)];\n });\n });\n}\n//# sourceMappingURL=hubSearch.js.map","import { __awaiter, __generator, __spreadArrays } from \"tslib\";\nimport { cloneObject } from \"..\";\nimport { hubSearch } from \"./hubSearch\";\n/**\n * Collection Class\n *\n * Abstracts searching a Collection\n *\n * For more information, check out the [Catalog & Collection Guide](/hub.js/guides/concepts/catalog-collection/)\n */\nvar Collection = /** @class */ (function () {\n function Collection(collection, context) {\n this._collection = collection;\n this._context = context;\n }\n /**\n * Create an instance of a Collection from a JSON object\n * @param collection\n * @param context\n * @returns\n */\n Collection.fromJson = function (collection, context) {\n return new Collection(collection, context);\n };\n /**\n * Return the JSON object backing the instance\n * @returns\n */\n Collection.prototype.toJson = function () {\n return cloneObject(this._collection);\n };\n Object.defineProperty(Collection.prototype, \"label\", {\n // Getters\n get: function () {\n return this._collection.label;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Collection.prototype, \"key\", {\n get: function () {\n return this._collection.key;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Collection.prototype, \"include\", {\n get: function () {\n return this._collection.include || [];\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Collection.prototype, \"scope\", {\n get: function () {\n return this._collection.scope;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Collection.prototype, \"sortField\", {\n get: function () {\n return this._collection.sortField || \"title\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Collection.prototype, \"sortDirection\", {\n get: function () {\n return this._collection.sortDirection || \"asc\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Collection.prototype, \"targetEntity\", {\n get: function () {\n return this._collection.targetEntity;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Search the collection using a string or IQuery\n * @param query\n * @param options\n * @returns\n */\n Collection.prototype.search = function (query, options) {\n if (options === void 0) { options = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var qry, opts;\n return __generator(this, function (_a) {\n if (typeof query === \"string\") {\n // construct a query from that...\n qry = {\n targetEntity: this._collection.targetEntity,\n filters: [\n {\n predicates: [\n {\n term: query,\n },\n ],\n },\n ],\n };\n }\n else {\n qry = query;\n }\n // TODO: What should happen when a Query is passed in that has a targetEntity that doesn't match the collection's targetEntity?\n // merge the passed in query w/ the scope\n qry.filters = __spreadArrays(qry.filters, this.scope.filters);\n opts = cloneObject(options);\n opts.requestOptions = this._context.hubRequestOptions;\n // inject default sort info if not specified\n opts.sortField = options.sortField || this.sortField;\n opts.sortOrder = options.sortOrder || this.sortDirection;\n // inject default includes if not specified\n opts.include = options.include || this.include;\n // execute the search and return results\n return [2 /*return*/, hubSearch(qry, opts)];\n });\n });\n };\n return Collection;\n}());\nexport { Collection };\n//# sourceMappingURL=Collection.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { getItemData } from \"@esri/arcgis-rest-portal\";\nimport HubError from \"../HubError\";\nimport { lookupDomain } from \"../sites/domains/lookup-domain\";\nimport { stripProtocol } from \"../urls/strip-protocol\";\nimport { isGuid } from \"../utils/is-guid\";\nimport { upgradeCatalogSchema } from \"./upgradeCatalogSchema\";\n/**\n * Fetch a IHubCatalog from a backing item.\n * This will apply schema upgrades to the structure\n * @param identifier\n * @param requestOptions\n * @returns\n */\nexport function fetchCatalog(identifier, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var getPrms, url, fetched;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // identifier can be a guid or a url\n if (identifier.indexOf(\"http\") === 0) {\n url = identifier;\n // get down the the hostname\n url = stripProtocol(url);\n // if url does not include a hash (i.e. it's not portal)\n // then we want to split on the first slash to get the hostname\n // lookupDomain will handle the enterprise base urls\n if (!url.includes(\"#\")) {\n url = url.split(\"/\")[0];\n }\n getPrms = lookupDomain(url, requestOptions)\n // get the item's data, and read the catalog out of it\n .then(function (_a) {\n var siteId = _a.siteId;\n return getItemData(siteId, requestOptions);\n })\n .then(function (data) {\n return upgradeCatalogSchema(data.catalog || {});\n });\n }\n else if (isGuid(identifier)) {\n // get the item's data, and read the catalog out of it\n getPrms = getItemData(identifier, requestOptions).then(function (data) {\n return upgradeCatalogSchema(data.catalog || {});\n });\n }\n else {\n throw new HubError(\"Catalog.create\", \"Identifier must be a url, guid\");\n }\n return [4 /*yield*/, getPrms];\n case 1:\n fetched = _a.sent();\n return [2 /*return*/, fetched];\n }\n });\n });\n}\n//# sourceMappingURL=fetchCatalog.js.map","import { __awaiter, __generator, __spreadArrays } from \"tslib\";\nimport { ArcGISContextManager } from \"../ArcGISContextManager\";\nimport HubError from \"../HubError\";\nimport { cloneObject } from \"../util\";\nimport { mapBy } from \"../utils\";\nimport { Collection } from \"./Collection\";\nimport { fetchCatalog } from \"./fetchCatalog\";\nimport { hubSearch } from \"./hubSearch\";\nimport { upgradeCatalogSchema } from \"./upgradeCatalogSchema\";\n/**\n * Catalog Class\n *\n * Abstracts working with Catalogs and fetching collections with\n * the correct scope applied.\n *\n * For more information, check out the [Catalog & Collection Guide](/hub.js/guides/concepts/catalog-collection/)\n */\nvar Catalog = /** @class */ (function () {\n // internal - use static factory methods\n function Catalog(catalog, context) {\n this._catalog = catalog;\n this._context = context;\n }\n /**\n * Create a Collection instance from a Catalog json object, a site url or itemId\n * '''js\n * const catalog = await Catalog.create('https://site-org.hub.arcgis.com', context);\n * '''\n *\n * @param identifier\n * @param context\n * @returns\n */\n Catalog.init = function (identifier, context) {\n return __awaiter(this, void 0, void 0, function () {\n var mgr, fetched;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!context) return [3 /*break*/, 2];\n return [4 /*yield*/, ArcGISContextManager.create()];\n case 1:\n mgr = _a.sent();\n context = mgr.context;\n _a.label = 2;\n case 2: return [4 /*yield*/, fetchCatalog(identifier, context.hubRequestOptions)];\n case 3:\n fetched = _a.sent();\n // return an instance\n return [2 /*return*/, new Catalog(fetched, context)];\n }\n });\n });\n };\n /**\n * Create a Catalog instance from a Catalog Json object\n * @param json\n * @param context\n * @returns\n */\n Catalog.fromJson = function (json, context) {\n // ensure it's in the latest structure\n var catalog = upgradeCatalogSchema(json);\n return new Catalog(catalog, context);\n };\n /**\n * Return the JSON object backing the instance\n * @returns\n */\n Catalog.prototype.toJson = function () {\n return cloneObject(this._catalog);\n };\n Object.defineProperty(Catalog.prototype, \"schemaVersion\", {\n /**\n * Return the schema version\n */\n get: function () {\n return this._catalog.schemaVersion;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Catalog.prototype, \"title\", {\n /**\n * Title getter\n */\n get: function () {\n return this._catalog.title;\n },\n /**\n * Title setter\n */\n set: function (v) {\n this._catalog.title = v;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Catalog.prototype, \"scopes\", {\n /**\n * Return the existing scopes hash\n */\n get: function () {\n return this._catalog.scopes;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Catalog.prototype, \"availableScopes\", {\n /**\n * Return an array of the entity types available in this Catalog\n */\n get: function () {\n return Object.keys(this.scopes);\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Get the scope's query for a particular entity type\n * @param type\n * @returns\n */\n Catalog.prototype.getScope = function (type) {\n return this._catalog.scopes[type];\n };\n /**\n * Set the scope for a specific entity type\n * @param type\n * @param query\n */\n Catalog.prototype.setScope = function (type, query) {\n this._catalog.scopes[type] = query;\n };\n Object.defineProperty(Catalog.prototype, \"collections\", {\n /**\n * Get the collections array. Returns simple objects not Collection instances\n */\n get: function () {\n return this._catalog.collections || [];\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Catalog.prototype, \"collectionNames\", {\n /**\n * Get the names of the collections\n */\n get: function () {\n return mapBy(\"key\", this.collections);\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Get a Collection instance by name\n * @param name\n * @returns\n */\n Catalog.prototype.getCollection = function (name) {\n var json = this.collections.find(function (entry) { return entry.key === name; });\n if (json) {\n // clone it then merge in the associated scope filter\n var clone = cloneObject(json);\n var catalogScope = this.getScope(clone.scope.targetEntity);\n if (catalogScope === null || catalogScope === void 0 ? void 0 : catalogScope.filters) {\n clone.scope.filters = __spreadArrays(clone.scope.filters, catalogScope.filters);\n }\n return Collection.fromJson(clone, this._context);\n }\n else {\n throw new HubError(\"getCollection\", \"Collection \\\"\" + name + \"\\\" is not present in the Catalog\");\n }\n };\n /**\n * Search for Items\n * Will throw if the Catalog does not have a scope defined for items\n * @param query\n * @param options\n * @returns\n */\n Catalog.prototype.searchItems = function (query, options) {\n if (options === void 0) { options = {}; }\n if (!this.getScope(\"item\")) {\n var result = this.getEmptyResult();\n result.messages = [\n {\n code: \"missingScope\",\n message: \"Catalog does not have a scope for items\",\n data: {\n scope: \"item\",\n },\n },\n ];\n return Promise.resolve(result);\n }\n else {\n // ensure it's an item search\n options.targetEntity = \"item\";\n return this.search(query, options);\n }\n };\n /**\n * Search for Groups\n * Will throw if the Catalog does not have a scope defined for groups\n * @param query\n * @param options\n * @returns\n */\n Catalog.prototype.searchGroups = function (query, options) {\n if (options === void 0) { options = {}; }\n if (!this.getScope(\"group\")) {\n var result = this.getEmptyResult();\n result.messages = [\n {\n code: \"missingScope\",\n message: \"Catalog does not have a scope for groups\",\n data: {\n scope: \"group\",\n },\n },\n ];\n return Promise.resolve(result);\n }\n else {\n // ensure it's an group search\n options.targetEntity = \"group\";\n return this.search(query, options);\n }\n };\n /**\n * Search for Users\n * Will throw if the Catalog does not have a scope defined for users\n * @param query\n * @param options\n * @returns\n */\n Catalog.prototype.searchUsers = function (query, options) {\n if (options === void 0) { options = {}; }\n if (!this.getScope(\"user\")) {\n var result = this.getEmptyResult();\n result.messages = [\n {\n code: \"missingScope\",\n message: \"Catalog does not have a scope for user\",\n data: {\n scope: \"user\",\n },\n },\n ];\n return Promise.resolve(result);\n }\n else {\n // ensure it's an group search\n options.targetEntity = \"user\";\n return this.search(query, options);\n }\n };\n /**\n * Execute a search against all the collections in the Catalog\n * @param query\n * @param options\n * @returns\n */\n Catalog.prototype.searchCollections = function (query, options) {\n if (options === void 0) { options = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var qry, promiseKeys, promises, responses, hash, i;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n qry = {\n targetEntity: \"item\",\n filters: [\n {\n predicates: [\n {\n term: query,\n },\n ],\n },\n ],\n };\n promiseKeys = [];\n promises = this.collectionNames.map(function (name) {\n var col = _this.getCollection(name);\n promiseKeys.push(name);\n qry.targetEntity = col.targetEntity;\n return col.search(qry, options);\n });\n return [4 /*yield*/, Promise.all(promises)];\n case 1:\n responses = _a.sent();\n hash = {};\n for (i = 0; i < promiseKeys.length; i++) {\n hash[promiseKeys[i]] = responses[i];\n }\n return [2 /*return*/, hash];\n }\n });\n });\n };\n /**\n * Execute a search against all the scopes in the Catalog\n * @param query\n * @param options\n * @returns\n */\n Catalog.prototype.searchScopes = function (query, options) {\n if (options === void 0) { options = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var qry, promiseKeys, promises, responses, hash, i;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n qry = {\n targetEntity: \"item\",\n filters: [\n {\n predicates: [\n {\n term: query,\n },\n ],\n },\n ],\n };\n promiseKeys = [];\n promises = this.availableScopes.map(function (name) {\n promiseKeys.push(name);\n // make clones\n var qryClone = cloneObject(qry);\n var optsClone = cloneObject(options);\n // set the target entity\n qryClone.targetEntity = name;\n optsClone.targetEntity = name;\n // return the search promise\n return _this.search(qryClone, optsClone);\n });\n return [4 /*yield*/, Promise.all(promises)];\n case 1:\n responses = _a.sent();\n hash = {};\n for (i = 0; i < promiseKeys.length; i++) {\n hash[promiseKeys[i]] = responses[i];\n }\n return [2 /*return*/, hash];\n }\n });\n });\n };\n /**\n * Execute a search against the Catalog as a whole\n * @param query\n * @param targetEntity\n * @returns\n */\n Catalog.prototype.search = function (query, options) {\n var targetEntity = options.targetEntity;\n var qry;\n if (typeof query === \"string\") {\n qry = {\n targetEntity: targetEntity,\n filters: [\n {\n predicates: [\n {\n term: query,\n },\n ],\n },\n ],\n };\n }\n else {\n qry = cloneObject(query);\n }\n // Now merge in catalog scope level filters\n qry.filters = __spreadArrays(qry.filters, this.getScope(targetEntity).filters);\n var opts = cloneObject(options);\n // An Catalog instance always uses the context so we remove/replace any passed in auth\n delete opts.authentication;\n opts.requestOptions = this._context.hubRequestOptions;\n return hubSearch(qry, opts);\n };\n /**\n * Construct an empty result. Returned when a search is performed against an entity type that\n * does not have a scope defined.\n * @returns\n */\n Catalog.prototype.getEmptyResult = function () {\n return {\n results: [],\n total: 0,\n hasNext: false,\n next: null,\n };\n };\n return Catalog;\n}());\nexport { Catalog };\n//# sourceMappingURL=Catalog.js.map","import { __awaiter, __generator, __spreadArrays } from \"tslib\";\nimport { fetchGroupEnrichments } from \"./_internal/enrichments\";\nimport { getProp } from \"../objects\";\nimport { getGroupThumbnailUrl } from \"../search\";\nimport { parseInclude } from \"../search/_internal/parseInclude\";\nimport { getGroupHomeUrl } from \"../urls\";\nimport { unique } from \"../util\";\nimport { mapBy } from \"../utils\";\n/**\n * Enrich a generic search result\n * @param group\n * @param includes\n * @param requestOptions\n * @returns\n */\nexport function enrichGroupSearchResult(group, include, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var result, DEFAULTS, specs, enrichments, enriched;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n result = {\n access: group.access,\n id: group.id,\n type: \"Group\",\n name: group.title,\n owner: group.owner,\n summary: group.snippet || group.description,\n createdDate: new Date(group.created),\n createdDateSource: \"group.created\",\n updatedDate: new Date(group.modified),\n updatedDateSource: \"group.modified\",\n family: \"team\",\n links: {\n self: \"not-implemented\",\n siteRelative: \"not-implemented\",\n thumbnail: \"not-implemented\",\n },\n };\n // Informal Enrichments - basically adding type-specific props\n // derived directly from the entity\n result.isSharedUpdate = (group.capabilities || []).includes(\"updateitemcontrol\");\n result.membershipAccess = group.membershipAccess;\n result.isOpenData = !!group.isOpenData;\n DEFAULTS = [];\n // merge includes\n include = __spreadArrays(DEFAULTS, include).filter(unique);\n specs = include.map(parseInclude);\n enrichments = mapBy(\"enrichment\", specs).filter(unique);\n enriched = {};\n if (!enrichments.length) return [3 /*break*/, 2];\n return [4 /*yield*/, fetchGroupEnrichments(group, enrichments, requestOptions)];\n case 1:\n enriched = _a.sent();\n _a.label = 2;\n case 2:\n // map the enriched props onto the result\n specs.forEach(function (spec) {\n result[spec.prop] = getProp(enriched, spec.path);\n });\n // Handle links\n result.links.thumbnail = getGroupThumbnailUrl(requestOptions.portal, group);\n result.links.self = getGroupHomeUrl(result.id, requestOptions);\n result.links.siteRelative = \"/teams/\" + result.id;\n return [2 /*return*/, result];\n }\n });\n });\n}\n//# sourceMappingURL=HubGroups.js.map","/**\n * Locales supported by the hub\n */\nexport var HUB_LOCALES = [\n \"ar\",\n \"bs\",\n \"ca\",\n \"cs\",\n \"da\",\n \"de\",\n \"en\",\n \"es\",\n \"et\",\n \"el\",\n \"fi\",\n \"fr\",\n \"hr\",\n \"he\",\n \"hu\",\n \"it\",\n \"id\",\n \"ja\",\n \"ko\",\n \"lt\",\n \"lv\",\n \"nb\",\n \"nl\",\n \"pl\",\n \"pt\",\n \"pt-br\",\n \"pt-pt\",\n \"ro\",\n \"ru\",\n \"sl\",\n \"sr\",\n \"sv\",\n \"th\",\n \"tr\",\n \"uk\",\n \"vi\",\n \"zh\",\n \"zh-cn\",\n \"zh-tw\",\n \"zh-hk\"\n];\n//# sourceMappingURL=hub-locales.js.map","import { HUB_LOCALES } from \"./hub-locales\";\n/**\n * Convert a requested locale into a locale we support.\n * i.e. en-ca => en\n * If the requested locale is not available, en will be returned\n * @param {string} requestedLocale Locale we want\n */\nexport function convertToWellKnownLocale(requestedLocale) {\n if (requestedLocale === void 0) { requestedLocale = \"en\"; }\n var wellKnownKey = \"en\";\n // ensure downcase\n requestedLocale = requestedLocale.toLowerCase();\n // see if it's in the hub translations as-is\n if (HUB_LOCALES.indexOf(requestedLocale) > -1) {\n wellKnownKey = requestedLocale;\n }\n else {\n // if we split the requested locale, see if we have the root in the list\n var parts = requestedLocale.split(\"-\");\n if (parts.length > 1 && HUB_LOCALES.indexOf(parts[0]) > -1) {\n wellKnownKey = parts[0];\n }\n }\n return wellKnownKey;\n}\n//# sourceMappingURL=convert-to-well-known-locale.js.map","import { getHubLocaleAssetUrl } from \"../urls/get-hub-locale-asset-url\";\n/**\n * Fetch the Hub translation file for a given locale\n * These are all public urls and should never require auth/tokens etc\n * @param {String} locale Locale code - i.e. `es`\n * @param {Object} portal Portal Self\n */\nexport function fetchHubTranslation(locale, portal, mode) {\n if (mode === void 0) { mode = \"cors\"; }\n var assetBase = getHubLocaleAssetUrl(portal);\n var url = (assetBase + \"/locales/\" + locale + \".json\").toLocaleLowerCase();\n // to support web-tier auth, we must always send same-origin credentials\n var options = {\n method: \"GET\",\n credentials: \"same-origin\",\n mode: mode\n };\n return fetch(url, options)\n .then(function (response) { return response.json(); })\n .catch(function (err) {\n throw Error(\"Attempt to fetch locale \" + locale + \" from \" + url + \" failed: \" + JSON.stringify(err));\n });\n}\n//# sourceMappingURL=fetch-hub-translation.js.map","import { getProp } from \"../objects\";\n/**\n * Return the culture from the Hub Request Options\n * In priority order: user.culture, portal.culture, en-us\n * @param {IHubRequestOptions} hubRequestOptions\n */\nexport function getCulture(hubRequestOptions) {\n return (getProp(hubRequestOptions, \"portalSelf.user.culture\") ||\n getProp(hubRequestOptions, \"portalSelf.culture\") ||\n \"en-us\");\n}\n//# sourceMappingURL=get-culture.js.map","import { unprotectItem, removeItem } from \"@esri/arcgis-rest-portal\";\nimport { failSafe } from \"../utils\";\n/**\n * Unprotect and Remove an Item\n * Assumes caller has checked that the curernt user should be able to\n * unprotect and remove the item. Underlying calls are failsafe\n * so a failure to unprotect or temove the item will not reject.\n * @param {IUserItemOptions} userItemOptions id and authentication\n * @private\n */\nexport function _unprotectAndRemoveItem(userItemOptions) {\n var failSafeUnprotect = failSafe(unprotectItem, { success: true });\n var failSafeRemove = failSafe(removeItem, { success: true });\n return failSafeUnprotect(userItemOptions).then(function () {\n return failSafeRemove(userItemOptions);\n });\n}\n//# sourceMappingURL=_unprotect-and-remove-item.js.map","/**\n * Apply a hash of properties to an array of items.\n * Extracted to simplify testing.\n * @param {array} items Array of items to apply the properties to\n * @param {object} props hash of properties to apply to the item\n */\nexport function applyPropertiesToItems(items, props) {\n return items.map(function (item) {\n if (!item.properties) {\n item.properties = {};\n }\n Object.assign(item.properties, props);\n return item;\n });\n}\n//# sourceMappingURL=apply-properties-to-items.js.map","/**\n * Delete a property from an object using a deep path\n * MODIFIES PASSED TARGET\n * @param {Object} target Object from which we want to delete the property\n * @param {string} path Dotted path to the property we want to delete\n */\nexport function deleteProp(target, lookupStr) {\n if (typeof target !== \"object\" || target === null)\n return;\n if (typeof lookupStr !== \"string\")\n return;\n var lookupKeys = lookupStr.split(\".\");\n for (var i = 0; i < lookupKeys.length - 1; i++) {\n if (!target.hasOwnProperty(lookupKeys[i]))\n return;\n target = target[lookupKeys[i]];\n }\n delete target[lookupKeys[lookupKeys.length - 1]];\n}\n//# sourceMappingURL=delete-prop.js.map","import { updateItem } from \"@esri/arcgis-rest-portal\";\nimport { serializeModel } from \"../models/serializeModel\";\nimport { failSafe } from \"../utils\";\n/**\n * Update a model's item, wrapped in a failSafe so this will not blow up if\n * the user lacks rights somehow. This should be used in places where there is\n * a high-probability that the current user CAN update the item.\n * @param {Object} model Model object to be updated\n * @param {IRequestOptions} requestOptions\n */\nexport function failSafeUpdate(model, requestOptions) {\n var failSafedUpdate = failSafe(updateItem, {\n id: model.item.id,\n success: true,\n });\n var opts = Object.assign({ item: serializeModel(model) }, requestOptions);\n return failSafedUpdate(opts);\n}\n//# sourceMappingURL=fail-safe-update.js.map","import { failSafe } from \"../utils\";\nimport { getModel } from \"../models\";\n/**\n * To streamline passing of either a model id or the model itself, we use this function\n * to extract the model or fetch it, and return it. It uses `failSafe` and if the item\n * is not accessible for whatever reason, will return a model-ish object with `isMissing: true`\n * It is up to the caller to take approriate action\n * @param {String} modelType the type of model to extract from the options hash\n * @param {Object} options Something that extends IRequestOptions\n */\nexport function getModelFromOptions(modelType, options) {\n var modelProp = modelType + \"Model\";\n var idProp = modelType + \"Id\";\n // if the options hash has the model, return it\n if (options[modelProp]) {\n return Promise.resolve(options[modelProp]);\n }\n else {\n if (options[idProp]) {\n var failSafeModel = failSafe(getModel, {\n item: { id: options[idProp] },\n isMissing: true,\n });\n return failSafeModel(options[idProp], options);\n }\n else {\n throw new Error(\"getModelFromOptions requires either a .\" + modelProp + \" or .\" + idProp + \" property.\");\n }\n }\n}\n//# sourceMappingURL=get-model-from-options.js.map","/**\n* adlib - v3.0.6 - Thu Dec 17 2020 17:08:08 GMT-0800 (Pacific Standard Time)\n* Copyright (c) 2017-2020 Dave Bouwman / Esri\n* Apache-2.0\n*/\n/* Copyright (c) 2017-2019 Esri Inc.\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n http://www.apache.org/licenses/LICENSE-2.0\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License. */\n\n/**\n * Return the value of a deep property, using a path.\n */\nvar getWithDefault = function (obj, path, defaultValue) {\n if ( defaultValue === void 0 ) defaultValue = undefined;\n\n return path\n .split('.')\n .reduce(function (o, p) { return o ? o[p] : defaultValue; }, obj);\n};\n\n/* Copyright (c) 2017-2019 Esri Inc.\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n http://www.apache.org/licenses/LICENSE-2.0\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License. */\n\n/**\n * Simply Map over the props of an object\n */\nfunction mapValues (obj, fn) {\n var keys = Object.keys(obj);\n // console.info(`keys: ${keys}`);\n var newObject = keys.reduce(function(acc, currentKey) {\n // console.log(` acc: ${JSON.stringify(acc)} curKey: ${currentKey}`);\n acc[currentKey] = fn(obj[currentKey], currentKey, obj);\n return acc;\n }, {});\n // console.info(` output: ${JSON.stringify(newObject)}`);\n return newObject;\n}\n\n/* Copyright (c) 2017-2019 Esri Inc.\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n http://www.apache.org/licenses/LICENSE-2.0\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License. */\n\nvar isDate = function (v) { return v instanceof Date; };\n\nvar isFunction = function (v) { return typeof v === 'function'; };\n\nvar isObject = function (v) { return typeof v === 'object'; };\n\nvar isRegExp = function (v) { return v instanceof RegExp; };\n\nfunction deepMapValues(object, callback, propertyPath) {\n propertyPath = propertyPath || '';\n if(Array.isArray(object)){\n return object.map(deepMapValuesIteratee);\n }\n else if(object && isObject(object) && !isDate(object) && !isRegExp(object) && !isFunction(object)){\n return Object.assign({}, object, mapValues(object, deepMapValuesIteratee));\n }\n else {\n var output = callback(object, propertyPath);\n return output;\n }\n\n function deepMapValuesIteratee(value, key){\n var valuePath = propertyPath ? propertyPath + '.' + key : key;\n return deepMapValues(value, callback, valuePath);\n }\n}\n\n/* Copyright (c) 2017-2019 Esri Inc.\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n http://www.apache.org/licenses/LICENSE-2.0\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License. */\n\nvar isObject$1 = function (v) { return typeof v === 'object'; };\n\n/**\n * Trim a tree decorated with `{{delete:NNN}}`\n */\nfunction arborist (object, propertyPath) {\n\n if(Array.isArray(object)){\n // filter out any nulls...\n var arrResults = object.map(iteratee).filter(function (entry) {\n // need to ensure entry is actually NULL vs just falsey\n return entry !== null && entry !== undefined;\n });\n return pruneArray(arrResults);\n\n } if(object && isObject$1(object) ) {\n\n return pruneObject(mapValues(object, iteratee));\n\n } else {\n\n return getPropertyValue(object);\n }\n\n function iteratee(value, key){\n return arborist(value);\n }\n}\n\n/**\n * Prune an array\n * For all the entries in the array...\n * if the entry is a naked string and contains `{{delete:NNN}}`\n * get maximum NNN value\n * then\n * if maxN === 0\n * return an empty array\n * if maxN > 0\n * return `{{delete:maxN-1}}`\n * else\n * return array\n */\nfunction pruneArray (arrResults) {\n var res = arrResults;\n // is any entry a string w/ {{delete}}?\n var maxLevel = arrResults.reduce(function (maxLevel, e) {\n if (isString(e) && hasDelete(e)) {\n var lvl = getLevel(e);\n if (lvl > maxLevel) {\n maxLevel = lvl;\n }\n }\n return maxLevel;\n }, -1);\n\n if (maxLevel > -1) {\n if (maxLevel === 0) {\n res = [];\n } else {\n res = \"{{delete:\" + (maxLevel - 1) + \"}}\";\n }\n }\n\n return res;\n}\n\n\nfunction pruneObject (objResults) {\n // console.log(` pruneObject:: working on ${JSON.stringify(objResults)}`);\n var startVal = {obj: {}, maxLevel: -1 };\n var res;\n // cook a new clone object, and track the maxLevel\n var reduction = Object.keys(objResults).reduce(function (acc, key) {\n var val = objResults[key];\n if (isString(val) && hasDelete(val)) {\n var lvl = getLevel(val);\n if (lvl > acc.maxLevel) {\n acc.maxLevel = lvl;\n }\n } else {\n // only add the prop if it's not a `{{delete:NNN}}`\n acc.obj[key] = val;\n }\n return acc;\n }, startVal);\n // if -1, we return entire object...\n // if 0 we just remove the prop...\n // if 1 we return undefined...\n // if > 1 we return the deleteVal\n if (reduction.maxLevel > 0 ) {\n if (reduction.maxLevel === 1) {\n res = undefined;\n } else {\n res = \"{{delete:\" + (reduction.maxLevel - 1) + \"}}\";\n }\n } else {\n res = reduction.obj;\n }\n\n // console.log(` returning ${JSON.stringify(res)}`);\n return res;\n}\n\n/**\n * Get a value for a property, handling the `{{delete:NNN}}` syntax\n */\nfunction getPropertyValue (val){\n var output = val;\n\n if (typeof val === 'string') {\n if (hasDelete(val)) {\n output = getDeleteValue(val);\n }\n }\n return output;\n}\n\n/**\n * Given a string with `{{delete:NNN}}`\n * if NNN === 0 return undefined\n * else return `{{delete:NNN - 1}}`\n */\nfunction getDeleteValue (val) {\n var output = val;\n var level = getLevel(val);\n if (level === 0) {\n output = undefined;\n } else {\n output = \"{{delete:\" + level + \"}}\";\n }\n return output;\n}\n\n/**\n * Extract the level from a `{{delete:NNN}}`\n */\nvar getLevel = function (value) { return parseInt(value.replace(/{|}/g, '').split(':')[1]); };\n\n/**\n * Simple check if a value has `{{delete` in it\n */\nfunction hasDelete (value) {\n if (value && typeof value === 'string') {\n return value.indexOf('{{delete') > -1;\n } else {\n return false;\n }\n}\n\nvar isString = function (v) { return typeof v === 'string'; };\n\n/* Copyright (c) 2017-2019 Esri Inc.\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n http://www.apache.org/licenses/LICENSE-2.0\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License. */\n\n/**\n * Optional Transform\n * Supports a declarative syntax for optional template properties\n *\n * {{some.object.key:optional:2}}\n *\n * In this example, if defined, the value of `some.object.key` is used.\n * If not defined, then the optional transform is utilized\n * and a post-processing step is executed which will remove two parent levels\n * from the output structure\n */\n\nfunction optionalTransform(key, value, settings, level) {\n if ( level === void 0 ) level = 0;\n\n // console.log(`optional: ${key}, ${value}, ${level}`);\n var val = value;\n if (!value) {\n val = \"{{delete:\" + level + \"}}\";\n }\n return val;\n}\n\n/* Copyright (c) 2017-2019 Esri Inc.\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n http://www.apache.org/licenses/LICENSE-2.0\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License. */\n\n/**\n * ```js\n * import { cloneObject } from \"./cloneObject\";\n * const original = { foo: \"bar\" }\n * const copy = cloneObject(original)\n * copy.foo // \"bar\"\n * copy === original // false\n * ```\n * Make a deep clone, including arrays. Does not handle functions!\n *\n * Copied from @esri/hub-common to avoid bringing along that package's\n * dependencies, @esri/hub-common should be made a dependency if more\n * functions are needed from it in the future\n */\nvar cloneObject = function (obj) {\n var clone = {};\n // first check array\n if (Array.isArray(obj)) {\n clone = obj.map(cloneObject);\n } else if (typeof obj === \"object\") {\n for (var i in obj) {\n if (obj[i] != null && typeof obj[i] === \"object\") {\n clone[i] = cloneObject(obj[i]);\n } else {\n clone[i] = obj[i];\n }\n }\n } else {\n clone = obj;\n }\n return clone;\n};\n\n/* Copyright (c) 2017-2019 Esri Inc.\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n http://www.apache.org/licenses/LICENSE-2.0\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License. */\nvar HANDLEBARS = /{{\\s*?[\\w].*?}}/g;\n\nvar isString$1 = function (v) { return typeof v === 'string'; };\n\nfunction _swap(parameter, settings, transforms) {\n var value;\n // console.info(`_swap: param: ${parameter}`);\n // Parameters can optionally call transform functions\n // e.g. \"{{ipsum:translateLatin}}\"\n // so extract {{<parameter>:<transformFunction>:<key||value>}}\n var transformCheck = parameter.split(':');\n if (transformCheck.length > 1) {\n // we have a request to use a transform...\n var key = transformCheck[0];\n var fn = transformCheck[1];\n // we default to using the value...\n var param;\n if (transformCheck[2]){\n param = transformCheck[2];\n }\n if(transforms && transforms[fn] && typeof transforms[fn] === 'function') {\n // get the value from the param\n value = getWithDefault(settings, key);\n // transform it...\n value = transforms[fn](key, value, settings, param);\n } else {\n throw new Error((\"Attempted to apply non-existant transform \" + fn + \" on \" + key + \" with params \" + parameter));\n }\n } else {\n // we just get the value\n value = getWithDefault(settings, parameter);\n }\n return value;\n}\n\n/**\n * Does a propertyPath exist on a target\n */\nfunction _propertyPathExists (propertyPath, target) {\n // remove any transforms\n var cleanPath = propertyPath.split(':')[0];\n var value = getWithDefault(target, cleanPath, null);\n if (value !== null && value !== undefined) {\n return true;\n } else {\n return false;\n }\n}\n\n/**\n * Is the value considered valid\n */\nfunction _isValue (val) {\n return val || val === '' || val === 0;\n}\n\n// Combine a Template with Settings\nfunction adlib (template, settings, transforms) {\n if ( transforms === void 0 ) transforms = null;\n\n transforms = cloneObject(transforms) || {};\n if (transforms.optional) {\n throw new Error('Please do not pass in an `optional` transform; adlib provides that internally.');\n } else {\n transforms.optional = optionalTransform;\n }\n\n var res = deepMapValues(template, function(templateValue, templatePath){\n // Only string templates\n if (!isString$1(templateValue)) {\n return templateValue;\n }\n\n // When we match \"{{layer.fields..}}\"\n var settingsValue;\n\n var hbsEntries = templateValue.match(HANDLEBARS);\n\n if (hbsEntries && hbsEntries.length) {\n // console.log(`Got a ${hbsEntries.length} handlebar entries...`);\n // iterate over the entries...\n var values = hbsEntries.map(function (entry) {\n var isStaticValue = false;\n // console.info(`Matched ${entry}...`);\n // strip off the curlies and trim any leading/trailing whitespace...\n var path = entry.replace(/{|}/g, '').trim();\n // check for || which indicate a hiearchy\n if (path.indexOf('||') > -1) {\n var paths = path.split('||').map(function (path) { return path.trim(); });\n var numberOfPaths = paths.length;\n // here we check each option, in order, and return the first with a value in the hash, OR the last\n path = paths.find(function (pathOption, idx) {\n // console.info(`Checking to see if ${pathOption} is in settings hash...`);\n var exists = _propertyPathExists(pathOption, settings);\n if (!exists) {\n if ((idx + 1) === numberOfPaths) {\n // console.info(`Got to last entry, and still did not find anything... assuming ${pathOption} is a static value...`);\n isStaticValue = true;\n // check if we can convert this into a number...\n if (!isNaN(pathOption)) {\n pathOption = parseInt(pathOption);\n }\n return pathOption;\n } else {\n return false;\n }\n } else {\n return pathOption;\n }\n });\n }\n // setup the return value...\n var result = {\n key: entry,\n value: path\n };\n // if we have a valid object path, value comes from _swap\n if (!isStaticValue) {\n var swap = _swap(path, settings, transforms);\n result.value = _isValue(swap) ? swap : entry;\n }\n // console.info(`Value: ${JSON.stringify(result)}`);\n return result;\n });\n\n values.forEach(function (v) {\n // console.log(`Comparing ${templateValue} with ${v.key}`)\n if (templateValue === v.key) {\n // console.log(`template matches key, returning ${v.value}`);\n // if the value is a string...\n if (typeof v.value === 'string') {\n // and it's numeric-ish\n if(!isNaN(v.value) && v.value !== '') {\n // and has a . in it...\n if (v.value.indexOf('.') > -1) {\n // parse as a float...\n v.value = parseFloat(v.value);\n } else {\n // parse as an int\n v.value = parseInt(v.value);\n }\n }\n }\n settingsValue = v.value;\n } else {\n // a little extra regex dance to match the '||' because '|'\n // is a Very Special Regex Character and we need to super\n // escape them for the regex to work\n // console.log(`KEY ${v.key}`);\n // console.log(`TEMPLATE ${templateValue}`);\n templateValue = templateValue.replace(v.key, v.value);\n // console.log(`template did not match key, interpolating value ${v.value} into template to produce ${templateValue}`);\n }\n });\n\n // if we have a value, let's return that...\n if (_isValue(settingsValue)) {\n // console.log(`We found a value so we return it ${settingsValue}`);\n return settingsValue;\n } else {\n // console.log(`We did not find a value so we return the template ${templateValue}`);\n // but if we don't, lets return the template itself\n return templateValue;\n }\n } else {\n // console.log(`We did not find a hbs match, so we return the template ${templateValue}`);\n // no match, return the templateValue...\n return templateValue;\n }\n });\n return arborist(res);\n}\n\n// read a template and spit out unique values\nfunction listDependencies (template) {\n if (typeof template !== 'string') {\n template = JSON.stringify(template);\n }\n\n try {\n return Array.from(\n new Set(\n template.match(HANDLEBARS)\n )\n )\n .map(function (term) {\n return term.replace(/^{{/g, '').replace(/}}$/g, '').replace(/:.+$/, '')\n // Node > 10 and browsers support this w/ a lookahead\n // won't need to use the replace\n // /(?<={{)[\\w].*?(?=}})/g\n })\n } catch (e) {\n console.error(e);\n }\n}\n\nexport { adlib, arborist, deepMapValues, getPropertyValue, getWithDefault, listDependencies, mapValues, optionalTransform, pruneArray, pruneObject };\n","import { adlib } from \"adlib\";\n/**\n * Interpolates handlebars-style placeholders on an object graph\n * @param template\n * @param settings\n * @param transforms\n */\nexport function interpolate(template, settings, transforms) {\n return adlib(template, settings, transforms);\n}\n//# sourceMappingURL=interpolate.js.map","import { interpolate } from \"./interpolate\";\n/**\n * Interpolate the item id back into any {{appid}} instances\n * in the item. Allows for self-referencing in templates\n * @param {object} model Item Model\n */\nexport function interpolateItemId(model) {\n var settings = { item: { id: model.item.id }, appid: model.item.id };\n var transforms = {\n toISO: function (_, v) {\n return v;\n }\n };\n return interpolate(model, settings, transforms);\n}\n//# sourceMappingURL=interpolate-item-id.js.map","import { cloneObject } from \"../util\";\nimport { deepStringReplace } from \"../objects\";\n/**\n * Replaces instances of item ids on an item model\n * @param {Object} obj Object graph to traverse\n * @param {string} itemId id to replace with `{{appid}}`\n */\nexport function replaceItemId(obj, itemId, replacement) {\n if (replacement === void 0) { replacement = \"{{appid}}\"; }\n var clone = cloneObject(obj);\n var re = new RegExp(itemId, \"g\");\n return deepStringReplace(clone, re, replacement);\n}\n//# sourceMappingURL=replace-item-id.js.map","import { shareItemWithGroup, } from \"@esri/arcgis-rest-portal\";\n/**\n * Share an item to a set of groups\n * @param {String} itemId Iten Id to share to the groups\n * @param {Array} groups Array of group id's to which the item will be shared\n * @param {String} owner optional Owner username to determine which endpoint to hit\n * @param {*} requestOptions\n */\nexport function shareItemToGroups(itemId, groups, requestOptions, owner) {\n return Promise.all(groups.map(function (groupId) {\n var opt = Object.assign({}, { id: itemId, groupId: groupId }, requestOptions);\n if (owner) {\n opt.owner = owner;\n }\n return shareItemWithGroup(opt);\n }));\n}\n//# sourceMappingURL=share-item-to-groups.js.map","import { unprotectItem } from \"@esri/arcgis-rest-portal\";\n/**\n * Given a model, determine if it is protected, and unprotect it if it is.\n * Otherwise, just resolve with the same result.\n * @param {Object} model Model Object\n * @param {IRequestOptions} requestOptions\n */\nexport function unprotectModel(model, requestOptions) {\n if (model.item.protected) {\n var opts = Object.assign({ id: model.item.id }, requestOptions);\n return unprotectItem(opts);\n }\n else {\n // act as though we did it\n return Promise.resolve({ success: true });\n }\n}\n//# sourceMappingURL=unprotect-model.js.map","import { unshareItemWithGroup, } from \"@esri/arcgis-rest-portal\";\n/**\n * Unshare an item from a set of groups\n * @param {String} itemId Item Id to unshare from groups\n * @param {Array} groups Array of group id's from which the item will be unshared\n * @param {String} owner optional Owner username to determine which endpoint to hit\n * @param {IRequestOptions} requestOptions\n */\nexport function unshareItemFromGroups(itemId, groups, requestOptions, owner) {\n return Promise.all(groups.map(function (groupId) {\n var opt = Object.assign({}, { id: itemId, groupId: groupId }, requestOptions);\n if (owner) {\n opt.owner = owner;\n }\n return unshareItemWithGroup(opt);\n }));\n}\n//# sourceMappingURL=unshare-item-from-groups.js.map","import { searchItems } from \"@esri/arcgis-rest-portal\";\n/**\n * Check if a site/page exists with a specific name\n */\nexport function doesItemExistWithTitle(itemTitle, options, authMgr) {\n // if options have multiple properties, put them into one string separated with 'AND'\n var optionsQuery = Object.keys(options)\n .map(function (key) {\n return key + \":\\\"\" + options[key] + \"\\\"\";\n })\n .join(\" AND \");\n var opts = {\n q: \"title:\\\"\" + itemTitle + \"\\\" AND \" + optionsQuery,\n authentication: authMgr\n };\n return searchItems(opts)\n .then(function (searchResponse) { return searchResponse.results.length > 0; })\n .catch(function (e) {\n throw Error(\"Error in doesItemExistWithTitle \" + e);\n });\n}\n//# sourceMappingURL=does-item-exist-with-title.js.map","import { doesItemExistWithTitle } from \"./does-item-exist-with-title\";\n/**\n * Given a title, construct a site/page title that is unique\n * if that title exists, this fn will add a number on the end, and increment until\n * an available title is found\n * @param {string} title site/page title to ensure if unique\n * @param {object} options an object that can be passed in to the q, eg. typekeywords, type\n * @param {object} authMgr auth info tells the function what url to use for the \"root\" of the API,\n * if missing, it will search against PROD\n * @param {number} step Number to increment. Defaults to 0\n */\nexport function getUniqueItemTitle(title, options, authMgr, step) {\n if (step === void 0) { step = 0; }\n var combinedName = title;\n if (step) {\n combinedName = title + \" \" + step;\n }\n return doesItemExistWithTitle(combinedName, options, authMgr)\n .then(function (result) {\n if (result) {\n step++;\n return getUniqueItemTitle(title, options, authMgr, step);\n }\n else {\n return combinedName;\n }\n })\n .catch(function (e) {\n throw Error(\"Error in getUniqueItemTitle \" + e);\n });\n}\n//# sourceMappingURL=get-unique-item-title.js.map","import { __assign, __spreadArrays } from \"tslib\";\nimport { batch } from \"../utils/batch\";\nvar MAX_NUM = 100;\n/**\n * Fetches all the pages in a search request\n * @param {SearchFunction} searchFunc\n * @param {ISearchOptions} opts\n * @param {number} limit\n * @param {batchSize} number of concurrent requests at a time\n * @returns {Promise<SearchableType[]>}\n */\nexport function fetchAllPages(searchFunc, opts, limit, batchSize) {\n if (limit === void 0) { limit = -1; }\n var pageSize = opts.num || MAX_NUM;\n var firstStart = opts.start || 1;\n // If a limit is provided, we don't have to use the first request to get the\n // total count before sending things off to batch(). So instead we fake the first\n // response just to set things up.\n var promise = limit === -1\n ? searchFunc(__assign(__assign({}, opts), { num: pageSize, start: firstStart }))\n : Promise.resolve({\n nextStart: firstStart,\n total: limit,\n results: [],\n num: pageSize\n });\n return promise\n .then(function (firstResponse) {\n // no more requests needed, return the first response\n if (firstResponse.nextStart === -1)\n return [firstResponse];\n // generate batch requests for the remaining pages to fetch\n var starts = [];\n for (var i = firstResponse.nextStart; i <= firstResponse.total; i += pageSize) {\n starts.push(i);\n }\n var batchSearchFunc = function (start) {\n return searchFunc(__assign(__assign({}, opts), { start: start, num: pageSize }));\n };\n return batch(starts, batchSearchFunc, batchSize).then(function (responses) { return __spreadArrays([\n firstResponse\n ], responses); });\n })\n .then(function (responses) {\n // merge all the search results into a single array\n var results = responses.reduce(function (acc, response) { return __spreadArrays(acc, response.results); }, []);\n // discard results beyond the limit if applicable\n var clipLimit = limit === -1 ? results.length : limit;\n return results.slice(0, clipLimit);\n });\n}\n//# sourceMappingURL=fetch-all-pages.js.map","import { cloneObject } from \"../util\";\nexport var itemPropsNotInTemplates = [\n \"id\",\n \"isOrgItem\",\n \"proxyFilter\",\n \"ownerFolder\",\n \"protected\",\n \"owner\",\n \"created\",\n \"modified\",\n \"guid\",\n \"name\",\n \"access\",\n \"size\",\n \"listed\",\n \"numComments\",\n \"numRatings\",\n \"avgRating\",\n \"numViews\",\n \"scoreCompleteness\",\n \"groupDesignations\",\n \"listed\",\n \"screenshots\",\n \"banner\",\n \"appCategories\",\n \"industries\",\n \"languages\",\n \"largeThumbnail\"\n];\n/**\n * Given an item, remove a standard set of properties not needed in a template\n * TODO: This should land in a templating helper lib in hub.js\n * @param {Object} item Item to be normalized\n */\nexport function normalizeSolutionTemplateItem(item) {\n var template = cloneObject(item);\n itemPropsNotInTemplates.forEach(function (prop) {\n delete template[prop];\n });\n // set a bunch of things we do want\n template.extent = \"{{organization.defaultExtentBBox}}\";\n return template;\n}\n//# sourceMappingURL=normalize-solution-template-item.js.map","import { __assign } from \"tslib\";\n/**\n * Takes a file, file owner, and file AGO item id along with a size limit\n * Then chunks the file up based on that file limit.\n * The chunks are added to addItemPart calls and added to a queue array.\n *\n * @export\n * @param {*} file File to be uploaded\n * @param {string} owner file owner\n * @param {string} id file ID from AGO\n * @param {number} sizeLimit How large should the chunks be?\n * @param {IUserRequestOptions} requestOptions\n * @return {*} {IBatch}\n */\nexport function _prepareUploadRequests(file, owner, id, sizeLimit, requestOptions) {\n var queue = [];\n // part number starts from 1\n var partIndex = 1;\n var sizeIndex = 0;\n // Slice the file data and create an upload request for each part\n while (sizeIndex < file.size) {\n queue.push(__assign({ file: file.slice(sizeIndex, sizeIndex + sizeLimit, file.type), owner: owner,\n id: id, partNum: partIndex }, requestOptions));\n partIndex += 1;\n sizeIndex += sizeLimit;\n }\n return queue.reverse();\n}\n//# sourceMappingURL=_prepare-upload-requests.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { addItemPart, cancelItemUpload, commitItemUpload, createItem, } from \"@esri/arcgis-rest-portal\";\nimport { batch } from \"../utils\";\nimport { _prepareUploadRequests } from \"./_internal/_prepare-upload-requests\";\n/**\n * Creates an item in online from a local file/item.\n * Upload is multithreaded as the item is chunked up.\n *\n * @export\n * @param {IItemAdd} item Item to be uploaded into online.\n * @param {IUserRequestOptions} requestOptions\n * @return {*} {Promise<string>} Newly created item id\n */\nexport function createItemFromFile(item, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var file, createResult, itemId, sizeLimit, uploadQueue, e_1;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n file = item.file;\n // make a shadow copy of the item parameter and remove the file object\n // so that it won't trigger the direct upload at the createContent\n // request\n item = Object.assign({}, item);\n delete item.file;\n return [4 /*yield*/, createItem(__assign({ item: item, filename: file.name, async: true, multipart: true, overwrite: true }, requestOptions))];\n case 1:\n createResult = _a.sent();\n itemId = createResult.id;\n _a.label = 2;\n case 2:\n _a.trys.push([2, 5, , 7]);\n sizeLimit = 6 * 1000 * 1000;\n uploadQueue = _prepareUploadRequests(file, item.owner, itemId, sizeLimit, requestOptions);\n // execute up to 5 concurrent requests\n return [4 /*yield*/, batch(uploadQueue, \n // We are doing this to catch individual response failures\n // and throwing them to stop further xhr's\n function (opts) { return __awaiter(_this, void 0, void 0, function () {\n var resp;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, addItemPart(opts)];\n case 1:\n resp = _a.sent();\n // If the response did not return with success then throw an error\n if (!resp.success) {\n throw new Error(\"addItemPart failed\");\n }\n return [2 /*return*/];\n }\n });\n }); }, 5)];\n case 3:\n // execute up to 5 concurrent requests\n _a.sent();\n // Commit is called once all parts are uploaded during a multipart add item or update item operation.\n return [4 /*yield*/, commitItemUpload(__assign({ id: itemId, item: item, owner: item.owner }, requestOptions))];\n case 4:\n // Commit is called once all parts are uploaded during a multipart add item or update item operation.\n _a.sent();\n return [3 /*break*/, 7];\n case 5:\n e_1 = _a.sent();\n // If an error is thrown then cancel item upload\n return [4 /*yield*/, cancelItemUpload(__assign({ id: itemId, owner: item.owner }, requestOptions))];\n case 6:\n // If an error is thrown then cancel item upload\n _a.sent();\n throw e_1;\n case 7: return [2 /*return*/, createResult];\n }\n });\n });\n}\n//# sourceMappingURL=create-item-from-file.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { createItem } from \"@esri/arcgis-rest-portal\";\n/**\n * Create AGO item from a URL\n *\n * @export\n * @param {IItemAdd} item Item to be uploaded into online.\n * @param {IUserRequestOptions} requestOptions\n * @return {*} {Promise<string>} Newly created item ID\n */\nexport function createItemFromUrl(item, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var createResult;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, createItem(__assign({ item: item, owner: item.owner, file: item.file, dataUrl: item.dataUrl, text: item.text, multipart: item.multipart, async: item.async }, requestOptions))];\n case 1:\n createResult = _a.sent();\n // return the newly created item id\n return [2 /*return*/, createResult];\n }\n });\n });\n}\n//# sourceMappingURL=create-item-from-url.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { getItemStatus, } from \"@esri/arcgis-rest-portal\";\nfunction delay(milliseconds) {\n return new Promise(function (resolve) { return setTimeout(resolve, milliseconds); });\n}\n/**\n * Helper function which takes an itemId and checks the status\n * of the item every 2 seconds until it is either complete or failed.\n *\n * @export\n * @param {string} itemId AGO item id\n * @param {IUserRequestOptions} requestOptions\n */\nexport function _waitForItemReady(itemId, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var statusResult;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, delay(2000)];\n case 1:\n _a.sent();\n return [4 /*yield*/, getItemStatus(__assign({ id: itemId }, requestOptions))];\n case 2:\n statusResult = _a.sent();\n if (statusResult.status === \"failed\") {\n throw new Error(statusResult.statusMessage);\n }\n _a.label = 3;\n case 3:\n if (statusResult.status !== \"completed\") return [3 /*break*/, 0];\n _a.label = 4;\n case 4: return [2 /*return*/];\n }\n });\n });\n}\n//# sourceMappingURL=_wait-for-item-ready.js.map","import { __assign, __awaiter, __generator, __rest } from \"tslib\";\nimport { setItemAccess, shareItemWithGroup, } from \"@esri/arcgis-rest-portal\";\nimport { failSafe, isUpdateGroup } from \"../utils\";\nimport { createItemFromFile } from \"./create-item-from-file\";\nimport { createItemFromUrl } from \"./create-item-from-url\";\nimport { _waitForItemReady } from \"./_internal/_wait-for-item-ready\";\n/**\n * Creates an item in online from either url or file.\n * Once created we wait for the item to be ready (or throw an error if creation failed)\n * If access is not private then we make a call to update that.\n *\n * @export\n * @param {ICreateItemFromUrlOrFileOptions} createItemFromUrlOrFileOptions Input params (item, groups?, requestoptions)\n * @return {*} {\n * title: string,\n * createdItem: ICreateItemResponse,\n * itemAccessResponse: ISharingResponse,\n * itemSharingResponse: ISharingResponse[]\n * } Responses from createdItem, changing item access, and item Sharing to group\n */\nexport function createItemFromUrlOrFile(createItemFromUrlOrFileOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var item, groups, userRequestOptions, shouldWaitForItemReady, createdItem, itemAccessResponse, itemSharingResponse, failSafeShare_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n item = createItemFromUrlOrFileOptions.item, groups = createItemFromUrlOrFileOptions.groups, userRequestOptions = __rest(createItemFromUrlOrFileOptions, [\"item\", \"groups\"]);\n shouldWaitForItemReady = item.dataUrl || item.file;\n if (!item.file) return [3 /*break*/, 2];\n return [4 /*yield*/, createItemFromFile(item, userRequestOptions)];\n case 1:\n createdItem = _a.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, createItemFromUrl(item, userRequestOptions)];\n case 3:\n createdItem = _a.sent();\n _a.label = 4;\n case 4:\n if (!shouldWaitForItemReady) return [3 /*break*/, 6];\n return [4 /*yield*/, _waitForItemReady(createdItem.id, userRequestOptions)];\n case 5:\n _a.sent();\n _a.label = 6;\n case 6:\n if (!(item.access !== \"private\")) return [3 /*break*/, 8];\n return [4 /*yield*/, setItemAccess(__assign({ id: createdItem.id, owner: item.owner, access: item.access }, userRequestOptions))];\n case 7:\n itemAccessResponse = _a.sent();\n _a.label = 8;\n case 8:\n if (!(groups === null || groups === void 0 ? void 0 : groups.length)) return [3 /*break*/, 10];\n failSafeShare_1 = failSafe(shareItemWithGroup);\n return [4 /*yield*/, Promise.all(groups.map(function (group) {\n return failSafeShare_1(__assign({ id: createdItem.id, owner: item.owner, groupId: group.id, confirmItemControl: isUpdateGroup(group) }, userRequestOptions));\n }))];\n case 9:\n itemSharingResponse = _a.sent();\n _a.label = 10;\n case 10: return [2 /*return*/, {\n title: item.title,\n createdItem: createdItem,\n itemAccessResponse: itemAccessResponse,\n itemSharingResponse: itemSharingResponse,\n }];\n }\n });\n });\n}\n//# sourceMappingURL=create-item-from-url-or-file.js.map","/* Copyright (c) 2020 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { __assign } from \"tslib\";\nimport { getRelatedItems } from \"@esri/arcgis-rest-portal\";\n/**\n * Gets the primary input Feature Service for the given\n * Form ID. This will be the Fieldworker view, if it exists,\n * otherwise the source Feature Service.\n * @param {string} formId The Form ID\n * @param requestOptions The request options\n * @returns {Promise<IModel>}\n */\nexport var getInputFeatureServiceModel = function (formId, requestOptions) {\n return getRelatedItems(__assign({ id: formId, relationshipType: \"Survey2Service\", direction: \"forward\" }, requestOptions)).then(function (_a) {\n var featureService = _a.relatedItems[0];\n var model;\n if (featureService) {\n model = { item: featureService };\n }\n return model;\n });\n};\n//# sourceMappingURL=get-input-feature-service-model.js.map","/* Copyright (c) 2020 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { __assign } from \"tslib\";\nimport { getRelatedItems } from \"@esri/arcgis-rest-portal\";\n/**\n * Fetches a Survey's source Feature Service from a given\n * Fieldworker View ID\n * @param {string} fieldworkerId The Fieldworker View ID\n * @param {IRequestOptions} requestOptions The request options\n * @returns {Promise<IModel>}\n */\nexport var getSourceFeatureServiceModelFromFieldworker = function (fieldworkerId, requestOptions) {\n return getRelatedItems(__assign({ id: fieldworkerId, relationshipType: \"Service2Data\", direction: \"forward\" }, requestOptions)).then(function (_a) {\n var featureService = _a.relatedItems[0];\n var model;\n if (featureService) {\n model = { item: featureService };\n }\n return model;\n });\n};\n//# sourceMappingURL=get-source-feature-service-model-from-fieldworker.js.map","/* Copyright (c) 2020 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { __assign } from \"tslib\";\nimport { getRelatedItems } from \"@esri/arcgis-rest-portal\";\n/**\n * Fetches a Survey's Stakeholder View for a given\n * Form ID\n * @param {string} formId A Form ID\n * @param {IRequestOptions} requestOptions The request options\n * @returns {Promise<IModel>}\n */\nexport var getStakeholderModel = function (formId, requestOptions) {\n return getRelatedItems(__assign({ id: formId, relationshipType: \"Survey2Data\", direction: \"forward\" }, requestOptions)).then(function (_a) {\n var stakeholderView = _a.relatedItems[0];\n var model;\n if (stakeholderView) {\n model = { item: stakeholderView };\n }\n return model;\n });\n};\n//# sourceMappingURL=get-stakeholder-model.js.map","/**\n * Determines if the provided Feature Service item is a\n * Fieldworker View\n * @param {IItem} featureServiceItem\n * @returns {boolean}\n */\nexport function isFieldworkerView(featureServiceItem) {\n var hasTypekeyword = function (typeKeyword) {\n return featureServiceItem.typeKeywords.indexOf(typeKeyword) > -1;\n };\n // Survey123 only recently added the \"FieldworkerView\" typekeyword\n var isFieldworker = hasTypekeyword(\"FieldworkerView\");\n // we should support previously created fieldworkers too\n if (!isFieldworker) {\n var hasExpectedTypeKeywords = [\n \"Survey123\",\n \"Feature Service\",\n \"View Service\",\n ].every(hasTypekeyword);\n isFieldworker =\n hasExpectedTypeKeywords && !hasTypekeyword(\"StakeholderView\");\n }\n return isFieldworker;\n}\n//# sourceMappingURL=is-fieldworker-view.js.map","/* Copyright (c) 2020 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { getItem } from \"@esri/arcgis-rest-portal\";\nimport { getInputFeatureServiceModel } from \"./get-input-feature-service-model\";\nimport { getSourceFeatureServiceModelFromFieldworker } from \"./get-source-feature-service-model-from-fieldworker\";\nimport { getStakeholderModel } from \"./get-stakeholder-model\";\nimport { isFieldworkerView } from \"./is-fieldworker-view\";\n/**\n * Builds a dictionary of Survey items for the given Form model\n * @param {string} formId The Form ID of the survey\n * @param {IRequestOptions} requestOptions The request options\n * @returns {Promise<IGetSurveyModelsResponse>}\n */\nexport var getSurveyModels = function (formItemOrId, requestOptions) {\n var fieldworker;\n var stakeholder;\n var getForm = function () {\n return typeof formItemOrId === \"string\"\n ? getItem(formItemOrId, requestOptions)\n : Promise.resolve(formItemOrId);\n };\n return getForm().then(function (form) {\n var promises = [\n // the primary input will be the fieldworker (if it exists), otherwise\n // the source feature service.\n getInputFeatureServiceModel(form.id, requestOptions),\n getStakeholderModel(form.id, requestOptions),\n ];\n return Promise.all(promises)\n .then(function (_a) {\n var featureServiceOrFieldworkerModelResult = _a[0], stakeholderResult = _a[1];\n stakeholder = stakeholderResult;\n if (featureServiceOrFieldworkerModelResult &&\n isFieldworkerView(featureServiceOrFieldworkerModelResult.item)) {\n fieldworker = featureServiceOrFieldworkerModelResult;\n // if the primary input is the fieldworker, fetch\n // the source feature service\n return getSourceFeatureServiceModelFromFieldworker(fieldworker.item.id, requestOptions);\n }\n else {\n return featureServiceOrFieldworkerModelResult;\n }\n })\n .then(function (featureService) {\n return {\n form: { item: form },\n featureService: featureService,\n fieldworker: fieldworker,\n stakeholder: stakeholder,\n };\n });\n });\n};\n//# sourceMappingURL=get-survey-models.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { HubSiteManager } from \".\";\nimport { ArcGISContextManager, } from \"./ArcGISContextManager\";\nimport { HubProjectManager } from \"./projects/HubProjectManager\";\n/**\n * Hub class can be used as an entry point to managing\n * content, teams, sites, projects etc, in an organization's Hub.\n *\n * ```js\n * import {Hub} from '@esri/hub-common';\n * // create a Hub instance, authenticating as a specific user\n * // working against arcgis online\n * const myHub = await Hub.create({authOptions: {username: \"casey\", password: \"jones\"}});\n *\n * myHub.context.currentUser //=> {username: \"casey\", ...} as IUser\n *\n * const pavingProject = await myHub.projects.create({name: \"12th Street Paving\"});\n * pavingProject.summary = \"This is the 2024 planned paving of 12th Street, between 8th and 11th Ave\";\n * await myHub.projects.update(pavingProject);\n * ```\n *\n * This is a convenience class. Hub Managers can be created\n * directly, or the underlying functions can be imported an used\n * as need for scenarios where these class structures introduce\n * unwanted complexity\n */\nvar Hub = /** @class */ (function () {\n /**\n * Private so we can employ a factory function to do\n * async work during creation\n * @param contextManager\n */\n function Hub(contextManager) {\n this._contextManager = contextManager;\n }\n /**\n * Factory function to construct a new Hub instance.\n * @param contextManager\n * @returns\n */\n Hub.create = function (options) {\n return __awaiter(this, void 0, void 0, function () {\n var opts, mgr;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!options.contextManager) return [3 /*break*/, 1];\n return [2 /*return*/, new Hub(options.contextManager)];\n case 1:\n opts = options.managerOptions || {};\n return [4 /*yield*/, ArcGISContextManager.create(opts)];\n case 2:\n mgr = _a.sent();\n return [2 /*return*/, new Hub(mgr)];\n }\n });\n });\n };\n Object.defineProperty(Hub.prototype, \"context\", {\n /**\n * Get the context\n * @readonly\n * @memberof Hub\n */\n get: function () {\n return this._contextManager.context;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Hub.prototype, \"projects\", {\n /**\n * HubProjectManager for the current Hub\n *\n * @readonly\n * @memberof Hub\n */\n get: function () {\n if (!this._projectManager) {\n this._projectManager = HubProjectManager.init(this._contextManager);\n }\n return this._projectManager;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Hub.prototype, \"sites\", {\n /**\n * HubSiteManager for the current Hub\n *\n * @readonly\n * @memberof Hub\n */\n get: function () {\n if (!this._siteManager) {\n this._siteManager = HubSiteManager.init(this._contextManager);\n }\n return this._siteManager;\n },\n enumerable: false,\n configurable: true\n });\n return Hub;\n}());\nexport { Hub };\n//# sourceMappingURL=Hub.js.map","import { __assign } from \"tslib\";\nimport { getPortalBaseFromOrgUrl, fetchOrg } from \"../..\";\nimport { getEnrichmentErrors } from \"../../items/_enrichments\";\nimport OperationStack from \"../../OperationStack\";\nimport { createOperationPipeline } from \"../../utils\";\nvar enrichUserOrg = function (input) {\n var data = input.data, stack = input.stack, requestOptions = input.requestOptions;\n var opId = stack.start(\"enrichUserOrg\");\n var options = __assign(__assign({}, requestOptions), { \n // In order to get the correct response, we must pass options.portal\n // as a base portal url (e.g., www.arcgis.com, qaext.arcgis.com, etc)\n // **not** an org portal (i.e. org.maps.arcgis.com).\n portal: getPortalBaseFromOrgUrl(requestOptions.portal) + \"/sharing/rest\" });\n // TODO: Add Caching\n // Had implemented a simple caching system, but it leads to unstable\n // tests because we can't deterministically clear it\n // if (!orgCache[data.user.orgId]) {\n // orgCache[data.user.orgId] = fetchOrg(data.user.orgId, options);\n // }\n // return (orgCache[data.user.orgId] as Promise<IPortal>)\n return fetchOrg(data.user.orgId, options)\n .then(function (results) {\n stack.finish(opId);\n return {\n data: __assign(__assign({}, data), {\n org: results,\n }),\n stack: stack,\n requestOptions: requestOptions,\n };\n })\n .catch(function (error) { return handleEnrichmentError(error, input, opId); });\n};\n/**\n * Simple cache for user org's. This does not expire\n * but that seems reasonable as Org props rarely change\n */\n// This works find at run-time, but it's a problem in tests\n// where we are validating calls. Will work with Randy to\n// create something that's more robust\n// const orgCache: Record<string, any> = {};\n// add the error to the content.errors,\n// log current stack operation as finished with an error\n// and return output that can be piped into the next operation\nvar handleEnrichmentError = function (error, input, opId) {\n var data = input.data, stack = input.stack, requestOptions = input.requestOptions;\n stack.finish(opId, { error: error });\n return {\n data: __assign(__assign({}, data), { errors: getEnrichmentErrors(error, data.errors) }),\n stack: stack,\n requestOptions: requestOptions,\n };\n};\n/**\n * Available enrichments for Groups\n */\nvar groupEnrichementOperations = {\n org: enrichUserOrg,\n};\n/**\n * Fetch enrichments for Users\n * @param group\n * @param enrichments\n * @param requestOptions\n * @returns\n */\nexport function fetchUserEnrichments(user, enrichments, requestOptions) {\n // create a pipeline of enrichment operations\n var operations = enrichments.reduce(function (ops, enrichment) {\n var operation = groupEnrichementOperations[enrichment];\n // only include the enrichments that we know how to fetch\n operation && ops.push(operation);\n return ops;\n }, []);\n var pipeline = createOperationPipeline(operations);\n // execute pipeline and return the item and enrichments\n return pipeline({\n data: { user: user },\n stack: new OperationStack(),\n requestOptions: requestOptions,\n }).then(function (output) {\n // TODO: send telemetry so we have info on what enrichments are requested and possible errors\n return output.data;\n });\n}\n//# sourceMappingURL=enrichments.js.map","import { __awaiter, __generator, __spreadArrays } from \"tslib\";\nimport { fetchUserEnrichments } from \"./_internal/enrichments\";\nimport { getProp } from \"../objects\";\nimport { getUserThumbnailUrl } from \"../search\";\nimport { parseInclude } from \"../search/_internal/parseInclude\";\nimport { getUserHomeUrl } from \"../urls\";\nimport { unique } from \"../util\";\nimport { mapBy } from \"../utils\";\n/**\n * Enrich a User object\n * @param user\n * @param includes\n * @param requestOptions\n * @returns\n */\nexport function enrichUserSearchResult(user, include, requestOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var result, DEFAULTS, specs, enrichments, enriched, token;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n result = {\n access: user.access,\n id: user.username,\n type: \"User\",\n name: user.fullName,\n owner: user.username,\n summary: user.description,\n createdDate: new Date(user.created),\n createdDateSource: \"user.created\",\n updatedDate: new Date(user.modified),\n updatedDateSource: \"user.modified\",\n family: \"people\",\n links: {\n self: \"not-implemented\",\n siteRelative: \"not-implemented\",\n thumbnail: \"not-implemented\",\n },\n };\n DEFAULTS = [\"org.name AS orgName\"];\n // merge includes\n include = __spreadArrays(DEFAULTS, include).filter(unique);\n specs = include.map(parseInclude);\n enrichments = mapBy(\"enrichment\", specs).filter(unique);\n enriched = {};\n if (!enrichments.length) return [3 /*break*/, 2];\n return [4 /*yield*/, fetchUserEnrichments(user, enrichments, requestOptions)];\n case 1:\n enriched = _a.sent();\n _a.label = 2;\n case 2:\n // map the enriched props onto the result\n specs.forEach(function (spec) {\n result[spec.prop] = getProp(enriched, spec.path);\n });\n token = requestOptions.authentication.token;\n // Handle links\n result.links.thumbnail = getUserThumbnailUrl(requestOptions.portal, user, token);\n result.links.self = getUserHomeUrl(result.id, requestOptions);\n result.links.siteRelative = \"/people/\" + result.id;\n return [2 /*return*/, result];\n }\n });\n });\n}\n//# sourceMappingURL=HubUsers.js.map"],"names":["cloneObject","getWithDefault","OperationError","Level","getPortalUrl","_sendSafeRequest","_generateRequestOptions","_generateBatchRequests","_combineResults","getPortalApiUrl","app","dataset","document","event","feedback","initiative","map","other","site","PublisherSource","UpdateFrequency","isFeatureService","buildOptions","defaultOptions","props","toNumber","require$$0","x2j","xmlToNodeobj","nodeToJson","require$$1","require$$2","require$$3","parse","handleEnrichmentError","OperationStack","FileExtension","ItemType","allCategories","keystr","atob","btoa","groupEnrichementOperations","HubError","updateItemThumbnail","searchPortal"],"mappings":"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AC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAC5C,SAAS,CAAC;IACV,KAAK,CAAC,CAAC;IACP,CAAC;IACD;IACA;IACA;IACA;IACA;IACO,SAAS,QAAQ,CAAC,MAAM,EAAE;IACjC,IAAI,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,GAAG,CAAC,EAAE;IAC5C;IACA;IACA,IAAI,OAAO,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE;IAC3C;IACA,IAAI,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE;IAC3C,QAAQ,MAAM,GAAGA,aAAW,CAAC,MAAM,CAAC,CAAC;IACrC;IACA,QAAQ,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAC1B,KAAK;IACL,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE;IACvC,IAAI,IAAI,GAAG,KAAK,IAAI,I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"}
|