sintfacilis 1.0.0
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/.env.example +2 -0
- package/.eslintrc.js +20 -0
- package/.github/workflows/deploy-docs.yml +27 -0
- package/.github/workflows/pre-release-tests.yml +45 -0
- package/.github/workflows/pull-request-tests.yml +45 -0
- package/.prettierignore +2 -0
- package/.prettierrc +19 -0
- package/.vscode/launch.json +24 -0
- package/.vscode/settings.json +3 -0
- package/codecov.yml +7 -0
- package/demos/.eslintrc.js +13 -0
- package/demos/ago-node-cli/README.md +29 -0
- package/demos/ago-node-cli/ago.js +33 -0
- package/demos/ago-node-cli/index.js +11 -0
- package/demos/ago-node-cli/lib/item-export-command.js +48 -0
- package/demos/ago-node-cli/lib/item-search-command.js +35 -0
- package/demos/ago-node-cli/package-lock.json +430 -0
- package/demos/ago-node-cli/package.json +30 -0
- package/demos/attachments/README.md +5 -0
- package/demos/attachments/index.html +165 -0
- package/demos/attachments/package-lock.json +543 -0
- package/demos/attachments/package.json +18 -0
- package/demos/batch-geocoder-node/NYC_Restaurant_Inspection_Results.csv +100 -0
- package/demos/batch-geocoder-node/README.md +15 -0
- package/demos/batch-geocoder-node/batch-geocode.js +115 -0
- package/demos/batch-geocoder-node/config-template.js +18 -0
- package/demos/batch-geocoder-node/package-lock.json +336 -0
- package/demos/batch-geocoder-node/package.json +37 -0
- package/demos/express/README.md +15 -0
- package/demos/express/config.json.template +3 -0
- package/demos/express/package-lock.json +1008 -0
- package/demos/express/package.json +18 -0
- package/demos/express/server.js +33 -0
- package/demos/feature-service-browser/README.md +6 -0
- package/demos/feature-service-browser/index.html +122 -0
- package/demos/feature-service-browser/package-lock.json +543 -0
- package/demos/feature-service-browser/package.json +18 -0
- package/demos/geocoder-browser/README.md +10 -0
- package/demos/geocoder-browser/config.js.template +1 -0
- package/demos/geocoder-browser/index.html +131 -0
- package/demos/geocoder-browser/package-lock.json +610 -0
- package/demos/geocoder-browser/package.json +19 -0
- package/demos/geocoder-browser/post-sign-in.html +25 -0
- package/demos/jsapi-integration/README.md +25 -0
- package/demos/jsapi-integration/config.js +6 -0
- package/demos/jsapi-integration/index.html +93 -0
- package/demos/jsapi-integration/package-lock.json +247 -0
- package/demos/jsapi-integration/package.json +19 -0
- package/demos/node-cli-item-management/README.md +10 -0
- package/demos/node-cli-item-management/index.js +238 -0
- package/demos/node-cli-item-management/package-lock.json +432 -0
- package/demos/node-cli-item-management/package.json +27 -0
- package/demos/node-cli-item-management/screenshot.png +0 -0
- package/demos/oauth2-browser/README.md +14 -0
- package/demos/oauth2-browser/authenticate.html +30 -0
- package/demos/oauth2-browser/config.js.template +6 -0
- package/demos/oauth2-browser/index.html +211 -0
- package/demos/oauth2-browser/logo.svg +4 -0
- package/demos/oauth2-browser/package-lock.json +474 -0
- package/demos/oauth2-browser/package.json +18 -0
- package/demos/oauth2-browser/style.css +36 -0
- package/demos/oauth2-browser-retry/README.md +25 -0
- package/demos/oauth2-browser-retry/authenticate.html +22 -0
- package/demos/oauth2-browser-retry/index.html +116 -0
- package/demos/oauth2-browser-retry/logo.svg +4 -0
- package/demos/stream-response-to-file/README.md +7 -0
- package/demos/stream-response-to-file/index.js +36 -0
- package/demos/stream-response-to-file/output/.gitkeep +0 -0
- package/demos/stream-response-to-file/package-lock.json +227 -0
- package/demos/stream-response-to-file/package.json +33 -0
- package/demos/tree-shaking-rollup/.babelrc +3 -0
- package/demos/tree-shaking-rollup/README.md +9 -0
- package/demos/tree-shaking-rollup/index.html +11 -0
- package/demos/tree-shaking-rollup/package-lock.json +5646 -0
- package/demos/tree-shaking-rollup/package.json +25 -0
- package/demos/tree-shaking-rollup/rollup.config.js +17 -0
- package/demos/tree-shaking-rollup/src/index.js +8 -0
- package/demos/tree-shaking-webpack/README.md +8 -0
- package/demos/tree-shaking-webpack/index.html +11 -0
- package/demos/tree-shaking-webpack/package-lock.json +11455 -0
- package/demos/tree-shaking-webpack/package.json +24 -0
- package/demos/tree-shaking-webpack/src/index.js +10 -0
- package/demos/tree-shaking-webpack/webpack.config.js +27 -0
- package/demos/vue/.env.example +11 -0
- package/demos/vue/.eslintrc.js +17 -0
- package/demos/vue/.postcssrc.js +5 -0
- package/demos/vue/README.md +17 -0
- package/demos/vue/babel.config.js +3 -0
- package/demos/vue/package-lock.json +28044 -0
- package/demos/vue/package.json +33 -0
- package/demos/vue/public/favicon.ico +0 -0
- package/demos/vue/public/index.html +24 -0
- package/demos/vue/src/assets/logo.svg +29 -0
- package/demos/vue/src/components/App.vue +305 -0
- package/demos/vue/src/components/Authenticate.vue +65 -0
- package/demos/vue/src/components/Loader.vue +230 -0
- package/demos/vue/src/main.js +92 -0
- package/demos/webmap-checker-sapper/.env.example +5 -0
- package/demos/webmap-checker-sapper/README.md +123 -0
- package/demos/webmap-checker-sapper/appveyor.yml +18 -0
- package/demos/webmap-checker-sapper/cypress/fixtures/example.json +5 -0
- package/demos/webmap-checker-sapper/cypress/integration/spec.js +19 -0
- package/demos/webmap-checker-sapper/cypress/plugins/index.js +17 -0
- package/demos/webmap-checker-sapper/cypress/support/commands.js +25 -0
- package/demos/webmap-checker-sapper/cypress/support/index.js +20 -0
- package/demos/webmap-checker-sapper/cypress.json +4 -0
- package/demos/webmap-checker-sapper/package-lock.json +9622 -0
- package/demos/webmap-checker-sapper/package.json +50 -0
- package/demos/webmap-checker-sapper/rollup.config.js +87 -0
- package/demos/webmap-checker-sapper/src/client.js +20 -0
- package/demos/webmap-checker-sapper/src/components/LayerStatus.html +108 -0
- package/demos/webmap-checker-sapper/src/components/Nav.html +21 -0
- package/demos/webmap-checker-sapper/src/components/WebMap.html +62 -0
- package/demos/webmap-checker-sapper/src/routes/_error.html +41 -0
- package/demos/webmap-checker-sapper/src/routes/_layout.html +21 -0
- package/demos/webmap-checker-sapper/src/routes/auth/authorize.js +18 -0
- package/demos/webmap-checker-sapper/src/routes/auth/exchange-token.js +20 -0
- package/demos/webmap-checker-sapper/src/routes/auth/post-sign-in.js +24 -0
- package/demos/webmap-checker-sapper/src/routes/auth/sign-out.js +10 -0
- package/demos/webmap-checker-sapper/src/routes/index.html +20 -0
- package/demos/webmap-checker-sapper/src/routes/webmaps/[webmapId].html +83 -0
- package/demos/webmap-checker-sapper/src/routes/webmaps/index.html +59 -0
- package/demos/webmap-checker-sapper/src/server.js +101 -0
- package/demos/webmap-checker-sapper/src/service-worker.js +82 -0
- package/demos/webmap-checker-sapper/src/template.html +33 -0
- package/demos/webmap-checker-sapper/src/userInfoMiddleware.js +21 -0
- package/demos/webmap-checker-sapper/src/utils.js +33 -0
- package/demos/webmap-checker-sapper/static/favicon.png +0 -0
- package/demos/webmap-checker-sapper/static/global.css +36 -0
- package/demos/webmap-checker-sapper/static/manifest.json +20 -0
- package/demos/webmap-checker-sapper/static/svelte-logo-192.png +0 -0
- package/demos/webmap-checker-sapper/static/svelte-logo-512.png +0 -0
- package/docs/.eslintrc.js +12 -0
- package/docs/FAQ.md +48 -0
- package/docs/HISTORY.md +62 -0
- package/docs/acetate.config.js +262 -0
- package/docs/build-typedoc.js +434 -0
- package/docs/generate-srihashes.js +53 -0
- package/docs/src/_layout.html +86 -0
- package/docs/src/api/_declaration.html +600 -0
- package/docs/src/api/_layout.html +204 -0
- package/docs/src/api/_package.html +38 -0
- package/docs/src/api/index.html +16 -0
- package/docs/src/guides/_layout.html +24 -0
- package/docs/src/guides/amd-requirejs-dojo.md +40 -0
- package/docs/src/guides/browser-authentication.md +39 -0
- package/docs/src/guides/bundlers.md +52 -0
- package/docs/src/guides/cli-authentication.md +9 -0
- package/docs/src/guides/client-server-authentication.md +9 -0
- package/docs/src/guides/embedded-apps.md +106 -0
- package/docs/src/guides/from-a-cdn.md +38 -0
- package/docs/src/guides/index.md +59 -0
- package/docs/src/guides/node.md +104 -0
- package/docs/src/guides/package-overview.md +111 -0
- package/docs/src/guides/server-authentication.md +9 -0
- package/docs/src/guides/whats-new-v2-0.md +305 -0
- package/docs/src/img/icons.png +0 -0
- package/docs/src/img/icons@2x.png +0 -0
- package/docs/src/img/oauth-browser.png +0 -0
- package/docs/src/index.html +12 -0
- package/docs/src/js/api-search.js +112 -0
- package/docs/src/js/nav-toggle.js +41 -0
- package/docs/src/sass/_highlight.scss +96 -0
- package/docs/src/sass/_icons.scss +157 -0
- package/docs/src/sass/style.scss +242 -0
- package/docs/src/srihashes.json +12 -0
- package/jasmine.json +7 -0
- package/jasmine.live.json +7 -0
- package/karma.conf.js +107 -0
- package/lerna.json +8 -0
- package/notes/README.md +68 -0
- package/package.json +141 -0
- package/packages/arcgis-rest-auth/README.md +71 -0
- package/packages/arcgis-rest-auth/package.json +69 -0
- package/packages/arcgis-rest-auth/post-message-auth-spec.md +70 -0
- package/packages/arcgis-rest-auth/src/ApiKey.ts +41 -0
- package/packages/arcgis-rest-auth/src/ApplicationSession.ts +122 -0
- package/packages/arcgis-rest-auth/src/UserSession.ts +1355 -0
- package/packages/arcgis-rest-auth/src/app-tokens.ts +131 -0
- package/packages/arcgis-rest-auth/src/authenticated-request-options.ts +24 -0
- package/packages/arcgis-rest-auth/src/federation-utils.ts +85 -0
- package/packages/arcgis-rest-auth/src/fetch-token.ts +50 -0
- package/packages/arcgis-rest-auth/src/generate-token.ts +35 -0
- package/packages/arcgis-rest-auth/src/index.ts +13 -0
- package/packages/arcgis-rest-auth/src/validate-app-access.ts +68 -0
- package/packages/arcgis-rest-auth/test/ApiKey.test.ts +35 -0
- package/packages/arcgis-rest-auth/test/ApplicationSession.test.ts +124 -0
- package/packages/arcgis-rest-auth/test/UserSession.test.ts +2377 -0
- package/packages/arcgis-rest-auth/test/app-tokens.test.ts +95 -0
- package/packages/arcgis-rest-auth/test/federation-utils.test.ts +323 -0
- package/packages/arcgis-rest-auth/test/fetchToken.test.ts +112 -0
- package/packages/arcgis-rest-auth/test/generateToken.test.ts +102 -0
- package/packages/arcgis-rest-auth/test/utils.ts +14 -0
- package/packages/arcgis-rest-auth/test/validate-app-access.test.ts +46 -0
- package/packages/arcgis-rest-auth/tsconfig.json +6 -0
- package/packages/arcgis-rest-demographics/README.md +75 -0
- package/packages/arcgis-rest-demographics/package.json +69 -0
- package/packages/arcgis-rest-demographics/src/getAvailableCountries.ts +113 -0
- package/packages/arcgis-rest-demographics/src/getAvailableDataCollections.ts +166 -0
- package/packages/arcgis-rest-demographics/src/getAvailableGeographyLevels.ts +88 -0
- package/packages/arcgis-rest-demographics/src/getGeography.ts +152 -0
- package/packages/arcgis-rest-demographics/src/helpers.ts +28 -0
- package/packages/arcgis-rest-demographics/src/index.ts +8 -0
- package/packages/arcgis-rest-demographics/src/queryDemographicData.ts +106 -0
- package/packages/arcgis-rest-demographics/test/getAvailableCountries.test.ts +92 -0
- package/packages/arcgis-rest-demographics/test/getAvailableDataCollections.test.ts +115 -0
- package/packages/arcgis-rest-demographics/test/getAvailableGeographyLevels.test.ts +72 -0
- package/packages/arcgis-rest-demographics/test/getGeography.test.ts +141 -0
- package/packages/arcgis-rest-demographics/test/mocks/responses.ts +4 -0
- package/packages/arcgis-rest-demographics/test/queryDemographicData.test.live.ts +42 -0
- package/packages/arcgis-rest-demographics/test/queryDemographicData.test.ts +113 -0
- package/packages/arcgis-rest-demographics/tsconfig.json +6 -0
- package/packages/arcgis-rest-feature-layer/README.md +77 -0
- package/packages/arcgis-rest-feature-layer/package.json +64 -0
- package/packages/arcgis-rest-feature-layer/src/add.ts +56 -0
- package/packages/arcgis-rest-feature-layer/src/addAttachment.ts +53 -0
- package/packages/arcgis-rest-feature-layer/src/applyEdits.ts +95 -0
- package/packages/arcgis-rest-feature-layer/src/decodeValues.ts +122 -0
- package/packages/arcgis-rest-feature-layer/src/delete.ts +61 -0
- package/packages/arcgis-rest-feature-layer/src/deleteAttachments.ts +52 -0
- package/packages/arcgis-rest-feature-layer/src/getAllLayersAndTables.ts +30 -0
- package/packages/arcgis-rest-feature-layer/src/getAttachments.ts +55 -0
- package/packages/arcgis-rest-feature-layer/src/getLayer.ts +24 -0
- package/packages/arcgis-rest-feature-layer/src/getService.ts +26 -0
- package/packages/arcgis-rest-feature-layer/src/helpers.ts +97 -0
- package/packages/arcgis-rest-feature-layer/src/index.ts +32 -0
- package/packages/arcgis-rest-feature-layer/src/query.ts +204 -0
- package/packages/arcgis-rest-feature-layer/src/queryRelated.ts +89 -0
- package/packages/arcgis-rest-feature-layer/src/update.ts +60 -0
- package/packages/arcgis-rest-feature-layer/src/updateAttachment.ts +59 -0
- package/packages/arcgis-rest-feature-layer/test/attachments.test.ts +200 -0
- package/packages/arcgis-rest-feature-layer/test/crud.test.ts +197 -0
- package/packages/arcgis-rest-feature-layer/test/decodeValues.test.ts +67 -0
- package/packages/arcgis-rest-feature-layer/test/getAllLayersAndTables.test.ts +28 -0
- package/packages/arcgis-rest-feature-layer/test/getLayer.test.ts +31 -0
- package/packages/arcgis-rest-feature-layer/test/getService.test.ts +31 -0
- package/packages/arcgis-rest-feature-layer/test/helpers.test.ts +25 -0
- package/packages/arcgis-rest-feature-layer/test/mocks/allLayersAndTablesResponse.ts +906 -0
- package/packages/arcgis-rest-feature-layer/test/mocks/cvdQueryResponse.ts +225 -0
- package/packages/arcgis-rest-feature-layer/test/mocks/feature.ts +302 -0
- package/packages/arcgis-rest-feature-layer/test/mocks/fields.ts +779 -0
- package/packages/arcgis-rest-feature-layer/test/mocks/foo.txt +1 -0
- package/packages/arcgis-rest-feature-layer/test/mocks/service.ts +398 -0
- package/packages/arcgis-rest-feature-layer/test/query.test.ts +167 -0
- package/packages/arcgis-rest-feature-layer/tsconfig.json +6 -0
- package/packages/arcgis-rest-geocoding/README.md +86 -0
- package/packages/arcgis-rest-geocoding/package.json +66 -0
- package/packages/arcgis-rest-geocoding/src/bulk.ts +104 -0
- package/packages/arcgis-rest-geocoding/src/geocode.ts +166 -0
- package/packages/arcgis-rest-geocoding/src/helpers.ts +56 -0
- package/packages/arcgis-rest-geocoding/src/index.ts +15 -0
- package/packages/arcgis-rest-geocoding/src/reverse.ts +84 -0
- package/packages/arcgis-rest-geocoding/src/suggest.ts +45 -0
- package/packages/arcgis-rest-geocoding/test/bulk.test.ts +194 -0
- package/packages/arcgis-rest-geocoding/test/geocode.test.ts +253 -0
- package/packages/arcgis-rest-geocoding/test/helpers.test.ts +85 -0
- package/packages/arcgis-rest-geocoding/test/mocks/responses.ts +591 -0
- package/packages/arcgis-rest-geocoding/test/reverse.test.ts +126 -0
- package/packages/arcgis-rest-geocoding/test/suggest.test.ts +53 -0
- package/packages/arcgis-rest-geocoding/tsconfig.json +6 -0
- package/packages/arcgis-rest-portal/README.md +73 -0
- package/packages/arcgis-rest-portal/package.json +64 -0
- package/packages/arcgis-rest-portal/src/groups/add-users.ts +140 -0
- package/packages/arcgis-rest-portal/src/groups/create.ts +43 -0
- package/packages/arcgis-rest-portal/src/groups/get.ts +184 -0
- package/packages/arcgis-rest-portal/src/groups/helpers.ts +14 -0
- package/packages/arcgis-rest-portal/src/groups/invite-users.ts +127 -0
- package/packages/arcgis-rest-portal/src/groups/join.ts +57 -0
- package/packages/arcgis-rest-portal/src/groups/notification.ts +77 -0
- package/packages/arcgis-rest-portal/src/groups/protect.ts +56 -0
- package/packages/arcgis-rest-portal/src/groups/remove-users.ts +76 -0
- package/packages/arcgis-rest-portal/src/groups/remove.ts +32 -0
- package/packages/arcgis-rest-portal/src/groups/search.ts +47 -0
- package/packages/arcgis-rest-portal/src/groups/update-user-membership.ts +63 -0
- package/packages/arcgis-rest-portal/src/groups/update.ts +39 -0
- package/packages/arcgis-rest-portal/src/index.ts +69 -0
- package/packages/arcgis-rest-portal/src/items/add.ts +138 -0
- package/packages/arcgis-rest-portal/src/items/content.ts +67 -0
- package/packages/arcgis-rest-portal/src/items/create.ts +150 -0
- package/packages/arcgis-rest-portal/src/items/export.ts +80 -0
- package/packages/arcgis-rest-portal/src/items/get.ts +437 -0
- package/packages/arcgis-rest-portal/src/items/helpers.ts +292 -0
- package/packages/arcgis-rest-portal/src/items/protect.ts +41 -0
- package/packages/arcgis-rest-portal/src/items/reassign.ts +61 -0
- package/packages/arcgis-rest-portal/src/items/remove.ts +141 -0
- package/packages/arcgis-rest-portal/src/items/search.ts +25 -0
- package/packages/arcgis-rest-portal/src/items/update.ts +185 -0
- package/packages/arcgis-rest-portal/src/items/upload.ts +125 -0
- package/packages/arcgis-rest-portal/src/orgs/notification.ts +131 -0
- package/packages/arcgis-rest-portal/src/services/get-unique-service-name.ts +35 -0
- package/packages/arcgis-rest-portal/src/services/is-service-name-available.ts +30 -0
- package/packages/arcgis-rest-portal/src/sharing/access.ts +84 -0
- package/packages/arcgis-rest-portal/src/sharing/helpers.ts +81 -0
- package/packages/arcgis-rest-portal/src/sharing/is-item-shared-with-group.ts +42 -0
- package/packages/arcgis-rest-portal/src/sharing/share-item-with-group.ts +336 -0
- package/packages/arcgis-rest-portal/src/sharing/unshare-item-with-group.ts +105 -0
- package/packages/arcgis-rest-portal/src/users/get-user-tags.ts +52 -0
- package/packages/arcgis-rest-portal/src/users/get-user-url.ts +18 -0
- package/packages/arcgis-rest-portal/src/users/get-user.ts +58 -0
- package/packages/arcgis-rest-portal/src/users/invitation.ts +156 -0
- package/packages/arcgis-rest-portal/src/users/notification.ts +68 -0
- package/packages/arcgis-rest-portal/src/users/search-users.ts +37 -0
- package/packages/arcgis-rest-portal/src/users/update.ts +66 -0
- package/packages/arcgis-rest-portal/src/util/SearchQueryBuilder.ts +391 -0
- package/packages/arcgis-rest-portal/src/util/array.ts +16 -0
- package/packages/arcgis-rest-portal/src/util/generic-search.ts +99 -0
- package/packages/arcgis-rest-portal/src/util/get-portal-settings.ts +45 -0
- package/packages/arcgis-rest-portal/src/util/get-portal-url.ts +28 -0
- package/packages/arcgis-rest-portal/src/util/get-portal.ts +53 -0
- package/packages/arcgis-rest-portal/src/util/get-subscription-info.ts +43 -0
- package/packages/arcgis-rest-portal/src/util/scrub-control-chars.ts +13 -0
- package/packages/arcgis-rest-portal/src/util/search.ts +42 -0
- package/packages/arcgis-rest-portal/test/groups/add-users.test.ts +239 -0
- package/packages/arcgis-rest-portal/test/groups/crud.test.ts +180 -0
- package/packages/arcgis-rest-portal/test/groups/get.test.ts +176 -0
- package/packages/arcgis-rest-portal/test/groups/invite-users.test.ts +146 -0
- package/packages/arcgis-rest-portal/test/groups/join.test.ts +72 -0
- package/packages/arcgis-rest-portal/test/groups/notification.test.ts +112 -0
- package/packages/arcgis-rest-portal/test/groups/protect.test.ts +72 -0
- package/packages/arcgis-rest-portal/test/groups/remove-users.test.ts +140 -0
- package/packages/arcgis-rest-portal/test/groups/search.test.ts +151 -0
- package/packages/arcgis-rest-portal/test/groups/update-user-membership.test.ts +62 -0
- package/packages/arcgis-rest-portal/test/items/add.test.ts +323 -0
- package/packages/arcgis-rest-portal/test/items/content.test.ts +156 -0
- package/packages/arcgis-rest-portal/test/items/create.test.ts +400 -0
- package/packages/arcgis-rest-portal/test/items/export.test.ts +122 -0
- package/packages/arcgis-rest-portal/test/items/get.test.ts +583 -0
- package/packages/arcgis-rest-portal/test/items/helpers.test.ts +60 -0
- package/packages/arcgis-rest-portal/test/items/protect.test.ts +122 -0
- package/packages/arcgis-rest-portal/test/items/reassign.test.ts +131 -0
- package/packages/arcgis-rest-portal/test/items/remove.test.ts +261 -0
- package/packages/arcgis-rest-portal/test/items/search.test.ts +275 -0
- package/packages/arcgis-rest-portal/test/items/update.test.ts +556 -0
- package/packages/arcgis-rest-portal/test/items/upload.test.ts +282 -0
- package/packages/arcgis-rest-portal/test/mocks/groups/responses.ts +208 -0
- package/packages/arcgis-rest-portal/test/mocks/items/foo.zip +0 -0
- package/packages/arcgis-rest-portal/test/mocks/items/item.ts +526 -0
- package/packages/arcgis-rest-portal/test/mocks/items/resources.ts +38 -0
- package/packages/arcgis-rest-portal/test/mocks/items/search.ts +121 -0
- package/packages/arcgis-rest-portal/test/mocks/portal/response.ts +126 -0
- package/packages/arcgis-rest-portal/test/mocks/portal/settings-response.ts +56 -0
- package/packages/arcgis-rest-portal/test/mocks/sharing/sharing.ts +18 -0
- package/packages/arcgis-rest-portal/test/mocks/users/invitation.ts +70 -0
- package/packages/arcgis-rest-portal/test/mocks/users/notification.ts +34 -0
- package/packages/arcgis-rest-portal/test/mocks/users/user-search.ts +388 -0
- package/packages/arcgis-rest-portal/test/mocks/users/user-tags.ts +5 -0
- package/packages/arcgis-rest-portal/test/mocks/users/user.ts +174 -0
- package/packages/arcgis-rest-portal/test/orgs/notification.test.ts +144 -0
- package/packages/arcgis-rest-portal/test/services/get-unique-service-name.test.ts +59 -0
- package/packages/arcgis-rest-portal/test/services/is-service-name-available.test.ts +46 -0
- package/packages/arcgis-rest-portal/test/sharing/access.test.ts +162 -0
- package/packages/arcgis-rest-portal/test/sharing/helpers.test.ts +55 -0
- package/packages/arcgis-rest-portal/test/sharing/share-item-with-group.test.ts +1328 -0
- package/packages/arcgis-rest-portal/test/sharing/unshare-item-with-group.test.ts +288 -0
- package/packages/arcgis-rest-portal/test/users/get-user-tags.test.ts +71 -0
- package/packages/arcgis-rest-portal/test/users/get-user-url.test.ts +40 -0
- package/packages/arcgis-rest-portal/test/users/get-user.test.ts +90 -0
- package/packages/arcgis-rest-portal/test/users/invitation.test.ts +127 -0
- package/packages/arcgis-rest-portal/test/users/notification.test.ts +77 -0
- package/packages/arcgis-rest-portal/test/users/search.test.ts +42 -0
- package/packages/arcgis-rest-portal/test/users/update.test.ts +151 -0
- package/packages/arcgis-rest-portal/test/util/SearchQueryBuilder.test.ts +340 -0
- package/packages/arcgis-rest-portal/test/util/array.test.ts +30 -0
- package/packages/arcgis-rest-portal/test/util/get-portal-settings.test.ts +68 -0
- package/packages/arcgis-rest-portal/test/util/get-portal-url.test.ts +37 -0
- package/packages/arcgis-rest-portal/test/util/portal.test.ts +148 -0
- package/packages/arcgis-rest-portal/test/util/scrub-control-chars.test.ts +22 -0
- package/packages/arcgis-rest-portal/tsconfig.json +6 -0
- package/packages/arcgis-rest-request/README.md +72 -0
- package/packages/arcgis-rest-request/package.json +60 -0
- package/packages/arcgis-rest-request/src/index.ts +25 -0
- package/packages/arcgis-rest-request/src/request.ts +433 -0
- package/packages/arcgis-rest-request/src/utils/ArcGISRequestError.ts +76 -0
- package/packages/arcgis-rest-request/src/utils/ErrorTypes.ts +29 -0
- package/packages/arcgis-rest-request/src/utils/GrantTypes.ts +5 -0
- package/packages/arcgis-rest-request/src/utils/HTTPMethods.ts +6 -0
- package/packages/arcgis-rest-request/src/utils/IAuthenticationManager.ts +22 -0
- package/packages/arcgis-rest-request/src/utils/IFetchTokenParams.ts +11 -0
- package/packages/arcgis-rest-request/src/utils/IGenerateTokenParams.ts +9 -0
- package/packages/arcgis-rest-request/src/utils/IParamBuilder.ts +3 -0
- package/packages/arcgis-rest-request/src/utils/IParams.ts +6 -0
- package/packages/arcgis-rest-request/src/utils/IParamsBuilder.ts +5 -0
- package/packages/arcgis-rest-request/src/utils/IRequestOptions.ts +54 -0
- package/packages/arcgis-rest-request/src/utils/ITokenRequestOptions.ts +9 -0
- package/packages/arcgis-rest-request/src/utils/ResponseFormats.ts +10 -0
- package/packages/arcgis-rest-request/src/utils/append-custom-params.ts +49 -0
- package/packages/arcgis-rest-request/src/utils/clean-url.ts +20 -0
- package/packages/arcgis-rest-request/src/utils/decode-query-string.ts +27 -0
- package/packages/arcgis-rest-request/src/utils/encode-form-data.ts +38 -0
- package/packages/arcgis-rest-request/src/utils/encode-query-string.ts +35 -0
- package/packages/arcgis-rest-request/src/utils/process-params.ts +109 -0
- package/packages/arcgis-rest-request/src/utils/retryAuthError.ts +10 -0
- package/packages/arcgis-rest-request/src/utils/warn.ts +11 -0
- package/packages/arcgis-rest-request/src/utils/with-options.ts +48 -0
- package/packages/arcgis-rest-request/test/mocks/errors.ts +76 -0
- package/packages/arcgis-rest-request/test/mocks/geojson-feature-collection.ts +13 -0
- package/packages/arcgis-rest-request/test/mocks/param-builder.ts +7 -0
- package/packages/arcgis-rest-request/test/mocks/sharing-rest-info.ts +41 -0
- package/packages/arcgis-rest-request/test/mocks/webmap.ts +41 -0
- package/packages/arcgis-rest-request/test/request.test.ts +621 -0
- package/packages/arcgis-rest-request/test/utils/ArcGISAuthError.test.ts +191 -0
- package/packages/arcgis-rest-request/test/utils/ArcGISRequestError.test.ts +51 -0
- package/packages/arcgis-rest-request/test/utils/check-for-errors.test.ts +111 -0
- package/packages/arcgis-rest-request/test/utils/clean-url.test.ts +50 -0
- package/packages/arcgis-rest-request/test/utils/encode-form-data.test.ts +133 -0
- package/packages/arcgis-rest-request/test/utils/encode-query-string.test.ts +18 -0
- package/packages/arcgis-rest-request/test/utils/process-params.test.ts +205 -0
- package/packages/arcgis-rest-request/test/utils/with-options.test.ts +133 -0
- package/packages/arcgis-rest-request/tsconfig.json +4 -0
- package/packages/arcgis-rest-routing/README.md +75 -0
- package/packages/arcgis-rest-routing/package.json +65 -0
- package/packages/arcgis-rest-routing/src/closestFacility.ts +225 -0
- package/packages/arcgis-rest-routing/src/helpers.ts +104 -0
- package/packages/arcgis-rest-routing/src/index.ts +14 -0
- package/packages/arcgis-rest-routing/src/originDestinationMatrix.ts +223 -0
- package/packages/arcgis-rest-routing/src/serviceArea.ts +173 -0
- package/packages/arcgis-rest-routing/src/solveRoute.ts +180 -0
- package/packages/arcgis-rest-routing/test/closestFacility.test.ts +683 -0
- package/packages/arcgis-rest-routing/test/mocks/inputs.ts +132 -0
- package/packages/arcgis-rest-routing/test/mocks/responses.ts +13316 -0
- package/packages/arcgis-rest-routing/test/originDestinationMatrix.test.ts +795 -0
- package/packages/arcgis-rest-routing/test/serviceArea.test.ts +601 -0
- package/packages/arcgis-rest-routing/test/solveRoute.test.ts +677 -0
- package/packages/arcgis-rest-routing/tsconfig.json +6 -0
- package/packages/arcgis-rest-service-admin/README.md +73 -0
- package/packages/arcgis-rest-service-admin/package.json +65 -0
- package/packages/arcgis-rest-service-admin/src/addTo.ts +70 -0
- package/packages/arcgis-rest-service-admin/src/create.ts +189 -0
- package/packages/arcgis-rest-service-admin/src/get-service-admin-info.ts +34 -0
- package/packages/arcgis-rest-service-admin/src/get-view-sources.ts +20 -0
- package/packages/arcgis-rest-service-admin/src/index.ts +14 -0
- package/packages/arcgis-rest-service-admin/src/update.ts +50 -0
- package/packages/arcgis-rest-service-admin/test/addTo.test.ts +350 -0
- package/packages/arcgis-rest-service-admin/test/create.test.ts +294 -0
- package/packages/arcgis-rest-service-admin/test/get-service-admin-info.test.ts +37 -0
- package/packages/arcgis-rest-service-admin/test/get-view-sources.test.ts +40 -0
- package/packages/arcgis-rest-service-admin/test/mocks/layerDefinition.ts +79 -0
- package/packages/arcgis-rest-service-admin/test/mocks/service.ts +81 -0
- package/packages/arcgis-rest-service-admin/test/update.test.ts +115 -0
- package/packages/arcgis-rest-service-admin/tsconfig.json +5 -0
- package/packages/arcgis-rest-types/README.md +66 -0
- package/packages/arcgis-rest-types/package.json +54 -0
- package/packages/arcgis-rest-types/src/feature.ts +42 -0
- package/packages/arcgis-rest-types/src/geometry.ts +272 -0
- package/packages/arcgis-rest-types/src/group.ts +72 -0
- package/packages/arcgis-rest-types/src/index.ts +9 -0
- package/packages/arcgis-rest-types/src/item.ts +81 -0
- package/packages/arcgis-rest-types/src/service.ts +156 -0
- package/packages/arcgis-rest-types/src/statisticDefinition.ts +33 -0
- package/packages/arcgis-rest-types/src/symbol.ts +170 -0
- package/packages/arcgis-rest-types/src/user.ts +49 -0
- package/packages/arcgis-rest-types/src/webmap.ts +1405 -0
- package/packages/arcgis-rest-types/tsconfig.json +10 -0
- package/support/changelog.js +393 -0
- package/support/deploy-doc-site.js +16 -0
- package/support/dev.sh +6 -0
- package/support/publish.sh +47 -0
- package/support/test-helpers.js +9 -0
- package/tsconfig.json +63 -0
- package/umd-base-profile.js +81 -0
- package/umd-production-profile.js +13 -0
@@ -0,0 +1,437 @@
|
|
1
|
+
/* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
|
2
|
+
* Apache-2.0 */
|
3
|
+
|
4
|
+
import {
|
5
|
+
request,
|
6
|
+
IRequestOptions,
|
7
|
+
appendCustomParams
|
8
|
+
} from "@esri/arcgis-rest-request";
|
9
|
+
import { IItem, IGroup } from "@esri/arcgis-rest-types";
|
10
|
+
|
11
|
+
import { getPortalUrl } from "../util/get-portal-url";
|
12
|
+
import { scrubControlChars } from '../util/scrub-control-chars';
|
13
|
+
import {
|
14
|
+
IItemDataOptions,
|
15
|
+
IItemRelationshipOptions,
|
16
|
+
IUserItemOptions,
|
17
|
+
determineOwner,
|
18
|
+
FetchReadMethodName
|
19
|
+
} from "./helpers";
|
20
|
+
|
21
|
+
/**
|
22
|
+
* ```
|
23
|
+
* import { getItem } from "@esri/arcgis-rest-portal";
|
24
|
+
* //
|
25
|
+
* getItem("ae7")
|
26
|
+
* .then(response);
|
27
|
+
* // or
|
28
|
+
* getItem("ae7", { authentication })
|
29
|
+
* .then(response)
|
30
|
+
* ```
|
31
|
+
* Get an item by id. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/item.htm) for more information.
|
32
|
+
*
|
33
|
+
* @param id - Item Id
|
34
|
+
* @param requestOptions - Options for the request
|
35
|
+
* @returns A Promise that will resolve with the data from the response.
|
36
|
+
*/
|
37
|
+
export function getItem(
|
38
|
+
id: string,
|
39
|
+
requestOptions?: IRequestOptions
|
40
|
+
): Promise<IItem> {
|
41
|
+
const url = getItemBaseUrl(id, requestOptions);
|
42
|
+
|
43
|
+
// default to a GET request
|
44
|
+
const options: IRequestOptions = {
|
45
|
+
...{ httpMethod: "GET" },
|
46
|
+
...requestOptions
|
47
|
+
};
|
48
|
+
return request(url, options);
|
49
|
+
}
|
50
|
+
|
51
|
+
/**
|
52
|
+
* Get the fully qualified base URL to the REST end point for an item.
|
53
|
+
* @param id Item Id
|
54
|
+
* @param portalUrlOrRequestOptions a portal URL or request options
|
55
|
+
* @returns URL to the item's REST end point, defaults to `https://www.arcgis.com/sharing/rest/content/items/{id}`
|
56
|
+
*/
|
57
|
+
export const getItemBaseUrl = (
|
58
|
+
id: string,
|
59
|
+
portalUrlOrRequestOptions?: string | IRequestOptions
|
60
|
+
) => {
|
61
|
+
const portalUrl =
|
62
|
+
typeof portalUrlOrRequestOptions === "string"
|
63
|
+
? portalUrlOrRequestOptions
|
64
|
+
: getPortalUrl(portalUrlOrRequestOptions);
|
65
|
+
return `${portalUrl}/content/items/${id}`;
|
66
|
+
};
|
67
|
+
|
68
|
+
/**
|
69
|
+
* ```
|
70
|
+
* import { getItemData } from "@esri/arcgis-rest-portal";
|
71
|
+
* //
|
72
|
+
* getItemData("ae7")
|
73
|
+
* .then(response)
|
74
|
+
* // or
|
75
|
+
* getItemData("ae7", { authentication })
|
76
|
+
* .then(response)
|
77
|
+
* ```
|
78
|
+
* 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.
|
79
|
+
* @param id - Item Id
|
80
|
+
* @param requestOptions - Options for the request
|
81
|
+
* @returns A Promise that will resolve with the json data for the item.
|
82
|
+
*/
|
83
|
+
export function getItemData(
|
84
|
+
id: string,
|
85
|
+
requestOptions?: IItemDataOptions
|
86
|
+
): Promise<any> {
|
87
|
+
const url = `${getItemBaseUrl(id, requestOptions)}/data`;
|
88
|
+
// default to a GET request
|
89
|
+
const options: IItemDataOptions = {
|
90
|
+
...{ httpMethod: "GET", params: {} },
|
91
|
+
...requestOptions
|
92
|
+
};
|
93
|
+
|
94
|
+
if (options.file) {
|
95
|
+
options.params.f = null;
|
96
|
+
}
|
97
|
+
|
98
|
+
return request(url, options).catch(err => {
|
99
|
+
/* if the item doesn't include data, the response will be empty
|
100
|
+
and the internal call to response.json() will fail */
|
101
|
+
const emptyResponseErr = RegExp(
|
102
|
+
/The string did not match the expected pattern|(Unexpected end of (JSON input|data at line 1 column 1))/i
|
103
|
+
);
|
104
|
+
/* istanbul ignore else */
|
105
|
+
if (emptyResponseErr.test(err.message)) {
|
106
|
+
return;
|
107
|
+
} else throw err;
|
108
|
+
});
|
109
|
+
}
|
110
|
+
|
111
|
+
export interface IGetRelatedItemsResponse {
|
112
|
+
total: number;
|
113
|
+
relatedItems: IItem[];
|
114
|
+
}
|
115
|
+
|
116
|
+
/**
|
117
|
+
* ```
|
118
|
+
* import { getRelatedItems } from "@esri/arcgis-rest-portal";
|
119
|
+
* //
|
120
|
+
* getRelatedItems({
|
121
|
+
* id: "ae7",
|
122
|
+
* relationshipType: "Service2Layer" // or several ["Service2Layer", "Map2Area"]
|
123
|
+
* })
|
124
|
+
* .then(response)
|
125
|
+
* ```
|
126
|
+
* Get the related items. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/related-items.htm) for more information.
|
127
|
+
*
|
128
|
+
* @param requestOptions - Options for the request
|
129
|
+
* @returns A Promise to get some item resources.
|
130
|
+
*/
|
131
|
+
export function getRelatedItems(
|
132
|
+
requestOptions: IItemRelationshipOptions
|
133
|
+
): Promise<IGetRelatedItemsResponse> {
|
134
|
+
const url = `${getItemBaseUrl(
|
135
|
+
requestOptions.id,
|
136
|
+
requestOptions
|
137
|
+
)}/relatedItems`;
|
138
|
+
|
139
|
+
const options: IItemRelationshipOptions = {
|
140
|
+
httpMethod: "GET",
|
141
|
+
params: {
|
142
|
+
direction: requestOptions.direction
|
143
|
+
},
|
144
|
+
...requestOptions
|
145
|
+
};
|
146
|
+
|
147
|
+
if (typeof requestOptions.relationshipType === "string") {
|
148
|
+
options.params.relationshipType = requestOptions.relationshipType;
|
149
|
+
} else {
|
150
|
+
options.params.relationshipTypes = requestOptions.relationshipType;
|
151
|
+
}
|
152
|
+
|
153
|
+
delete options.direction;
|
154
|
+
delete options.relationshipType;
|
155
|
+
|
156
|
+
return request(url, options);
|
157
|
+
}
|
158
|
+
|
159
|
+
/**
|
160
|
+
* Get the resources associated with an item
|
161
|
+
*
|
162
|
+
* @param requestOptions - Options for the request
|
163
|
+
* @returns A Promise to get some item resources.
|
164
|
+
*/
|
165
|
+
export function getItemResources(
|
166
|
+
id: string,
|
167
|
+
requestOptions?: IRequestOptions
|
168
|
+
): Promise<any> {
|
169
|
+
const url = `${getItemBaseUrl(id, requestOptions)}/resources`;
|
170
|
+
|
171
|
+
// Mix in num:1000 with any user supplied params
|
172
|
+
// Key thing - we don't want to mutate the passed in requestOptions
|
173
|
+
// as that may be used in other (subsequent) calls in the course
|
174
|
+
// of a long promise chains
|
175
|
+
const options: IRequestOptions = {
|
176
|
+
...requestOptions
|
177
|
+
};
|
178
|
+
options.params = { num: 1000, ...options.params };
|
179
|
+
|
180
|
+
return request(url, options);
|
181
|
+
}
|
182
|
+
|
183
|
+
export interface IGetItemGroupsResponse {
|
184
|
+
admin?: IGroup[];
|
185
|
+
member?: IGroup[];
|
186
|
+
other?: IGroup[];
|
187
|
+
}
|
188
|
+
|
189
|
+
export interface IGetItemResourceOptions extends IRequestOptions {
|
190
|
+
/**
|
191
|
+
* Name of the info file, optionally including the folder path
|
192
|
+
*/
|
193
|
+
fileName: string;
|
194
|
+
/**
|
195
|
+
* How the fetch response should be read, see:
|
196
|
+
* https://developer.mozilla.org/en-US/docs/Web/API/Body#Methods
|
197
|
+
*/
|
198
|
+
readAs?: FetchReadMethodName;
|
199
|
+
}
|
200
|
+
|
201
|
+
/**
|
202
|
+
* ```js
|
203
|
+
* import { getItemResource } from "@esri/arcgis-rest-portal";
|
204
|
+
*
|
205
|
+
* // Parses contents as blob by default
|
206
|
+
* getItemResource("3ef", { fileName: "resource.jpg", ...})
|
207
|
+
* .then(resourceContents => {});
|
208
|
+
*
|
209
|
+
* // Can override parse method
|
210
|
+
* getItemResource("3ef", { fileName: "resource.json", readAs: 'json', ...})
|
211
|
+
* .then(resourceContents => {});
|
212
|
+
*
|
213
|
+
* // Get the response object instead
|
214
|
+
* getItemResource("3ef",{ rawResponse: true, fileName: "resource.json" })
|
215
|
+
* .then(response => {})
|
216
|
+
* ```
|
217
|
+
* Fetches an item resource and optionally parses it to the correct format.
|
218
|
+
*
|
219
|
+
* Note: provides JSON parse error protection by sanitizing out any unescaped control
|
220
|
+
* characters before parsing that would otherwise cause an error to be thrown
|
221
|
+
*
|
222
|
+
* @param {string} itemId
|
223
|
+
* @param {IGetItemResourceOptions} requestOptions
|
224
|
+
*/
|
225
|
+
export function getItemResource(
|
226
|
+
itemId: string,
|
227
|
+
requestOptions: IGetItemResourceOptions
|
228
|
+
) {
|
229
|
+
const readAs = requestOptions.readAs || 'blob';
|
230
|
+
return getItemFile(itemId, `/resources/${requestOptions.fileName}`, readAs, requestOptions);
|
231
|
+
}
|
232
|
+
|
233
|
+
|
234
|
+
/**
|
235
|
+
* ```js
|
236
|
+
* import { getItemGroups } from "@esri/arcgis-rest-portal";
|
237
|
+
* //
|
238
|
+
* getItemGroups("30e5fe3149c34df1ba922e6f5bbf808f")
|
239
|
+
* .then(response)
|
240
|
+
* ```
|
241
|
+
* 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.
|
242
|
+
*
|
243
|
+
* @param id - The Id of the item to query group association for.
|
244
|
+
* @param requestOptions - Options for the request
|
245
|
+
* @returns A Promise to get some item groups.
|
246
|
+
*/
|
247
|
+
export function getItemGroups(
|
248
|
+
id: string,
|
249
|
+
requestOptions?: IRequestOptions
|
250
|
+
): Promise<IGetItemGroupsResponse> {
|
251
|
+
const url = `${getItemBaseUrl(id, requestOptions)}/groups`;
|
252
|
+
|
253
|
+
return request(url, requestOptions);
|
254
|
+
}
|
255
|
+
|
256
|
+
export interface IItemStatusOptions extends IUserItemOptions {
|
257
|
+
/**
|
258
|
+
* The type of asynchronous job for which the status has to be checked. Default is none, which check the item's status.
|
259
|
+
*/
|
260
|
+
jobType?: "publish" | "generateFeatures" | "export" | "createService";
|
261
|
+
/**
|
262
|
+
* The job ID returned during publish, generateFeatures, export, and createService calls.
|
263
|
+
*/
|
264
|
+
jobId?: string;
|
265
|
+
/**
|
266
|
+
* The response format. The default and the only response format for this resource is HTML.
|
267
|
+
*/
|
268
|
+
format?: "html";
|
269
|
+
}
|
270
|
+
|
271
|
+
export interface IGetItemStatusResponse {
|
272
|
+
status: "partial" | "processing" | "failed" | "completed";
|
273
|
+
statusMessage: string;
|
274
|
+
itemId: string;
|
275
|
+
}
|
276
|
+
|
277
|
+
/**
|
278
|
+
* ```js
|
279
|
+
* import { getItemStatus } from "@esri/arcgis-rest-portal";
|
280
|
+
* //
|
281
|
+
* getItemStatus({
|
282
|
+
* id: "30e5fe3149c34df1ba922e6f5bbf808f",
|
283
|
+
* authentication
|
284
|
+
* })
|
285
|
+
* .then(response)
|
286
|
+
* ```
|
287
|
+
* 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.
|
288
|
+
*
|
289
|
+
* @param id - The Id of the item to get status for.
|
290
|
+
* @param requestOptions - Options for the request
|
291
|
+
* @returns A Promise to get the item status.
|
292
|
+
*/
|
293
|
+
export function getItemStatus(
|
294
|
+
requestOptions: IItemStatusOptions
|
295
|
+
): Promise<IGetItemStatusResponse> {
|
296
|
+
return determineOwner(requestOptions).then(owner => {
|
297
|
+
const url = `${getPortalUrl(requestOptions)}/content/users/${owner}/items/${
|
298
|
+
requestOptions.id
|
299
|
+
}/status`;
|
300
|
+
|
301
|
+
const options = appendCustomParams<IItemStatusOptions>(
|
302
|
+
requestOptions,
|
303
|
+
["jobId", "jobType"],
|
304
|
+
{ params: { ...requestOptions.params } }
|
305
|
+
);
|
306
|
+
|
307
|
+
return request(url, options);
|
308
|
+
});
|
309
|
+
}
|
310
|
+
|
311
|
+
export interface IGetItemPartsResponse {
|
312
|
+
parts: number[];
|
313
|
+
}
|
314
|
+
|
315
|
+
/**
|
316
|
+
* ```js
|
317
|
+
* import { getItemParts } from "@esri/arcgis-rest-portal";
|
318
|
+
* //
|
319
|
+
* getItemParts({
|
320
|
+
* id: "30e5fe3149c34df1ba922e6f5bbf808f",
|
321
|
+
* authentication
|
322
|
+
* })
|
323
|
+
* .then(response)
|
324
|
+
* ```
|
325
|
+
* 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.
|
326
|
+
*
|
327
|
+
* @param id - The Id of the item to get part list.
|
328
|
+
* @param requestOptions - Options for the request
|
329
|
+
* @returns A Promise to get the item part list.
|
330
|
+
*/
|
331
|
+
export function getItemParts(
|
332
|
+
requestOptions: IUserItemOptions
|
333
|
+
): Promise<IGetItemPartsResponse> {
|
334
|
+
return determineOwner(requestOptions).then(owner => {
|
335
|
+
const url = `${getPortalUrl(requestOptions)}/content/users/${owner}/items/${
|
336
|
+
requestOptions.id
|
337
|
+
}/parts`;
|
338
|
+
return request(url, requestOptions);
|
339
|
+
});
|
340
|
+
}
|
341
|
+
|
342
|
+
export interface IGetItemInfoOptions extends IRequestOptions {
|
343
|
+
/**
|
344
|
+
* Name of the info file, optionally including the folder path
|
345
|
+
*/
|
346
|
+
fileName?: string;
|
347
|
+
/**
|
348
|
+
* How the fetch response should be read, see:
|
349
|
+
* https://developer.mozilla.org/en-US/docs/Web/API/Body#Methods
|
350
|
+
*/
|
351
|
+
readAs?: FetchReadMethodName;
|
352
|
+
}
|
353
|
+
|
354
|
+
/**
|
355
|
+
* ```
|
356
|
+
* import { getItemInfo } from "@esri/arcgis-rest-portal";
|
357
|
+
* // get the "Info Card" for the item
|
358
|
+
* getItemInfo("ae7")
|
359
|
+
* .then(itemInfoXml) // XML document as a string
|
360
|
+
* // or get the contents of a specific file
|
361
|
+
* getItemInfo("ae7", { fileName: "form.json", readAs: "json", authentication })
|
362
|
+
* .then(formJson) // JSON document as JSON
|
363
|
+
* ```
|
364
|
+
* 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.
|
365
|
+
* @param id - Item Id
|
366
|
+
* @param requestOptions - Options for the request, including the file name which defaults to `iteminfo.xml`.
|
367
|
+
* If the file is not a text file (XML, HTML, etc) you will need to specify the `readAs` parameter
|
368
|
+
* @returns A Promise that will resolve with the contents of the info file for the item.
|
369
|
+
*/
|
370
|
+
export function getItemInfo(
|
371
|
+
id: string,
|
372
|
+
requestOptions?: IGetItemInfoOptions
|
373
|
+
): Promise<any> {
|
374
|
+
const { fileName = "iteminfo.xml", readAs = "text" } = requestOptions || {};
|
375
|
+
const options: IRequestOptions = {
|
376
|
+
httpMethod: "GET",
|
377
|
+
...requestOptions
|
378
|
+
};
|
379
|
+
return getItemFile(id, `/info/${fileName}`, readAs, options);
|
380
|
+
}
|
381
|
+
|
382
|
+
/**
|
383
|
+
* ```
|
384
|
+
* import { getItemMetadata } from "@esri/arcgis-rest-portal";
|
385
|
+
* // get the metadata for the item
|
386
|
+
* getItemMetadata("ae7")
|
387
|
+
* .then(itemMetadataXml) // XML document as a string
|
388
|
+
* // or with additional request options
|
389
|
+
* getItemMetadata("ae7", { authentication })
|
390
|
+
* .then(itemMetadataXml) // XML document as a string
|
391
|
+
* ```
|
392
|
+
* Get the standard formal metadata XML file for an item (`/info/metadata/metadata.xml`)
|
393
|
+
* @param id - Item Id
|
394
|
+
* @param requestOptions - Options for the request
|
395
|
+
* @returns A Promise that will resolve with the contents of the metadata file for the item as a string.
|
396
|
+
*/
|
397
|
+
export function getItemMetadata(
|
398
|
+
id: string,
|
399
|
+
requestOptions?: IRequestOptions
|
400
|
+
): Promise<any> {
|
401
|
+
const options = {
|
402
|
+
...requestOptions,
|
403
|
+
fileName: "metadata/metadata.xml"
|
404
|
+
} as IGetItemInfoOptions;
|
405
|
+
return getItemInfo(id, options);
|
406
|
+
}
|
407
|
+
|
408
|
+
// overrides request()'s default behavior for reading the response
|
409
|
+
// which is based on `params.f` and defaults to JSON
|
410
|
+
// Also adds JSON parse error protection by sanitizing out any unescaped control characters before parsing
|
411
|
+
function getItemFile(
|
412
|
+
id: string,
|
413
|
+
// NOTE: fileName should include any folder/subfolders
|
414
|
+
fileName: string,
|
415
|
+
readMethod: FetchReadMethodName,
|
416
|
+
requestOptions?: IRequestOptions
|
417
|
+
): Promise<any> {
|
418
|
+
const url = `${getItemBaseUrl(id, requestOptions)}${fileName}`;
|
419
|
+
// preserve escape hatch to let the consumer read the response
|
420
|
+
// and ensure the f param is not appended to the query string
|
421
|
+
const options: IRequestOptions = {
|
422
|
+
params: {},
|
423
|
+
...requestOptions
|
424
|
+
};
|
425
|
+
const justReturnResponse = options.rawResponse;
|
426
|
+
options.rawResponse = true;
|
427
|
+
options.params.f = null;
|
428
|
+
|
429
|
+
return request(url, options).then(response => {
|
430
|
+
if (justReturnResponse) {
|
431
|
+
return response;
|
432
|
+
}
|
433
|
+
return readMethod !== 'json'
|
434
|
+
? response[readMethod]()
|
435
|
+
: response.text().then((text: string) => JSON.parse(scrubControlChars(text)));
|
436
|
+
});
|
437
|
+
}
|