ducimusipsa 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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,303 @@
1
+ const spawn = require("cross-spawn");
2
+ const { join } = require("path");
3
+ const { readFile, writeFile } = require("fs");
4
+ const _ = require("lodash");
5
+ const OUTPUT = join(process.cwd(), "docs", "src", `typedoc.json`);
6
+ const { prettyifyUrl } = require("acetate/lib/utils.js");
7
+ const slug = require("slug");
8
+ const minimatch = require("minimatch");
9
+ const cheerio = require("cheerio");
10
+ const MarkdownIt = require("markdown-it");
11
+ const md = new MarkdownIt();
12
+
13
+ (function generateTypeDoc() {
14
+ return new Promise((resolve, reject) => {
15
+ const typedoc = spawn(
16
+ "typedoc",
17
+ [
18
+ "-json",
19
+ OUTPUT,
20
+ "--exclude",
21
+ "**/*test.ts",
22
+ "--ignoreCompilerErrors",
23
+ "--module",
24
+ "common",
25
+ "--tsconfig",
26
+ "./tsconfig.json"
27
+ ],
28
+ {
29
+ stdio: "inherit"
30
+ }
31
+ );
32
+
33
+ typedoc.on("close", code => {
34
+ if (code !== 0) {
35
+ reject(code);
36
+ return;
37
+ }
38
+
39
+ readFile(OUTPUT, (error, content) => {
40
+ if (error) {
41
+ reject(error);
42
+ return;
43
+ }
44
+
45
+ resolve(JSON.parse(content.toString()));
46
+ });
47
+ });
48
+ })
49
+ .then(json => {
50
+ /**
51
+ * `json.children` will be a list of all TypeScript files in our project.
52
+ * We dont care about the files, we just need all their children so we reduce
53
+ * to a single list of everything in the entire project.
54
+ */
55
+ return json.children.reduce(
56
+ (allChildren, fileChildren) => allChildren.concat(fileChildren),
57
+ []
58
+ );
59
+ })
60
+ .then(children => {
61
+ /**
62
+ * We dont want TypeScript files that have been symlinked into `node_modules`
63
+ * folders by Lerna so ignore any child whose source file has `node_modules`
64
+ * in its `fileName`
65
+ */
66
+ return children.filter(
67
+ c => !minimatch(c.sources[0].fileName, "**/node_modules/**")
68
+ );
69
+ })
70
+ .then(children => {
71
+ /**
72
+ * We now only want children that are actual source files, not tests, so
73
+ * filter out all children without `src` in their path.
74
+ */
75
+ return children.filter(c =>
76
+ minimatch(c.sources[0].fileName, "**/src/**/*.ts")
77
+ );
78
+ })
79
+ .then(children => {
80
+ /**
81
+ * Some children might be empty so there is nothing to document in them.
82
+ * For example most `index.ts` files don't have anything besides `import`
83
+ * or `export` so we can safely filter these children out.
84
+ */
85
+ return children.filter(c => !!c.children);
86
+ })
87
+ .then(children => {
88
+ /**
89
+ * The `name` of each child is wrapped in extra quote marks remove these
90
+ * quote marks and add `.ts` back to the end of the `name`,
91
+ */
92
+ return children.map(child => {
93
+ child.name = child.name.replace(/\"/g, "") + ".ts";
94
+ return child;
95
+ });
96
+ })
97
+ .then(children => {
98
+ /**
99
+ * Now determine which `package` each of our children belongs to based on
100
+ * its name.
101
+ */
102
+ return children.map(child => {
103
+ child.name = _.first(child.name.split("/"));
104
+ child.package = child.name;
105
+ return child;
106
+ });
107
+ })
108
+ .then(children => {
109
+ /**
110
+ * `children` is currently a list of all TypeScript source files in
111
+ * `packages`. `children.children` is an array of all declarations in that
112
+ * source file. We need to concat all `children.children` arrays together
113
+ * into a giant array of all declarations in all packages.
114
+ */
115
+ return children.reduce((allChildren, child) => {
116
+ return allChildren.concat(
117
+ child.children.map(c => {
118
+ c.package = child.package;
119
+ return c;
120
+ })
121
+ );
122
+ }, []);
123
+ })
124
+ .then(children => {
125
+ /**
126
+ * Next we remove all children that are not exported out of their files.
127
+ */
128
+ return children.filter(c => c.flags && c.flags.isExported);
129
+ })
130
+ .then(declarations => {
131
+ /**
132
+ * Now that we have a list of all declarations across the entire project
133
+ * we can begin to generate additional information about each declaration.
134
+ * For example we can now determine the `src` of the page that will
135
+ * be generated for this declaration. Each `declaration` will also have
136
+ * `children` which we can generate and define an `icon` property for. These
137
+ * additional properties, `src`, `pageUrl`, `icon` and `children` are then
138
+ * merged into the `declaration`. This also adds a `title`, `description`
139
+ * and `titleSegments` to each page which are used in the template for SEO.
140
+ */
141
+ return declarations.map(declaration => {
142
+ const abbreviatedPackageName = declaration.package.replace("arcgis-rest-", "")
143
+ const src = `arcgis-rest-js/api/${abbreviatedPackageName}/${declaration.name}.html`;
144
+ let children;
145
+
146
+ if (declaration.children) {
147
+ children = declaration.children.map(child => {
148
+ child.icon = `tsd-kind-${slug(
149
+ child.kindString
150
+ ).toLowerCase()} tsd-parent-kind-${slug(
151
+ declaration.kindString
152
+ ).toLowerCase()}`;
153
+
154
+ if (child.flags.isPrivate) {
155
+ child.icon += ` tsd-is-private`;
156
+ }
157
+
158
+ if (child.flags.isProtected) {
159
+ child.icon += ` tsd-is-protected`;
160
+ }
161
+
162
+ if (child.flags.isStatic) {
163
+ child.icon += ` tsd-is-static`;
164
+ }
165
+
166
+ if (child.signatures) {
167
+ child.signatures = child.signatures.map(sig => {
168
+ sig.icon = child.icon;
169
+ return sig;
170
+ });
171
+ }
172
+
173
+ return child;
174
+ });
175
+ }
176
+
177
+ declaration.title = declaration.name;
178
+ declaration.titleSegments = ["API Reference"];
179
+ declaration.description =
180
+ declaration.comment && declaration.comment.shortText
181
+ ? cheerio
182
+ .load(md.render(declaration.comment.shortText))
183
+ .text()
184
+ .replace("\n", "")
185
+ : "API Reference documentation for ${child.name}, part of ${declaration.package}.";
186
+
187
+ return Object.assign(declaration, {
188
+ src,
189
+ pageUrl: prettyifyUrl(src),
190
+ icon: `tsd-kind-${slug(declaration.kindString).toLowerCase()}`,
191
+ children
192
+ });
193
+ });
194
+ })
195
+ .then(declarations => {
196
+ /**
197
+ * We now have a list of `declarations` that will be used to generate the
198
+ * individual API reference pages, but we still need to generate a landing
199
+ * page for each `package`. Return a new object with our `declarations` and
200
+ * a new property `packages` which is an array of every `package` with a
201
+ * page `src`, a `pageUrl`, an `icon` and a list of `declarations`. This
202
+ * also adds a `title`, `description` and `titleSegments` to each page
203
+ * which are used in the template for SEO.
204
+ */
205
+ return {
206
+ declarations,
207
+ packages: _(declarations)
208
+ .map(d => d.package)
209
+ .uniq()
210
+ .reduce((packages, package) => {
211
+ const abbreviatedPackageName = package.replace("arcgis-rest-", "")
212
+ const src = `arcgis-rest-js/api/${abbreviatedPackageName}.html`;
213
+ const pkg = require(`${process.cwd()}/packages/${package}/package.json`);
214
+
215
+ packages.push({
216
+ package,
217
+ pkg,
218
+ title: package,
219
+ description: pkg.description,
220
+ titleSegments: ["API Reference"],
221
+ name: package,
222
+ declarations: declarations.filter(d => d.package === package),
223
+ icon: "tsd-kind-module",
224
+ src,
225
+ pageUrl: prettyifyUrl(src)
226
+ });
227
+ return packages;
228
+ }, [])
229
+ };
230
+ })
231
+ .then(api => {
232
+ /**
233
+ * Since we generated the TypeDoc for the entire project at once each
234
+ * `declaration` has a unique numerical `id` property. We occasionally
235
+ * need to lookup a declaration by its `id` so we can prebuild an index of
236
+ * them here.
237
+ */
238
+ api.index = api.declarations.reduce((index, declaration) => {
239
+ index[declaration.id] = declaration;
240
+ return index;
241
+ }, {});
242
+
243
+ return api;
244
+ })
245
+ .then(api => {
246
+ /**
247
+ * In order to power the API reference quick search we can build an array
248
+ * of all declarations and child items
249
+ */
250
+ api.quickSearchIndex = api.declarations.reduce(
251
+ (quickSearchIndex, declaration) => {
252
+ if (declaration.children) {
253
+ quickSearchIndex = quickSearchIndex.concat(
254
+ declaration.children.map(child => {
255
+ return {
256
+ title: `${declaration.name}.${child.name}`,
257
+ url: `${declaration.pageUrl}#${child.name}`,
258
+ icon: child.icon
259
+ };
260
+ })
261
+ );
262
+ }
263
+
264
+ return quickSearchIndex.concat([
265
+ {
266
+ title: declaration.name,
267
+ url: declaration.pageUrl,
268
+ icon: declaration.icon
269
+ }
270
+ ]);
271
+ },
272
+ []
273
+ );
274
+
275
+ return api;
276
+ })
277
+ .then(api => {
278
+ /**
279
+ * Our final object looks like this:
280
+ *
281
+ * {
282
+ * packages: [Array of packages.],
283
+ * declarations: [Array of each exported declaration accross all source files.]
284
+ * index: { Object mapping each declaration.id as a key with the declaration as its value}
285
+ * }
286
+ *
287
+ * We now export this to the Acetate source directory.
288
+ */
289
+ return new Promise((resolve, reject) => {
290
+ writeFile(OUTPUT, JSON.stringify(api, null, 2), e => {
291
+ if (e) {
292
+ reject(e);
293
+ return;
294
+ }
295
+
296
+ resolve(api);
297
+ });
298
+ });
299
+ })
300
+ .catch(e => {
301
+ console.error(e);
302
+ });
303
+ })();
@@ -0,0 +1,82 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta content="IE=edge" http-equiv="X-UA-Compatible">
6
+ <meta name="viewport" content="width=device-width, user-scalable=no">
7
+ <title>{{title if title}}{{" | " + titleSegments | join(" |") if titleSegments}}{{" | " if title}}ArcGIS REST JS</title>
8
+ {% if description %}
9
+ <meta name="description" content="A modular, high quality toolkit for working with the ArcGIS REST API.">
10
+ {% endif %}
11
+ <link rel="stylesheet" href="https://s3-us-west-1.amazonaws.com/patterns.esri.com/files/calcite-web/1.0.0-rc.7/css/calcite-web.min.css">
12
+ <link rel="stylesheet" href="/arcgis-rest-js/css/style.css">
13
+ {% block css %}{% endblock %}
14
+ </head>
15
+ <body>
16
+ <!-- Drawer -->
17
+ <div class="drawer drawer-left js-drawer" data-drawer="top-nav" tabindex="0">
18
+ <nav class="drawer-nav" role="navigation">
19
+ <aside class="side-nav">
20
+ <h2 class="side-nav-title">ArcGIS REST JS</h2>
21
+ {% link "/arcgis-rest-js/guides/", "Guides", class="side-nav-link" %}
22
+ {% link "/arcgis-rest-js/api/", "API Reference", class="side-nav-link"%}
23
+ </aside>
24
+ </nav>
25
+ </div>
26
+
27
+ <div id="page" class="wrapper">
28
+ <!-- Sample HTML -->
29
+ <header class="top-nav">
30
+ <div class="grid-container">
31
+ <div class="column-24">
32
+ <!-- desktop sized navigation -->
33
+ <div class="tablet-hide">
34
+ <!-- logo / home -->
35
+ <a href="/arcgis-rest-js/" class="top-nav-title">ArcGIS REST JS</a>
36
+ <!-- primary navigation sections -->
37
+ <nav class="top-nav-list" role="navigation" aria-labelledby="topnav">
38
+ {% link "/arcgis-rest-js/guides/", "Guides", class="top-nav-link" %}
39
+ {% link "/arcgis-rest-js/api/", "API Reference", class="top-nav-link"%}
40
+ </nav>
41
+ </div>
42
+
43
+ <!-- tablet and mobile sized navigation -->
44
+ <div class="tablet-show top-nav-flex">
45
+ <!-- open primary navigation drawer -->
46
+ <nav class="top-nav-flex-list" role="navigation" aria-labelledby="topnav">
47
+ <a href="/arcgis-rest-js/" class="icon-ui-menu top-nav-link js-drawer-toggle" data-drawer="top-nav"><span class="phone-hide">Menu</span></a>
48
+ </nav>
49
+ <!-- logo / home -->
50
+ <header class="top-nav-flex-title">
51
+ <a href="/arcgis-rest-js/" class="top-nav-link">ArcGIS REST API JavaScript Client</a>
52
+ </header>
53
+ </div>
54
+ </div>
55
+
56
+ </div>
57
+ </header>
58
+
59
+
60
+ <main id="#skip-to-content">
61
+ {% block main %}{% endblock %}
62
+ </main>
63
+ </div>
64
+
65
+ <footer class="footer leader-1">
66
+ {% block footer %}{% endblock %}
67
+ <div class="grid-container">
68
+ <div class="column-24 trailer-half">
69
+ <a href="https://github.com/Esri/arcgis-rest-js" class="font-size--1">Fork this project on GitHub</a>
70
+ </div>
71
+ </div>
72
+ </footer>
73
+
74
+ <script src="https://s3-us-west-1.amazonaws.com/patterns.esri.com/files/calcite-web/1.0.0-rc.7/js/calcite-web.min.js"></script>
75
+
76
+ <script>
77
+ calcite.init()
78
+ </script>
79
+
80
+ {% block scripts %}{% endblock %}
81
+ </body>
82
+ </html>