culparepellendus 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (470) hide show
  1. package/.env.example +2 -0
  2. package/.eslintrc.js +20 -0
  3. package/.github/workflows/deploy-docs.yml +27 -0
  4. package/.github/workflows/pre-release-tests.yml +45 -0
  5. package/.github/workflows/pull-request-tests.yml +45 -0
  6. package/.prettierignore +2 -0
  7. package/.prettierrc +19 -0
  8. package/.vscode/launch.json +24 -0
  9. package/.vscode/settings.json +3 -0
  10. package/codecov.yml +7 -0
  11. package/demos/.eslintrc.js +13 -0
  12. package/demos/ago-node-cli/README.md +29 -0
  13. package/demos/ago-node-cli/ago.js +33 -0
  14. package/demos/ago-node-cli/index.js +11 -0
  15. package/demos/ago-node-cli/lib/item-export-command.js +48 -0
  16. package/demos/ago-node-cli/lib/item-search-command.js +35 -0
  17. package/demos/ago-node-cli/package-lock.json +430 -0
  18. package/demos/ago-node-cli/package.json +30 -0
  19. package/demos/attachments/README.md +5 -0
  20. package/demos/attachments/index.html +165 -0
  21. package/demos/attachments/package-lock.json +543 -0
  22. package/demos/attachments/package.json +18 -0
  23. package/demos/batch-geocoder-node/NYC_Restaurant_Inspection_Results.csv +100 -0
  24. package/demos/batch-geocoder-node/README.md +15 -0
  25. package/demos/batch-geocoder-node/batch-geocode.js +115 -0
  26. package/demos/batch-geocoder-node/config-template.js +18 -0
  27. package/demos/batch-geocoder-node/package-lock.json +336 -0
  28. package/demos/batch-geocoder-node/package.json +37 -0
  29. package/demos/express/README.md +15 -0
  30. package/demos/express/config.json.template +3 -0
  31. package/demos/express/package-lock.json +1008 -0
  32. package/demos/express/package.json +18 -0
  33. package/demos/express/server.js +33 -0
  34. package/demos/feature-service-browser/README.md +6 -0
  35. package/demos/feature-service-browser/index.html +122 -0
  36. package/demos/feature-service-browser/package-lock.json +543 -0
  37. package/demos/feature-service-browser/package.json +18 -0
  38. package/demos/geocoder-browser/README.md +10 -0
  39. package/demos/geocoder-browser/config.js.template +1 -0
  40. package/demos/geocoder-browser/index.html +131 -0
  41. package/demos/geocoder-browser/package-lock.json +610 -0
  42. package/demos/geocoder-browser/package.json +19 -0
  43. package/demos/geocoder-browser/post-sign-in.html +25 -0
  44. package/demos/jsapi-integration/README.md +25 -0
  45. package/demos/jsapi-integration/config.js +6 -0
  46. package/demos/jsapi-integration/index.html +93 -0
  47. package/demos/jsapi-integration/package-lock.json +247 -0
  48. package/demos/jsapi-integration/package.json +19 -0
  49. package/demos/node-cli-item-management/README.md +10 -0
  50. package/demos/node-cli-item-management/index.js +238 -0
  51. package/demos/node-cli-item-management/package-lock.json +432 -0
  52. package/demos/node-cli-item-management/package.json +27 -0
  53. package/demos/node-cli-item-management/screenshot.png +0 -0
  54. package/demos/oauth2-browser/README.md +14 -0
  55. package/demos/oauth2-browser/authenticate.html +30 -0
  56. package/demos/oauth2-browser/config.js.template +6 -0
  57. package/demos/oauth2-browser/index.html +211 -0
  58. package/demos/oauth2-browser/logo.svg +4 -0
  59. package/demos/oauth2-browser/package-lock.json +474 -0
  60. package/demos/oauth2-browser/package.json +18 -0
  61. package/demos/oauth2-browser/style.css +36 -0
  62. package/demos/oauth2-browser-retry/README.md +25 -0
  63. package/demos/oauth2-browser-retry/authenticate.html +22 -0
  64. package/demos/oauth2-browser-retry/index.html +116 -0
  65. package/demos/oauth2-browser-retry/logo.svg +4 -0
  66. package/demos/stream-response-to-file/README.md +7 -0
  67. package/demos/stream-response-to-file/index.js +36 -0
  68. package/demos/stream-response-to-file/output/.gitkeep +0 -0
  69. package/demos/stream-response-to-file/package-lock.json +227 -0
  70. package/demos/stream-response-to-file/package.json +33 -0
  71. package/demos/tree-shaking-rollup/.babelrc +3 -0
  72. package/demos/tree-shaking-rollup/README.md +9 -0
  73. package/demos/tree-shaking-rollup/index.html +11 -0
  74. package/demos/tree-shaking-rollup/package-lock.json +5646 -0
  75. package/demos/tree-shaking-rollup/package.json +25 -0
  76. package/demos/tree-shaking-rollup/rollup.config.js +17 -0
  77. package/demos/tree-shaking-rollup/src/index.js +8 -0
  78. package/demos/tree-shaking-webpack/README.md +8 -0
  79. package/demos/tree-shaking-webpack/index.html +11 -0
  80. package/demos/tree-shaking-webpack/package-lock.json +11455 -0
  81. package/demos/tree-shaking-webpack/package.json +24 -0
  82. package/demos/tree-shaking-webpack/src/index.js +10 -0
  83. package/demos/tree-shaking-webpack/webpack.config.js +27 -0
  84. package/demos/vue/.env.example +11 -0
  85. package/demos/vue/.eslintrc.js +17 -0
  86. package/demos/vue/.postcssrc.js +5 -0
  87. package/demos/vue/README.md +17 -0
  88. package/demos/vue/babel.config.js +3 -0
  89. package/demos/vue/package-lock.json +28044 -0
  90. package/demos/vue/package.json +33 -0
  91. package/demos/vue/public/favicon.ico +0 -0
  92. package/demos/vue/public/index.html +24 -0
  93. package/demos/vue/src/assets/logo.svg +29 -0
  94. package/demos/vue/src/components/App.vue +305 -0
  95. package/demos/vue/src/components/Authenticate.vue +65 -0
  96. package/demos/vue/src/components/Loader.vue +230 -0
  97. package/demos/vue/src/main.js +92 -0
  98. package/demos/webmap-checker-sapper/.env.example +5 -0
  99. package/demos/webmap-checker-sapper/README.md +123 -0
  100. package/demos/webmap-checker-sapper/appveyor.yml +18 -0
  101. package/demos/webmap-checker-sapper/cypress/fixtures/example.json +5 -0
  102. package/demos/webmap-checker-sapper/cypress/integration/spec.js +19 -0
  103. package/demos/webmap-checker-sapper/cypress/plugins/index.js +17 -0
  104. package/demos/webmap-checker-sapper/cypress/support/commands.js +25 -0
  105. package/demos/webmap-checker-sapper/cypress/support/index.js +20 -0
  106. package/demos/webmap-checker-sapper/cypress.json +4 -0
  107. package/demos/webmap-checker-sapper/package-lock.json +9622 -0
  108. package/demos/webmap-checker-sapper/package.json +50 -0
  109. package/demos/webmap-checker-sapper/rollup.config.js +87 -0
  110. package/demos/webmap-checker-sapper/src/client.js +20 -0
  111. package/demos/webmap-checker-sapper/src/components/LayerStatus.html +108 -0
  112. package/demos/webmap-checker-sapper/src/components/Nav.html +21 -0
  113. package/demos/webmap-checker-sapper/src/components/WebMap.html +62 -0
  114. package/demos/webmap-checker-sapper/src/routes/_error.html +41 -0
  115. package/demos/webmap-checker-sapper/src/routes/_layout.html +21 -0
  116. package/demos/webmap-checker-sapper/src/routes/auth/authorize.js +18 -0
  117. package/demos/webmap-checker-sapper/src/routes/auth/exchange-token.js +20 -0
  118. package/demos/webmap-checker-sapper/src/routes/auth/post-sign-in.js +24 -0
  119. package/demos/webmap-checker-sapper/src/routes/auth/sign-out.js +10 -0
  120. package/demos/webmap-checker-sapper/src/routes/index.html +20 -0
  121. package/demos/webmap-checker-sapper/src/routes/webmaps/[webmapId].html +83 -0
  122. package/demos/webmap-checker-sapper/src/routes/webmaps/index.html +59 -0
  123. package/demos/webmap-checker-sapper/src/server.js +101 -0
  124. package/demos/webmap-checker-sapper/src/service-worker.js +82 -0
  125. package/demos/webmap-checker-sapper/src/template.html +33 -0
  126. package/demos/webmap-checker-sapper/src/userInfoMiddleware.js +21 -0
  127. package/demos/webmap-checker-sapper/src/utils.js +33 -0
  128. package/demos/webmap-checker-sapper/static/favicon.png +0 -0
  129. package/demos/webmap-checker-sapper/static/global.css +36 -0
  130. package/demos/webmap-checker-sapper/static/manifest.json +20 -0
  131. package/demos/webmap-checker-sapper/static/svelte-logo-192.png +0 -0
  132. package/demos/webmap-checker-sapper/static/svelte-logo-512.png +0 -0
  133. package/docs/.eslintrc.js +12 -0
  134. package/docs/FAQ.md +48 -0
  135. package/docs/HISTORY.md +62 -0
  136. package/docs/acetate.config.js +262 -0
  137. package/docs/build-typedoc.js +434 -0
  138. package/docs/generate-srihashes.js +53 -0
  139. package/docs/src/_layout.html +86 -0
  140. package/docs/src/api/_declaration.html +600 -0
  141. package/docs/src/api/_layout.html +204 -0
  142. package/docs/src/api/_package.html +38 -0
  143. package/docs/src/api/index.html +16 -0
  144. package/docs/src/guides/_layout.html +24 -0
  145. package/docs/src/guides/amd-requirejs-dojo.md +40 -0
  146. package/docs/src/guides/browser-authentication.md +39 -0
  147. package/docs/src/guides/bundlers.md +52 -0
  148. package/docs/src/guides/cli-authentication.md +9 -0
  149. package/docs/src/guides/client-server-authentication.md +9 -0
  150. package/docs/src/guides/embedded-apps.md +106 -0
  151. package/docs/src/guides/from-a-cdn.md +38 -0
  152. package/docs/src/guides/index.md +59 -0
  153. package/docs/src/guides/node.md +104 -0
  154. package/docs/src/guides/package-overview.md +111 -0
  155. package/docs/src/guides/server-authentication.md +9 -0
  156. package/docs/src/guides/whats-new-v2-0.md +305 -0
  157. package/docs/src/img/icons.png +0 -0
  158. package/docs/src/img/icons@2x.png +0 -0
  159. package/docs/src/img/oauth-browser.png +0 -0
  160. package/docs/src/index.html +12 -0
  161. package/docs/src/js/api-search.js +112 -0
  162. package/docs/src/js/nav-toggle.js +41 -0
  163. package/docs/src/sass/_highlight.scss +96 -0
  164. package/docs/src/sass/_icons.scss +157 -0
  165. package/docs/src/sass/style.scss +242 -0
  166. package/docs/src/srihashes.json +12 -0
  167. package/jasmine.json +7 -0
  168. package/jasmine.live.json +7 -0
  169. package/karma.conf.js +107 -0
  170. package/lerna.json +8 -0
  171. package/notes/README.md +68 -0
  172. package/package.json +87 -0
  173. package/packages/arcgis-rest-auth/README.md +71 -0
  174. package/packages/arcgis-rest-auth/package-lock.json +27 -0
  175. package/packages/arcgis-rest-auth/package.json +69 -0
  176. package/packages/arcgis-rest-auth/post-message-auth-spec.md +70 -0
  177. package/packages/arcgis-rest-auth/src/ApiKey.ts +41 -0
  178. package/packages/arcgis-rest-auth/src/ApplicationSession.ts +122 -0
  179. package/packages/arcgis-rest-auth/src/UserSession.ts +1376 -0
  180. package/packages/arcgis-rest-auth/src/app-tokens.ts +131 -0
  181. package/packages/arcgis-rest-auth/src/authenticated-request-options.ts +24 -0
  182. package/packages/arcgis-rest-auth/src/federation-utils.ts +85 -0
  183. package/packages/arcgis-rest-auth/src/fetch-token.ts +50 -0
  184. package/packages/arcgis-rest-auth/src/generate-token.ts +35 -0
  185. package/packages/arcgis-rest-auth/src/index.ts +13 -0
  186. package/packages/arcgis-rest-auth/src/validate-app-access.ts +68 -0
  187. package/packages/arcgis-rest-auth/test/ApiKey.test.ts +35 -0
  188. package/packages/arcgis-rest-auth/test/ApplicationSession.test.ts +124 -0
  189. package/packages/arcgis-rest-auth/test/UserSession.test.ts +2430 -0
  190. package/packages/arcgis-rest-auth/test/app-tokens.test.ts +95 -0
  191. package/packages/arcgis-rest-auth/test/federation-utils.test.ts +323 -0
  192. package/packages/arcgis-rest-auth/test/fetchToken.test.ts +112 -0
  193. package/packages/arcgis-rest-auth/test/generateToken.test.ts +102 -0
  194. package/packages/arcgis-rest-auth/test/utils.ts +14 -0
  195. package/packages/arcgis-rest-auth/test/validate-app-access.test.ts +46 -0
  196. package/packages/arcgis-rest-auth/tsconfig.json +6 -0
  197. package/packages/arcgis-rest-demographics/README.md +75 -0
  198. package/packages/arcgis-rest-demographics/package-lock.json +11 -0
  199. package/packages/arcgis-rest-demographics/package.json +69 -0
  200. package/packages/arcgis-rest-demographics/src/getAvailableCountries.ts +113 -0
  201. package/packages/arcgis-rest-demographics/src/getAvailableDataCollections.ts +166 -0
  202. package/packages/arcgis-rest-demographics/src/getAvailableGeographyLevels.ts +88 -0
  203. package/packages/arcgis-rest-demographics/src/getGeography.ts +152 -0
  204. package/packages/arcgis-rest-demographics/src/helpers.ts +28 -0
  205. package/packages/arcgis-rest-demographics/src/index.ts +8 -0
  206. package/packages/arcgis-rest-demographics/src/queryDemographicData.ts +106 -0
  207. package/packages/arcgis-rest-demographics/test/getAvailableCountries.test.ts +92 -0
  208. package/packages/arcgis-rest-demographics/test/getAvailableDataCollections.test.ts +115 -0
  209. package/packages/arcgis-rest-demographics/test/getAvailableGeographyLevels.test.ts +72 -0
  210. package/packages/arcgis-rest-demographics/test/getGeography.test.ts +141 -0
  211. package/packages/arcgis-rest-demographics/test/mocks/responses.ts +4 -0
  212. package/packages/arcgis-rest-demographics/test/queryDemographicData.test.live.ts +42 -0
  213. package/packages/arcgis-rest-demographics/test/queryDemographicData.test.ts +113 -0
  214. package/packages/arcgis-rest-demographics/tsconfig.json +6 -0
  215. package/packages/arcgis-rest-feature-layer/README.md +77 -0
  216. package/packages/arcgis-rest-feature-layer/package-lock.json +11 -0
  217. package/packages/arcgis-rest-feature-layer/package.json +64 -0
  218. package/packages/arcgis-rest-feature-layer/src/add.ts +56 -0
  219. package/packages/arcgis-rest-feature-layer/src/addAttachment.ts +53 -0
  220. package/packages/arcgis-rest-feature-layer/src/applyEdits.ts +95 -0
  221. package/packages/arcgis-rest-feature-layer/src/decodeValues.ts +122 -0
  222. package/packages/arcgis-rest-feature-layer/src/delete.ts +61 -0
  223. package/packages/arcgis-rest-feature-layer/src/deleteAttachments.ts +52 -0
  224. package/packages/arcgis-rest-feature-layer/src/getAllLayersAndTables.ts +30 -0
  225. package/packages/arcgis-rest-feature-layer/src/getAttachments.ts +55 -0
  226. package/packages/arcgis-rest-feature-layer/src/getLayer.ts +24 -0
  227. package/packages/arcgis-rest-feature-layer/src/getService.ts +26 -0
  228. package/packages/arcgis-rest-feature-layer/src/helpers.ts +97 -0
  229. package/packages/arcgis-rest-feature-layer/src/index.ts +32 -0
  230. package/packages/arcgis-rest-feature-layer/src/query.ts +204 -0
  231. package/packages/arcgis-rest-feature-layer/src/queryRelated.ts +89 -0
  232. package/packages/arcgis-rest-feature-layer/src/update.ts +60 -0
  233. package/packages/arcgis-rest-feature-layer/src/updateAttachment.ts +59 -0
  234. package/packages/arcgis-rest-feature-layer/test/attachments.test.ts +200 -0
  235. package/packages/arcgis-rest-feature-layer/test/crud.test.ts +197 -0
  236. package/packages/arcgis-rest-feature-layer/test/decodeValues.test.ts +67 -0
  237. package/packages/arcgis-rest-feature-layer/test/getAllLayersAndTables.test.ts +28 -0
  238. package/packages/arcgis-rest-feature-layer/test/getLayer.test.ts +31 -0
  239. package/packages/arcgis-rest-feature-layer/test/getService.test.ts +31 -0
  240. package/packages/arcgis-rest-feature-layer/test/helpers.test.ts +25 -0
  241. package/packages/arcgis-rest-feature-layer/test/mocks/allLayersAndTablesResponse.ts +906 -0
  242. package/packages/arcgis-rest-feature-layer/test/mocks/cvdQueryResponse.ts +225 -0
  243. package/packages/arcgis-rest-feature-layer/test/mocks/feature.ts +302 -0
  244. package/packages/arcgis-rest-feature-layer/test/mocks/fields.ts +779 -0
  245. package/packages/arcgis-rest-feature-layer/test/mocks/foo.txt +1 -0
  246. package/packages/arcgis-rest-feature-layer/test/mocks/service.ts +398 -0
  247. package/packages/arcgis-rest-feature-layer/test/query.test.ts +167 -0
  248. package/packages/arcgis-rest-feature-layer/tsconfig.json +6 -0
  249. package/packages/arcgis-rest-geocoding/README.md +86 -0
  250. package/packages/arcgis-rest-geocoding/package-lock.json +43 -0
  251. package/packages/arcgis-rest-geocoding/package.json +66 -0
  252. package/packages/arcgis-rest-geocoding/src/bulk.ts +104 -0
  253. package/packages/arcgis-rest-geocoding/src/geocode.ts +166 -0
  254. package/packages/arcgis-rest-geocoding/src/helpers.ts +56 -0
  255. package/packages/arcgis-rest-geocoding/src/index.ts +15 -0
  256. package/packages/arcgis-rest-geocoding/src/reverse.ts +84 -0
  257. package/packages/arcgis-rest-geocoding/src/suggest.ts +45 -0
  258. package/packages/arcgis-rest-geocoding/test/bulk.test.ts +194 -0
  259. package/packages/arcgis-rest-geocoding/test/geocode.test.ts +253 -0
  260. package/packages/arcgis-rest-geocoding/test/helpers.test.ts +85 -0
  261. package/packages/arcgis-rest-geocoding/test/mocks/responses.ts +591 -0
  262. package/packages/arcgis-rest-geocoding/test/reverse.test.ts +126 -0
  263. package/packages/arcgis-rest-geocoding/test/suggest.test.ts +53 -0
  264. package/packages/arcgis-rest-geocoding/tsconfig.json +6 -0
  265. package/packages/arcgis-rest-portal/README.md +73 -0
  266. package/packages/arcgis-rest-portal/package-lock.json +37 -0
  267. package/packages/arcgis-rest-portal/package.json +64 -0
  268. package/packages/arcgis-rest-portal/src/groups/add-users.ts +140 -0
  269. package/packages/arcgis-rest-portal/src/groups/create.ts +43 -0
  270. package/packages/arcgis-rest-portal/src/groups/get.ts +184 -0
  271. package/packages/arcgis-rest-portal/src/groups/helpers.ts +14 -0
  272. package/packages/arcgis-rest-portal/src/groups/invite-users.ts +127 -0
  273. package/packages/arcgis-rest-portal/src/groups/join.ts +57 -0
  274. package/packages/arcgis-rest-portal/src/groups/notification.ts +77 -0
  275. package/packages/arcgis-rest-portal/src/groups/protect.ts +56 -0
  276. package/packages/arcgis-rest-portal/src/groups/remove-users.ts +76 -0
  277. package/packages/arcgis-rest-portal/src/groups/remove.ts +32 -0
  278. package/packages/arcgis-rest-portal/src/groups/search.ts +47 -0
  279. package/packages/arcgis-rest-portal/src/groups/update-user-membership.ts +63 -0
  280. package/packages/arcgis-rest-portal/src/groups/update.ts +39 -0
  281. package/packages/arcgis-rest-portal/src/index.ts +70 -0
  282. package/packages/arcgis-rest-portal/src/items/add.ts +138 -0
  283. package/packages/arcgis-rest-portal/src/items/content.ts +67 -0
  284. package/packages/arcgis-rest-portal/src/items/create.ts +150 -0
  285. package/packages/arcgis-rest-portal/src/items/export.ts +80 -0
  286. package/packages/arcgis-rest-portal/src/items/get.ts +437 -0
  287. package/packages/arcgis-rest-portal/src/items/helpers.ts +292 -0
  288. package/packages/arcgis-rest-portal/src/items/protect.ts +41 -0
  289. package/packages/arcgis-rest-portal/src/items/reassign.ts +61 -0
  290. package/packages/arcgis-rest-portal/src/items/remove.ts +141 -0
  291. package/packages/arcgis-rest-portal/src/items/search.ts +25 -0
  292. package/packages/arcgis-rest-portal/src/items/update.ts +185 -0
  293. package/packages/arcgis-rest-portal/src/items/upload.ts +125 -0
  294. package/packages/arcgis-rest-portal/src/orgs/notification.ts +131 -0
  295. package/packages/arcgis-rest-portal/src/services/get-unique-service-name.ts +35 -0
  296. package/packages/arcgis-rest-portal/src/services/is-service-name-available.ts +30 -0
  297. package/packages/arcgis-rest-portal/src/sharing/access.ts +84 -0
  298. package/packages/arcgis-rest-portal/src/sharing/helpers.ts +81 -0
  299. package/packages/arcgis-rest-portal/src/sharing/is-item-shared-with-group.ts +42 -0
  300. package/packages/arcgis-rest-portal/src/sharing/share-item-with-group.ts +340 -0
  301. package/packages/arcgis-rest-portal/src/sharing/unshare-item-with-group.ts +105 -0
  302. package/packages/arcgis-rest-portal/src/users/get-user-tags.ts +52 -0
  303. package/packages/arcgis-rest-portal/src/users/get-user-url.ts +18 -0
  304. package/packages/arcgis-rest-portal/src/users/get-user.ts +58 -0
  305. package/packages/arcgis-rest-portal/src/users/invitation.ts +156 -0
  306. package/packages/arcgis-rest-portal/src/users/notification.ts +68 -0
  307. package/packages/arcgis-rest-portal/src/users/search-users.ts +37 -0
  308. package/packages/arcgis-rest-portal/src/users/update.ts +66 -0
  309. package/packages/arcgis-rest-portal/src/util/SearchQueryBuilder.ts +391 -0
  310. package/packages/arcgis-rest-portal/src/util/array.ts +16 -0
  311. package/packages/arcgis-rest-portal/src/util/generic-search.ts +114 -0
  312. package/packages/arcgis-rest-portal/src/util/get-portal-settings.ts +45 -0
  313. package/packages/arcgis-rest-portal/src/util/get-portal-url.ts +28 -0
  314. package/packages/arcgis-rest-portal/src/util/get-portal.ts +53 -0
  315. package/packages/arcgis-rest-portal/src/util/get-subscription-info.ts +43 -0
  316. package/packages/arcgis-rest-portal/src/util/scrub-control-chars.ts +13 -0
  317. package/packages/arcgis-rest-portal/src/util/search.ts +47 -0
  318. package/packages/arcgis-rest-portal/test/groups/add-users.test.ts +239 -0
  319. package/packages/arcgis-rest-portal/test/groups/crud.test.ts +180 -0
  320. package/packages/arcgis-rest-portal/test/groups/get.test.ts +176 -0
  321. package/packages/arcgis-rest-portal/test/groups/invite-users.test.ts +146 -0
  322. package/packages/arcgis-rest-portal/test/groups/join.test.ts +72 -0
  323. package/packages/arcgis-rest-portal/test/groups/notification.test.ts +112 -0
  324. package/packages/arcgis-rest-portal/test/groups/protect.test.ts +72 -0
  325. package/packages/arcgis-rest-portal/test/groups/remove-users.test.ts +140 -0
  326. package/packages/arcgis-rest-portal/test/groups/search.test.ts +151 -0
  327. package/packages/arcgis-rest-portal/test/groups/update-user-membership.test.ts +62 -0
  328. package/packages/arcgis-rest-portal/test/items/add.test.ts +323 -0
  329. package/packages/arcgis-rest-portal/test/items/content.test.ts +156 -0
  330. package/packages/arcgis-rest-portal/test/items/create.test.ts +400 -0
  331. package/packages/arcgis-rest-portal/test/items/export.test.ts +122 -0
  332. package/packages/arcgis-rest-portal/test/items/get.test.ts +583 -0
  333. package/packages/arcgis-rest-portal/test/items/helpers.test.ts +60 -0
  334. package/packages/arcgis-rest-portal/test/items/protect.test.ts +122 -0
  335. package/packages/arcgis-rest-portal/test/items/reassign.test.ts +131 -0
  336. package/packages/arcgis-rest-portal/test/items/remove.test.ts +261 -0
  337. package/packages/arcgis-rest-portal/test/items/search.test.ts +322 -0
  338. package/packages/arcgis-rest-portal/test/items/update.test.ts +556 -0
  339. package/packages/arcgis-rest-portal/test/items/upload.test.ts +282 -0
  340. package/packages/arcgis-rest-portal/test/mocks/groups/responses.ts +208 -0
  341. package/packages/arcgis-rest-portal/test/mocks/items/foo.zip +0 -0
  342. package/packages/arcgis-rest-portal/test/mocks/items/item.ts +526 -0
  343. package/packages/arcgis-rest-portal/test/mocks/items/resources.ts +38 -0
  344. package/packages/arcgis-rest-portal/test/mocks/items/search.ts +121 -0
  345. package/packages/arcgis-rest-portal/test/mocks/portal/response.ts +126 -0
  346. package/packages/arcgis-rest-portal/test/mocks/portal/settings-response.ts +56 -0
  347. package/packages/arcgis-rest-portal/test/mocks/sharing/sharing.ts +18 -0
  348. package/packages/arcgis-rest-portal/test/mocks/users/invitation.ts +70 -0
  349. package/packages/arcgis-rest-portal/test/mocks/users/notification.ts +34 -0
  350. package/packages/arcgis-rest-portal/test/mocks/users/user-search.ts +388 -0
  351. package/packages/arcgis-rest-portal/test/mocks/users/user-tags.ts +5 -0
  352. package/packages/arcgis-rest-portal/test/mocks/users/user.ts +174 -0
  353. package/packages/arcgis-rest-portal/test/orgs/notification.test.ts +144 -0
  354. package/packages/arcgis-rest-portal/test/services/get-unique-service-name.test.ts +59 -0
  355. package/packages/arcgis-rest-portal/test/services/is-service-name-available.test.ts +46 -0
  356. package/packages/arcgis-rest-portal/test/sharing/access.test.ts +162 -0
  357. package/packages/arcgis-rest-portal/test/sharing/helpers.test.ts +55 -0
  358. package/packages/arcgis-rest-portal/test/sharing/share-item-with-group.test.ts +1382 -0
  359. package/packages/arcgis-rest-portal/test/sharing/unshare-item-with-group.test.ts +288 -0
  360. package/packages/arcgis-rest-portal/test/users/get-user-tags.test.ts +71 -0
  361. package/packages/arcgis-rest-portal/test/users/get-user-url.test.ts +40 -0
  362. package/packages/arcgis-rest-portal/test/users/get-user.test.ts +90 -0
  363. package/packages/arcgis-rest-portal/test/users/invitation.test.ts +127 -0
  364. package/packages/arcgis-rest-portal/test/users/notification.test.ts +77 -0
  365. package/packages/arcgis-rest-portal/test/users/search.test.ts +42 -0
  366. package/packages/arcgis-rest-portal/test/users/update.test.ts +151 -0
  367. package/packages/arcgis-rest-portal/test/util/SearchQueryBuilder.test.ts +345 -0
  368. package/packages/arcgis-rest-portal/test/util/array.test.ts +30 -0
  369. package/packages/arcgis-rest-portal/test/util/get-portal-settings.test.ts +68 -0
  370. package/packages/arcgis-rest-portal/test/util/get-portal-url.test.ts +37 -0
  371. package/packages/arcgis-rest-portal/test/util/portal.test.ts +148 -0
  372. package/packages/arcgis-rest-portal/test/util/scrub-control-chars.test.ts +22 -0
  373. package/packages/arcgis-rest-portal/tsconfig.json +6 -0
  374. package/packages/arcgis-rest-request/README.md +72 -0
  375. package/packages/arcgis-rest-request/package-lock.json +13 -0
  376. package/packages/arcgis-rest-request/package.json +60 -0
  377. package/packages/arcgis-rest-request/src/index.ts +25 -0
  378. package/packages/arcgis-rest-request/src/request.ts +433 -0
  379. package/packages/arcgis-rest-request/src/utils/ArcGISRequestError.ts +76 -0
  380. package/packages/arcgis-rest-request/src/utils/ErrorTypes.ts +29 -0
  381. package/packages/arcgis-rest-request/src/utils/GrantTypes.ts +5 -0
  382. package/packages/arcgis-rest-request/src/utils/HTTPMethods.ts +6 -0
  383. package/packages/arcgis-rest-request/src/utils/IAuthenticationManager.ts +22 -0
  384. package/packages/arcgis-rest-request/src/utils/IFetchTokenParams.ts +11 -0
  385. package/packages/arcgis-rest-request/src/utils/IGenerateTokenParams.ts +9 -0
  386. package/packages/arcgis-rest-request/src/utils/IParamBuilder.ts +3 -0
  387. package/packages/arcgis-rest-request/src/utils/IParams.ts +6 -0
  388. package/packages/arcgis-rest-request/src/utils/IParamsBuilder.ts +5 -0
  389. package/packages/arcgis-rest-request/src/utils/IRequestOptions.ts +54 -0
  390. package/packages/arcgis-rest-request/src/utils/ITokenRequestOptions.ts +9 -0
  391. package/packages/arcgis-rest-request/src/utils/ResponseFormats.ts +10 -0
  392. package/packages/arcgis-rest-request/src/utils/append-custom-params.ts +49 -0
  393. package/packages/arcgis-rest-request/src/utils/clean-url.ts +20 -0
  394. package/packages/arcgis-rest-request/src/utils/decode-query-string.ts +27 -0
  395. package/packages/arcgis-rest-request/src/utils/encode-form-data.ts +38 -0
  396. package/packages/arcgis-rest-request/src/utils/encode-query-string.ts +35 -0
  397. package/packages/arcgis-rest-request/src/utils/process-params.ts +109 -0
  398. package/packages/arcgis-rest-request/src/utils/retryAuthError.ts +10 -0
  399. package/packages/arcgis-rest-request/src/utils/warn.ts +11 -0
  400. package/packages/arcgis-rest-request/src/utils/with-options.ts +48 -0
  401. package/packages/arcgis-rest-request/test/mocks/errors.ts +76 -0
  402. package/packages/arcgis-rest-request/test/mocks/geojson-feature-collection.ts +13 -0
  403. package/packages/arcgis-rest-request/test/mocks/param-builder.ts +7 -0
  404. package/packages/arcgis-rest-request/test/mocks/sharing-rest-info.ts +41 -0
  405. package/packages/arcgis-rest-request/test/mocks/webmap.ts +41 -0
  406. package/packages/arcgis-rest-request/test/request.test.ts +621 -0
  407. package/packages/arcgis-rest-request/test/utils/ArcGISAuthError.test.ts +191 -0
  408. package/packages/arcgis-rest-request/test/utils/ArcGISRequestError.test.ts +51 -0
  409. package/packages/arcgis-rest-request/test/utils/check-for-errors.test.ts +111 -0
  410. package/packages/arcgis-rest-request/test/utils/clean-url.test.ts +50 -0
  411. package/packages/arcgis-rest-request/test/utils/encode-form-data.test.ts +133 -0
  412. package/packages/arcgis-rest-request/test/utils/encode-query-string.test.ts +18 -0
  413. package/packages/arcgis-rest-request/test/utils/process-params.test.ts +205 -0
  414. package/packages/arcgis-rest-request/test/utils/with-options.test.ts +133 -0
  415. package/packages/arcgis-rest-request/tsconfig.json +4 -0
  416. package/packages/arcgis-rest-routing/README.md +75 -0
  417. package/packages/arcgis-rest-routing/package-lock.json +43 -0
  418. package/packages/arcgis-rest-routing/package.json +65 -0
  419. package/packages/arcgis-rest-routing/src/closestFacility.ts +225 -0
  420. package/packages/arcgis-rest-routing/src/helpers.ts +104 -0
  421. package/packages/arcgis-rest-routing/src/index.ts +14 -0
  422. package/packages/arcgis-rest-routing/src/originDestinationMatrix.ts +223 -0
  423. package/packages/arcgis-rest-routing/src/serviceArea.ts +173 -0
  424. package/packages/arcgis-rest-routing/src/solveRoute.ts +180 -0
  425. package/packages/arcgis-rest-routing/test/closestFacility.test.ts +683 -0
  426. package/packages/arcgis-rest-routing/test/mocks/inputs.ts +132 -0
  427. package/packages/arcgis-rest-routing/test/mocks/responses.ts +13322 -0
  428. package/packages/arcgis-rest-routing/test/originDestinationMatrix.test.ts +797 -0
  429. package/packages/arcgis-rest-routing/test/serviceArea.test.ts +601 -0
  430. package/packages/arcgis-rest-routing/test/solveRoute.test.ts +677 -0
  431. package/packages/arcgis-rest-routing/tsconfig.json +6 -0
  432. package/packages/arcgis-rest-service-admin/README.md +73 -0
  433. package/packages/arcgis-rest-service-admin/package-lock.json +11 -0
  434. package/packages/arcgis-rest-service-admin/package.json +65 -0
  435. package/packages/arcgis-rest-service-admin/src/addTo.ts +70 -0
  436. package/packages/arcgis-rest-service-admin/src/create.ts +189 -0
  437. package/packages/arcgis-rest-service-admin/src/get-service-admin-info.ts +34 -0
  438. package/packages/arcgis-rest-service-admin/src/get-view-sources.ts +20 -0
  439. package/packages/arcgis-rest-service-admin/src/index.ts +14 -0
  440. package/packages/arcgis-rest-service-admin/src/update.ts +50 -0
  441. package/packages/arcgis-rest-service-admin/test/addTo.test.ts +350 -0
  442. package/packages/arcgis-rest-service-admin/test/create.test.ts +294 -0
  443. package/packages/arcgis-rest-service-admin/test/get-service-admin-info.test.ts +37 -0
  444. package/packages/arcgis-rest-service-admin/test/get-view-sources.test.ts +40 -0
  445. package/packages/arcgis-rest-service-admin/test/mocks/layerDefinition.ts +79 -0
  446. package/packages/arcgis-rest-service-admin/test/mocks/service.ts +81 -0
  447. package/packages/arcgis-rest-service-admin/test/update.test.ts +115 -0
  448. package/packages/arcgis-rest-service-admin/tsconfig.json +5 -0
  449. package/packages/arcgis-rest-types/README.md +66 -0
  450. package/packages/arcgis-rest-types/package-lock.json +5 -0
  451. package/packages/arcgis-rest-types/package.json +54 -0
  452. package/packages/arcgis-rest-types/src/feature.ts +42 -0
  453. package/packages/arcgis-rest-types/src/geometry.ts +272 -0
  454. package/packages/arcgis-rest-types/src/group.ts +72 -0
  455. package/packages/arcgis-rest-types/src/index.ts +9 -0
  456. package/packages/arcgis-rest-types/src/item.ts +81 -0
  457. package/packages/arcgis-rest-types/src/service.ts +156 -0
  458. package/packages/arcgis-rest-types/src/statisticDefinition.ts +33 -0
  459. package/packages/arcgis-rest-types/src/symbol.ts +170 -0
  460. package/packages/arcgis-rest-types/src/user.ts +49 -0
  461. package/packages/arcgis-rest-types/src/webmap.ts +1405 -0
  462. package/packages/arcgis-rest-types/tsconfig.json +10 -0
  463. package/support/changelog.js +393 -0
  464. package/support/deploy-doc-site.js +16 -0
  465. package/support/dev.sh +6 -0
  466. package/support/publish.sh +47 -0
  467. package/support/test-helpers.js +9 -0
  468. package/tsconfig.json +63 -0
  469. package/umd-base-profile.js +81 -0
  470. package/umd-production-profile.js +13 -0
@@ -0,0 +1,204 @@
1
+ {% extends "_layout" %} {% block scripts %}
2
+ <script src="https://unpkg.com/vue@2.4.2/dist/vue.min.js"></script>
3
+ <script src="https://unpkg.com/fuse.js@3.0.5/dist/fuse.min.js"></script>
4
+ <script src="/arcgis-rest-js/js/index.js"></script>
5
+ <script src="/arcgis-rest-js/js/api-search.js"></script>
6
+ <script src="/arcgis-rest-js/js/nav-toggle.js"></script>
7
+ <script>
8
+ new Vue({
9
+ el: "#page"
10
+ });
11
+ </script>
12
+
13
+ {% endblock %} {% block main %}
14
+ <div class="grid-container trailer-1 leader-1">
15
+ <nav class="column-6">
16
+ <api-search base-url="/arcgis-rest-js/">
17
+ <h3 class="font-size--1 trailer-quarter">Packages</h3>
18
+ <hr class="leader-quarter trailer-quarter" />
19
+ <ul class="list-plain">
20
+ {% for package in data.typedoc.packages %}
21
+ <li class="{{ package.icon }} api-list-item">
22
+ <nav-toggle index="{{ loop.index }}" package-name="{{ package.pkg.name }}" ></nav-toggle>
23
+ <button id="trigger{{ loop.index }}" class="btn btn-transparent api-toggle-button" >
24
+ <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" class="svg-icon">
25
+ <path d="M7 4h5l12 12-12 12H7l12-12L7 4z" />
26
+ </svg>
27
+ </button>
28
+ {% link package.pageUrl, package.pkg.name.replace("@esri/arcgis-rest-",""), class="tsd-kind-icon" %}
29
+ <ul id="list{{ loop.index }}" class="api-package-content-list">
30
+ {% for declaration in package.declarations %}
31
+ <li class="{{ declaration.icon }} padding-right-1 visually-hidden api-list-item">
32
+ {% link declaration.pageUrl, declaration.name, class="tsd-kind-icon padding-right-1" %}
33
+ </li>
34
+ {% endfor %}
35
+ </ul>
36
+ </li>
37
+ {% endfor %}
38
+ </ul>
39
+ </api-search>
40
+ </nav>
41
+
42
+ <div class="column-18">
43
+ <div class="panel panel-white padding-left-1 padding-right-1 padding-trailer-1 padding-leader-half">
44
+ {% block content %}{% endblock %}
45
+ </div>
46
+ </div>
47
+ </div>
48
+ {% endblock %} {% block footer %}
49
+ <div class="panel panel-white">
50
+ <div class="grid-container">
51
+ <div class="column-24">
52
+ <h2>Legend</h2>
53
+ <div
54
+ class="block-group block-group-4-up tablet-block-group-2-up phone-block-group-1-up"
55
+ >
56
+ <div class="block">
57
+ <ul class="list-plain">
58
+ <li class="tsd-kind-module">
59
+ <span class="tsd-kind-icon">Module</span>
60
+ </li>
61
+ <li class="tsd-kind-object-literal">
62
+ <span class="tsd-kind-icon">Object literal</span>
63
+ </li>
64
+ <li class="tsd-kind-variable">
65
+ <span class="tsd-kind-icon">Variable</span>
66
+ </li>
67
+ <li class="tsd-kind-function">
68
+ <span class="tsd-kind-icon">Function</span>
69
+ </li>
70
+ <li class="tsd-kind-function tsd-has-type-parameter">
71
+ <span class="tsd-kind-icon">Function with type parameter</span>
72
+ </li>
73
+ <li class="tsd-kind-index-signature">
74
+ <span class="tsd-kind-icon">Index signature</span>
75
+ </li>
76
+ <li class="tsd-kind-type-alias">
77
+ <span class="tsd-kind-icon">Type alias</span>
78
+ </li>
79
+ </ul>
80
+ </div>
81
+ <div class="block">
82
+ <ul class="list-plain">
83
+ <li class="tsd-kind-enumeration">
84
+ <span class="tsd-kind-icon">Enumeration</span>
85
+ </li>
86
+ <li class="tsd-kind-enumeration-member">
87
+ <span class="tsd-kind-icon">Enumeration member</span>
88
+ </li>
89
+ <li class="tsd-kind-property tsd-parent-kind-enumeration">
90
+ <span class="tsd-kind-icon">Property</span>
91
+ </li>
92
+ <li class="tsd-kind-method tsd-parent-kind-enumeration">
93
+ <span class="tsd-kind-icon">Method</span>
94
+ </li>
95
+ </ul>
96
+ </div>
97
+ <div class="block">
98
+ <ul class="list-plain">
99
+ <li class="tsd-kind-interface">
100
+ <span class="tsd-kind-icon">Interface</span>
101
+ </li>
102
+ <li class="tsd-kind-interface tsd-has-type-parameter">
103
+ <span class="tsd-kind-icon">Interface with type parameter</span>
104
+ </li>
105
+ <li class="tsd-kind-constructor tsd-parent-kind-interface">
106
+ <span class="tsd-kind-icon">Constructor</span>
107
+ </li>
108
+ <li class="tsd-kind-property tsd-parent-kind-interface">
109
+ <span class="tsd-kind-icon">Property</span>
110
+ </li>
111
+ <li class="tsd-kind-method tsd-parent-kind-interface">
112
+ <span class="tsd-kind-icon">Method</span>
113
+ </li>
114
+ <li class="tsd-kind-index-signature tsd-parent-kind-interface">
115
+ <span class="tsd-kind-icon">Index signature</span>
116
+ </li>
117
+ </ul>
118
+ </div>
119
+ <div class="block">
120
+ <ul class="list-plain">
121
+ <li class="tsd-kind-class">
122
+ <span class="tsd-kind-icon">Class</span>
123
+ </li>
124
+ <li class="tsd-kind-class tsd-has-type-parameter">
125
+ <span class="tsd-kind-icon">Class with type parameter</span>
126
+ </li>
127
+ <li class="tsd-kind-constructor tsd-parent-kind-class">
128
+ <span class="tsd-kind-icon">Constructor</span>
129
+ </li>
130
+ <li class="tsd-kind-property tsd-parent-kind-class">
131
+ <span class="tsd-kind-icon">Property</span>
132
+ </li>
133
+ <li class="tsd-kind-method tsd-parent-kind-class">
134
+ <span class="tsd-kind-icon">Method</span>
135
+ </li>
136
+ <li class="tsd-kind-accessor tsd-parent-kind-class">
137
+ <span class="tsd-kind-icon">Accessor</span>
138
+ </li>
139
+ <li class="tsd-kind-index-signature tsd-parent-kind-class">
140
+ <span class="tsd-kind-icon">Index signature</span>
141
+ </li>
142
+ </ul>
143
+ </div>
144
+ <div class="block">
145
+ <ul class="list-plain">
146
+ <li
147
+ class="tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited"
148
+ >
149
+ <span class="tsd-kind-icon">Inherited constructor</span>
150
+ </li>
151
+ <li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited">
152
+ <span class="tsd-kind-icon">Inherited property</span>
153
+ </li>
154
+ <li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
155
+ <span class="tsd-kind-icon">Inherited method</span>
156
+ </li>
157
+ <li class="tsd-kind-accessor tsd-parent-kind-class tsd-is-inherited">
158
+ <span class="tsd-kind-icon">Inherited accessor</span>
159
+ </li>
160
+ </ul>
161
+ </div>
162
+ <div class="block">
163
+ <ul class="list-plain">
164
+ <li class="tsd-kind-property tsd-parent-kind-class tsd-is-protected">
165
+ <span class="tsd-kind-icon">Protected property</span>
166
+ </li>
167
+ <li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected">
168
+ <span class="tsd-kind-icon">Protected method</span>
169
+ </li>
170
+ <li class="tsd-kind-accessor tsd-parent-kind-class tsd-is-protected">
171
+ <span class="tsd-kind-icon">Protected accessor</span>
172
+ </li>
173
+ </ul>
174
+ </div>
175
+ <div class="block">
176
+ <ul class="list-plain">
177
+ <li class="tsd-kind-property tsd-parent-kind-class tsd-is-private">
178
+ <span class="tsd-kind-icon">Private property</span>
179
+ </li>
180
+ <li class="tsd-kind-method tsd-parent-kind-class tsd-is-private">
181
+ <span class="tsd-kind-icon">Private method</span>
182
+ </li>
183
+ <li class="tsd-kind-accessor tsd-parent-kind-class tsd-is-private">
184
+ <span class="tsd-kind-icon">Private accessor</span>
185
+ </li>
186
+ </ul>
187
+ </div>
188
+ <div class="block">
189
+ <ul class="list-plain">
190
+ <li class="tsd-kind-property tsd-parent-kind-class tsd-is-static">
191
+ <span class="tsd-kind-icon">Static property</span>
192
+ </li>
193
+ <li
194
+ class="tsd-kind-call-signature tsd-parent-kind-class tsd-is-static"
195
+ >
196
+ <span class="tsd-kind-icon">Static method</span>
197
+ </li>
198
+ </ul>
199
+ </div>
200
+ </div>
201
+ </div>
202
+ </div>
203
+ </div>
204
+ {% endblock %}
@@ -0,0 +1,38 @@
1
+ <small class="label right">Version {{ pkg.version }}</small>
2
+ <h1 class="{{ icon }} font-size-3 trailer-half code-face">
3
+ {% link url, pkg.name%}
4
+ </h1>
5
+ <p class="font-size--1 trailer-1 avenir-regular">{{ pkg.description }}</p>
6
+ <h2 class="font-size-0 trailer-quarter">npm install:</h2>
7
+ <pre><code>{% npmInstallCmd pkg %}</code></pre>
8
+ <h2 class="font-size-0 trailer-quarter">Module Import:</h2>
9
+ {% if pkg.esri.keyExports %}
10
+ {% highlight "js" %}
11
+ import {
12
+ {%- for name in pkg.esri.keyExports %}
13
+ {{name}}{{"," if not loop.last}}
14
+ {%- endfor %}
15
+ } from "{{ pkg.name }}";
16
+ {% endhighlight %}
17
+ {% else %}
18
+ {% highlight "js" %}
19
+ import {
20
+ {%- for declaration in declarations -%}
21
+ {%- if declaration.kindString === "Function" or declaration.kindString === "Class" %}
22
+ {{declaration.name}}{{"," if not loop.last}}{%- endif -%}
23
+ {% endfor %}
24
+ } from "{{ pkg.name }}";
25
+ {% endhighlight %}
26
+ {% endif %}
27
+ <h2 class="font-size-0 trailer-quarter">CDN:</h2>
28
+ {% scriptTag pkg %}
29
+ <h2 class="font-size-0 trailer-quarter">CDN with SRI:</h2>
30
+ {% scriptTagSRI pkg %}
31
+ <hr class="leader-half trailer-quarter" />
32
+ <ul class="list-plain package-contents">
33
+ {% for declaration in declarations %}
34
+ <li class="{{ declaration.icon }}">
35
+ {% link declaration.pageUrl, declaration.name, class="tsd-kind-icon" %}
36
+ </li>
37
+ {% endfor %}
38
+ </ul>
@@ -0,0 +1,16 @@
1
+ ---
2
+ layout: "api/_layout:content"
3
+ ---
4
+
5
+ <h1 class="font-size-4">Packages</h1>
6
+ {% for package in data.typedoc.packages %}
7
+ {% if not loop.first %}
8
+ <hr>
9
+ {% endif %}
10
+ {% set pkg = package.pkg %}
11
+ {% set declarations = package.declarations %}
12
+ {% set url = package.pageUrl %}
13
+ {% include "api/_package.html" %}
14
+
15
+ {% endfor %}
16
+ </div>
@@ -0,0 +1,24 @@
1
+ {% extends "_layout" %}
2
+
3
+ {% block main %}
4
+ <div class="grid-container trailer-1 leader-1">
5
+ <div class="column-6">
6
+ <ul class="list-plain">
7
+ {% for section in queries.guides %}
8
+ <li>{{section.name}}</li>
9
+ <ul class="list-plain margin-left-1">
10
+ {% for item in section.items %}
11
+ <li>{% link item.url, item.title %}</li>
12
+ {% endfor %}
13
+ </ul>
14
+ {% endfor %}
15
+ </ul>
16
+ </div>
17
+
18
+ <div class="column-18">
19
+ <div class="panel">
20
+ {% block content %}{% endblock %}
21
+ </div>
22
+ </div>
23
+ </div>
24
+ {% endblock %}
@@ -0,0 +1,40 @@
1
+ ---
2
+ title: Using ArcGIS REST JS in AMD with Require.js or Dojo
3
+ navTitle: AMD (Require.js or Dojo)
4
+ description: Learn how to integrate the ArcGIS REST JS library into project using AMD with Require.js or Dojo.
5
+ order: 40
6
+ group: 1-get-started
7
+ ---
8
+
9
+ # Get Started with ArcGIS REST JS and AMD
10
+
11
+ ```html
12
+ <!DOCTYPE html>
13
+ <html>
14
+ <head>
15
+ <meta charset="utf-8">
16
+ <meta name="viewport" content="width=device-width">
17
+ <title>ArcGIS REST JS - AMD</title>
18
+ </head>
19
+ <body>
20
+ Open your console to see the demo.
21
+ </body>
22
+ <!-- require polyfills for fetch and Promise from https://polyfill.io -->
23
+ <script src="https://polyfill.io/v3/polyfill.min.js?features=es5%2Cfetch%2CPromise"></script>
24
+ <script>
25
+ dojoConfig = {
26
+ paths: {
27
+ "@esri/arcgis-rest-request": "{% cdnUrl data.typedoc | findPackage('@esri/arcgis-rest-request') %}"
28
+ }
29
+ };
30
+ </script>
31
+ <script src="https:////ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>
32
+ <script>
33
+ require(["@esri/arcgis-rest-request"], function(arcgis) {
34
+ arcgis.request("https://www.arcgis.com/sharing/rest/info").then(response => {
35
+ console.log(response);
36
+ });
37
+ });
38
+ </script>
39
+ </html>
40
+ ```
@@ -0,0 +1,39 @@
1
+ ---
2
+ title: Browser-based authentication with ArcGIS REST JS
3
+ navTitle: Browser-based OAuth 2.0
4
+ description: Learn how to authenticate users with ArcGIS REST JS and OAuth 2.0 in a browser.
5
+ order: 1
6
+ group: 2-authentication
7
+ ---
8
+
9
+ # Authentication in Browser-based Apps
10
+
11
+ In the [Node.js](/arcgis-rest-js/guides/node/) guide we explained how to instantiate an [`ApplicationSession`](/arcgis-rest-js/api/auth/ApplicationSession/) with hardcoded credentials. In the browser, you need to use [OAuth 2.0](https://developers.arcgis.com/documentation/core-concepts/security-and-authentication/signing-in-arcgis-online-users/) and have users sign directly into [ArcGIS Online](https://www.arcgis.com) or ArcGIS Enterprise.
12
+
13
+ ![browser based login](../../img/oauth-browser.png)
14
+
15
+ ### Resources
16
+
17
+ - [Implementing Named User Login](https://developers.arcgis.com/documentation/core-concepts/security-and-authentication/signing-in-arcgis-online-users/)
18
+ - [Browser-based Named User Login](https://developers.arcgis.com/documentation/core-concepts/security-and-authentication/browser-based-user-logins/)
19
+
20
+ ```js
21
+ // register your own app to create a unique clientId
22
+ const clientId = "abc123";
23
+
24
+ UserSession.beginOAuth2({
25
+ clientId,
26
+ redirectUri: "https://yourapp.com/authenticate.html",
27
+ }).then(session);
28
+ ```
29
+
30
+ After the user has logged in, the `session` will keep track of individual `federatedServers` that are known to be federated and pass a token through when making requests.
31
+
32
+ ```js
33
+ request(url, { authentication: session });
34
+ ```
35
+
36
+ ### Demos
37
+
38
+ - [OAuth 2.0 Browser](https://github.com/Esri/arcgis-rest-js/tree/master/demos/oauth2-browser)
39
+ - [Retrying Requests](https://github.com/Esri/arcgis-rest-js/tree/master/demos/oauth2-browser-retry)
@@ -0,0 +1,52 @@
1
+ ---
2
+ title: Using ArcGIS REST JS with Bundlers
3
+ navTitle: Bundlers
4
+ description: Learn how to integrate the ArcGIS REST JS library with Babel and modern bundlers like webpack, Rollup and Parcel.
5
+ order: 30
6
+ group: 1-get-started
7
+ ---
8
+
9
+ # Get Started with webpack, Rollup or Parcel
10
+
11
+ ArcGIS REST JS works well with popular module bundlers like [webpack](https://webpack.js.org/), [Rollup](https://rollupjs.org/) and [Parcel](https://parceljs.org/).
12
+
13
+ If you need to support environments where [`fetch`](https://github.com/lquixada/cross-fetch) and [`Promise`](https://github.com/stefanpenner/es6-promise) aren't already present, you can install polyfills for them.
14
+
15
+ ```bash
16
+ npm install @esri/arcgis-rest-request
17
+ ```
18
+ You can find `npm install` commands for all packages in the [API reference](../../api).
19
+ ```js
20
+ import 'cross-fetch/polyfill';
21
+ import { request } from "@esri/arcgis-rest-request";
22
+
23
+ request("https://www.arcgis.com/sharing/rest/info")
24
+ .then(response => {
25
+ console.log(response);
26
+ });
27
+ ```
28
+
29
+ # Tree Shaking
30
+
31
+ Bundlers like webpack and Rollup can statically analyze the code inside ArcGIS REST JS and exclude anything that isn't used. This is called [dead-code elimination](https://rollupjs.org/guide/en#tree-shaking) and it means `rest-js` won't bloat your bundle.
32
+
33
+ Its worth noting, to activate tree-shaking in webpack, [production](https://webpack.js.org/configuration/mode/#mode-production) mode and [usedExports](https://webpack.js.org/configuration/optimization/#optimizationusedexports) optimization need to be enabled.
34
+
35
+ ```js
36
+ // webpack.config.js
37
+ module.exports = {
38
+ // ...
39
+ mode: 'production',
40
+ optimization: {
41
+ usedExports: true
42
+ },
43
+ // ...
44
+ }
45
+ ```
46
+
47
+ ### Tree Shaking Demos
48
+
49
+ * [webpack](https://github.com/Esri/arcgis-rest-js/tree/master/demos/tree-shaking-webpack)
50
+ * [Rollup](https://github.com/Esri/arcgis-rest-js/tree/master/demos/tree-shaking-rollup)
51
+
52
+ **Note**: many libraries and tools (such as [Babel](https://babeljs.io/docs/usage/polyfill/)) require an ES6 `Promise` polyfill. Any `Promise` polyfill will work with ArcGIS REST JS, `es6-promise` is simply a lightweight standalone version.
@@ -0,0 +1,9 @@
1
+ ---
2
+ title: Authentication in CLI Applications
3
+ navTitle: Authentication for CLI Apps
4
+ description: Learn how to authenticate requests in Node.js based CLI applications.
5
+ order: 40
6
+ group: 2-authentication
7
+ ---
8
+
9
+ # Authenticate Requests in a CLI Application
@@ -0,0 +1,9 @@
1
+ ---
2
+ title: Server-client authentication with ArcGIS REST JS
3
+ navTitle: Shared client server authentication
4
+ description: Learn how to authenticate users and share authentication details between the client and server.
5
+ order: 30
6
+ group: 2-authentication
7
+ ---
8
+
9
+ # Sharing Authentication Between Clients and Servers
@@ -0,0 +1,106 @@
1
+ ---
2
+ title: Passing Authentication to iFramed apps
3
+ navTitle: Embedded Authentication
4
+ description: Learn how to pass authentication into iframe embedded applications.
5
+ order: 50
6
+ group: 2-authentication
7
+ ---
8
+
9
+ **Note** This is a new api feature, and currently there are _no_ platform applications that support the authentication flows discussed in this guide. However, this guide exists to help other platform app teams add this functionality to their apps.
10
+
11
+ # Authentication with Embedded Applications
12
+
13
+ Sometimes an application will need to embed another application using an `<iframe>`. If both applications are backed by items that are publicly accessible, things will "just work".
14
+
15
+ However, if the embedded application is not public and the user has already logged into the "Host" application, we then run into the question of how to pass authentication from the "Host" to the embedded application.
16
+
17
+ # Message Types and Objects
18
+
19
+ Although this is internalized within the functions, the message types and the objects are documented in the repo in the [postMessage Auth Spec document](https://github.com/Esri/arcgis-rest-js/tree/master/packages/arcgis-rest-auth/post-message-auth-spec.md)
20
+
21
+ ### Cross Origin Embedding
22
+
23
+ Cross-Origin embedding occurs when the "host" app and the "embedded" application are served from different locations. This is only supported for ArcGIS Platform apps that support embedding.
24
+
25
+ For example, you can build a custom app, hosted at `http://myapp.com` and iframe in a "platform app" that supports embedding. However, you can not embed your custom app into a StoryMap, and expect the StoryMap to pass authentication to your app. This is done for security reasons.
26
+
27
+ ## Using `postMessage`
28
+
29
+ The browser's `postMessage` api is designed to allow communication between various "frames" in a page, and it is how this works internally. You can read more about [postMessage](https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage) at the Mozilla Developer Network.
30
+
31
+ # Authentication Flow
32
+
33
+ We will walk through the flows at a high-level
34
+
35
+ ## 1 Host App uses oAuth
36
+
37
+ The application acting as the host, should use oAuth to authenticate the user, and _before_ rendering the iframe with the embedded application it must call `session.enablePostMessageAuth(validOrigins)`. This sets up a listener that will process the requests from the embedded application(s).
38
+
39
+ The `validOrigins` argument is an array of "origins" your app expects to get auth requests from. **NOTE** This should be a constrained list of just the domains this particular application will actually be embedding.
40
+
41
+ ```js
42
+ // register your own app to create a unique clientId
43
+ const clientId = "abc123";
44
+
45
+ UserSession.beginOAuth2({
46
+ clientId,
47
+ redirectUri: "https://yourapp.com/authenticate.html",
48
+ }).then((session) => {
49
+ // for this example we will only send auth to embeds hosted on storymaps.arcgis.com
50
+ const validOrigins = ["https://storymaps.arcgis.com"];
51
+ session.enablePostMessageAuth(validOrigins);
52
+ });
53
+ ```
54
+
55
+ #### 2 Host App adds params to embed url
56
+
57
+ Let's suppose the host app is embedding `https://storymaps.arcgis.com/stories/15a9b9991fff47ad84f4618a28b01afd`. To tell the embedded app that it should request authentication from the parent, we need to add two url parameters:
58
+
59
+ - `arcgis-auth-origin=https://myapp.com` - This tells the app it's embedded in an iframe and should request auth from the parent, and what 'origin' to expect messages from, what origin to post messages to, and also to ignore other origins.
60
+ - `arcgis-auth-portal=https://www.arcgis.com/sharing/rest` - This tells the embedded app the ArcGIS Portal that the parent will provide authentication for.
61
+ - **note** the uri must encoded via `encodeURIComponent()` as shown below
62
+
63
+ ```js
64
+ const originalUrl =
65
+ "https://storymaps.arcgis.com/stories/15a9b9991fff47ad84f4618a28b01afd";
66
+ const embedUrl = `${originalUrl}
67
+ ?arcgis-auth-origin=${encodeURIComponent(window.location.origin)}
68
+ &arcgis-auth-portal=${encodeURIComponent(session.portal)}`;
69
+ // then use embedUrl in your component that renders the <iframe>
70
+ ```
71
+
72
+ #### 3 Embed App boots and Requests Auth
73
+
74
+ In the embedded application, early in its boot sequence it should read the query string parameters and make the determination that it is running inside an iframe, and that it can request authentication information from the parent.
75
+
76
+ ```js
77
+ // Parse up any url params
78
+ let params = new URLSearchParams(document.location.search.substring(1));
79
+ const arcgisAuthOrigin = params.get("arcgis-auth-origin");
80
+ // const arcgisAuthPortal = params.get("arcgis-auth-portal"); // can optionally check this value too
81
+ if (arcgisAuthOrigin) {
82
+ UserSession.fromParent(arcgisAuthOrigin)
83
+ .then((session) => {
84
+ // session is a UserSession instance, populated from the parent app
85
+ // the embedded app should exchange this token for one specific to the application
86
+ })
87
+ .catch((ex) => {
88
+ // The only case it will reject is if the parent is unable to return a credential
89
+ // if the parent does not see the child as a valid origin, the parent will never respond.
90
+ });
91
+ }
92
+ ```
93
+
94
+ #### Clean up
95
+
96
+ While rest-js will attempt to clean up the listeners automatically, if the host application is no longer going to render the iframe before the embedded app has had a chance to request the authentication, then the app should manually clean up the listener by calling `session.disablePostMessageAuth()`
97
+
98
+ Typically you would make this call in the life-cycle hooks of your application framework (i.e. an Angular, Ember, React etc app with a router). The example below uses the `disconnectedCallback` that is part of the Stencil.js component life-cycle.
99
+
100
+ ```js
101
+ // Use your framework's hooks...
102
+ disconnectedCallback () {
103
+ // stop listening for requests from children
104
+ state.session.disablePostMessageAuth();
105
+ }
106
+ ```
@@ -0,0 +1,38 @@
1
+ ---
2
+ title: Using ArcGIS REST JS from a CDN
3
+ navTitle: From a CDN
4
+ description: Learn how to use ArcGIS REST JS from a CDN.
5
+ order: 20
6
+ group: 1-get-started
7
+ ---
8
+
9
+ # Get Started using a CDN
10
+
11
+ ArcGIS REST JS is hosted on [unpkg](https://unpkg.com/). You can find URLs for individual packages in the [API reference](../../api).
12
+
13
+ ```html
14
+ <!DOCTYPE html>
15
+ <html>
16
+ <head>
17
+ <meta charset="utf-8">
18
+ <meta name="viewport" content="width=device-width">
19
+ <title>ArcGIS REST JS</title>
20
+ </head>
21
+ <body>
22
+ Open your console to see the demo.
23
+ </body>
24
+ <!-- require polyfills for fetch and Promise from https://polyfill.io -->
25
+ <script src="https://polyfill.io/v3/polyfill.min.js?features=es5%2Cfetch%2CPromise"></script>
26
+
27
+ <!-- require ArcGIS REST JS libraries from https://unpkg.com -->
28
+ <script src="{% cdnUrl data.typedoc | findPackage('@esri/arcgis-rest-request') %}.js"></script>
29
+
30
+ <script>
31
+ /* when including ArcGIS REST JS all exports are available
32
+ from the same arcgisRest global */
33
+ arcgisRest.request("https://www.arcgis.com/sharing/rest/info")
34
+ .then(response => {
35
+ console.log(response);
36
+ });
37
+ </script>
38
+ </html>
@@ -0,0 +1,59 @@
1
+ ---
2
+ title: Get Started
3
+ description: Get started with ArcGIS REST JS.
4
+ ---
5
+
6
+ # Get Started
7
+
8
+ ArcGIS REST JS can be deployed with a variety of build tools, including:
9
+
10
+ * [From a CDN](./from-a-cdn/)
11
+ * [webpack, Rollup and Parcel](./bundlers/)
12
+ * [AMD (Require.js or Dojo)](./amd-requirejs-dojo/)
13
+ * [Node.js](./node/)
14
+ * [What's New in `v2.0.0`?](./whats-new-v2-0/)
15
+ ## Requirements
16
+
17
+ ArcGIS REST JS takes advantage of web standards that are supported in all modern desktop browsers and most mobile browsers.
18
+
19
+ * [`Fetch` Support](https://caniuse.com/#feat=fetch)
20
+ * [`Promises` Support](https://caniuse.com/#feat=promises)
21
+ * [`FormData` Support](https://caniuse.com/#feat=xhr2)
22
+ * [`ECMAScript 5` Support](https://caniuse.com/#feat=es5)
23
+
24
+ ## Browser Support
25
+
26
+ ArcGIS REST JS is supported in the same browsers as the [ArcGIS API for JavaScript](https://developers.arcgis.com/javascript/latest/guide/system-requirements/index.html#supported-browsers).
27
+
28
+ * Chrome
29
+ * Edge
30
+ * Firefox
31
+ * Safari 9 and later
32
+ * iOS Safari
33
+ * IE11
34
+
35
+ IE11 and older mobile browsers require polyfills.
36
+
37
+ * [`Promise` polyfill](https://github.com/stefanpenner/es6-promise)
38
+ * [`Fetch` polyfill](https://github.com/bitinn/node-fetch)
39
+
40
+ ## Node.js Support
41
+
42
+ ArcGIS REST JS is supported in Node.js 8.x and above. It requires additional packages to polyfill `Fetch` and `FormData`.
43
+
44
+ We recommend the ones below:
45
+
46
+ * [`node-fetch`](https://github.com/bitinn/node-fetch) - to polyfill `Fetch`
47
+ * [`isomorphic-form-data`](https://github.com/form-data/isomorphic-form-data) - to polyfill `FormData`
48
+
49
+ ```js
50
+ const fetch = require('node-fetch');
51
+ const { setDefaultRequestOptions, request } = require('@esri/arcgis-rest-request');
52
+
53
+ // use node-fetch for each request instead of relying on a global
54
+ setDefaultRequestOptions({ fetch })
55
+
56
+ request(url)
57
+ .then(response)
58
+ ```
59
+ Other versions of Node.js may also work with appropriate polyfills but we cannot guarantee support.