@depup/gatsby 5.16.1-depup.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 (1361) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +142 -0
  3. package/adapters.js +31 -0
  4. package/apis.json +73 -0
  5. package/cache-dir/.eslintrc.json +10 -0
  6. package/cache-dir/api-runner-browser-plugins.js +14 -0
  7. package/cache-dir/api-runner-browser.js +52 -0
  8. package/cache-dir/api-runner-ssr.js +88 -0
  9. package/cache-dir/api-ssr-docs.js +207 -0
  10. package/cache-dir/app.js +249 -0
  11. package/cache-dir/blank.css +0 -0
  12. package/cache-dir/commonjs/api-runner-browser-plugins.js +17 -0
  13. package/cache-dir/commonjs/api-runner-browser-plugins.js.map +1 -0
  14. package/cache-dir/commonjs/api-runner-browser.js +49 -0
  15. package/cache-dir/commonjs/api-runner-browser.js.map +1 -0
  16. package/cache-dir/commonjs/api-runner-ssr.js +88 -0
  17. package/cache-dir/commonjs/api-runner-ssr.js.map +1 -0
  18. package/cache-dir/commonjs/api-ssr-docs.js +210 -0
  19. package/cache-dir/commonjs/api-ssr-docs.js.map +1 -0
  20. package/cache-dir/commonjs/app.js +197 -0
  21. package/cache-dir/commonjs/app.js.map +1 -0
  22. package/cache-dir/commonjs/context-utils.js +25 -0
  23. package/cache-dir/commonjs/context-utils.js.map +1 -0
  24. package/cache-dir/commonjs/create-content-digest-browser-shim.js +4 -0
  25. package/cache-dir/commonjs/create-content-digest-browser-shim.js.map +1 -0
  26. package/cache-dir/commonjs/css-to-object.js +21 -0
  27. package/cache-dir/commonjs/css-to-object.js.map +1 -0
  28. package/cache-dir/commonjs/debug-log.js +11 -0
  29. package/cache-dir/commonjs/debug-log.js.map +1 -0
  30. package/cache-dir/commonjs/default-html.js +33 -0
  31. package/cache-dir/commonjs/default-html.js.map +1 -0
  32. package/cache-dir/commonjs/dev-loader.js +247 -0
  33. package/cache-dir/commonjs/dev-loader.js.map +1 -0
  34. package/cache-dir/commonjs/develop-static-entry.js +129 -0
  35. package/cache-dir/commonjs/develop-static-entry.js.map +1 -0
  36. package/cache-dir/commonjs/dummy.js +8 -0
  37. package/cache-dir/commonjs/dummy.js.map +1 -0
  38. package/cache-dir/commonjs/emitter.js +10 -0
  39. package/cache-dir/commonjs/emitter.js.map +1 -0
  40. package/cache-dir/commonjs/ensure-resources.js +107 -0
  41. package/cache-dir/commonjs/ensure-resources.js.map +1 -0
  42. package/cache-dir/commonjs/error-overlay-handler.js +35 -0
  43. package/cache-dir/commonjs/error-overlay-handler.js.map +1 -0
  44. package/cache-dir/commonjs/fast-refresh-overlay/components/accordion.js +80 -0
  45. package/cache-dir/commonjs/fast-refresh-overlay/components/accordion.js.map +1 -0
  46. package/cache-dir/commonjs/fast-refresh-overlay/components/build-error.js +44 -0
  47. package/cache-dir/commonjs/fast-refresh-overlay/components/build-error.js.map +1 -0
  48. package/cache-dir/commonjs/fast-refresh-overlay/components/code-frame.js +38 -0
  49. package/cache-dir/commonjs/fast-refresh-overlay/components/code-frame.js.map +1 -0
  50. package/cache-dir/commonjs/fast-refresh-overlay/components/dev-ssr-error.js +52 -0
  51. package/cache-dir/commonjs/fast-refresh-overlay/components/dev-ssr-error.js.map +1 -0
  52. package/cache-dir/commonjs/fast-refresh-overlay/components/error-boundary.js +31 -0
  53. package/cache-dir/commonjs/fast-refresh-overlay/components/error-boundary.js.map +1 -0
  54. package/cache-dir/commonjs/fast-refresh-overlay/components/getserverdata-error.js +47 -0
  55. package/cache-dir/commonjs/fast-refresh-overlay/components/getserverdata-error.js.map +1 -0
  56. package/cache-dir/commonjs/fast-refresh-overlay/components/graphql-errors.js +77 -0
  57. package/cache-dir/commonjs/fast-refresh-overlay/components/graphql-errors.js.map +1 -0
  58. package/cache-dir/commonjs/fast-refresh-overlay/components/hooks.js +93 -0
  59. package/cache-dir/commonjs/fast-refresh-overlay/components/hooks.js.map +1 -0
  60. package/cache-dir/commonjs/fast-refresh-overlay/components/overlay.js +147 -0
  61. package/cache-dir/commonjs/fast-refresh-overlay/components/overlay.js.map +1 -0
  62. package/cache-dir/commonjs/fast-refresh-overlay/components/runtime-errors.js +110 -0
  63. package/cache-dir/commonjs/fast-refresh-overlay/components/runtime-errors.js.map +1 -0
  64. package/cache-dir/commonjs/fast-refresh-overlay/components/use-id.js +50 -0
  65. package/cache-dir/commonjs/fast-refresh-overlay/components/use-id.js.map +1 -0
  66. package/cache-dir/commonjs/fast-refresh-overlay/helpers/focus-trap.js +2879 -0
  67. package/cache-dir/commonjs/fast-refresh-overlay/helpers/focus-trap.js.map +1 -0
  68. package/cache-dir/commonjs/fast-refresh-overlay/helpers/keys.js +84 -0
  69. package/cache-dir/commonjs/fast-refresh-overlay/helpers/keys.js.map +1 -0
  70. package/cache-dir/commonjs/fast-refresh-overlay/helpers/lock-body.js +48 -0
  71. package/cache-dir/commonjs/fast-refresh-overlay/helpers/lock-body.js.map +1 -0
  72. package/cache-dir/commonjs/fast-refresh-overlay/helpers/match.js +44 -0
  73. package/cache-dir/commonjs/fast-refresh-overlay/helpers/match.js.map +1 -0
  74. package/cache-dir/commonjs/fast-refresh-overlay/index.js +182 -0
  75. package/cache-dir/commonjs/fast-refresh-overlay/index.js.map +1 -0
  76. package/cache-dir/commonjs/fast-refresh-overlay/style.js +418 -0
  77. package/cache-dir/commonjs/fast-refresh-overlay/style.js.map +1 -0
  78. package/cache-dir/commonjs/fast-refresh-overlay/utils.js +75 -0
  79. package/cache-dir/commonjs/fast-refresh-overlay/utils.js.map +1 -0
  80. package/cache-dir/commonjs/find-path.js +145 -0
  81. package/cache-dir/commonjs/find-path.js.map +1 -0
  82. package/cache-dir/commonjs/gatsby-browser-entry.js +52 -0
  83. package/cache-dir/commonjs/gatsby-browser-entry.js.map +1 -0
  84. package/cache-dir/commonjs/head/components/fire-callback-in-effect.js +18 -0
  85. package/cache-dir/commonjs/head/components/fire-callback-in-effect.js.map +1 -0
  86. package/cache-dir/commonjs/head/components/head-components.js +72 -0
  87. package/cache-dir/commonjs/head/components/head-components.js.map +1 -0
  88. package/cache-dir/commonjs/head/constants.js +13 -0
  89. package/cache-dir/commonjs/head/constants.js.map +1 -0
  90. package/cache-dir/commonjs/head/head-export-handler-for-browser.js +144 -0
  91. package/cache-dir/commonjs/head/head-export-handler-for-browser.js.map +1 -0
  92. package/cache-dir/commonjs/head/head-export-handler-for-ssr.js +225 -0
  93. package/cache-dir/commonjs/head/head-export-handler-for-ssr.js.map +1 -0
  94. package/cache-dir/commonjs/head/utils.js +264 -0
  95. package/cache-dir/commonjs/head/utils.js.map +1 -0
  96. package/cache-dir/commonjs/loader.js +861 -0
  97. package/cache-dir/commonjs/loader.js.map +1 -0
  98. package/cache-dir/commonjs/loading-indicator/index.js +25 -0
  99. package/cache-dir/commonjs/loading-indicator/index.js.map +1 -0
  100. package/cache-dir/commonjs/loading-indicator/indicator.js +63 -0
  101. package/cache-dir/commonjs/loading-indicator/indicator.js.map +1 -0
  102. package/cache-dir/commonjs/loading-indicator/style.js +103 -0
  103. package/cache-dir/commonjs/loading-indicator/style.js.map +1 -0
  104. package/cache-dir/commonjs/navigation.js +260 -0
  105. package/cache-dir/commonjs/navigation.js.map +1 -0
  106. package/cache-dir/commonjs/normalize-page-path.js +22 -0
  107. package/cache-dir/commonjs/normalize-page-path.js.map +1 -0
  108. package/cache-dir/commonjs/page-renderer.js +59 -0
  109. package/cache-dir/commonjs/page-renderer.js.map +1 -0
  110. package/cache-dir/commonjs/pages.json +1 -0
  111. package/cache-dir/commonjs/polyfill-entry.js +7 -0
  112. package/cache-dir/commonjs/polyfill-entry.js.map +1 -0
  113. package/cache-dir/commonjs/prefetch.js +67 -0
  114. package/cache-dir/commonjs/prefetch.js.map +1 -0
  115. package/cache-dir/commonjs/production-app.js +256 -0
  116. package/cache-dir/commonjs/production-app.js.map +1 -0
  117. package/cache-dir/commonjs/public-page-renderer-dev.js +26 -0
  118. package/cache-dir/commonjs/public-page-renderer-dev.js.map +1 -0
  119. package/cache-dir/commonjs/public-page-renderer-prod.js +30 -0
  120. package/cache-dir/commonjs/public-page-renderer-prod.js.map +1 -0
  121. package/cache-dir/commonjs/public-page-renderer.js +11 -0
  122. package/cache-dir/commonjs/public-page-renderer.js.map +1 -0
  123. package/cache-dir/commonjs/query-result-store.js +160 -0
  124. package/cache-dir/commonjs/query-result-store.js.map +1 -0
  125. package/cache-dir/commonjs/react-dom-utils.js +34 -0
  126. package/cache-dir/commonjs/react-dom-utils.js.map +1 -0
  127. package/cache-dir/commonjs/react-lifecycles-compat.js +4 -0
  128. package/cache-dir/commonjs/react-lifecycles-compat.js.map +1 -0
  129. package/cache-dir/commonjs/redirect-utils.js +25 -0
  130. package/cache-dir/commonjs/redirect-utils.js.map +1 -0
  131. package/cache-dir/commonjs/redirects.json +1 -0
  132. package/cache-dir/commonjs/register-service-worker.js +66 -0
  133. package/cache-dir/commonjs/register-service-worker.js.map +1 -0
  134. package/cache-dir/commonjs/root.js +105 -0
  135. package/cache-dir/commonjs/root.js.map +1 -0
  136. package/cache-dir/commonjs/route-announcer-props.js +24 -0
  137. package/cache-dir/commonjs/route-announcer-props.js.map +1 -0
  138. package/cache-dir/commonjs/server-utils/writable-as-promise.js +42 -0
  139. package/cache-dir/commonjs/server-utils/writable-as-promise.js.map +1 -0
  140. package/cache-dir/commonjs/shadow-portal.js +36 -0
  141. package/cache-dir/commonjs/shadow-portal.js.map +1 -0
  142. package/cache-dir/commonjs/slice/context.js +15 -0
  143. package/cache-dir/commonjs/slice/context.js.map +1 -0
  144. package/cache-dir/commonjs/slice/inline-slice.js +34 -0
  145. package/cache-dir/commonjs/slice/inline-slice.js.map +1 -0
  146. package/cache-dir/commonjs/slice/server-slice-renderer.js +29 -0
  147. package/cache-dir/commonjs/slice/server-slice-renderer.js.map +1 -0
  148. package/cache-dir/commonjs/slice/server-slice.js +54 -0
  149. package/cache-dir/commonjs/slice/server-slice.js.map +1 -0
  150. package/cache-dir/commonjs/slice.js +124 -0
  151. package/cache-dir/commonjs/slice.js.map +1 -0
  152. package/cache-dir/commonjs/socketIo.js +62 -0
  153. package/cache-dir/commonjs/socketIo.js.map +1 -0
  154. package/cache-dir/commonjs/ssr-builtin-trackers/child_process.js +8 -0
  155. package/cache-dir/commonjs/ssr-builtin-trackers/child_process.js.map +1 -0
  156. package/cache-dir/commonjs/ssr-builtin-trackers/fs.js +7 -0
  157. package/cache-dir/commonjs/ssr-builtin-trackers/fs.js.map +1 -0
  158. package/cache-dir/commonjs/ssr-builtin-trackers/http.js +9 -0
  159. package/cache-dir/commonjs/ssr-builtin-trackers/http.js.map +1 -0
  160. package/cache-dir/commonjs/ssr-builtin-trackers/http2.js +7 -0
  161. package/cache-dir/commonjs/ssr-builtin-trackers/http2.js.map +1 -0
  162. package/cache-dir/commonjs/ssr-builtin-trackers/https.js +9 -0
  163. package/cache-dir/commonjs/ssr-builtin-trackers/https.js.map +1 -0
  164. package/cache-dir/commonjs/ssr-builtin-trackers/tracking-unsafe-module-wrapper.js +55 -0
  165. package/cache-dir/commonjs/ssr-builtin-trackers/tracking-unsafe-module-wrapper.js.map +1 -0
  166. package/cache-dir/commonjs/ssr-develop-static-entry.js +366 -0
  167. package/cache-dir/commonjs/ssr-develop-static-entry.js.map +1 -0
  168. package/cache-dir/commonjs/static-entry.js +544 -0
  169. package/cache-dir/commonjs/static-entry.js.map +1 -0
  170. package/cache-dir/commonjs/static-query.js +74 -0
  171. package/cache-dir/commonjs/static-query.js.map +1 -0
  172. package/cache-dir/commonjs/strip-prefix.js +22 -0
  173. package/cache-dir/commonjs/strip-prefix.js.map +1 -0
  174. package/cache-dir/context-utils.js +29 -0
  175. package/cache-dir/create-content-digest-browser-shim.js +1 -0
  176. package/cache-dir/css-to-object.js +19 -0
  177. package/cache-dir/debug-log.js +13 -0
  178. package/cache-dir/default-html.js +36 -0
  179. package/cache-dir/dev-loader.js +280 -0
  180. package/cache-dir/develop-static-entry.js +129 -0
  181. package/cache-dir/dummy.js +2 -0
  182. package/cache-dir/emitter.js +4 -0
  183. package/cache-dir/ensure-resources.js +119 -0
  184. package/cache-dir/error-overlay-handler.js +36 -0
  185. package/cache-dir/fast-refresh-overlay/components/accordion.js +83 -0
  186. package/cache-dir/fast-refresh-overlay/components/build-error.js +46 -0
  187. package/cache-dir/fast-refresh-overlay/components/code-frame.js +38 -0
  188. package/cache-dir/fast-refresh-overlay/components/dev-ssr-error.js +66 -0
  189. package/cache-dir/fast-refresh-overlay/components/error-boundary.js +28 -0
  190. package/cache-dir/fast-refresh-overlay/components/getserverdata-error.js +53 -0
  191. package/cache-dir/fast-refresh-overlay/components/graphql-errors.js +100 -0
  192. package/cache-dir/fast-refresh-overlay/components/hooks.js +102 -0
  193. package/cache-dir/fast-refresh-overlay/components/overlay.js +143 -0
  194. package/cache-dir/fast-refresh-overlay/components/runtime-errors.js +139 -0
  195. package/cache-dir/fast-refresh-overlay/components/use-id.js +56 -0
  196. package/cache-dir/fast-refresh-overlay/helpers/focus-trap.js +3561 -0
  197. package/cache-dir/fast-refresh-overlay/helpers/keys.js +80 -0
  198. package/cache-dir/fast-refresh-overlay/helpers/lock-body.js +52 -0
  199. package/cache-dir/fast-refresh-overlay/helpers/match.js +42 -0
  200. package/cache-dir/fast-refresh-overlay/index.js +147 -0
  201. package/cache-dir/fast-refresh-overlay/style.js +413 -0
  202. package/cache-dir/fast-refresh-overlay/utils.js +81 -0
  203. package/cache-dir/find-path.js +160 -0
  204. package/cache-dir/gatsby-browser-entry.js +27 -0
  205. package/cache-dir/head/components/fire-callback-in-effect.js +12 -0
  206. package/cache-dir/head/components/head-components.js +86 -0
  207. package/cache-dir/head/constants.js +15 -0
  208. package/cache-dir/head/head-export-handler-for-browser.js +170 -0
  209. package/cache-dir/head/head-export-handler-for-ssr.js +237 -0
  210. package/cache-dir/head/utils.js +287 -0
  211. package/cache-dir/loader.js +977 -0
  212. package/cache-dir/loading-indicator/index.js +19 -0
  213. package/cache-dir/loading-indicator/indicator.js +65 -0
  214. package/cache-dir/loading-indicator/style.js +99 -0
  215. package/cache-dir/navigation.js +257 -0
  216. package/cache-dir/normalize-page-path.js +17 -0
  217. package/cache-dir/page-renderer.js +59 -0
  218. package/cache-dir/page-ssr/index.d.ts +76 -0
  219. package/cache-dir/pages.json +1 -0
  220. package/cache-dir/polyfill-entry.js +5 -0
  221. package/cache-dir/prefetch.js +80 -0
  222. package/cache-dir/production-app.js +340 -0
  223. package/cache-dir/public-page-renderer-dev.js +21 -0
  224. package/cache-dir/public-page-renderer-prod.js +25 -0
  225. package/cache-dir/public-page-renderer.js +9 -0
  226. package/cache-dir/query-engine/index.d.ts +31 -0
  227. package/cache-dir/query-result-store.js +197 -0
  228. package/cache-dir/react-dom-utils.js +38 -0
  229. package/cache-dir/react-lifecycles-compat.js +1 -0
  230. package/cache-dir/redirect-utils.js +22 -0
  231. package/cache-dir/redirects.json +1 -0
  232. package/cache-dir/register-service-worker.js +64 -0
  233. package/cache-dir/root.js +147 -0
  234. package/cache-dir/route-announcer-props.js +18 -0
  235. package/cache-dir/server-utils/writable-as-promise.js +41 -0
  236. package/cache-dir/shadow-portal.js +28 -0
  237. package/cache-dir/slice/context.js +13 -0
  238. package/cache-dir/slice/inline-slice.js +34 -0
  239. package/cache-dir/slice/server-slice-renderer.js +28 -0
  240. package/cache-dir/slice/server-slice.js +52 -0
  241. package/cache-dir/slice.js +158 -0
  242. package/cache-dir/socketIo.js +58 -0
  243. package/cache-dir/ssr-builtin-trackers/child_process.js +4 -0
  244. package/cache-dir/ssr-builtin-trackers/fs.js +3 -0
  245. package/cache-dir/ssr-builtin-trackers/http.js +3 -0
  246. package/cache-dir/ssr-builtin-trackers/http2.js +3 -0
  247. package/cache-dir/ssr-builtin-trackers/https.js +3 -0
  248. package/cache-dir/ssr-builtin-trackers/tracking-unsafe-module-wrapper.js +64 -0
  249. package/cache-dir/ssr-develop-static-entry.js +428 -0
  250. package/cache-dir/static-entry.js +594 -0
  251. package/cache-dir/static-query.js +91 -0
  252. package/cache-dir/strip-prefix.js +20 -0
  253. package/changes.json +454 -0
  254. package/cli.js +3 -0
  255. package/dist/bin/gatsby.js +5 -0
  256. package/dist/bin/gatsby.js.map +1 -0
  257. package/dist/bootstrap/__mocks__/get-config/ts/gatsby-config.d.ts +3 -0
  258. package/dist/bootstrap/__mocks__/resolve-module-exports.d.ts +1 -0
  259. package/dist/bootstrap/create-graphql-runner.d.ts +10 -0
  260. package/dist/bootstrap/create-graphql-runner.js +71 -0
  261. package/dist/bootstrap/create-graphql-runner.js.map +1 -0
  262. package/dist/bootstrap/get-config-file.d.ts +4 -0
  263. package/dist/bootstrap/get-config-file.js +152 -0
  264. package/dist/bootstrap/get-config-file.js.map +1 -0
  265. package/dist/bootstrap/index.d.ts +12 -0
  266. package/dist/bootstrap/index.js +56 -0
  267. package/dist/bootstrap/index.js.map +1 -0
  268. package/dist/bootstrap/load-config/index.d.ts +7 -0
  269. package/dist/bootstrap/load-config/index.js +73 -0
  270. package/dist/bootstrap/load-config/index.js.map +1 -0
  271. package/dist/bootstrap/load-plugins/index.d.ts +3 -0
  272. package/dist/bootstrap/load-plugins/index.js +79 -0
  273. package/dist/bootstrap/load-plugins/index.js.map +1 -0
  274. package/dist/bootstrap/load-plugins/load-internal-plugins.d.ts +2 -0
  275. package/dist/bootstrap/load-plugins/load-internal-plugins.js +105 -0
  276. package/dist/bootstrap/load-plugins/load-internal-plugins.js.map +1 -0
  277. package/dist/bootstrap/load-plugins/process-plugin.d.ts +2 -0
  278. package/dist/bootstrap/load-plugins/process-plugin.js +81 -0
  279. package/dist/bootstrap/load-plugins/process-plugin.js.map +1 -0
  280. package/dist/bootstrap/load-plugins/resolve-plugin.d.ts +13 -0
  281. package/dist/bootstrap/load-plugins/resolve-plugin.js +75 -0
  282. package/dist/bootstrap/load-plugins/resolve-plugin.js.map +1 -0
  283. package/dist/bootstrap/load-plugins/types.d.ts +48 -0
  284. package/dist/bootstrap/load-plugins/types.js +4 -0
  285. package/dist/bootstrap/load-plugins/types.js.map +1 -0
  286. package/dist/bootstrap/load-plugins/utils/check-local-plugin.d.ts +8 -0
  287. package/dist/bootstrap/load-plugins/utils/check-local-plugin.js +38 -0
  288. package/dist/bootstrap/load-plugins/utils/check-local-plugin.js.map +1 -0
  289. package/dist/bootstrap/load-plugins/utils/create-hash.d.ts +1 -0
  290. package/dist/bootstrap/load-plugins/utils/create-hash.js +20 -0
  291. package/dist/bootstrap/load-plugins/utils/create-hash.js.map +1 -0
  292. package/dist/bootstrap/load-plugins/utils/create-id.d.ts +10 -0
  293. package/dist/bootstrap/load-plugins/utils/create-id.js +16 -0
  294. package/dist/bootstrap/load-plugins/utils/create-id.js.map +1 -0
  295. package/dist/bootstrap/load-plugins/utils/flatten-plugins.d.ts +2 -0
  296. package/dist/bootstrap/load-plugins/utils/flatten-plugins.js +41 -0
  297. package/dist/bootstrap/load-plugins/utils/flatten-plugins.js.map +1 -0
  298. package/dist/bootstrap/load-plugins/utils/get-api.d.ts +12 -0
  299. package/dist/bootstrap/load-plugins/utils/get-api.js +12 -0
  300. package/dist/bootstrap/load-plugins/utils/get-api.js.map +1 -0
  301. package/dist/bootstrap/load-plugins/utils/normalize.d.ts +5 -0
  302. package/dist/bootstrap/load-plugins/utils/normalize.js +33 -0
  303. package/dist/bootstrap/load-plugins/utils/normalize.js.map +1 -0
  304. package/dist/bootstrap/load-plugins/validate.d.ts +41 -0
  305. package/dist/bootstrap/load-plugins/validate.js +369 -0
  306. package/dist/bootstrap/load-plugins/validate.js.map +1 -0
  307. package/dist/bootstrap/load-themes/index.d.ts +17 -0
  308. package/dist/bootstrap/load-themes/index.js +186 -0
  309. package/dist/bootstrap/load-themes/index.js.map +1 -0
  310. package/dist/bootstrap/log-line-function.d.ts +0 -0
  311. package/dist/bootstrap/log-line-function.js +19 -0
  312. package/dist/bootstrap/log-line-function.js.map +1 -0
  313. package/dist/bootstrap/prefer-default.d.ts +1 -0
  314. package/dist/bootstrap/prefer-default.js +7 -0
  315. package/dist/bootstrap/prefer-default.js.map +1 -0
  316. package/dist/bootstrap/redirects-writer.d.ts +2 -0
  317. package/dist/bootstrap/redirects-writer.js +59 -0
  318. package/dist/bootstrap/redirects-writer.js.map +1 -0
  319. package/dist/bootstrap/remove-stale-jobs.d.ts +2 -0
  320. package/dist/bootstrap/remove-stale-jobs.js +31 -0
  321. package/dist/bootstrap/remove-stale-jobs.js.map +1 -0
  322. package/dist/bootstrap/requires-writer.d.ts +11 -0
  323. package/dist/bootstrap/requires-writer.js +260 -0
  324. package/dist/bootstrap/requires-writer.js.map +1 -0
  325. package/dist/bootstrap/resolve-js-file-path.d.ts +14 -0
  326. package/dist/bootstrap/resolve-js-file-path.js +58 -0
  327. package/dist/bootstrap/resolve-js-file-path.js.map +1 -0
  328. package/dist/bootstrap/resolve-module-exports.d.ts +20 -0
  329. package/dist/bootstrap/resolve-module-exports.js +188 -0
  330. package/dist/bootstrap/resolve-module-exports.js.map +1 -0
  331. package/dist/bootstrap/schema-hot-reloader.d.ts +3 -0
  332. package/dist/bootstrap/schema-hot-reloader.js +60 -0
  333. package/dist/bootstrap/schema-hot-reloader.js.map +1 -0
  334. package/dist/cache/cache-fs.d.ts +1 -0
  335. package/dist/cache/cache-fs.js +270 -0
  336. package/dist/cache/cache-fs.js.map +1 -0
  337. package/dist/cache/json-file-store.d.ts +8 -0
  338. package/dist/cache/json-file-store.js +144 -0
  339. package/dist/cache/json-file-store.js.map +1 -0
  340. package/dist/cache/wrap-callback.d.ts +0 -0
  341. package/dist/cache/wrap-callback.js +49 -0
  342. package/dist/cache/wrap-callback.js.map +1 -0
  343. package/dist/commands/build-html.d.ts +69 -0
  344. package/dist/commands/build-html.js +652 -0
  345. package/dist/commands/build-html.js.map +1 -0
  346. package/dist/commands/build-javascript.d.ts +4 -0
  347. package/dist/commands/build-javascript.js +18 -0
  348. package/dist/commands/build-javascript.js.map +1 -0
  349. package/dist/commands/build-utils.d.ts +8 -0
  350. package/dist/commands/build-utils.js +186 -0
  351. package/dist/commands/build-utils.js.map +1 -0
  352. package/dist/commands/build.d.ts +1 -0
  353. package/dist/commands/build.js +505 -0
  354. package/dist/commands/build.js.map +1 -0
  355. package/dist/commands/clean.d.ts +1 -0
  356. package/dist/commands/clean.js +29 -0
  357. package/dist/commands/clean.js.map +1 -0
  358. package/dist/commands/develop-process.d.ts +1 -0
  359. package/dist/commands/develop-process.js +120 -0
  360. package/dist/commands/develop-process.js.map +1 -0
  361. package/dist/commands/develop-static.d.ts +3 -0
  362. package/dist/commands/develop-static.js +22 -0
  363. package/dist/commands/develop-static.js.map +1 -0
  364. package/dist/commands/develop.d.ts +2 -0
  365. package/dist/commands/develop.js +273 -0
  366. package/dist/commands/develop.js.map +1 -0
  367. package/dist/commands/feedback.d.ts +1 -0
  368. package/dist/commands/feedback.js +17 -0
  369. package/dist/commands/feedback.js.map +1 -0
  370. package/dist/commands/repl.d.ts +1 -0
  371. package/dist/commands/repl.js +58 -0
  372. package/dist/commands/repl.js.map +1 -0
  373. package/dist/commands/serve.d.ts +1 -0
  374. package/dist/commands/serve.js +282 -0
  375. package/dist/commands/serve.js.map +1 -0
  376. package/dist/commands/types.d.ts +54 -0
  377. package/dist/commands/types.js +23 -0
  378. package/dist/commands/types.js.map +1 -0
  379. package/dist/constants.d.ts +1 -0
  380. package/dist/constants.js +7 -0
  381. package/dist/constants.js.map +1 -0
  382. package/dist/datastore/common/iterable.d.ts +51 -0
  383. package/dist/datastore/common/iterable.js +217 -0
  384. package/dist/datastore/common/iterable.js.map +1 -0
  385. package/dist/datastore/common/query.d.ts +69 -0
  386. package/dist/datastore/common/query.js +219 -0
  387. package/dist/datastore/common/query.js.map +1 -0
  388. package/dist/datastore/datastore.d.ts +2 -0
  389. package/dist/datastore/datastore.js +23 -0
  390. package/dist/datastore/datastore.js.map +1 -0
  391. package/dist/datastore/in-memory/in-memory-datastore.d.ts +2 -0
  392. package/dist/datastore/in-memory/in-memory-datastore.js +75 -0
  393. package/dist/datastore/in-memory/in-memory-datastore.js.map +1 -0
  394. package/dist/datastore/in-memory/indexing.d.ts +80 -0
  395. package/dist/datastore/in-memory/indexing.js +994 -0
  396. package/dist/datastore/in-memory/indexing.js.map +1 -0
  397. package/dist/datastore/in-memory/run-fast-filters.d.ts +27 -0
  398. package/dist/datastore/in-memory/run-fast-filters.js +276 -0
  399. package/dist/datastore/in-memory/run-fast-filters.js.map +1 -0
  400. package/dist/datastore/index.d.ts +20 -0
  401. package/dist/datastore/index.js +34 -0
  402. package/dist/datastore/index.js.map +1 -0
  403. package/dist/datastore/lmdb/lmdb-datastore.d.ts +14 -0
  404. package/dist/datastore/lmdb/lmdb-datastore.js +261 -0
  405. package/dist/datastore/lmdb/lmdb-datastore.js.map +1 -0
  406. package/dist/datastore/lmdb/query/common.d.ts +23 -0
  407. package/dist/datastore/lmdb/query/common.js +127 -0
  408. package/dist/datastore/lmdb/query/common.js.map +1 -0
  409. package/dist/datastore/lmdb/query/create-index.d.ts +25 -0
  410. package/dist/datastore/lmdb/query/create-index.js +239 -0
  411. package/dist/datastore/lmdb/query/create-index.js.map +1 -0
  412. package/dist/datastore/lmdb/query/filter-using-index.d.ts +43 -0
  413. package/dist/datastore/lmdb/query/filter-using-index.js +577 -0
  414. package/dist/datastore/lmdb/query/filter-using-index.js.map +1 -0
  415. package/dist/datastore/lmdb/query/run-query.d.ts +9 -0
  416. package/dist/datastore/lmdb/query/run-query.js +285 -0
  417. package/dist/datastore/lmdb/query/run-query.js.map +1 -0
  418. package/dist/datastore/lmdb/query/suggest-index.d.ts +15 -0
  419. package/dist/datastore/lmdb/query/suggest-index.js +93 -0
  420. package/dist/datastore/lmdb/query/suggest-index.js.map +1 -0
  421. package/dist/datastore/lmdb/updates/nodes-by-type.d.ts +3 -0
  422. package/dist/datastore/lmdb/updates/nodes-by-type.js +21 -0
  423. package/dist/datastore/lmdb/updates/nodes-by-type.js.map +1 -0
  424. package/dist/datastore/lmdb/updates/nodes.d.ts +5 -0
  425. package/dist/datastore/lmdb/updates/nodes.js +33 -0
  426. package/dist/datastore/lmdb/updates/nodes.js.map +1 -0
  427. package/dist/datastore/types.d.ts +47 -0
  428. package/dist/datastore/types.js +4 -0
  429. package/dist/datastore/types.js.map +1 -0
  430. package/dist/internal-plugins/bundle-optimisations/gatsby-node.js +42 -0
  431. package/dist/internal-plugins/bundle-optimisations/gatsby-node.js.map +1 -0
  432. package/dist/internal-plugins/bundle-optimisations/index.js +3 -0
  433. package/dist/internal-plugins/bundle-optimisations/index.js.map +1 -0
  434. package/dist/internal-plugins/bundle-optimisations/package.json +10 -0
  435. package/dist/internal-plugins/bundle-optimisations/polyfills/fetch.js +4 -0
  436. package/dist/internal-plugins/bundle-optimisations/polyfills/fetch.js.map +1 -0
  437. package/dist/internal-plugins/bundle-optimisations/polyfills/no-op.js +3 -0
  438. package/dist/internal-plugins/bundle-optimisations/polyfills/no-op.js.map +1 -0
  439. package/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js +4 -0
  440. package/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js.map +1 -0
  441. package/dist/internal-plugins/bundle-optimisations/polyfills/whatwg-fetch.js +6 -0
  442. package/dist/internal-plugins/bundle-optimisations/polyfills/whatwg-fetch.js.map +1 -0
  443. package/dist/internal-plugins/dev-404-page/gatsby-node.js +30 -0
  444. package/dist/internal-plugins/dev-404-page/gatsby-node.js.map +1 -0
  445. package/dist/internal-plugins/dev-404-page/index.js +3 -0
  446. package/dist/internal-plugins/dev-404-page/index.js.map +1 -0
  447. package/dist/internal-plugins/dev-404-page/package.json +11 -0
  448. package/dist/internal-plugins/dev-404-page/raw_dev-404-page.js +262 -0
  449. package/dist/internal-plugins/functions/api-function-webpack-loader.d.ts +3 -0
  450. package/dist/internal-plugins/functions/api-function-webpack-loader.js +74 -0
  451. package/dist/internal-plugins/functions/api-function-webpack-loader.js.map +1 -0
  452. package/dist/internal-plugins/functions/config.d.ts +20 -0
  453. package/dist/internal-plugins/functions/config.js +96 -0
  454. package/dist/internal-plugins/functions/config.js.map +1 -0
  455. package/dist/internal-plugins/functions/gatsby-node.d.ts +3 -0
  456. package/dist/internal-plugins/functions/gatsby-node.js +452 -0
  457. package/dist/internal-plugins/functions/gatsby-node.js.map +1 -0
  458. package/dist/internal-plugins/functions/index.js +3 -0
  459. package/dist/internal-plugins/functions/index.js.map +1 -0
  460. package/dist/internal-plugins/functions/middleware.d.ts +11 -0
  461. package/dist/internal-plugins/functions/middleware.js +160 -0
  462. package/dist/internal-plugins/functions/middleware.js.map +1 -0
  463. package/dist/internal-plugins/functions/package.json +11 -0
  464. package/dist/internal-plugins/internal-data-bridge/gatsby-node.js +191 -0
  465. package/dist/internal-plugins/internal-data-bridge/gatsby-node.js.map +1 -0
  466. package/dist/internal-plugins/internal-data-bridge/index.js +3 -0
  467. package/dist/internal-plugins/internal-data-bridge/index.js.map +1 -0
  468. package/dist/internal-plugins/internal-data-bridge/package.json +11 -0
  469. package/dist/internal-plugins/load-babel-config/gatsby-node.js +37 -0
  470. package/dist/internal-plugins/load-babel-config/gatsby-node.js.map +1 -0
  471. package/dist/internal-plugins/load-babel-config/index.js +3 -0
  472. package/dist/internal-plugins/load-babel-config/index.js.map +1 -0
  473. package/dist/internal-plugins/load-babel-config/package.json +11 -0
  474. package/dist/internal-plugins/partytown/gatsby-browser.js +23 -0
  475. package/dist/internal-plugins/partytown/gatsby-browser.js.map +1 -0
  476. package/dist/internal-plugins/partytown/gatsby-node.d.ts +2 -0
  477. package/dist/internal-plugins/partytown/gatsby-node.js +60 -0
  478. package/dist/internal-plugins/partytown/gatsby-node.js.map +1 -0
  479. package/dist/internal-plugins/partytown/gatsby-ssr.js +39 -0
  480. package/dist/internal-plugins/partytown/gatsby-ssr.js.map +1 -0
  481. package/dist/internal-plugins/partytown/index.js +3 -0
  482. package/dist/internal-plugins/partytown/index.js.map +1 -0
  483. package/dist/internal-plugins/partytown/package.json +12 -0
  484. package/dist/internal-plugins/partytown/proxy.d.ts +3 -0
  485. package/dist/internal-plugins/partytown/proxy.js +26 -0
  486. package/dist/internal-plugins/partytown/proxy.js.map +1 -0
  487. package/dist/internal-plugins/partytown/utils/get-forwards.d.ts +2 -0
  488. package/dist/internal-plugins/partytown/utils/get-forwards.js +8 -0
  489. package/dist/internal-plugins/partytown/utils/get-forwards.js.map +1 -0
  490. package/dist/internal-plugins/partytown/utils/inject-partytown-snippet.d.ts +2 -0
  491. package/dist/internal-plugins/partytown/utils/inject-partytown-snippet.js +28 -0
  492. package/dist/internal-plugins/partytown/utils/inject-partytown-snippet.js.map +1 -0
  493. package/dist/internal-plugins/prod-404-500/gatsby-node.js +50 -0
  494. package/dist/internal-plugins/prod-404-500/gatsby-node.js.map +1 -0
  495. package/dist/internal-plugins/prod-404-500/index.js +3 -0
  496. package/dist/internal-plugins/prod-404-500/index.js.map +1 -0
  497. package/dist/internal-plugins/prod-404-500/package.json +11 -0
  498. package/dist/internal-plugins/webpack-theme-component-shadowing/create-page.js +31 -0
  499. package/dist/internal-plugins/webpack-theme-component-shadowing/create-page.js.map +1 -0
  500. package/dist/internal-plugins/webpack-theme-component-shadowing/gatsby-node.js +31 -0
  501. package/dist/internal-plugins/webpack-theme-component-shadowing/gatsby-node.js.map +1 -0
  502. package/dist/internal-plugins/webpack-theme-component-shadowing/index.js +273 -0
  503. package/dist/internal-plugins/webpack-theme-component-shadowing/index.js.map +1 -0
  504. package/dist/internal-plugins/webpack-theme-component-shadowing/package.json +11 -0
  505. package/dist/internal.d.ts +5 -0
  506. package/dist/internal.js +34 -0
  507. package/dist/internal.js.map +1 -0
  508. package/dist/joi-schemas/joi.d.ts +5 -0
  509. package/dist/joi-schemas/joi.js +122 -0
  510. package/dist/joi-schemas/joi.js.map +1 -0
  511. package/dist/query/error-parser.d.ts +19 -0
  512. package/dist/query/error-parser.js +163 -0
  513. package/dist/query/error-parser.js.map +1 -0
  514. package/dist/query/file-parser.js +584 -0
  515. package/dist/query/file-parser.js.map +1 -0
  516. package/dist/query/graphql-errors-codeframe.d.ts +1 -0
  517. package/dist/query/graphql-errors-codeframe.js +20 -0
  518. package/dist/query/graphql-errors-codeframe.js.map +1 -0
  519. package/dist/query/graphql-errors.js +278 -0
  520. package/dist/query/graphql-errors.js.map +1 -0
  521. package/dist/query/graphql-runner.d.ts +39 -0
  522. package/dist/query/graphql-runner.js +221 -0
  523. package/dist/query/graphql-runner.js.map +1 -0
  524. package/dist/query/graphql-span-tracer.d.ts +19 -0
  525. package/dist/query/graphql-span-tracer.js +63 -0
  526. package/dist/query/graphql-span-tracer.js.map +1 -0
  527. package/dist/query/index.d.ts +32 -0
  528. package/dist/query/index.js +301 -0
  529. package/dist/query/index.js.map +1 -0
  530. package/dist/query/query-compiler.js +433 -0
  531. package/dist/query/query-compiler.js.map +1 -0
  532. package/dist/query/query-runner.d.ts +13 -0
  533. package/dist/query/query-runner.js +176 -0
  534. package/dist/query/query-runner.js.map +1 -0
  535. package/dist/query/query-watcher.d.ts +17 -0
  536. package/dist/query/query-watcher.js +250 -0
  537. package/dist/query/query-watcher.js.map +1 -0
  538. package/dist/query/transform-document.d.ts +6 -0
  539. package/dist/query/transform-document.js +131 -0
  540. package/dist/query/transform-document.js.map +1 -0
  541. package/dist/query/types.d.ts +35 -0
  542. package/dist/query/types.js +4 -0
  543. package/dist/query/types.js.map +1 -0
  544. package/dist/query/utils.d.ts +4 -0
  545. package/dist/query/utils.js +20 -0
  546. package/dist/query/utils.js.map +1 -0
  547. package/dist/redux/actions/add-page-dependency.d.ts +7 -0
  548. package/dist/redux/actions/add-page-dependency.js +52 -0
  549. package/dist/redux/actions/add-page-dependency.js.map +1 -0
  550. package/dist/redux/actions/index.d.ts +16 -0
  551. package/dist/redux/actions/index.js +21 -0
  552. package/dist/redux/actions/index.js.map +1 -0
  553. package/dist/redux/actions/internal.d.ts +124 -0
  554. package/dist/redux/actions/internal.js +394 -0
  555. package/dist/redux/actions/internal.js.map +1 -0
  556. package/dist/redux/actions/public.js +1354 -0
  557. package/dist/redux/actions/public.js.map +1 -0
  558. package/dist/redux/actions/restricted.d.ts +332 -0
  559. package/dist/redux/actions/restricted.js +521 -0
  560. package/dist/redux/actions/restricted.js.map +1 -0
  561. package/dist/redux/index.d.ts +20 -0
  562. package/dist/redux/index.js +125 -0
  563. package/dist/redux/index.js.map +1 -0
  564. package/dist/redux/persist.d.ts +5 -0
  565. package/dist/redux/persist.js +191 -0
  566. package/dist/redux/persist.js.map +1 -0
  567. package/dist/redux/plugin-runner.d.ts +1 -0
  568. package/dist/redux/plugin-runner.js +45 -0
  569. package/dist/redux/plugin-runner.js.map +1 -0
  570. package/dist/redux/reducers/adapter.d.ts +6 -0
  571. package/dist/redux/reducers/adapter.js +22 -0
  572. package/dist/redux/reducers/adapter.js.map +1 -0
  573. package/dist/redux/reducers/babelrc.d.ts +9 -0
  574. package/dist/redux/reducers/babelrc.js +104 -0
  575. package/dist/redux/reducers/babelrc.js.map +1 -0
  576. package/dist/redux/reducers/components-using-slices.d.ts +2 -0
  577. package/dist/redux/reducers/components-using-slices.js +15 -0
  578. package/dist/redux/reducers/components-using-slices.js.map +1 -0
  579. package/dist/redux/reducers/components.d.ts +2 -0
  580. package/dist/redux/reducers/components.js +104 -0
  581. package/dist/redux/reducers/components.js.map +1 -0
  582. package/dist/redux/reducers/config.d.ts +2 -0
  583. package/dist/redux/reducers/config.js +16 -0
  584. package/dist/redux/reducers/config.js.map +1 -0
  585. package/dist/redux/reducers/definitions.d.ts +2 -0
  586. package/dist/redux/reducers/definitions.js +14 -0
  587. package/dist/redux/reducers/definitions.js.map +1 -0
  588. package/dist/redux/reducers/flattened-plugins.d.ts +17 -0
  589. package/dist/redux/reducers/flattened-plugins.js +14 -0
  590. package/dist/redux/reducers/flattened-plugins.js.map +1 -0
  591. package/dist/redux/reducers/functions.d.ts +2 -0
  592. package/dist/redux/reducers/functions.js +14 -0
  593. package/dist/redux/reducers/functions.js.map +1 -0
  594. package/dist/redux/reducers/html.d.ts +25 -0
  595. package/dist/redux/reducers/html.js +384 -0
  596. package/dist/redux/reducers/html.js.map +1 -0
  597. package/dist/redux/reducers/index.d.ts +45 -0
  598. package/dist/redux/reducers/index.js +86 -0
  599. package/dist/redux/reducers/index.js.map +1 -0
  600. package/dist/redux/reducers/inference-metadata.d.ts +7 -0
  601. package/dist/redux/reducers/inference-metadata.js +174 -0
  602. package/dist/redux/reducers/inference-metadata.js.map +1 -0
  603. package/dist/redux/reducers/jobs.d.ts +5 -0
  604. package/dist/redux/reducers/jobs.js +65 -0
  605. package/dist/redux/reducers/jobs.js.map +1 -0
  606. package/dist/redux/reducers/jobsv2.d.ts +6 -0
  607. package/dist/redux/reducers/jobsv2.js +88 -0
  608. package/dist/redux/reducers/jobsv2.js.map +1 -0
  609. package/dist/redux/reducers/last-action.d.ts +2 -0
  610. package/dist/redux/reducers/last-action.js +7 -0
  611. package/dist/redux/reducers/last-action.js.map +1 -0
  612. package/dist/redux/reducers/node-manifest.d.ts +2 -0
  613. package/dist/redux/reducers/node-manifest.js +58 -0
  614. package/dist/redux/reducers/node-manifest.js.map +1 -0
  615. package/dist/redux/reducers/nodes-by-type.d.ts +2 -0
  616. package/dist/redux/reducers/nodes-by-type.js +53 -0
  617. package/dist/redux/reducers/nodes-by-type.js.map +1 -0
  618. package/dist/redux/reducers/nodes-touched.d.ts +3 -0
  619. package/dist/redux/reducers/nodes-touched.js +18 -0
  620. package/dist/redux/reducers/nodes-touched.js.map +1 -0
  621. package/dist/redux/reducers/nodes.d.ts +2 -0
  622. package/dist/redux/reducers/nodes.js +30 -0
  623. package/dist/redux/reducers/nodes.js.map +1 -0
  624. package/dist/redux/reducers/page-data-stats.d.ts +2 -0
  625. package/dist/redux/reducers/page-data-stats.js +15 -0
  626. package/dist/redux/reducers/page-data-stats.js.map +1 -0
  627. package/dist/redux/reducers/pages.d.ts +2 -0
  628. package/dist/redux/reducers/pages.js +43 -0
  629. package/dist/redux/reducers/pages.js.map +1 -0
  630. package/dist/redux/reducers/pending-page-data-writes.d.ts +5 -0
  631. package/dist/redux/reducers/pending-page-data-writes.js +66 -0
  632. package/dist/redux/reducers/pending-page-data-writes.js.map +1 -0
  633. package/dist/redux/reducers/program.d.ts +2 -0
  634. package/dist/redux/reducers/program.js +62 -0
  635. package/dist/redux/reducers/program.js.map +1 -0
  636. package/dist/redux/reducers/queries.d.ts +26 -0
  637. package/dist/redux/reducers/queries.js +403 -0
  638. package/dist/redux/reducers/queries.js.map +1 -0
  639. package/dist/redux/reducers/redirects.d.ts +2 -0
  640. package/dist/redux/reducers/redirects.js +39 -0
  641. package/dist/redux/reducers/redirects.js.map +1 -0
  642. package/dist/redux/reducers/remote-file-allowed-urls.d.ts +2 -0
  643. package/dist/redux/reducers/remote-file-allowed-urls.js +19 -0
  644. package/dist/redux/reducers/remote-file-allowed-urls.js.map +1 -0
  645. package/dist/redux/reducers/resolved-nodes.d.ts +2 -0
  646. package/dist/redux/reducers/resolved-nodes.js +45 -0
  647. package/dist/redux/reducers/resolved-nodes.js.map +1 -0
  648. package/dist/redux/reducers/schema-customization.d.ts +23 -0
  649. package/dist/redux/reducers/schema-customization.js +103 -0
  650. package/dist/redux/reducers/schema-customization.js.map +1 -0
  651. package/dist/redux/reducers/schema.d.ts +3 -0
  652. package/dist/redux/reducers/schema.js +17 -0
  653. package/dist/redux/reducers/schema.js.map +1 -0
  654. package/dist/redux/reducers/set-request-headers.d.ts +7 -0
  655. package/dist/redux/reducers/set-request-headers.js +24 -0
  656. package/dist/redux/reducers/set-request-headers.js.map +1 -0
  657. package/dist/redux/reducers/slices-by-template.d.ts +2 -0
  658. package/dist/redux/reducers/slices-by-template.js +16 -0
  659. package/dist/redux/reducers/slices-by-template.js.map +1 -0
  660. package/dist/redux/reducers/slices.d.ts +2 -0
  661. package/dist/redux/reducers/slices.js +22 -0
  662. package/dist/redux/reducers/slices.js.map +1 -0
  663. package/dist/redux/reducers/stateful-source-plugins.d.ts +5 -0
  664. package/dist/redux/reducers/stateful-source-plugins.js +20 -0
  665. package/dist/redux/reducers/stateful-source-plugins.js.map +1 -0
  666. package/dist/redux/reducers/static-queries-by-template.d.ts +2 -0
  667. package/dist/redux/reducers/static-queries-by-template.js +19 -0
  668. package/dist/redux/reducers/static-queries-by-template.js.map +1 -0
  669. package/dist/redux/reducers/static-query-components.d.ts +2 -0
  670. package/dist/redux/reducers/static-query-components.js +18 -0
  671. package/dist/redux/reducers/static-query-components.js.map +1 -0
  672. package/dist/redux/reducers/status.d.ts +7 -0
  673. package/dist/redux/reducers/status.js +57 -0
  674. package/dist/redux/reducers/status.js.map +1 -0
  675. package/dist/redux/reducers/telemetry.d.ts +2 -0
  676. package/dist/redux/reducers/telemetry.js +46 -0
  677. package/dist/redux/reducers/telemetry.js.map +1 -0
  678. package/dist/redux/reducers/type-owners.d.ts +5 -0
  679. package/dist/redux/reducers/type-owners.js +102 -0
  680. package/dist/redux/reducers/type-owners.js.map +1 -0
  681. package/dist/redux/reducers/visited-page.d.ts +2 -0
  682. package/dist/redux/reducers/visited-page.js +31 -0
  683. package/dist/redux/reducers/visited-page.js.map +1 -0
  684. package/dist/redux/reducers/webpack-compilation-hash.d.ts +2 -0
  685. package/dist/redux/reducers/webpack-compilation-hash.js +14 -0
  686. package/dist/redux/reducers/webpack-compilation-hash.js.map +1 -0
  687. package/dist/redux/reducers/webpack.d.ts +2 -0
  688. package/dist/redux/reducers/webpack.js +27 -0
  689. package/dist/redux/reducers/webpack.js.map +1 -0
  690. package/dist/redux/save-state.js +19 -0
  691. package/dist/redux/save-state.js.map +1 -0
  692. package/dist/redux/types.d.ts +1337 -0
  693. package/dist/redux/types.js +326 -0
  694. package/dist/redux/types.js.map +1 -0
  695. package/dist/schema/context.d.ts +14 -0
  696. package/dist/schema/context.js +38 -0
  697. package/dist/schema/context.js.map +1 -0
  698. package/dist/schema/extensions/index.js +205 -0
  699. package/dist/schema/extensions/index.js.map +1 -0
  700. package/dist/schema/graphql-engine/bootstrap.d.ts +2 -0
  701. package/dist/schema/graphql-engine/bootstrap.js +12 -0
  702. package/dist/schema/graphql-engine/bootstrap.js.map +1 -0
  703. package/dist/schema/graphql-engine/bundle-webpack.d.ts +5 -0
  704. package/dist/schema/graphql-engine/bundle-webpack.js +446 -0
  705. package/dist/schema/graphql-engine/bundle-webpack.js.map +1 -0
  706. package/dist/schema/graphql-engine/entry.d.ts +23 -0
  707. package/dist/schema/graphql-engine/entry.js +204 -0
  708. package/dist/schema/graphql-engine/entry.js.map +1 -0
  709. package/dist/schema/graphql-engine/lmdb-bundling-patch.d.ts +1 -0
  710. package/dist/schema/graphql-engine/lmdb-bundling-patch.js +72 -0
  711. package/dist/schema/graphql-engine/lmdb-bundling-patch.js.map +1 -0
  712. package/dist/schema/graphql-engine/platform-and-arch-check.d.ts +0 -0
  713. package/dist/schema/graphql-engine/platform-and-arch-check.js +6 -0
  714. package/dist/schema/graphql-engine/platform-and-arch-check.js.map +1 -0
  715. package/dist/schema/graphql-engine/print-plugins.d.ts +2 -0
  716. package/dist/schema/graphql-engine/print-plugins.js +145 -0
  717. package/dist/schema/graphql-engine/print-plugins.js.map +1 -0
  718. package/dist/schema/graphql-engine/sharp-bundling-patch.d.ts +1 -0
  719. package/dist/schema/graphql-engine/sharp-bundling-patch.js +8 -0
  720. package/dist/schema/graphql-engine/sharp-bundling-patch.js.map +1 -0
  721. package/dist/schema/graphql-engine/shims/gatsby-sharp.js +10 -0
  722. package/dist/schema/graphql-engine/shims/gatsby-sharp.js.map +1 -0
  723. package/dist/schema/graphql-engine/shims/no-op-module.js +3 -0
  724. package/dist/schema/graphql-engine/shims/no-op-module.js.map +1 -0
  725. package/dist/schema/graphql-engine/shims/ts-node.js +17 -0
  726. package/dist/schema/graphql-engine/shims/ts-node.js.map +1 -0
  727. package/dist/schema/graphql-engine/standalone-regenerate.d.ts +2 -0
  728. package/dist/schema/graphql-engine/standalone-regenerate.js +73 -0
  729. package/dist/schema/graphql-engine/standalone-regenerate.js.map +1 -0
  730. package/dist/schema/index.js +189 -0
  731. package/dist/schema/index.js.map +1 -0
  732. package/dist/schema/infer/add-inferred-fields.js +413 -0
  733. package/dist/schema/infer/add-inferred-fields.js.map +1 -0
  734. package/dist/schema/infer/build-example-data.d.ts +5 -0
  735. package/dist/schema/infer/build-example-data.js +199 -0
  736. package/dist/schema/infer/build-example-data.js.map +1 -0
  737. package/dist/schema/infer/index.js +121 -0
  738. package/dist/schema/infer/index.js.map +1 -0
  739. package/dist/schema/infer/inference-metadata.d.ts +72 -0
  740. package/dist/schema/infer/inference-metadata.js +280 -0
  741. package/dist/schema/infer/inference-metadata.js.map +1 -0
  742. package/dist/schema/infer/is-file.d.ts +1 -0
  743. package/dist/schema/infer/is-file.js +65 -0
  744. package/dist/schema/infer/is-file.js.map +1 -0
  745. package/dist/schema/infer/type-conflict-reporter.d.ts +28 -0
  746. package/dist/schema/infer/type-conflict-reporter.js +104 -0
  747. package/dist/schema/infer/type-conflict-reporter.js.map +1 -0
  748. package/dist/schema/node-model.js +784 -0
  749. package/dist/schema/node-model.js.map +1 -0
  750. package/dist/schema/print.d.ts +20 -0
  751. package/dist/schema/print.js +279 -0
  752. package/dist/schema/print.js.map +1 -0
  753. package/dist/schema/resolvers.d.ts +40 -0
  754. package/dist/schema/resolvers.js +569 -0
  755. package/dist/schema/resolvers.js.map +1 -0
  756. package/dist/schema/schema-composer.d.ts +3 -0
  757. package/dist/schema/schema-composer.js +31 -0
  758. package/dist/schema/schema-composer.js.map +1 -0
  759. package/dist/schema/schema.js +1295 -0
  760. package/dist/schema/schema.js.map +1 -0
  761. package/dist/schema/type-definitions.d.ts +47 -0
  762. package/dist/schema/type-definitions.js +4 -0
  763. package/dist/schema/type-definitions.js.map +1 -0
  764. package/dist/schema/types/built-in-types.d.ts +5 -0
  765. package/dist/schema/types/built-in-types.js +139 -0
  766. package/dist/schema/types/built-in-types.js.map +1 -0
  767. package/dist/schema/types/date.d.ts +37 -0
  768. package/dist/schema/types/date.js +225 -0
  769. package/dist/schema/types/date.js.map +1 -0
  770. package/dist/schema/types/derived-types.d.ts +45 -0
  771. package/dist/schema/types/derived-types.js +108 -0
  772. package/dist/schema/types/derived-types.js.map +1 -0
  773. package/dist/schema/types/filter.d.ts +12 -0
  774. package/dist/schema/types/filter.js +105 -0
  775. package/dist/schema/types/filter.js.map +1 -0
  776. package/dist/schema/types/media.d.ts +2 -0
  777. package/dist/schema/types/media.js +10 -0
  778. package/dist/schema/types/media.js.map +1 -0
  779. package/dist/schema/types/node-interface.d.ts +14 -0
  780. package/dist/schema/types/node-interface.js +103 -0
  781. package/dist/schema/types/node-interface.js.map +1 -0
  782. package/dist/schema/types/pagination.d.ts +16 -0
  783. package/dist/schema/types/pagination.js +198 -0
  784. package/dist/schema/types/pagination.js.map +1 -0
  785. package/dist/schema/types/remote-file-interface.d.ts +3 -0
  786. package/dist/schema/types/remote-file-interface.js +34 -0
  787. package/dist/schema/types/remote-file-interface.js.map +1 -0
  788. package/dist/schema/types/sort.d.ts +24 -0
  789. package/dist/schema/types/sort.js +178 -0
  790. package/dist/schema/types/sort.js.map +1 -0
  791. package/dist/schema/types/type-builders.d.ts +36 -0
  792. package/dist/schema/types/type-builders.js +61 -0
  793. package/dist/schema/types/type-builders.js.map +1 -0
  794. package/dist/schema/types/type-defs.js +86 -0
  795. package/dist/schema/types/type-defs.js.map +1 -0
  796. package/dist/schema/types/utils.d.ts +33 -0
  797. package/dist/schema/types/utils.js +153 -0
  798. package/dist/schema/types/utils.js.map +1 -0
  799. package/dist/schema/utils.d.ts +28 -0
  800. package/dist/schema/utils.js +149 -0
  801. package/dist/schema/utils.js.map +1 -0
  802. package/dist/services/build-schema.d.ts +2 -0
  803. package/dist/services/build-schema.js +24 -0
  804. package/dist/services/build-schema.js.map +1 -0
  805. package/dist/services/calculate-dirty-queries.d.ts +5 -0
  806. package/dist/services/calculate-dirty-queries.js +44 -0
  807. package/dist/services/calculate-dirty-queries.js.map +1 -0
  808. package/dist/services/create-pages.d.ts +5 -0
  809. package/dist/services/create-pages.js +108 -0
  810. package/dist/services/create-pages.js.map +1 -0
  811. package/dist/services/customize-schema.d.ts +2 -0
  812. package/dist/services/customize-schema.js +26 -0
  813. package/dist/services/customize-schema.js.map +1 -0
  814. package/dist/services/extract-queries.d.ts +2 -0
  815. package/dist/services/extract-queries.js +24 -0
  816. package/dist/services/extract-queries.js.map +1 -0
  817. package/dist/services/graphql-typegen.d.ts +2 -0
  818. package/dist/services/graphql-typegen.js +46 -0
  819. package/dist/services/graphql-typegen.js.map +1 -0
  820. package/dist/services/index.d.ts +19 -0
  821. package/dist/services/index.js +68 -0
  822. package/dist/services/index.js.map +1 -0
  823. package/dist/services/initialize.d.ts +14 -0
  824. package/dist/services/initialize.js +519 -0
  825. package/dist/services/initialize.js.map +1 -0
  826. package/dist/services/listen-for-mutations.d.ts +2 -0
  827. package/dist/services/listen-for-mutations.js +59 -0
  828. package/dist/services/listen-for-mutations.js.map +1 -0
  829. package/dist/services/listen-to-webpack.d.ts +3 -0
  830. package/dist/services/listen-to-webpack.js +17 -0
  831. package/dist/services/listen-to-webpack.js.map +1 -0
  832. package/dist/services/post-bootstrap.d.ts +2 -0
  833. package/dist/services/post-bootstrap.js +29 -0
  834. package/dist/services/post-bootstrap.js.map +1 -0
  835. package/dist/services/recompile.d.ts +3 -0
  836. package/dist/services/recompile.js +67 -0
  837. package/dist/services/recompile.js.map +1 -0
  838. package/dist/services/run-mutation-batch.d.ts +2 -0
  839. package/dist/services/run-mutation-batch.js +12 -0
  840. package/dist/services/run-mutation-batch.js.map +1 -0
  841. package/dist/services/run-page-queries.d.ts +2 -0
  842. package/dist/services/run-page-queries.js +38 -0
  843. package/dist/services/run-page-queries.js.map +1 -0
  844. package/dist/services/run-slice-queries.d.ts +2 -0
  845. package/dist/services/run-slice-queries.js +40 -0
  846. package/dist/services/run-slice-queries.js.map +1 -0
  847. package/dist/services/run-static-queries.d.ts +2 -0
  848. package/dist/services/run-static-queries.js +38 -0
  849. package/dist/services/run-static-queries.js.map +1 -0
  850. package/dist/services/source-nodes.d.ts +5 -0
  851. package/dist/services/source-nodes.js +47 -0
  852. package/dist/services/source-nodes.js.map +1 -0
  853. package/dist/services/start-webpack-server.d.ts +9 -0
  854. package/dist/services/start-webpack-server.js +103 -0
  855. package/dist/services/start-webpack-server.js.map +1 -0
  856. package/dist/services/types.d.ts +53 -0
  857. package/dist/services/types.js +4 -0
  858. package/dist/services/types.js.map +1 -0
  859. package/dist/services/write-out-redirects.d.ts +2 -0
  860. package/dist/services/write-out-redirects.js +20 -0
  861. package/dist/services/write-out-redirects.js.map +1 -0
  862. package/dist/services/write-out-requires.d.ts +2 -0
  863. package/dist/services/write-out-requires.js +27 -0
  864. package/dist/services/write-out-requires.js.map +1 -0
  865. package/dist/state-machines/data-layer/actions.d.ts +11 -0
  866. package/dist/state-machines/data-layer/actions.js +38 -0
  867. package/dist/state-machines/data-layer/actions.js.map +1 -0
  868. package/dist/state-machines/data-layer/index.d.ts +24 -0
  869. package/dist/state-machines/data-layer/index.js +152 -0
  870. package/dist/state-machines/data-layer/index.js.map +1 -0
  871. package/dist/state-machines/data-layer/services.d.ts +3 -0
  872. package/dist/state-machines/data-layer/services.js +14 -0
  873. package/dist/state-machines/data-layer/services.js.map +1 -0
  874. package/dist/state-machines/data-layer/types.d.ts +27 -0
  875. package/dist/state-machines/data-layer/types.js +4 -0
  876. package/dist/state-machines/data-layer/types.js.map +1 -0
  877. package/dist/state-machines/develop/actions.d.ts +68 -0
  878. package/dist/state-machines/develop/actions.js +259 -0
  879. package/dist/state-machines/develop/actions.js.map +1 -0
  880. package/dist/state-machines/develop/index.d.ts +5 -0
  881. package/dist/state-machines/develop/index.js +372 -0
  882. package/dist/state-machines/develop/index.js.map +1 -0
  883. package/dist/state-machines/develop/services.d.ts +3 -0
  884. package/dist/state-machines/develop/services.js +22 -0
  885. package/dist/state-machines/develop/services.js.map +1 -0
  886. package/dist/state-machines/index.d.ts +7 -0
  887. package/dist/state-machines/index.js +21 -0
  888. package/dist/state-machines/index.js.map +1 -0
  889. package/dist/state-machines/query-running/actions.d.ts +9 -0
  890. package/dist/state-machines/query-running/actions.js +55 -0
  891. package/dist/state-machines/query-running/actions.js.map +1 -0
  892. package/dist/state-machines/query-running/index.d.ts +7 -0
  893. package/dist/state-machines/query-running/index.js +142 -0
  894. package/dist/state-machines/query-running/index.js.map +1 -0
  895. package/dist/state-machines/query-running/services.d.ts +3 -0
  896. package/dist/state-machines/query-running/services.js +17 -0
  897. package/dist/state-machines/query-running/services.js.map +1 -0
  898. package/dist/state-machines/query-running/types.d.ts +26 -0
  899. package/dist/state-machines/query-running/types.js +4 -0
  900. package/dist/state-machines/query-running/types.js.map +1 -0
  901. package/dist/state-machines/waiting/actions.d.ts +11 -0
  902. package/dist/state-machines/waiting/actions.js +36 -0
  903. package/dist/state-machines/waiting/actions.js.map +1 -0
  904. package/dist/state-machines/waiting/index.d.ts +12 -0
  905. package/dist/state-machines/waiting/index.js +145 -0
  906. package/dist/state-machines/waiting/index.js.map +1 -0
  907. package/dist/state-machines/waiting/services.d.ts +3 -0
  908. package/dist/state-machines/waiting/services.js +10 -0
  909. package/dist/state-machines/waiting/services.js.map +1 -0
  910. package/dist/state-machines/waiting/types.d.ts +12 -0
  911. package/dist/state-machines/waiting/types.js +4 -0
  912. package/dist/state-machines/waiting/types.js.map +1 -0
  913. package/dist/types.d.ts +9 -0
  914. package/dist/types.js +4 -0
  915. package/dist/types.js.map +1 -0
  916. package/dist/utils/adapter/constants.d.ts +5 -0
  917. package/dist/utils/adapter/constants.js +31 -0
  918. package/dist/utils/adapter/constants.js.map +1 -0
  919. package/dist/utils/adapter/create-headers.d.ts +10 -0
  920. package/dist/utils/adapter/create-headers.js +94 -0
  921. package/dist/utils/adapter/create-headers.js.map +1 -0
  922. package/dist/utils/adapter/get-route-path.d.ts +3 -0
  923. package/dist/utils/adapter/get-route-path.js +22 -0
  924. package/dist/utils/adapter/get-route-path.js.map +1 -0
  925. package/dist/utils/adapter/init.d.ts +3 -0
  926. package/dist/utils/adapter/init.js +183 -0
  927. package/dist/utils/adapter/init.js.map +1 -0
  928. package/dist/utils/adapter/manager.d.ts +9 -0
  929. package/dist/utils/adapter/manager.js +554 -0
  930. package/dist/utils/adapter/manager.js.map +1 -0
  931. package/dist/utils/adapter/no-op-manager.d.ts +2 -0
  932. package/dist/utils/adapter/no-op-manager.js +18 -0
  933. package/dist/utils/adapter/no-op-manager.js.map +1 -0
  934. package/dist/utils/adapter/types.d.ts +282 -0
  935. package/dist/utils/adapter/types.js +4 -0
  936. package/dist/utils/adapter/types.js.map +1 -0
  937. package/dist/utils/api-browser-docs.d.ts +272 -0
  938. package/dist/utils/api-browser-docs.js +318 -0
  939. package/dist/utils/api-browser-docs.js.map +1 -0
  940. package/dist/utils/api-node-docs.d.ts +470 -0
  941. package/dist/utils/api-node-docs.js +519 -0
  942. package/dist/utils/api-node-docs.js.map +1 -0
  943. package/dist/utils/api-node-helpers-docs.js +322 -0
  944. package/dist/utils/api-node-helpers-docs.js.map +1 -0
  945. package/dist/utils/api-runner-error-parser.d.ts +5 -0
  946. package/dist/utils/api-runner-error-parser.js +63 -0
  947. package/dist/utils/api-runner-error-parser.js.map +1 -0
  948. package/dist/utils/api-runner-node.js +663 -0
  949. package/dist/utils/api-runner-node.js.map +1 -0
  950. package/dist/utils/app-data.d.ts +2 -0
  951. package/dist/utils/app-data.js +15 -0
  952. package/dist/utils/app-data.js.map +1 -0
  953. package/dist/utils/assert-store.d.ts +2 -0
  954. package/dist/utils/assert-store.js +12 -0
  955. package/dist/utils/assert-store.js.map +1 -0
  956. package/dist/utils/babel/babel-module-exports-helpers.d.ts +22 -0
  957. package/dist/utils/babel/babel-module-exports-helpers.js +48 -0
  958. package/dist/utils/babel/babel-module-exports-helpers.js.map +1 -0
  959. package/dist/utils/babel/babel-plugin-add-slice-placeholder-location.d.ts +10 -0
  960. package/dist/utils/babel/babel-plugin-add-slice-placeholder-location.js +48 -0
  961. package/dist/utils/babel/babel-plugin-add-slice-placeholder-location.js.map +1 -0
  962. package/dist/utils/babel/babel-plugin-remove-api.d.ts +5 -0
  963. package/dist/utils/babel/babel-plugin-remove-api.js +148 -0
  964. package/dist/utils/babel/babel-plugin-remove-api.js.map +1 -0
  965. package/dist/utils/babel/find-slices.d.ts +8 -0
  966. package/dist/utils/babel/find-slices.js +68 -0
  967. package/dist/utils/babel/find-slices.js.map +1 -0
  968. package/dist/utils/babel-loader-helpers.d.ts +19 -0
  969. package/dist/utils/babel-loader-helpers.js +158 -0
  970. package/dist/utils/babel-loader-helpers.js.map +1 -0
  971. package/dist/utils/babel-loader.d.ts +8 -0
  972. package/dist/utils/babel-loader.js +158 -0
  973. package/dist/utils/babel-loader.js.map +1 -0
  974. package/dist/utils/babel-parse-to-ast.d.ts +4 -0
  975. package/dist/utils/babel-parse-to-ast.js +34 -0
  976. package/dist/utils/babel-parse-to-ast.js.map +1 -0
  977. package/dist/utils/batcher.d.ts +15 -0
  978. package/dist/utils/batcher.js +46 -0
  979. package/dist/utils/batcher.js.map +1 -0
  980. package/dist/utils/browserslist.d.ts +2 -0
  981. package/dist/utils/browserslist.js +38 -0
  982. package/dist/utils/browserslist.js.map +1 -0
  983. package/dist/utils/cache-lmdb.d.ts +19 -0
  984. package/dist/utils/cache-lmdb.js +88 -0
  985. package/dist/utils/cache-lmdb.js.map +1 -0
  986. package/dist/utils/cache.d.ts +17 -0
  987. package/dist/utils/cache.js +77 -0
  988. package/dist/utils/cache.js.map +1 -0
  989. package/dist/utils/call-deferred-api.d.ts +8 -0
  990. package/dist/utils/call-deferred-api.js +35 -0
  991. package/dist/utils/call-deferred-api.js.map +1 -0
  992. package/dist/utils/changed-pages.d.ts +6 -0
  993. package/dist/utils/changed-pages.js +45 -0
  994. package/dist/utils/changed-pages.js.map +1 -0
  995. package/dist/utils/clear-require-cache.d.ts +1 -0
  996. package/dist/utils/clear-require-cache.js +24 -0
  997. package/dist/utils/clear-require-cache.js.map +1 -0
  998. package/dist/utils/client-assets-for-template.d.ts +9 -0
  999. package/dist/utils/client-assets-for-template.js +141 -0
  1000. package/dist/utils/client-assets-for-template.js.map +1 -0
  1001. package/dist/utils/create-node-id.d.ts +24 -0
  1002. package/dist/utils/create-node-id.js +67 -0
  1003. package/dist/utils/create-node-id.js.map +1 -0
  1004. package/dist/utils/create-schema-customization.d.ts +6 -0
  1005. package/dist/utils/create-schema-customization.js +25 -0
  1006. package/dist/utils/create-schema-customization.js.map +1 -0
  1007. package/dist/utils/detect-node-mutations.d.ts +4 -0
  1008. package/dist/utils/detect-node-mutations.js +134 -0
  1009. package/dist/utils/detect-node-mutations.js.map +1 -0
  1010. package/dist/utils/detect-port-in-use-and-prompt.d.ts +1 -0
  1011. package/dist/utils/detect-port-in-use-and-prompt.js +31 -0
  1012. package/dist/utils/detect-port-in-use-and-prompt.js.map +1 -0
  1013. package/dist/utils/dev-ssr/parse-error.d.ts +22 -0
  1014. package/dist/utils/dev-ssr/parse-error.js +119 -0
  1015. package/dist/utils/dev-ssr/parse-error.js.map +1 -0
  1016. package/dist/utils/dev-ssr/render-dev-html-child.d.ts +13 -0
  1017. package/dist/utils/dev-ssr/render-dev-html-child.js +47 -0
  1018. package/dist/utils/dev-ssr/render-dev-html-child.js.map +1 -0
  1019. package/dist/utils/dev-ssr/render-dev-html.d.ts +23 -0
  1020. package/dist/utils/dev-ssr/render-dev-html.js +227 -0
  1021. package/dist/utils/dev-ssr/render-dev-html.js.map +1 -0
  1022. package/dist/utils/develop-preload-headers.d.ts +7 -0
  1023. package/dist/utils/develop-preload-headers.js +64 -0
  1024. package/dist/utils/develop-preload-headers.js.map +1 -0
  1025. package/dist/utils/did-you-mean.d.ts +3 -0
  1026. package/dist/utils/did-you-mean.js +21 -0
  1027. package/dist/utils/did-you-mean.js.map +1 -0
  1028. package/dist/utils/engine-context.d.ts +5 -0
  1029. package/dist/utils/engine-context.js +19 -0
  1030. package/dist/utils/engine-context.js.map +1 -0
  1031. package/dist/utils/engines-fs-provider.d.ts +9 -0
  1032. package/dist/utils/engines-fs-provider.js +24 -0
  1033. package/dist/utils/engines-fs-provider.js.map +1 -0
  1034. package/dist/utils/engines-helpers.d.ts +10 -0
  1035. package/dist/utils/engines-helpers.js +48 -0
  1036. package/dist/utils/engines-helpers.js.map +1 -0
  1037. package/dist/utils/ensure-file-content.d.ts +1 -0
  1038. package/dist/utils/ensure-file-content.js +19 -0
  1039. package/dist/utils/ensure-file-content.js.map +1 -0
  1040. package/dist/utils/eslint/required.js +10 -0
  1041. package/dist/utils/eslint/required.js.map +1 -0
  1042. package/dist/utils/eslint-config.d.ts +3 -0
  1043. package/dist/utils/eslint-config.js +136 -0
  1044. package/dist/utils/eslint-config.js.map +1 -0
  1045. package/dist/utils/eslint-rules/limited-exports-page-templates.d.ts +1 -0
  1046. package/dist/utils/eslint-rules/limited-exports-page-templates.js +183 -0
  1047. package/dist/utils/eslint-rules/limited-exports-page-templates.js.map +1 -0
  1048. package/dist/utils/eslint-rules/no-anonymous-exports-page-templates.d.ts +1 -0
  1049. package/dist/utils/eslint-rules/no-anonymous-exports-page-templates.js +75 -0
  1050. package/dist/utils/eslint-rules/no-anonymous-exports-page-templates.js.map +1 -0
  1051. package/dist/utils/eslint-rules-helpers.d.ts +4 -0
  1052. package/dist/utils/eslint-rules-helpers.js +22 -0
  1053. package/dist/utils/eslint-rules-helpers.js.map +1 -0
  1054. package/dist/utils/express-middlewares.d.ts +4 -0
  1055. package/dist/utils/express-middlewares.js +57 -0
  1056. package/dist/utils/express-middlewares.js.map +1 -0
  1057. package/dist/utils/extract-undefined-global.d.ts +4 -0
  1058. package/dist/utils/extract-undefined-global.js +15 -0
  1059. package/dist/utils/extract-undefined-global.js.map +1 -0
  1060. package/dist/utils/fast-refresh-module.d.ts +22 -0
  1061. package/dist/utils/fast-refresh-module.js +53 -0
  1062. package/dist/utils/fast-refresh-module.js.map +1 -0
  1063. package/dist/utils/feedback.d.ts +5 -0
  1064. package/dist/utils/feedback.js +159 -0
  1065. package/dist/utils/feedback.js.map +1 -0
  1066. package/dist/utils/find-page-by-path.d.ts +2 -0
  1067. package/dist/utils/find-page-by-path.js +96 -0
  1068. package/dist/utils/find-page-by-path.js.map +1 -0
  1069. package/dist/utils/flags.d.ts +41 -0
  1070. package/dist/utils/flags.js +92 -0
  1071. package/dist/utils/flags.js.map +1 -0
  1072. package/dist/utils/gatsby-cloud-config.d.ts +4 -0
  1073. package/dist/utils/gatsby-cloud-config.js +15 -0
  1074. package/dist/utils/gatsby-cloud-config.js.map +1 -0
  1075. package/dist/utils/gatsby-dependents.d.ts +8 -0
  1076. package/dist/utils/gatsby-dependents.js +51 -0
  1077. package/dist/utils/gatsby-dependents.js.map +1 -0
  1078. package/dist/utils/gatsby-webpack-stats-extractor.d.ts +7 -0
  1079. package/dist/utils/gatsby-webpack-stats-extractor.js +136 -0
  1080. package/dist/utils/gatsby-webpack-stats-extractor.js.map +1 -0
  1081. package/dist/utils/gatsby-webpack-virtual-modules.d.ts +6 -0
  1082. package/dist/utils/gatsby-webpack-virtual-modules.js +45 -0
  1083. package/dist/utils/gatsby-webpack-virtual-modules.js.map +1 -0
  1084. package/dist/utils/get-cache.d.ts +2 -0
  1085. package/dist/utils/get-cache.js +18 -0
  1086. package/dist/utils/get-cache.js.map +1 -0
  1087. package/dist/utils/get-latest-gatsby-files.d.ts +8 -0
  1088. package/dist/utils/get-latest-gatsby-files.js +93 -0
  1089. package/dist/utils/get-latest-gatsby-files.js.map +1 -0
  1090. package/dist/utils/get-page-data.d.ts +3 -0
  1091. package/dist/utils/get-page-data.js +88 -0
  1092. package/dist/utils/get-page-data.js.map +1 -0
  1093. package/dist/utils/get-public-path.d.ts +5 -0
  1094. package/dist/utils/get-public-path.js +19 -0
  1095. package/dist/utils/get-public-path.js.map +1 -0
  1096. package/dist/utils/get-server-data.d.ts +19 -0
  1097. package/dist/utils/get-server-data.js +29 -0
  1098. package/dist/utils/get-server-data.js.map +1 -0
  1099. package/dist/utils/get-ssl-cert.d.ts +9 -0
  1100. package/dist/utils/get-ssl-cert.js +95 -0
  1101. package/dist/utils/get-ssl-cert.js.map +1 -0
  1102. package/dist/utils/get-static-dir.d.ts +12 -0
  1103. package/dist/utils/get-static-dir.js +60 -0
  1104. package/dist/utils/get-static-dir.js.map +1 -0
  1105. package/dist/utils/get-value-at.d.ts +1 -0
  1106. package/dist/utils/get-value-at.js +22 -0
  1107. package/dist/utils/get-value-at.js.map +1 -0
  1108. package/dist/utils/graphql-typegen/file-writes.d.ts +5 -0
  1109. package/dist/utils/graphql-typegen/file-writes.js +63 -0
  1110. package/dist/utils/graphql-typegen/file-writes.js.map +1 -0
  1111. package/dist/utils/graphql-typegen/ts-codegen.d.ts +5 -0
  1112. package/dist/utils/graphql-typegen/ts-codegen.js +136 -0
  1113. package/dist/utils/graphql-typegen/ts-codegen.js.map +1 -0
  1114. package/dist/utils/graphql-typegen/utils.d.ts +11 -0
  1115. package/dist/utils/graphql-typegen/utils.js +70 -0
  1116. package/dist/utils/graphql-typegen/utils.js.map +1 -0
  1117. package/dist/utils/handle-flags.d.ts +8 -0
  1118. package/dist/utils/handle-flags.js +212 -0
  1119. package/dist/utils/handle-flags.js.map +1 -0
  1120. package/dist/utils/import-gatsby-plugin.d.ts +11 -0
  1121. package/dist/utils/import-gatsby-plugin.js +40 -0
  1122. package/dist/utils/import-gatsby-plugin.js.map +1 -0
  1123. package/dist/utils/is-32-bit-integer.d.ts +1 -0
  1124. package/dist/utils/is-32-bit-integer.js +8 -0
  1125. package/dist/utils/is-32-bit-integer.js.map +1 -0
  1126. package/dist/utils/is-near-match.d.ts +1 -0
  1127. package/dist/utils/is-near-match.js +10 -0
  1128. package/dist/utils/is-near-match.js.map +1 -0
  1129. package/dist/utils/jobs/manager.d.ts +34 -0
  1130. package/dist/utils/jobs/manager.js +313 -0
  1131. package/dist/utils/jobs/manager.js.map +1 -0
  1132. package/dist/utils/jobs/types.d.ts +63 -0
  1133. package/dist/utils/jobs/types.js +32 -0
  1134. package/dist/utils/jobs/types.js.map +1 -0
  1135. package/dist/utils/jobs/worker-messaging.d.ts +10 -0
  1136. package/dist/utils/jobs/worker-messaging.js +114 -0
  1137. package/dist/utils/jobs/worker-messaging.js.map +1 -0
  1138. package/dist/utils/js-chunk-names.d.ts +1 -0
  1139. package/dist/utils/js-chunk-names.js +72 -0
  1140. package/dist/utils/js-chunk-names.js.map +1 -0
  1141. package/dist/utils/loading-indicator.d.ts +3 -0
  1142. package/dist/utils/loading-indicator.js +44 -0
  1143. package/dist/utils/loading-indicator.js.map +1 -0
  1144. package/dist/utils/local-eslint-config-finder.d.ts +1 -0
  1145. package/dist/utils/local-eslint-config-finder.js +31 -0
  1146. package/dist/utils/local-eslint-config-finder.js.map +1 -0
  1147. package/dist/utils/merge-gatsby-config.d.ts +28 -0
  1148. package/dist/utils/merge-gatsby-config.js +43 -0
  1149. package/dist/utils/merge-gatsby-config.js.map +1 -0
  1150. package/dist/utils/mett.d.ts +10 -0
  1151. package/dist/utils/mett.js +42 -0
  1152. package/dist/utils/mett.js.map +1 -0
  1153. package/dist/utils/module-resolver.d.ts +2 -0
  1154. package/dist/utils/module-resolver.js +24 -0
  1155. package/dist/utils/module-resolver.js.map +1 -0
  1156. package/dist/utils/node-manifest.d.ts +46 -0
  1157. package/dist/utils/node-manifest.js +367 -0
  1158. package/dist/utils/node-manifest.js.map +1 -0
  1159. package/dist/utils/nodes.d.ts +13 -0
  1160. package/dist/utils/nodes.js +62 -0
  1161. package/dist/utils/nodes.js.map +1 -0
  1162. package/dist/utils/normalize-path.d.ts +2 -0
  1163. package/dist/utils/normalize-path.js +11 -0
  1164. package/dist/utils/normalize-path.js.map +1 -0
  1165. package/dist/utils/page-data-helpers.d.ts +23 -0
  1166. package/dist/utils/page-data-helpers.js +76 -0
  1167. package/dist/utils/page-data-helpers.js.map +1 -0
  1168. package/dist/utils/page-data.d.ts +39 -0
  1169. package/dist/utils/page-data.js +366 -0
  1170. package/dist/utils/page-data.js.map +1 -0
  1171. package/dist/utils/page-mode.d.ts +18 -0
  1172. package/dist/utils/page-mode.js +124 -0
  1173. package/dist/utils/page-mode.js.map +1 -0
  1174. package/dist/utils/page-ssr-module/bundle-webpack.d.ts +18 -0
  1175. package/dist/utils/page-ssr-module/bundle-webpack.js +209 -0
  1176. package/dist/utils/page-ssr-module/bundle-webpack.js.map +1 -0
  1177. package/dist/utils/page-ssr-module/entry.d.ts +61 -0
  1178. package/dist/utils/page-ssr-module/entry.js +344 -0
  1179. package/dist/utils/page-ssr-module/entry.js.map +1 -0
  1180. package/dist/utils/page-ssr-module/lambda.d.ts +3 -0
  1181. package/dist/utils/page-ssr-module/lambda.js +401 -0
  1182. package/dist/utils/page-ssr-module/lambda.js.map +1 -0
  1183. package/dist/utils/parcel/compile-gatsby-files.d.ts +26 -0
  1184. package/dist/utils/parcel/compile-gatsby-files.js +271 -0
  1185. package/dist/utils/parcel/compile-gatsby-files.js.map +1 -0
  1186. package/dist/utils/path.d.ts +5 -0
  1187. package/dist/utils/path.js +55 -0
  1188. package/dist/utils/path.js.map +1 -0
  1189. package/dist/utils/prepare-regex.d.ts +1 -0
  1190. package/dist/utils/prepare-regex.js +13 -0
  1191. package/dist/utils/prepare-regex.js.map +1 -0
  1192. package/dist/utils/prepare-urls.d.ts +7 -0
  1193. package/dist/utils/prepare-urls.js +58 -0
  1194. package/dist/utils/prepare-urls.js.map +1 -0
  1195. package/dist/utils/print-instructions.d.ts +2 -0
  1196. package/dist/utils/print-instructions.js +42 -0
  1197. package/dist/utils/print-instructions.js.map +1 -0
  1198. package/dist/utils/rank-route.d.ts +1 -0
  1199. package/dist/utils/rank-route.js +26 -0
  1200. package/dist/utils/rank-route.js.map +1 -0
  1201. package/dist/utils/reach-router-add-basecontext-export-loader.d.ts +1 -0
  1202. package/dist/utils/reach-router-add-basecontext-export-loader.js +23 -0
  1203. package/dist/utils/reach-router-add-basecontext-export-loader.js.map +1 -0
  1204. package/dist/utils/report-once.d.ts +1 -0
  1205. package/dist/utils/report-once.js +17 -0
  1206. package/dist/utils/report-once.js.map +1 -0
  1207. package/dist/utils/sanitize-node.d.ts +12 -0
  1208. package/dist/utils/sanitize-node.js +87 -0
  1209. package/dist/utils/sanitize-node.js.map +1 -0
  1210. package/dist/utils/show-experiment-notice.d.ts +6 -0
  1211. package/dist/utils/show-experiment-notice.js +51 -0
  1212. package/dist/utils/show-experiment-notice.js.map +1 -0
  1213. package/dist/utils/slices/stitching.d.ts +4 -0
  1214. package/dist/utils/slices/stitching.js +92 -0
  1215. package/dist/utils/slices/stitching.js.map +1 -0
  1216. package/dist/utils/slices.d.ts +2 -0
  1217. package/dist/utils/slices.js +9 -0
  1218. package/dist/utils/slices.js.map +1 -0
  1219. package/dist/utils/source-nodes-api-runner.d.ts +8 -0
  1220. package/dist/utils/source-nodes-api-runner.js +23 -0
  1221. package/dist/utils/source-nodes-api-runner.js.map +1 -0
  1222. package/dist/utils/source-nodes.d.ts +11 -0
  1223. package/dist/utils/source-nodes.js +150 -0
  1224. package/dist/utils/source-nodes.js.map +1 -0
  1225. package/dist/utils/stack-trace-utils.d.ts +24 -0
  1226. package/dist/utils/stack-trace-utils.js +113 -0
  1227. package/dist/utils/stack-trace-utils.js.map +1 -0
  1228. package/dist/utils/start-server.d.ts +22 -0
  1229. package/dist/utils/start-server.js +722 -0
  1230. package/dist/utils/start-server.js.map +1 -0
  1231. package/dist/utils/state-machine-logging.d.ts +4 -0
  1232. package/dist/utils/state-machine-logging.js +47 -0
  1233. package/dist/utils/state-machine-logging.js.map +1 -0
  1234. package/dist/utils/static-query-utils.d.ts +13 -0
  1235. package/dist/utils/static-query-utils.js +57 -0
  1236. package/dist/utils/static-query-utils.js.map +1 -0
  1237. package/dist/utils/test-import-error.d.ts +1 -0
  1238. package/dist/utils/test-import-error.js +18 -0
  1239. package/dist/utils/test-import-error.js.map +1 -0
  1240. package/dist/utils/tracer/index.d.ts +12 -0
  1241. package/dist/utils/tracer/index.js +42 -0
  1242. package/dist/utils/tracer/index.js.map +1 -0
  1243. package/dist/utils/tracer/jaeger-local.d.ts +4 -0
  1244. package/dist/utils/tracer/jaeger-local.js +32 -0
  1245. package/dist/utils/tracer/jaeger-local.js.map +1 -0
  1246. package/dist/utils/tracer/zipkin-local.d.ts +11 -0
  1247. package/dist/utils/tracer/zipkin-local.js +87 -0
  1248. package/dist/utils/tracer/zipkin-local.js.map +1 -0
  1249. package/dist/utils/tracer/zipkin-types.d.js +14 -0
  1250. package/dist/utils/tracer/zipkin-types.d.js.map +1 -0
  1251. package/dist/utils/validate-component.d.ts +23 -0
  1252. package/dist/utils/validate-component.js +99 -0
  1253. package/dist/utils/validate-component.js.map +1 -0
  1254. package/dist/utils/validate-engines/child.d.ts +1 -0
  1255. package/dist/utils/validate-engines/child.js +74 -0
  1256. package/dist/utils/validate-engines/child.js.map +1 -0
  1257. package/dist/utils/validate-engines/index.d.ts +2 -0
  1258. package/dist/utils/validate-engines/index.js +48 -0
  1259. package/dist/utils/validate-engines/index.js.map +1 -0
  1260. package/dist/utils/wait-until-jobs-complete.d.ts +2 -0
  1261. package/dist/utils/wait-until-jobs-complete.js +30 -0
  1262. package/dist/utils/wait-until-jobs-complete.js.map +1 -0
  1263. package/dist/utils/webpack/bundle.d.ts +9 -0
  1264. package/dist/utils/webpack/bundle.js +41 -0
  1265. package/dist/utils/webpack/bundle.js.map +1 -0
  1266. package/dist/utils/webpack/get-ssr-chunk-hashes.d.ts +9 -0
  1267. package/dist/utils/webpack/get-ssr-chunk-hashes.js +55 -0
  1268. package/dist/utils/webpack/get-ssr-chunk-hashes.js.map +1 -0
  1269. package/dist/utils/webpack/loaders/client-components-requires-writer-loader.d.ts +1 -0
  1270. package/dist/utils/webpack/loaders/client-components-requires-writer-loader.js +22 -0
  1271. package/dist/utils/webpack/loaders/client-components-requires-writer-loader.js.map +1 -0
  1272. package/dist/utils/webpack/loaders/partial-hydration-reference-loader.d.ts +1 -0
  1273. package/dist/utils/webpack/loaders/partial-hydration-reference-loader.js +127 -0
  1274. package/dist/utils/webpack/loaders/partial-hydration-reference-loader.js.map +1 -0
  1275. package/dist/utils/webpack/loaders/webpack-remove-exports-loader.d.ts +1 -0
  1276. package/dist/utils/webpack/loaders/webpack-remove-exports-loader.js +40 -0
  1277. package/dist/utils/webpack/loaders/webpack-remove-exports-loader.js.map +1 -0
  1278. package/dist/utils/webpack/plugins/cache-folder-resolver.d.ts +25 -0
  1279. package/dist/utils/webpack/plugins/cache-folder-resolver.js +111 -0
  1280. package/dist/utils/webpack/plugins/cache-folder-resolver.js.map +1 -0
  1281. package/dist/utils/webpack/plugins/corejs-resolver.d.ts +12 -0
  1282. package/dist/utils/webpack/plugins/corejs-resolver.js +66 -0
  1283. package/dist/utils/webpack/plugins/corejs-resolver.js.map +1 -0
  1284. package/dist/utils/webpack/plugins/force-css-hmr-for-edge-cases.d.ts +22 -0
  1285. package/dist/utils/webpack/plugins/force-css-hmr-for-edge-cases.js +88 -0
  1286. package/dist/utils/webpack/plugins/force-css-hmr-for-edge-cases.js.map +1 -0
  1287. package/dist/utils/webpack/plugins/partial-hydration.d.ts +26 -0
  1288. package/dist/utils/webpack/plugins/partial-hydration.js +362 -0
  1289. package/dist/utils/webpack/plugins/partial-hydration.js.map +1 -0
  1290. package/dist/utils/webpack/plugins/static-query-mapper.d.ts +13 -0
  1291. package/dist/utils/webpack/plugins/static-query-mapper.js +235 -0
  1292. package/dist/utils/webpack/plugins/static-query-mapper.js.map +1 -0
  1293. package/dist/utils/webpack/plugins/webpack-logging.d.ts +12 -0
  1294. package/dist/utils/webpack/plugins/webpack-logging.js +51 -0
  1295. package/dist/utils/webpack/plugins/webpack-logging.js.map +1 -0
  1296. package/dist/utils/webpack/utils/create-normalized-module-key.d.ts +12 -0
  1297. package/dist/utils/webpack/utils/create-normalized-module-key.js +25 -0
  1298. package/dist/utils/webpack/utils/create-normalized-module-key.js.map +1 -0
  1299. package/dist/utils/webpack/utils/is-file-inside-compilations.d.ts +7 -0
  1300. package/dist/utils/webpack/utils/is-file-inside-compilations.js +37 -0
  1301. package/dist/utils/webpack/utils/is-file-inside-compilations.js.map +1 -0
  1302. package/dist/utils/webpack-error-utils.d.ts +24 -0
  1303. package/dist/utils/webpack-error-utils.js +112 -0
  1304. package/dist/utils/webpack-error-utils.js.map +1 -0
  1305. package/dist/utils/webpack-plugins.d.ts +46 -0
  1306. package/dist/utils/webpack-plugins.js +61 -0
  1307. package/dist/utils/webpack-plugins.js.map +1 -0
  1308. package/dist/utils/webpack-status.d.ts +3 -0
  1309. package/dist/utils/webpack-status.js +21 -0
  1310. package/dist/utils/webpack-status.js.map +1 -0
  1311. package/dist/utils/webpack-utils.d.ts +121 -0
  1312. package/dist/utils/webpack-utils.js +574 -0
  1313. package/dist/utils/webpack-utils.js.map +1 -0
  1314. package/dist/utils/webpack.config.js +804 -0
  1315. package/dist/utils/webpack.config.js.map +1 -0
  1316. package/dist/utils/websocket-manager.d.ts +39 -0
  1317. package/dist/utils/websocket-manager.js +183 -0
  1318. package/dist/utils/websocket-manager.js.map +1 -0
  1319. package/dist/utils/worker/child/index.d.ts +5 -0
  1320. package/dist/utils/worker/child/index.js +35 -0
  1321. package/dist/utils/worker/child/index.js.map +1 -0
  1322. package/dist/utils/worker/child/load-config-and-plugins.d.ts +2 -0
  1323. package/dist/utils/worker/child/load-config-and-plugins.js +28 -0
  1324. package/dist/utils/worker/child/load-config-and-plugins.js.map +1 -0
  1325. package/dist/utils/worker/child/queries.d.ts +7 -0
  1326. package/dist/utils/worker/child/queries.js +84 -0
  1327. package/dist/utils/worker/child/queries.js.map +1 -0
  1328. package/dist/utils/worker/child/render-html.d.ts +49 -0
  1329. package/dist/utils/worker/child/render-html.js +562 -0
  1330. package/dist/utils/worker/child/render-html.js.map +1 -0
  1331. package/dist/utils/worker/child/schema.d.ts +2 -0
  1332. package/dist/utils/worker/child/schema.js +41 -0
  1333. package/dist/utils/worker/child/schema.js.map +1 -0
  1334. package/dist/utils/worker/child/state.d.ts +2 -0
  1335. package/dist/utils/worker/child/state.js +13 -0
  1336. package/dist/utils/worker/child/state.js.map +1 -0
  1337. package/dist/utils/worker/messaging.d.ts +16 -0
  1338. package/dist/utils/worker/messaging.js +9 -0
  1339. package/dist/utils/worker/messaging.js.map +1 -0
  1340. package/dist/utils/worker/pool.d.ts +10 -0
  1341. package/dist/utils/worker/pool.js +122 -0
  1342. package/dist/utils/worker/pool.js.map +1 -0
  1343. package/dist/utils/worker/reporter.d.ts +3 -0
  1344. package/dist/utils/worker/reporter.js +26 -0
  1345. package/dist/utils/worker/reporter.js.map +1 -0
  1346. package/dist/utils/worker/types.d.ts +3 -0
  1347. package/dist/utils/worker/types.js +4 -0
  1348. package/dist/utils/worker/types.js.map +1 -0
  1349. package/graphql.d.ts +2 -0
  1350. package/graphql.js +6 -0
  1351. package/index.d.ts +1906 -0
  1352. package/internal.d.ts +4 -0
  1353. package/internal.js +5 -0
  1354. package/ipc.json +3 -0
  1355. package/package.json +744 -0
  1356. package/reporter.d.ts +4 -0
  1357. package/reporter.js +3 -0
  1358. package/scripts/postinstall.js +7 -0
  1359. package/utils.js +1 -0
  1360. package/webpack.d.ts +3 -0
  1361. package/webpack.js +3 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexing.js","names":["nodeIdToIdentifierMap","Map","getGatsbyNodePartial","node","indexFields","resolvedFields","cacheKey","id","internal","counter","derefPartial","undefined","has","get","deref","map","field","gatsbyNodePartialInternalData","dottedFields","fieldsToStore","Set","sortFieldIds","getSortFieldIdentifierKeys","fullNodeObject","resolvedNodeFields","dottedField","startsWith","getResolvedFields","getValueAt","slice","length","getNode","partial","Object","assign","type","set","WeakRef","sortByIds","a","b","postIndexingMetaSetup","filterCache","op","bucket","byValue","sort","postIndexingMetaSetupNeNin","includes","postIndexingMetaSetupLtLteGtGte","arr","meta","nodesUnordered","forEach","v","nodeId","push","entriesNullable","entries","filter","orderedNodes","orderedValues","offsets","valuesAsc","nodesByValueAsc","valueRangesAsc","valuesDesc","nodesByValueDesc","valueRangesDesc","ensureIndexByQuery","filterCacheKey","filterPath","nodeTypeNames","filtersCache","getDataStore","iterateNodesByType","addNodeToFilterCache","chain","iterateNodes","ensureEmptyFilterCache","orderedByCounter","valueOffset","i","nextProp","Array","isArray","markNodeForValue","value","ensureIndexByElemMatch","addNodeToBucketWithElemMatch","valueAtCurrentStep","path","nestedQuery","elem","binarySearchAsc","values","needle","min","max","pivot","Math","floor","binarySearchDesc","getNodesFromCacheByValue","filterValue","wasElemMatch","arrNull","arrUndef","unionNodesByCounter","Error","filterValueArr","add","nodes","expensiveDedupeInline","removeBucketFromSet","RegExp","regex","test","String","ranges","range","point","pivotMin","pivotMax","pivotValue","exclPivot","inclPivot","until","reverse","cache","delete","intersectNodesByCounter","pointerA","pointerB","result","maxA","maxB","lastAdded","counterA","counterB","prev","j","objectToDottedField","dottedFieldKeys","keys","fieldKeys","some","key"],"sources":["../../../src/datastore/in-memory/indexing.ts"],"sourcesContent":["import { IGatsbyNode } from \"../../redux/types\"\nimport {\n IDbQueryElemMatch,\n FilterValue,\n FilterValueNullable,\n objectToDottedField,\n} from \"../common/query\"\nimport { getDataStore, getNode } from \"../\"\nimport _ from \"lodash\"\nimport { getValueAt } from \"../../utils/get-value-at\"\nimport { getResolvedFields } from \"../../schema/utils\"\n\n// Only list supported ops here. \"CacheableFilterOp\"\n// TODO: merge with DbComparator ?\nexport type FilterOp =\n | \"$eq\"\n | \"$ne\"\n | \"$lt\"\n | \"$lte\"\n | \"$gt\"\n | \"$gte\"\n | \"$in\"\n | \"$nin\"\n | \"$regex\" // Note: this includes $glob\n\nexport type FilterCacheKey = string\ntype GatsbyNodeID = string\n\nexport interface IGatsbyNodePartial {\n id: GatsbyNodeID\n internal: {\n type: string\n counter: number\n }\n gatsbyNodePartialInternalData: {\n indexFields: Set<string>\n }\n [k: string]: any\n}\n\nconst nodeIdToIdentifierMap = new Map<\n GatsbyNodeID,\n WeakRef<IGatsbyNodePartial>\n>()\n\n/**\n * Grabs an instance of IGatsbyNodePartial for the given node.\n * This accepts an IGatsbyNode or IGatsbyNodePartial as input, which allows\n * us to conditionally store index fields on the partial if we encounter\n * one that hasn't been stored on the partial yet.\n */\nexport const getGatsbyNodePartial = (\n node: IGatsbyNode | IGatsbyNodePartial,\n indexFields: Array<string>,\n resolvedFields: Record<string, any>\n): IGatsbyNodePartial => {\n // first, check if we have the partial in the cache\n const cacheKey = `${node.id}_____${node.internal.counter}`\n let derefPartial: IGatsbyNodePartial | undefined = undefined\n if (nodeIdToIdentifierMap.has(cacheKey)) {\n derefPartial = nodeIdToIdentifierMap.get(cacheKey)?.deref()\n\n // now check if we have it in memory and it has all the fields we need\n if (\n derefPartial &&\n _.every(\n indexFields.map(field =>\n derefPartial!.gatsbyNodePartialInternalData.indexFields.has(field)\n )\n )\n ) {\n return derefPartial\n }\n }\n\n // find all the keys of fields and store them and their values on the partial\n // if we've already passed this partial, merge both sets of index fields\n const dottedFields = {}\n const fieldsToStore = derefPartial\n ? new Set([\n ...derefPartial.gatsbyNodePartialInternalData.indexFields,\n ...indexFields,\n ])\n : new Set(indexFields)\n\n const sortFieldIds = getSortFieldIdentifierKeys(\n [...fieldsToStore],\n resolvedFields\n )\n let fullNodeObject: IGatsbyNode | undefined =\n node.gatsbyNodePartialInternalData ? undefined : (node as IGatsbyNode)\n let resolvedNodeFields\n\n for (const dottedField of sortFieldIds) {\n if (dottedField in node) {\n dottedFields[dottedField] = node[dottedField]\n } else {\n if (dottedField.startsWith(`__gatsby_resolved.`)) {\n if (!resolvedNodeFields) {\n resolvedNodeFields = getResolvedFields(node)\n }\n\n dottedFields[dottedField] = getValueAt(\n resolvedNodeFields,\n dottedField.slice(`__gatsby_resolved.`.length)\n )\n } else {\n // if we haven't gotten the full node object, fetch it once\n // use the full node object to fetch the value\n if (!fullNodeObject) {\n fullNodeObject = getNode(node.id)!\n }\n dottedFields[dottedField] = getValueAt(fullNodeObject, dottedField)\n }\n }\n }\n\n // create the partial object\n const partial = Object.assign(dottedFields, {\n id: node.id,\n internal: {\n counter: node.internal.counter,\n type: node.internal.type,\n },\n gatsbyNodePartialInternalData: {\n indexFields: fieldsToStore,\n },\n })\n\n // set the object in the cache for later fetching\n nodeIdToIdentifierMap.set(cacheKey, new WeakRef<IGatsbyNodePartial>(partial))\n\n return partial\n}\n\nconst sortByIds = (a: IGatsbyNodePartial, b: IGatsbyNodePartial): number =>\n a.internal.counter - b.internal.counter\n\nexport interface IFilterCache {\n op: FilterOp\n // In this map `undefined` values represent nodes that did not have the path\n // The individual arrays are ordered asc by internal.counter which will\n // preserve insertion order and guarantee uniqueness and it's a number so our\n // .sort() calls can subtract one from the other which is nice :)\n // This arrays may contain duplicates (!) because those only get filtered in the\n // last step.\n // TODO: We might decide to make sure these buckets _are_ deduped for eq perf\n byValue: Map<FilterValueNullable, Array<IGatsbyNodePartial>>\n meta: {\n // Used by ne/nin, which will create a Set from this array and then remove another set(s) and sort\n nodesUnordered?: Array<IGatsbyNodePartial>\n // Flat list of all nodes by requested types, ordered by counter (cached for empty filters)\n orderedByCounter?: Array<IGatsbyNodePartial>\n // Ordered list of all values (by `<`) found by this filter. No null / undefs\n valuesAsc?: Array<FilterValue>\n // Flat list of nodes, ordered by valueAsc\n nodesByValueAsc?: Array<IGatsbyNodePartial>\n // Ranges of nodes per value, maps to the nodesByValueAsc array\n valueRangesAsc?: Map<FilterValue, [number, number]>\n // Ordered list of all values (by `>`) found by this filter. No null / undefs\n valuesDesc?: Array<FilterValue>\n // Flat list of nodes, ordered by valueDesc\n nodesByValueDesc?: Array<IGatsbyNodePartial>\n // Ranges of nodes per value, maps to the nodesByValueDesc array\n valueRangesDesc?: Map<FilterValue, [number, number]>\n }\n}\nexport type FiltersCache = Map<FilterCacheKey, IFilterCache>\n\nexport function postIndexingMetaSetup(\n filterCache: IFilterCache,\n op: FilterOp\n): void {\n // Loop through byValue and make sure the buckets are sorted by counter\n // Since we don't do insertion sort, we have to do it afterwards\n for (const bucket of filterCache.byValue) {\n bucket[1].sort(sortByIds)\n }\n\n if (op === `$ne` || op === `$nin`) {\n postIndexingMetaSetupNeNin(filterCache)\n } else if ([`$lt`, `$lte`, `$gt`, `$gte`].includes(op)) {\n postIndexingMetaSetupLtLteGtGte(filterCache, op)\n }\n}\n\nfunction postIndexingMetaSetupNeNin(filterCache: IFilterCache): void {\n // Note: edge cases regarding `null` and `undefined`. Here `undefined` signals\n // that the property did not exist as the filters do not support actual\n // `undefined` values.\n // For $ne, `null` only returns nodes that actually have the property\n // and in that case the property cannot be `null` either. For any other value,\n // $ne will return all nodes where the value is not actually the needle,\n // including nodes where the value is null.\n // A $nin does the same as an $ne except it filters multiple values instead\n // of just one.\n // For `$ne` we will take the list of all targeted nodes and eliminate the\n // bucket of nodes with a particular value, if it exists at all..\n\n const arr: Array<IGatsbyNodePartial> = []\n filterCache.meta.nodesUnordered = arr\n filterCache.byValue.forEach(v => {\n v.forEach(nodeId => {\n arr.push(nodeId)\n })\n })\n}\n\nfunction postIndexingMetaSetupLtLteGtGte(\n filterCache: IFilterCache,\n op: FilterOp\n): void {\n // Create an ordered array of individual nodes, ordered (grouped) by the\n // value to which the filter resolves. Nodes per value are ordered by\n // internal.counter, asc.\n // This way non-eq ops can simply slice the array to get a range.\n\n const entriesNullable: Array<\n [FilterValueNullable, Array<IGatsbyNodePartial>]\n > = [...filterCache.byValue.entries()]\n\n // These range checks never return `null` or `undefined` so filter those out\n // By filtering them out early, the sort should be faster. Could be ...\n const entries: Array<[FilterValue, Array<IGatsbyNodePartial>]> =\n entriesNullable.filter(([v]) => v != null) as Array<\n [FilterValue, Array<IGatsbyNodePartial>]\n >\n\n // Sort all arrays by its value, asc. Ignore/allow potential type casting.\n // Note: while `<` is the inverse of `>=`, the ordering might coerce values.\n // This coercion makes the op no longer idempotent (normally the result of\n // `a < b` is the opposite of `b >= a` for any a or b of the same type). The\n // exception is a number that is `NaN`, which we're ignoring here as it's most\n // likely a bug in the user code. However, when coercing the ops may end up\n // comparing against `NaN`, too. For example: `(\"abc\" <= 12) !== (12 > \"abc\")`\n // which ends up doing `NaN <= 12` and `NaN > \"abc\"`, which will both yield\n // false.\n // So instead we potentially track two ordered lists; ascending and descending\n // and the only difference when comparing the inverse of one to the other\n // should be how these `NaN` cases end up getting ordered.\n // It's fine for `lt` and `lte` to use the same ordered list. Same for gt/gte.\n if (op === `$lt` || op === `$lte`) {\n // Order ascending; first value is lowest\n entries.sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0))\n } else if (op === `$gt` || op === `$gte`) {\n // Order descending; first value is highest\n entries.sort(([a], [b]) => (a > b ? -1 : a < b ? 1 : 0))\n }\n\n const orderedNodes: Array<IGatsbyNodePartial> = []\n const orderedValues: Array<FilterValue> = []\n const offsets: Map<FilterValue, [number, number]> = new Map()\n entries.forEach(([v, bucket]: [FilterValue, Array<IGatsbyNodePartial>]) => {\n // Record the range containing all nodes with as filter value v\n // The last value of the range should be the offset of the next value\n // (So you should be able to do `nodes.slice(start, stop)` to get them)\n offsets.set(v, [orderedNodes.length, orderedNodes.length + bucket.length])\n // We could do `arr.push(...bucket)` here but that's not safe with very\n // large sets, so we use a regular loop\n bucket.forEach(node => orderedNodes.push(node))\n orderedValues.push(v)\n })\n\n if (op === `$lt` || op === `$lte`) {\n filterCache.meta.valuesAsc = orderedValues\n filterCache.meta.nodesByValueAsc = orderedNodes\n // The nodesByValueAsc is ordered by value, but multiple nodes per value are\n // not ordered. To make lt as fast as lte, we must know the start and stop\n // index for each value. Similarly useful for for `ne`.\n filterCache.meta.valueRangesAsc = offsets\n } else if (op === `$gt` || op === `$gte`) {\n filterCache.meta.valuesDesc = orderedValues\n filterCache.meta.nodesByValueDesc = orderedNodes\n // The nodesByValueDesc is ordered by value, but multiple nodes per value are\n // not ordered. To make gt as fast as gte, we must know the start and stop\n // index for each value. Similarly useful for for `ne`.\n filterCache.meta.valueRangesDesc = offsets\n }\n}\n\n/**\n * Given a single non-elemMatch filter path, a list of node types, and a\n * cache, create a cache that for each resulting value of the filter contains\n * all the Nodes in a list.\n * This cache is used for applying the filter and is a massive improvement over\n * looping over all the nodes, when the number of pages (/nodes) scales up.\n */\nexport const ensureIndexByQuery = (\n op: FilterOp,\n filterCacheKey: FilterCacheKey,\n filterPath: Array<string>,\n nodeTypeNames: Array<string>,\n filtersCache: FiltersCache,\n indexFields: Array<string>,\n resolvedFields: Record<string, any>\n): void => {\n const filterCache: IFilterCache = {\n op,\n byValue: new Map<FilterValueNullable, Array<IGatsbyNodePartial>>(),\n meta: {},\n } as IFilterCache\n filtersCache.set(filterCacheKey, filterCache)\n\n // We cache the subsets of nodes by type, but only one type. So if searching\n // through one node type we can prevent a search through all nodes, otherwise\n // it's probably faster to loop through all nodes. Perhaps. Maybe.\n\n if (nodeTypeNames.length === 1) {\n getDataStore()\n .iterateNodesByType(nodeTypeNames[0])\n .forEach(node => {\n addNodeToFilterCache({\n node,\n chain: filterPath,\n filterCache,\n indexFields,\n resolvedFields,\n })\n })\n } else {\n // Here we must first filter for the node type\n // This loop is expensive at scale (!)\n getDataStore()\n .iterateNodes()\n .forEach(node => {\n if (!nodeTypeNames.includes(node.internal.type)) {\n return\n }\n\n addNodeToFilterCache({\n node,\n chain: filterPath,\n filterCache,\n indexFields,\n resolvedFields,\n })\n })\n }\n\n postIndexingMetaSetup(filterCache, op)\n}\n\nexport function ensureEmptyFilterCache(\n filterCacheKey,\n nodeTypeNames: Array<string>,\n filtersCache: FiltersCache,\n indexFields: Array<string>,\n resolvedFields: Record<string, any>\n): void {\n // This is called for queries without any filters\n // We want to cache the result since it's basically a list of nodes by type(s)\n // There are sites that have multiple queries which are empty\n\n const orderedByCounter: Array<IGatsbyNodePartial> = []\n\n filtersCache.set(filterCacheKey, {\n op: `$eq`, // Ignore.\n byValue: new Map<FilterValueNullable, Array<IGatsbyNodePartial>>(),\n meta: {\n orderedByCounter, // This is what we want\n },\n })\n\n if (nodeTypeNames.length === 1) {\n getDataStore()\n .iterateNodesByType(nodeTypeNames[0])\n .forEach(node => {\n orderedByCounter.push(\n getGatsbyNodePartial(node, indexFields, resolvedFields)\n )\n })\n } else {\n // Here we must first filter for the node type\n // This loop is expensive at scale (!)\n getDataStore()\n .iterateNodes()\n .forEach(node => {\n if (nodeTypeNames.includes(node.internal.type)) {\n orderedByCounter.push(\n getGatsbyNodePartial(node, indexFields, resolvedFields)\n )\n }\n })\n }\n\n // Since each node can only have one type, we shouldn't have to be concerned\n // about duplicates in this array. Just make sure they're sorted.\n orderedByCounter.sort(sortByIds)\n}\n\nfunction addNodeToFilterCache({\n node,\n chain,\n filterCache,\n indexFields,\n resolvedFields,\n valueOffset = node,\n}: {\n node: IGatsbyNode\n chain: Array<string>\n filterCache: IFilterCache\n indexFields: Array<string>\n resolvedFields: Record<string, any>\n valueOffset?: any\n}): void {\n // - for plain query, valueOffset === node\n // - for elemMatch, valueOffset is sub-tree of the node to continue matching\n let v = valueOffset as any\n let i = 0\n while (i < chain.length && v) {\n const nextProp = chain[i++]\n if (i === 1 && nextProp === `__gatsby_resolved`) {\n v = getResolvedFields(v)\n } else {\n v = v[nextProp]\n }\n }\n\n if (\n (typeof v !== `string` &&\n typeof v !== `number` &&\n typeof v !== `boolean` &&\n v !== null) ||\n i !== chain.length\n ) {\n if (i === chain.length && Array.isArray(v)) {\n // The op resolved to an array\n // Add an entry for each element of the array. This would work for ops\n // like eq and ne, but not sure about range ops like lt,lte,gt,gte.\n\n v.forEach(v =>\n markNodeForValue(filterCache, node, v, indexFields, resolvedFields)\n )\n\n return\n }\n\n // This means that either\n // - The filter resolved to `undefined`, or\n // - The filter resolved to something other than a primitive\n // Set the value to `undefined` to mark \"path does not (fully) exist\"\n v = undefined\n }\n\n markNodeForValue(filterCache, node, v, indexFields, resolvedFields)\n}\n\nfunction markNodeForValue(\n filterCache: IFilterCache,\n node: IGatsbyNode,\n value: FilterValueNullable,\n indexFields: Array<string>,\n resolvedFields: Record<string, any>\n): void {\n let arr = filterCache.byValue.get(value)\n if (!arr) {\n arr = []\n filterCache.byValue.set(value, arr)\n }\n\n const partial = getGatsbyNodePartial(node, indexFields, resolvedFields)\n if (!arr.includes(partial)) {\n arr.push(partial)\n }\n}\n\nexport const ensureIndexByElemMatch = (\n op: FilterOp,\n filterCacheKey: FilterCacheKey,\n filter: IDbQueryElemMatch,\n nodeTypeNames: Array<string>,\n filtersCache: FiltersCache,\n indexFields: Array<string>,\n resolvedFields: Record<string, any>\n): void => {\n // Given an elemMatch filter, generate the cache that contains all nodes that\n // matches a given value for that sub-query\n\n const filterCache: IFilterCache = {\n op,\n byValue: new Map<FilterValueNullable, Array<IGatsbyNodePartial>>(),\n meta: {},\n } as IFilterCache\n filtersCache.set(filterCacheKey, filterCache)\n\n if (nodeTypeNames.length === 1) {\n getDataStore()\n .iterateNodesByType(nodeTypeNames[0])\n .forEach(node => {\n addNodeToBucketWithElemMatch({\n node,\n valueAtCurrentStep: node,\n filter,\n filterCache,\n indexFields,\n resolvedFields,\n })\n })\n } else {\n // Expensive at scale\n getDataStore()\n .iterateNodes()\n .forEach(node => {\n if (!nodeTypeNames.includes(node.internal.type)) {\n return\n }\n\n addNodeToBucketWithElemMatch({\n node,\n valueAtCurrentStep: node,\n filter,\n filterCache,\n indexFields,\n resolvedFields,\n })\n })\n }\n\n postIndexingMetaSetup(filterCache, op)\n}\n\nfunction addNodeToBucketWithElemMatch({\n node,\n valueAtCurrentStep, // Arbitrary step on the path inside the node\n filter,\n filterCache,\n indexFields,\n resolvedFields,\n}: {\n node: IGatsbyNode\n valueAtCurrentStep: any // Arbitrary step on the path inside the node\n filter: IDbQueryElemMatch\n filterCache: IFilterCache\n indexFields: Array<string>\n resolvedFields: Record<string, any>\n}): void {\n const { path, nestedQuery } = filter\n\n // Find the value to apply elemMatch to\n let i = 0\n while (i < path.length && valueAtCurrentStep) {\n const nextProp = path[i++]\n if (i === 1 && nextProp === `__gatsby_resolved`) {\n valueAtCurrentStep = getResolvedFields(valueAtCurrentStep)\n } else {\n valueAtCurrentStep = valueAtCurrentStep[nextProp]\n }\n }\n\n if (path.length !== i) {\n // Found undefined before the end of the path\n return\n }\n\n // `v` should now be an elemMatch target, probably an array (but maybe not)\n if (!Array.isArray(valueAtCurrentStep)) {\n // It's possible to `elemMatch` on a non-array so let's support that too\n valueAtCurrentStep = [valueAtCurrentStep]\n }\n\n // Note: We need to check all elements because the node may need to be added\n // to multiple buckets (`{a:[{b:3},{b:4}]}`, for `a.elemMatch.b/eq` that\n // node ends up in buckets for value 3 and 4. This may lead to duplicate\n // work when elements resolve to the same value, but that can't be helped.\n valueAtCurrentStep.forEach(elem => {\n if (nestedQuery.type === `elemMatch`) {\n addNodeToBucketWithElemMatch({\n node,\n valueAtCurrentStep: elem,\n filter: nestedQuery,\n filterCache,\n indexFields,\n resolvedFields,\n })\n } else {\n // Now take same route as non-elemMatch filters would take\n addNodeToFilterCache({\n node,\n chain: nestedQuery.path,\n filterCache,\n indexFields,\n resolvedFields,\n valueOffset: elem,\n })\n }\n })\n}\n\nconst binarySearchAsc = (\n values: Array<FilterValue>, // Assume ordered asc\n needle: FilterValue\n): [number, number] | undefined => {\n let min = 0\n let max = values.length - 1\n let pivot = Math.floor(values.length / 2)\n while (min <= max) {\n const value = values[pivot]\n if (needle < value) {\n // Move pivot to middle of nodes left of current pivot\n // assert pivot < max\n max = pivot\n } else if (needle > value) {\n // Move pivot to middle of nodes right of current pivot\n // assert pivot > min\n min = pivot\n } else {\n // This means needle === value\n // TODO: except for NaN ... and potentially certain type casting cases\n return [pivot, pivot]\n }\n\n if (max - min <= 1) {\n // End of search. Needle not found (as expected). Use pivot as index.\n // If the needle was not found, max-min==1 and max is returned.\n return [min, max]\n }\n\n pivot = min + Math.floor((max - min) / 2)\n }\n\n // Shouldn't be reachable\n return undefined\n}\nconst binarySearchDesc = (\n values: Array<FilterValue>, // Assume ordered desc\n needle: FilterValue\n): [number, number] | undefined => {\n let min = 0\n let max = values.length - 1\n let pivot = Math.floor(values.length / 2)\n while (min <= max) {\n const value = values[pivot]\n if (needle < value) {\n // Move pivot to middle of nodes right of current pivot\n // assert pivot < min\n min = pivot\n } else if (needle > value) {\n // Move pivot to middle of nodes left of current pivot\n // assert pivot > max\n max = pivot\n } else {\n // This means needle === value\n // TODO: except for NaN ... and potentially certain type casting cases\n return [pivot, pivot]\n }\n\n if (max - min <= 1) {\n // End of search. Needle not found (as expected). Use pivot as index.\n // If the needle was not found, max-min==1 and max is returned.\n return [min, max]\n }\n\n pivot = min + Math.floor((max - min) / 2)\n }\n\n // Shouldn't be reachable\n return undefined\n}\n\n/**\n * Given the cache key for a filter and a target value return the list of nodes\n * that resolve to this value. The returned array should be ordered by id.\n * This returns `undefined` if there is no such node\n *\n * Basically if the filter was {a: {b: {slug: {eq: \"foo/bar\"}}}} then it will\n * return all the nodes that have `node.slug === \"foo/bar\"`. That usually (but\n * not always) at most one node for slug, but this filter can apply to anything.\n *\n * Arrays returned by this function must be ordered by internal.counter and\n * not contain duplicate nodes (!)\n */\nexport const getNodesFromCacheByValue = (\n filterCacheKey: FilterCacheKey,\n filterValue: FilterValueNullable,\n filtersCache: FiltersCache,\n wasElemMatch\n): Array<IGatsbyNodePartial> | undefined => {\n const filterCache = filtersCache.get(filterCacheKey)\n if (!filterCache) {\n return undefined\n }\n\n const op = filterCache.op\n\n if (op === `$eq`) {\n // Arrays in byValue are assumed to be ordered by counter\n\n if (filterValue == null) {\n // Edge case for null; fetch all nodes for `null` and `undefined` because\n // `$eq` also returns nodes without the path when searching for `null`.\n // Not all ops do so, so we map non-existing paths to `undefined`.\n\n const arrNull = filterCache.byValue.get(null) ?? []\n const arrUndef = filterCache.byValue.get(undefined) ?? []\n\n // Merge the two (ordered) arrays and return an ordered deduped array\n // TODO: is there a reason left why we cant just cache this merged list?\n return unionNodesByCounter(arrNull, arrUndef)\n }\n\n return filterCache.byValue.get(filterValue)\n }\n\n if (op === `$in`) {\n if (!Array.isArray(filterValue)) {\n throw new Error(\"The argument to the `in` comparator should be an array\")\n }\n const filterValueArr: Array<FilterValueNullable> = filterValue\n\n const set: Set<IGatsbyNodePartial> = new Set()\n\n // TODO: we can also mergeSort for every step. this may perform worse because of how memory in js works.\n // For every value in the needle array, find the bucket of nodes for\n // that value, add this bucket of nodes to one list, return the list.\n filterValueArr.forEach((v: FilterValueNullable) =>\n filterCache.byValue.get(v)?.forEach(v => set.add(v))\n )\n\n const arr = [...set] // this is bad for perf but will guarantee us a unique set :(\n arr.sort(sortByIds)\n\n // Note: it's very unlikely that the list of filter values is big so .includes should be fine here\n if (filterValueArr.includes(null)) {\n // Like all other ops, `in: [null]` behaves weirdly, allowing all nodes\n // that do not actually have a (complete) path (v=undefined)\n const nodes = filterCache.byValue.get(undefined)\n if (nodes) {\n // This will also dedupe so don't do that immediately\n return unionNodesByCounter(nodes, arr)\n }\n }\n\n // elemMatch can cause a node to appear in multiple buckets so we must dedupe first\n if (wasElemMatch) {\n expensiveDedupeInline(arr)\n }\n\n return arr\n }\n\n if (op === `$nin`) {\n // This is essentially the same as the $ne operator, just with multiple\n // values to exclude.\n\n if (!Array.isArray(filterValue)) {\n throw new Error(`The $nin operator expects an array as value`)\n }\n\n const values: Set<FilterValueNullable> = new Set(filterValue)\n const set = new Set(filterCache.meta.nodesUnordered)\n\n // Do the action for \"$ne\" for each element in the set of values\n values.forEach(filterValue => {\n removeBucketFromSet(filterValue, filterCache, set)\n })\n\n // TODO: there's probably a more efficient algorithm to do set\n // subtraction in such a way that we don't have to re-sort\n return [...set].sort(sortByIds)\n }\n\n if (op === `$ne`) {\n const set = new Set(filterCache.meta.nodesUnordered)\n\n removeBucketFromSet(filterValue, filterCache, set)\n\n // TODO: there's probably a more efficient algorithm to do set\n // subtraction in such a way that we don't have to resort here\n return [...set].sort(sortByIds)\n }\n\n if (op === `$regex`) {\n // Note: $glob is converted to $regex so $glob filters go through here, too\n // Aside from the input pattern format, further behavior is exactly the same.\n\n // The input to the filter must be a string (including leading/trailing slash and regex flags)\n // By the time the filter reaches this point, the filterValue has to be a regex.\n\n if (!(filterValue instanceof RegExp)) {\n throw new Error(\n `The value for the $regex comparator must be an instance of RegExp`\n )\n }\n const regex = filterValue\n\n const arr: Array<IGatsbyNodePartial> = []\n filterCache.byValue.forEach((nodes, value) => {\n // TODO: does the value have to be a string for $regex? Can we auto-ignore any non-strings? Or does it coerce.\n // Note: for legacy reasons partial paths should also be included for regex\n if (value !== undefined && regex.test(String(value))) {\n nodes.forEach(node => arr.push(node))\n }\n })\n\n // TODO: we _can_ cache this list as well. Might make sense if it turns out that $regex is mostly used with literals\n // TODO: it may make sense to first collect all buckets and then to .concat them, or merge sort them\n\n arr.sort(sortByIds)\n\n // elemMatch can cause a node to appear in multiple buckets so we must dedupe\n if (wasElemMatch) {\n expensiveDedupeInline(arr)\n }\n\n return arr\n }\n\n if (filterValue == null) {\n if (op === `$lt` || op === `$gt`) {\n // Nothing is lt/gt null\n return undefined\n }\n\n // This is an edge case and this value should be directly indexed\n // For `lte`/`gte` this should only return nodes for `null`, not a \"range\"\n return filterCache.byValue.get(filterValue)\n }\n\n if (Array.isArray(filterValue)) {\n throw new Error(\n \"Array is an invalid filter value for the `\" + op + \"` comparator\"\n )\n }\n\n if (filterValue instanceof RegExp) {\n // This is most likely an internal error, although it is possible for\n // users to talk to this API more directly.\n throw new Error(\n `A RegExp instance is only valid for $regex and $glob comparators`\n )\n }\n\n if (op === `$lt`) {\n // First try a direct approach. If a value is queried that also exists then\n // we can prevent a binary search through the whole list, O(1) vs O(log n)\n\n const ranges = filterCache.meta.valueRangesAsc\n const nodes = filterCache.meta.nodesByValueAsc\n\n const range = ranges!.get(filterValue)\n if (range) {\n const arr = nodes!.slice(0, range[0])\n arr.sort(sortByIds)\n // elemMatch can cause a node to appear in multiple buckets so we must dedupe\n if (wasElemMatch) {\n expensiveDedupeInline(arr)\n }\n return arr\n }\n\n // Query may ask for a value that doesn't appear in the list, like if the\n // list is [1, 2, 5, 6] and the query is <= 3. In that case we have to\n // apply a search (we'll do binary) to determine the offset to slice from.\n\n // Note: for lte, the valueAsc array must be list at this point\n const values = filterCache.meta.valuesAsc as Array<FilterValue>\n // It shouldn't find the targetValue (but it might) and return the index of\n // the two value between which targetValue sits, or first/last element.\n const point = binarySearchAsc(values, filterValue)\n if (!point) {\n return undefined\n }\n const [pivotMin, pivotMax] = point\n\n // Each pivot index must have a value and a range\n // The returned min/max index may include the lower/upper bound, so we still\n // have to do lte checks for both values.\n let pivotValue = values[pivotMax]\n if (pivotValue > filterValue) {\n pivotValue = values[pivotMin]\n }\n\n // Note: the pivot value _shouldnt_ match the filter value because that\n // means the value was actually found, but those should have been indexed\n // so should have yielded a result in the .get() above.\n\n const [exclPivot, inclPivot] = ranges!.get(pivotValue) as [number, number]\n\n // Note: technically, `5 <= \"5\" === true` but `5` would not be cached.\n // So we have to consider weak comparison and may have to include the pivot\n const until = pivotValue < filterValue ? inclPivot : exclPivot\n const arr = nodes!.slice(0, until)\n arr.sort(sortByIds)\n // elemMatch can cause a node to appear in multiple buckets so we must dedupe\n if (wasElemMatch) {\n expensiveDedupeInline(arr)\n }\n return arr\n }\n\n if (op === `$lte`) {\n // First try a direct approach. If a value is queried that also exists then\n // we can prevent a binary search through the whole list, O(1) vs O(log n)\n\n const ranges = filterCache.meta.valueRangesAsc\n const nodes = filterCache.meta.nodesByValueAsc\n\n const range = ranges!.get(filterValue)\n if (range) {\n const arr = nodes!.slice(0, range[1])\n arr.sort(sortByIds)\n // elemMatch can cause a node to appear in multiple buckets so we must dedupe\n if (wasElemMatch) {\n expensiveDedupeInline(arr)\n }\n return arr\n }\n\n // Query may ask for a value that doesn't appear in the list, like if the\n // list is [1, 2, 5, 6] and the query is <= 3. In that case we have to\n // apply a search (we'll do binary) to determine the offset to slice from.\n\n // Note: for lte, the valueAsc array must be list at this point\n const values = filterCache.meta.valuesAsc as Array<FilterValue>\n // It shouldn't find the targetValue (but it might) and return the index of\n // the two value between which targetValue sits, or first/last element.\n const point = binarySearchAsc(values, filterValue)\n if (!point) {\n return undefined\n }\n const [pivotMin, pivotMax] = point\n\n // Each pivot index must have a value and a range\n // The returned min/max index may include the lower/upper bound, so we still\n // have to do lte checks for both values.\n let pivotValue = values[pivotMax]\n if (pivotValue > filterValue) {\n pivotValue = values[pivotMin]\n }\n\n // Note: the pivot value _shouldnt_ match the filter value because that\n // means the value was actually found, but those should have been indexed\n // so should have yielded a result in the .get() above.\n\n const [exclPivot, inclPivot] = ranges!.get(pivotValue) as [number, number]\n\n // Note: technically, `5 <= \"5\" === true` but `5` would not be cached.\n // So we have to consider weak comparison and may have to include the pivot\n const until = pivotValue <= filterValue ? inclPivot : exclPivot\n const arr = nodes!.slice(0, until)\n arr.sort(sortByIds)\n // elemMatch can cause a node to appear in multiple buckets so we must dedupe\n if (wasElemMatch) {\n expensiveDedupeInline(arr)\n }\n return arr\n }\n\n if (op === `$gt`) {\n // First try a direct approach. If a value is queried that also exists then\n // we can prevent a binary search through the whole list, O(1) vs O(log n)\n\n const ranges = filterCache.meta.valueRangesDesc\n const nodes = filterCache.meta.nodesByValueDesc\n\n const range = ranges!.get(filterValue)\n if (range) {\n const arr = nodes!.slice(0, range[0]).reverse()\n arr.sort(sortByIds)\n // elemMatch can cause a node to appear in multiple buckets so we must dedupe\n if (wasElemMatch) {\n expensiveDedupeInline(arr)\n }\n return arr\n }\n\n // Query may ask for a value that doesn't appear in the list, like if the\n // list is [1, 2, 5, 6] and the query is <= 3. In that case we have to\n // apply a search (we'll do binary) to determine the offset to slice from.\n\n // Note: for gte, the valueDesc array must be list at this point\n const values = filterCache.meta.valuesDesc as Array<FilterValue>\n // It shouldn't find the targetValue (but it might) and return the index of\n // the two value between which targetValue sits, or first/last element.\n const point = binarySearchDesc(values, filterValue)\n if (!point) {\n return undefined\n }\n const [pivotMin, pivotMax] = point\n\n // Each pivot index must have a value and a range\n // The returned min/max index may include the lower/upper bound, so we still\n // have to do gte checks for both values.\n let pivotValue = values[pivotMax]\n if (pivotValue < filterValue) {\n pivotValue = values[pivotMin]\n }\n\n // Note: the pivot value _shouldnt_ match the filter value because that\n // means the value was actually found, but those should have been indexed\n // so should have yielded a result in the .get() above.\n\n const [exclPivot, inclPivot] = ranges!.get(pivotValue) as [number, number]\n\n // Note: technically, `5 >= \"5\" === true` but `5` would not be cached.\n // So we have to consider weak comparison and may have to include the pivot\n const until = pivotValue > filterValue ? inclPivot : exclPivot\n const arr = nodes!.slice(0, until).reverse()\n arr.sort(sortByIds)\n // elemMatch can cause a node to appear in multiple buckets so we must dedupe\n if (wasElemMatch) {\n expensiveDedupeInline(arr)\n }\n return arr\n }\n\n if (op === `$gte`) {\n // First try a direct approach. If a value is queried that also exists then\n // we can prevent a binary search through the whole list, O(1) vs O(log n)\n\n const ranges = filterCache.meta.valueRangesDesc\n const nodes = filterCache.meta.nodesByValueDesc\n\n const range = ranges!.get(filterValue)\n if (range) {\n const arr = nodes!.slice(0, range[1]).reverse()\n arr.sort(sortByIds)\n // elemMatch can cause a node to appear in multiple buckets so we must dedupe\n if (wasElemMatch) {\n expensiveDedupeInline(arr)\n }\n return arr\n }\n\n // Query may ask for a value that doesn't appear in the list, like if the\n // list is [1, 2, 5, 6] and the query is <= 3. In that case we have to\n // apply a search (we'll do binary) to determine the offset to slice from.\n\n // Note: for gte, the valueDesc array must be list at this point\n const values = filterCache.meta.valuesDesc as Array<FilterValue>\n // It shouldn't find the targetValue (but it might) and return the index of\n // the two value between which targetValue sits, or first/last element.\n const point = binarySearchDesc(values, filterValue)\n if (!point) {\n return undefined\n }\n const [pivotMin, pivotMax] = point\n\n // Each pivot index must have a value and a range\n // The returned min/max index may include the lower/upper bound, so we still\n // have to do gte checks for both values.\n let pivotValue = values[pivotMax]\n if (pivotValue < filterValue) {\n pivotValue = values[pivotMin]\n }\n\n // Note: the pivot value _shouldnt_ match the filter value because that\n // means the value was actually found, but those should have been indexed\n // so should have yielded a result in the .get() above.\n\n const [exclPivot, inclPivot] = ranges!.get(pivotValue) as [number, number]\n\n // Note: technically, `5 >= \"5\" === true` but `5` would not be cached.\n // So we have to consider weak comparison and may have to include the pivot\n const until = pivotValue >= filterValue ? inclPivot : exclPivot\n const arr = nodes!.slice(0, until).reverse()\n arr.sort(sortByIds)\n // elemMatch can cause a node to appear in multiple buckets so we must dedupe\n if (wasElemMatch) {\n expensiveDedupeInline(arr)\n }\n return arr\n }\n\n // Unreachable because we checked all values of FilterOp (which op is)\n return undefined\n}\n\nfunction removeBucketFromSet(\n filterValue: FilterValueNullable,\n filterCache: IFilterCache,\n set: Set<IGatsbyNodePartial>\n): void {\n if (filterValue === null) {\n // Edge case: $ne with `null` returns only the nodes that contain the full\n // path and that don't resolve to null, so drop `undefined` as well.\n let cache = filterCache.byValue.get(undefined)\n if (cache) cache.forEach(node => set.delete(node))\n cache = filterCache.byValue.get(null)\n if (cache) cache.forEach(node => set.delete(node))\n } else {\n // Not excluding null so it should include undefined leafs or leafs where\n // only the partial path exists for whatever reason.\n const cache = filterCache.byValue.get(filterValue)\n if (cache) cache.forEach(node => set.delete(node))\n }\n}\n\n/**\n * Finds the intersection of two arrays in O(n) with n = min(a.length, b.length)\n * The returned set should not contain duplicate nodes.\n *\n * The input should be ordered by node.internal.counter and it will return a\n * list that is also ordered by node.internal.counter\n */\nexport function intersectNodesByCounter(\n a: Array<IGatsbyNodePartial>,\n b: Array<IGatsbyNodePartial>\n): Array<IGatsbyNodePartial> {\n let pointerA = 0\n let pointerB = 0\n // TODO: perf check: is it helpful to init the array to min(maxA,maxB) items?\n const result: Array<IGatsbyNodePartial> = []\n const maxA = a.length\n const maxB = b.length\n let lastAdded: IGatsbyNodePartial | undefined = undefined // Used to dedupe the list\n\n while (pointerA < maxA && pointerB < maxB) {\n const counterA = a[pointerA].internal.counter\n const counterB = b[pointerB].internal.counter\n\n if (counterA < counterB) {\n pointerA++\n } else if (counterA > counterB) {\n pointerB++\n } else {\n if (a[pointerA].id !== b[pointerB].id) {\n throw new Error(\n `Invariant violation: inconsistent node counters detected`\n )\n }\n // nodeA===nodeB. Make sure we didn't just add this node already.\n // Since input arrays are sorted, the same node should be grouped\n // back to back, so even if both input arrays contained the same node\n // twice, this check would prevent the result from getting duplicate nodes\n if (lastAdded !== a[pointerA]) {\n result.push(a[pointerA])\n lastAdded = a[pointerA]\n }\n pointerA++\n pointerB++\n }\n }\n\n return result\n}\n\n/**\n * Merge two lists of nodes.\n * The returned set should not contain duplicate nodes.\n *\n * The input should be ordered by node.internal.counter and it will return a\n * list that is also ordered by node.internal.counter\n */\nexport function unionNodesByCounter(\n a: Array<IGatsbyNodePartial>,\n b: Array<IGatsbyNodePartial>\n): Array<IGatsbyNodePartial> {\n // TODO: perf check: is it helpful to init the array to max(maxA,maxB) items?\n const arr: Array<IGatsbyNodePartial> = []\n let lastAdded: IGatsbyNodePartial | undefined = undefined // Used to dedupe the list\n\n let pointerA = 0\n let pointerB = 0\n const maxA = a.length\n const maxB = b.length\n\n while (pointerA < maxA && pointerB < maxB) {\n const counterA = a[pointerA].internal.counter\n const counterB = b[pointerB].internal.counter\n\n if (counterA < counterB) {\n if (lastAdded !== a[pointerA]) {\n arr.push(a[pointerA])\n lastAdded = a[pointerA]\n }\n pointerA++\n } else if (counterA > counterB) {\n if (lastAdded !== b[pointerB]) {\n arr.push(b[pointerB])\n lastAdded = b[pointerB]\n }\n pointerB++\n } else {\n if (lastAdded !== a[pointerA]) {\n arr.push(a[pointerA])\n lastAdded = a[pointerA]\n }\n pointerA++\n pointerB++\n }\n }\n\n while (pointerA < maxA) {\n if (lastAdded !== a[pointerA]) {\n arr.push(a[pointerA])\n lastAdded = a[pointerA]\n }\n pointerA++\n }\n\n while (pointerB < maxB) {\n if (lastAdded !== b[pointerB]) {\n arr.push(b[pointerB])\n lastAdded = b[pointerB]\n }\n pointerB++\n }\n\n return arr\n}\n\nfunction expensiveDedupeInline(arr: Array<IGatsbyNodePartial>): void {\n // An elemMatch filter may cause duplicates to appear in a bucket.\n // Since the bucket is sorted those should now be back to back\n // Worst case this is a fast O(n) loop that does nothing.\n let prev: IGatsbyNodePartial | undefined = undefined\n\n // We copy-on-find because a splice is expensive and we can't use Sets\n\n let j = 0\n for (let i = 0; i < arr.length; ++i) {\n const node = arr[i]\n if (node !== prev) {\n // Only start copying the remainder of the list once a dupe is found\n if (i !== j) {\n arr[j] = node\n }\n ++j\n prev = node\n }\n }\n arr.length = j\n}\n\nexport function getSortFieldIdentifierKeys(\n indexFields: Array<string>,\n resolvedFields: Record<string, any>\n): Array<string> {\n const dottedFields = objectToDottedField(resolvedFields)\n const dottedFieldKeys = Object.keys(dottedFields)\n const fieldKeys = indexFields.map(field => {\n if (\n dottedFields[field] ||\n dottedFieldKeys.some(key => field.startsWith(key))\n ) {\n return `__gatsby_resolved.${field}`\n } else {\n return field\n }\n })\n\n return fieldKeys\n}\n"],"mappings":";;;;;;;;;;;AACA;AAMA;AAEA;AACA;AA8BA,MAAMA,qBAAqB,GAAG,IAAIC,GAAG,EAGlC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,oBAAoB,GAAG,CAClCC,IAAsC,EACtCC,WAA0B,EAC1BC,cAAmC,KACZ;EACvB;EACA,MAAMC,QAAQ,GAAI,GAAEH,IAAI,CAACI,EAAG,QAAOJ,IAAI,CAACK,QAAQ,CAACC,OAAQ,EAAC;EAC1D,IAAIC,YAA4C,GAAGC,SAAS;EAC5D,IAAIX,qBAAqB,CAACY,GAAG,CAACN,QAAQ,CAAC,EAAE;IAAA;IACvCI,YAAY,4BAAGV,qBAAqB,CAACa,GAAG,CAACP,QAAQ,CAAC,0DAAnC,sBAAqCQ,KAAK,EAAE;;IAE3D;IACA,IACEJ,YAAY,IACZ,qBACEN,WAAW,CAACW,GAAG,CAACC,KAAK,IACnBN,YAAY,CAAEO,6BAA6B,CAACb,WAAW,CAACQ,GAAG,CAACI,KAAK,CAAC,CACnE,CACF,EACD;MACA,OAAON,YAAY;IACrB;EACF;;EAEA;EACA;EACA,MAAMQ,YAAY,GAAG,CAAC,CAAC;EACvB,MAAMC,aAAa,GAAGT,YAAY,GAC9B,IAAIU,GAAG,CAAC,CACN,GAAGV,YAAY,CAACO,6BAA6B,CAACb,WAAW,EACzD,GAAGA,WAAW,CACf,CAAC,GACF,IAAIgB,GAAG,CAAChB,WAAW,CAAC;EAExB,MAAMiB,YAAY,GAAGC,0BAA0B,CAC7C,CAAC,GAAGH,aAAa,CAAC,EAClBd,cAAc,CACf;EACD,IAAIkB,cAAuC,GACzCpB,IAAI,CAACc,6BAA6B,GAAGN,SAAS,GAAIR,IAAoB;EACxE,IAAIqB,kBAAkB;EAEtB,KAAK,MAAMC,WAAW,IAAIJ,YAAY,EAAE;IACtC,IAAII,WAAW,IAAItB,IAAI,EAAE;MACvBe,YAAY,CAACO,WAAW,CAAC,GAAGtB,IAAI,CAACsB,WAAW,CAAC;IAC/C,CAAC,MAAM;MACL,IAAIA,WAAW,CAACC,UAAU,CAAE,oBAAmB,CAAC,EAAE;QAChD,IAAI,CAACF,kBAAkB,EAAE;UACvBA,kBAAkB,GAAG,IAAAG,wBAAiB,EAACxB,IAAI,CAAC;QAC9C;QAEAe,YAAY,CAACO,WAAW,CAAC,GAAG,IAAAG,sBAAU,EACpCJ,kBAAkB,EAClBC,WAAW,CAACI,KAAK,CAAE,oBAAmB,CAACC,MAAM,CAAC,CAC/C;MACH,CAAC,MAAM;QACL;QACA;QACA,IAAI,CAACP,cAAc,EAAE;UACnBA,cAAc,GAAG,IAAAQ,UAAO,EAAC5B,IAAI,CAACI,EAAE,CAAE;QACpC;QACAW,YAAY,CAACO,WAAW,CAAC,GAAG,IAAAG,sBAAU,EAACL,cAAc,EAAEE,WAAW,CAAC;MACrE;IACF;EACF;;EAEA;EACA,MAAMO,OAAO,GAAGC,MAAM,CAACC,MAAM,CAAChB,YAAY,EAAE;IAC1CX,EAAE,EAAEJ,IAAI,CAACI,EAAE;IACXC,QAAQ,EAAE;MACRC,OAAO,EAAEN,IAAI,CAACK,QAAQ,CAACC,OAAO;MAC9B0B,IAAI,EAAEhC,IAAI,CAACK,QAAQ,CAAC2B;IACtB,CAAC;IACDlB,6BAA6B,EAAE;MAC7Bb,WAAW,EAAEe;IACf;EACF,CAAC,CAAC;;EAEF;EACAnB,qBAAqB,CAACoC,GAAG,CAAC9B,QAAQ,EAAE,IAAI+B,OAAO,CAAqBL,OAAO,CAAC,CAAC;EAE7E,OAAOA,OAAO;AAChB,CAAC;AAAA;AAED,MAAMM,SAAS,GAAG,CAACC,CAAqB,EAAEC,CAAqB,KAC7DD,CAAC,CAAC/B,QAAQ,CAACC,OAAO,GAAG+B,CAAC,CAAChC,QAAQ,CAACC,OAAO;AAiClC,SAASgC,qBAAqB,CACnCC,WAAyB,EACzBC,EAAY,EACN;EACN;EACA;EACA,KAAK,MAAMC,MAAM,IAAIF,WAAW,CAACG,OAAO,EAAE;IACxCD,MAAM,CAAC,CAAC,CAAC,CAACE,IAAI,CAACR,SAAS,CAAC;EAC3B;EAEA,IAAIK,EAAE,KAAM,KAAI,IAAIA,EAAE,KAAM,MAAK,EAAE;IACjCI,0BAA0B,CAACL,WAAW,CAAC;EACzC,CAAC,MAAM,IAAI,CAAE,KAAI,EAAG,MAAK,EAAG,KAAI,EAAG,MAAK,CAAC,CAACM,QAAQ,CAACL,EAAE,CAAC,EAAE;IACtDM,+BAA+B,CAACP,WAAW,EAAEC,EAAE,CAAC;EAClD;AACF;AAEA,SAASI,0BAA0B,CAACL,WAAyB,EAAQ;EACnE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA,MAAMQ,GAA8B,GAAG,EAAE;EACzCR,WAAW,CAACS,IAAI,CAACC,cAAc,GAAGF,GAAG;EACrCR,WAAW,CAACG,OAAO,CAACQ,OAAO,CAACC,CAAC,IAAI;IAC/BA,CAAC,CAACD,OAAO,CAACE,MAAM,IAAI;MAClBL,GAAG,CAACM,IAAI,CAACD,MAAM,CAAC;IAClB,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;AAEA,SAASN,+BAA+B,CACtCP,WAAyB,EACzBC,EAAY,EACN;EACN;EACA;EACA;EACA;;EAEA,MAAMc,eAEL,GAAG,CAAC,GAAGf,WAAW,CAACG,OAAO,CAACa,OAAO,EAAE,CAAC;;EAEtC;EACA;EACA,MAAMA,OAAwD,GAC5DD,eAAe,CAACE,MAAM,CAAC,CAAC,CAACL,CAAC,CAAC,KAAKA,CAAC,IAAI,IAAI,CAExC;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAIX,EAAE,KAAM,KAAI,IAAIA,EAAE,KAAM,MAAK,EAAE;IACjC;IACAe,OAAO,CAACZ,IAAI,CAAC,CAAC,CAACP,CAAC,CAAC,EAAE,CAACC,CAAC,CAAC,KAAMD,CAAC,GAAGC,CAAC,GAAG,CAAC,CAAC,GAAGD,CAAC,GAAGC,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;EAC1D,CAAC,MAAM,IAAIG,EAAE,KAAM,KAAI,IAAIA,EAAE,KAAM,MAAK,EAAE;IACxC;IACAe,OAAO,CAACZ,IAAI,CAAC,CAAC,CAACP,CAAC,CAAC,EAAE,CAACC,CAAC,CAAC,KAAMD,CAAC,GAAGC,CAAC,GAAG,CAAC,CAAC,GAAGD,CAAC,GAAGC,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;EAC1D;EAEA,MAAMoB,YAAuC,GAAG,EAAE;EAClD,MAAMC,aAAiC,GAAG,EAAE;EAC5C,MAAMC,OAA2C,GAAG,IAAI7D,GAAG,EAAE;EAC7DyD,OAAO,CAACL,OAAO,CAAC,CAAC,CAACC,CAAC,EAAEV,MAAM,CAA2C,KAAK;IACzE;IACA;IACA;IACAkB,OAAO,CAAC1B,GAAG,CAACkB,CAAC,EAAE,CAACM,YAAY,CAAC9B,MAAM,EAAE8B,YAAY,CAAC9B,MAAM,GAAGc,MAAM,CAACd,MAAM,CAAC,CAAC;IAC1E;IACA;IACAc,MAAM,CAACS,OAAO,CAAClD,IAAI,IAAIyD,YAAY,CAACJ,IAAI,CAACrD,IAAI,CAAC,CAAC;IAC/C0D,aAAa,CAACL,IAAI,CAACF,CAAC,CAAC;EACvB,CAAC,CAAC;EAEF,IAAIX,EAAE,KAAM,KAAI,IAAIA,EAAE,KAAM,MAAK,EAAE;IACjCD,WAAW,CAACS,IAAI,CAACY,SAAS,GAAGF,aAAa;IAC1CnB,WAAW,CAACS,IAAI,CAACa,eAAe,GAAGJ,YAAY;IAC/C;IACA;IACA;IACAlB,WAAW,CAACS,IAAI,CAACc,cAAc,GAAGH,OAAO;EAC3C,CAAC,MAAM,IAAInB,EAAE,KAAM,KAAI,IAAIA,EAAE,KAAM,MAAK,EAAE;IACxCD,WAAW,CAACS,IAAI,CAACe,UAAU,GAAGL,aAAa;IAC3CnB,WAAW,CAACS,IAAI,CAACgB,gBAAgB,GAAGP,YAAY;IAChD;IACA;IACA;IACAlB,WAAW,CAACS,IAAI,CAACiB,eAAe,GAAGN,OAAO;EAC5C;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMO,kBAAkB,GAAG,CAChC1B,EAAY,EACZ2B,cAA8B,EAC9BC,UAAyB,EACzBC,aAA4B,EAC5BC,YAA0B,EAC1BrE,WAA0B,EAC1BC,cAAmC,KAC1B;EACT,MAAMqC,WAAyB,GAAG;IAChCC,EAAE;IACFE,OAAO,EAAE,IAAI5C,GAAG,EAAkD;IAClEkD,IAAI,EAAE,CAAC;EACT,CAAiB;EACjBsB,YAAY,CAACrC,GAAG,CAACkC,cAAc,EAAE5B,WAAW,CAAC;;EAE7C;EACA;EACA;;EAEA,IAAI8B,aAAa,CAAC1C,MAAM,KAAK,CAAC,EAAE;IAC9B,IAAA4C,eAAY,GAAE,CACXC,kBAAkB,CAACH,aAAa,CAAC,CAAC,CAAC,CAAC,CACpCnB,OAAO,CAAClD,IAAI,IAAI;MACfyE,oBAAoB,CAAC;QACnBzE,IAAI;QACJ0E,KAAK,EAAEN,UAAU;QACjB7B,WAAW;QACXtC,WAAW;QACXC;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;EACN,CAAC,MAAM;IACL;IACA;IACA,IAAAqE,eAAY,GAAE,CACXI,YAAY,EAAE,CACdzB,OAAO,CAAClD,IAAI,IAAI;MACf,IAAI,CAACqE,aAAa,CAACxB,QAAQ,CAAC7C,IAAI,CAACK,QAAQ,CAAC2B,IAAI,CAAC,EAAE;QAC/C;MACF;MAEAyC,oBAAoB,CAAC;QACnBzE,IAAI;QACJ0E,KAAK,EAAEN,UAAU;QACjB7B,WAAW;QACXtC,WAAW;QACXC;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;EACN;EAEAoC,qBAAqB,CAACC,WAAW,EAAEC,EAAE,CAAC;AACxC,CAAC;AAAA;AAEM,SAASoC,sBAAsB,CACpCT,cAAc,EACdE,aAA4B,EAC5BC,YAA0B,EAC1BrE,WAA0B,EAC1BC,cAAmC,EAC7B;EACN;EACA;EACA;;EAEA,MAAM2E,gBAA2C,GAAG,EAAE;EAEtDP,YAAY,CAACrC,GAAG,CAACkC,cAAc,EAAE;IAC/B3B,EAAE,EAAG,KAAI;IAAE;IACXE,OAAO,EAAE,IAAI5C,GAAG,EAAkD;IAClEkD,IAAI,EAAE;MACJ6B,gBAAgB,CAAE;IACpB;EACF,CAAC,CAAC;;EAEF,IAAIR,aAAa,CAAC1C,MAAM,KAAK,CAAC,EAAE;IAC9B,IAAA4C,eAAY,GAAE,CACXC,kBAAkB,CAACH,aAAa,CAAC,CAAC,CAAC,CAAC,CACpCnB,OAAO,CAAClD,IAAI,IAAI;MACf6E,gBAAgB,CAACxB,IAAI,CACnBtD,oBAAoB,CAACC,IAAI,EAAEC,WAAW,EAAEC,cAAc,CAAC,CACxD;IACH,CAAC,CAAC;EACN,CAAC,MAAM;IACL;IACA;IACA,IAAAqE,eAAY,GAAE,CACXI,YAAY,EAAE,CACdzB,OAAO,CAAClD,IAAI,IAAI;MACf,IAAIqE,aAAa,CAACxB,QAAQ,CAAC7C,IAAI,CAACK,QAAQ,CAAC2B,IAAI,CAAC,EAAE;QAC9C6C,gBAAgB,CAACxB,IAAI,CACnBtD,oBAAoB,CAACC,IAAI,EAAEC,WAAW,EAAEC,cAAc,CAAC,CACxD;MACH;IACF,CAAC,CAAC;EACN;;EAEA;EACA;EACA2E,gBAAgB,CAAClC,IAAI,CAACR,SAAS,CAAC;AAClC;AAEA,SAASsC,oBAAoB,CAAC;EAC5BzE,IAAI;EACJ0E,KAAK;EACLnC,WAAW;EACXtC,WAAW;EACXC,cAAc;EACd4E,WAAW,GAAG9E;AAQhB,CAAC,EAAQ;EACP;EACA;EACA,IAAImD,CAAC,GAAG2B,WAAkB;EAC1B,IAAIC,CAAC,GAAG,CAAC;EACT,OAAOA,CAAC,GAAGL,KAAK,CAAC/C,MAAM,IAAIwB,CAAC,EAAE;IAC5B,MAAM6B,QAAQ,GAAGN,KAAK,CAACK,CAAC,EAAE,CAAC;IAC3B,IAAIA,CAAC,KAAK,CAAC,IAAIC,QAAQ,KAAM,mBAAkB,EAAE;MAC/C7B,CAAC,GAAG,IAAA3B,wBAAiB,EAAC2B,CAAC,CAAC;IAC1B,CAAC,MAAM;MACLA,CAAC,GAAGA,CAAC,CAAC6B,QAAQ,CAAC;IACjB;EACF;EAEA,IACG,OAAO7B,CAAC,KAAM,QAAO,IACpB,OAAOA,CAAC,KAAM,QAAO,IACrB,OAAOA,CAAC,KAAM,SAAQ,IACtBA,CAAC,KAAK,IAAI,IACZ4B,CAAC,KAAKL,KAAK,CAAC/C,MAAM,EAClB;IACA,IAAIoD,CAAC,KAAKL,KAAK,CAAC/C,MAAM,IAAIsD,KAAK,CAACC,OAAO,CAAC/B,CAAC,CAAC,EAAE;MAC1C;MACA;MACA;;MAEAA,CAAC,CAACD,OAAO,CAACC,CAAC,IACTgC,gBAAgB,CAAC5C,WAAW,EAAEvC,IAAI,EAAEmD,CAAC,EAAElD,WAAW,EAAEC,cAAc,CAAC,CACpE;MAED;IACF;;IAEA;IACA;IACA;IACA;IACAiD,CAAC,GAAG3C,SAAS;EACf;EAEA2E,gBAAgB,CAAC5C,WAAW,EAAEvC,IAAI,EAAEmD,CAAC,EAAElD,WAAW,EAAEC,cAAc,CAAC;AACrE;AAEA,SAASiF,gBAAgB,CACvB5C,WAAyB,EACzBvC,IAAiB,EACjBoF,KAA0B,EAC1BnF,WAA0B,EAC1BC,cAAmC,EAC7B;EACN,IAAI6C,GAAG,GAAGR,WAAW,CAACG,OAAO,CAAChC,GAAG,CAAC0E,KAAK,CAAC;EACxC,IAAI,CAACrC,GAAG,EAAE;IACRA,GAAG,GAAG,EAAE;IACRR,WAAW,CAACG,OAAO,CAACT,GAAG,CAACmD,KAAK,EAAErC,GAAG,CAAC;EACrC;EAEA,MAAMlB,OAAO,GAAG9B,oBAAoB,CAACC,IAAI,EAAEC,WAAW,EAAEC,cAAc,CAAC;EACvE,IAAI,CAAC6C,GAAG,CAACF,QAAQ,CAAChB,OAAO,CAAC,EAAE;IAC1BkB,GAAG,CAACM,IAAI,CAACxB,OAAO,CAAC;EACnB;AACF;AAEO,MAAMwD,sBAAsB,GAAG,CACpC7C,EAAY,EACZ2B,cAA8B,EAC9BX,MAAyB,EACzBa,aAA4B,EAC5BC,YAA0B,EAC1BrE,WAA0B,EAC1BC,cAAmC,KAC1B;EACT;EACA;;EAEA,MAAMqC,WAAyB,GAAG;IAChCC,EAAE;IACFE,OAAO,EAAE,IAAI5C,GAAG,EAAkD;IAClEkD,IAAI,EAAE,CAAC;EACT,CAAiB;EACjBsB,YAAY,CAACrC,GAAG,CAACkC,cAAc,EAAE5B,WAAW,CAAC;EAE7C,IAAI8B,aAAa,CAAC1C,MAAM,KAAK,CAAC,EAAE;IAC9B,IAAA4C,eAAY,GAAE,CACXC,kBAAkB,CAACH,aAAa,CAAC,CAAC,CAAC,CAAC,CACpCnB,OAAO,CAAClD,IAAI,IAAI;MACfsF,4BAA4B,CAAC;QAC3BtF,IAAI;QACJuF,kBAAkB,EAAEvF,IAAI;QACxBwD,MAAM;QACNjB,WAAW;QACXtC,WAAW;QACXC;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;EACN,CAAC,MAAM;IACL;IACA,IAAAqE,eAAY,GAAE,CACXI,YAAY,EAAE,CACdzB,OAAO,CAAClD,IAAI,IAAI;MACf,IAAI,CAACqE,aAAa,CAACxB,QAAQ,CAAC7C,IAAI,CAACK,QAAQ,CAAC2B,IAAI,CAAC,EAAE;QAC/C;MACF;MAEAsD,4BAA4B,CAAC;QAC3BtF,IAAI;QACJuF,kBAAkB,EAAEvF,IAAI;QACxBwD,MAAM;QACNjB,WAAW;QACXtC,WAAW;QACXC;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;EACN;EAEAoC,qBAAqB,CAACC,WAAW,EAAEC,EAAE,CAAC;AACxC,CAAC;AAAA;AAED,SAAS8C,4BAA4B,CAAC;EACpCtF,IAAI;EACJuF,kBAAkB;EAAE;EACpB/B,MAAM;EACNjB,WAAW;EACXtC,WAAW;EACXC;AAQF,CAAC,EAAQ;EACP,MAAM;IAAEsF,IAAI;IAAEC;EAAY,CAAC,GAAGjC,MAAM;;EAEpC;EACA,IAAIuB,CAAC,GAAG,CAAC;EACT,OAAOA,CAAC,GAAGS,IAAI,CAAC7D,MAAM,IAAI4D,kBAAkB,EAAE;IAC5C,MAAMP,QAAQ,GAAGQ,IAAI,CAACT,CAAC,EAAE,CAAC;IAC1B,IAAIA,CAAC,KAAK,CAAC,IAAIC,QAAQ,KAAM,mBAAkB,EAAE;MAC/CO,kBAAkB,GAAG,IAAA/D,wBAAiB,EAAC+D,kBAAkB,CAAC;IAC5D,CAAC,MAAM;MACLA,kBAAkB,GAAGA,kBAAkB,CAACP,QAAQ,CAAC;IACnD;EACF;EAEA,IAAIQ,IAAI,CAAC7D,MAAM,KAAKoD,CAAC,EAAE;IACrB;IACA;EACF;;EAEA;EACA,IAAI,CAACE,KAAK,CAACC,OAAO,CAACK,kBAAkB,CAAC,EAAE;IACtC;IACAA,kBAAkB,GAAG,CAACA,kBAAkB,CAAC;EAC3C;;EAEA;EACA;EACA;EACA;EACAA,kBAAkB,CAACrC,OAAO,CAACwC,IAAI,IAAI;IACjC,IAAID,WAAW,CAACzD,IAAI,KAAM,WAAU,EAAE;MACpCsD,4BAA4B,CAAC;QAC3BtF,IAAI;QACJuF,kBAAkB,EAAEG,IAAI;QACxBlC,MAAM,EAAEiC,WAAW;QACnBlD,WAAW;QACXtC,WAAW;QACXC;MACF,CAAC,CAAC;IACJ,CAAC,MAAM;MACL;MACAuE,oBAAoB,CAAC;QACnBzE,IAAI;QACJ0E,KAAK,EAAEe,WAAW,CAACD,IAAI;QACvBjD,WAAW;QACXtC,WAAW;QACXC,cAAc;QACd4E,WAAW,EAAEY;MACf,CAAC,CAAC;IACJ;EACF,CAAC,CAAC;AACJ;AAEA,MAAMC,eAAe,GAAG,CACtBC,MAA0B,EAC1BC,MAAmB,KACc;EACjC,IAAIC,GAAG,GAAG,CAAC;EACX,IAAIC,GAAG,GAAGH,MAAM,CAACjE,MAAM,GAAG,CAAC;EAC3B,IAAIqE,KAAK,GAAGC,IAAI,CAACC,KAAK,CAACN,MAAM,CAACjE,MAAM,GAAG,CAAC,CAAC;EACzC,OAAOmE,GAAG,IAAIC,GAAG,EAAE;IACjB,MAAMX,KAAK,GAAGQ,MAAM,CAACI,KAAK,CAAC;IAC3B,IAAIH,MAAM,GAAGT,KAAK,EAAE;MAClB;MACA;MACAW,GAAG,GAAGC,KAAK;IACb,CAAC,MAAM,IAAIH,MAAM,GAAGT,KAAK,EAAE;MACzB;MACA;MACAU,GAAG,GAAGE,KAAK;IACb,CAAC,MAAM;MACL;MACA;MACA,OAAO,CAACA,KAAK,EAAEA,KAAK,CAAC;IACvB;IAEA,IAAID,GAAG,GAAGD,GAAG,IAAI,CAAC,EAAE;MAClB;MACA;MACA,OAAO,CAACA,GAAG,EAAEC,GAAG,CAAC;IACnB;IAEAC,KAAK,GAAGF,GAAG,GAAGG,IAAI,CAACC,KAAK,CAAC,CAACH,GAAG,GAAGD,GAAG,IAAI,CAAC,CAAC;EAC3C;;EAEA;EACA,OAAOtF,SAAS;AAClB,CAAC;AACD,MAAM2F,gBAAgB,GAAG,CACvBP,MAA0B,EAC1BC,MAAmB,KACc;EACjC,IAAIC,GAAG,GAAG,CAAC;EACX,IAAIC,GAAG,GAAGH,MAAM,CAACjE,MAAM,GAAG,CAAC;EAC3B,IAAIqE,KAAK,GAAGC,IAAI,CAACC,KAAK,CAACN,MAAM,CAACjE,MAAM,GAAG,CAAC,CAAC;EACzC,OAAOmE,GAAG,IAAIC,GAAG,EAAE;IACjB,MAAMX,KAAK,GAAGQ,MAAM,CAACI,KAAK,CAAC;IAC3B,IAAIH,MAAM,GAAGT,KAAK,EAAE;MAClB;MACA;MACAU,GAAG,GAAGE,KAAK;IACb,CAAC,MAAM,IAAIH,MAAM,GAAGT,KAAK,EAAE;MACzB;MACA;MACAW,GAAG,GAAGC,KAAK;IACb,CAAC,MAAM;MACL;MACA;MACA,OAAO,CAACA,KAAK,EAAEA,KAAK,CAAC;IACvB;IAEA,IAAID,GAAG,GAAGD,GAAG,IAAI,CAAC,EAAE;MAClB;MACA;MACA,OAAO,CAACA,GAAG,EAAEC,GAAG,CAAC;IACnB;IAEAC,KAAK,GAAGF,GAAG,GAAGG,IAAI,CAACC,KAAK,CAAC,CAACH,GAAG,GAAGD,GAAG,IAAI,CAAC,CAAC;EAC3C;;EAEA;EACA,OAAOtF,SAAS;AAClB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM4F,wBAAwB,GAAG,CACtCjC,cAA8B,EAC9BkC,WAAgC,EAChC/B,YAA0B,EAC1BgC,YAAY,KAC8B;EAC1C,MAAM/D,WAAW,GAAG+B,YAAY,CAAC5D,GAAG,CAACyD,cAAc,CAAC;EACpD,IAAI,CAAC5B,WAAW,EAAE;IAChB,OAAO/B,SAAS;EAClB;EAEA,MAAMgC,EAAE,GAAGD,WAAW,CAACC,EAAE;EAEzB,IAAIA,EAAE,KAAM,KAAI,EAAE;IAChB;;IAEA,IAAI6D,WAAW,IAAI,IAAI,EAAE;MAAA;MACvB;MACA;MACA;;MAEA,MAAME,OAAO,4BAAGhE,WAAW,CAACG,OAAO,CAAChC,GAAG,CAAC,IAAI,CAAC,yEAAI,EAAE;MACnD,MAAM8F,QAAQ,6BAAGjE,WAAW,CAACG,OAAO,CAAChC,GAAG,CAACF,SAAS,CAAC,2EAAI,EAAE;;MAEzD;MACA;MACA,OAAOiG,mBAAmB,CAACF,OAAO,EAAEC,QAAQ,CAAC;IAC/C;IAEA,OAAOjE,WAAW,CAACG,OAAO,CAAChC,GAAG,CAAC2F,WAAW,CAAC;EAC7C;EAEA,IAAI7D,EAAE,KAAM,KAAI,EAAE;IAChB,IAAI,CAACyC,KAAK,CAACC,OAAO,CAACmB,WAAW,CAAC,EAAE;MAC/B,MAAM,IAAIK,KAAK,CAAC,wDAAwD,CAAC;IAC3E;IACA,MAAMC,cAA0C,GAAGN,WAAW;IAE9D,MAAMpE,GAA4B,GAAG,IAAIhB,GAAG,EAAE;;IAE9C;IACA;IACA;IACA0F,cAAc,CAACzD,OAAO,CAAEC,CAAsB;MAAA;MAAA,iCAC5CZ,WAAW,CAACG,OAAO,CAAChC,GAAG,CAACyC,CAAC,CAAC,2DAA1B,uBAA4BD,OAAO,CAACC,CAAC,IAAIlB,GAAG,CAAC2E,GAAG,CAACzD,CAAC,CAAC,CAAC;IAAA,EACrD;IAED,MAAMJ,GAAG,GAAG,CAAC,GAAGd,GAAG,CAAC,EAAC;IACrBc,GAAG,CAACJ,IAAI,CAACR,SAAS,CAAC;;IAEnB;IACA,IAAIwE,cAAc,CAAC9D,QAAQ,CAAC,IAAI,CAAC,EAAE;MACjC;MACA;MACA,MAAMgE,KAAK,GAAGtE,WAAW,CAACG,OAAO,CAAChC,GAAG,CAACF,SAAS,CAAC;MAChD,IAAIqG,KAAK,EAAE;QACT;QACA,OAAOJ,mBAAmB,CAACI,KAAK,EAAE9D,GAAG,CAAC;MACxC;IACF;;IAEA;IACA,IAAIuD,YAAY,EAAE;MAChBQ,qBAAqB,CAAC/D,GAAG,CAAC;IAC5B;IAEA,OAAOA,GAAG;EACZ;EAEA,IAAIP,EAAE,KAAM,MAAK,EAAE;IACjB;IACA;;IAEA,IAAI,CAACyC,KAAK,CAACC,OAAO,CAACmB,WAAW,CAAC,EAAE;MAC/B,MAAM,IAAIK,KAAK,CAAE,6CAA4C,CAAC;IAChE;IAEA,MAAMd,MAAgC,GAAG,IAAI3E,GAAG,CAACoF,WAAW,CAAC;IAC7D,MAAMpE,GAAG,GAAG,IAAIhB,GAAG,CAACsB,WAAW,CAACS,IAAI,CAACC,cAAc,CAAC;;IAEpD;IACA2C,MAAM,CAAC1C,OAAO,CAACmD,WAAW,IAAI;MAC5BU,mBAAmB,CAACV,WAAW,EAAE9D,WAAW,EAAEN,GAAG,CAAC;IACpD,CAAC,CAAC;;IAEF;IACA;IACA,OAAO,CAAC,GAAGA,GAAG,CAAC,CAACU,IAAI,CAACR,SAAS,CAAC;EACjC;EAEA,IAAIK,EAAE,KAAM,KAAI,EAAE;IAChB,MAAMP,GAAG,GAAG,IAAIhB,GAAG,CAACsB,WAAW,CAACS,IAAI,CAACC,cAAc,CAAC;IAEpD8D,mBAAmB,CAACV,WAAW,EAAE9D,WAAW,EAAEN,GAAG,CAAC;;IAElD;IACA;IACA,OAAO,CAAC,GAAGA,GAAG,CAAC,CAACU,IAAI,CAACR,SAAS,CAAC;EACjC;EAEA,IAAIK,EAAE,KAAM,QAAO,EAAE;IACnB;IACA;;IAEA;IACA;;IAEA,IAAI,EAAE6D,WAAW,YAAYW,MAAM,CAAC,EAAE;MACpC,MAAM,IAAIN,KAAK,CACZ,mEAAkE,CACpE;IACH;IACA,MAAMO,KAAK,GAAGZ,WAAW;IAEzB,MAAMtD,GAA8B,GAAG,EAAE;IACzCR,WAAW,CAACG,OAAO,CAACQ,OAAO,CAAC,CAAC2D,KAAK,EAAEzB,KAAK,KAAK;MAC5C;MACA;MACA,IAAIA,KAAK,KAAK5E,SAAS,IAAIyG,KAAK,CAACC,IAAI,CAACC,MAAM,CAAC/B,KAAK,CAAC,CAAC,EAAE;QACpDyB,KAAK,CAAC3D,OAAO,CAAClD,IAAI,IAAI+C,GAAG,CAACM,IAAI,CAACrD,IAAI,CAAC,CAAC;MACvC;IACF,CAAC,CAAC;;IAEF;IACA;;IAEA+C,GAAG,CAACJ,IAAI,CAACR,SAAS,CAAC;;IAEnB;IACA,IAAImE,YAAY,EAAE;MAChBQ,qBAAqB,CAAC/D,GAAG,CAAC;IAC5B;IAEA,OAAOA,GAAG;EACZ;EAEA,IAAIsD,WAAW,IAAI,IAAI,EAAE;IACvB,IAAI7D,EAAE,KAAM,KAAI,IAAIA,EAAE,KAAM,KAAI,EAAE;MAChC;MACA,OAAOhC,SAAS;IAClB;;IAEA;IACA;IACA,OAAO+B,WAAW,CAACG,OAAO,CAAChC,GAAG,CAAC2F,WAAW,CAAC;EAC7C;EAEA,IAAIpB,KAAK,CAACC,OAAO,CAACmB,WAAW,CAAC,EAAE;IAC9B,MAAM,IAAIK,KAAK,CACb,4CAA4C,GAAGlE,EAAE,GAAG,cAAc,CACnE;EACH;EAEA,IAAI6D,WAAW,YAAYW,MAAM,EAAE;IACjC;IACA;IACA,MAAM,IAAIN,KAAK,CACZ,kEAAiE,CACnE;EACH;EAEA,IAAIlE,EAAE,KAAM,KAAI,EAAE;IAChB;IACA;;IAEA,MAAM4E,MAAM,GAAG7E,WAAW,CAACS,IAAI,CAACc,cAAc;IAC9C,MAAM+C,KAAK,GAAGtE,WAAW,CAACS,IAAI,CAACa,eAAe;IAE9C,MAAMwD,KAAK,GAAGD,MAAM,CAAE1G,GAAG,CAAC2F,WAAW,CAAC;IACtC,IAAIgB,KAAK,EAAE;MACT,MAAMtE,GAAG,GAAG8D,KAAK,CAAEnF,KAAK,CAAC,CAAC,EAAE2F,KAAK,CAAC,CAAC,CAAC,CAAC;MACrCtE,GAAG,CAACJ,IAAI,CAACR,SAAS,CAAC;MACnB;MACA,IAAImE,YAAY,EAAE;QAChBQ,qBAAqB,CAAC/D,GAAG,CAAC;MAC5B;MACA,OAAOA,GAAG;IACZ;;IAEA;IACA;IACA;;IAEA;IACA,MAAM6C,MAAM,GAAGrD,WAAW,CAACS,IAAI,CAACY,SAA+B;IAC/D;IACA;IACA,MAAM0D,KAAK,GAAG3B,eAAe,CAACC,MAAM,EAAES,WAAW,CAAC;IAClD,IAAI,CAACiB,KAAK,EAAE;MACV,OAAO9G,SAAS;IAClB;IACA,MAAM,CAAC+G,QAAQ,EAAEC,QAAQ,CAAC,GAAGF,KAAK;;IAElC;IACA;IACA;IACA,IAAIG,UAAU,GAAG7B,MAAM,CAAC4B,QAAQ,CAAC;IACjC,IAAIC,UAAU,GAAGpB,WAAW,EAAE;MAC5BoB,UAAU,GAAG7B,MAAM,CAAC2B,QAAQ,CAAC;IAC/B;;IAEA;IACA;IACA;;IAEA,MAAM,CAACG,SAAS,EAAEC,SAAS,CAAC,GAAGP,MAAM,CAAE1G,GAAG,CAAC+G,UAAU,CAAqB;;IAE1E;IACA;IACA,MAAMG,KAAK,GAAGH,UAAU,GAAGpB,WAAW,GAAGsB,SAAS,GAAGD,SAAS;IAC9D,MAAM3E,GAAG,GAAG8D,KAAK,CAAEnF,KAAK,CAAC,CAAC,EAAEkG,KAAK,CAAC;IAClC7E,GAAG,CAACJ,IAAI,CAACR,SAAS,CAAC;IACnB;IACA,IAAImE,YAAY,EAAE;MAChBQ,qBAAqB,CAAC/D,GAAG,CAAC;IAC5B;IACA,OAAOA,GAAG;EACZ;EAEA,IAAIP,EAAE,KAAM,MAAK,EAAE;IACjB;IACA;;IAEA,MAAM4E,MAAM,GAAG7E,WAAW,CAACS,IAAI,CAACc,cAAc;IAC9C,MAAM+C,KAAK,GAAGtE,WAAW,CAACS,IAAI,CAACa,eAAe;IAE9C,MAAMwD,KAAK,GAAGD,MAAM,CAAE1G,GAAG,CAAC2F,WAAW,CAAC;IACtC,IAAIgB,KAAK,EAAE;MACT,MAAMtE,GAAG,GAAG8D,KAAK,CAAEnF,KAAK,CAAC,CAAC,EAAE2F,KAAK,CAAC,CAAC,CAAC,CAAC;MACrCtE,GAAG,CAACJ,IAAI,CAACR,SAAS,CAAC;MACnB;MACA,IAAImE,YAAY,EAAE;QAChBQ,qBAAqB,CAAC/D,GAAG,CAAC;MAC5B;MACA,OAAOA,GAAG;IACZ;;IAEA;IACA;IACA;;IAEA;IACA,MAAM6C,MAAM,GAAGrD,WAAW,CAACS,IAAI,CAACY,SAA+B;IAC/D;IACA;IACA,MAAM0D,KAAK,GAAG3B,eAAe,CAACC,MAAM,EAAES,WAAW,CAAC;IAClD,IAAI,CAACiB,KAAK,EAAE;MACV,OAAO9G,SAAS;IAClB;IACA,MAAM,CAAC+G,QAAQ,EAAEC,QAAQ,CAAC,GAAGF,KAAK;;IAElC;IACA;IACA;IACA,IAAIG,UAAU,GAAG7B,MAAM,CAAC4B,QAAQ,CAAC;IACjC,IAAIC,UAAU,GAAGpB,WAAW,EAAE;MAC5BoB,UAAU,GAAG7B,MAAM,CAAC2B,QAAQ,CAAC;IAC/B;;IAEA;IACA;IACA;;IAEA,MAAM,CAACG,SAAS,EAAEC,SAAS,CAAC,GAAGP,MAAM,CAAE1G,GAAG,CAAC+G,UAAU,CAAqB;;IAE1E;IACA;IACA,MAAMG,KAAK,GAAGH,UAAU,IAAIpB,WAAW,GAAGsB,SAAS,GAAGD,SAAS;IAC/D,MAAM3E,GAAG,GAAG8D,KAAK,CAAEnF,KAAK,CAAC,CAAC,EAAEkG,KAAK,CAAC;IAClC7E,GAAG,CAACJ,IAAI,CAACR,SAAS,CAAC;IACnB;IACA,IAAImE,YAAY,EAAE;MAChBQ,qBAAqB,CAAC/D,GAAG,CAAC;IAC5B;IACA,OAAOA,GAAG;EACZ;EAEA,IAAIP,EAAE,KAAM,KAAI,EAAE;IAChB;IACA;;IAEA,MAAM4E,MAAM,GAAG7E,WAAW,CAACS,IAAI,CAACiB,eAAe;IAC/C,MAAM4C,KAAK,GAAGtE,WAAW,CAACS,IAAI,CAACgB,gBAAgB;IAE/C,MAAMqD,KAAK,GAAGD,MAAM,CAAE1G,GAAG,CAAC2F,WAAW,CAAC;IACtC,IAAIgB,KAAK,EAAE;MACT,MAAMtE,GAAG,GAAG8D,KAAK,CAAEnF,KAAK,CAAC,CAAC,EAAE2F,KAAK,CAAC,CAAC,CAAC,CAAC,CAACQ,OAAO,EAAE;MAC/C9E,GAAG,CAACJ,IAAI,CAACR,SAAS,CAAC;MACnB;MACA,IAAImE,YAAY,EAAE;QAChBQ,qBAAqB,CAAC/D,GAAG,CAAC;MAC5B;MACA,OAAOA,GAAG;IACZ;;IAEA;IACA;IACA;;IAEA;IACA,MAAM6C,MAAM,GAAGrD,WAAW,CAACS,IAAI,CAACe,UAAgC;IAChE;IACA;IACA,MAAMuD,KAAK,GAAGnB,gBAAgB,CAACP,MAAM,EAAES,WAAW,CAAC;IACnD,IAAI,CAACiB,KAAK,EAAE;MACV,OAAO9G,SAAS;IAClB;IACA,MAAM,CAAC+G,QAAQ,EAAEC,QAAQ,CAAC,GAAGF,KAAK;;IAElC;IACA;IACA;IACA,IAAIG,UAAU,GAAG7B,MAAM,CAAC4B,QAAQ,CAAC;IACjC,IAAIC,UAAU,GAAGpB,WAAW,EAAE;MAC5BoB,UAAU,GAAG7B,MAAM,CAAC2B,QAAQ,CAAC;IAC/B;;IAEA;IACA;IACA;;IAEA,MAAM,CAACG,SAAS,EAAEC,SAAS,CAAC,GAAGP,MAAM,CAAE1G,GAAG,CAAC+G,UAAU,CAAqB;;IAE1E;IACA;IACA,MAAMG,KAAK,GAAGH,UAAU,GAAGpB,WAAW,GAAGsB,SAAS,GAAGD,SAAS;IAC9D,MAAM3E,GAAG,GAAG8D,KAAK,CAAEnF,KAAK,CAAC,CAAC,EAAEkG,KAAK,CAAC,CAACC,OAAO,EAAE;IAC5C9E,GAAG,CAACJ,IAAI,CAACR,SAAS,CAAC;IACnB;IACA,IAAImE,YAAY,EAAE;MAChBQ,qBAAqB,CAAC/D,GAAG,CAAC;IAC5B;IACA,OAAOA,GAAG;EACZ;EAEA,IAAIP,EAAE,KAAM,MAAK,EAAE;IACjB;IACA;;IAEA,MAAM4E,MAAM,GAAG7E,WAAW,CAACS,IAAI,CAACiB,eAAe;IAC/C,MAAM4C,KAAK,GAAGtE,WAAW,CAACS,IAAI,CAACgB,gBAAgB;IAE/C,MAAMqD,KAAK,GAAGD,MAAM,CAAE1G,GAAG,CAAC2F,WAAW,CAAC;IACtC,IAAIgB,KAAK,EAAE;MACT,MAAMtE,GAAG,GAAG8D,KAAK,CAAEnF,KAAK,CAAC,CAAC,EAAE2F,KAAK,CAAC,CAAC,CAAC,CAAC,CAACQ,OAAO,EAAE;MAC/C9E,GAAG,CAACJ,IAAI,CAACR,SAAS,CAAC;MACnB;MACA,IAAImE,YAAY,EAAE;QAChBQ,qBAAqB,CAAC/D,GAAG,CAAC;MAC5B;MACA,OAAOA,GAAG;IACZ;;IAEA;IACA;IACA;;IAEA;IACA,MAAM6C,MAAM,GAAGrD,WAAW,CAACS,IAAI,CAACe,UAAgC;IAChE;IACA;IACA,MAAMuD,KAAK,GAAGnB,gBAAgB,CAACP,MAAM,EAAES,WAAW,CAAC;IACnD,IAAI,CAACiB,KAAK,EAAE;MACV,OAAO9G,SAAS;IAClB;IACA,MAAM,CAAC+G,QAAQ,EAAEC,QAAQ,CAAC,GAAGF,KAAK;;IAElC;IACA;IACA;IACA,IAAIG,UAAU,GAAG7B,MAAM,CAAC4B,QAAQ,CAAC;IACjC,IAAIC,UAAU,GAAGpB,WAAW,EAAE;MAC5BoB,UAAU,GAAG7B,MAAM,CAAC2B,QAAQ,CAAC;IAC/B;;IAEA;IACA;IACA;;IAEA,MAAM,CAACG,SAAS,EAAEC,SAAS,CAAC,GAAGP,MAAM,CAAE1G,GAAG,CAAC+G,UAAU,CAAqB;;IAE1E;IACA;IACA,MAAMG,KAAK,GAAGH,UAAU,IAAIpB,WAAW,GAAGsB,SAAS,GAAGD,SAAS;IAC/D,MAAM3E,GAAG,GAAG8D,KAAK,CAAEnF,KAAK,CAAC,CAAC,EAAEkG,KAAK,CAAC,CAACC,OAAO,EAAE;IAC5C9E,GAAG,CAACJ,IAAI,CAACR,SAAS,CAAC;IACnB;IACA,IAAImE,YAAY,EAAE;MAChBQ,qBAAqB,CAAC/D,GAAG,CAAC;IAC5B;IACA,OAAOA,GAAG;EACZ;;EAEA;EACA,OAAOvC,SAAS;AAClB,CAAC;AAAA;AAED,SAASuG,mBAAmB,CAC1BV,WAAgC,EAChC9D,WAAyB,EACzBN,GAA4B,EACtB;EACN,IAAIoE,WAAW,KAAK,IAAI,EAAE;IACxB;IACA;IACA,IAAIyB,KAAK,GAAGvF,WAAW,CAACG,OAAO,CAAChC,GAAG,CAACF,SAAS,CAAC;IAC9C,IAAIsH,KAAK,EAAEA,KAAK,CAAC5E,OAAO,CAAClD,IAAI,IAAIiC,GAAG,CAAC8F,MAAM,CAAC/H,IAAI,CAAC,CAAC;IAClD8H,KAAK,GAAGvF,WAAW,CAACG,OAAO,CAAChC,GAAG,CAAC,IAAI,CAAC;IACrC,IAAIoH,KAAK,EAAEA,KAAK,CAAC5E,OAAO,CAAClD,IAAI,IAAIiC,GAAG,CAAC8F,MAAM,CAAC/H,IAAI,CAAC,CAAC;EACpD,CAAC,MAAM;IACL;IACA;IACA,MAAM8H,KAAK,GAAGvF,WAAW,CAACG,OAAO,CAAChC,GAAG,CAAC2F,WAAW,CAAC;IAClD,IAAIyB,KAAK,EAAEA,KAAK,CAAC5E,OAAO,CAAClD,IAAI,IAAIiC,GAAG,CAAC8F,MAAM,CAAC/H,IAAI,CAAC,CAAC;EACpD;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASgI,uBAAuB,CACrC5F,CAA4B,EAC5BC,CAA4B,EACD;EAC3B,IAAI4F,QAAQ,GAAG,CAAC;EAChB,IAAIC,QAAQ,GAAG,CAAC;EAChB;EACA,MAAMC,MAAiC,GAAG,EAAE;EAC5C,MAAMC,IAAI,GAAGhG,CAAC,CAACT,MAAM;EACrB,MAAM0G,IAAI,GAAGhG,CAAC,CAACV,MAAM;EACrB,IAAI2G,SAAyC,GAAG9H,SAAS,EAAC;;EAE1D,OAAOyH,QAAQ,GAAGG,IAAI,IAAIF,QAAQ,GAAGG,IAAI,EAAE;IACzC,MAAME,QAAQ,GAAGnG,CAAC,CAAC6F,QAAQ,CAAC,CAAC5H,QAAQ,CAACC,OAAO;IAC7C,MAAMkI,QAAQ,GAAGnG,CAAC,CAAC6F,QAAQ,CAAC,CAAC7H,QAAQ,CAACC,OAAO;IAE7C,IAAIiI,QAAQ,GAAGC,QAAQ,EAAE;MACvBP,QAAQ,EAAE;IACZ,CAAC,MAAM,IAAIM,QAAQ,GAAGC,QAAQ,EAAE;MAC9BN,QAAQ,EAAE;IACZ,CAAC,MAAM;MACL,IAAI9F,CAAC,CAAC6F,QAAQ,CAAC,CAAC7H,EAAE,KAAKiC,CAAC,CAAC6F,QAAQ,CAAC,CAAC9H,EAAE,EAAE;QACrC,MAAM,IAAIsG,KAAK,CACZ,0DAAyD,CAC3D;MACH;MACA;MACA;MACA;MACA;MACA,IAAI4B,SAAS,KAAKlG,CAAC,CAAC6F,QAAQ,CAAC,EAAE;QAC7BE,MAAM,CAAC9E,IAAI,CAACjB,CAAC,CAAC6F,QAAQ,CAAC,CAAC;QACxBK,SAAS,GAAGlG,CAAC,CAAC6F,QAAQ,CAAC;MACzB;MACAA,QAAQ,EAAE;MACVC,QAAQ,EAAE;IACZ;EACF;EAEA,OAAOC,MAAM;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS1B,mBAAmB,CACjCrE,CAA4B,EAC5BC,CAA4B,EACD;EAC3B;EACA,MAAMU,GAA8B,GAAG,EAAE;EACzC,IAAIuF,SAAyC,GAAG9H,SAAS,EAAC;;EAE1D,IAAIyH,QAAQ,GAAG,CAAC;EAChB,IAAIC,QAAQ,GAAG,CAAC;EAChB,MAAME,IAAI,GAAGhG,CAAC,CAACT,MAAM;EACrB,MAAM0G,IAAI,GAAGhG,CAAC,CAACV,MAAM;EAErB,OAAOsG,QAAQ,GAAGG,IAAI,IAAIF,QAAQ,GAAGG,IAAI,EAAE;IACzC,MAAME,QAAQ,GAAGnG,CAAC,CAAC6F,QAAQ,CAAC,CAAC5H,QAAQ,CAACC,OAAO;IAC7C,MAAMkI,QAAQ,GAAGnG,CAAC,CAAC6F,QAAQ,CAAC,CAAC7H,QAAQ,CAACC,OAAO;IAE7C,IAAIiI,QAAQ,GAAGC,QAAQ,EAAE;MACvB,IAAIF,SAAS,KAAKlG,CAAC,CAAC6F,QAAQ,CAAC,EAAE;QAC7BlF,GAAG,CAACM,IAAI,CAACjB,CAAC,CAAC6F,QAAQ,CAAC,CAAC;QACrBK,SAAS,GAAGlG,CAAC,CAAC6F,QAAQ,CAAC;MACzB;MACAA,QAAQ,EAAE;IACZ,CAAC,MAAM,IAAIM,QAAQ,GAAGC,QAAQ,EAAE;MAC9B,IAAIF,SAAS,KAAKjG,CAAC,CAAC6F,QAAQ,CAAC,EAAE;QAC7BnF,GAAG,CAACM,IAAI,CAAChB,CAAC,CAAC6F,QAAQ,CAAC,CAAC;QACrBI,SAAS,GAAGjG,CAAC,CAAC6F,QAAQ,CAAC;MACzB;MACAA,QAAQ,EAAE;IACZ,CAAC,MAAM;MACL,IAAII,SAAS,KAAKlG,CAAC,CAAC6F,QAAQ,CAAC,EAAE;QAC7BlF,GAAG,CAACM,IAAI,CAACjB,CAAC,CAAC6F,QAAQ,CAAC,CAAC;QACrBK,SAAS,GAAGlG,CAAC,CAAC6F,QAAQ,CAAC;MACzB;MACAA,QAAQ,EAAE;MACVC,QAAQ,EAAE;IACZ;EACF;EAEA,OAAOD,QAAQ,GAAGG,IAAI,EAAE;IACtB,IAAIE,SAAS,KAAKlG,CAAC,CAAC6F,QAAQ,CAAC,EAAE;MAC7BlF,GAAG,CAACM,IAAI,CAACjB,CAAC,CAAC6F,QAAQ,CAAC,CAAC;MACrBK,SAAS,GAAGlG,CAAC,CAAC6F,QAAQ,CAAC;IACzB;IACAA,QAAQ,EAAE;EACZ;EAEA,OAAOC,QAAQ,GAAGG,IAAI,EAAE;IACtB,IAAIC,SAAS,KAAKjG,CAAC,CAAC6F,QAAQ,CAAC,EAAE;MAC7BnF,GAAG,CAACM,IAAI,CAAChB,CAAC,CAAC6F,QAAQ,CAAC,CAAC;MACrBI,SAAS,GAAGjG,CAAC,CAAC6F,QAAQ,CAAC;IACzB;IACAA,QAAQ,EAAE;EACZ;EAEA,OAAOnF,GAAG;AACZ;AAEA,SAAS+D,qBAAqB,CAAC/D,GAA8B,EAAQ;EACnE;EACA;EACA;EACA,IAAI0F,IAAoC,GAAGjI,SAAS;;EAEpD;;EAEA,IAAIkI,CAAC,GAAG,CAAC;EACT,KAAK,IAAI3D,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGhC,GAAG,CAACpB,MAAM,EAAE,EAAEoD,CAAC,EAAE;IACnC,MAAM/E,IAAI,GAAG+C,GAAG,CAACgC,CAAC,CAAC;IACnB,IAAI/E,IAAI,KAAKyI,IAAI,EAAE;MACjB;MACA,IAAI1D,CAAC,KAAK2D,CAAC,EAAE;QACX3F,GAAG,CAAC2F,CAAC,CAAC,GAAG1I,IAAI;MACf;MACA,EAAE0I,CAAC;MACHD,IAAI,GAAGzI,IAAI;IACb;EACF;EACA+C,GAAG,CAACpB,MAAM,GAAG+G,CAAC;AAChB;AAEO,SAASvH,0BAA0B,CACxClB,WAA0B,EAC1BC,cAAmC,EACpB;EACf,MAAMa,YAAY,GAAG,IAAA4H,0BAAmB,EAACzI,cAAc,CAAC;EACxD,MAAM0I,eAAe,GAAG9G,MAAM,CAAC+G,IAAI,CAAC9H,YAAY,CAAC;EACjD,MAAM+H,SAAS,GAAG7I,WAAW,CAACW,GAAG,CAACC,KAAK,IAAI;IACzC,IACEE,YAAY,CAACF,KAAK,CAAC,IACnB+H,eAAe,CAACG,IAAI,CAACC,GAAG,IAAInI,KAAK,CAACU,UAAU,CAACyH,GAAG,CAAC,CAAC,EAClD;MACA,OAAQ,qBAAoBnI,KAAM,EAAC;IACrC,CAAC,MAAM;MACL,OAAOA,KAAK;IACd;EACF,CAAC,CAAC;EAEF,OAAOiI,SAAS;AAClB"}
@@ -0,0 +1,27 @@
1
+ import { DbQuery } from "../common/query";
2
+ import { FiltersCache, IGatsbyNodePartial } from "./indexing";
3
+ import { IRunQueryArgs, IQueryResult } from "../types";
4
+ export interface IRunFilterArg extends IRunQueryArgs {
5
+ filtersCache: FiltersCache;
6
+ }
7
+ /**
8
+ * Given the path of a set of filters, return the sets of nodes that pass the
9
+ * filter.
10
+ * Only nodes of given node types will be considered
11
+ * A fast index is created if one doesn't exist yet so cold call is slower.
12
+ *
13
+ * Note: Not a public API. Exported for tests.
14
+ */
15
+ export declare function applyFastFilters(filters: Array<DbQuery>, nodeTypeNames: Array<string>, filtersCache: FiltersCache, sortFields: Array<string>, resolvedFields: any): Array<IGatsbyNodePartial> | null;
16
+ /**
17
+ * Filters and sorts a list of nodes using mongodb-like syntax.
18
+ *
19
+ * @param args raw graphql query filter/sort as an object
20
+ * @property {{filter?: Object, sort?: Object, skip?: number, limit?: number} | undefined} args.queryArgs
21
+ * @property {FiltersCache} args.filtersCache A cache of indexes where you can
22
+ * look up Nodes grouped by a FilterCacheKey, which yields a Map which holds
23
+ * an arr of Nodes for the value that the filter is trying to query against.
24
+ * This object lives in query/query-runner.js and is passed down runQuery.
25
+ * @returns Collection of results. Collection will be sliced by `skip` and `limit`
26
+ */
27
+ export declare function runFastFiltersAndSort(args: IRunFilterArg): IQueryResult;
@@ -0,0 +1,276 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.applyFastFilters = applyFastFilters;
6
+ exports.runFastFiltersAndSort = runFastFiltersAndSort;
7
+ var _orderBy2 = _interopRequireDefault(require("lodash/orderBy"));
8
+ var _query = require("../common/query");
9
+ var _indexing = require("./indexing");
10
+ var _iterable = require("../common/iterable");
11
+ var _2 = require("../");
12
+ /**
13
+ * Creates a key for one filterCache inside FiltersCache
14
+ */
15
+ function createFilterCacheKey(typeNames, filter) {
16
+ // Note: while `elemMatch` is a special case, in the key it's just `elemMatch`
17
+ // (This function is future proof for elemMatch support, won't receive it yet)
18
+ let filterStep = filter;
19
+ let comparator = ``;
20
+ const paths = [];
21
+ while (filterStep) {
22
+ paths.push(...filterStep.path);
23
+ if (filterStep.type === `elemMatch`) {
24
+ const q = filterStep;
25
+ filterStep = q.nestedQuery;
26
+ // Make distinction between filtering `a.elemMatch.b.eq` and `a.b.eq`
27
+ // In practice this is unlikely to be an issue, but it might
28
+ paths.push(`elemMatch`);
29
+ } else {
30
+ const q = filterStep;
31
+ comparator = q.query.comparator;
32
+ break;
33
+ }
34
+ }
35
+
36
+ // Note: the separators (`,` and `/`) are arbitrary but must be different
37
+ return typeNames.join(`,`) + `/` + paths.join(`,`) + `/` + comparator;
38
+ }
39
+
40
+ /**
41
+ * Given the path of a set of filters, return the sets of nodes that pass the
42
+ * filter.
43
+ * Only nodes of given node types will be considered
44
+ * A fast index is created if one doesn't exist yet so cold call is slower.
45
+ *
46
+ * Note: Not a public API. Exported for tests.
47
+ */
48
+ function applyFastFilters(filters, nodeTypeNames, filtersCache, sortFields, resolvedFields) {
49
+ if (!filtersCache) {
50
+ // If no filter cache is passed on, explicitly don't use one
51
+ return null;
52
+ }
53
+ const nodesPerValueArrs = getBucketsForFilters(filters, nodeTypeNames, filtersCache, sortFields, resolvedFields);
54
+ if (!nodesPerValueArrs) {
55
+ return null;
56
+ }
57
+ if (nodesPerValueArrs.length === 0) {
58
+ return [];
59
+ } else {
60
+ // Put smallest last (we'll pop it)
61
+ nodesPerValueArrs.sort((a, b) => b.length - a.length);
62
+
63
+ // All elements of nodesPerValueArrs should be sorted by counter and deduped
64
+ // So if there's only one bucket in this list the next loop is skipped
65
+
66
+ while (nodesPerValueArrs.length > 1) {
67
+ // TS limitation: cannot guard against .pop(), so we must double cast
68
+ const a = nodesPerValueArrs.pop();
69
+ const b = nodesPerValueArrs.pop();
70
+ nodesPerValueArrs.push((0, _indexing.intersectNodesByCounter)(a, b));
71
+ }
72
+ const result = nodesPerValueArrs[0];
73
+ if (result.length === 0) {
74
+ // Intersection came up empty. Not one node appeared in every bucket.
75
+ return null;
76
+ }
77
+ return result;
78
+ }
79
+ }
80
+
81
+ /**
82
+ * If this returns undefined it means at least one cache was not found
83
+ */
84
+ function getBucketsForFilters(filters, nodeTypeNames, filtersCache, sortFields, resolvedFields) {
85
+ const nodesPerValueArrs = [];
86
+
87
+ // Fail fast while trying to create and get the value-cache for each path
88
+ const every = filters.every(filter => {
89
+ const filterCacheKey = createFilterCacheKey(nodeTypeNames, filter);
90
+ if (filter.type === `query`) {
91
+ // (Let TS warn us if a new query type gets added)
92
+ const q = filter;
93
+ return getBucketsForQueryFilter(filterCacheKey, q, nodeTypeNames, filtersCache, nodesPerValueArrs, sortFields, resolvedFields);
94
+ } else {
95
+ // (Let TS warn us if a new query type gets added)
96
+ const q = filter;
97
+ return collectBucketForElemMatch(filterCacheKey, q, nodeTypeNames, filtersCache, nodesPerValueArrs, sortFields, resolvedFields);
98
+ }
99
+ });
100
+ if (every) {
101
+ return nodesPerValueArrs;
102
+ }
103
+
104
+ // "failed at least one"
105
+ return undefined;
106
+ }
107
+
108
+ /**
109
+ * Fetch all buckets for given query filter. That means it's not elemMatch.
110
+ * Returns `false` if it found none.
111
+ */
112
+ function getBucketsForQueryFilter(filterCacheKey, filter, nodeTypeNames, filtersCache, nodesPerValueArrs, sortFields, resolvedFields) {
113
+ const {
114
+ path: filterPath,
115
+ query: {
116
+ comparator,
117
+ value: filterValue
118
+ }
119
+ } = filter;
120
+ if (!filtersCache.has(filterCacheKey)) {
121
+ // indexFields = sortFields
122
+ (0, _indexing.ensureIndexByQuery)(comparator, filterCacheKey, filterPath, nodeTypeNames, filtersCache, sortFields, resolvedFields);
123
+ }
124
+ const nodesPerValue = (0, _indexing.getNodesFromCacheByValue)(filterCacheKey, filterValue, filtersCache, false);
125
+ if (!nodesPerValue) {
126
+ return false;
127
+ }
128
+
129
+ // In all other cases this must be a non-empty arr because the indexing
130
+ // mechanism does not create an array unless there's a IGatsbyNode for it
131
+ nodesPerValueArrs.push(nodesPerValue);
132
+ return true;
133
+ }
134
+
135
+ /**
136
+ * Matching node arrs are put in given array by reference
137
+ */
138
+ function collectBucketForElemMatch(filterCacheKey, filter, nodeTypeNames, filtersCache, nodesPerValueArrs, sortFields, resolvedFields) {
139
+ // Get comparator and target value for this elemMatch
140
+ let comparator = `$eq`; // (Must be overridden but TS requires init)
141
+ let targetValue = null;
142
+ let f = filter;
143
+ while (f) {
144
+ if (f.type === `elemMatch`) {
145
+ const q = f;
146
+ f = q.nestedQuery;
147
+ } else {
148
+ const q = f;
149
+ comparator = q.query.comparator;
150
+ targetValue = q.query.value;
151
+ break;
152
+ }
153
+ }
154
+ if (!filtersCache.has(filterCacheKey)) {
155
+ (0, _indexing.ensureIndexByElemMatch)(comparator, filterCacheKey, filter, nodeTypeNames, filtersCache, sortFields, resolvedFields);
156
+ }
157
+ const nodesByValue = (0, _indexing.getNodesFromCacheByValue)(filterCacheKey, targetValue, filtersCache, true);
158
+ if (!nodesByValue) {
159
+ return false;
160
+ }
161
+
162
+ // In all other cases this must be a non-empty arr because the indexing
163
+ // mechanism does not create an array unless there's a IGatsbyNode for it
164
+ nodesPerValueArrs.push(nodesByValue);
165
+ return true;
166
+ }
167
+
168
+ /**
169
+ * Filters and sorts a list of nodes using mongodb-like syntax.
170
+ *
171
+ * @param args raw graphql query filter/sort as an object
172
+ * @property {{filter?: Object, sort?: Object, skip?: number, limit?: number} | undefined} args.queryArgs
173
+ * @property {FiltersCache} args.filtersCache A cache of indexes where you can
174
+ * look up Nodes grouped by a FilterCacheKey, which yields a Map which holds
175
+ * an arr of Nodes for the value that the filter is trying to query against.
176
+ * This object lives in query/query-runner.js and is passed down runQuery.
177
+ * @returns Collection of results. Collection will be sliced by `skip` and `limit`
178
+ */
179
+ function runFastFiltersAndSort(args) {
180
+ const {
181
+ queryArgs: {
182
+ filter,
183
+ sort,
184
+ limit,
185
+ skip = 0
186
+ } = {},
187
+ resolvedFields = {},
188
+ nodeTypeNames,
189
+ filtersCache,
190
+ stats
191
+ } = args;
192
+ const result = convertAndApplyFastFilters(filter, nodeTypeNames, filtersCache, resolvedFields, stats, sort);
193
+ const sortedResult = sortNodes(result, sort, resolvedFields, stats);
194
+ const totalCount = async () => sortedResult.length;
195
+ const entries = skip || limit ? sortedResult.slice(skip, limit ? skip + (limit !== null && limit !== void 0 ? limit : 0) : undefined) : sortedResult;
196
+ const nodeObjects = entries.map(nodeIds => (0, _2.getNode)(nodeIds.id));
197
+ return {
198
+ entries: new _iterable.GatsbyIterable(nodeObjects),
199
+ totalCount
200
+ };
201
+ }
202
+
203
+ /**
204
+ * Return a collection of results.
205
+ */
206
+ function convertAndApplyFastFilters(filterFields, nodeTypeNames, filtersCache, resolvedFields, stats, sort) {
207
+ const filters = filterFields ? (0, _query.prefixResolvedFields)((0, _query.createDbQueriesFromObject)((0, _query.prepareQueryArgs)(filterFields)), resolvedFields) : [];
208
+ if (stats) {
209
+ filters.forEach(filter => {
210
+ const filterStats = filterToStats(filter);
211
+ const comparatorPath = filterStats.comparatorPath.join(`.`);
212
+ stats.comparatorsUsed.set(comparatorPath, (stats.comparatorsUsed.get(comparatorPath) || 0) + 1);
213
+ stats.uniqueFilterPaths.add(filterStats.filterPath.join(`.`));
214
+ });
215
+ if (filters.length > 1) {
216
+ stats.totalNonSingleFilters++;
217
+ }
218
+ }
219
+ if (filters.length === 0) {
220
+ const filterCacheKey = createFilterCacheKey(nodeTypeNames, null);
221
+ if (!filtersCache.has(filterCacheKey)) {
222
+ (0, _indexing.ensureEmptyFilterCache)(filterCacheKey, nodeTypeNames, filtersCache, (sort === null || sort === void 0 ? void 0 : sort.fields) || [], resolvedFields);
223
+ }
224
+
225
+ // If there's a filter, there (now) must be an entry for this cache key
226
+ const filterCache = filtersCache.get(filterCacheKey);
227
+ // If there is no filter then the ensureCache step will populate this:
228
+ const cache = filterCache.meta.orderedByCounter;
229
+ return cache.slice(0);
230
+ }
231
+ const result = applyFastFilters(filters, nodeTypeNames, filtersCache, (sort === null || sort === void 0 ? void 0 : sort.fields) || [], resolvedFields);
232
+ if (result) {
233
+ if (stats) {
234
+ stats.totalIndexHits++;
235
+ }
236
+ return result;
237
+ }
238
+ if (stats) {
239
+ // to mean, "empty results"
240
+ stats.totalSiftHits++;
241
+ }
242
+ return [];
243
+ }
244
+ function filterToStats(filter, filterPath = [], comparatorPath = []) {
245
+ if (filter.type === `elemMatch`) {
246
+ return filterToStats(filter.nestedQuery, filterPath.concat(filter.path), comparatorPath.concat([`elemMatch`]));
247
+ } else {
248
+ return {
249
+ filterPath: filterPath.concat(filter.path),
250
+ comparatorPath: comparatorPath.concat(filter.query.comparator)
251
+ };
252
+ }
253
+ }
254
+
255
+ /**
256
+ * Given a list of filtered nodes and sorting parameters, sort the nodes
257
+ * Returns same reference as input, sorted inline
258
+ */
259
+ function sortNodes(nodes, sort, resolvedFields, stats) {
260
+ var _sort$fields;
261
+ if (!sort || ((_sort$fields = sort.fields) === null || _sort$fields === void 0 ? void 0 : _sort$fields.length) === 0 || !nodes || nodes.length === 0) {
262
+ return nodes;
263
+ }
264
+
265
+ // create functions that return the item to compare on
266
+ const sortFields = (0, _indexing.getSortFieldIdentifierKeys)(sort.fields, resolvedFields);
267
+ const sortFns = sortFields.map(field => v => field in v ? v[field] : (0, _indexing.getGatsbyNodePartial)(v, sort.fields, resolvedFields)[field]);
268
+ const sortOrder = sort.order.map(order => typeof order === `boolean` ? order : order.toLowerCase());
269
+ if (stats) {
270
+ sortFields.forEach(sortField => {
271
+ stats.uniqueSorts.add(sortField);
272
+ });
273
+ }
274
+ return (0, _orderBy2.default)(nodes, sortFns, sortOrder);
275
+ }
276
+ //# sourceMappingURL=run-fast-filters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-fast-filters.js","names":["createFilterCacheKey","typeNames","filter","filterStep","comparator","paths","push","path","type","q","nestedQuery","query","join","applyFastFilters","filters","nodeTypeNames","filtersCache","sortFields","resolvedFields","nodesPerValueArrs","getBucketsForFilters","length","sort","a","b","pop","intersectNodesByCounter","result","every","filterCacheKey","getBucketsForQueryFilter","collectBucketForElemMatch","undefined","filterPath","value","filterValue","has","ensureIndexByQuery","nodesPerValue","getNodesFromCacheByValue","targetValue","f","ensureIndexByElemMatch","nodesByValue","runFastFiltersAndSort","args","queryArgs","limit","skip","stats","convertAndApplyFastFilters","sortedResult","sortNodes","totalCount","entries","slice","nodeObjects","map","nodeIds","getNode","id","GatsbyIterable","filterFields","prefixResolvedFields","createDbQueriesFromObject","prepareQueryArgs","forEach","filterStats","filterToStats","comparatorPath","comparatorsUsed","set","get","uniqueFilterPaths","add","totalNonSingleFilters","ensureEmptyFilterCache","fields","filterCache","cache","meta","orderedByCounter","totalIndexHits","totalSiftHits","concat","nodes","getSortFieldIdentifierKeys","sortFns","field","v","getGatsbyNodePartial","sortOrder","order","toLowerCase","sortField","uniqueSorts"],"sources":["../../../src/datastore/in-memory/run-fast-filters.ts"],"sourcesContent":["import _ from \"lodash\"\nimport {\n DbQuery,\n IDbQueryQuery,\n IDbQueryElemMatch,\n IInputQuery,\n FilterValueNullable,\n createDbQueriesFromObject,\n prefixResolvedFields,\n prepareQueryArgs,\n} from \"../common/query\"\nimport {\n FilterOp,\n FilterCacheKey,\n FiltersCache,\n ensureEmptyFilterCache,\n ensureIndexByQuery,\n ensureIndexByElemMatch,\n getNodesFromCacheByValue,\n intersectNodesByCounter,\n IFilterCache,\n IGatsbyNodePartial,\n getSortFieldIdentifierKeys,\n getGatsbyNodePartial,\n} from \"./indexing\"\nimport { IGraphQLRunnerStats } from \"../../query/types\"\nimport { IRunQueryArgs, IQueryResult } from \"../types\"\nimport { GatsbyIterable } from \"../common/iterable\"\nimport { getNode } from \"../\"\n\nexport interface IRunFilterArg extends IRunQueryArgs {\n filtersCache: FiltersCache\n}\n\ntype ISortParameters =\n | {\n fields: Array<string>\n order: Array<boolean | \"asc\" | \"desc\" | \"ASC\" | \"DESC\">\n }\n | undefined\n\n/**\n * Creates a key for one filterCache inside FiltersCache\n */\nfunction createFilterCacheKey(\n typeNames: Array<string>,\n filter: DbQuery | null\n): FilterCacheKey {\n // Note: while `elemMatch` is a special case, in the key it's just `elemMatch`\n // (This function is future proof for elemMatch support, won't receive it yet)\n let filterStep = filter\n let comparator = ``\n const paths: Array<string> = []\n while (filterStep) {\n paths.push(...filterStep.path)\n if (filterStep.type === `elemMatch`) {\n const q: IDbQueryElemMatch = filterStep\n filterStep = q.nestedQuery\n // Make distinction between filtering `a.elemMatch.b.eq` and `a.b.eq`\n // In practice this is unlikely to be an issue, but it might\n paths.push(`elemMatch`)\n } else {\n const q: IDbQueryQuery = filterStep\n comparator = q.query.comparator\n break\n }\n }\n\n // Note: the separators (`,` and `/`) are arbitrary but must be different\n return typeNames.join(`,`) + `/` + paths.join(`,`) + `/` + comparator\n}\n\n/**\n * Given the path of a set of filters, return the sets of nodes that pass the\n * filter.\n * Only nodes of given node types will be considered\n * A fast index is created if one doesn't exist yet so cold call is slower.\n *\n * Note: Not a public API. Exported for tests.\n */\nexport function applyFastFilters(\n filters: Array<DbQuery>,\n nodeTypeNames: Array<string>,\n filtersCache: FiltersCache,\n sortFields: Array<string>,\n resolvedFields: any\n): Array<IGatsbyNodePartial> | null {\n if (!filtersCache) {\n // If no filter cache is passed on, explicitly don't use one\n return null\n }\n\n const nodesPerValueArrs = getBucketsForFilters(\n filters,\n nodeTypeNames,\n filtersCache,\n sortFields,\n resolvedFields\n )\n\n if (!nodesPerValueArrs) {\n return null\n }\n\n if (nodesPerValueArrs.length === 0) {\n return []\n } else {\n // Put smallest last (we'll pop it)\n nodesPerValueArrs.sort((a, b) => b.length - a.length)\n\n // All elements of nodesPerValueArrs should be sorted by counter and deduped\n // So if there's only one bucket in this list the next loop is skipped\n\n while (nodesPerValueArrs.length > 1) {\n // TS limitation: cannot guard against .pop(), so we must double cast\n const a = nodesPerValueArrs.pop() as unknown as Array<IGatsbyNodePartial>\n const b = nodesPerValueArrs.pop() as unknown as Array<IGatsbyNodePartial>\n nodesPerValueArrs.push(intersectNodesByCounter(a, b))\n }\n\n const result = nodesPerValueArrs[0]\n\n if (result.length === 0) {\n // Intersection came up empty. Not one node appeared in every bucket.\n return null\n }\n\n return result\n }\n}\n\n/**\n * If this returns undefined it means at least one cache was not found\n */\nfunction getBucketsForFilters(\n filters: Array<DbQuery>,\n nodeTypeNames: Array<string>,\n filtersCache: FiltersCache,\n sortFields: Array<string>,\n resolvedFields: any\n): Array<Array<IGatsbyNodePartial>> | undefined {\n const nodesPerValueArrs: Array<Array<IGatsbyNodePartial>> = []\n\n // Fail fast while trying to create and get the value-cache for each path\n const every = filters.every(filter => {\n const filterCacheKey = createFilterCacheKey(nodeTypeNames, filter)\n if (filter.type === `query`) {\n // (Let TS warn us if a new query type gets added)\n const q: IDbQueryQuery = filter\n return getBucketsForQueryFilter(\n filterCacheKey,\n q,\n nodeTypeNames,\n filtersCache,\n nodesPerValueArrs,\n sortFields,\n resolvedFields\n )\n } else {\n // (Let TS warn us if a new query type gets added)\n const q: IDbQueryElemMatch = filter\n return collectBucketForElemMatch(\n filterCacheKey,\n q,\n nodeTypeNames,\n filtersCache,\n nodesPerValueArrs,\n sortFields,\n resolvedFields\n )\n }\n })\n\n if (every) {\n return nodesPerValueArrs\n }\n\n // \"failed at least one\"\n return undefined\n}\n\n/**\n * Fetch all buckets for given query filter. That means it's not elemMatch.\n * Returns `false` if it found none.\n */\nfunction getBucketsForQueryFilter(\n filterCacheKey: FilterCacheKey,\n filter: IDbQueryQuery,\n nodeTypeNames: Array<string>,\n filtersCache: FiltersCache,\n nodesPerValueArrs: Array<Array<IGatsbyNodePartial>>,\n sortFields: Array<string>,\n resolvedFields: any\n): boolean {\n const {\n path: filterPath,\n query: { comparator, value: filterValue },\n } = filter\n\n if (!filtersCache.has(filterCacheKey)) {\n // indexFields = sortFields\n ensureIndexByQuery(\n comparator as FilterOp,\n filterCacheKey,\n filterPath,\n nodeTypeNames,\n filtersCache,\n sortFields,\n resolvedFields\n )\n }\n\n const nodesPerValue = getNodesFromCacheByValue(\n filterCacheKey,\n filterValue as FilterValueNullable,\n filtersCache,\n false\n )\n\n if (!nodesPerValue) {\n return false\n }\n\n // In all other cases this must be a non-empty arr because the indexing\n // mechanism does not create an array unless there's a IGatsbyNode for it\n nodesPerValueArrs.push(nodesPerValue)\n\n return true\n}\n\n/**\n * Matching node arrs are put in given array by reference\n */\nfunction collectBucketForElemMatch(\n filterCacheKey: FilterCacheKey,\n filter: IDbQueryElemMatch,\n nodeTypeNames: Array<string>,\n filtersCache: FiltersCache,\n nodesPerValueArrs: Array<Array<IGatsbyNodePartial>>,\n sortFields: Array<string>,\n resolvedFields: any\n): boolean {\n // Get comparator and target value for this elemMatch\n let comparator: FilterOp = `$eq` // (Must be overridden but TS requires init)\n let targetValue: FilterValueNullable = null\n let f: DbQuery = filter\n while (f) {\n if (f.type === `elemMatch`) {\n const q: IDbQueryElemMatch = f\n f = q.nestedQuery\n } else {\n const q: IDbQueryQuery = f\n comparator = q.query.comparator as FilterOp\n targetValue = q.query.value as FilterValueNullable\n break\n }\n }\n if (!filtersCache.has(filterCacheKey)) {\n ensureIndexByElemMatch(\n comparator,\n filterCacheKey,\n filter,\n nodeTypeNames,\n filtersCache,\n sortFields,\n resolvedFields\n )\n }\n\n const nodesByValue = getNodesFromCacheByValue(\n filterCacheKey,\n targetValue,\n filtersCache,\n true\n )\n\n if (!nodesByValue) {\n return false\n }\n\n // In all other cases this must be a non-empty arr because the indexing\n // mechanism does not create an array unless there's a IGatsbyNode for it\n nodesPerValueArrs.push(nodesByValue)\n\n return true\n}\n\n/**\n * Filters and sorts a list of nodes using mongodb-like syntax.\n *\n * @param args raw graphql query filter/sort as an object\n * @property {{filter?: Object, sort?: Object, skip?: number, limit?: number} | undefined} args.queryArgs\n * @property {FiltersCache} args.filtersCache A cache of indexes where you can\n * look up Nodes grouped by a FilterCacheKey, which yields a Map which holds\n * an arr of Nodes for the value that the filter is trying to query against.\n * This object lives in query/query-runner.js and is passed down runQuery.\n * @returns Collection of results. Collection will be sliced by `skip` and `limit`\n */\nexport function runFastFiltersAndSort(args: IRunFilterArg): IQueryResult {\n const {\n queryArgs: { filter, sort, limit, skip = 0 } = {},\n resolvedFields = {},\n nodeTypeNames,\n filtersCache,\n stats,\n } = args\n\n const result = convertAndApplyFastFilters(\n filter,\n nodeTypeNames,\n filtersCache,\n resolvedFields,\n stats,\n sort\n )\n\n const sortedResult = sortNodes(result, sort, resolvedFields, stats)\n const totalCount = async (): Promise<number> => sortedResult.length\n\n const entries =\n skip || limit\n ? sortedResult.slice(skip, limit ? skip + (limit ?? 0) : undefined)\n : sortedResult\n\n const nodeObjects = entries.map(nodeIds => getNode(nodeIds.id)!)\n return { entries: new GatsbyIterable(nodeObjects), totalCount }\n}\n\n/**\n * Return a collection of results.\n */\nfunction convertAndApplyFastFilters(\n filterFields: IInputQuery | undefined,\n nodeTypeNames: Array<string>,\n filtersCache: FiltersCache,\n resolvedFields: Record<string, any>,\n stats: IGraphQLRunnerStats,\n sort: ISortParameters\n): Array<IGatsbyNodePartial> {\n const filters = filterFields\n ? prefixResolvedFields(\n createDbQueriesFromObject(prepareQueryArgs(filterFields)),\n resolvedFields\n )\n : []\n\n if (stats) {\n filters.forEach(filter => {\n const filterStats = filterToStats(filter)\n const comparatorPath = filterStats.comparatorPath.join(`.`)\n stats.comparatorsUsed.set(\n comparatorPath,\n (stats.comparatorsUsed.get(comparatorPath) || 0) + 1\n )\n stats.uniqueFilterPaths.add(filterStats.filterPath.join(`.`))\n })\n if (filters.length > 1) {\n stats.totalNonSingleFilters++\n }\n }\n\n if (filters.length === 0) {\n const filterCacheKey = createFilterCacheKey(nodeTypeNames, null)\n if (!filtersCache.has(filterCacheKey)) {\n ensureEmptyFilterCache(\n filterCacheKey,\n nodeTypeNames,\n filtersCache,\n sort?.fields || [],\n resolvedFields\n )\n }\n\n // If there's a filter, there (now) must be an entry for this cache key\n const filterCache = filtersCache.get(filterCacheKey) as IFilterCache\n // If there is no filter then the ensureCache step will populate this:\n const cache = filterCache.meta.orderedByCounter as Array<IGatsbyNodePartial>\n\n return cache.slice(0)\n }\n\n const result = applyFastFilters(\n filters,\n nodeTypeNames,\n filtersCache,\n sort?.fields || [],\n resolvedFields\n )\n\n if (result) {\n if (stats) {\n stats.totalIndexHits++\n }\n return result\n }\n\n if (stats) {\n // to mean, \"empty results\"\n stats.totalSiftHits++\n }\n\n return []\n}\n\nfunction filterToStats(\n filter: DbQuery,\n filterPath: Array<string> = [],\n comparatorPath: Array<string> = []\n): {\n filterPath: Array<string>\n comparatorPath: Array<string>\n} {\n if (filter.type === `elemMatch`) {\n return filterToStats(\n filter.nestedQuery,\n filterPath.concat(filter.path),\n comparatorPath.concat([`elemMatch`])\n )\n } else {\n return {\n filterPath: filterPath.concat(filter.path),\n comparatorPath: comparatorPath.concat(filter.query.comparator),\n }\n }\n}\n\n/**\n * Given a list of filtered nodes and sorting parameters, sort the nodes\n * Returns same reference as input, sorted inline\n */\nfunction sortNodes(\n nodes: Array<IGatsbyNodePartial>,\n sort: ISortParameters,\n resolvedFields: any,\n stats: IGraphQLRunnerStats\n): Array<IGatsbyNodePartial> {\n if (!sort || sort.fields?.length === 0 || !nodes || nodes.length === 0) {\n return nodes\n }\n\n // create functions that return the item to compare on\n const sortFields = getSortFieldIdentifierKeys(sort.fields, resolvedFields)\n const sortFns = sortFields.map(\n field =>\n (v): ((any) => any) =>\n field in v\n ? v[field]\n : getGatsbyNodePartial(v, sort.fields, resolvedFields)[field]\n )\n const sortOrder = sort.order.map(order =>\n typeof order === `boolean` ? order : order.toLowerCase()\n ) as Array<boolean | \"asc\" | \"desc\">\n\n if (stats) {\n sortFields.forEach(sortField => {\n stats.uniqueSorts.add(sortField)\n })\n }\n\n return _.orderBy(nodes, sortFns, sortOrder)\n}\n"],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { IGatsbyNode } from "../redux/types";
2
+ export { getDataStore } from "./datastore";
3
+ /**
4
+ * Get all nodes from datastore.
5
+ * @deprecated
6
+ */
7
+ export declare const getNodes: () => Array<IGatsbyNode>;
8
+ /**
9
+ * Get node by id from datastore.
10
+ */
11
+ export declare const getNode: (id: string) => IGatsbyNode | undefined;
12
+ /**
13
+ * Get all nodes of type from datastore.
14
+ * @deprecated
15
+ */
16
+ export declare const getNodesByType: (type: string) => Array<IGatsbyNode>;
17
+ /**
18
+ * Get all type names from datastore.
19
+ */
20
+ export declare const getTypes: () => Array<string>;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.getTypes = exports.getNodesByType = exports.getNodes = exports.getNode = void 0;
5
+ var _datastore = require("./datastore");
6
+ exports.getDataStore = _datastore.getDataStore;
7
+ // Convenience accessor methods
8
+
9
+ /**
10
+ * Get all nodes from datastore.
11
+ * @deprecated
12
+ */
13
+ const getNodes = () => (0, _datastore.getDataStore)().getNodes();
14
+
15
+ /**
16
+ * Get node by id from datastore.
17
+ */
18
+ exports.getNodes = getNodes;
19
+ const getNode = id => (0, _datastore.getDataStore)().getNode(id);
20
+
21
+ /**
22
+ * Get all nodes of type from datastore.
23
+ * @deprecated
24
+ */
25
+ exports.getNode = getNode;
26
+ const getNodesByType = type => (0, _datastore.getDataStore)().getNodesByType(type);
27
+
28
+ /**
29
+ * Get all type names from datastore.
30
+ */
31
+ exports.getNodesByType = getNodesByType;
32
+ const getTypes = () => (0, _datastore.getDataStore)().getTypes();
33
+ exports.getTypes = getTypes;
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["getNodes","getDataStore","getNode","id","getNodesByType","type","getTypes"],"sources":["../../src/datastore/index.ts"],"sourcesContent":["import { IGatsbyNode } from \"../redux/types\"\nimport { getDataStore } from \"./datastore\"\n\nexport { getDataStore } from \"./datastore\"\n\n// Convenience accessor methods\n\n/**\n * Get all nodes from datastore.\n * @deprecated\n */\nexport const getNodes = (): Array<IGatsbyNode> => getDataStore().getNodes()\n\n/**\n * Get node by id from datastore.\n */\nexport const getNode = (id: string): IGatsbyNode | undefined =>\n getDataStore().getNode(id)\n\n/**\n * Get all nodes of type from datastore.\n * @deprecated\n */\nexport const getNodesByType = (type: string): Array<IGatsbyNode> =>\n getDataStore().getNodesByType(type)\n\n/**\n * Get all type names from datastore.\n */\nexport const getTypes = (): Array<string> => getDataStore().getTypes()\n"],"mappings":";;;;AACA;AAA0C;AAI1C;;AAEA;AACA;AACA;AACA;AACO,MAAMA,QAAQ,GAAG,MAA0B,IAAAC,uBAAY,GAAE,CAACD,QAAQ,EAAE;;AAE3E;AACA;AACA;AAFA;AAGO,MAAME,OAAO,GAAIC,EAAU,IAChC,IAAAF,uBAAY,GAAE,CAACC,OAAO,CAACC,EAAE,CAAC;;AAE5B;AACA;AACA;AACA;AAHA;AAIO,MAAMC,cAAc,GAAIC,IAAY,IACzC,IAAAJ,uBAAY,GAAE,CAACG,cAAc,CAACC,IAAI,CAAC;;AAErC;AACA;AACA;AAFA;AAGO,MAAMC,QAAQ,GAAG,MAAqB,IAAAL,uBAAY,GAAE,CAACK,QAAQ,EAAE;AAAA"}
@@ -0,0 +1,14 @@
1
+ import { RootDatabase } from "lmdb";
2
+ import { IDataStore, ILmdbDatabases } from "../types";
3
+ export declare function getDefaultDbPath(): string;
4
+ declare global {
5
+ namespace NodeJS {
6
+ interface Global {
7
+ __GATSBY_OPEN_LMDBS?: Map<string, ILmdbDatabases>;
8
+ __GATSBY_OPEN_ROOT_LMDBS?: Map<string, RootDatabase>;
9
+ }
10
+ }
11
+ }
12
+ export declare function setupLmdbStore({ dbPath, }?: {
13
+ dbPath?: string;
14
+ }): IDataStore;