autnam 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.json +37 -0
- package/.github/workflows/deploy-docs.yml +27 -0
- package/.github/workflows/pre-release-tests.yml +49 -0
- package/.github/workflows/pull-request-tests.yml +49 -0
- package/.github/workflows/release.yml +75 -0
- package/.prettierignore +2 -0
- package/.prettierrc +19 -0
- package/.vscode/launch.json +25 -0
- package/.vscode/settings.json +5 -0
- package/codecov.yml +7 -0
- package/commitlint.config.cjs +41 -0
- package/demos/.eslintrc.js +13 -0
- package/demos/ago-node-cli/README.md +30 -0
- package/demos/ago-node-cli/ago.js +31 -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 +32 -0
- package/demos/ago-node-cli/package.json +29 -0
- package/demos/attachments-browser/README.md +7 -0
- package/demos/attachments-browser/index.html +165 -0
- package/demos/attachments-browser/package.json +15 -0
- package/demos/attachments-node/README.md +4 -0
- package/demos/attachments-node/image.jpg +0 -0
- package/demos/attachments-node/index.js +89 -0
- package/demos/attachments-node/package.json +19 -0
- package/demos/batch-geocoder-node/NYC_Restaurant_Inspection_Results.csv +100 -0
- package/demos/batch-geocoder-node/README.md +13 -0
- package/demos/batch-geocoder-node/batch-geocode.js +112 -0
- package/demos/batch-geocoder-node/config-template.js +18 -0
- package/demos/batch-geocoder-node/package.json +34 -0
- package/demos/browser-es-modules/README.md +7 -0
- package/demos/browser-es-modules/index.html +38 -0
- package/demos/browser-es-modules/package.json +15 -0
- package/demos/deno/README.md +1 -0
- package/demos/deno/import_map.json +8 -0
- package/demos/deno/index.js +5 -0
- package/demos/express/README.md +16 -0
- package/demos/express/config.json.template +3 -0
- package/demos/express/package.json +15 -0
- package/demos/express/server.js +37 -0
- package/demos/feature-service-browser/README.md +8 -0
- package/demos/feature-service-browser/index.html +122 -0
- package/demos/feature-service-browser/package.json +15 -0
- package/demos/geocoder-browser/README.md +12 -0
- package/demos/geocoder-browser/authenticate.html +29 -0
- package/demos/geocoder-browser/config.js.template +1 -0
- package/demos/geocoder-browser/index.html +139 -0
- package/demos/geocoder-browser/package.json +15 -0
- package/demos/jsapi-integration/README.md +26 -0
- package/demos/jsapi-integration/authenticate.html +29 -0
- package/demos/jsapi-integration/config.js +6 -0
- package/demos/jsapi-integration/index.html +91 -0
- package/demos/jsapi-integration/package.json +15 -0
- package/demos/node-cli-item-management/README.md +11 -0
- package/demos/node-cli-item-management/index.js +229 -0
- package/demos/node-cli-item-management/package.json +24 -0
- package/demos/node-cli-item-management/screenshot.png +0 -0
- package/demos/node-common-js/README.md +4 -0
- package/demos/node-common-js/index.js +5 -0
- package/demos/node-common-js/package.json +15 -0
- package/demos/node-es-modules/README.md +4 -0
- package/demos/node-es-modules/index.js +5 -0
- package/demos/node-es-modules/package.json +16 -0
- package/demos/oauth2-browser/README.md +17 -0
- package/demos/oauth2-browser/authenticate.html +29 -0
- package/demos/oauth2-browser/config.js.template +6 -0
- package/demos/oauth2-browser/index.html +223 -0
- package/demos/oauth2-browser/logo.svg +4 -0
- package/demos/oauth2-browser/package.json +15 -0
- package/demos/oauth2-browser/style.css +36 -0
- package/demos/oauth2-browser-retry/README.md +32 -0
- package/demos/oauth2-browser-retry/authenticate.html +21 -0
- package/demos/oauth2-browser-retry/index.html +114 -0
- package/demos/oauth2-browser-retry/logo.svg +4 -0
- package/demos/oauth2-browser-retry/package.json +15 -0
- package/demos/parcel/README.md +8 -0
- package/demos/parcel/index.html +16 -0
- package/demos/parcel/index.js +8 -0
- package/demos/parcel/package.json +20 -0
- package/demos/snowpack/README.md +8 -0
- package/demos/snowpack/index.html +16 -0
- package/demos/snowpack/index.js +8 -0
- package/demos/snowpack/package.json +20 -0
- package/demos/snowpack/snowpack.config.js +3 -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.json +31 -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.json +22 -0
- package/demos/tree-shaking-rollup/rollup.config.js +13 -0
- package/demos/tree-shaking-rollup/src/index.js +8 -0
- package/demos/tree-shaking-webpack/README.md +9 -0
- package/demos/tree-shaking-webpack/index.html +11 -0
- package/demos/tree-shaking-webpack/package.json +26 -0
- package/demos/tree-shaking-webpack/src/index.js +8 -0
- package/demos/tree-shaking-webpack/webpack.config.js +29 -0
- package/demos/vite/README.md +6 -0
- package/demos/vite/favicon.svg +15 -0
- package/demos/vite/index.html +13 -0
- package/demos/vite/main.js +8 -0
- package/demos/vite/package.json +18 -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.json +35 -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 +303 -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 +124 -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.json +47 -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 +102 -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 +61 -0
- package/docs/package.json +3 -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 +84 -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/jasmine.json +7 -0
- package/jasmine.live.json +7 -0
- package/karma.conf.cjs +128 -0
- package/package.json +87 -0
- package/packages/arcgis-rest-auth/CHANGELOG.md +80 -0
- package/packages/arcgis-rest-auth/README.md +71 -0
- package/packages/arcgis-rest-auth/package.json +66 -0
- package/packages/arcgis-rest-auth/src/index.ts +34 -0
- package/packages/arcgis-rest-auth/tsconfig.json +6 -0
- package/packages/arcgis-rest-demographics/CHANGELOG.md +14 -0
- package/packages/arcgis-rest-demographics/README.md +74 -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 +161 -0
- package/packages/arcgis-rest-demographics/src/getAvailableGeographyLevels.ts +86 -0
- package/packages/arcgis-rest-demographics/src/getGeography.ts +152 -0
- package/packages/arcgis-rest-demographics/src/helpers.ts +27 -0
- package/packages/arcgis-rest-demographics/src/index.ts +16 -0
- package/packages/arcgis-rest-demographics/src/queryDemographicData.ts +108 -0
- package/packages/arcgis-rest-demographics/test/getAvailableCountries.test.ts +89 -0
- package/packages/arcgis-rest-demographics/test/getAvailableDataCollections.test.ts +114 -0
- package/packages/arcgis-rest-demographics/test/getAvailableGeographyLevels.test.ts +69 -0
- package/packages/arcgis-rest-demographics/test/getGeography.test.ts +150 -0
- package/packages/arcgis-rest-demographics/test/mocks/responses.ts +4 -0
- package/packages/arcgis-rest-demographics/test/queryDemographicData.test.live.ts +50 -0
- package/packages/arcgis-rest-demographics/test/queryDemographicData.test.ts +127 -0
- package/packages/arcgis-rest-demographics/tsconfig.json +6 -0
- package/packages/arcgis-rest-feature-service/CHANGELOG.md +44 -0
- package/packages/arcgis-rest-feature-service/README.md +75 -0
- package/packages/arcgis-rest-feature-service/package.json +70 -0
- package/packages/arcgis-rest-feature-service/src/add.ts +55 -0
- package/packages/arcgis-rest-feature-service/src/addAttachment.ts +53 -0
- package/packages/arcgis-rest-feature-service/src/addToServiceDefinition.ts +74 -0
- package/packages/arcgis-rest-feature-service/src/applyEdits.ts +94 -0
- package/packages/arcgis-rest-feature-service/src/createFeatureService.ts +191 -0
- package/packages/arcgis-rest-feature-service/src/decodeValues.ts +126 -0
- package/packages/arcgis-rest-feature-service/src/delete.ts +62 -0
- package/packages/arcgis-rest-feature-service/src/deleteAttachments.ts +52 -0
- package/packages/arcgis-rest-feature-service/src/getAllLayersAndTables.ts +30 -0
- package/packages/arcgis-rest-feature-service/src/getAttachments.ts +55 -0
- package/packages/arcgis-rest-feature-service/src/getLayer.ts +23 -0
- package/packages/arcgis-rest-feature-service/src/getService.ts +25 -0
- package/packages/arcgis-rest-feature-service/src/getServiceAdminInfo.ts +33 -0
- package/packages/arcgis-rest-feature-service/src/getViewSources.ts +19 -0
- package/packages/arcgis-rest-feature-service/src/helpers.ts +768 -0
- package/packages/arcgis-rest-feature-service/src/index.ts +37 -0
- package/packages/arcgis-rest-feature-service/src/query.ts +200 -0
- package/packages/arcgis-rest-feature-service/src/queryRelated.ts +86 -0
- package/packages/arcgis-rest-feature-service/src/update.ts +65 -0
- package/packages/arcgis-rest-feature-service/src/updateAttachment.ts +59 -0
- package/packages/arcgis-rest-feature-service/src/updateServiceDefinition.ts +53 -0
- package/packages/arcgis-rest-feature-service/test/addToServiceDefinition.test.ts +350 -0
- package/packages/arcgis-rest-feature-service/test/attachments.test.ts +188 -0
- package/packages/arcgis-rest-feature-service/test/createFeatureService.test.ts +279 -0
- package/packages/arcgis-rest-feature-service/test/crud.test.ts +196 -0
- package/packages/arcgis-rest-feature-service/test/decodeValues.test.ts +66 -0
- package/packages/arcgis-rest-feature-service/test/getAllLayersAndTables.test.ts +27 -0
- package/packages/arcgis-rest-feature-service/test/getLayer.test.ts +30 -0
- package/packages/arcgis-rest-feature-service/test/getService.test.ts +30 -0
- package/packages/arcgis-rest-feature-service/test/getServiceAdminInfo.test.ts +41 -0
- package/packages/arcgis-rest-feature-service/test/getViewSources.test.ts +45 -0
- package/packages/arcgis-rest-feature-service/test/helpers.test.ts +27 -0
- package/packages/arcgis-rest-feature-service/test/mocks/allLayersAndTablesResponse.ts +950 -0
- package/packages/arcgis-rest-feature-service/test/mocks/cvdQueryResponse.ts +225 -0
- package/packages/arcgis-rest-feature-service/test/mocks/feature.ts +302 -0
- package/packages/arcgis-rest-feature-service/test/mocks/fields.ts +779 -0
- package/packages/arcgis-rest-feature-service/test/mocks/foo.txt +1 -0
- package/packages/arcgis-rest-feature-service/test/mocks/layerDefinition.ts +80 -0
- package/packages/arcgis-rest-feature-service/test/mocks/service.ts +476 -0
- package/packages/arcgis-rest-feature-service/test/query.test.ts +166 -0
- package/packages/arcgis-rest-feature-service/test/updateServiceDefinition.test.ts +103 -0
- package/packages/arcgis-rest-feature-service/tsconfig.json +9 -0
- package/packages/arcgis-rest-fetch/README.md +17 -0
- package/packages/arcgis-rest-fetch/browser-ponyfill.js +8 -0
- package/packages/arcgis-rest-fetch/browser-ponyfill.mjs +8 -0
- package/packages/arcgis-rest-fetch/index.types.d.ts +8 -0
- package/packages/arcgis-rest-fetch/node-ponyfill.js +10 -0
- package/packages/arcgis-rest-fetch/node-ponyfill.mjs +10 -0
- package/packages/arcgis-rest-fetch/package.json +21 -0
- package/packages/arcgis-rest-form-data/README.md +15 -0
- package/packages/arcgis-rest-form-data/browser-ponyfill.js +5 -0
- package/packages/arcgis-rest-form-data/browser-ponyfill.mjs +3 -0
- package/packages/arcgis-rest-form-data/index.types.d.ts +9 -0
- package/packages/arcgis-rest-form-data/node-ponyfill.js +7 -0
- package/packages/arcgis-rest-form-data/node-ponyfill.mjs +5 -0
- package/packages/arcgis-rest-form-data/package.json +21 -0
- package/packages/arcgis-rest-geocoding/CHANGELOG.md +26 -0
- package/packages/arcgis-rest-geocoding/README.md +85 -0
- package/packages/arcgis-rest-geocoding/package.json +69 -0
- package/packages/arcgis-rest-geocoding/src/bulk.ts +106 -0
- package/packages/arcgis-rest-geocoding/src/geocode.ts +169 -0
- package/packages/arcgis-rest-geocoding/src/helpers.ts +56 -0
- package/packages/arcgis-rest-geocoding/src/index.ts +17 -0
- package/packages/arcgis-rest-geocoding/src/reverse.ts +82 -0
- package/packages/arcgis-rest-geocoding/src/suggest.ts +45 -0
- package/packages/arcgis-rest-geocoding/test/bulk.test.ts +193 -0
- package/packages/arcgis-rest-geocoding/test/geocode.test.ts +254 -0
- package/packages/arcgis-rest-geocoding/test/helpers.test.ts +85 -0
- package/packages/arcgis-rest-geocoding/test/mocks/responses.ts +1031 -0
- package/packages/arcgis-rest-geocoding/test/reverse.test.ts +124 -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/CHANGELOG.md +73 -0
- package/packages/arcgis-rest-portal/README.md +72 -0
- package/packages/arcgis-rest-portal/package.json +68 -0
- package/packages/arcgis-rest-portal/src/groups/add-users.ts +140 -0
- package/packages/arcgis-rest-portal/src/groups/create.ts +42 -0
- package/packages/arcgis-rest-portal/src/groups/get.ts +187 -0
- package/packages/arcgis-rest-portal/src/groups/helpers.ts +14 -0
- package/packages/arcgis-rest-portal/src/groups/invite-users.ts +141 -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 +84 -0
- package/packages/arcgis-rest-portal/src/groups/remove.ts +32 -0
- package/packages/arcgis-rest-portal/src/groups/search.ts +48 -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/helpers.ts +83 -0
- package/packages/arcgis-rest-portal/src/index.ts +68 -0
- package/packages/arcgis-rest-portal/src/items/add.ts +145 -0
- package/packages/arcgis-rest-portal/src/items/content.ts +70 -0
- package/packages/arcgis-rest-portal/src/items/create.ts +149 -0
- package/packages/arcgis-rest-portal/src/items/export.ts +92 -0
- package/packages/arcgis-rest-portal/src/items/get.ts +444 -0
- package/packages/arcgis-rest-portal/src/items/helpers.ts +272 -0
- package/packages/arcgis-rest-portal/src/items/protect.ts +41 -0
- package/packages/arcgis-rest-portal/src/items/reassign.ts +59 -0
- package/packages/arcgis-rest-portal/src/items/remove.ts +139 -0
- package/packages/arcgis-rest-portal/src/items/search.ts +25 -0
- package/packages/arcgis-rest-portal/src/items/update.ts +188 -0
- package/packages/arcgis-rest-portal/src/items/upload.ts +124 -0
- package/packages/arcgis-rest-portal/src/orgs/notification.ts +148 -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 +29 -0
- package/packages/arcgis-rest-portal/src/sharing/access.ts +84 -0
- package/packages/arcgis-rest-portal/src/sharing/helpers.ts +80 -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 +335 -0
- package/packages/arcgis-rest-portal/src/sharing/unshare-item-with-group.ts +114 -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 +60 -0
- package/packages/arcgis-rest-portal/src/users/invitation.ts +157 -0
- package/packages/arcgis-rest-portal/src/users/notification.ts +67 -0
- package/packages/arcgis-rest-portal/src/users/search-users.ts +35 -0
- package/packages/arcgis-rest-portal/src/users/update.ts +63 -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 +111 -0
- package/packages/arcgis-rest-portal/src/util/get-portal-settings.ts +44 -0
- package/packages/arcgis-rest-portal/src/util/get-portal-url.ts +32 -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 +48 -0
- package/packages/arcgis-rest-portal/test/groups/add-users.test.ts +238 -0
- package/packages/arcgis-rest-portal/test/groups/crud.test.ts +183 -0
- package/packages/arcgis-rest-portal/test/groups/get.test.ts +174 -0
- package/packages/arcgis-rest-portal/test/groups/invite-users.test.ts +146 -0
- package/packages/arcgis-rest-portal/test/groups/join.test.ts +71 -0
- package/packages/arcgis-rest-portal/test/groups/notification.test.ts +111 -0
- package/packages/arcgis-rest-portal/test/groups/protect.test.ts +71 -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 +64 -0
- package/packages/arcgis-rest-portal/test/items/add.test.ts +320 -0
- package/packages/arcgis-rest-portal/test/items/content.test.ts +161 -0
- package/packages/arcgis-rest-portal/test/items/create.test.ts +404 -0
- package/packages/arcgis-rest-portal/test/items/export.test.ts +115 -0
- package/packages/arcgis-rest-portal/test/items/get.test.ts +606 -0
- package/packages/arcgis-rest-portal/test/items/helpers.test.ts +60 -0
- package/packages/arcgis-rest-portal/test/items/protect.test.ts +120 -0
- package/packages/arcgis-rest-portal/test/items/reassign.test.ts +130 -0
- package/packages/arcgis-rest-portal/test/items/remove.test.ts +259 -0
- package/packages/arcgis-rest-portal/test/items/search.test.ts +274 -0
- package/packages/arcgis-rest-portal/test/items/update.test.ts +549 -0
- package/packages/arcgis-rest-portal/test/items/upload.test.ts +286 -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 +142 -0
- package/packages/arcgis-rest-portal/test/services/get-unique-service-name.test.ts +64 -0
- package/packages/arcgis-rest-portal/test/services/is-service-name-available.test.ts +41 -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 +126 -0
- package/packages/arcgis-rest-portal/test/users/notification.test.ts +76 -0
- package/packages/arcgis-rest-portal/test/users/search.test.ts +41 -0
- package/packages/arcgis-rest-portal/test/users/update.test.ts +150 -0
- package/packages/arcgis-rest-portal/test/util/SearchQueryBuilder.test.ts +295 -0
- package/packages/arcgis-rest-portal/test/util/array.test.ts +33 -0
- package/packages/arcgis-rest-portal/test/util/get-portal-settings.test.ts +57 -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 +137 -0
- package/packages/arcgis-rest-portal/test/util/scrub-control-chars.test.ts +25 -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 +69 -0
- package/packages/arcgis-rest-request/post-message-auth-spec.md +70 -0
- package/packages/arcgis-rest-request/src/ApiKeyManager.ts +60 -0
- package/packages/arcgis-rest-request/src/ApplicationCredentialsManager.ts +141 -0
- package/packages/arcgis-rest-request/src/ArcGISIdentityManager.ts +1470 -0
- package/packages/arcgis-rest-request/src/app-tokens.ts +132 -0
- package/packages/arcgis-rest-request/src/authenticated-request-options.ts +23 -0
- package/packages/arcgis-rest-request/src/federation-utils.ts +88 -0
- package/packages/arcgis-rest-request/src/fetch-token.ts +48 -0
- package/packages/arcgis-rest-request/src/generate-token.ts +32 -0
- package/packages/arcgis-rest-request/src/index.ts +46 -0
- package/packages/arcgis-rest-request/src/request.ts +446 -0
- package/packages/arcgis-rest-request/src/revoke-token.ts +73 -0
- package/packages/arcgis-rest-request/src/types/feature.ts +42 -0
- package/packages/arcgis-rest-request/src/types/geometry.ts +239 -0
- package/packages/arcgis-rest-request/src/types/group.ts +72 -0
- package/packages/arcgis-rest-request/src/types/service.ts +87 -0
- package/packages/arcgis-rest-request/src/types/symbol.ts +21 -0
- package/packages/arcgis-rest-request/src/types/user.ts +49 -0
- package/packages/arcgis-rest-request/src/utils/ArcGISRequestError.ts +82 -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 +59 -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 +46 -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 +41 -0
- package/packages/arcgis-rest-request/src/utils/encode-query-string.ts +37 -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/src/validate-app-access.ts +69 -0
- package/packages/arcgis-rest-request/test/ApiKey.test.ts +53 -0
- package/packages/arcgis-rest-request/test/ApplicationSession.test.ts +148 -0
- package/packages/arcgis-rest-request/test/ArcGISIdentityManager.test.ts +2579 -0
- package/packages/arcgis-rest-request/test/app-tokens.test.ts +91 -0
- package/packages/arcgis-rest-request/test/federation-utils.test.ts +323 -0
- package/packages/arcgis-rest-request/test/fetchToken.test.ts +110 -0
- package/packages/arcgis-rest-request/test/generateToken.test.ts +40 -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 +563 -0
- package/packages/arcgis-rest-request/test/revoke-token.test.ts +55 -0
- package/packages/arcgis-rest-request/test/utils/ArcGISAuthError.test.ts +196 -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 +146 -0
- package/packages/arcgis-rest-request/test/utils/encode-query-string.test.ts +22 -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 +135 -0
- package/packages/arcgis-rest-request/test/validate-app-access.test.ts +44 -0
- package/packages/arcgis-rest-request/tsconfig.json +4 -0
- package/packages/arcgis-rest-routing/README.md +74 -0
- package/packages/arcgis-rest-routing/package.json +69 -0
- package/packages/arcgis-rest-routing/src/closestFacility.ts +223 -0
- package/packages/arcgis-rest-routing/src/helpers.ts +104 -0
- package/packages/arcgis-rest-routing/src/index.ts +20 -0
- package/packages/arcgis-rest-routing/src/originDestinationMatrix.ts +219 -0
- package/packages/arcgis-rest-routing/src/serviceArea.ts +169 -0
- package/packages/arcgis-rest-routing/src/solveRoute.ts +179 -0
- package/packages/arcgis-rest-routing/test/closestFacility.test.ts +686 -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 +681 -0
- package/packages/arcgis-rest-routing/tsconfig.json +6 -0
- package/prettier-package-json.config.cjs +81 -0
- package/rollup.js +152 -0
- package/scripts/create-dist-package-jsons.js +17 -0
- package/scripts/deploy-doc-site.js +16 -0
- package/scripts/generate-sri-hashes.js +52 -0
- package/scripts/get-package-json.js +27 -0
- package/scripts/run-demo-server.js +21 -0
- package/scripts/test-helpers.ts +20 -0
- package/tsconfig.json +62 -0
- package/typedoc.json +14 -0
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<title>ArcGIS REST JS Browser OAuth2</title>
|
|
6
|
+
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
|
|
7
|
+
<link rel="stylesheet" href="./style.css">
|
|
8
|
+
<script src="https://polyfill.io/v3/polyfill.min.js?features=es5%2Cfetch%2CPromise"></script>
|
|
9
|
+
</head>
|
|
10
|
+
<body>
|
|
11
|
+
<div id="app-wrapper">
|
|
12
|
+
<div class="jumbotron">
|
|
13
|
+
<div class="container">
|
|
14
|
+
<div id="page-header" class="row">
|
|
15
|
+
<div id="logo-container" class="col-sm-3">
|
|
16
|
+
<img id="logo" src="./logo.svg">
|
|
17
|
+
</div>
|
|
18
|
+
<div class="col-sm-9">
|
|
19
|
+
<h2>
|
|
20
|
+
ArcGIS REST JS Browser OAuth2
|
|
21
|
+
</h2>
|
|
22
|
+
<p>
|
|
23
|
+
An application demonstrating browser-based named user login.
|
|
24
|
+
</p>
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
</div>
|
|
28
|
+
</div>
|
|
29
|
+
<div class="container">
|
|
30
|
+
<div class="row">
|
|
31
|
+
<div class="col-xs-12">
|
|
32
|
+
<div id="clientIdGroup" class="form-group">
|
|
33
|
+
<label class="control-label">ClientID</label>
|
|
34
|
+
<!-- This is input required for the app. -->
|
|
35
|
+
<input
|
|
36
|
+
id="clientId"
|
|
37
|
+
type="text"
|
|
38
|
+
class="form-control"
|
|
39
|
+
placeholder="Client ID"
|
|
40
|
+
>
|
|
41
|
+
</div>
|
|
42
|
+
<p class="help-block">
|
|
43
|
+
You can generate your own clientid by creating an application on the
|
|
44
|
+
<a target='_blank' href='https://developers.arcgis.com/documentation/core-concepts/security-and-authentication/browser-based-user-logins/'>
|
|
45
|
+
ArcGIS for Developers
|
|
46
|
+
</a>
|
|
47
|
+
website. Be sure to add
|
|
48
|
+
<code id="redirect_uri">
|
|
49
|
+
<!-- Redirect URI will be injected here. -->
|
|
50
|
+
</code>
|
|
51
|
+
as a redirect uri for your application.
|
|
52
|
+
</p>
|
|
53
|
+
</div>
|
|
54
|
+
</div>
|
|
55
|
+
<div class="row">
|
|
56
|
+
<div class="col-xs-6">
|
|
57
|
+
<!-- Event listeners will be added to these buttons. -->
|
|
58
|
+
<button class="btn btn-primary btn-block" id='withPopupButton'>Sign In (with popup)</button>
|
|
59
|
+
</div>
|
|
60
|
+
<div class="col-xs-6">
|
|
61
|
+
<button class="btn btn-primary btn-block" id='inlineRedirectButton'>Sign In (inline redirect)</button>
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
|
|
65
|
+
<div class="row">
|
|
66
|
+
<div class="col-xs-12 text-center">
|
|
67
|
+
<p id="sessionInfo" class="info-panel">
|
|
68
|
+
<!-- Information will be injected here. -->
|
|
69
|
+
</p>
|
|
70
|
+
</div>
|
|
71
|
+
</div>
|
|
72
|
+
|
|
73
|
+
<div class="row">
|
|
74
|
+
<div class="col-xs-3">
|
|
75
|
+
</div>
|
|
76
|
+
<div class="col-xs-6 text-center">
|
|
77
|
+
<!-- Event listeners will be added to these buttons. -->
|
|
78
|
+
<button class="btn btn-primary btn-block btn-warning" id='signOutButton'>Sign Out</button>
|
|
79
|
+
</div>
|
|
80
|
+
<div class="col-xs-3">
|
|
81
|
+
</div>
|
|
82
|
+
</div>
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
|
|
86
|
+
<!-- pull clientid from config.js if present -->
|
|
87
|
+
<script src="config.js"></script>
|
|
88
|
+
<script src="@esri/arcgis-rest-request/dist/bundled/request.umd.js"></script>
|
|
89
|
+
<script>
|
|
90
|
+
// Define a global session variable.
|
|
91
|
+
let session = null;
|
|
92
|
+
|
|
93
|
+
// Check to see if there is a serialized session in local storage.
|
|
94
|
+
const serializedSession = localStorage.getItem('__ARCGIS_REST_USER_SESSION__');
|
|
95
|
+
if (serializedSession !== null && serializedSession !== "undefined") {
|
|
96
|
+
// If there is a serialized session, parse it and create a new session object.
|
|
97
|
+
let parsed = JSON.parse(serializedSession);
|
|
98
|
+
// Cast the tokenExpires property back into a date.
|
|
99
|
+
parsed.tokenExpires = new Date(parsed.tokenExpires);
|
|
100
|
+
// Create the new session object.
|
|
101
|
+
session = new arcgisRest.UserSession(parsed);
|
|
102
|
+
// console.log(session);
|
|
103
|
+
// Update the UI.
|
|
104
|
+
document.getElementById('clientId').value = session.clientId;
|
|
105
|
+
|
|
106
|
+
// Clear the previous session.
|
|
107
|
+
localStorage.removeItem('__ARCGIS_REST_USER_SESSION__');
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// Define the variable used for the redirect uri.
|
|
111
|
+
const redirect_uri = window.location.origin + window.location.pathname + "authenticate.html";
|
|
112
|
+
// Inject that value into the page text.
|
|
113
|
+
document.getElementById('redirect_uri').innerHTML = redirect_uri;
|
|
114
|
+
|
|
115
|
+
// Function to check that a client id is present.
|
|
116
|
+
function requireClientId() {
|
|
117
|
+
// Pull out the client id.
|
|
118
|
+
if (document.getElementById('clientId').value !== "") {
|
|
119
|
+
clientId = document.getElementById('clientId').value
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// if a clientId is not provided via config.js or entered manually, return false
|
|
123
|
+
if (!clientId) {
|
|
124
|
+
document.getElementById('clientIdGroup').classList.add('has-error');
|
|
125
|
+
return false;
|
|
126
|
+
}
|
|
127
|
+
// Otherwise return true and clear any errors.
|
|
128
|
+
document.getElementById('clientIdGroup').classList.remove('has-error');
|
|
129
|
+
return true;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// Attach a listener to validate the client id on change.
|
|
133
|
+
document.getElementById('clientId').addEventListener('input', function (event) {
|
|
134
|
+
requireClientId();
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
// Function to update the UI with session info.
|
|
138
|
+
function updateSessionInfo(session) {
|
|
139
|
+
if(session) {
|
|
140
|
+
session.getUser().then((user) => {
|
|
141
|
+
console.log(user);
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
let sessionInfo = document.getElementById('sessionInfo')
|
|
146
|
+
if (session) {
|
|
147
|
+
sessionInfo.classList.remove('bg-info');
|
|
148
|
+
sessionInfo.classList.add('bg-success');
|
|
149
|
+
sessionInfo.innerHTML = 'Logged in as ' + session.username;
|
|
150
|
+
localStorage.setItem('__ARCGIS_REST_USER_SESSION__', session.serialize());
|
|
151
|
+
} else {
|
|
152
|
+
sessionInfo.classList.remove('bg-success');
|
|
153
|
+
sessionInfo.classList.add('bg-info');
|
|
154
|
+
sessionInfo.innerHTML = 'Log in using one of the methods above to start a session.';
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// Call the function on page load to set current state.
|
|
159
|
+
updateSessionInfo(session);
|
|
160
|
+
|
|
161
|
+
// Attach a listener to the sign in buttons.
|
|
162
|
+
document.getElementById('withPopupButton').addEventListener('click', function (event) {
|
|
163
|
+
event.preventDefault();
|
|
164
|
+
if (requireClientId()) {
|
|
165
|
+
|
|
166
|
+
// Begin an OAuth2 login using a popup.
|
|
167
|
+
arcgisRest.UserSession.beginOAuth2({
|
|
168
|
+
clientId: clientId,
|
|
169
|
+
redirectUri: redirect_uri,
|
|
170
|
+
popup: true,
|
|
171
|
+
popupWindowFeatures: getPopupWindowFeatures(500, 500)
|
|
172
|
+
}).then(function (newSession) {
|
|
173
|
+
// Upon a successful login, update the session with the new session.
|
|
174
|
+
session = newSession;
|
|
175
|
+
console.log(session);
|
|
176
|
+
updateSessionInfo(session);
|
|
177
|
+
}).catch(function (error) {
|
|
178
|
+
console.log(error);
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
function getPopupWindowFeatures(w, h) {
|
|
184
|
+
w = w || 500, h = h || 500;
|
|
185
|
+
// centers popup
|
|
186
|
+
const y = window.top.outerHeight / 2 + window.top.screenY - h / 2;
|
|
187
|
+
const x = window.top.outerWidth / 2 + window.top.screenX - w / 2;
|
|
188
|
+
return 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,width=' + w + ',height=' + h + ',top=' + y + ',left=' + x;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
// Attach a listener to the sign in buttons.
|
|
192
|
+
document.getElementById('inlineRedirectButton').addEventListener('click', function (event) {
|
|
193
|
+
event.preventDefault();
|
|
194
|
+
if (requireClientId()) {
|
|
195
|
+
// let clientId = document.getElementById('clientId').value || configClientId;
|
|
196
|
+
// Begin an OAuth2 login without a popup.
|
|
197
|
+
arcgisRest.UserSession.beginOAuth2({
|
|
198
|
+
clientId: clientId,
|
|
199
|
+
redirectUri: redirect_uri + '?clientID=' + clientId,
|
|
200
|
+
popup: false,
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
|
|
205
|
+
// Attach a listener to the sign in buttons.
|
|
206
|
+
document.getElementById('signOutButton').addEventListener('click', function (event) {
|
|
207
|
+
event.preventDefault();
|
|
208
|
+
|
|
209
|
+
arcgisRest.UserSession.destroy(session).then(({success})=>{
|
|
210
|
+
if(success) {
|
|
211
|
+
// Clear the previous session.
|
|
212
|
+
session = null;
|
|
213
|
+
localStorage.removeItem('__ARCGIS_REST_USER_SESSION__');
|
|
214
|
+
}
|
|
215
|
+
}).finally(()=>{
|
|
216
|
+
updateSessionInfo();
|
|
217
|
+
});
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
});
|
|
221
|
+
</script>
|
|
222
|
+
</body>
|
|
223
|
+
</html>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 630 630">
|
|
2
|
+
<rect width="630" height="630" fill="#f7df1e"/>
|
|
3
|
+
<path d="m423.2 492.19c12.69 20.72 29.2 35.95 58.4 35.95 24.53 0 40.2-12.26 40.2-29.2 0-20.3-16.1-27.49-43.1-39.3l-14.8-6.35c-42.72-18.2-71.1-41-71.1-89.2 0-44.4 33.83-78.2 86.7-78.2 37.64 0 64.7 13.1 84.2 47.4l-46.1 29.6c-10.15-18.2-21.1-25.37-38.1-25.37-17.34 0-28.33 11-28.33 25.37 0 17.76 11 24.95 36.4 35.95l14.8 6.34c50.3 21.57 78.7 43.56 78.7 93 0 53.3-41.87 82.5-98.1 82.5-54.98 0-90.5-26.2-107.88-60.54zm-209.13 5.13c9.3 16.5 17.76 30.45 38.1 30.45 19.45 0 31.72-7.61 31.72-37.2v-201.3h59.2v202.1c0 61.3-35.94 89.2-88.4 89.2-47.4 0-74.85-24.53-88.81-54.075z"/>
|
|
4
|
+
</svg>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"private": true,
|
|
3
|
+
"name": "@esri/arcgis-rest-demo-vanilla",
|
|
4
|
+
"version": "3.3.0",
|
|
5
|
+
"description": "Vanilla JavaScript demo of @esri/arcgis-rest-* packages",
|
|
6
|
+
"license": "Apache-2.0",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"start": "node ../../scripts/run-demo-server.js"
|
|
9
|
+
},
|
|
10
|
+
"dependencies": {
|
|
11
|
+
"@esri/arcgis-rest-auth": "^3.3.0",
|
|
12
|
+
"@esri/arcgis-rest-request": "^3.3.0"
|
|
13
|
+
},
|
|
14
|
+
"author": ""
|
|
15
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
html, body {
|
|
2
|
+
width: 100%;
|
|
3
|
+
height: 100%;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.row {
|
|
7
|
+
margin-bottom: 25px;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.jumbotron {
|
|
11
|
+
padding-top: 0px;
|
|
12
|
+
padding-bottom: 0px;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
#logo-container {
|
|
16
|
+
display: flex;
|
|
17
|
+
justify-content: center;
|
|
18
|
+
align-content: center;
|
|
19
|
+
}
|
|
20
|
+
#logo {
|
|
21
|
+
width: 125px;
|
|
22
|
+
height: 125px;
|
|
23
|
+
padding: 12.5px;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.info-panel{
|
|
27
|
+
padding: 15px;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.loading-table {
|
|
31
|
+
width: 100%;
|
|
32
|
+
height: 150px;
|
|
33
|
+
display: flex;
|
|
34
|
+
align-content: center;
|
|
35
|
+
justify-content: center;
|
|
36
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# ArcGIS Rest JS / Vanilla JS Demo
|
|
2
|
+
|
|
3
|
+
This demo shows how to trigger OAuth 2.0 using ArcGIS REST JS _after_ an anonymous request and a `403/499` is encountered using [`ArcGISAuthError.retry()`](https://esri.github.io/arcgis-rest-js/api/request/ArcGISAuthError/#retry-summary).
|
|
4
|
+
|
|
5
|
+
```js
|
|
6
|
+
request(url).catch((err) => {
|
|
7
|
+
if (err.name === "ArcGISAuthError") {
|
|
8
|
+
// make the same request again with a UserSession
|
|
9
|
+
err.retry(appendSession).then((response) => console.log(response));
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
appendSession = () => {
|
|
14
|
+
return UserSession.beginOAuth2({
|
|
15
|
+
clientId,
|
|
16
|
+
redirectUri: "https://yourapp.com/authenticate.html"
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Demo - [OAuth 2.0 Browser -retry](https://github.com/Esri/arcgis-rest-js/tree/master/demos/oauth2-browser-retry)
|
|
22
|
+
|
|
23
|
+
## Running this demo
|
|
24
|
+
|
|
25
|
+
1. Run `npm run build` in the root directory
|
|
26
|
+
1. Register a new application using https://developers.arcgis.com/applications/new (you will be prompted to sign in or create a free account first).
|
|
27
|
+
1. Add a redirect URL of `http://localhost:8080/authenticate.html` to your new app.
|
|
28
|
+
1. Either copy the `config.js.template` file and rename it to `config.js` with your own ClientID or supply it in the prompt when the app is launched.
|
|
29
|
+
1. Run `npm start` to spin up the development server.
|
|
30
|
+
1. Visit [http://localhost:8080](http://localhost:8080).
|
|
31
|
+
|
|
32
|
+
**Note:** The server starts with a special configuration to serve URLs starting with `@esri/arcgis-rest-*` from their respective packages. In your application you will need to change these URLs to point to their respective locations.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<title>ArcGIS Rest JS Vanilla JS - redirect</title>
|
|
6
|
+
</head>
|
|
7
|
+
<body>
|
|
8
|
+
<script src="@esri/arcgis-rest-request/dist/bundled/request.umd.js"></script>
|
|
9
|
+
<script>
|
|
10
|
+
// arcgis-rest-js ensures the clientId is associated with the state parameter by default.
|
|
11
|
+
const match = window.location.href.match(
|
|
12
|
+
/&state=(.+)/
|
|
13
|
+
);
|
|
14
|
+
const clientId = match[1];
|
|
15
|
+
|
|
16
|
+
arcgisRest.UserSession.completeOAuth2({
|
|
17
|
+
clientId: clientId,
|
|
18
|
+
});
|
|
19
|
+
</script>
|
|
20
|
+
</body>
|
|
21
|
+
</html>
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<title>ArcGIS REST JS Browser OAuth2 - retry</title>
|
|
6
|
+
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
|
|
7
|
+
<script src="https://polyfill.io/v3/polyfill.min.js?features=es5%2Cfetch%2CPromise"></script>
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<div id="app-wrapper">
|
|
11
|
+
<div class="jumbotron">
|
|
12
|
+
<div class="container">
|
|
13
|
+
<div id="page-header" class="row">
|
|
14
|
+
<div id="logo-container" class="col-sm-3">
|
|
15
|
+
<img id="logo" src="./logo.svg">
|
|
16
|
+
</div>
|
|
17
|
+
<div class="col-sm-9">
|
|
18
|
+
<h2>
|
|
19
|
+
ArcGIS REST JS Browser OAuth 2.0
|
|
20
|
+
</h2>
|
|
21
|
+
<p>
|
|
22
|
+
An application demonstrating how to retry a request that requires authentication.
|
|
23
|
+
</p>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
</div>
|
|
28
|
+
<div class="container">
|
|
29
|
+
<div class="row">
|
|
30
|
+
<div class="col-xs-12">
|
|
31
|
+
<div id="clientIdGroup" class="form-group">
|
|
32
|
+
<label class="control-label">ClientID</label>
|
|
33
|
+
<!-- This is input required for the app. -->
|
|
34
|
+
<input
|
|
35
|
+
id="clientId"
|
|
36
|
+
type="text"
|
|
37
|
+
class="form-control"
|
|
38
|
+
value="QVQNb3XfDzoboWS0"
|
|
39
|
+
>
|
|
40
|
+
</div>
|
|
41
|
+
<p class="help-block">
|
|
42
|
+
You can generate your own clientid by creating an application on the
|
|
43
|
+
<a target='_blank' href='https://developers.arcgis.com/documentation/core-concepts/security-and-authentication/browser-based-user-logins/'>
|
|
44
|
+
ArcGIS for Developers
|
|
45
|
+
</a>
|
|
46
|
+
website and adding
|
|
47
|
+
<code id="redirect_uri">
|
|
48
|
+
<!-- Redirect URI will be injected here. -->
|
|
49
|
+
</code>
|
|
50
|
+
as a redirect uri.
|
|
51
|
+
</p>
|
|
52
|
+
</div>
|
|
53
|
+
</div>
|
|
54
|
+
<div class="row">
|
|
55
|
+
<div class="col-xs-6">
|
|
56
|
+
<!-- Event listeners will be added to these buttons. -->
|
|
57
|
+
<button class="btn btn-primary btn-block" id='try'>Make an anonymous request that requires authentication</button>
|
|
58
|
+
</div>
|
|
59
|
+
</div>
|
|
60
|
+
|
|
61
|
+
<div class="row">
|
|
62
|
+
<div class="col-xs-12 text-center">
|
|
63
|
+
<p id="sessionInfo" class="info-panel">
|
|
64
|
+
<!-- Information will be injected here. -->
|
|
65
|
+
</p>
|
|
66
|
+
</div>
|
|
67
|
+
</div>
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
|
|
71
|
+
<script src="@esri/arcgis-rest-request/dist/bundled/request.umd.js"></script>
|
|
72
|
+
<script>
|
|
73
|
+
|
|
74
|
+
// Define the variable used for the redirect uri.
|
|
75
|
+
const redirect_uri = window.location.origin + window.location.pathname + "authenticate.html";
|
|
76
|
+
|
|
77
|
+
// Inject that value into the page text.
|
|
78
|
+
document.getElementById('redirect_uri').innerHTML = redirect_uri;
|
|
79
|
+
const sessionInfo = document.getElementById('sessionInfo');
|
|
80
|
+
|
|
81
|
+
// Attach a listener to the sign in buttons.
|
|
82
|
+
document.getElementById('try').addEventListener('click', function (event) {
|
|
83
|
+
event.preventDefault();
|
|
84
|
+
|
|
85
|
+
// url that is NOT accessible to un-authenticated requests
|
|
86
|
+
const url = `https://route.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World`
|
|
87
|
+
|
|
88
|
+
arcgisRest.request(url)
|
|
89
|
+
.catch(err => {
|
|
90
|
+
if (err.name === "ArcGISAuthError") {
|
|
91
|
+
sessionInfo.classList.add('bg-info');
|
|
92
|
+
sessionInfo.innerHTML = 'error: ' + err.message;
|
|
93
|
+
|
|
94
|
+
// make the same request again with a UserSession
|
|
95
|
+
return err.retry(appendSession)
|
|
96
|
+
}
|
|
97
|
+
}).then(response => {
|
|
98
|
+
sessionInfo.classList.remove('bg-info');
|
|
99
|
+
sessionInfo.classList.add('bg-success');
|
|
100
|
+
sessionInfo.innerHTML = 'current version of private server: ' + response.currentVersion;
|
|
101
|
+
})
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
function appendSession () {
|
|
105
|
+
// Begin an OAuth2 login using a popup.
|
|
106
|
+
return arcgisRest.UserSession.beginOAuth2({
|
|
107
|
+
clientId: clientId.value,
|
|
108
|
+
redirectUri: redirect_uri,
|
|
109
|
+
popup: true
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
</script>
|
|
113
|
+
</body>
|
|
114
|
+
</html>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 630 630">
|
|
2
|
+
<rect width="630" height="630" fill="#f7df1e"/>
|
|
3
|
+
<path d="m423.2 492.19c12.69 20.72 29.2 35.95 58.4 35.95 24.53 0 40.2-12.26 40.2-29.2 0-20.3-16.1-27.49-43.1-39.3l-14.8-6.35c-42.72-18.2-71.1-41-71.1-89.2 0-44.4 33.83-78.2 86.7-78.2 37.64 0 64.7 13.1 84.2 47.4l-46.1 29.6c-10.15-18.2-21.1-25.37-38.1-25.37-17.34 0-28.33 11-28.33 25.37 0 17.76 11 24.95 36.4 35.95l14.8 6.34c50.3 21.57 78.7 43.56 78.7 93 0 53.3-41.87 82.5-98.1 82.5-54.98 0-90.5-26.2-107.88-60.54zm-209.13 5.13c9.3 16.5 17.76 30.45 38.1 30.45 19.45 0 31.72-7.61 31.72-37.2v-201.3h59.2v202.1c0 61.3-35.94 89.2-88.4 89.2-47.4 0-74.85-24.53-88.81-54.075z"/>
|
|
4
|
+
</svg>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"private": true,
|
|
3
|
+
"name": "@esri/arcgis-rest-demo-vanilla-oauth-2-browser-retry",
|
|
4
|
+
"version": "3.3.0",
|
|
5
|
+
"description": "Vanilla JavaScript demo of @esri/arcgis-rest-* packages",
|
|
6
|
+
"license": "Apache-2.0",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"start": "node ../../scripts/run-demo-server.js"
|
|
9
|
+
},
|
|
10
|
+
"dependencies": {
|
|
11
|
+
"@esri/arcgis-rest-auth": "^3.3.0",
|
|
12
|
+
"@esri/arcgis-rest-request": "^3.3.0"
|
|
13
|
+
},
|
|
14
|
+
"author": ""
|
|
15
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# ArcGIS REST JS + Parcel
|
|
2
|
+
|
|
3
|
+
1. Run `npm run build` in the root directory
|
|
4
|
+
1. Run `npm i` in this directory
|
|
5
|
+
1. Run `npm start` to spin up the development server.
|
|
6
|
+
1. Visit [http://localhost:1234](http://localhost:8080).
|
|
7
|
+
|
|
8
|
+
**Note:** We currently point the `NODE_ENV` variable at the root of this monorepo to [resolve an issue with Parcel and monorepos](https://github.com/parcel-bundler/parcel/issues/1588). If you use ArcGIS REST JS with Parcel yourself you likely won't need this.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="utf-8" />
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
|
+
<meta name="description" content="Starter Parcel App" />
|
|
8
|
+
<title>Starter Parcel App</title>
|
|
9
|
+
</head>
|
|
10
|
+
|
|
11
|
+
<body>
|
|
12
|
+
<h1>Welcome to Parcel!</h1>
|
|
13
|
+
<script src="/index.js"></script>
|
|
14
|
+
</body>
|
|
15
|
+
|
|
16
|
+
</html>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"private": true,
|
|
3
|
+
"name": "@esri/arcgis-rest-demo-parcel",
|
|
4
|
+
"version": "3.3.0",
|
|
5
|
+
"description": "Demo of @esri/arcgis-rest-* w/ Snowpack",
|
|
6
|
+
"license": "Apache-2.0",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"scripts": {
|
|
9
|
+
"build": "NODE_PATH=../../ parcel build index.html",
|
|
10
|
+
"start": "NODE_PATH=../../ parcel index.html"
|
|
11
|
+
},
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"@esri/arcgis-rest-portal": "^3.3.0",
|
|
14
|
+
"@esri/arcgis-rest-request": "^3.3.0"
|
|
15
|
+
},
|
|
16
|
+
"devDependencies": {
|
|
17
|
+
"parcel-bundler": "^1.12.5"
|
|
18
|
+
},
|
|
19
|
+
"author": ""
|
|
20
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# ArcGIS REST JS + Native Browser Modules
|
|
2
|
+
|
|
3
|
+
1. Run `npm run build` in the root directory
|
|
4
|
+
1. Run `npm i` in this directory
|
|
5
|
+
1. Run `npm start` to spin up the development server.
|
|
6
|
+
1. Visit [http://localhost:8080](http://localhost:8080).
|
|
7
|
+
|
|
8
|
+
**Note:** We have `workspaceRoot` configured because this is part of our monorepo setup. If you use ArcGIS REST JS with Snowpack yourself you likely won't need this.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="utf-8" />
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
|
+
<meta name="description" content="Starter Snowpack App" />
|
|
8
|
+
<title>Starter Snowpack App</title>
|
|
9
|
+
</head>
|
|
10
|
+
|
|
11
|
+
<body>
|
|
12
|
+
<h1>Welcome to Snowpack!</h1>
|
|
13
|
+
<script type="module" src="/index.js"></script>
|
|
14
|
+
</body>
|
|
15
|
+
|
|
16
|
+
</html>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"private": true,
|
|
3
|
+
"name": "@esri/arcgis-rest-demo-snowpack",
|
|
4
|
+
"version": "3.3.0",
|
|
5
|
+
"description": "Demo of @esri/arcgis-rest-* w/ Snowpack",
|
|
6
|
+
"license": "Apache-2.0",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"scripts": {
|
|
9
|
+
"build": "snowpack build",
|
|
10
|
+
"start": "snowpack dev"
|
|
11
|
+
},
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"@esri/arcgis-rest-portal": "^3.3.0",
|
|
14
|
+
"@esri/arcgis-rest-request": "^3.3.0"
|
|
15
|
+
},
|
|
16
|
+
"devDependencies": {
|
|
17
|
+
"snowpack": "^3.8.8"
|
|
18
|
+
},
|
|
19
|
+
"author": ""
|
|
20
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Running this demo
|
|
2
|
+
|
|
3
|
+
1. Make sure you run `npm run build` in the root folder to setup the dependencies
|
|
4
|
+
1. cd into `/demos/stream-response-to-file/`
|
|
5
|
+
1. Run `npm start`
|
|
6
|
+
|
|
7
|
+
Features from https://services.arcgis.com/uUvqNMGPm7axC2dD/arcgis/rest/services/Boating_Access_Sites/FeatureServer/0 will be written in GeoJSON format to a file in the `output` directory.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
const { queryFeatures } = require("@esri/arcgis-rest-feature-service");
|
|
2
|
+
const fs = require("fs");
|
|
3
|
+
|
|
4
|
+
const outFileName = `./output/${Date.now()}.geojson`;
|
|
5
|
+
const outFile = fs.createWriteStream(outFileName);
|
|
6
|
+
const serviceUrl =
|
|
7
|
+
"https://services.arcgis.com/uUvqNMGPm7axC2dD/arcgis/rest/services/Boating_Access_Sites/FeatureServer/0/query";
|
|
8
|
+
|
|
9
|
+
// const params = {
|
|
10
|
+
// outSR: "4326",
|
|
11
|
+
// returnGeometry: true,
|
|
12
|
+
// f: "geojson"
|
|
13
|
+
// };
|
|
14
|
+
|
|
15
|
+
queryFeatures({
|
|
16
|
+
url: serviceUrl,
|
|
17
|
+
outSR: "4326",
|
|
18
|
+
returnGeometry: true,
|
|
19
|
+
f: "geojson",
|
|
20
|
+
rawResponse: true
|
|
21
|
+
})
|
|
22
|
+
.then((resp) => {
|
|
23
|
+
//Access any response methods, or ReadableStream body
|
|
24
|
+
//https://developer.mozilla.org/en-US/docs/Web/API/Response
|
|
25
|
+
const stream = resp.body;
|
|
26
|
+
stream.pipe(outFile);
|
|
27
|
+
stream.on("data", (data) => {
|
|
28
|
+
console.log("Buffering: ", data);
|
|
29
|
+
});
|
|
30
|
+
stream.on("end", () => {
|
|
31
|
+
console.log(`Finished: ${outFileName}`);
|
|
32
|
+
});
|
|
33
|
+
})
|
|
34
|
+
.catch((err) => {
|
|
35
|
+
console.log(err);
|
|
36
|
+
});
|
|
File without changes
|