autnam 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (490) hide show
  1. package/.env.example +2 -0
  2. package/.eslintrc.json +37 -0
  3. package/.github/workflows/deploy-docs.yml +27 -0
  4. package/.github/workflows/pre-release-tests.yml +49 -0
  5. package/.github/workflows/pull-request-tests.yml +49 -0
  6. package/.github/workflows/release.yml +75 -0
  7. package/.prettierignore +2 -0
  8. package/.prettierrc +19 -0
  9. package/.vscode/launch.json +25 -0
  10. package/.vscode/settings.json +5 -0
  11. package/codecov.yml +7 -0
  12. package/commitlint.config.cjs +41 -0
  13. package/demos/.eslintrc.js +13 -0
  14. package/demos/ago-node-cli/README.md +30 -0
  15. package/demos/ago-node-cli/ago.js +31 -0
  16. package/demos/ago-node-cli/index.js +11 -0
  17. package/demos/ago-node-cli/lib/item-export-command.js +48 -0
  18. package/demos/ago-node-cli/lib/item-search-command.js +32 -0
  19. package/demos/ago-node-cli/package.json +29 -0
  20. package/demos/attachments-browser/README.md +7 -0
  21. package/demos/attachments-browser/index.html +165 -0
  22. package/demos/attachments-browser/package.json +15 -0
  23. package/demos/attachments-node/README.md +4 -0
  24. package/demos/attachments-node/image.jpg +0 -0
  25. package/demos/attachments-node/index.js +89 -0
  26. package/demos/attachments-node/package.json +19 -0
  27. package/demos/batch-geocoder-node/NYC_Restaurant_Inspection_Results.csv +100 -0
  28. package/demos/batch-geocoder-node/README.md +13 -0
  29. package/demos/batch-geocoder-node/batch-geocode.js +112 -0
  30. package/demos/batch-geocoder-node/config-template.js +18 -0
  31. package/demos/batch-geocoder-node/package.json +34 -0
  32. package/demos/browser-es-modules/README.md +7 -0
  33. package/demos/browser-es-modules/index.html +38 -0
  34. package/demos/browser-es-modules/package.json +15 -0
  35. package/demos/deno/README.md +1 -0
  36. package/demos/deno/import_map.json +8 -0
  37. package/demos/deno/index.js +5 -0
  38. package/demos/express/README.md +16 -0
  39. package/demos/express/config.json.template +3 -0
  40. package/demos/express/package.json +15 -0
  41. package/demos/express/server.js +37 -0
  42. package/demos/feature-service-browser/README.md +8 -0
  43. package/demos/feature-service-browser/index.html +122 -0
  44. package/demos/feature-service-browser/package.json +15 -0
  45. package/demos/geocoder-browser/README.md +12 -0
  46. package/demos/geocoder-browser/authenticate.html +29 -0
  47. package/demos/geocoder-browser/config.js.template +1 -0
  48. package/demos/geocoder-browser/index.html +139 -0
  49. package/demos/geocoder-browser/package.json +15 -0
  50. package/demos/jsapi-integration/README.md +26 -0
  51. package/demos/jsapi-integration/authenticate.html +29 -0
  52. package/demos/jsapi-integration/config.js +6 -0
  53. package/demos/jsapi-integration/index.html +91 -0
  54. package/demos/jsapi-integration/package.json +15 -0
  55. package/demos/node-cli-item-management/README.md +11 -0
  56. package/demos/node-cli-item-management/index.js +229 -0
  57. package/demos/node-cli-item-management/package.json +24 -0
  58. package/demos/node-cli-item-management/screenshot.png +0 -0
  59. package/demos/node-common-js/README.md +4 -0
  60. package/demos/node-common-js/index.js +5 -0
  61. package/demos/node-common-js/package.json +15 -0
  62. package/demos/node-es-modules/README.md +4 -0
  63. package/demos/node-es-modules/index.js +5 -0
  64. package/demos/node-es-modules/package.json +16 -0
  65. package/demos/oauth2-browser/README.md +17 -0
  66. package/demos/oauth2-browser/authenticate.html +29 -0
  67. package/demos/oauth2-browser/config.js.template +6 -0
  68. package/demos/oauth2-browser/index.html +223 -0
  69. package/demos/oauth2-browser/logo.svg +4 -0
  70. package/demos/oauth2-browser/package.json +15 -0
  71. package/demos/oauth2-browser/style.css +36 -0
  72. package/demos/oauth2-browser-retry/README.md +32 -0
  73. package/demos/oauth2-browser-retry/authenticate.html +21 -0
  74. package/demos/oauth2-browser-retry/index.html +114 -0
  75. package/demos/oauth2-browser-retry/logo.svg +4 -0
  76. package/demos/oauth2-browser-retry/package.json +15 -0
  77. package/demos/parcel/README.md +8 -0
  78. package/demos/parcel/index.html +16 -0
  79. package/demos/parcel/index.js +8 -0
  80. package/demos/parcel/package.json +20 -0
  81. package/demos/snowpack/README.md +8 -0
  82. package/demos/snowpack/index.html +16 -0
  83. package/demos/snowpack/index.js +8 -0
  84. package/demos/snowpack/package.json +20 -0
  85. package/demos/snowpack/snowpack.config.js +3 -0
  86. package/demos/stream-response-to-file/README.md +7 -0
  87. package/demos/stream-response-to-file/index.js +36 -0
  88. package/demos/stream-response-to-file/output/.gitkeep +0 -0
  89. package/demos/stream-response-to-file/package.json +31 -0
  90. package/demos/tree-shaking-rollup/.babelrc +3 -0
  91. package/demos/tree-shaking-rollup/README.md +9 -0
  92. package/demos/tree-shaking-rollup/index.html +11 -0
  93. package/demos/tree-shaking-rollup/package.json +22 -0
  94. package/demos/tree-shaking-rollup/rollup.config.js +13 -0
  95. package/demos/tree-shaking-rollup/src/index.js +8 -0
  96. package/demos/tree-shaking-webpack/README.md +9 -0
  97. package/demos/tree-shaking-webpack/index.html +11 -0
  98. package/demos/tree-shaking-webpack/package.json +26 -0
  99. package/demos/tree-shaking-webpack/src/index.js +8 -0
  100. package/demos/tree-shaking-webpack/webpack.config.js +29 -0
  101. package/demos/vite/README.md +6 -0
  102. package/demos/vite/favicon.svg +15 -0
  103. package/demos/vite/index.html +13 -0
  104. package/demos/vite/main.js +8 -0
  105. package/demos/vite/package.json +18 -0
  106. package/demos/vue/.env.example +11 -0
  107. package/demos/vue/.eslintrc.js +17 -0
  108. package/demos/vue/.postcssrc.js +5 -0
  109. package/demos/vue/README.md +17 -0
  110. package/demos/vue/babel.config.js +3 -0
  111. package/demos/vue/package.json +35 -0
  112. package/demos/vue/public/favicon.ico +0 -0
  113. package/demos/vue/public/index.html +24 -0
  114. package/demos/vue/src/assets/logo.svg +29 -0
  115. package/demos/vue/src/components/App.vue +303 -0
  116. package/demos/vue/src/components/Authenticate.vue +65 -0
  117. package/demos/vue/src/components/Loader.vue +230 -0
  118. package/demos/vue/src/main.js +92 -0
  119. package/demos/webmap-checker-sapper/.env.example +5 -0
  120. package/demos/webmap-checker-sapper/README.md +124 -0
  121. package/demos/webmap-checker-sapper/appveyor.yml +18 -0
  122. package/demos/webmap-checker-sapper/cypress/fixtures/example.json +5 -0
  123. package/demos/webmap-checker-sapper/cypress/integration/spec.js +19 -0
  124. package/demos/webmap-checker-sapper/cypress/plugins/index.js +17 -0
  125. package/demos/webmap-checker-sapper/cypress/support/commands.js +25 -0
  126. package/demos/webmap-checker-sapper/cypress/support/index.js +20 -0
  127. package/demos/webmap-checker-sapper/cypress.json +4 -0
  128. package/demos/webmap-checker-sapper/package.json +47 -0
  129. package/demos/webmap-checker-sapper/rollup.config.js +87 -0
  130. package/demos/webmap-checker-sapper/src/client.js +20 -0
  131. package/demos/webmap-checker-sapper/src/components/LayerStatus.html +108 -0
  132. package/demos/webmap-checker-sapper/src/components/Nav.html +21 -0
  133. package/demos/webmap-checker-sapper/src/components/WebMap.html +62 -0
  134. package/demos/webmap-checker-sapper/src/routes/_error.html +41 -0
  135. package/demos/webmap-checker-sapper/src/routes/_layout.html +21 -0
  136. package/demos/webmap-checker-sapper/src/routes/auth/authorize.js +18 -0
  137. package/demos/webmap-checker-sapper/src/routes/auth/exchange-token.js +20 -0
  138. package/demos/webmap-checker-sapper/src/routes/auth/post-sign-in.js +24 -0
  139. package/demos/webmap-checker-sapper/src/routes/auth/sign-out.js +10 -0
  140. package/demos/webmap-checker-sapper/src/routes/index.html +20 -0
  141. package/demos/webmap-checker-sapper/src/routes/webmaps/[webmapId].html +83 -0
  142. package/demos/webmap-checker-sapper/src/routes/webmaps/index.html +59 -0
  143. package/demos/webmap-checker-sapper/src/server.js +102 -0
  144. package/demos/webmap-checker-sapper/src/service-worker.js +82 -0
  145. package/demos/webmap-checker-sapper/src/template.html +33 -0
  146. package/demos/webmap-checker-sapper/src/userInfoMiddleware.js +21 -0
  147. package/demos/webmap-checker-sapper/src/utils.js +33 -0
  148. package/demos/webmap-checker-sapper/static/favicon.png +0 -0
  149. package/demos/webmap-checker-sapper/static/global.css +36 -0
  150. package/demos/webmap-checker-sapper/static/manifest.json +20 -0
  151. package/demos/webmap-checker-sapper/static/svelte-logo-192.png +0 -0
  152. package/demos/webmap-checker-sapper/static/svelte-logo-512.png +0 -0
  153. package/docs/.eslintrc.js +12 -0
  154. package/docs/FAQ.md +48 -0
  155. package/docs/HISTORY.md +62 -0
  156. package/docs/acetate.config.js +262 -0
  157. package/docs/build-typedoc.js +434 -0
  158. package/docs/generate-srihashes.js +61 -0
  159. package/docs/package.json +3 -0
  160. package/docs/src/_layout.html +86 -0
  161. package/docs/src/api/_declaration.html +600 -0
  162. package/docs/src/api/_layout.html +204 -0
  163. package/docs/src/api/_package.html +38 -0
  164. package/docs/src/api/index.html +16 -0
  165. package/docs/src/guides/_layout.html +24 -0
  166. package/docs/src/guides/amd-requirejs-dojo.md +40 -0
  167. package/docs/src/guides/browser-authentication.md +39 -0
  168. package/docs/src/guides/bundlers.md +52 -0
  169. package/docs/src/guides/cli-authentication.md +9 -0
  170. package/docs/src/guides/client-server-authentication.md +9 -0
  171. package/docs/src/guides/embedded-apps.md +106 -0
  172. package/docs/src/guides/from-a-cdn.md +38 -0
  173. package/docs/src/guides/index.md +59 -0
  174. package/docs/src/guides/node.md +84 -0
  175. package/docs/src/guides/package-overview.md +111 -0
  176. package/docs/src/guides/server-authentication.md +9 -0
  177. package/docs/src/guides/whats-new-v2-0.md +305 -0
  178. package/docs/src/img/icons.png +0 -0
  179. package/docs/src/img/icons@2x.png +0 -0
  180. package/docs/src/img/oauth-browser.png +0 -0
  181. package/docs/src/index.html +12 -0
  182. package/docs/src/js/api-search.js +112 -0
  183. package/docs/src/js/nav-toggle.js +41 -0
  184. package/docs/src/sass/_highlight.scss +96 -0
  185. package/docs/src/sass/_icons.scss +157 -0
  186. package/docs/src/sass/style.scss +242 -0
  187. package/jasmine.json +7 -0
  188. package/jasmine.live.json +7 -0
  189. package/karma.conf.cjs +128 -0
  190. package/package.json +87 -0
  191. package/packages/arcgis-rest-auth/CHANGELOG.md +80 -0
  192. package/packages/arcgis-rest-auth/README.md +71 -0
  193. package/packages/arcgis-rest-auth/package.json +66 -0
  194. package/packages/arcgis-rest-auth/src/index.ts +34 -0
  195. package/packages/arcgis-rest-auth/tsconfig.json +6 -0
  196. package/packages/arcgis-rest-demographics/CHANGELOG.md +14 -0
  197. package/packages/arcgis-rest-demographics/README.md +74 -0
  198. package/packages/arcgis-rest-demographics/package.json +69 -0
  199. package/packages/arcgis-rest-demographics/src/getAvailableCountries.ts +113 -0
  200. package/packages/arcgis-rest-demographics/src/getAvailableDataCollections.ts +161 -0
  201. package/packages/arcgis-rest-demographics/src/getAvailableGeographyLevels.ts +86 -0
  202. package/packages/arcgis-rest-demographics/src/getGeography.ts +152 -0
  203. package/packages/arcgis-rest-demographics/src/helpers.ts +27 -0
  204. package/packages/arcgis-rest-demographics/src/index.ts +16 -0
  205. package/packages/arcgis-rest-demographics/src/queryDemographicData.ts +108 -0
  206. package/packages/arcgis-rest-demographics/test/getAvailableCountries.test.ts +89 -0
  207. package/packages/arcgis-rest-demographics/test/getAvailableDataCollections.test.ts +114 -0
  208. package/packages/arcgis-rest-demographics/test/getAvailableGeographyLevels.test.ts +69 -0
  209. package/packages/arcgis-rest-demographics/test/getGeography.test.ts +150 -0
  210. package/packages/arcgis-rest-demographics/test/mocks/responses.ts +4 -0
  211. package/packages/arcgis-rest-demographics/test/queryDemographicData.test.live.ts +50 -0
  212. package/packages/arcgis-rest-demographics/test/queryDemographicData.test.ts +127 -0
  213. package/packages/arcgis-rest-demographics/tsconfig.json +6 -0
  214. package/packages/arcgis-rest-feature-service/CHANGELOG.md +44 -0
  215. package/packages/arcgis-rest-feature-service/README.md +75 -0
  216. package/packages/arcgis-rest-feature-service/package.json +70 -0
  217. package/packages/arcgis-rest-feature-service/src/add.ts +55 -0
  218. package/packages/arcgis-rest-feature-service/src/addAttachment.ts +53 -0
  219. package/packages/arcgis-rest-feature-service/src/addToServiceDefinition.ts +74 -0
  220. package/packages/arcgis-rest-feature-service/src/applyEdits.ts +94 -0
  221. package/packages/arcgis-rest-feature-service/src/createFeatureService.ts +191 -0
  222. package/packages/arcgis-rest-feature-service/src/decodeValues.ts +126 -0
  223. package/packages/arcgis-rest-feature-service/src/delete.ts +62 -0
  224. package/packages/arcgis-rest-feature-service/src/deleteAttachments.ts +52 -0
  225. package/packages/arcgis-rest-feature-service/src/getAllLayersAndTables.ts +30 -0
  226. package/packages/arcgis-rest-feature-service/src/getAttachments.ts +55 -0
  227. package/packages/arcgis-rest-feature-service/src/getLayer.ts +23 -0
  228. package/packages/arcgis-rest-feature-service/src/getService.ts +25 -0
  229. package/packages/arcgis-rest-feature-service/src/getServiceAdminInfo.ts +33 -0
  230. package/packages/arcgis-rest-feature-service/src/getViewSources.ts +19 -0
  231. package/packages/arcgis-rest-feature-service/src/helpers.ts +768 -0
  232. package/packages/arcgis-rest-feature-service/src/index.ts +37 -0
  233. package/packages/arcgis-rest-feature-service/src/query.ts +200 -0
  234. package/packages/arcgis-rest-feature-service/src/queryRelated.ts +86 -0
  235. package/packages/arcgis-rest-feature-service/src/update.ts +65 -0
  236. package/packages/arcgis-rest-feature-service/src/updateAttachment.ts +59 -0
  237. package/packages/arcgis-rest-feature-service/src/updateServiceDefinition.ts +53 -0
  238. package/packages/arcgis-rest-feature-service/test/addToServiceDefinition.test.ts +350 -0
  239. package/packages/arcgis-rest-feature-service/test/attachments.test.ts +188 -0
  240. package/packages/arcgis-rest-feature-service/test/createFeatureService.test.ts +279 -0
  241. package/packages/arcgis-rest-feature-service/test/crud.test.ts +196 -0
  242. package/packages/arcgis-rest-feature-service/test/decodeValues.test.ts +66 -0
  243. package/packages/arcgis-rest-feature-service/test/getAllLayersAndTables.test.ts +27 -0
  244. package/packages/arcgis-rest-feature-service/test/getLayer.test.ts +30 -0
  245. package/packages/arcgis-rest-feature-service/test/getService.test.ts +30 -0
  246. package/packages/arcgis-rest-feature-service/test/getServiceAdminInfo.test.ts +41 -0
  247. package/packages/arcgis-rest-feature-service/test/getViewSources.test.ts +45 -0
  248. package/packages/arcgis-rest-feature-service/test/helpers.test.ts +27 -0
  249. package/packages/arcgis-rest-feature-service/test/mocks/allLayersAndTablesResponse.ts +950 -0
  250. package/packages/arcgis-rest-feature-service/test/mocks/cvdQueryResponse.ts +225 -0
  251. package/packages/arcgis-rest-feature-service/test/mocks/feature.ts +302 -0
  252. package/packages/arcgis-rest-feature-service/test/mocks/fields.ts +779 -0
  253. package/packages/arcgis-rest-feature-service/test/mocks/foo.txt +1 -0
  254. package/packages/arcgis-rest-feature-service/test/mocks/layerDefinition.ts +80 -0
  255. package/packages/arcgis-rest-feature-service/test/mocks/service.ts +476 -0
  256. package/packages/arcgis-rest-feature-service/test/query.test.ts +166 -0
  257. package/packages/arcgis-rest-feature-service/test/updateServiceDefinition.test.ts +103 -0
  258. package/packages/arcgis-rest-feature-service/tsconfig.json +9 -0
  259. package/packages/arcgis-rest-fetch/README.md +17 -0
  260. package/packages/arcgis-rest-fetch/browser-ponyfill.js +8 -0
  261. package/packages/arcgis-rest-fetch/browser-ponyfill.mjs +8 -0
  262. package/packages/arcgis-rest-fetch/index.types.d.ts +8 -0
  263. package/packages/arcgis-rest-fetch/node-ponyfill.js +10 -0
  264. package/packages/arcgis-rest-fetch/node-ponyfill.mjs +10 -0
  265. package/packages/arcgis-rest-fetch/package.json +21 -0
  266. package/packages/arcgis-rest-form-data/README.md +15 -0
  267. package/packages/arcgis-rest-form-data/browser-ponyfill.js +5 -0
  268. package/packages/arcgis-rest-form-data/browser-ponyfill.mjs +3 -0
  269. package/packages/arcgis-rest-form-data/index.types.d.ts +9 -0
  270. package/packages/arcgis-rest-form-data/node-ponyfill.js +7 -0
  271. package/packages/arcgis-rest-form-data/node-ponyfill.mjs +5 -0
  272. package/packages/arcgis-rest-form-data/package.json +21 -0
  273. package/packages/arcgis-rest-geocoding/CHANGELOG.md +26 -0
  274. package/packages/arcgis-rest-geocoding/README.md +85 -0
  275. package/packages/arcgis-rest-geocoding/package.json +69 -0
  276. package/packages/arcgis-rest-geocoding/src/bulk.ts +106 -0
  277. package/packages/arcgis-rest-geocoding/src/geocode.ts +169 -0
  278. package/packages/arcgis-rest-geocoding/src/helpers.ts +56 -0
  279. package/packages/arcgis-rest-geocoding/src/index.ts +17 -0
  280. package/packages/arcgis-rest-geocoding/src/reverse.ts +82 -0
  281. package/packages/arcgis-rest-geocoding/src/suggest.ts +45 -0
  282. package/packages/arcgis-rest-geocoding/test/bulk.test.ts +193 -0
  283. package/packages/arcgis-rest-geocoding/test/geocode.test.ts +254 -0
  284. package/packages/arcgis-rest-geocoding/test/helpers.test.ts +85 -0
  285. package/packages/arcgis-rest-geocoding/test/mocks/responses.ts +1031 -0
  286. package/packages/arcgis-rest-geocoding/test/reverse.test.ts +124 -0
  287. package/packages/arcgis-rest-geocoding/test/suggest.test.ts +53 -0
  288. package/packages/arcgis-rest-geocoding/tsconfig.json +6 -0
  289. package/packages/arcgis-rest-portal/CHANGELOG.md +73 -0
  290. package/packages/arcgis-rest-portal/README.md +72 -0
  291. package/packages/arcgis-rest-portal/package.json +68 -0
  292. package/packages/arcgis-rest-portal/src/groups/add-users.ts +140 -0
  293. package/packages/arcgis-rest-portal/src/groups/create.ts +42 -0
  294. package/packages/arcgis-rest-portal/src/groups/get.ts +187 -0
  295. package/packages/arcgis-rest-portal/src/groups/helpers.ts +14 -0
  296. package/packages/arcgis-rest-portal/src/groups/invite-users.ts +141 -0
  297. package/packages/arcgis-rest-portal/src/groups/join.ts +57 -0
  298. package/packages/arcgis-rest-portal/src/groups/notification.ts +77 -0
  299. package/packages/arcgis-rest-portal/src/groups/protect.ts +56 -0
  300. package/packages/arcgis-rest-portal/src/groups/remove-users.ts +84 -0
  301. package/packages/arcgis-rest-portal/src/groups/remove.ts +32 -0
  302. package/packages/arcgis-rest-portal/src/groups/search.ts +48 -0
  303. package/packages/arcgis-rest-portal/src/groups/update-user-membership.ts +63 -0
  304. package/packages/arcgis-rest-portal/src/groups/update.ts +39 -0
  305. package/packages/arcgis-rest-portal/src/helpers.ts +83 -0
  306. package/packages/arcgis-rest-portal/src/index.ts +68 -0
  307. package/packages/arcgis-rest-portal/src/items/add.ts +145 -0
  308. package/packages/arcgis-rest-portal/src/items/content.ts +70 -0
  309. package/packages/arcgis-rest-portal/src/items/create.ts +149 -0
  310. package/packages/arcgis-rest-portal/src/items/export.ts +92 -0
  311. package/packages/arcgis-rest-portal/src/items/get.ts +444 -0
  312. package/packages/arcgis-rest-portal/src/items/helpers.ts +272 -0
  313. package/packages/arcgis-rest-portal/src/items/protect.ts +41 -0
  314. package/packages/arcgis-rest-portal/src/items/reassign.ts +59 -0
  315. package/packages/arcgis-rest-portal/src/items/remove.ts +139 -0
  316. package/packages/arcgis-rest-portal/src/items/search.ts +25 -0
  317. package/packages/arcgis-rest-portal/src/items/update.ts +188 -0
  318. package/packages/arcgis-rest-portal/src/items/upload.ts +124 -0
  319. package/packages/arcgis-rest-portal/src/orgs/notification.ts +148 -0
  320. package/packages/arcgis-rest-portal/src/services/get-unique-service-name.ts +35 -0
  321. package/packages/arcgis-rest-portal/src/services/is-service-name-available.ts +29 -0
  322. package/packages/arcgis-rest-portal/src/sharing/access.ts +84 -0
  323. package/packages/arcgis-rest-portal/src/sharing/helpers.ts +80 -0
  324. package/packages/arcgis-rest-portal/src/sharing/is-item-shared-with-group.ts +42 -0
  325. package/packages/arcgis-rest-portal/src/sharing/share-item-with-group.ts +335 -0
  326. package/packages/arcgis-rest-portal/src/sharing/unshare-item-with-group.ts +114 -0
  327. package/packages/arcgis-rest-portal/src/users/get-user-tags.ts +52 -0
  328. package/packages/arcgis-rest-portal/src/users/get-user-url.ts +18 -0
  329. package/packages/arcgis-rest-portal/src/users/get-user.ts +60 -0
  330. package/packages/arcgis-rest-portal/src/users/invitation.ts +157 -0
  331. package/packages/arcgis-rest-portal/src/users/notification.ts +67 -0
  332. package/packages/arcgis-rest-portal/src/users/search-users.ts +35 -0
  333. package/packages/arcgis-rest-portal/src/users/update.ts +63 -0
  334. package/packages/arcgis-rest-portal/src/util/SearchQueryBuilder.ts +391 -0
  335. package/packages/arcgis-rest-portal/src/util/array.ts +16 -0
  336. package/packages/arcgis-rest-portal/src/util/generic-search.ts +111 -0
  337. package/packages/arcgis-rest-portal/src/util/get-portal-settings.ts +44 -0
  338. package/packages/arcgis-rest-portal/src/util/get-portal-url.ts +32 -0
  339. package/packages/arcgis-rest-portal/src/util/get-portal.ts +53 -0
  340. package/packages/arcgis-rest-portal/src/util/get-subscription-info.ts +43 -0
  341. package/packages/arcgis-rest-portal/src/util/scrub-control-chars.ts +13 -0
  342. package/packages/arcgis-rest-portal/src/util/search.ts +48 -0
  343. package/packages/arcgis-rest-portal/test/groups/add-users.test.ts +238 -0
  344. package/packages/arcgis-rest-portal/test/groups/crud.test.ts +183 -0
  345. package/packages/arcgis-rest-portal/test/groups/get.test.ts +174 -0
  346. package/packages/arcgis-rest-portal/test/groups/invite-users.test.ts +146 -0
  347. package/packages/arcgis-rest-portal/test/groups/join.test.ts +71 -0
  348. package/packages/arcgis-rest-portal/test/groups/notification.test.ts +111 -0
  349. package/packages/arcgis-rest-portal/test/groups/protect.test.ts +71 -0
  350. package/packages/arcgis-rest-portal/test/groups/remove-users.test.ts +140 -0
  351. package/packages/arcgis-rest-portal/test/groups/search.test.ts +151 -0
  352. package/packages/arcgis-rest-portal/test/groups/update-user-membership.test.ts +64 -0
  353. package/packages/arcgis-rest-portal/test/items/add.test.ts +320 -0
  354. package/packages/arcgis-rest-portal/test/items/content.test.ts +161 -0
  355. package/packages/arcgis-rest-portal/test/items/create.test.ts +404 -0
  356. package/packages/arcgis-rest-portal/test/items/export.test.ts +115 -0
  357. package/packages/arcgis-rest-portal/test/items/get.test.ts +606 -0
  358. package/packages/arcgis-rest-portal/test/items/helpers.test.ts +60 -0
  359. package/packages/arcgis-rest-portal/test/items/protect.test.ts +120 -0
  360. package/packages/arcgis-rest-portal/test/items/reassign.test.ts +130 -0
  361. package/packages/arcgis-rest-portal/test/items/remove.test.ts +259 -0
  362. package/packages/arcgis-rest-portal/test/items/search.test.ts +274 -0
  363. package/packages/arcgis-rest-portal/test/items/update.test.ts +549 -0
  364. package/packages/arcgis-rest-portal/test/items/upload.test.ts +286 -0
  365. package/packages/arcgis-rest-portal/test/mocks/groups/responses.ts +208 -0
  366. package/packages/arcgis-rest-portal/test/mocks/items/foo.zip +0 -0
  367. package/packages/arcgis-rest-portal/test/mocks/items/item.ts +526 -0
  368. package/packages/arcgis-rest-portal/test/mocks/items/resources.ts +38 -0
  369. package/packages/arcgis-rest-portal/test/mocks/items/search.ts +121 -0
  370. package/packages/arcgis-rest-portal/test/mocks/portal/response.ts +126 -0
  371. package/packages/arcgis-rest-portal/test/mocks/portal/settings-response.ts +56 -0
  372. package/packages/arcgis-rest-portal/test/mocks/sharing/sharing.ts +18 -0
  373. package/packages/arcgis-rest-portal/test/mocks/users/invitation.ts +70 -0
  374. package/packages/arcgis-rest-portal/test/mocks/users/notification.ts +34 -0
  375. package/packages/arcgis-rest-portal/test/mocks/users/user-search.ts +388 -0
  376. package/packages/arcgis-rest-portal/test/mocks/users/user-tags.ts +5 -0
  377. package/packages/arcgis-rest-portal/test/mocks/users/user.ts +174 -0
  378. package/packages/arcgis-rest-portal/test/orgs/notification.test.ts +142 -0
  379. package/packages/arcgis-rest-portal/test/services/get-unique-service-name.test.ts +64 -0
  380. package/packages/arcgis-rest-portal/test/services/is-service-name-available.test.ts +41 -0
  381. package/packages/arcgis-rest-portal/test/sharing/access.test.ts +162 -0
  382. package/packages/arcgis-rest-portal/test/sharing/helpers.test.ts +55 -0
  383. package/packages/arcgis-rest-portal/test/sharing/share-item-with-group.test.ts +1328 -0
  384. package/packages/arcgis-rest-portal/test/sharing/unshare-item-with-group.test.ts +288 -0
  385. package/packages/arcgis-rest-portal/test/users/get-user-tags.test.ts +71 -0
  386. package/packages/arcgis-rest-portal/test/users/get-user-url.test.ts +40 -0
  387. package/packages/arcgis-rest-portal/test/users/get-user.test.ts +90 -0
  388. package/packages/arcgis-rest-portal/test/users/invitation.test.ts +126 -0
  389. package/packages/arcgis-rest-portal/test/users/notification.test.ts +76 -0
  390. package/packages/arcgis-rest-portal/test/users/search.test.ts +41 -0
  391. package/packages/arcgis-rest-portal/test/users/update.test.ts +150 -0
  392. package/packages/arcgis-rest-portal/test/util/SearchQueryBuilder.test.ts +295 -0
  393. package/packages/arcgis-rest-portal/test/util/array.test.ts +33 -0
  394. package/packages/arcgis-rest-portal/test/util/get-portal-settings.test.ts +57 -0
  395. package/packages/arcgis-rest-portal/test/util/get-portal-url.test.ts +37 -0
  396. package/packages/arcgis-rest-portal/test/util/portal.test.ts +137 -0
  397. package/packages/arcgis-rest-portal/test/util/scrub-control-chars.test.ts +25 -0
  398. package/packages/arcgis-rest-portal/tsconfig.json +6 -0
  399. package/packages/arcgis-rest-request/README.md +72 -0
  400. package/packages/arcgis-rest-request/package.json +69 -0
  401. package/packages/arcgis-rest-request/post-message-auth-spec.md +70 -0
  402. package/packages/arcgis-rest-request/src/ApiKeyManager.ts +60 -0
  403. package/packages/arcgis-rest-request/src/ApplicationCredentialsManager.ts +141 -0
  404. package/packages/arcgis-rest-request/src/ArcGISIdentityManager.ts +1470 -0
  405. package/packages/arcgis-rest-request/src/app-tokens.ts +132 -0
  406. package/packages/arcgis-rest-request/src/authenticated-request-options.ts +23 -0
  407. package/packages/arcgis-rest-request/src/federation-utils.ts +88 -0
  408. package/packages/arcgis-rest-request/src/fetch-token.ts +48 -0
  409. package/packages/arcgis-rest-request/src/generate-token.ts +32 -0
  410. package/packages/arcgis-rest-request/src/index.ts +46 -0
  411. package/packages/arcgis-rest-request/src/request.ts +446 -0
  412. package/packages/arcgis-rest-request/src/revoke-token.ts +73 -0
  413. package/packages/arcgis-rest-request/src/types/feature.ts +42 -0
  414. package/packages/arcgis-rest-request/src/types/geometry.ts +239 -0
  415. package/packages/arcgis-rest-request/src/types/group.ts +72 -0
  416. package/packages/arcgis-rest-request/src/types/service.ts +87 -0
  417. package/packages/arcgis-rest-request/src/types/symbol.ts +21 -0
  418. package/packages/arcgis-rest-request/src/types/user.ts +49 -0
  419. package/packages/arcgis-rest-request/src/utils/ArcGISRequestError.ts +82 -0
  420. package/packages/arcgis-rest-request/src/utils/ErrorTypes.ts +29 -0
  421. package/packages/arcgis-rest-request/src/utils/GrantTypes.ts +5 -0
  422. package/packages/arcgis-rest-request/src/utils/HTTPMethods.ts +6 -0
  423. package/packages/arcgis-rest-request/src/utils/IAuthenticationManager.ts +22 -0
  424. package/packages/arcgis-rest-request/src/utils/IFetchTokenParams.ts +11 -0
  425. package/packages/arcgis-rest-request/src/utils/IGenerateTokenParams.ts +9 -0
  426. package/packages/arcgis-rest-request/src/utils/IParamBuilder.ts +3 -0
  427. package/packages/arcgis-rest-request/src/utils/IParams.ts +6 -0
  428. package/packages/arcgis-rest-request/src/utils/IParamsBuilder.ts +5 -0
  429. package/packages/arcgis-rest-request/src/utils/IRequestOptions.ts +59 -0
  430. package/packages/arcgis-rest-request/src/utils/ITokenRequestOptions.ts +9 -0
  431. package/packages/arcgis-rest-request/src/utils/ResponseFormats.ts +10 -0
  432. package/packages/arcgis-rest-request/src/utils/append-custom-params.ts +46 -0
  433. package/packages/arcgis-rest-request/src/utils/clean-url.ts +20 -0
  434. package/packages/arcgis-rest-request/src/utils/decode-query-string.ts +27 -0
  435. package/packages/arcgis-rest-request/src/utils/encode-form-data.ts +41 -0
  436. package/packages/arcgis-rest-request/src/utils/encode-query-string.ts +37 -0
  437. package/packages/arcgis-rest-request/src/utils/process-params.ts +109 -0
  438. package/packages/arcgis-rest-request/src/utils/retryAuthError.ts +10 -0
  439. package/packages/arcgis-rest-request/src/utils/warn.ts +11 -0
  440. package/packages/arcgis-rest-request/src/utils/with-options.ts +48 -0
  441. package/packages/arcgis-rest-request/src/validate-app-access.ts +69 -0
  442. package/packages/arcgis-rest-request/test/ApiKey.test.ts +53 -0
  443. package/packages/arcgis-rest-request/test/ApplicationSession.test.ts +148 -0
  444. package/packages/arcgis-rest-request/test/ArcGISIdentityManager.test.ts +2579 -0
  445. package/packages/arcgis-rest-request/test/app-tokens.test.ts +91 -0
  446. package/packages/arcgis-rest-request/test/federation-utils.test.ts +323 -0
  447. package/packages/arcgis-rest-request/test/fetchToken.test.ts +110 -0
  448. package/packages/arcgis-rest-request/test/generateToken.test.ts +40 -0
  449. package/packages/arcgis-rest-request/test/mocks/errors.ts +76 -0
  450. package/packages/arcgis-rest-request/test/mocks/geojson-feature-collection.ts +13 -0
  451. package/packages/arcgis-rest-request/test/mocks/param-builder.ts +7 -0
  452. package/packages/arcgis-rest-request/test/mocks/sharing-rest-info.ts +41 -0
  453. package/packages/arcgis-rest-request/test/mocks/webmap.ts +41 -0
  454. package/packages/arcgis-rest-request/test/request.test.ts +563 -0
  455. package/packages/arcgis-rest-request/test/revoke-token.test.ts +55 -0
  456. package/packages/arcgis-rest-request/test/utils/ArcGISAuthError.test.ts +196 -0
  457. package/packages/arcgis-rest-request/test/utils/ArcGISRequestError.test.ts +51 -0
  458. package/packages/arcgis-rest-request/test/utils/check-for-errors.test.ts +111 -0
  459. package/packages/arcgis-rest-request/test/utils/clean-url.test.ts +50 -0
  460. package/packages/arcgis-rest-request/test/utils/encode-form-data.test.ts +146 -0
  461. package/packages/arcgis-rest-request/test/utils/encode-query-string.test.ts +22 -0
  462. package/packages/arcgis-rest-request/test/utils/process-params.test.ts +205 -0
  463. package/packages/arcgis-rest-request/test/utils/with-options.test.ts +135 -0
  464. package/packages/arcgis-rest-request/test/validate-app-access.test.ts +44 -0
  465. package/packages/arcgis-rest-request/tsconfig.json +4 -0
  466. package/packages/arcgis-rest-routing/README.md +74 -0
  467. package/packages/arcgis-rest-routing/package.json +69 -0
  468. package/packages/arcgis-rest-routing/src/closestFacility.ts +223 -0
  469. package/packages/arcgis-rest-routing/src/helpers.ts +104 -0
  470. package/packages/arcgis-rest-routing/src/index.ts +20 -0
  471. package/packages/arcgis-rest-routing/src/originDestinationMatrix.ts +219 -0
  472. package/packages/arcgis-rest-routing/src/serviceArea.ts +169 -0
  473. package/packages/arcgis-rest-routing/src/solveRoute.ts +179 -0
  474. package/packages/arcgis-rest-routing/test/closestFacility.test.ts +686 -0
  475. package/packages/arcgis-rest-routing/test/mocks/inputs.ts +132 -0
  476. package/packages/arcgis-rest-routing/test/mocks/responses.ts +13316 -0
  477. package/packages/arcgis-rest-routing/test/originDestinationMatrix.test.ts +795 -0
  478. package/packages/arcgis-rest-routing/test/serviceArea.test.ts +601 -0
  479. package/packages/arcgis-rest-routing/test/solveRoute.test.ts +681 -0
  480. package/packages/arcgis-rest-routing/tsconfig.json +6 -0
  481. package/prettier-package-json.config.cjs +81 -0
  482. package/rollup.js +152 -0
  483. package/scripts/create-dist-package-jsons.js +17 -0
  484. package/scripts/deploy-doc-site.js +16 -0
  485. package/scripts/generate-sri-hashes.js +52 -0
  486. package/scripts/get-package-json.js +27 -0
  487. package/scripts/run-demo-server.js +21 -0
  488. package/scripts/test-helpers.ts +20 -0
  489. package/tsconfig.json +62 -0
  490. package/typedoc.json +14 -0
@@ -0,0 +1,84 @@
1
+ ---
2
+ title: Using ArcGIS REST JS in Node.js
3
+ navTitle: Node.js
4
+ description: Learn how to integrate the ArcGIS REST JS library into a Node.js app.
5
+ order: 50
6
+ group: 1-get-started
7
+ ---
8
+
9
+ # Get Started with Node.js
10
+
11
+ Make sure you are using Node 12.20.0 or greater. This is the first Node JS release with support for conditional exports in `package.json`.
12
+
13
+ ```bash
14
+ npm install @esri/arcgis-rest-request @esri/arcgis-rest-auth
15
+ ```
16
+
17
+ ```js
18
+ // ensures fetch is available as a global
19
+ const { request } = require("@esri/arcgis-rest-request");
20
+
21
+ request("https://www.arcgis.com/sharing/rest/info").then((response) =>
22
+ console.log(response)
23
+ );
24
+ ```
25
+
26
+ You can also use [ES Modules](https://nodejs.org/docs/latest-v12.x/api/packages.html#packages_determining_module_system) import syntax:
27
+
28
+ ```js
29
+ import request from "@esri/arcgis-rest-request";
30
+
31
+ request
32
+ .request("https://www.arcgis.com/sharing/rest/info")
33
+ .then((response) => console.log(response));
34
+ ```
35
+
36
+ ## Demo - [Express](https://github.com/Esri/arcgis-rest-js/tree/master/demos/express)
37
+
38
+ ### Authentication
39
+
40
+ To access premium content and services without asking for user credentials, using an [API key](https://developers.arcgis.com/documentation/mapping-apis-and-services/security/api-keys/) or [application credentials](https://developers.arcgis.com/documentation/mapping-apis-and-services/security/application-credentials/) is typically the best approach.
41
+
42
+ #### API Key
43
+
44
+ ```js
45
+ // no auth required
46
+ request(
47
+ `https://route-api.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World/solve?token={API_KEY}`
48
+ );
49
+ ```
50
+
51
+ #### Application credentials
52
+
53
+ ```js
54
+ const { ApplicationSession } = require("@esri/arcgis-rest-auth");
55
+
56
+ const authentication = new ApplicationSession({
57
+ clientId: "public",
58
+ clientSecret: "secret"
59
+ });
60
+
61
+ // url not accessible to anonymous users
62
+ const url = `https://route-api.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World`;
63
+
64
+ // token will be appended by rest-js
65
+ request(url, {
66
+ authentication
67
+ });
68
+ ```
69
+
70
+ ## Demo - [batch geocoding](https://github.com/Esri/arcgis-rest-js/tree/master/demos/batch-geocoder-node)
71
+
72
+ Applications cannot [create, share, access or modify items](https://developers.arcgis.com/documentation/core-concepts/security-and-authentication/limitations-of-application-authentication/) in ArcGIS Online or ArcGIS Enterprise. For this, a [`UserSession`](/arcgis-rest-js/api/auth/UserSession/) is more appropriate.
73
+
74
+ ```js
75
+ const { UserSession } = require("@esri/arcgis-rest-auth");
76
+
77
+ // hardcoded username / password
78
+ const authentication = new UserSession({
79
+ username: "jsmith",
80
+ password: "123456"
81
+ });
82
+ ```
83
+
84
+ See the [Browser Authentication](../browser-authentication/) for more information about implementing OAuth 2.0.
@@ -0,0 +1,111 @@
1
+ ---
2
+ title: Package Overview
3
+ description: Overview of packages provided by ArcGIS REST JS.
4
+ order: 10
5
+ group: 0-introduction
6
+ ---
7
+
8
+ # Why `@esri/arcgis-rest-js`?
9
+
10
+ `@esri/arcgis-rest-js` simplifies making requests to ArcGIS Online and Enterprise in both browsers and Node.js.
11
+
12
+ There's no better way to explain what that means than comparing an `@esri/arcgis-rest-js` call to the same web request made using plain old JavaScript.
13
+
14
+ ### @esri/arcgis-rest
15
+
16
+ ```js
17
+ import { getUser } from "@esri/arcgis-rest-portal";
18
+
19
+ // pass in a username and get back information about the user
20
+ getUser(`jgravois`)
21
+ .then(response) // { firstName: "john", description: "open source geodev" ... }
22
+ ```
23
+
24
+ ### vs. Vanilla JavaScript
25
+
26
+ ```js
27
+ // construct the url yourself and don't forget to tack on f=json
28
+ const url = "https://www.arcgis.com/sharing/rest/community/users/jgravois?f=json";
29
+
30
+ var xhr = new XMLHttpRequest();
31
+ xhr.onreadystatechange = function() {
32
+ if (xhr.readyState == XMLHttpRequest.DONE) {
33
+ xhr.responseText; // { firstName: "john", description: "open source geodev" ... }
34
+ }
35
+ }
36
+ xhr.open('GET', url, true);
37
+ xhr.send(null);
38
+ ```
39
+
40
+ wow, thats a lot easier! `@esri/arcgis-rest-js` is able to intuit the actual url (by default it assumes you're interacting with ArcGIS Online) prior to making the request and internalizes a lot of tedious logic for handling the response.
41
+
42
+ Our packages tap into a new JavaScript spec called [`fetch()`](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch) under the hood though, so lets compare 🍎s to 🍎s.
43
+
44
+ ```js
45
+ import { deleteFeatures } from "@esri/arcgis-rest-feature-layer";
46
+
47
+ const url = `http://sampleserver6.arcgisonline.com/arcgis/rest/services/SF311/FeatureServer/1/`
48
+
49
+ // https://esri.github.io/arcgis-rest-js/api/feature-service/deleteFeatures/
50
+ deleteFeatures({
51
+ url,
52
+ objectIds: [ 2360245 ]
53
+ })
54
+ .then(response)
55
+ ```
56
+
57
+ ```js
58
+ // append operation name to url
59
+ url += `deleteFeatures`;
60
+
61
+ fetch(url, {
62
+ // set the request type
63
+ method: "POST",
64
+ // append appropriate headers
65
+ headers: {
66
+ "Content-Type": "application/x-www-form-urlencoded"
67
+ },
68
+ // concatenate and encode each parameter manually
69
+ // and remember to append f=json
70
+ body: `objectIds=${encodeURIComponent(2360245)}&f=json`
71
+ })
72
+ .then(response => {
73
+ // cast the response as JSON
74
+ if (response.ok) {
75
+ return response.json()
76
+ }
77
+ })
78
+ .then(response => {
79
+ // trap for ArcGIS error objects in 200 responses
80
+ if (!response.error) {
81
+ console.log(response);
82
+ }
83
+ })
84
+ ```
85
+
86
+ As you can see, `@esri/arcgis-rest-js` is still handling a _lot_ of the details internally.
87
+
88
+ * the operation name is appended to urls
89
+ * a `"POST"` is made automatically (when appropriate)
90
+ * query string parameters are encoded
91
+ * appropriate `headers` are appended
92
+ * `FormData` is created internally (when necessary)
93
+ * `200` responses that contain an error are trapped for
94
+ * the generic `f=json` parameter is appended
95
+
96
+ And we haven't even begun to discuss [authentication](../browser-authentication/).
97
+
98
+ Whether you're trying to automate interacting with premium services in Node.js or creating a website that will allow users to sign into [ArcGIS Online](https://www.arcgis.com) safely and manage their own content, `@esri/arcgis-rest-js` has you covered.
99
+
100
+ # Package Overview
101
+
102
+ The library is a collection of _very_ small mix and match packages that are framework agnostic and make a variety of ArcGIS tasks more convenient.
103
+
104
+ * [`@esri/arcgis-rest-request`](../../api/request/) - Underpins other packages and supports making low-level requests.
105
+ * [`@esri/arcgis-rest-auth`](../../api/auth/) - Provides methods for authenticating named users and applications.
106
+ * [`@esri/arcgis-rest-portal`](../../api/portal/) - Methods for working with ArcGIS Online/Enterprise content and users.
107
+ * [`@esri/arcgis-rest-feature-layer`](../../api/feature-layer/) - Functions for querying and editing features inside of hosted feature layers.
108
+ * [`@esri/arcgis-rest-service-admin`](../../api/service-admin/) - Functions for administering hosted services.
109
+ * [`@esri/arcgis-rest-geocoding`](../../api/geocoding/) - Geocoding wrapper for `@esri/arcgis-rest-js`
110
+ * [`@esri/arcgis-rest-routing`](../../api/routing/) - Routing and directions wrapper for `@esri/arcgis-rest-js`.
111
+ * [`@esri/arcgis-rest-types`](../../api/types/) - Common Typings for TypeScript developers.
@@ -0,0 +1,9 @@
1
+ ---
2
+ title: Server-based authentication with ArcGIS REST JS
3
+ navTitle: Server-based OAuth 2.0
4
+ description: Learn how to authenticate users with ArcGIS REST JS and OAuth 2.0 in a Node.js server.
5
+ order: 10
6
+ group: 2-authentication
7
+ ---
8
+
9
+ # Authentication in Server-based Apps
@@ -0,0 +1,305 @@
1
+ ---
2
+ title: What's New in v2.0.0
3
+ navTitle: What's New in v2.0.0
4
+ description: Learn what's new in v2.0.0 of ArcGIS REST JS.
5
+ order: 60
6
+ group: 1-get-started
7
+ ---
8
+
9
+ # What's new in `v2.0.0?`
10
+
11
+ Our family of users and contributors has grown [(a lot!)](https://github.com/Esri/arcgis-rest-js/blob/master/docs/FAQ.md#who-is-using-these-packages) since our first release so we decided to rollup our sleeves (groan) and overhaul the API. Our goals were to:
12
+
13
+ 1. Make ArcGIS REST JS as consistent (and simple) as possible
14
+ 2. Introduce building blocks for compositional/fluent APIs
15
+ 3. Provide a few new options to reuse common parameters
16
+
17
+ ## Fluent APIs
18
+
19
+ In [`v2.0.0`](https://github.com/Esri/arcgis-rest-js/releases/v2.0.0) we introduced a new class called [`SearchQueryBuilder`](../../api/portal/SearchQueryBuilder/) to help compose complex parameters.
20
+
21
+ ```ts
22
+ import { searchItems, SearchQueryBuilder } from "@esri/arcgis-rest-portal";
23
+
24
+ const q = new SearchQueryBuilder()
25
+ .match("Trees")
26
+ .and()
27
+ .match("US Forest Service")
28
+ .in("owner")
29
+ .and()
30
+ .startGroup()
31
+ .match("Web Mapping Application")
32
+ .in("type")
33
+ .or()
34
+ .match("Mobile Application")
35
+ .in("type")
36
+ .endGroup()
37
+
38
+ // "Trees AND owner: US Forest Service AND (type: "Web Mapping Application" OR type: "Mobile Application")"
39
+ searchItems({ q })
40
+ ```
41
+
42
+ Currently only [`searchItems()`](../../api/portal/searchItems/) and [`searchGroups()`](../../api/portal/searchGroups/) accept `SearchQueryBuilder` as an input, but we've included building blocks (groan) to create additional implementations as well.
43
+
44
+ ## Paging
45
+
46
+ The promises returned by [`searchItems()`](../../api/portal/searchItems/) and [`searchGroups()`](../../api/portal/searchGroups/) also got a handy new [`nextPage()`](../../api/portal/searchItems/#nextPage) method to make it easier to sift through paginated results.
47
+
48
+ ```ts
49
+ searchItems({ q })
50
+ .then(response => {
51
+ if (response.nextPage) {
52
+ r.nextPage()
53
+ .then(responsePageTwo)
54
+ }
55
+ })
56
+ ```
57
+
58
+ ## Reuse parameters
59
+
60
+ We added two new methods to `@esri/arcgis-rest-request` as helpers for passing repeat options through.
61
+
62
+ ### [`setDefaultRequestOptions()`](../../api/request/setDefaultRequestOptions/)
63
+
64
+ Now, if you want to ensure that _all_ requests include a custom option, you can use `setDefaultRequestOptions()`.
65
+
66
+ ```ts
67
+ import { request, setDefaultRequestOptions } from "@esri/arcgis-rest-request";
68
+
69
+ setDefaultRequestOptions({
70
+ headers: { "Custom-Header": "Test Value" }
71
+ });
72
+
73
+ const url = `https://www.arcgis.com/sharing/rest/info`;
74
+
75
+ // the custom header will *always* be passed along
76
+ request(url)
77
+ ```
78
+
79
+ You should _not_ pass `authentication` to this method if your code runs in a shared environment like a web server that handles requests for more than one user.
80
+
81
+ ### [`withOptions()`](../../api/request/withOptions/)
82
+
83
+ If you'd like to selectively append common options to _a specific method_, you can use the new `withOptions()` method.
84
+
85
+ ```ts
86
+ import { request, withOptions } from "@esri/arcgis-rest-request";
87
+
88
+ const authenticatedRequest = withOptions({
89
+ authentication: session
90
+ }, request);
91
+
92
+ // includes authenticated session
93
+ authenticatedRequest(url)
94
+
95
+ // does NOT include authenticated session
96
+ request(url)
97
+ ```
98
+
99
+ ## Breaking Changes
100
+
101
+ In order to make the API more consistent and a little easier to navigate, we had to break a few 🍳s.
102
+
103
+ #### One `portal` package to rule them all (even for ArcGIS Online)
104
+
105
+ We consolidated four existing packages into a new one called [`@esri/arcgis-rest-portal`](../../api/portal/). Whether you want to talk to ArcGIS Online _or_ Enterprise, now you'll do this:
106
+ ```bash
107
+ # new
108
+ npm install @esri/arcgis-rest-portal
109
+ ```
110
+ instead of this:
111
+ ```bash
112
+ # old
113
+ npm install @esri/arcgis-rest-items &&
114
+ @esri/arcgis-rest-users &&
115
+ @esri/arcgis-rest-groups &&
116
+ @esri/arcgis-rest-sharing
117
+ ```
118
+ The table below lists methods in this package that have been deprecated, given a facelift, or given a new home.
119
+
120
+ | Old | New | Package
121
+ | -- | -- | -- |
122
+ | ~~`serializeGroup()`~~ | | ~~`groups`~~ |
123
+ | ~~`addItemJsonData()`~~ | [`addItemData()`](https://esri.github.io/arcgis-rest-js/api/portal/addItemData/) | ~~`items`~~ |
124
+ | ~~`createItemInFolder({ folder })`~~ | [`createItemInFolder({ folderId })`](https://esri.github.io/arcgis-rest-js/api/portal/createItemInFolder/) | ~~`items`~~ `portal` |
125
+ | ~~`searchItems( string|opts )`~~ | [`searchItems( string|opts|Builder )`](https://esri.github.io/arcgis-rest-js/api/portal/searchItems/) | ~~`items`~~ `portal` |
126
+ | ~~`searchGroups( form, opts )`~~ | [`searchGroups( string|opts|Builder )`](https://esri.github.io/arcgis-rest-js/api/portal/searchGroups/) | ~~`groups`~~ `portal` |
127
+ | ~~`getItemResources( opts )`~~ | [`getItemResources( id, opts? )`](https://esri.github.io/arcgis-rest-js/api/portal/getItemResources/) | ~~`items`~~ `portal` |
128
+ | `getUserUrl()` | [`getUserUrl()`](https://esri.github.io/arcgis-rest-js/api/portal/getUserUrl/) | ~~`auth`~~ `portal` |
129
+ | `getPortalUrl()` | [`getPortalUrl()`](https://esri.github.io/arcgis-rest-js/api/portal/getPortalUrl/) | ~~`request`~~ `portal` |
130
+ | `getPortal()` | [`getPortal()`](https://esri.github.io/arcgis-rest-js/api/portal/getPortal/) | ~~`request`~~ `portal` |
131
+ | | [`SearchQueryBuilder`](https://esri.github.io/arcgis-rest-js/api/portal/SearchQueryBuilder/) | `portal` |
132
+
133
+ #### `@esri/arcgis-rest-request`
134
+
135
+ The only breaking changes we made to `request` were to refactor an internal method and move a couple others into the new [`portal`](../../api/portal/) package.
136
+
137
+ | Old | New | Package Name |
138
+ | -- | -- | -- |
139
+ | `getPortalUrl()` | [`getPortalUrl()`](https://esri.github.io/arcgis-rest-js/api/portal/getPortalUrl/) | ~~`request`~~ `portal` |
140
+ | `getPortal()` | [`getPortal()`](https://esri.github.io/arcgis-rest-js/api/portal/getPortal/) | ~~`request`~~ `portal` |
141
+
142
+ #### If you work with private services (shhhh)
143
+
144
+ We didn't make many changes in `@esri/arcgis-rest-auth`, but one method moved and two others got simpler.
145
+
146
+ | Old | New | Package Name |
147
+ | -- | -- | -- |
148
+ | `getUserUrl()` | [`getUserUrl()`](https://esri.github.io/arcgis-rest-js/api/portal/getUserUrl/) | ~~`auth`~~ `portal` |
149
+ | `fetchToken(params|opts)` | `fetchToken(opts)` |
150
+ | `generateToken(params|opts)` | `generateToken(opts)` |
151
+
152
+ #### `@esri/arcgis-rest-routing`
153
+
154
+ In this package, we renamed one constant.
155
+
156
+ | Old | New |
157
+ | -- | -- |
158
+ | ~~`worldRoutingService`~~ | [`ARCGIS_ONLINE_ROUTING_URL`](https://esri.github.io/arcgis-rest-js/api/routing/ARCGIS_ONLINE_ROUTING_URL/) |
159
+
160
+ #### Geocoding addresses
161
+
162
+ In the interest of consistency, we renamed the geocoding package too.
163
+
164
+ ```bash
165
+ # new
166
+ npm install @esri/arcgis-rest-geocoding
167
+ ```
168
+
169
+ ```bash
170
+ # old
171
+ npm install @esri/arcgis-rest-geocoder
172
+ ```
173
+
174
+ We renamed one method (and one constant) as well.
175
+
176
+ | Old | New |
177
+ | -- | -- |
178
+ | ~~`serviceInfo()`~~ | [`getGeocodeService()`](https://esri.github.io/arcgis-rest-js/api/geocoding/getGeocodeService/) |
179
+ | ~~`worldGeocoder`~~ | [`ARCGIS_ONLINE_GEOCODING_URL`](https://esri.github.io/arcgis-rest-js/api/geocoding/ARCGIS_ONLINE_GEOCODING_URL/) |
180
+
181
+ #### Querying and editing feature layers
182
+
183
+ This package was also renamed. If you're already using `queryFeatures()` or making edits inside hosted feature layers, now you'll install this:
184
+
185
+ ```bash
186
+ # new
187
+ npm install @esri/arcgis-rest-feature-layer
188
+ ```
189
+
190
+ instead of this:
191
+ ```bash
192
+ # old
193
+ npm install @esri/arcgis-rest-feature-service
194
+ ```
195
+ The `feature-layer` methods that were refactored or re-homed are listed below.
196
+
197
+ | Old | New | Package |
198
+ | -- | -- | -- |
199
+ | ~~`addFeatures({ adds })`~~ | [`addFeatures({ features })`](https://esri.github.io/arcgis-rest-js/api/feature-layer/addFeatures/) |
200
+ | ~~`updateFeatures({ updates })`~~ | [`updateFeatures({ features })`](https://esri.github.io/arcgis-rest-js/api/feature-layer/updateFeatures/) |
201
+ | ~~`deleteFeatures({ deletes })`~~ | [`deleteFeatures({ objectIds })`](https://esri.github.io/arcgis-rest-js/api/feature-layer/deleteFeatures/) |
202
+ | ~~`getLayer(url, options)`~~ | [`getLayer(options)`](https://esri.github.io/arcgis-rest-js/api/feature-layer/getLayer/) |
203
+
204
+ #### Publishing and updating new hosted feature services
205
+
206
+ If you're already using `rest-js` to publish _new_ hosted feature services, that package has a new (shorter) name too.
207
+
208
+ ```bash
209
+ # new
210
+ npm install @esri/arcgis-rest-service-admin
211
+ ```
212
+ instead of this:
213
+ ```bash
214
+ # old
215
+ npm install @esri/arcgis-rest-feature-service-admin
216
+ ```
217
+ After you save those seven keystrokes, everything else will be familiar.
218
+
219
+ #### Helper methods
220
+
221
+ In this release we also made the decision to stop documenting internal helper methods like `appendCustomParams`. In the future, undocumented methods may change without notice.
222
+
223
+ ## Breaking Changes for TypeScript developers
224
+
225
+ Each package now installs shared TypeScript typings automatically and re-exports them, so its no longer necessary to install a separate package yourself.
226
+
227
+ ```ts
228
+ // old
229
+ import { IPoint } from "@esri/arcgis-rest-common-types";
230
+ import { reverseGeocode } from "@esri/arcgis-rest-geocoder";
231
+
232
+ reverseGeocode({ x: 34, y: -118} as IPoint);
233
+
234
+ // new
235
+ import { IPoint, reverseGeocode } from "@esri/arcgis-rest-geocoding";
236
+
237
+ reverseGeocode({ x: 34, y: -118} as IPoint);
238
+ ```
239
+
240
+ If you'd _like_ to install the typings yourself, there is a more concise package name for that too.
241
+
242
+ ```bash
243
+ # new package name
244
+ npm install @esri/arcgis-rest-types
245
+ ```
246
+
247
+ The table below lists interfaces and types that have been removed or renamed in the name of consistency and brevity. This also better aligns the names of options and response interfaces with their corresponding function.
248
+
249
+ | Old Interface/Type | New Interface/Type |
250
+ | -- | -- |
251
+ | ~~`esriFieldTypes`~~ | `FieldTypes` |
252
+ | ~~`esriGeometryType`~~ | `GeometryType` |
253
+ | ~~`esriUnits`~~ | `Units` |
254
+ | ~~`IOauth2Options`~~ | `IOAuth2Options` |
255
+ | ~~`IBulkGeocodingRequestOptions`~~ | `IBulkGeocodeOptions` |
256
+ | ~~`IGeocodeRequestOptions`~~ | `IGeocodeOptions` |
257
+ | ~~`IGeocodeParams`~~ | |
258
+ | ~~`ISolveRouteRequestOptions`~~ | `ISolveRouteOptions` |
259
+ | ~~`IEditFeaturesParams`~~ | `ISharedEditOptions` |
260
+ | ~~`IQueryFeaturesParams`~~ | `ISharedQueryOptions` |
261
+ | ~~`IQueryFeaturesRequestOptions`~~ | `IQueryFeaturesOptions` |
262
+ | ~~`IQueryRelatedRequestOptions`~~ | `IQueryRelatedOptions` |
263
+ | ~~`IAddFeaturesRequestOptions`~~ | `IAddFeaturesOptions` |
264
+ | ~~`IUpdateFeaturesRequestOptions`~~ | `IUpdateFeaturesOptions` |
265
+ | ~~`IDeleteFeaturesRequestOptions`~~ | `IDeleteFeaturesOptions` |
266
+ | ~~`IDecodeValuesRequestOptions`~~ | `IDecodeValuesOptions` |
267
+ | ~~`ILayerRequestOptions`~~ | `IGetLayerOptions` |
268
+ | ~~`IFeatureRequestOptions`~~ | `IGetFeatureOptions` |
269
+ | ~~`IAddToServiceDefinitionRequestOptions`~~ | `IAddToServiceDefinitionOptions` |
270
+ | ~~`ICreateServiceRequestOptions`~~ | `ICreateServiceOptions` |
271
+ | ~~`IItemResourceAddRequestOptions`~~ | |
272
+ | ~~`IGroupAddRequestOptions`~~ | `ICreateGroupOptions` |
273
+ | ~~`IPagingParamsRequestOptions`~~ | `IGetGroupContentOptions` |
274
+ | ~~`IGroupIdRequestOptions`~~ | `IUserGroupOptions` |
275
+ | ~~`IGroupNotificationRequestOptions`~~ | `ICreateGroupNotificationOptions` |
276
+ | ~~`ISearchRequestOptions`~~ | `ISearchOptions` |
277
+ | ~~`IGroupUpdateRequestOptions`~~ | `IUpdateGroupOptions` |
278
+ | ~~`IItemIdRequestOptions`~~ | `IUserItemOptions` |
279
+ | ~~`IItemResourceRequestOptions`~~ | `IItemResourceOptions` |
280
+ | ~~`IItemAddResponse`~~ | `ICreateItemResponse` |
281
+ | ~~`IManageItemRelationshipRequestOptions`~~ | `IManageItemRelationshipOptions` |
282
+ | ~~`IItemDataAddRequestOptions`~~ | `IAddItemDataOptions` |
283
+ | ~~`IItemCrudRequestOptions`~~ | `ICreateUpdateItemOptions` |
284
+ | ~~`IAddFolderRequestOptions`~~ | `ICreateFolderOptions` |
285
+ | ~~`IItemAddRequestOptions`~~ | `ICreateItemOptions` |
286
+ | ~~`IItemDataRequestOptions`~~ | `IItemDataOptions` |
287
+ | ~~`IItemRelationshipRequestOptions`~~ | `IItemRelationshipOptions` |
288
+ | ~~`IItemGroupResponse`~~ | `IGetItemGroupsResponse` |
289
+ | ~~`IItemRequestOptions`~~ | |
290
+ | ~~`IFolderIdRequestOptions`~~ | `IFolderIdOptions` |
291
+ | ~~`IItemUpdateResponse`~~ | `IUpdateItemResponse` |
292
+ | ~~`IItemMoveResponse`~~ | `IMoveItemResponse` |
293
+ | ~~`IItemUpdateRequestOptions`~~ | `IUpdateItemOptions` |
294
+ | ~~`IItemMoveRequestOptions`~~ | `IMoveItemOptions` |
295
+ | ~~`ISharingRequestOptions`~~ | `ISharingOptions` |
296
+ | ~~`ISetAccessRequestOptions`~~ | `ISetAccessOptions` |
297
+ | ~~`IGroupSharingRequestOptions`~~ | `IGroupSharingOptions` |
298
+ | ~~`IGetUserRequestOptions`~~ | `IGetUserOptions` |
299
+ | ~~`IInvitationRequestOptions`~~ | `IGetUserInvitationOptions` |
300
+ | ~~`INotificationIdRequestOptions`~~ | `IRemoveNotificationOptions` |
301
+ | ~~`IUpdateUserRequestOptions`~~ | `IUpdateUserOptions` |
302
+ | | `IParamBuilder` |
303
+ | | `IParamsBuilder` |
304
+
305
+ That's it! We know that moving so much 🧀 is a hassle, but developers of the future send their thanks! 🎩
Binary file
Binary file
Binary file
@@ -0,0 +1,12 @@
1
+
2
+ <header class="sub-nav" role="banner">
3
+ <div class="grid-container">
4
+ <div class="column-24 text-center leader-4 trailer-5">
5
+ <h1 class="font-size-7 text-white">ArcGIS REST JS</h1>
6
+ <p class="text-white font-size-2">Compact, modular JavaScript wrappers for the ArcGIS REST API</a>.</p>
7
+ {% link "./guides/", "Get Started", class="btn btn-large btn-clear-white" %}
8
+ {% link "./api/", "API Reference", class="btn btn-large btn-clear-white" %}
9
+ </div>
10
+ </div>
11
+ </header>
12
+ </div>
@@ -0,0 +1,112 @@
1
+ Vue.component("api-search", {
2
+ template: `
3
+ <div>
4
+ <form v-on:submit.prevent="onSubmit" class="input-group trailer-half leader-0">
5
+ <input ref="input" v-model="searchTerm" v-on:keyup.enter="onSubmit" v-on:keyup.up="onSelectPrevious" v-on:keyup.down="onSelectNext" v-on:keyup="onChange" class="input-group-input" type="text" placeholder="Search the API Reference">
6
+ <span class="input-group-button">
7
+ <button type="submit" class="btn"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" class="svg-icon"><path d="M31.607 27.838l-6.133-6.137a1.336 1.336 0 0 0-1.887 0l-.035.035-2.533-2.533-.014.014c3.652-4.556 3.422-11.195-.803-15.42-4.529-4.527-11.875-4.531-16.404 0-4.531 4.531-4.529 11.875 0 16.406 4.205 4.204 10.811 4.455 15.365.848l.004.003-.033.033 2.541 2.54a1.33 1.33 0 0 0 .025 1.848l6.135 6.133a1.33 1.33 0 0 0 1.887 0l1.885-1.883a1.332 1.332 0 0 0 0-1.887zM17.811 17.809a8.213 8.213 0 0 1-11.619 0 8.217 8.217 0 0 1 0-11.622 8.219 8.219 0 0 1 11.619.004 8.216 8.216 0 0 1 0 11.618z"/></svg></button>
8
+ </span>
9
+ </form>
10
+
11
+ <div class="panel" v-show="results.length <= 0 && searchTerm">
12
+ No Results.
13
+ </div>
14
+
15
+ <div v-show="results.length <= 0 && !searchTerm">
16
+ <slot></slot>
17
+ </div>
18
+
19
+ <ul v-show="results.length > 0" class="list-plain">
20
+ <li v-for="result, index in results" class="api-search-result api-list-item" v-bind:class="[result.icon, {'is-selected': index === selectedResultIndex}]">
21
+ <a v-bind:href="result.url" class="tsd-kind-icon" v-html="result.title"></a>
22
+ </li>
23
+ </ul>
24
+ </div>
25
+ </div>
26
+ `,
27
+ data: function() {
28
+ return {
29
+ results: [],
30
+ selectedResultIndex: 0,
31
+ searchTerm: ""
32
+ };
33
+ },
34
+ methods: {
35
+ highlightText: function(text, matches) {
36
+ return matches
37
+ .map(match => {
38
+ let characters = text.split("");
39
+
40
+ for (let i = match.indices.length - 1; i >= 0; i--) {
41
+ let start = match.indices[i][0];
42
+ let end = match.indices[i][1] + 1;
43
+ let foundMatch = characters.slice(start, end).join("");
44
+ characters.splice(
45
+ start,
46
+ end - start,
47
+ `<span style="text-decoration: underline; font-weight: 500;">${foundMatch}</span>`
48
+ );
49
+ }
50
+
51
+ return characters.join("");
52
+ })
53
+ .join();
54
+ },
55
+ onSubmit: function() {
56
+ if (this.results.length && this.results[this.selectedResultIndex]) {
57
+ window.location.href = this.results[this.selectedResultIndex].url;
58
+ }
59
+ },
60
+
61
+ search: function(text) {
62
+ return this.index.search(text).map(result => {
63
+ return {
64
+ title: this.highlightText(result.item.title, result.matches),
65
+ icon: result.item.icon,
66
+ url: result.item.url
67
+ };
68
+ });
69
+ },
70
+
71
+ onChange: function(e) {
72
+ this.results = this.search(e.target.value);
73
+
74
+ if (e.keyCode === 38 || e.keyCode === 40) {
75
+ e.preventDefault();
76
+ e.stopPropagation();
77
+ }
78
+ },
79
+
80
+ onSelectNext: function(e) {
81
+ this.selectedResultIndex =
82
+ this.selectedResultIndex === this.results.length - 1
83
+ ? 0
84
+ : this.selectedResultIndex + 1;
85
+ e.preventDefault();
86
+ e.stopPropagation();
87
+ },
88
+
89
+ onSelectPrevious: function(e) {
90
+ this.selectedResultIndex =
91
+ this.selectedResultIndex === 0
92
+ ? this.results.length - 1
93
+ : this.selectedResultIndex - 1;
94
+
95
+ e.preventDefault();
96
+ e.stopPropagation();
97
+ }
98
+ },
99
+ created: function() {
100
+ this.index = new Fuse(ESRI_REST_API_REF_INDEX, {
101
+ shouldSort: true,
102
+ threshold: 0.25,
103
+ location: 0,
104
+ distance: 200,
105
+ maxPatternLength: 32,
106
+ minMatchCharLength: 2,
107
+ findAllMatches: true,
108
+ includeMatches: true,
109
+ keys: ["title"]
110
+ });
111
+ }
112
+ });
@@ -0,0 +1,41 @@
1
+ Vue.component("nav-toggle", {
2
+ props: ["index", "packageName"],
3
+ mounted: function() {
4
+ this.trigger = document.getElementById("trigger" + this.index);
5
+ this.list = document.getElementById("list" + this.index);
6
+ this.toggle = false;
7
+
8
+ const match = window.location.pathname.match(/\/api\/([^\/]+)\//);
9
+ const partialPath = match ? match[1] : null;
10
+ if (partialPath && this.packageName.replace("@esri/arcgis-rest-", "") === partialPath) {
11
+ this.show();
12
+ }
13
+
14
+ this.trigger.onclick = () => {
15
+ if (this.toggle) {
16
+ this.hide();
17
+ } else {
18
+ this.show();
19
+ }
20
+ };
21
+ },
22
+ methods: {
23
+ hide: function() {
24
+ for (var i = 0; i < this.list.children.length; i++) {
25
+ this.trigger.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" class="svg-icon"><path d="M7 4h5l12 12-12 12H7l12-12L7 4z"/></svg>`;
26
+ this.list.children[i].classList.add("visually-hidden");
27
+ }
28
+ this.toggle = false;
29
+ },
30
+ show: function() {
31
+ for (var i = 0; i < this.list.children.length; i++) {
32
+ this.trigger.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" class="svg-icon"><path d="M28 9v5L16 26 4 14V9l12 12L28 9z"/></svg>`;
33
+ this.list.children[i].classList.remove("visually-hidden");
34
+ if (this.list.children[i].children[0].classList.contains("is-active")) {
35
+ this.list.children[i].classList.add("list-item-active");
36
+ }
37
+ }
38
+ this.toggle = true;
39
+ }
40
+ }
41
+ });