culparepellendus 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 (470) hide show
  1. package/.env.example +2 -0
  2. package/.eslintrc.js +20 -0
  3. package/.github/workflows/deploy-docs.yml +27 -0
  4. package/.github/workflows/pre-release-tests.yml +45 -0
  5. package/.github/workflows/pull-request-tests.yml +45 -0
  6. package/.prettierignore +2 -0
  7. package/.prettierrc +19 -0
  8. package/.vscode/launch.json +24 -0
  9. package/.vscode/settings.json +3 -0
  10. package/codecov.yml +7 -0
  11. package/demos/.eslintrc.js +13 -0
  12. package/demos/ago-node-cli/README.md +29 -0
  13. package/demos/ago-node-cli/ago.js +33 -0
  14. package/demos/ago-node-cli/index.js +11 -0
  15. package/demos/ago-node-cli/lib/item-export-command.js +48 -0
  16. package/demos/ago-node-cli/lib/item-search-command.js +35 -0
  17. package/demos/ago-node-cli/package-lock.json +430 -0
  18. package/demos/ago-node-cli/package.json +30 -0
  19. package/demos/attachments/README.md +5 -0
  20. package/demos/attachments/index.html +165 -0
  21. package/demos/attachments/package-lock.json +543 -0
  22. package/demos/attachments/package.json +18 -0
  23. package/demos/batch-geocoder-node/NYC_Restaurant_Inspection_Results.csv +100 -0
  24. package/demos/batch-geocoder-node/README.md +15 -0
  25. package/demos/batch-geocoder-node/batch-geocode.js +115 -0
  26. package/demos/batch-geocoder-node/config-template.js +18 -0
  27. package/demos/batch-geocoder-node/package-lock.json +336 -0
  28. package/demos/batch-geocoder-node/package.json +37 -0
  29. package/demos/express/README.md +15 -0
  30. package/demos/express/config.json.template +3 -0
  31. package/demos/express/package-lock.json +1008 -0
  32. package/demos/express/package.json +18 -0
  33. package/demos/express/server.js +33 -0
  34. package/demos/feature-service-browser/README.md +6 -0
  35. package/demos/feature-service-browser/index.html +122 -0
  36. package/demos/feature-service-browser/package-lock.json +543 -0
  37. package/demos/feature-service-browser/package.json +18 -0
  38. package/demos/geocoder-browser/README.md +10 -0
  39. package/demos/geocoder-browser/config.js.template +1 -0
  40. package/demos/geocoder-browser/index.html +131 -0
  41. package/demos/geocoder-browser/package-lock.json +610 -0
  42. package/demos/geocoder-browser/package.json +19 -0
  43. package/demos/geocoder-browser/post-sign-in.html +25 -0
  44. package/demos/jsapi-integration/README.md +25 -0
  45. package/demos/jsapi-integration/config.js +6 -0
  46. package/demos/jsapi-integration/index.html +93 -0
  47. package/demos/jsapi-integration/package-lock.json +247 -0
  48. package/demos/jsapi-integration/package.json +19 -0
  49. package/demos/node-cli-item-management/README.md +10 -0
  50. package/demos/node-cli-item-management/index.js +238 -0
  51. package/demos/node-cli-item-management/package-lock.json +432 -0
  52. package/demos/node-cli-item-management/package.json +27 -0
  53. package/demos/node-cli-item-management/screenshot.png +0 -0
  54. package/demos/oauth2-browser/README.md +14 -0
  55. package/demos/oauth2-browser/authenticate.html +30 -0
  56. package/demos/oauth2-browser/config.js.template +6 -0
  57. package/demos/oauth2-browser/index.html +211 -0
  58. package/demos/oauth2-browser/logo.svg +4 -0
  59. package/demos/oauth2-browser/package-lock.json +474 -0
  60. package/demos/oauth2-browser/package.json +18 -0
  61. package/demos/oauth2-browser/style.css +36 -0
  62. package/demos/oauth2-browser-retry/README.md +25 -0
  63. package/demos/oauth2-browser-retry/authenticate.html +22 -0
  64. package/demos/oauth2-browser-retry/index.html +116 -0
  65. package/demos/oauth2-browser-retry/logo.svg +4 -0
  66. package/demos/stream-response-to-file/README.md +7 -0
  67. package/demos/stream-response-to-file/index.js +36 -0
  68. package/demos/stream-response-to-file/output/.gitkeep +0 -0
  69. package/demos/stream-response-to-file/package-lock.json +227 -0
  70. package/demos/stream-response-to-file/package.json +33 -0
  71. package/demos/tree-shaking-rollup/.babelrc +3 -0
  72. package/demos/tree-shaking-rollup/README.md +9 -0
  73. package/demos/tree-shaking-rollup/index.html +11 -0
  74. package/demos/tree-shaking-rollup/package-lock.json +5646 -0
  75. package/demos/tree-shaking-rollup/package.json +25 -0
  76. package/demos/tree-shaking-rollup/rollup.config.js +17 -0
  77. package/demos/tree-shaking-rollup/src/index.js +8 -0
  78. package/demos/tree-shaking-webpack/README.md +8 -0
  79. package/demos/tree-shaking-webpack/index.html +11 -0
  80. package/demos/tree-shaking-webpack/package-lock.json +11455 -0
  81. package/demos/tree-shaking-webpack/package.json +24 -0
  82. package/demos/tree-shaking-webpack/src/index.js +10 -0
  83. package/demos/tree-shaking-webpack/webpack.config.js +27 -0
  84. package/demos/vue/.env.example +11 -0
  85. package/demos/vue/.eslintrc.js +17 -0
  86. package/demos/vue/.postcssrc.js +5 -0
  87. package/demos/vue/README.md +17 -0
  88. package/demos/vue/babel.config.js +3 -0
  89. package/demos/vue/package-lock.json +28044 -0
  90. package/demos/vue/package.json +33 -0
  91. package/demos/vue/public/favicon.ico +0 -0
  92. package/demos/vue/public/index.html +24 -0
  93. package/demos/vue/src/assets/logo.svg +29 -0
  94. package/demos/vue/src/components/App.vue +305 -0
  95. package/demos/vue/src/components/Authenticate.vue +65 -0
  96. package/demos/vue/src/components/Loader.vue +230 -0
  97. package/demos/vue/src/main.js +92 -0
  98. package/demos/webmap-checker-sapper/.env.example +5 -0
  99. package/demos/webmap-checker-sapper/README.md +123 -0
  100. package/demos/webmap-checker-sapper/appveyor.yml +18 -0
  101. package/demos/webmap-checker-sapper/cypress/fixtures/example.json +5 -0
  102. package/demos/webmap-checker-sapper/cypress/integration/spec.js +19 -0
  103. package/demos/webmap-checker-sapper/cypress/plugins/index.js +17 -0
  104. package/demos/webmap-checker-sapper/cypress/support/commands.js +25 -0
  105. package/demos/webmap-checker-sapper/cypress/support/index.js +20 -0
  106. package/demos/webmap-checker-sapper/cypress.json +4 -0
  107. package/demos/webmap-checker-sapper/package-lock.json +9622 -0
  108. package/demos/webmap-checker-sapper/package.json +50 -0
  109. package/demos/webmap-checker-sapper/rollup.config.js +87 -0
  110. package/demos/webmap-checker-sapper/src/client.js +20 -0
  111. package/demos/webmap-checker-sapper/src/components/LayerStatus.html +108 -0
  112. package/demos/webmap-checker-sapper/src/components/Nav.html +21 -0
  113. package/demos/webmap-checker-sapper/src/components/WebMap.html +62 -0
  114. package/demos/webmap-checker-sapper/src/routes/_error.html +41 -0
  115. package/demos/webmap-checker-sapper/src/routes/_layout.html +21 -0
  116. package/demos/webmap-checker-sapper/src/routes/auth/authorize.js +18 -0
  117. package/demos/webmap-checker-sapper/src/routes/auth/exchange-token.js +20 -0
  118. package/demos/webmap-checker-sapper/src/routes/auth/post-sign-in.js +24 -0
  119. package/demos/webmap-checker-sapper/src/routes/auth/sign-out.js +10 -0
  120. package/demos/webmap-checker-sapper/src/routes/index.html +20 -0
  121. package/demos/webmap-checker-sapper/src/routes/webmaps/[webmapId].html +83 -0
  122. package/demos/webmap-checker-sapper/src/routes/webmaps/index.html +59 -0
  123. package/demos/webmap-checker-sapper/src/server.js +101 -0
  124. package/demos/webmap-checker-sapper/src/service-worker.js +82 -0
  125. package/demos/webmap-checker-sapper/src/template.html +33 -0
  126. package/demos/webmap-checker-sapper/src/userInfoMiddleware.js +21 -0
  127. package/demos/webmap-checker-sapper/src/utils.js +33 -0
  128. package/demos/webmap-checker-sapper/static/favicon.png +0 -0
  129. package/demos/webmap-checker-sapper/static/global.css +36 -0
  130. package/demos/webmap-checker-sapper/static/manifest.json +20 -0
  131. package/demos/webmap-checker-sapper/static/svelte-logo-192.png +0 -0
  132. package/demos/webmap-checker-sapper/static/svelte-logo-512.png +0 -0
  133. package/docs/.eslintrc.js +12 -0
  134. package/docs/FAQ.md +48 -0
  135. package/docs/HISTORY.md +62 -0
  136. package/docs/acetate.config.js +262 -0
  137. package/docs/build-typedoc.js +434 -0
  138. package/docs/generate-srihashes.js +53 -0
  139. package/docs/src/_layout.html +86 -0
  140. package/docs/src/api/_declaration.html +600 -0
  141. package/docs/src/api/_layout.html +204 -0
  142. package/docs/src/api/_package.html +38 -0
  143. package/docs/src/api/index.html +16 -0
  144. package/docs/src/guides/_layout.html +24 -0
  145. package/docs/src/guides/amd-requirejs-dojo.md +40 -0
  146. package/docs/src/guides/browser-authentication.md +39 -0
  147. package/docs/src/guides/bundlers.md +52 -0
  148. package/docs/src/guides/cli-authentication.md +9 -0
  149. package/docs/src/guides/client-server-authentication.md +9 -0
  150. package/docs/src/guides/embedded-apps.md +106 -0
  151. package/docs/src/guides/from-a-cdn.md +38 -0
  152. package/docs/src/guides/index.md +59 -0
  153. package/docs/src/guides/node.md +104 -0
  154. package/docs/src/guides/package-overview.md +111 -0
  155. package/docs/src/guides/server-authentication.md +9 -0
  156. package/docs/src/guides/whats-new-v2-0.md +305 -0
  157. package/docs/src/img/icons.png +0 -0
  158. package/docs/src/img/icons@2x.png +0 -0
  159. package/docs/src/img/oauth-browser.png +0 -0
  160. package/docs/src/index.html +12 -0
  161. package/docs/src/js/api-search.js +112 -0
  162. package/docs/src/js/nav-toggle.js +41 -0
  163. package/docs/src/sass/_highlight.scss +96 -0
  164. package/docs/src/sass/_icons.scss +157 -0
  165. package/docs/src/sass/style.scss +242 -0
  166. package/docs/src/srihashes.json +12 -0
  167. package/jasmine.json +7 -0
  168. package/jasmine.live.json +7 -0
  169. package/karma.conf.js +107 -0
  170. package/lerna.json +8 -0
  171. package/notes/README.md +68 -0
  172. package/package.json +87 -0
  173. package/packages/arcgis-rest-auth/README.md +71 -0
  174. package/packages/arcgis-rest-auth/package-lock.json +27 -0
  175. package/packages/arcgis-rest-auth/package.json +69 -0
  176. package/packages/arcgis-rest-auth/post-message-auth-spec.md +70 -0
  177. package/packages/arcgis-rest-auth/src/ApiKey.ts +41 -0
  178. package/packages/arcgis-rest-auth/src/ApplicationSession.ts +122 -0
  179. package/packages/arcgis-rest-auth/src/UserSession.ts +1376 -0
  180. package/packages/arcgis-rest-auth/src/app-tokens.ts +131 -0
  181. package/packages/arcgis-rest-auth/src/authenticated-request-options.ts +24 -0
  182. package/packages/arcgis-rest-auth/src/federation-utils.ts +85 -0
  183. package/packages/arcgis-rest-auth/src/fetch-token.ts +50 -0
  184. package/packages/arcgis-rest-auth/src/generate-token.ts +35 -0
  185. package/packages/arcgis-rest-auth/src/index.ts +13 -0
  186. package/packages/arcgis-rest-auth/src/validate-app-access.ts +68 -0
  187. package/packages/arcgis-rest-auth/test/ApiKey.test.ts +35 -0
  188. package/packages/arcgis-rest-auth/test/ApplicationSession.test.ts +124 -0
  189. package/packages/arcgis-rest-auth/test/UserSession.test.ts +2430 -0
  190. package/packages/arcgis-rest-auth/test/app-tokens.test.ts +95 -0
  191. package/packages/arcgis-rest-auth/test/federation-utils.test.ts +323 -0
  192. package/packages/arcgis-rest-auth/test/fetchToken.test.ts +112 -0
  193. package/packages/arcgis-rest-auth/test/generateToken.test.ts +102 -0
  194. package/packages/arcgis-rest-auth/test/utils.ts +14 -0
  195. package/packages/arcgis-rest-auth/test/validate-app-access.test.ts +46 -0
  196. package/packages/arcgis-rest-auth/tsconfig.json +6 -0
  197. package/packages/arcgis-rest-demographics/README.md +75 -0
  198. package/packages/arcgis-rest-demographics/package-lock.json +11 -0
  199. package/packages/arcgis-rest-demographics/package.json +69 -0
  200. package/packages/arcgis-rest-demographics/src/getAvailableCountries.ts +113 -0
  201. package/packages/arcgis-rest-demographics/src/getAvailableDataCollections.ts +166 -0
  202. package/packages/arcgis-rest-demographics/src/getAvailableGeographyLevels.ts +88 -0
  203. package/packages/arcgis-rest-demographics/src/getGeography.ts +152 -0
  204. package/packages/arcgis-rest-demographics/src/helpers.ts +28 -0
  205. package/packages/arcgis-rest-demographics/src/index.ts +8 -0
  206. package/packages/arcgis-rest-demographics/src/queryDemographicData.ts +106 -0
  207. package/packages/arcgis-rest-demographics/test/getAvailableCountries.test.ts +92 -0
  208. package/packages/arcgis-rest-demographics/test/getAvailableDataCollections.test.ts +115 -0
  209. package/packages/arcgis-rest-demographics/test/getAvailableGeographyLevels.test.ts +72 -0
  210. package/packages/arcgis-rest-demographics/test/getGeography.test.ts +141 -0
  211. package/packages/arcgis-rest-demographics/test/mocks/responses.ts +4 -0
  212. package/packages/arcgis-rest-demographics/test/queryDemographicData.test.live.ts +42 -0
  213. package/packages/arcgis-rest-demographics/test/queryDemographicData.test.ts +113 -0
  214. package/packages/arcgis-rest-demographics/tsconfig.json +6 -0
  215. package/packages/arcgis-rest-feature-layer/README.md +77 -0
  216. package/packages/arcgis-rest-feature-layer/package-lock.json +11 -0
  217. package/packages/arcgis-rest-feature-layer/package.json +64 -0
  218. package/packages/arcgis-rest-feature-layer/src/add.ts +56 -0
  219. package/packages/arcgis-rest-feature-layer/src/addAttachment.ts +53 -0
  220. package/packages/arcgis-rest-feature-layer/src/applyEdits.ts +95 -0
  221. package/packages/arcgis-rest-feature-layer/src/decodeValues.ts +122 -0
  222. package/packages/arcgis-rest-feature-layer/src/delete.ts +61 -0
  223. package/packages/arcgis-rest-feature-layer/src/deleteAttachments.ts +52 -0
  224. package/packages/arcgis-rest-feature-layer/src/getAllLayersAndTables.ts +30 -0
  225. package/packages/arcgis-rest-feature-layer/src/getAttachments.ts +55 -0
  226. package/packages/arcgis-rest-feature-layer/src/getLayer.ts +24 -0
  227. package/packages/arcgis-rest-feature-layer/src/getService.ts +26 -0
  228. package/packages/arcgis-rest-feature-layer/src/helpers.ts +97 -0
  229. package/packages/arcgis-rest-feature-layer/src/index.ts +32 -0
  230. package/packages/arcgis-rest-feature-layer/src/query.ts +204 -0
  231. package/packages/arcgis-rest-feature-layer/src/queryRelated.ts +89 -0
  232. package/packages/arcgis-rest-feature-layer/src/update.ts +60 -0
  233. package/packages/arcgis-rest-feature-layer/src/updateAttachment.ts +59 -0
  234. package/packages/arcgis-rest-feature-layer/test/attachments.test.ts +200 -0
  235. package/packages/arcgis-rest-feature-layer/test/crud.test.ts +197 -0
  236. package/packages/arcgis-rest-feature-layer/test/decodeValues.test.ts +67 -0
  237. package/packages/arcgis-rest-feature-layer/test/getAllLayersAndTables.test.ts +28 -0
  238. package/packages/arcgis-rest-feature-layer/test/getLayer.test.ts +31 -0
  239. package/packages/arcgis-rest-feature-layer/test/getService.test.ts +31 -0
  240. package/packages/arcgis-rest-feature-layer/test/helpers.test.ts +25 -0
  241. package/packages/arcgis-rest-feature-layer/test/mocks/allLayersAndTablesResponse.ts +906 -0
  242. package/packages/arcgis-rest-feature-layer/test/mocks/cvdQueryResponse.ts +225 -0
  243. package/packages/arcgis-rest-feature-layer/test/mocks/feature.ts +302 -0
  244. package/packages/arcgis-rest-feature-layer/test/mocks/fields.ts +779 -0
  245. package/packages/arcgis-rest-feature-layer/test/mocks/foo.txt +1 -0
  246. package/packages/arcgis-rest-feature-layer/test/mocks/service.ts +398 -0
  247. package/packages/arcgis-rest-feature-layer/test/query.test.ts +167 -0
  248. package/packages/arcgis-rest-feature-layer/tsconfig.json +6 -0
  249. package/packages/arcgis-rest-geocoding/README.md +86 -0
  250. package/packages/arcgis-rest-geocoding/package-lock.json +43 -0
  251. package/packages/arcgis-rest-geocoding/package.json +66 -0
  252. package/packages/arcgis-rest-geocoding/src/bulk.ts +104 -0
  253. package/packages/arcgis-rest-geocoding/src/geocode.ts +166 -0
  254. package/packages/arcgis-rest-geocoding/src/helpers.ts +56 -0
  255. package/packages/arcgis-rest-geocoding/src/index.ts +15 -0
  256. package/packages/arcgis-rest-geocoding/src/reverse.ts +84 -0
  257. package/packages/arcgis-rest-geocoding/src/suggest.ts +45 -0
  258. package/packages/arcgis-rest-geocoding/test/bulk.test.ts +194 -0
  259. package/packages/arcgis-rest-geocoding/test/geocode.test.ts +253 -0
  260. package/packages/arcgis-rest-geocoding/test/helpers.test.ts +85 -0
  261. package/packages/arcgis-rest-geocoding/test/mocks/responses.ts +591 -0
  262. package/packages/arcgis-rest-geocoding/test/reverse.test.ts +126 -0
  263. package/packages/arcgis-rest-geocoding/test/suggest.test.ts +53 -0
  264. package/packages/arcgis-rest-geocoding/tsconfig.json +6 -0
  265. package/packages/arcgis-rest-portal/README.md +73 -0
  266. package/packages/arcgis-rest-portal/package-lock.json +37 -0
  267. package/packages/arcgis-rest-portal/package.json +64 -0
  268. package/packages/arcgis-rest-portal/src/groups/add-users.ts +140 -0
  269. package/packages/arcgis-rest-portal/src/groups/create.ts +43 -0
  270. package/packages/arcgis-rest-portal/src/groups/get.ts +184 -0
  271. package/packages/arcgis-rest-portal/src/groups/helpers.ts +14 -0
  272. package/packages/arcgis-rest-portal/src/groups/invite-users.ts +127 -0
  273. package/packages/arcgis-rest-portal/src/groups/join.ts +57 -0
  274. package/packages/arcgis-rest-portal/src/groups/notification.ts +77 -0
  275. package/packages/arcgis-rest-portal/src/groups/protect.ts +56 -0
  276. package/packages/arcgis-rest-portal/src/groups/remove-users.ts +76 -0
  277. package/packages/arcgis-rest-portal/src/groups/remove.ts +32 -0
  278. package/packages/arcgis-rest-portal/src/groups/search.ts +47 -0
  279. package/packages/arcgis-rest-portal/src/groups/update-user-membership.ts +63 -0
  280. package/packages/arcgis-rest-portal/src/groups/update.ts +39 -0
  281. package/packages/arcgis-rest-portal/src/index.ts +70 -0
  282. package/packages/arcgis-rest-portal/src/items/add.ts +138 -0
  283. package/packages/arcgis-rest-portal/src/items/content.ts +67 -0
  284. package/packages/arcgis-rest-portal/src/items/create.ts +150 -0
  285. package/packages/arcgis-rest-portal/src/items/export.ts +80 -0
  286. package/packages/arcgis-rest-portal/src/items/get.ts +437 -0
  287. package/packages/arcgis-rest-portal/src/items/helpers.ts +292 -0
  288. package/packages/arcgis-rest-portal/src/items/protect.ts +41 -0
  289. package/packages/arcgis-rest-portal/src/items/reassign.ts +61 -0
  290. package/packages/arcgis-rest-portal/src/items/remove.ts +141 -0
  291. package/packages/arcgis-rest-portal/src/items/search.ts +25 -0
  292. package/packages/arcgis-rest-portal/src/items/update.ts +185 -0
  293. package/packages/arcgis-rest-portal/src/items/upload.ts +125 -0
  294. package/packages/arcgis-rest-portal/src/orgs/notification.ts +131 -0
  295. package/packages/arcgis-rest-portal/src/services/get-unique-service-name.ts +35 -0
  296. package/packages/arcgis-rest-portal/src/services/is-service-name-available.ts +30 -0
  297. package/packages/arcgis-rest-portal/src/sharing/access.ts +84 -0
  298. package/packages/arcgis-rest-portal/src/sharing/helpers.ts +81 -0
  299. package/packages/arcgis-rest-portal/src/sharing/is-item-shared-with-group.ts +42 -0
  300. package/packages/arcgis-rest-portal/src/sharing/share-item-with-group.ts +340 -0
  301. package/packages/arcgis-rest-portal/src/sharing/unshare-item-with-group.ts +105 -0
  302. package/packages/arcgis-rest-portal/src/users/get-user-tags.ts +52 -0
  303. package/packages/arcgis-rest-portal/src/users/get-user-url.ts +18 -0
  304. package/packages/arcgis-rest-portal/src/users/get-user.ts +58 -0
  305. package/packages/arcgis-rest-portal/src/users/invitation.ts +156 -0
  306. package/packages/arcgis-rest-portal/src/users/notification.ts +68 -0
  307. package/packages/arcgis-rest-portal/src/users/search-users.ts +37 -0
  308. package/packages/arcgis-rest-portal/src/users/update.ts +66 -0
  309. package/packages/arcgis-rest-portal/src/util/SearchQueryBuilder.ts +391 -0
  310. package/packages/arcgis-rest-portal/src/util/array.ts +16 -0
  311. package/packages/arcgis-rest-portal/src/util/generic-search.ts +114 -0
  312. package/packages/arcgis-rest-portal/src/util/get-portal-settings.ts +45 -0
  313. package/packages/arcgis-rest-portal/src/util/get-portal-url.ts +28 -0
  314. package/packages/arcgis-rest-portal/src/util/get-portal.ts +53 -0
  315. package/packages/arcgis-rest-portal/src/util/get-subscription-info.ts +43 -0
  316. package/packages/arcgis-rest-portal/src/util/scrub-control-chars.ts +13 -0
  317. package/packages/arcgis-rest-portal/src/util/search.ts +47 -0
  318. package/packages/arcgis-rest-portal/test/groups/add-users.test.ts +239 -0
  319. package/packages/arcgis-rest-portal/test/groups/crud.test.ts +180 -0
  320. package/packages/arcgis-rest-portal/test/groups/get.test.ts +176 -0
  321. package/packages/arcgis-rest-portal/test/groups/invite-users.test.ts +146 -0
  322. package/packages/arcgis-rest-portal/test/groups/join.test.ts +72 -0
  323. package/packages/arcgis-rest-portal/test/groups/notification.test.ts +112 -0
  324. package/packages/arcgis-rest-portal/test/groups/protect.test.ts +72 -0
  325. package/packages/arcgis-rest-portal/test/groups/remove-users.test.ts +140 -0
  326. package/packages/arcgis-rest-portal/test/groups/search.test.ts +151 -0
  327. package/packages/arcgis-rest-portal/test/groups/update-user-membership.test.ts +62 -0
  328. package/packages/arcgis-rest-portal/test/items/add.test.ts +323 -0
  329. package/packages/arcgis-rest-portal/test/items/content.test.ts +156 -0
  330. package/packages/arcgis-rest-portal/test/items/create.test.ts +400 -0
  331. package/packages/arcgis-rest-portal/test/items/export.test.ts +122 -0
  332. package/packages/arcgis-rest-portal/test/items/get.test.ts +583 -0
  333. package/packages/arcgis-rest-portal/test/items/helpers.test.ts +60 -0
  334. package/packages/arcgis-rest-portal/test/items/protect.test.ts +122 -0
  335. package/packages/arcgis-rest-portal/test/items/reassign.test.ts +131 -0
  336. package/packages/arcgis-rest-portal/test/items/remove.test.ts +261 -0
  337. package/packages/arcgis-rest-portal/test/items/search.test.ts +322 -0
  338. package/packages/arcgis-rest-portal/test/items/update.test.ts +556 -0
  339. package/packages/arcgis-rest-portal/test/items/upload.test.ts +282 -0
  340. package/packages/arcgis-rest-portal/test/mocks/groups/responses.ts +208 -0
  341. package/packages/arcgis-rest-portal/test/mocks/items/foo.zip +0 -0
  342. package/packages/arcgis-rest-portal/test/mocks/items/item.ts +526 -0
  343. package/packages/arcgis-rest-portal/test/mocks/items/resources.ts +38 -0
  344. package/packages/arcgis-rest-portal/test/mocks/items/search.ts +121 -0
  345. package/packages/arcgis-rest-portal/test/mocks/portal/response.ts +126 -0
  346. package/packages/arcgis-rest-portal/test/mocks/portal/settings-response.ts +56 -0
  347. package/packages/arcgis-rest-portal/test/mocks/sharing/sharing.ts +18 -0
  348. package/packages/arcgis-rest-portal/test/mocks/users/invitation.ts +70 -0
  349. package/packages/arcgis-rest-portal/test/mocks/users/notification.ts +34 -0
  350. package/packages/arcgis-rest-portal/test/mocks/users/user-search.ts +388 -0
  351. package/packages/arcgis-rest-portal/test/mocks/users/user-tags.ts +5 -0
  352. package/packages/arcgis-rest-portal/test/mocks/users/user.ts +174 -0
  353. package/packages/arcgis-rest-portal/test/orgs/notification.test.ts +144 -0
  354. package/packages/arcgis-rest-portal/test/services/get-unique-service-name.test.ts +59 -0
  355. package/packages/arcgis-rest-portal/test/services/is-service-name-available.test.ts +46 -0
  356. package/packages/arcgis-rest-portal/test/sharing/access.test.ts +162 -0
  357. package/packages/arcgis-rest-portal/test/sharing/helpers.test.ts +55 -0
  358. package/packages/arcgis-rest-portal/test/sharing/share-item-with-group.test.ts +1382 -0
  359. package/packages/arcgis-rest-portal/test/sharing/unshare-item-with-group.test.ts +288 -0
  360. package/packages/arcgis-rest-portal/test/users/get-user-tags.test.ts +71 -0
  361. package/packages/arcgis-rest-portal/test/users/get-user-url.test.ts +40 -0
  362. package/packages/arcgis-rest-portal/test/users/get-user.test.ts +90 -0
  363. package/packages/arcgis-rest-portal/test/users/invitation.test.ts +127 -0
  364. package/packages/arcgis-rest-portal/test/users/notification.test.ts +77 -0
  365. package/packages/arcgis-rest-portal/test/users/search.test.ts +42 -0
  366. package/packages/arcgis-rest-portal/test/users/update.test.ts +151 -0
  367. package/packages/arcgis-rest-portal/test/util/SearchQueryBuilder.test.ts +345 -0
  368. package/packages/arcgis-rest-portal/test/util/array.test.ts +30 -0
  369. package/packages/arcgis-rest-portal/test/util/get-portal-settings.test.ts +68 -0
  370. package/packages/arcgis-rest-portal/test/util/get-portal-url.test.ts +37 -0
  371. package/packages/arcgis-rest-portal/test/util/portal.test.ts +148 -0
  372. package/packages/arcgis-rest-portal/test/util/scrub-control-chars.test.ts +22 -0
  373. package/packages/arcgis-rest-portal/tsconfig.json +6 -0
  374. package/packages/arcgis-rest-request/README.md +72 -0
  375. package/packages/arcgis-rest-request/package-lock.json +13 -0
  376. package/packages/arcgis-rest-request/package.json +60 -0
  377. package/packages/arcgis-rest-request/src/index.ts +25 -0
  378. package/packages/arcgis-rest-request/src/request.ts +433 -0
  379. package/packages/arcgis-rest-request/src/utils/ArcGISRequestError.ts +76 -0
  380. package/packages/arcgis-rest-request/src/utils/ErrorTypes.ts +29 -0
  381. package/packages/arcgis-rest-request/src/utils/GrantTypes.ts +5 -0
  382. package/packages/arcgis-rest-request/src/utils/HTTPMethods.ts +6 -0
  383. package/packages/arcgis-rest-request/src/utils/IAuthenticationManager.ts +22 -0
  384. package/packages/arcgis-rest-request/src/utils/IFetchTokenParams.ts +11 -0
  385. package/packages/arcgis-rest-request/src/utils/IGenerateTokenParams.ts +9 -0
  386. package/packages/arcgis-rest-request/src/utils/IParamBuilder.ts +3 -0
  387. package/packages/arcgis-rest-request/src/utils/IParams.ts +6 -0
  388. package/packages/arcgis-rest-request/src/utils/IParamsBuilder.ts +5 -0
  389. package/packages/arcgis-rest-request/src/utils/IRequestOptions.ts +54 -0
  390. package/packages/arcgis-rest-request/src/utils/ITokenRequestOptions.ts +9 -0
  391. package/packages/arcgis-rest-request/src/utils/ResponseFormats.ts +10 -0
  392. package/packages/arcgis-rest-request/src/utils/append-custom-params.ts +49 -0
  393. package/packages/arcgis-rest-request/src/utils/clean-url.ts +20 -0
  394. package/packages/arcgis-rest-request/src/utils/decode-query-string.ts +27 -0
  395. package/packages/arcgis-rest-request/src/utils/encode-form-data.ts +38 -0
  396. package/packages/arcgis-rest-request/src/utils/encode-query-string.ts +35 -0
  397. package/packages/arcgis-rest-request/src/utils/process-params.ts +109 -0
  398. package/packages/arcgis-rest-request/src/utils/retryAuthError.ts +10 -0
  399. package/packages/arcgis-rest-request/src/utils/warn.ts +11 -0
  400. package/packages/arcgis-rest-request/src/utils/with-options.ts +48 -0
  401. package/packages/arcgis-rest-request/test/mocks/errors.ts +76 -0
  402. package/packages/arcgis-rest-request/test/mocks/geojson-feature-collection.ts +13 -0
  403. package/packages/arcgis-rest-request/test/mocks/param-builder.ts +7 -0
  404. package/packages/arcgis-rest-request/test/mocks/sharing-rest-info.ts +41 -0
  405. package/packages/arcgis-rest-request/test/mocks/webmap.ts +41 -0
  406. package/packages/arcgis-rest-request/test/request.test.ts +621 -0
  407. package/packages/arcgis-rest-request/test/utils/ArcGISAuthError.test.ts +191 -0
  408. package/packages/arcgis-rest-request/test/utils/ArcGISRequestError.test.ts +51 -0
  409. package/packages/arcgis-rest-request/test/utils/check-for-errors.test.ts +111 -0
  410. package/packages/arcgis-rest-request/test/utils/clean-url.test.ts +50 -0
  411. package/packages/arcgis-rest-request/test/utils/encode-form-data.test.ts +133 -0
  412. package/packages/arcgis-rest-request/test/utils/encode-query-string.test.ts +18 -0
  413. package/packages/arcgis-rest-request/test/utils/process-params.test.ts +205 -0
  414. package/packages/arcgis-rest-request/test/utils/with-options.test.ts +133 -0
  415. package/packages/arcgis-rest-request/tsconfig.json +4 -0
  416. package/packages/arcgis-rest-routing/README.md +75 -0
  417. package/packages/arcgis-rest-routing/package-lock.json +43 -0
  418. package/packages/arcgis-rest-routing/package.json +65 -0
  419. package/packages/arcgis-rest-routing/src/closestFacility.ts +225 -0
  420. package/packages/arcgis-rest-routing/src/helpers.ts +104 -0
  421. package/packages/arcgis-rest-routing/src/index.ts +14 -0
  422. package/packages/arcgis-rest-routing/src/originDestinationMatrix.ts +223 -0
  423. package/packages/arcgis-rest-routing/src/serviceArea.ts +173 -0
  424. package/packages/arcgis-rest-routing/src/solveRoute.ts +180 -0
  425. package/packages/arcgis-rest-routing/test/closestFacility.test.ts +683 -0
  426. package/packages/arcgis-rest-routing/test/mocks/inputs.ts +132 -0
  427. package/packages/arcgis-rest-routing/test/mocks/responses.ts +13322 -0
  428. package/packages/arcgis-rest-routing/test/originDestinationMatrix.test.ts +797 -0
  429. package/packages/arcgis-rest-routing/test/serviceArea.test.ts +601 -0
  430. package/packages/arcgis-rest-routing/test/solveRoute.test.ts +677 -0
  431. package/packages/arcgis-rest-routing/tsconfig.json +6 -0
  432. package/packages/arcgis-rest-service-admin/README.md +73 -0
  433. package/packages/arcgis-rest-service-admin/package-lock.json +11 -0
  434. package/packages/arcgis-rest-service-admin/package.json +65 -0
  435. package/packages/arcgis-rest-service-admin/src/addTo.ts +70 -0
  436. package/packages/arcgis-rest-service-admin/src/create.ts +189 -0
  437. package/packages/arcgis-rest-service-admin/src/get-service-admin-info.ts +34 -0
  438. package/packages/arcgis-rest-service-admin/src/get-view-sources.ts +20 -0
  439. package/packages/arcgis-rest-service-admin/src/index.ts +14 -0
  440. package/packages/arcgis-rest-service-admin/src/update.ts +50 -0
  441. package/packages/arcgis-rest-service-admin/test/addTo.test.ts +350 -0
  442. package/packages/arcgis-rest-service-admin/test/create.test.ts +294 -0
  443. package/packages/arcgis-rest-service-admin/test/get-service-admin-info.test.ts +37 -0
  444. package/packages/arcgis-rest-service-admin/test/get-view-sources.test.ts +40 -0
  445. package/packages/arcgis-rest-service-admin/test/mocks/layerDefinition.ts +79 -0
  446. package/packages/arcgis-rest-service-admin/test/mocks/service.ts +81 -0
  447. package/packages/arcgis-rest-service-admin/test/update.test.ts +115 -0
  448. package/packages/arcgis-rest-service-admin/tsconfig.json +5 -0
  449. package/packages/arcgis-rest-types/README.md +66 -0
  450. package/packages/arcgis-rest-types/package-lock.json +5 -0
  451. package/packages/arcgis-rest-types/package.json +54 -0
  452. package/packages/arcgis-rest-types/src/feature.ts +42 -0
  453. package/packages/arcgis-rest-types/src/geometry.ts +272 -0
  454. package/packages/arcgis-rest-types/src/group.ts +72 -0
  455. package/packages/arcgis-rest-types/src/index.ts +9 -0
  456. package/packages/arcgis-rest-types/src/item.ts +81 -0
  457. package/packages/arcgis-rest-types/src/service.ts +156 -0
  458. package/packages/arcgis-rest-types/src/statisticDefinition.ts +33 -0
  459. package/packages/arcgis-rest-types/src/symbol.ts +170 -0
  460. package/packages/arcgis-rest-types/src/user.ts +49 -0
  461. package/packages/arcgis-rest-types/src/webmap.ts +1405 -0
  462. package/packages/arcgis-rest-types/tsconfig.json +10 -0
  463. package/support/changelog.js +393 -0
  464. package/support/deploy-doc-site.js +16 -0
  465. package/support/dev.sh +6 -0
  466. package/support/publish.sh +47 -0
  467. package/support/test-helpers.js +9 -0
  468. package/tsconfig.json +63 -0
  469. package/umd-base-profile.js +81 -0
  470. package/umd-production-profile.js +13 -0
@@ -0,0 +1,63 @@
1
+ /* Copyright (c) 2017-2018 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+ import { IUserRequestOptions } from "@esri/arcgis-rest-auth";
4
+ import { getPortalUrl } from "../util/get-portal-url";
5
+ import { request } from "@esri/arcgis-rest-request";
6
+
7
+ export interface IUpdateGroupUsersResult {
8
+ /**
9
+ * Array of results
10
+ */
11
+ results: any[];
12
+ }
13
+
14
+ export interface IUpdateGroupUsersOptions extends IUserRequestOptions {
15
+ /**
16
+ * Group ID
17
+ */
18
+ id: string;
19
+ /**
20
+ * An array of usernames to be updated
21
+ */
22
+ users: string[];
23
+ /**
24
+ * Membership Type to update to
25
+ */
26
+ newMemberType: "member" | "admin";
27
+ }
28
+
29
+ /**
30
+ * ```js
31
+ * import { updateUserMemberships } from "@esri/arcgis-rest-portal";
32
+ * //
33
+ * updateUserMemberships({
34
+ * id: groupId,
35
+ * admins: ["username3"],
36
+ * authentication
37
+ * })
38
+ * .then(response);
39
+ * ```
40
+ * Change the user membership levels of existing users in a group
41
+ *
42
+ * @param requestOptions - Options for the request
43
+ * @returns A Promise
44
+ */
45
+ export function updateUserMemberships(
46
+ requestOptions: IUpdateGroupUsersOptions
47
+ ): Promise<IUpdateGroupUsersResult> {
48
+ const url = `${getPortalUrl(requestOptions)}/community/groups/${
49
+ requestOptions.id
50
+ }/updateUsers`;
51
+ const opts: any = {
52
+ authentication: requestOptions.authentication,
53
+ params: {}
54
+ };
55
+ // add the correct params depending on the type of membership we are changing to
56
+ if (requestOptions.newMemberType === "admin") {
57
+ opts.params.admins = requestOptions.users;
58
+ } else {
59
+ opts.params.users = requestOptions.users;
60
+ }
61
+ // make the request
62
+ return request(url, opts);
63
+ }
@@ -0,0 +1,39 @@
1
+ /* Copyright (c) 2017-2018 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+
4
+ import { request, IRequestOptions } from "@esri/arcgis-rest-request";
5
+ import { IItemUpdate } from "@esri/arcgis-rest-types";
6
+ import { getPortalUrl } from "../util/get-portal-url";
7
+
8
+ export interface IUpdateGroupOptions extends IRequestOptions {
9
+ group: IItemUpdate;
10
+ }
11
+
12
+ /**
13
+ * ```js
14
+ * import { updateGroup } from '@esri/arcgis-rest-portal';
15
+ * //
16
+ * updateGroup({
17
+ * group: { id: "fgr344", title: "new" }
18
+ * })
19
+ * .then(response)
20
+ * ```
21
+ * Update the properties of a group. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/update-group.htm) for more information.
22
+ *
23
+ * @param requestOptions - Options for the request, including the group
24
+ * @returns A Promise that will resolve with the success/failure status of the request
25
+ */
26
+ export function updateGroup(
27
+ requestOptions: IUpdateGroupOptions
28
+ ): Promise<{ success: boolean; groupId: string }> {
29
+ const url = `${getPortalUrl(requestOptions)}/community/groups/${
30
+ requestOptions.group.id
31
+ }/update`;
32
+
33
+ requestOptions.params = {
34
+ ...requestOptions.params,
35
+ ...requestOptions.group
36
+ };
37
+
38
+ return request(url, requestOptions);
39
+ }
@@ -0,0 +1,70 @@
1
+ /* Copyright (c) 2018-2019 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+
4
+ export * from "./items/add";
5
+ export * from "./items/content";
6
+ export * from "./items/create";
7
+ export * from "./items/export";
8
+ export * from "./items/get";
9
+ export * from "./items/protect";
10
+ export * from "./items/reassign";
11
+ export * from "./items/remove";
12
+ export * from "./items/search";
13
+ export * from "./items/update";
14
+ export * from "./items/helpers";
15
+ export * from "./items/upload";
16
+
17
+ export * from "./groups/add-users";
18
+ export * from "./groups/remove-users";
19
+ export * from "./groups/invite-users";
20
+ export * from "./groups/create";
21
+ export * from "./groups/get";
22
+ export * from "./groups/helpers";
23
+ export * from "./groups/notification";
24
+ export * from "./groups/protect";
25
+ export * from "./groups/remove";
26
+ export * from "./groups/search";
27
+ export * from "./groups/update";
28
+ export * from "./groups/update-user-membership";
29
+ export * from "./groups/join";
30
+
31
+ export * from "./orgs/notification";
32
+
33
+ export * from "./users/get-user";
34
+ export * from "./users/get-user-tags";
35
+ export * from "./users/get-user-url";
36
+ export * from "./users/invitation";
37
+ export * from "./users/notification";
38
+ export * from "./users/search-users";
39
+ export * from "./users/update";
40
+
41
+ export * from "./sharing/access";
42
+ export * from "./sharing/share-item-with-group";
43
+ export * from "./sharing/unshare-item-with-group";
44
+ export * from "./sharing/is-item-shared-with-group";
45
+ export * from "./sharing/helpers";
46
+
47
+ export * from "./services/get-unique-service-name";
48
+ export * from "./services/is-service-name-available";
49
+
50
+ export * from "./util/get-portal";
51
+ export * from "./util/get-portal-settings";
52
+ export * from "./util/get-portal-url";
53
+ export * from "./util/get-subscription-info";
54
+ export * from "./util/scrub-control-chars";
55
+ export * from "./util/search";
56
+ export * from "./util/SearchQueryBuilder";
57
+ // we dont export 'generic-search' because its an internal utility method
58
+ // export * from "./util/generic-search"; because its an internal utility method
59
+ export {
60
+ IPagingParams,
61
+ IPagedResponse,
62
+ IUser,
63
+ IItemAdd,
64
+ IItemUpdate,
65
+ IItem,
66
+ IFolder,
67
+ IGroupAdd,
68
+ IGroup,
69
+ GroupMembership,
70
+ } from "@esri/arcgis-rest-types";
@@ -0,0 +1,138 @@
1
+ /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+
4
+ import { request, appendCustomParams } from "@esri/arcgis-rest-request";
5
+
6
+ import { getPortalUrl } from "../util/get-portal-url";
7
+ import {
8
+ IUserItemOptions,
9
+ IItemResourceOptions,
10
+ IUpdateItemResponse,
11
+ IItemResourceResponse,
12
+ determineOwner,
13
+ IManageItemRelationshipOptions
14
+ } from "./helpers";
15
+ import { updateItem, IUpdateItemOptions } from "./update";
16
+
17
+ export interface IAddItemDataOptions extends IUserItemOptions {
18
+ /**
19
+ * Object to store
20
+ */
21
+ data: any;
22
+ }
23
+
24
+ /**
25
+ * ```js
26
+ * import { addItemData } from "@esri/arcgis-rest-portal";
27
+ * //
28
+ * addItemData({
29
+ * id: '3ef',
30
+ * data: file,
31
+ * authentication
32
+ * })
33
+ * .then(response)
34
+ * ```
35
+ * Send a file or blob to an item to be stored as the `/data` resource. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/update-item.htm) for more information.
36
+ *
37
+ * @param requestOptions - Options for the request
38
+ * @returns A Promise that will resolve with an object reporting
39
+ * success/failure and echoing the item id.
40
+ */
41
+ export function addItemData(
42
+ requestOptions: IAddItemDataOptions
43
+ ): Promise<IUpdateItemResponse> {
44
+ const options: any = {
45
+ item: {
46
+ id: requestOptions.id,
47
+ data: requestOptions.data
48
+ },
49
+ ...requestOptions
50
+ };
51
+
52
+ delete options.id;
53
+ delete options.data;
54
+
55
+ return updateItem(options as IUpdateItemOptions);
56
+ }
57
+
58
+ /**
59
+ * ```js
60
+ * import { addItemRelationship } from "@esri/arcgis-rest-portal";
61
+ * //
62
+ * addItemRelationship({
63
+ * originItemId: '3ef',
64
+ * destinationItemId: 'ae7',
65
+ * relationshipType: 'Service2Layer',
66
+ * authentication
67
+ * })
68
+ * .then(response)
69
+ * ```
70
+ * Add a relationship between two items. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/add-relationship.htm) for more information.
71
+ *
72
+ * @param requestOptions - Options for the request
73
+ * @returns A Promise to add item resources.
74
+ */
75
+ export function addItemRelationship(
76
+ requestOptions: IManageItemRelationshipOptions
77
+ ): Promise<{ success: boolean }> {
78
+ return determineOwner(requestOptions).then(owner => {
79
+ const url = `${getPortalUrl(
80
+ requestOptions
81
+ )}/content/users/${owner}/addRelationship`;
82
+
83
+ const options = appendCustomParams<IManageItemRelationshipOptions>(
84
+ requestOptions,
85
+ ["originItemId", "destinationItemId", "relationshipType"],
86
+ { params: { ...requestOptions.params } }
87
+ );
88
+ return request(url, options);
89
+ });
90
+ }
91
+
92
+ /**
93
+ * ```js
94
+ * import { addItemResource } from "@esri/arcgis-rest-portal";
95
+ * //
96
+ * // Add a file resource
97
+ * addItemResource({
98
+ * id: '3ef',
99
+ * resource: file,
100
+ * name: 'bigkahuna.jpg',
101
+ * authentication
102
+ * })
103
+ * .then(response)
104
+ * //
105
+ * // Add a text resource
106
+ * addItemResource({
107
+ * id: '4fg',
108
+ * content: "Text content",
109
+ * name: 'bigkahuna.txt',
110
+ * authentication
111
+ * })
112
+ * .then(response)
113
+ * ```
114
+ * Add a resource associated with an item. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/add-resources.htm) for more information.
115
+ *
116
+ * @param requestOptions - Options for the request
117
+ * @returns A Promise to add item resources.
118
+ */
119
+ export function addItemResource(
120
+ requestOptions: IItemResourceOptions
121
+ ): Promise<IItemResourceResponse> {
122
+ return determineOwner(requestOptions).then(owner => {
123
+ const url = `${getPortalUrl(requestOptions)}/content/users/${owner}/items/${
124
+ requestOptions.id
125
+ }/addResources`;
126
+
127
+ requestOptions.params = {
128
+ file: requestOptions.resource,
129
+ fileName: requestOptions.name,
130
+ resourcesPrefix: requestOptions.prefix,
131
+ text: requestOptions.content,
132
+ access: requestOptions.private ? "private" : "inherit",
133
+ ...requestOptions.params
134
+ };
135
+
136
+ return request(url, requestOptions);
137
+ });
138
+ }
@@ -0,0 +1,67 @@
1
+ import { request, IRequestOptions } from "@esri/arcgis-rest-request";
2
+ import {
3
+ IPagingParams,
4
+ IItem,
5
+ IFolder,
6
+ IPagedResponse,
7
+ } from "@esri/arcgis-rest-types";
8
+ import { getPortalUrl } from "../util/get-portal-url";
9
+ import { determineOwner } from "./helpers";
10
+
11
+ export type UnixTime = number;
12
+
13
+ export interface IUserContentRequestOptions
14
+ extends IPagingParams,
15
+ IRequestOptions {
16
+ owner?: string;
17
+ folderId?: string;
18
+ }
19
+
20
+ export interface IUserContentResponse extends IPagedResponse {
21
+ username: string;
22
+ currentFolder?: IFolder;
23
+ items: IItem[];
24
+ folders: IFolder[];
25
+ }
26
+
27
+ /**
28
+ * ```js
29
+ * import { getUserContent } from "@esri/arcgis-rest-portal";
30
+ * //
31
+ * getUserContent({
32
+ * owner: 'geemike',
33
+ * folderId: 'bao7',
34
+ * start: 1,
35
+ * num: 20,
36
+ * authentication
37
+ * })
38
+ * ```
39
+ * Returns a listing of the user's content. If the `username` is not supplied, it defaults to the username of the authenticated user. If `start` is not specificed it defaults to the first page.
40
+ * If the `num` is not supplied it is defaulted to 10. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/user-content.htm) for more information.
41
+ *
42
+ * @param requestOptions - Options for the request
43
+ * @returns A Promise<IUserContentResponse>
44
+ */
45
+ export const getUserContent = (
46
+ requestOptions: IUserContentRequestOptions
47
+ ): Promise<IUserContentResponse> => {
48
+ const {
49
+ folderId: folder,
50
+ start = 1,
51
+ num = 10,
52
+ authentication,
53
+ } = requestOptions;
54
+ const suffix = folder ? `/${folder}` : "";
55
+
56
+ return determineOwner(requestOptions)
57
+ .then((owner) => `${getPortalUrl(requestOptions)}/content/users/${owner}${suffix}`)
58
+ .then((url) => request(url, {
59
+ httpMethod: "GET",
60
+ authentication,
61
+ params: {
62
+ start,
63
+ num,
64
+ },
65
+ })
66
+ );
67
+ };
@@ -0,0 +1,150 @@
1
+ /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+
4
+ import { request, appendCustomParams } from "@esri/arcgis-rest-request";
5
+ import { IItemAdd } from "@esri/arcgis-rest-types";
6
+
7
+ import { getPortalUrl } from "../util/get-portal-url";
8
+ import {
9
+ IAddFolderResponse,
10
+ IUpdateItemResponse,
11
+ ICreateUpdateItemOptions,
12
+ serializeItem,
13
+ determineOwner
14
+ } from "./helpers";
15
+
16
+ export interface ICreateFolderOptions extends ICreateUpdateItemOptions {
17
+ /**
18
+ * Name of the folder to create.
19
+ */
20
+ title: string;
21
+ }
22
+
23
+ export interface ICreateItemOptions extends ICreateUpdateItemOptions {
24
+ item: IItemAdd;
25
+ }
26
+
27
+ export interface ICreateItemResponse extends IUpdateItemResponse {
28
+ folder: string;
29
+ }
30
+
31
+ /**
32
+ * ```js
33
+ * import { createFolder } from "@esri/arcgis-rest-portal";
34
+ * //
35
+ * createFolder({
36
+ * title: 'Map Collection',
37
+ * authentication: userSession
38
+ * })
39
+ * .then(response)
40
+ * ```
41
+ * Create a folder. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/create-folder.htm) for more information.
42
+ *
43
+ * @param requestOptions - Options for the request
44
+ * @returns A Promise that resolves with folder details once the folder has been created
45
+ */
46
+ export function createFolder(
47
+ requestOptions: ICreateFolderOptions
48
+ ): Promise<IAddFolderResponse> {
49
+ return determineOwner(requestOptions).then(owner => {
50
+ const baseUrl = `${getPortalUrl(requestOptions)}/content/users/${owner}`;
51
+ const url = `${baseUrl}/createFolder`;
52
+
53
+ requestOptions.params = {
54
+ title: requestOptions.title,
55
+ ...requestOptions.params
56
+ };
57
+
58
+ return request(url, requestOptions);
59
+ });
60
+ }
61
+
62
+ /**
63
+ * ```js
64
+ * import { createItemInFolder } from "@esri/arcgis-rest-portal";
65
+ * //
66
+ * createItemInFolder({
67
+ * item: {
68
+ * title: "The Amazing Voyage",
69
+ * type: "Web Map"
70
+ * },
71
+ * folderId: 'fe8',
72
+ * authentication
73
+ * })
74
+ * ```
75
+ * Create an item in a folder. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/add-item.htm) for more information.
76
+ *
77
+ * @param requestOptions = Options for the request
78
+ */
79
+ export function createItemInFolder(
80
+ requestOptions: ICreateItemOptions
81
+ ): Promise<ICreateItemResponse> {
82
+ if (requestOptions.multipart && !requestOptions.filename) {
83
+ return Promise.reject(
84
+ new Error("The filename is required for a multipart request.")
85
+ );
86
+ }
87
+
88
+ return determineOwner(requestOptions).then(owner => {
89
+ const baseUrl = `${getPortalUrl(requestOptions)}/content/users/${owner}`;
90
+ let url = `${baseUrl}/addItem`;
91
+
92
+ if (requestOptions.folderId) {
93
+ url = `${baseUrl}/${requestOptions.folderId}/addItem`;
94
+ }
95
+
96
+ requestOptions.params = {
97
+ ...requestOptions.params,
98
+ ...serializeItem(requestOptions.item)
99
+ };
100
+
101
+ // serialize the item into something Portal will accept
102
+ const options = appendCustomParams<ICreateItemOptions>(
103
+ requestOptions,
104
+ [
105
+ "owner",
106
+ "folderId",
107
+ "file",
108
+ "dataUrl",
109
+ "text",
110
+ "async",
111
+ "multipart",
112
+ "filename",
113
+ "overwrite"
114
+ ],
115
+ {
116
+ params: { ...requestOptions.params }
117
+ }
118
+ );
119
+
120
+ return request(url, options);
121
+ });
122
+ }
123
+
124
+ /**
125
+ * ```js
126
+ * import { createItem } from "@esri/arcgis-rest-portal";
127
+ * //
128
+ * createItem({
129
+ * item: {
130
+ * title: "The Amazing Voyage",
131
+ * type: "Web Map"
132
+ * },
133
+ * authentication
134
+ * })
135
+ * ```
136
+ * Create an Item in the user's root folder. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/add-item.htm) for more information.
137
+ *
138
+ * @param requestOptions - Options for the request
139
+ * @returns A Promise that creates an item.
140
+ */
141
+ export function createItem(
142
+ requestOptions: ICreateItemOptions
143
+ ): Promise<ICreateItemResponse> {
144
+ // delegate to createItemInFolder placing in the root of the filestore
145
+ const options = {
146
+ folderId: null,
147
+ ...requestOptions
148
+ } as ICreateItemOptions;
149
+ return createItemInFolder(options);
150
+ }
@@ -0,0 +1,80 @@
1
+ import { request } from "@esri/arcgis-rest-request";
2
+ import { determineOwner, IUserItemOptions } from './helpers';
3
+ import { getPortalUrl } from "../util/get-portal-url";
4
+ import { ISpatialReference } from '@esri/arcgis-rest-types';
5
+
6
+ type ExportFormat = 'Shapefile' | 'CSV' | 'File Geodatabase' | 'Feature Collection' | 'GeoJson' | 'Scene Package' | 'KML' | 'Excel';
7
+
8
+ export interface IExportLayerInfo {
9
+ id: number;
10
+ where?: string;
11
+ includeGeometry?: boolean;
12
+ xColumnName?: string;
13
+ yColumnName?: string;
14
+ }
15
+
16
+ export interface IExportParameters {
17
+ layers?: IExportLayerInfo[];
18
+ targetSR?: ISpatialReference | string;
19
+ }
20
+
21
+ export interface IExportItemRequestOptions extends IUserItemOptions {
22
+ title?: string;
23
+ exportFormat: ExportFormat;
24
+ exportParameters?: IExportParameters;
25
+ }
26
+
27
+ export interface IExportItemResponse {
28
+ type: string;
29
+ size: number;
30
+ jobId: string;
31
+ exportItemId: string;
32
+ serviceItemId: string;
33
+ exportFormat: ExportFormat;
34
+ }
35
+
36
+ /**
37
+ * ```js
38
+ * import { exportItem } from "@esri/arcgis-rest-portal";
39
+ * //
40
+ * exportItem({
41
+ * id: '3daf',
42
+ * owner: 'geemike',
43
+ * exportFormat: 'CSV',
44
+ * exportParameters: {
45
+ * layers: [
46
+ * { id: 0 },
47
+ * { id: 1, where: 'POP1999 > 100000' }
48
+ * ]
49
+ * },
50
+ * authentication,
51
+ * })
52
+ * ```
53
+ * Exports an item from the portal. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/export-item.htm) for more information.
54
+ *
55
+ * @param requestOptions - Options for the request
56
+ * @returns A Promise<IExportItemResponse>
57
+ */
58
+ export const exportItem = (requestOptions: IExportItemRequestOptions) : Promise<IExportItemResponse> => {
59
+ const {
60
+ authentication,
61
+ id: itemId,
62
+ title,
63
+ exportFormat,
64
+ exportParameters
65
+ } = requestOptions;
66
+
67
+ return determineOwner(requestOptions)
68
+ .then(owner => `${getPortalUrl(requestOptions)}/content/users/${owner}/export`)
69
+ .then(url => request(url, {
70
+ httpMethod: 'POST',
71
+ authentication,
72
+ params: {
73
+ itemId,
74
+ title,
75
+ exportFormat,
76
+ exportParameters
77
+ }
78
+ })
79
+ );
80
+ }