ducimusipsa 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 (307) hide show
  1. package/.prettierignore +2 -0
  2. package/.travis.yml +34 -0
  3. package/.vscode/launch.json +24 -0
  4. package/.vscode/settings.json +3 -0
  5. package/demos/ago-node-cli/README.md +29 -0
  6. package/demos/ago-node-cli/ago.js +32 -0
  7. package/demos/ago-node-cli/index.js +11 -0
  8. package/demos/ago-node-cli/lib/item-export-command.js +48 -0
  9. package/demos/ago-node-cli/lib/item-search-command.js +35 -0
  10. package/demos/ago-node-cli/package-lock.json +180 -0
  11. package/demos/ago-node-cli/package.json +30 -0
  12. package/demos/attachments/README.md +5 -0
  13. package/demos/attachments/index.html +164 -0
  14. package/demos/attachments/package-lock.json +182 -0
  15. package/demos/attachments/package.json +18 -0
  16. package/demos/batch-geocoder-node/NYC_Restaurant_Inspection_Results.csv +100 -0
  17. package/demos/batch-geocoder-node/README.md +15 -0
  18. package/demos/batch-geocoder-node/batch-geocode.js +115 -0
  19. package/demos/batch-geocoder-node/config-template.js +18 -0
  20. package/demos/batch-geocoder-node/package-lock.json +109 -0
  21. package/demos/batch-geocoder-node/package.json +38 -0
  22. package/demos/express/README.md +15 -0
  23. package/demos/express/config.json.template +3 -0
  24. package/demos/express/package-lock.json +428 -0
  25. package/demos/express/package.json +18 -0
  26. package/demos/express/server.js +33 -0
  27. package/demos/feature-service-browser/README.md +6 -0
  28. package/demos/feature-service-browser/index.html +122 -0
  29. package/demos/feature-service-browser/package-lock.json +182 -0
  30. package/demos/feature-service-browser/package.json +18 -0
  31. package/demos/geocoder-browser/README.md +10 -0
  32. package/demos/geocoder-browser/config.js.template +1 -0
  33. package/demos/geocoder-browser/index.html +131 -0
  34. package/demos/geocoder-browser/package-lock.json +182 -0
  35. package/demos/geocoder-browser/package.json +19 -0
  36. package/demos/geocoder-browser/post-sign-in.html +25 -0
  37. package/demos/jsapi-integration/README.md +25 -0
  38. package/demos/jsapi-integration/config.js +6 -0
  39. package/demos/jsapi-integration/index.html +85 -0
  40. package/demos/jsapi-integration/package-lock.json +184 -0
  41. package/demos/jsapi-integration/package.json +19 -0
  42. package/demos/oauth2-browser/README.md +14 -0
  43. package/demos/oauth2-browser/authenticate.html +32 -0
  44. package/demos/oauth2-browser/config.js.template +6 -0
  45. package/demos/oauth2-browser/index.html +202 -0
  46. package/demos/oauth2-browser/logo.svg +4 -0
  47. package/demos/oauth2-browser/package-lock.json +163 -0
  48. package/demos/oauth2-browser/package.json +18 -0
  49. package/demos/oauth2-browser/style.css +36 -0
  50. package/demos/oauth2-browser-retry/README.md +25 -0
  51. package/demos/oauth2-browser-retry/authenticate.html +21 -0
  52. package/demos/oauth2-browser-retry/index.html +116 -0
  53. package/demos/oauth2-browser-retry/logo.svg +4 -0
  54. package/demos/vue/.env.example +11 -0
  55. package/demos/vue/.eslintrc.js +17 -0
  56. package/demos/vue/.postcssrc.js +5 -0
  57. package/demos/vue/README.md +17 -0
  58. package/demos/vue/babel.config.js +3 -0
  59. package/demos/vue/package-lock.json +11323 -0
  60. package/demos/vue/package.json +33 -0
  61. package/demos/vue/public/favicon.ico +0 -0
  62. package/demos/vue/public/index.html +24 -0
  63. package/demos/vue/src/assets/logo.svg +29 -0
  64. package/demos/vue/src/components/App.vue +308 -0
  65. package/demos/vue/src/components/Authenticate.vue +65 -0
  66. package/demos/vue/src/components/Loader.vue +230 -0
  67. package/demos/vue/src/main.js +92 -0
  68. package/docs/FAQ.md +28 -0
  69. package/docs/HISTORY.md +62 -0
  70. package/docs/acetate.config.js +223 -0
  71. package/docs/build-typedoc.js +303 -0
  72. package/docs/src/_layout.html +82 -0
  73. package/docs/src/api/_declaration.html +496 -0
  74. package/docs/src/api/_layout.html +127 -0
  75. package/docs/src/api/_package.html +13 -0
  76. package/docs/src/api/index.html +23 -0
  77. package/docs/src/guides/_layout.html +24 -0
  78. package/docs/src/guides/amd-requirejs-dojo.md +40 -0
  79. package/docs/src/guides/babel-and-rollup.md +30 -0
  80. package/docs/src/guides/babel-and-webpack.md +30 -0
  81. package/docs/src/guides/browser-authentication.md +41 -0
  82. package/docs/src/guides/browserify.md +9 -0
  83. package/docs/src/guides/cli-authentication.md +9 -0
  84. package/docs/src/guides/client-server-authentication.md +9 -0
  85. package/docs/src/guides/from-a-cdn.md +36 -0
  86. package/docs/src/guides/index.md +52 -0
  87. package/docs/src/guides/node.md +70 -0
  88. package/docs/src/guides/package-overview.md +8 -0
  89. package/docs/src/guides/server-authentication.md +9 -0
  90. package/docs/src/guides/typescript-and-webpack.md +9 -0
  91. package/docs/src/img/icons.png +0 -0
  92. package/docs/src/img/icons@2x.png +0 -0
  93. package/docs/src/index.html +12 -0
  94. package/docs/src/js/api-search.js +112 -0
  95. package/docs/src/js/nav-toggle.js +41 -0
  96. package/docs/src/sass/_highlight.scss +96 -0
  97. package/docs/src/sass/_icons.scss +157 -0
  98. package/docs/src/sass/style.scss +169 -0
  99. package/jasmine.json +7 -0
  100. package/karma.conf.js +100 -0
  101. package/lerna.json +8 -0
  102. package/notes/README.md +88 -0
  103. package/package.json +129 -0
  104. package/packages/arcgis-rest-auth/README.md +67 -0
  105. package/packages/arcgis-rest-auth/package-lock.json +11 -0
  106. package/packages/arcgis-rest-auth/package.json +53 -0
  107. package/packages/arcgis-rest-auth/src/ApplicationSession.ts +108 -0
  108. package/packages/arcgis-rest-auth/src/UserSession.ts +880 -0
  109. package/packages/arcgis-rest-auth/src/authenticated-request-options.ts +24 -0
  110. package/packages/arcgis-rest-auth/src/fetch-token.ts +52 -0
  111. package/packages/arcgis-rest-auth/src/generate-token.ts +39 -0
  112. package/packages/arcgis-rest-auth/src/index.ts +8 -0
  113. package/packages/arcgis-rest-auth/test/ApplicationSession.test.ts +124 -0
  114. package/packages/arcgis-rest-auth/test/UserSession.test.ts +1005 -0
  115. package/packages/arcgis-rest-auth/test/fetchToken.test.ts +112 -0
  116. package/packages/arcgis-rest-auth/test/generateToken.test.ts +130 -0
  117. package/packages/arcgis-rest-auth/test/utils.ts +14 -0
  118. package/packages/arcgis-rest-auth/tsconfig.json +6 -0
  119. package/packages/arcgis-rest-common/README.md +57 -0
  120. package/packages/arcgis-rest-common/package-lock.json +11 -0
  121. package/packages/arcgis-rest-common/package.json +41 -0
  122. package/packages/arcgis-rest-common/src/index.ts +10 -0
  123. package/packages/arcgis-rest-common/src/types/feature.ts +14 -0
  124. package/packages/arcgis-rest-common/src/types/geometry.ts +47 -0
  125. package/packages/arcgis-rest-common/src/types/symbol.ts +21 -0
  126. package/packages/arcgis-rest-common/src/util/location.ts +19 -0
  127. package/packages/arcgis-rest-common/test/location.test.ts +73 -0
  128. package/packages/arcgis-rest-common/tsconfig.json +6 -0
  129. package/packages/arcgis-rest-common-types/README.md +64 -0
  130. package/packages/arcgis-rest-common-types/package.json +40 -0
  131. package/packages/arcgis-rest-common-types/src/group.ts +54 -0
  132. package/packages/arcgis-rest-common-types/src/index.ts +469 -0
  133. package/packages/arcgis-rest-common-types/src/item.ts +47 -0
  134. package/packages/arcgis-rest-common-types/src/webmap.ts +1267 -0
  135. package/packages/arcgis-rest-common-types/tsconfig.json +11 -0
  136. package/packages/arcgis-rest-feature-service/README.md +73 -0
  137. package/packages/arcgis-rest-feature-service/package-lock.json +11 -0
  138. package/packages/arcgis-rest-feature-service/package.json +53 -0
  139. package/packages/arcgis-rest-feature-service/src/add.ts +90 -0
  140. package/packages/arcgis-rest-feature-service/src/addAttachment.ts +64 -0
  141. package/packages/arcgis-rest-feature-service/src/decodeValues.ts +129 -0
  142. package/packages/arcgis-rest-feature-service/src/delete.ts +97 -0
  143. package/packages/arcgis-rest-feature-service/src/deleteAttachments.ts +67 -0
  144. package/packages/arcgis-rest-feature-service/src/getAttachments.ts +64 -0
  145. package/packages/arcgis-rest-feature-service/src/getLayer.ts +27 -0
  146. package/packages/arcgis-rest-feature-service/src/helpers.ts +50 -0
  147. package/packages/arcgis-rest-feature-service/src/index.ts +14 -0
  148. package/packages/arcgis-rest-feature-service/src/query.ts +183 -0
  149. package/packages/arcgis-rest-feature-service/src/queryRelated.ts +94 -0
  150. package/packages/arcgis-rest-feature-service/src/update.ts +90 -0
  151. package/packages/arcgis-rest-feature-service/src/updateAttachment.ts +73 -0
  152. package/packages/arcgis-rest-feature-service/test/attachments.test.ts +203 -0
  153. package/packages/arcgis-rest-feature-service/test/crud.test.ts +263 -0
  154. package/packages/arcgis-rest-feature-service/test/decodeValues.test.ts +67 -0
  155. package/packages/arcgis-rest-feature-service/test/getLayer.test.ts +31 -0
  156. package/packages/arcgis-rest-feature-service/test/mocks/cvdQueryResponse.ts +225 -0
  157. package/packages/arcgis-rest-feature-service/test/mocks/feature.ts +281 -0
  158. package/packages/arcgis-rest-feature-service/test/mocks/fields.ts +779 -0
  159. package/packages/arcgis-rest-feature-service/test/mocks/foo.txt +1 -0
  160. package/packages/arcgis-rest-feature-service/test/mocks/service.ts +259 -0
  161. package/packages/arcgis-rest-feature-service/test/query.test.ts +140 -0
  162. package/packages/arcgis-rest-feature-service/tsconfig.json +6 -0
  163. package/packages/arcgis-rest-feature-service-admin/README.md +69 -0
  164. package/packages/arcgis-rest-feature-service-admin/package-lock.json +11 -0
  165. package/packages/arcgis-rest-feature-service-admin/package.json +56 -0
  166. package/packages/arcgis-rest-feature-service-admin/src/addTo.ts +74 -0
  167. package/packages/arcgis-rest-feature-service-admin/src/create.ts +207 -0
  168. package/packages/arcgis-rest-feature-service-admin/src/index.ts +2 -0
  169. package/packages/arcgis-rest-feature-service-admin/test/addTo.test.ts +353 -0
  170. package/packages/arcgis-rest-feature-service-admin/test/create.test.ts +412 -0
  171. package/packages/arcgis-rest-feature-service-admin/test/mocks/layerDefinition.ts +79 -0
  172. package/packages/arcgis-rest-feature-service-admin/test/mocks/move.ts +14 -0
  173. package/packages/arcgis-rest-feature-service-admin/test/mocks/service.ts +72 -0
  174. package/packages/arcgis-rest-feature-service-admin/tsconfig.json +6 -0
  175. package/packages/arcgis-rest-geocoder/README.md +83 -0
  176. package/packages/arcgis-rest-geocoder/package-lock.json +11 -0
  177. package/packages/arcgis-rest-geocoder/package.json +55 -0
  178. package/packages/arcgis-rest-geocoder/src/bulk.ts +102 -0
  179. package/packages/arcgis-rest-geocoder/src/geocode.ts +130 -0
  180. package/packages/arcgis-rest-geocoder/src/helpers.ts +80 -0
  181. package/packages/arcgis-rest-geocoder/src/index.ts +8 -0
  182. package/packages/arcgis-rest-geocoder/src/reverse.ts +83 -0
  183. package/packages/arcgis-rest-geocoder/src/suggest.ts +69 -0
  184. package/packages/arcgis-rest-geocoder/test/bulk.test.ts +113 -0
  185. package/packages/arcgis-rest-geocoder/test/geocode.test.ts +176 -0
  186. package/packages/arcgis-rest-geocoder/test/helpers.test.ts +111 -0
  187. package/packages/arcgis-rest-geocoder/test/mocks/responses.ts +629 -0
  188. package/packages/arcgis-rest-geocoder/test/reverse.test.ts +126 -0
  189. package/packages/arcgis-rest-geocoder/test/suggest.test.ts +98 -0
  190. package/packages/arcgis-rest-geocoder/tsconfig.json +6 -0
  191. package/packages/arcgis-rest-groups/README.md +67 -0
  192. package/packages/arcgis-rest-groups/package-lock.json +11 -0
  193. package/packages/arcgis-rest-groups/package.json +55 -0
  194. package/packages/arcgis-rest-groups/src/create.ts +34 -0
  195. package/packages/arcgis-rest-groups/src/get.ts +95 -0
  196. package/packages/arcgis-rest-groups/src/helpers.ts +27 -0
  197. package/packages/arcgis-rest-groups/src/index.ts +11 -0
  198. package/packages/arcgis-rest-groups/src/notification.ts +77 -0
  199. package/packages/arcgis-rest-groups/src/protect.ts +40 -0
  200. package/packages/arcgis-rest-groups/src/remove.ts +23 -0
  201. package/packages/arcgis-rest-groups/src/search.ts +64 -0
  202. package/packages/arcgis-rest-groups/src/update.ts +36 -0
  203. package/packages/arcgis-rest-groups/test/crud.test.ts +134 -0
  204. package/packages/arcgis-rest-groups/test/get.test.ts +101 -0
  205. package/packages/arcgis-rest-groups/test/mocks/responses.ts +141 -0
  206. package/packages/arcgis-rest-groups/test/notification.test.ts +102 -0
  207. package/packages/arcgis-rest-groups/test/protect.test.ts +64 -0
  208. package/packages/arcgis-rest-groups/test/search.test.ts +85 -0
  209. package/packages/arcgis-rest-groups/tsconfig.json +6 -0
  210. package/packages/arcgis-rest-items/README.md +69 -0
  211. package/packages/arcgis-rest-items/package-lock.json +11 -0
  212. package/packages/arcgis-rest-items/package.json +55 -0
  213. package/packages/arcgis-rest-items/src/add.ts +103 -0
  214. package/packages/arcgis-rest-items/src/create.ts +110 -0
  215. package/packages/arcgis-rest-items/src/get.ts +79 -0
  216. package/packages/arcgis-rest-items/src/helpers.ts +147 -0
  217. package/packages/arcgis-rest-items/src/index.ts +11 -0
  218. package/packages/arcgis-rest-items/src/protect.ts +38 -0
  219. package/packages/arcgis-rest-items/src/remove.ts +58 -0
  220. package/packages/arcgis-rest-items/src/search.ts +78 -0
  221. package/packages/arcgis-rest-items/src/update.ts +134 -0
  222. package/packages/arcgis-rest-items/test/add.test.ts +256 -0
  223. package/packages/arcgis-rest-items/test/create.test.ts +371 -0
  224. package/packages/arcgis-rest-items/test/get.test.ts +181 -0
  225. package/packages/arcgis-rest-items/test/mocks/foo.zip +0 -0
  226. package/packages/arcgis-rest-items/test/mocks/item.ts +35 -0
  227. package/packages/arcgis-rest-items/test/mocks/resources.ts +31 -0
  228. package/packages/arcgis-rest-items/test/mocks/search.ts +62 -0
  229. package/packages/arcgis-rest-items/test/protect.test.ts +122 -0
  230. package/packages/arcgis-rest-items/test/remove.test.ts +161 -0
  231. package/packages/arcgis-rest-items/test/search.test.ts +159 -0
  232. package/packages/arcgis-rest-items/test/update.test.ts +450 -0
  233. package/packages/arcgis-rest-items/tsconfig.json +6 -0
  234. package/packages/arcgis-rest-request/README.md +68 -0
  235. package/packages/arcgis-rest-request/package-lock.json +11 -0
  236. package/packages/arcgis-rest-request/package.json +45 -0
  237. package/packages/arcgis-rest-request/src/index.ts +15 -0
  238. package/packages/arcgis-rest-request/src/request.ts +358 -0
  239. package/packages/arcgis-rest-request/src/utils/ArcGISRequestError.ts +76 -0
  240. package/packages/arcgis-rest-request/src/utils/ErrorTypes.ts +29 -0
  241. package/packages/arcgis-rest-request/src/utils/append-custom-params.ts +29 -0
  242. package/packages/arcgis-rest-request/src/utils/encode-form-data.ts +34 -0
  243. package/packages/arcgis-rest-request/src/utils/encode-query-string.ts +23 -0
  244. package/packages/arcgis-rest-request/src/utils/get-portal-url.ts +25 -0
  245. package/packages/arcgis-rest-request/src/utils/get-portal.ts +45 -0
  246. package/packages/arcgis-rest-request/src/utils/params.ts +52 -0
  247. package/packages/arcgis-rest-request/src/utils/process-params.ts +99 -0
  248. package/packages/arcgis-rest-request/src/utils/retryAuthError.ts +9 -0
  249. package/packages/arcgis-rest-request/src/utils/warn.ts +11 -0
  250. package/packages/arcgis-rest-request/test/mocks/errors.ts +68 -0
  251. package/packages/arcgis-rest-request/test/mocks/geojson-feature-collection.ts +13 -0
  252. package/packages/arcgis-rest-request/test/mocks/portal.ts +112 -0
  253. package/packages/arcgis-rest-request/test/mocks/sharing-rest-info.ts +41 -0
  254. package/packages/arcgis-rest-request/test/mocks/webmap.ts +41 -0
  255. package/packages/arcgis-rest-request/test/request.test.ts +323 -0
  256. package/packages/arcgis-rest-request/test/utils/ArcGISAuthError.test.ts +170 -0
  257. package/packages/arcgis-rest-request/test/utils/ArcGISRequestError.test.ts +51 -0
  258. package/packages/arcgis-rest-request/test/utils/check-for-errors.test.ts +111 -0
  259. package/packages/arcgis-rest-request/test/utils/encode-form-data.test.ts +133 -0
  260. package/packages/arcgis-rest-request/test/utils/get-portal-url.test.ts +37 -0
  261. package/packages/arcgis-rest-request/test/utils/portal.test.ts +97 -0
  262. package/packages/arcgis-rest-request/test/utils/process-params.test.ts +193 -0
  263. package/packages/arcgis-rest-request/tsconfig.json +6 -0
  264. package/packages/arcgis-rest-routing/README.md +71 -0
  265. package/packages/arcgis-rest-routing/package-lock.json +11 -0
  266. package/packages/arcgis-rest-routing/package.json +54 -0
  267. package/packages/arcgis-rest-routing/src/helpers.ts +16 -0
  268. package/packages/arcgis-rest-routing/src/index.ts +4 -0
  269. package/packages/arcgis-rest-routing/src/solveRoute.ts +102 -0
  270. package/packages/arcgis-rest-routing/test/mocks/responses.ts +825 -0
  271. package/packages/arcgis-rest-routing/test/solveRoute.test.ts +267 -0
  272. package/packages/arcgis-rest-routing/tsconfig.json +6 -0
  273. package/packages/arcgis-rest-sharing/README.md +70 -0
  274. package/packages/arcgis-rest-sharing/package-lock.json +11 -0
  275. package/packages/arcgis-rest-sharing/package.json +60 -0
  276. package/packages/arcgis-rest-sharing/src/access.ts +85 -0
  277. package/packages/arcgis-rest-sharing/src/group-sharing.ts +211 -0
  278. package/packages/arcgis-rest-sharing/src/helpers.ts +82 -0
  279. package/packages/arcgis-rest-sharing/src/index.ts +5 -0
  280. package/packages/arcgis-rest-sharing/test/access.test.ts +154 -0
  281. package/packages/arcgis-rest-sharing/test/group-sharing.test.ts +566 -0
  282. package/packages/arcgis-rest-sharing/test/helpers.test.ts +55 -0
  283. package/packages/arcgis-rest-sharing/test/mocks/sharing.ts +18 -0
  284. package/packages/arcgis-rest-sharing/tsconfig.json +6 -0
  285. package/packages/arcgis-rest-users/README.md +74 -0
  286. package/packages/arcgis-rest-users/package-lock.json +11 -0
  287. package/packages/arcgis-rest-users/package.json +54 -0
  288. package/packages/arcgis-rest-users/src/get.ts +69 -0
  289. package/packages/arcgis-rest-users/src/index.ts +6 -0
  290. package/packages/arcgis-rest-users/src/invitation.ts +166 -0
  291. package/packages/arcgis-rest-users/src/notification.ts +73 -0
  292. package/packages/arcgis-rest-users/test/get.test.ts +99 -0
  293. package/packages/arcgis-rest-users/test/invitation.test.ts +169 -0
  294. package/packages/arcgis-rest-users/test/mocks/invitation.ts +70 -0
  295. package/packages/arcgis-rest-users/test/mocks/notification.ts +34 -0
  296. package/packages/arcgis-rest-users/test/mocks/user.ts +173 -0
  297. package/packages/arcgis-rest-users/test/notification.test.ts +83 -0
  298. package/packages/arcgis-rest-users/tsconfig.json +6 -0
  299. package/support/changelog.js +394 -0
  300. package/support/deploy-doc-site.js +16 -0
  301. package/support/dev.sh +6 -0
  302. package/support/publish.sh +43 -0
  303. package/support/test-helpers.js +8 -0
  304. package/tsconfig.json +69 -0
  305. package/tslint.json +16 -0
  306. package/umd-base-profile.js +82 -0
  307. package/umd-production-profile.js +13 -0
@@ -0,0 +1,267 @@
1
+ /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+
4
+ import { solveRoute } from "../src/solveRoute";
5
+
6
+ import * as fetchMock from "fetch-mock";
7
+
8
+ import { Solve } from "./mocks/responses";
9
+ import { IPoint, ILocation } from "@esri/arcgis-rest-common";
10
+
11
+ // -117.195677,34.056383;-117.918976,33.812092
12
+ const stops: Array<[number, number]> = [
13
+ [-117.195677, 34.056383],
14
+ [-117.918976, 33.812092]
15
+ ];
16
+
17
+ const stopsObjectsLatLong: ILocation[] = [
18
+ {
19
+ lat: 34.056383,
20
+ long: -117.195677
21
+ },
22
+ {
23
+ lat: 33.812092,
24
+ long: -117.918976
25
+ }
26
+ ];
27
+
28
+ const stopsObjectsLatitudeLongitude: ILocation[] = [
29
+ {
30
+ latitude: 34.056383,
31
+ longitude: -117.195677
32
+ },
33
+ {
34
+ latitude: 33.812092,
35
+ longitude: -117.918976
36
+ }
37
+ ];
38
+
39
+ const stopsObjectsPoint: IPoint[] = [
40
+ {
41
+ x: 34.056383,
42
+ y: -117.195677
43
+ },
44
+ {
45
+ x: 33.812092,
46
+ y: -117.918976
47
+ }
48
+ ];
49
+
50
+ // const customRoutingUrl =
51
+ // "https://foo.com/ArcGIS/rest/services/Network/USA/NAServer/";
52
+
53
+ describe("solveRoute", () => {
54
+ afterEach(fetchMock.restore);
55
+
56
+ it("should throw an error when a solveRoute request is made without a token", done => {
57
+ fetchMock.once("*", Solve);
58
+
59
+ solveRoute({
60
+ stops
61
+ })
62
+ // tslint:disable-next-line
63
+ .catch(e => {
64
+ expect(e).toEqual(
65
+ "Routing using the ArcGIS service requires authentication"
66
+ );
67
+ done();
68
+ });
69
+ });
70
+
71
+ it("should make a simple solveRoute request (array of stops)", done => {
72
+ fetchMock.once("*", Solve);
73
+
74
+ const MOCK_AUTH = {
75
+ getToken() {
76
+ return Promise.resolve("token");
77
+ },
78
+ portal: "https://mapsdev.arcgis.com"
79
+ };
80
+
81
+ solveRoute({ stops, authentication: MOCK_AUTH })
82
+ .then(response => {
83
+ expect(fetchMock.called()).toEqual(true);
84
+ const [url, options]: [string, RequestInit] = fetchMock.lastCall("*");
85
+ expect(url).toEqual(
86
+ "https://route.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World/solve"
87
+ );
88
+ expect(options.method).toBe("POST");
89
+ expect(options.body).toContain("f=json");
90
+ // "stops=-117.195677,34.056383;-117.918976,33.812092"
91
+ expect(options.body).toContain(
92
+ `stops=${encodeURIComponent(
93
+ "-117.195677,34.056383;-117.918976,33.812092"
94
+ )}`
95
+ );
96
+ expect(options.body).toContain("token=token");
97
+ expect(response.routes.spatialReference.latestWkid).toEqual(4326);
98
+ expect(response.routes.features[0].attributes.Name).toEqual(
99
+ "Location 1 - Location 2"
100
+ );
101
+ done();
102
+ })
103
+ .catch(e => {
104
+ fail(e);
105
+ });
106
+ });
107
+
108
+ it("should make a simple solveRoute request (array of objects - lat/lon)", done => {
109
+ fetchMock.once("*", Solve);
110
+
111
+ const MOCK_AUTH = {
112
+ getToken() {
113
+ return Promise.resolve("token");
114
+ },
115
+ portal: "https://mapsdev.arcgis.com"
116
+ };
117
+
118
+ solveRoute({
119
+ stops: stopsObjectsLatLong,
120
+ authentication: MOCK_AUTH
121
+ })
122
+ .then(response => {
123
+ expect(fetchMock.called()).toEqual(true);
124
+ const [url, options]: [string, RequestInit] = fetchMock.lastCall("*");
125
+ expect(url).toEqual(
126
+ "https://route.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World/solve"
127
+ );
128
+ expect(options.method).toBe("POST");
129
+ expect(options.body).toContain("f=json");
130
+ // "stops=-117.195677,34.056383;-117.918976,33.812092"
131
+ expect(options.body).toContain(
132
+ `stops=${encodeURIComponent(
133
+ "-117.195677,34.056383;-117.918976,33.812092"
134
+ )}`
135
+ );
136
+ expect(options.body).toContain("token=token");
137
+ expect(response.routes.spatialReference.latestWkid).toEqual(4326);
138
+ expect(response.routes.features[0].attributes.Name).toEqual(
139
+ "Location 1 - Location 2"
140
+ );
141
+ done();
142
+ })
143
+ .catch(e => {
144
+ fail(e);
145
+ });
146
+ });
147
+
148
+ it("should make a simple solveRoute request (array of objects - latitude/longitude)", done => {
149
+ fetchMock.once("*", Solve);
150
+
151
+ const MOCK_AUTH = {
152
+ getToken() {
153
+ return Promise.resolve("token");
154
+ },
155
+ portal: "https://mapsdev.arcgis.com"
156
+ };
157
+
158
+ solveRoute({
159
+ stops: stopsObjectsLatitudeLongitude,
160
+ authentication: MOCK_AUTH
161
+ })
162
+ .then(response => {
163
+ expect(fetchMock.called()).toEqual(true);
164
+ const [url, options]: [string, RequestInit] = fetchMock.lastCall("*");
165
+ expect(url).toEqual(
166
+ "https://route.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World/solve"
167
+ );
168
+ expect(options.method).toBe("POST");
169
+ expect(options.body).toContain("f=json");
170
+ // "stops=-117.195677,34.056383;-117.918976,33.812092"
171
+ expect(options.body).toContain(
172
+ `stops=${encodeURIComponent(
173
+ "-117.195677,34.056383;-117.918976,33.812092"
174
+ )}`
175
+ );
176
+ expect(options.body).toContain("token=token");
177
+ expect(response.routes.spatialReference.latestWkid).toEqual(4326);
178
+ expect(response.routes.features[0].attributes.Name).toEqual(
179
+ "Location 1 - Location 2"
180
+ );
181
+ done();
182
+ })
183
+ .catch(e => {
184
+ fail(e);
185
+ });
186
+ });
187
+
188
+ it("should make a simple solveRoute request (array of objects - latitude/longitude)", done => {
189
+ fetchMock.once("*", Solve);
190
+
191
+ const MOCK_AUTH = {
192
+ getToken() {
193
+ return Promise.resolve("token");
194
+ },
195
+ portal: "https://mapsdev.arcgis.com"
196
+ };
197
+
198
+ solveRoute({
199
+ stops: stopsObjectsLatitudeLongitude,
200
+ authentication: MOCK_AUTH
201
+ })
202
+ .then(response => {
203
+ expect(fetchMock.called()).toEqual(true);
204
+ const [url, options]: [string, RequestInit] = fetchMock.lastCall("*");
205
+ expect(url).toEqual(
206
+ "https://route.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World/solve"
207
+ );
208
+ expect(options.method).toBe("POST");
209
+ expect(options.body).toContain("f=json");
210
+ // "stops=-117.195677,34.056383;-117.918976,33.812092"
211
+ expect(options.body).toContain(
212
+ `stops=${encodeURIComponent(
213
+ "-117.195677,34.056383;-117.918976,33.812092"
214
+ )}`
215
+ );
216
+ expect(options.body).toContain("token=token");
217
+ expect(response.routes.spatialReference.latestWkid).toEqual(4326);
218
+ expect(response.routes.features[0].attributes.Name).toEqual(
219
+ "Location 1 - Location 2"
220
+ );
221
+ done();
222
+ })
223
+ .catch(e => {
224
+ fail(e);
225
+ });
226
+ });
227
+
228
+ it("should make a simple solveRoute request (array of IPoint)", done => {
229
+ fetchMock.once("*", Solve);
230
+
231
+ const MOCK_AUTH = {
232
+ getToken() {
233
+ return Promise.resolve("token");
234
+ },
235
+ portal: "https://mapsdev.arcgis.com"
236
+ };
237
+
238
+ solveRoute({
239
+ stops: stopsObjectsPoint,
240
+ authentication: MOCK_AUTH
241
+ })
242
+ .then(response => {
243
+ expect(fetchMock.called()).toEqual(true);
244
+ const [url, options]: [string, RequestInit] = fetchMock.lastCall("*");
245
+ expect(url).toEqual(
246
+ "https://route.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World/solve"
247
+ );
248
+ expect(options.method).toBe("POST");
249
+ expect(options.body).toContain("f=json");
250
+ // "stops=-117.195677,34.056383;-117.918976,33.812092"
251
+ expect(options.body).toContain(
252
+ `stops=${encodeURIComponent(
253
+ "-117.195677,34.056383;-117.918976,33.812092"
254
+ )}`
255
+ );
256
+ expect(options.body).toContain("token=token");
257
+ expect(response.routes.spatialReference.latestWkid).toEqual(4326);
258
+ expect(response.routes.features[0].attributes.Name).toEqual(
259
+ "Location 1 - Location 2"
260
+ );
261
+ done();
262
+ })
263
+ .catch(e => {
264
+ fail(e);
265
+ });
266
+ });
267
+ });
@@ -0,0 +1,6 @@
1
+ {
2
+ "extends": "../../tsconfig.json",
3
+ "include": [
4
+ "src/**/*.ts"
5
+ ]
6
+ }
@@ -0,0 +1,70 @@
1
+ [![npm version][npm-img]][npm-url]
2
+ [![build status][travis-img]][travis-url]
3
+ [![Coverage Status][coverage-img]][coverage-url]
4
+ [![apache licensed](https://img.shields.io/badge/license-Apache-green.svg?style=flat-square)](https://raw.githubusercontent.com/Esri/arcgis-rest-js/master/LICENSE)
5
+
6
+ [npm-img]: https://img.shields.io/npm/v/@esri/arcgis-rest-sharing.svg?style=flat-square
7
+ [npm-url]: https://www.npmjs.com/package/@esri/arcgis-rest-sharing
8
+ [travis-img]: https://img.shields.io/travis/Esri/arcgis-rest-js/master.svg?style=flat-square
9
+ [travis-url]: https://travis-ci.org/Esri/arcgis-rest-js
10
+ [coverage-img]: https://coveralls.io/repos/github/Esri/arcgis-rest-js/badge.svg
11
+ [coverage-url]: https://coveralls.io/github/Esri/arcgis-rest-js
12
+
13
+ # @esri/arcgis-rest-sharing
14
+
15
+ > Helper utilities for managing access to ArcGIS content in Node.js and modern browsers.
16
+
17
+ ### Example
18
+
19
+ ```bash
20
+ npm install @esri/arcgis-rest-request
21
+ npm install @esri/arcgis-rest-sharing
22
+ ```
23
+
24
+ ```js
25
+ import { setItemAccess } from '@esri/arcgis-rest-sharing';
26
+
27
+ const itemId = "abc123";
28
+
29
+ setItemAccess({
30
+ id: itemId,
31
+ access: "public",
32
+ authentication: session
33
+ })
34
+ ```
35
+
36
+ ### [API Reference](https://esri.github.io/arcgis-rest-js/api/sharing/)
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
+ ### License
55
+
56
+ Copyright &copy; 2018 Esri
57
+
58
+ Licensed under the Apache License, Version 2.0 (the "License");
59
+ you may not use this file except in compliance with the License.
60
+ You may obtain a copy of the License at
61
+
62
+ > http://www.apache.org/licenses/LICENSE-2.0
63
+
64
+ Unless required by applicable law or agreed to in writing, software
65
+ distributed under the License is distributed on an "AS IS" BASIS,
66
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
67
+ See the License for the specific language governing permissions and
68
+ limitations under the License.
69
+
70
+ A copy of the license is available in the repository's [LICENSE](../../LICENSE) file.
@@ -0,0 +1,11 @@
1
+ {
2
+ "requires": true,
3
+ "lockfileVersion": 1,
4
+ "dependencies": {
5
+ "tslib": {
6
+ "version": "1.9.1",
7
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.1.tgz",
8
+ "integrity": "sha512-avfPS28HmGLLc2o4elcc2EIq2FcH++Yo5YxpBZi9Yw93BCTGFthI4HPE4Rpep6vSYQaK8e69PelM44tPj+RaQg=="
9
+ }
10
+ }
11
+ }
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "@esri/arcgis-rest-sharing",
3
+ "version": "1.14.1",
4
+ "description": "Helper utilities for managing access to ArcGIS content in Node.js and modern browsers.",
5
+ "main": "dist/node/index.js",
6
+ "browser": "dist/umd/sharing.umd.js",
7
+ "module": "dist/esm/index.js",
8
+ "js:next": "dist/esm/index.js",
9
+ "types": "dist/esm/index.d.ts",
10
+ "license": "Apache-2.0",
11
+ "dependencies": {
12
+ "tslib": "^1.8.0"
13
+ },
14
+ "devDependencies": {
15
+ "@esri/arcgis-rest-auth": "^1.14.1",
16
+ "@esri/arcgis-rest-common-types": "^1.14.1",
17
+ "@esri/arcgis-rest-groups": "^1.14.1",
18
+ "@esri/arcgis-rest-request": "^1.14.1"
19
+ },
20
+ "peerDependencies": {
21
+ "@esri/arcgis-rest-auth": "^1.14.1",
22
+ "@esri/arcgis-rest-common-types": "^1.14.1",
23
+ "@esri/arcgis-rest-groups": "^1.14.1",
24
+ "@esri/arcgis-rest-request": "^1.14.1"
25
+ },
26
+ "files": [
27
+ "dist/**"
28
+ ],
29
+ "scripts": {
30
+ "prepare": "npm run build",
31
+ "build": "npm run build:node && npm run build:umd && npm run build:esm",
32
+ "build:esm": "tsc --module es2015 --outDir ./dist/esm --declaration",
33
+ "build:umd": "rollup -c ../../umd-base-profile.js && rollup -c ../../umd-production-profile.js",
34
+ "build:node": "tsc --module commonjs --outDir ./dist/node",
35
+ "dev:esm": "tsc -w --module es2015 --outDir ./dist/esm --declaration",
36
+ "dev:umd": "rollup -w -c ../../umd-base-profile.js",
37
+ "dev:node": "tsc -w --module commonjs --outDir ./dist/node"
38
+ },
39
+ "publishConfig": {
40
+ "access": "public"
41
+ },
42
+ "repository": {
43
+ "type": "git",
44
+ "url": "git+https://github.com/Esri/arcgis-rest-js.git"
45
+ },
46
+ "contributors": [
47
+ {
48
+ "name": "John Gravois",
49
+ "email": "john@esri.com"
50
+ },
51
+ {
52
+ "name": "Tom Wayson",
53
+ "email": "tom@tomwayson.com"
54
+ }
55
+ ],
56
+ "bugs": {
57
+ "url": "https://github.com/Esri/arcgis-rest-js/issues"
58
+ },
59
+ "homepage": "https://github.com/Esri/arcgis-rest-js#readme"
60
+ }
@@ -0,0 +1,85 @@
1
+ /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
2
+ * Apache-2.0 */
3
+
4
+ import { request } from "@esri/arcgis-rest-request";
5
+
6
+ import {
7
+ ISharingRequestOptions,
8
+ ISharingResponse,
9
+ isItemOwner,
10
+ getSharingUrl,
11
+ isOrgAdmin
12
+ } from "./helpers";
13
+
14
+ export interface ISetAccessRequestOptions extends ISharingRequestOptions {
15
+ /**
16
+ * "private" indicates that the item can only be accessed by the user. "public" means accessible to anyone. An item shared to the organization has an access level of "org".
17
+ */
18
+ access: "private" | "org" | "public";
19
+ }
20
+
21
+ /**
22
+ * Set access level of an item to 'public', 'org', or 'private'.
23
+ *
24
+ * ```js
25
+ * import { setItemAccess } from '@esri/arcgis-rest-sharing';
26
+ *
27
+ * setItemAccess({
28
+ * id: "abc123",
29
+ * access: "public",
30
+ * authentication: session
31
+ * })
32
+ * ```
33
+ *
34
+ * @param requestOptions - Options for the request.
35
+ * @returns A Promise that will resolve with the data from the response.
36
+ */
37
+ export function setItemAccess(
38
+ requestOptions: ISetAccessRequestOptions
39
+ ): Promise<ISharingResponse> {
40
+ const url = getSharingUrl(requestOptions);
41
+
42
+ if (isItemOwner(requestOptions)) {
43
+ // if the user owns the item, proceed
44
+ return updateItemAccess(url, requestOptions);
45
+ } else {
46
+ // otherwise we need to check to see if they are an organization admin
47
+ return isOrgAdmin(requestOptions).then(admin => {
48
+ if (admin) {
49
+ return updateItemAccess(url, requestOptions);
50
+ } else {
51
+ // if neither, updating the sharing isnt possible
52
+ throw Error(
53
+ `This item can not be shared by ${
54
+ requestOptions.authentication.username
55
+ }. They are neither the item owner nor an organization admin.`
56
+ );
57
+ }
58
+ });
59
+ }
60
+ }
61
+
62
+ function updateItemAccess(
63
+ url: string,
64
+ requestOptions: ISetAccessRequestOptions
65
+ ): Promise<any> {
66
+ requestOptions.params = {
67
+ org: false,
68
+ everyone: false,
69
+ ...requestOptions.params
70
+ };
71
+
72
+ // if the user wants to make the item private, it needs to be unshared from any/all groups as well
73
+ if (requestOptions.access === "private") {
74
+ requestOptions.params.groups = " ";
75
+ }
76
+ if (requestOptions.access === "org") {
77
+ requestOptions.params.org = true;
78
+ }
79
+ // if sharing with everyone, share with the entire organization as well.
80
+ if (requestOptions.access === "public") {
81
+ requestOptions.params.org = true;
82
+ requestOptions.params.everyone = true;
83
+ }
84
+ return request(url, requestOptions);
85
+ }