autnam 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,124 @@
1
+ /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+
4
+ import fetchMock from "fetch-mock";
5
+ import { reverseGeocode } from "../src/reverse.js";
6
+ import { ReverseGeocode } from "./mocks/responses.js";
7
+
8
+ describe("geocode", () => {
9
+ afterEach(fetchMock.restore);
10
+
11
+ it("should make a reverse geocoding request", (done) => {
12
+ fetchMock.once("*", ReverseGeocode);
13
+
14
+ reverseGeocode({ x: -118.409, y: 33.9425 })
15
+ .then((response) => {
16
+ expect(fetchMock.called()).toEqual(true);
17
+ const [url, options]: [string, RequestInit] = fetchMock.lastCall("*");
18
+ expect(url).toEqual(
19
+ "https://geocode-api.arcgis.com/arcgis/rest/services/World/GeocodeServer/reverseGeocode"
20
+ );
21
+ expect(options.method).toBe("POST");
22
+ expect(options.body).toContain("f=json");
23
+ expect(options.body).toContain(
24
+ `location=${encodeURIComponent('{"x":-118.409,"y":33.9425}')}`
25
+ );
26
+ expect(response).toEqual(ReverseGeocode); // introspect the entire response
27
+ done();
28
+ })
29
+ .catch((e) => {
30
+ fail(e);
31
+ });
32
+ });
33
+
34
+ it("should make a reverse geocoding GET request and pass through a spatial reference", (done) => {
35
+ fetchMock.once("*", ReverseGeocode);
36
+
37
+ reverseGeocode(
38
+ { x: -118.409, y: 33.9425, spatialReference: { wkid: 4326 } },
39
+ { httpMethod: "GET" }
40
+ )
41
+ .then((response) => {
42
+ expect(fetchMock.called()).toEqual(true);
43
+ const [url, options]: [string, RequestInit] = fetchMock.lastCall("*");
44
+ expect(url).toEqual(
45
+ "https://geocode-api.arcgis.com/arcgis/rest/services/World/GeocodeServer/reverseGeocode?f=json&location=%7B%22x%22%3A-118.409%2C%22y%22%3A33.9425%2C%22spatialReference%22%3A%7B%22wkid%22%3A4326%7D%7D"
46
+ );
47
+ expect(options.method).toBe("GET");
48
+ expect(response).toEqual(ReverseGeocode); // this introspects the entire response
49
+ done();
50
+ })
51
+ .catch((e) => {
52
+ fail(e);
53
+ });
54
+ });
55
+
56
+ it("should make a reverse geocoding request and translate lat/long JSON objects", (done) => {
57
+ fetchMock.once("*", ReverseGeocode);
58
+
59
+ reverseGeocode({ longitude: -118.409, latitude: 33.9425 })
60
+ .then((response) => {
61
+ expect(fetchMock.called()).toEqual(true);
62
+ const [url, options]: [string, RequestInit] = fetchMock.lastCall("*");
63
+ expect(url).toEqual(
64
+ "https://geocode-api.arcgis.com/arcgis/rest/services/World/GeocodeServer/reverseGeocode"
65
+ );
66
+ expect(options.method).toBe("POST");
67
+ expect(options.body).toContain("f=json");
68
+ expect(options.body).toContain(
69
+ `location=${encodeURIComponent("-118.409,33.9425")}`
70
+ );
71
+ expect(response).toEqual(ReverseGeocode); // this introspects the entire response
72
+ done();
73
+ })
74
+ .catch((e) => {
75
+ fail(e);
76
+ });
77
+ });
78
+
79
+ it("should make a reverse geocoding request and translate lat/long JSON abbreviated objects", (done) => {
80
+ fetchMock.once("*", ReverseGeocode);
81
+
82
+ reverseGeocode({ lat: 33.9425, long: -118.409 })
83
+ .then((response) => {
84
+ expect(fetchMock.called()).toEqual(true);
85
+ const [url, options]: [string, RequestInit] = fetchMock.lastCall("*");
86
+ expect(url).toEqual(
87
+ "https://geocode-api.arcgis.com/arcgis/rest/services/World/GeocodeServer/reverseGeocode"
88
+ );
89
+ expect(options.method).toBe("POST");
90
+ expect(options.body).toContain("f=json");
91
+ expect(options.body).toContain(
92
+ `location=${encodeURIComponent("-118.409,33.9425")}`
93
+ );
94
+ expect(response).toEqual(ReverseGeocode); // this introspects the entire response
95
+ done();
96
+ })
97
+ .catch((e) => {
98
+ fail(e);
99
+ });
100
+ });
101
+
102
+ it("should make a reverse geocoding request and translate a raw long,lat array", (done) => {
103
+ fetchMock.once("*", ReverseGeocode);
104
+
105
+ reverseGeocode([-118, 34])
106
+ .then((response) => {
107
+ expect(fetchMock.called()).toEqual(true);
108
+ const [url, options]: [string, RequestInit] = fetchMock.lastCall("*");
109
+ expect(url).toEqual(
110
+ "https://geocode-api.arcgis.com/arcgis/rest/services/World/GeocodeServer/reverseGeocode"
111
+ );
112
+ expect(options.method).toBe("POST");
113
+ expect(options.body).toContain("f=json");
114
+ expect(options.body).toContain(
115
+ `location=${encodeURIComponent("-118,34")}`
116
+ );
117
+ expect(response).toEqual(ReverseGeocode); // this introspects the entire response
118
+ done();
119
+ })
120
+ .catch((e) => {
121
+ fail(e);
122
+ });
123
+ });
124
+ });
@@ -0,0 +1,53 @@
1
+ /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+
4
+ import fetchMock from "fetch-mock";
5
+ import { suggest } from "../src/suggest.js";
6
+ import { Suggest } from "./mocks/responses.js";
7
+
8
+ describe("geocode", () => {
9
+ afterEach(fetchMock.restore);
10
+
11
+ it("should make a request for suggestions", (done) => {
12
+ fetchMock.once("*", Suggest);
13
+
14
+ suggest("LAX")
15
+ .then((response) => {
16
+ expect(fetchMock.called()).toEqual(true);
17
+ const [url, options]: [string, RequestInit] = fetchMock.lastCall("*");
18
+ expect(url).toEqual(
19
+ "https://geocode-api.arcgis.com/arcgis/rest/services/World/GeocodeServer/suggest"
20
+ );
21
+ expect(options.method).toBe("POST");
22
+ expect(options.body).toContain("f=json");
23
+ expect(options.body).toContain("text=LAX");
24
+ expect(response).toEqual(Suggest); // this introspects the entire response
25
+ done();
26
+ })
27
+ .catch((e) => {
28
+ fail(e);
29
+ });
30
+ });
31
+
32
+ it("should make a request for suggestions with other parameters", (done) => {
33
+ fetchMock.once("*", Suggest);
34
+
35
+ suggest("LAX", { params: { category: "Address,Postal" } })
36
+ .then((response) => {
37
+ expect(fetchMock.called()).toEqual(true);
38
+ const [url, options]: [string, RequestInit] = fetchMock.lastCall("*");
39
+ expect(url).toEqual(
40
+ "https://geocode-api.arcgis.com/arcgis/rest/services/World/GeocodeServer/suggest"
41
+ );
42
+ expect(options.method).toBe("POST");
43
+ expect(options.body).toContain("f=json");
44
+ expect(options.body).toContain("text=LAX");
45
+ expect(options.body).toContain("category=Address%2CPostal");
46
+ expect(response).toEqual(Suggest); // this introspects the entire response
47
+ done();
48
+ })
49
+ .catch((e) => {
50
+ fail(e);
51
+ });
52
+ });
53
+ });
@@ -0,0 +1,6 @@
1
+ {
2
+ "extends": "../../tsconfig.json",
3
+ "include": [
4
+ "src/**/*.ts"
5
+ ]
6
+ }
@@ -0,0 +1,73 @@
1
+ # @esri/arcgis-rest-portal 1.0.0-beta.1 (2022-02-17)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * switch to eslint, fix minor issues, disable other rules ([ab47412](https://github.com/Esri/arcgis-rest-js/commit/ab474123d3a056dcd52a8898f39f287893626f35))
7
+ * **aggs counts should be array:** aggs counts should be array ([72b3bf7](https://github.com/Esri/arcgis-rest-js/commit/72b3bf74a33d16d89b357556a80eb32d5e70b25b))
8
+ * **arcgis-rest-portal:** add fetchMock setup for intermittent failing tests ([5384984](https://github.com/Esri/arcgis-rest-js/commit/53849842f8a0c6192faa36f5634c171721a45903))
9
+ * **arcgis-rest-portal:** do not do any membership adjustments if the group is the user's favorites g ([6fc8ada](https://github.com/Esri/arcgis-rest-js/commit/6fc8ada666e2ac6388418d3416db13a40c299757))
10
+ * **arcgis-rest-portal:** make \`layers\` parameter of \`IExportParameters\` optional ([0b584e6](https://github.com/Esri/arcgis-rest-js/commit/0b584e66396a9559248e597ec44b256f95fc58e7))
11
+ * **arcgis-rest-portal:** share as admin uses content/users/:ownername/items/:id/share end-point ([fd1a960](https://github.com/Esri/arcgis-rest-js/commit/fd1a960cab22e3c1810dc4760a007d409b7f59f1))
12
+ * **arcgis-rest-portal:** use deleteRelationship not removeRelationship ([890e485](https://github.com/Esri/arcgis-rest-js/commit/890e4859dc45ce1588b5ba3573c881c227267bf9)), closes [#739](https://github.com/Esri/arcgis-rest-js/issues/739)
13
+ * **arcgis-rest-portal:** wrong parameters for file upload APIs ([#761](https://github.com/Esri/arcgis-rest-js/issues/761)) ([cbfef7d](https://github.com/Esri/arcgis-rest-js/commit/cbfef7d6bd669d323dab5299966217a956fc5cfb)), closes [#693](https://github.com/Esri/arcgis-rest-js/issues/693) [#694](https://github.com/Esri/arcgis-rest-js/issues/694) [#700](https://github.com/Esri/arcgis-rest-js/issues/700)
14
+ * **getItemResources:** allow user to override paging ([97cbec0](https://github.com/Esri/arcgis-rest-js/commit/97cbec0b918e0ec914beb60abdb36d1265ce5645))
15
+ * **getItemResources:** do not mutate requestOptions in getItemResources ([cac63e8](https://github.com/Esri/arcgis-rest-js/commit/cac63e8090b81a6fe2258529060bc6f3f0611fb0))
16
+ * **portal:** searchGroupUsers will now respect joined and memberType parameters ([79b15b5](https://github.com/Esri/arcgis-rest-js/commit/79b15b5a00ec3efed2193d3d16f61417bfcc933d))
17
+ * **portal:** setting item access to public shares correctly ([6a2b115](https://github.com/Esri/arcgis-rest-js/commit/6a2b11593643a1c760052d844e6346c4f7345149))
18
+ * **removeItemResource:** support correct parameters ([#835](https://github.com/Esri/arcgis-rest-js/issues/835)) ([96798fe](https://github.com/Esri/arcgis-rest-js/commit/96798fe01a890514eacd268ef8e2f429fda1be4a))
19
+ * **search:** add support for untyped, grouped search strings ([39fc213](https://github.com/Esri/arcgis-rest-js/commit/39fc21379a3e78a27636d62cf46d86e23ad666a0)), closes [#544](https://github.com/Esri/arcgis-rest-js/issues/544)
20
+ * **search:** allow NOT as a standalone modifier ([36a6bca](https://github.com/Esri/arcgis-rest-js/commit/36a6bca771dd4282af71dcf454828f58047b525b)), closes [#542](https://github.com/Esri/arcgis-rest-js/issues/542)
21
+ * **search:** ensure no space is inserted between search fields and terms ([ff90f51](https://github.com/Esri/arcgis-rest-js/commit/ff90f5132b0cfa7bf9f083ee54996dda5412be4e)), closes [#545](https://github.com/Esri/arcgis-rest-js/issues/545)
22
+ * **search:** sortOrder is a valid search param, searchDir is not ([9caeafd](https://github.com/Esri/arcgis-rest-js/commit/9caeafdea4568252b792606dcd485486c4e1f5c8)), closes [#540](https://github.com/Esri/arcgis-rest-js/issues/540)
23
+ * **searchGroupUsers func:** searchOptions is now an optional parameter ([d54bddb](https://github.com/Esri/arcgis-rest-js/commit/d54bddb69f003109aac7a3b27be420b465e4f59f)), closes [#615](https://github.com/Esri/arcgis-rest-js/issues/615)
24
+ * **sharing:** correct the item sharing logic to reflect what the api actually allows ([48b67e5](https://github.com/Esri/arcgis-rest-js/commit/48b67e542ed41dda798ebfd51321d51729af2b5b))
25
+ * **sharing:** only item owner, group owner or group admin can unshare ([d264137](https://github.com/Esri/arcgis-rest-js/commit/d264137cbc51955320c48bad0bd868116832de79))
26
+ * **updateItemResources:** support item resource prefix ([98be7a7](https://github.com/Esri/arcgis-rest-js/commit/98be7a74b8362cb20170c3f62d4a61c842a1f8d5)), closes [#824](https://github.com/Esri/arcgis-rest-js/issues/824)
27
+ * ensure JSON and binary data are both handled consistently ([9f85087](https://github.com/Esri/arcgis-rest-js/commit/9f8508720cf17e94d26a9516a02e761931408043))
28
+
29
+
30
+ ### Code Refactoring
31
+
32
+ * **portal interfaces:** renames portal request/response interfaces to match their functions ([faa5b3d](https://github.com/Esri/arcgis-rest-js/commit/faa5b3dd5b51800db4931735f05a367c8fcd42e2))
33
+ * replace items, groups, sharing and user packages with single portal package ([64a3fd9](https://github.com/Esri/arcgis-rest-js/commit/64a3fd9a8a6824d388acb773ca0ffe8900e476f8))
34
+
35
+
36
+ ### Features
37
+
38
+ * **search:** allows use of the newly added but undocumented searchUserAccess and searchUserName par ([279ef9e](https://github.com/Esri/arcgis-rest-js/commit/279ef9e2dbee9ada0bb2d319aec027c85886cd0e))
39
+ * service name and service info fns ([bb5f90d](https://github.com/Esri/arcgis-rest-js/commit/bb5f90d3fd0cbe594a687fa4ddcb59863756a8ce))
40
+ * **arcgis-rest-portal:** add getPortalSettings function ([e956dc5](https://github.com/Esri/arcgis-rest-js/commit/e956dc56e2fb925478767d989e4cf42cb8ac1a1c))
41
+ * **arcgis-rest-portal:** add searchUsers function ([235766c](https://github.com/Esri/arcgis-rest-js/commit/235766c7eb7a55276f89e107cee8c4b4f8b64a84))
42
+ * **getItemBaseUrl:** add function to get the base REST API URL for an item ([d6ec9fc](https://github.com/Esri/arcgis-rest-js/commit/d6ec9fcafbdeafc2a33d38787baa3a1d7fb1ec69))
43
+ * **getItemInfo:** add a function to fetch an info file for an item ([a9dd7d6](https://github.com/Esri/arcgis-rest-js/commit/a9dd7d64834424ca348fb92818d616bb74e29a6e)), closes [#738](https://github.com/Esri/arcgis-rest-js/issues/738)
44
+ * **getItemMetadata:** add a function to fetch the metadata XML for an item ([c263e1b](https://github.com/Esri/arcgis-rest-js/commit/c263e1bd7c13cb1ee65e5c23f994650820c023a6))
45
+ * **getJsonResource and scrubControlChars:** add getJsonResource and scrubControlChars ([6bb9215](https://github.com/Esri/arcgis-rest-js/commit/6bb921512eeed9374ab35c03577fd3bfb8ea1e11))
46
+ * add resourcesPrefix parameter to addItemResource ([c368232](https://github.com/Esri/arcgis-rest-js/commit/c3682322f7aca69c0dd3907a603304d232d8b43c))
47
+ * **group:** refactor searchGroups to make use of SearchQueryBuilder ([72f2898](https://github.com/Esri/arcgis-rest-js/commit/72f28985bde12b44cca0180dd52e33f660f2ad9a)), closes [#104](https://github.com/Esri/arcgis-rest-js/issues/104)
48
+ * **portal:** a new function to add members to a given group ([998d3a7](https://github.com/Esri/arcgis-rest-js/commit/998d3a705aac0ebdd59bacdbae2f48924cad86ff)), closes [#584](https://github.com/Esri/arcgis-rest-js/issues/584)
49
+ * **portal:** add reassignItem ([1756cc4](https://github.com/Esri/arcgis-rest-js/commit/1756cc48f43436f3041e44ed14827f415b106a90))
50
+ * **portal:** add the function to get user tags ([#614](https://github.com/Esri/arcgis-rest-js/issues/614)) ([d49159f](https://github.com/Esri/arcgis-rest-js/commit/d49159f91b3236feaf6dfb5df202672faae82797))
51
+ * **portal:** add updateGroupMembership, isItemSharedWithGroup ([14848db](https://github.com/Esri/arcgis-rest-js/commit/14848dbd6034362628ef99c8d57d445c8ed37776))
52
+ * **portal:** searchGroupUsers searches the users in the given group ([d9151a1](https://github.com/Esri/arcgis-rest-js/commit/d9151a15fb34ae0ddc551f350e877ff7dd10405e))
53
+
54
+
55
+ ### Reverts
56
+
57
+ * Revert "aggs counts should be an array" ([55a1e27](https://github.com/Esri/arcgis-rest-js/commit/55a1e27c3d84383bceac86442987806249f4a6b3))
58
+
59
+
60
+ ### BREAKING CHANGES
61
+
62
+ * deprecated addItemJsonData
63
+ * **portal interfaces:** removes "Request" from portal option interfaces & renames response interfaces
64
+ * **group:** searchGroups signature change
65
+ * replace items, groups, sharing and user packages with single portal package
66
+
67
+
68
+
69
+
70
+
71
+ ### Dependencies
72
+
73
+ * **@esri/arcgis-rest-request:** upgraded to 1.0.0-beta.1
@@ -0,0 +1,72 @@
1
+ [![npm version][npm-img]][npm-url]
2
+ [![build status][travis-img]][travis-url]
3
+ [![gzip bundle size][gzip-image]][npm-url]
4
+ [![Coverage Status][coverage-img]][coverage-url]
5
+ [![apache licensed](https://img.shields.io/badge/license-Apache-green.svg?style=flat-square)](https://raw.githubusercontent.com/Esri/arcgis-rest-js/master/LICENSE)
6
+
7
+ [npm-img]: https://img.shields.io/npm/v/@esri/arcgis-rest-portal.svg?style=flat-square
8
+ [npm-url]: https://www.npmjs.com/package/@esri/arcgis-rest-portal
9
+ [travis-img]: https://img.shields.io/travis/Esri/arcgis-rest-js/master.svg?style=flat-square
10
+ [travis-url]: https://travis-ci.org/Esri/arcgis-rest-js
11
+ [gzip-image]: https://img.badgesize.io/https://unpkg.com/@esri/arcgis-rest-portal/dist/bundled/portal.umd.min.js?compression=gzip
12
+ [coverage-img]: https://codecov.io/gh/Esri/arcgis-rest-js/branch/master/graph/badge.svg
13
+ [coverage-url]: https://codecov.io/gh/Esri/arcgis-rest-js
14
+
15
+ # @esri/arcgis-rest-portal
16
+
17
+ > A module for working with ArcGIS Online and Enterprise content via the REST API that runs in Node.js and modern browsers.
18
+
19
+ ### Example
20
+
21
+ ```bash
22
+ npm install @esri/arcgis-rest-request
23
+ npm install @esri/arcgis-rest-portal
24
+ ```
25
+
26
+ ```js
27
+ import { getItem } from "@esri/arcgis-rest-portal";
28
+
29
+ const itemId = "30e5fe3149c34df1ba922e6f5bbf808f";
30
+
31
+ getItem(itemId).then((response) => {
32
+ console.log(response.title); // World Topographic Map
33
+ });
34
+ ```
35
+
36
+ ### [API Reference](https://esri.github.io/arcgis-rest-js/api/portal/)
37
+
38
+ ### Issues
39
+
40
+ If something isn't working the way you expected, please take a look at [previously logged issues](https://github.com/Esri/arcgis-rest-js/issues) first. Have you found a new bug? Want to request a new feature? We'd [**love**](https://github.com/Esri/arcgis-rest-js/issues/new) to hear from you.
41
+
42
+ If you're looking for help you can also post issues on [GIS Stackexchange](http://gis.stackexchange.com/questions/ask?tags=esri-oss).
43
+
44
+ ### Versioning
45
+
46
+ For transparency into the release cycle and in striving to maintain backward compatibility, @esri/arcgis-rest-js is maintained under Semantic Versioning guidelines and will adhere to these rules whenever possible.
47
+
48
+ For more information on SemVer, please visit <http://semver.org/>.
49
+
50
+ ### Contributing
51
+
52
+ Esri welcomes contributions from anyone and everyone. Please see our [guidelines for contributing](CONTRIBUTING.md).
53
+
54
+ ### [Changelog](https://github.com/Esri/arcgis-rest-js/blob/master/CHANGELOG.md)
55
+
56
+ ### License
57
+
58
+ Copyright &copy; 2017-2019 Esri
59
+
60
+ Licensed under the Apache License, Version 2.0 (the "License");
61
+ you may not use this file except in compliance with the License.
62
+ You may obtain a copy of the License at
63
+
64
+ > http://www.apache.org/licenses/LICENSE-2.0
65
+
66
+ Unless required by applicable law or agreed to in writing, software
67
+ distributed under the License is distributed on an "AS IS" BASIS,
68
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
69
+ See the License for the specific language governing permissions and
70
+ limitations under the License.
71
+
72
+ A copy of the license is available in the repository's [LICENSE](../../LICENSE) file.
@@ -0,0 +1,68 @@
1
+ {
2
+ "name": "@esri/arcgis-rest-portal",
3
+ "version": "1.0.0-beta.1",
4
+ "description": "ArcGIS Online and Enterprise content and user helpers for @esri/arcgis-rest-request",
5
+ "license": "Apache-2.0",
6
+ "keywords": [
7
+ "ES6",
8
+ "arcgis",
9
+ "esri",
10
+ "fetch",
11
+ "promise",
12
+ "typescript"
13
+ ],
14
+ "type": "module",
15
+ "main": "dist/cjs/index.js",
16
+ "module": "dist/esm/index.js",
17
+ "unpkg": "dist/bundled/request.umd.min.js",
18
+ "exports": {
19
+ ".": {
20
+ "import": "./dist/esm/index.js",
21
+ "require": "./dist/cjs/index.js"
22
+ },
23
+ "./package.json": "./package.json"
24
+ },
25
+ "types": "dist/esm/index.d.ts",
26
+ "sideEffects": false,
27
+ "files": [
28
+ "dist/**"
29
+ ],
30
+ "scripts": {
31
+ "build": "npm-run-all --parallel build:*",
32
+ "postbuild": "node ../../scripts/create-dist-package-jsons.js",
33
+ "build:bundled": "rollup -c ../../rollup.js",
34
+ "build:cjs": "tsc --outDir ./dist/cjs -m commonjs",
35
+ "build:esm": "tsc --outDir ./dist/esm --declaration",
36
+ "dev": "npm-run-all --parallel dev:*",
37
+ "dev:bundled": "rollup -w -c ../../rollup.js",
38
+ "dev:cjs": "tsc -w --outDir ./dist/cjs -m commonjs",
39
+ "dev:esm": "tsc -w --outDir ./dist/esm --declaration"
40
+ },
41
+ "engines": {
42
+ "node": ">=12.20.0"
43
+ },
44
+ "dependencies": {
45
+ "tslib": "^2.3.0"
46
+ },
47
+ "peerDependencies": {
48
+ "@esri/arcgis-rest-request": "1.0.0-beta.1"
49
+ },
50
+ "devDependencies": {
51
+ "@esri/arcgis-rest-request": "1.0.0-beta.1"
52
+ },
53
+ "contributors": [
54
+ "Dave Bouwman <dbouwman@esri.com> (http://blog.davebouwman.com/)"
55
+ ],
56
+ "homepage": "https://github.com/Esri/arcgis-rest-js#readme",
57
+ "repository": {
58
+ "type": "git",
59
+ "url": "git+https://github.com/Esri/arcgis-rest-js.git",
60
+ "directory": "packages/arcgis-rest-portal"
61
+ },
62
+ "bugs": {
63
+ "url": "https://github.com/Esri/arcgis-rest-js/issues"
64
+ },
65
+ "publishConfig": {
66
+ "access": "public"
67
+ }
68
+ }
@@ -0,0 +1,140 @@
1
+ /* Copyright (c) 2017-2018 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+
4
+ import {
5
+ request,
6
+ IRequestOptions,
7
+ ArcGISRequestError
8
+ } from "@esri/arcgis-rest-request";
9
+
10
+ import { getPortalUrl } from "../util/get-portal-url.js";
11
+ import { chunk } from "../util/array.js";
12
+
13
+ export interface IAddGroupUsersOptions extends IRequestOptions {
14
+ /**
15
+ * Group ID
16
+ */
17
+ id: string;
18
+ /**
19
+ * An array of usernames to be added to the group as group members
20
+ */
21
+ users?: string[];
22
+ /**
23
+ * An array of usernames to be added to the group as group admins
24
+ */
25
+ admins?: string[];
26
+ }
27
+
28
+ export interface IAddGroupUsersResult {
29
+ /**
30
+ * An array of usernames that were not added
31
+ */
32
+ notAdded?: string[];
33
+ /**
34
+ * An array of request errors
35
+ */
36
+ errors?: ArcGISRequestError[];
37
+ }
38
+
39
+ /**
40
+ * ```js
41
+ * import { addGroupUsers } from "@esri/arcgis-rest-portal";
42
+ * //
43
+ * addGroupUsers({
44
+ * id: groupId,
45
+ * users: ["username1", "username2"],
46
+ * admins: ["username3"],
47
+ * authentication
48
+ * })
49
+ * .then(response);
50
+ * ```
51
+ * Add users to a group. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/add-users-to-group.htm) for more information.
52
+ *
53
+ * @param requestOptions - Options for the request
54
+ * @returns A Promise
55
+ */
56
+ export function addGroupUsers(
57
+ requestOptions: IAddGroupUsersOptions
58
+ ): Promise<IAddGroupUsersResult> {
59
+ const id = requestOptions.id;
60
+ const url = `${getPortalUrl(requestOptions)}/community/groups/${id}/addUsers`;
61
+ const baseOptions = Object.assign({}, requestOptions, {
62
+ admins: undefined,
63
+ users: undefined
64
+ });
65
+
66
+ const batchRequestOptions = [
67
+ ..._prepareRequests("users", requestOptions.users, baseOptions),
68
+ ..._prepareRequests("admins", requestOptions.admins, baseOptions)
69
+ ];
70
+
71
+ const promises = batchRequestOptions.map((options) =>
72
+ _sendSafeRequest(url, options)
73
+ );
74
+
75
+ return Promise.all(promises).then(_consolidateRequestResults);
76
+ }
77
+
78
+ function _prepareRequests(
79
+ type: "admins" | "users",
80
+ usernames: string[],
81
+ baseOptions: IAddGroupUsersOptions
82
+ ): IAddGroupUsersOptions[] {
83
+ if (!usernames || usernames.length < 1) {
84
+ return [];
85
+ }
86
+
87
+ // the ArcGIS REST API only allows to add no more than 25 users per request,
88
+ // see https://developers.arcgis.com/rest/users-groups-and-items/add-users-to-group.htm
89
+ const userChunks: string[][] = chunk<string>(usernames, 25);
90
+
91
+ return userChunks.map((users) =>
92
+ _generateRequestOptions(type, users, baseOptions)
93
+ );
94
+ }
95
+
96
+ function _generateRequestOptions(
97
+ type: "admins" | "users",
98
+ usernames: string[],
99
+ baseOptions: IAddGroupUsersOptions
100
+ ) {
101
+ return Object.assign({}, baseOptions, {
102
+ [type]: usernames,
103
+ params: {
104
+ ...baseOptions.params,
105
+ [type]: usernames
106
+ }
107
+ });
108
+ }
109
+
110
+ // this request is safe since the request error will be handled
111
+ function _sendSafeRequest(
112
+ url: string,
113
+ requestOptions: IAddGroupUsersOptions
114
+ ): Promise<IAddGroupUsersResult> {
115
+ return request(url, requestOptions).catch((error) => {
116
+ return {
117
+ errors: [error]
118
+ };
119
+ });
120
+ }
121
+
122
+ function _consolidateRequestResults(
123
+ results: IAddGroupUsersResult[]
124
+ ): IAddGroupUsersResult {
125
+ const notAdded = results
126
+ .filter((result) => result.notAdded)
127
+ .reduce((collection, result) => collection.concat(result.notAdded), []);
128
+
129
+ const errors = results
130
+ .filter((result) => result.errors)
131
+ .reduce((collection, result) => collection.concat(result.errors), []);
132
+
133
+ const consolidated: IAddGroupUsersResult = { notAdded };
134
+
135
+ if (errors.length > 0) {
136
+ consolidated.errors = errors;
137
+ }
138
+
139
+ return consolidated;
140
+ }
@@ -0,0 +1,42 @@
1
+ /* Copyright (c) 2017-2018 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+
4
+ import { request, IRequestOptions, IGroupAdd, IGroup } from "@esri/arcgis-rest-request";
5
+
6
+ import { getPortalUrl } from "../util/get-portal-url.js";
7
+
8
+ export interface ICreateGroupOptions extends IRequestOptions {
9
+ group: IGroupAdd;
10
+ }
11
+
12
+ /**
13
+ * ```js
14
+ * import { createGroup } from "@esri/arcgis-rest-portal";
15
+ * //
16
+ * createGroup({
17
+ * group: {
18
+ * title: "No Homers",
19
+ * access: "public"
20
+ * },
21
+ * authentication
22
+ * })
23
+ * .then(response)
24
+ * ```
25
+ * Create a new Group. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/create-group.htm) for more information.
26
+ *
27
+ * Note: The group name must be unique within the user's organization.
28
+ * @param requestOptions - Options for the request, including a group object
29
+ * @returns A Promise that will resolve with the success/failure status of the request
30
+ */
31
+ export function createGroup(
32
+ requestOptions: ICreateGroupOptions
33
+ ): Promise<{ success: boolean; group: IGroup }> {
34
+ const url = `${getPortalUrl(requestOptions)}/community/createGroup`;
35
+
36
+ requestOptions.params = {
37
+ ...requestOptions.params,
38
+ ...requestOptions.group
39
+ };
40
+
41
+ return request(url, requestOptions);
42
+ }