@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,577 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.BinaryInfinityPositive = exports.BinaryInfinityNegative = void 0;
5
+ exports.countUsingIndexOnly = countUsingIndexOnly;
6
+ exports.filterUsingIndex = filterUsingIndex;
7
+ exports.getIndexRanges = getIndexRanges;
8
+ var _iterable = require("../../common/iterable");
9
+ var _query = require("../../common/query");
10
+ var _createIndex = require("./create-index");
11
+ var _common = require("./common");
12
+ var _util = require("util");
13
+ // JS values encoded by ordered-binary never start with 0 or 255 byte
14
+ const BinaryInfinityNegative = Buffer.from([0]);
15
+ exports.BinaryInfinityNegative = BinaryInfinityNegative;
16
+ const BinaryInfinityPositive = String.fromCharCode(255).repeat(4);
17
+ exports.BinaryInfinityPositive = BinaryInfinityPositive;
18
+ var ValueEdges;
19
+ (function (ValueEdges) {
20
+ ValueEdges[ValueEdges["BEFORE"] = -1] = "BEFORE";
21
+ ValueEdges[ValueEdges["EQ"] = 0] = "EQ";
22
+ ValueEdges[ValueEdges["AFTER"] = 1] = "AFTER";
23
+ })(ValueEdges || (ValueEdges = {}));
24
+ function filterUsingIndex(args) {
25
+ const context = createFilteringContext(args);
26
+ const ranges = getIndexRanges(context);
27
+ let entries = ranges.length > 0 ? performRangeScan(context, ranges) : performFullScan(context);
28
+ if (context.usedQueries.size !== args.dbQueries.length) {
29
+ // Try to additionally filter out results using data stored in index
30
+ entries = narrowResultsIfPossible(context, entries);
31
+ }
32
+ if (isMultiKeyIndex(context) && needsDeduplication(context)) {
33
+ entries = entries.deduplicate(getIdentifier);
34
+ }
35
+ return {
36
+ entries,
37
+ usedQueries: context.usedQueries,
38
+ usedLimit: context.usedLimit,
39
+ usedSkip: context.usedSkip
40
+ };
41
+ }
42
+ function countUsingIndexOnly(args) {
43
+ const context = createFilteringContext(args);
44
+ const {
45
+ databases: {
46
+ indexes
47
+ },
48
+ dbQueries,
49
+ indexMetadata: {
50
+ keyPrefix
51
+ }
52
+ } = args;
53
+ const ranges = getIndexRanges(context);
54
+ if (context.usedQueries.size !== dbQueries.length) {
55
+ throw new Error(`Cannot count using index only`);
56
+ }
57
+ if (isMultiKeyIndex(context) && needsDeduplication(context)) {
58
+ throw new Error(`Cannot count using MultiKey index.`);
59
+ }
60
+ if (ranges.length === 0) {
61
+ const range = {
62
+ start: [keyPrefix],
63
+ end: [getValueEdgeAfter(keyPrefix)],
64
+ snapshot: false
65
+ };
66
+ return indexes.getKeysCount(range);
67
+ }
68
+ let count = 0;
69
+ for (let {
70
+ start,
71
+ end
72
+ } of ranges) {
73
+ start = [keyPrefix, ...start];
74
+ end = [keyPrefix, ...end];
75
+ // Assuming ranges are not overlapping
76
+ const range = {
77
+ start,
78
+ end,
79
+ snapshot: false
80
+ };
81
+ count += indexes.getKeysCount(range);
82
+ }
83
+ return count;
84
+ }
85
+ function createFilteringContext(args) {
86
+ return {
87
+ ...args,
88
+ usedLimit: undefined,
89
+ usedSkip: 0,
90
+ usedQueries: new Set()
91
+ };
92
+ }
93
+ function isMultiKeyIndex(context) {
94
+ return context.indexMetadata.multiKeyFields.length > 0;
95
+ }
96
+ function needsDeduplication(context) {
97
+ if (!isMultiKeyIndex(context)) {
98
+ return false;
99
+ }
100
+ // Deduplication is not needed if all multiKeyFields have applied `eq` filters
101
+ const fieldsWithAppliedEq = new Set();
102
+ context.usedQueries.forEach(q => {
103
+ const filter = (0, _query.getFilterStatement)(q);
104
+ if (filter.comparator === _query.DbComparator.EQ) {
105
+ fieldsWithAppliedEq.add((0, _query.dbQueryToDottedField)(q));
106
+ }
107
+ });
108
+ return context.indexMetadata.multiKeyFields.some(fieldName => !fieldsWithAppliedEq.has(fieldName));
109
+ }
110
+ function performRangeScan(context, ranges) {
111
+ const {
112
+ indexMetadata: {
113
+ keyPrefix,
114
+ stats
115
+ },
116
+ reverse
117
+ } = context;
118
+ let {
119
+ limit,
120
+ skip: offset = 0
121
+ } = context;
122
+ if (context.dbQueries.length !== context.usedQueries.size) {
123
+ // Since this query is not fully satisfied by the index, we can't use limit/skip
124
+ limit = undefined;
125
+ offset = 0;
126
+ }
127
+ if (ranges.length > 1) {
128
+ // e.g. { in: [1, 2] }
129
+ // Cannot use offset: we will run several range queries and it's not clear which one to offset
130
+ // TODO: assuming ranges are sorted and not overlapping it should be possible to use offsets in this case
131
+ // by running first range query, counting results while lazily iterating and
132
+ // running the next range query when the previous iterator is done (and count is known)
133
+ // with offset = offset - previousRangeCount, limit = limit - previousRangeCount
134
+ limit = typeof limit !== `undefined` ? offset + limit : undefined;
135
+ offset = 0;
136
+ }
137
+ if (limit && isMultiKeyIndex(context) && needsDeduplication(context)) {
138
+ // Cannot use limit:
139
+ // MultiKey index may contain duplicates - we can only set a safe upper bound
140
+ limit *= stats.maxKeysPerItem;
141
+ }
142
+
143
+ // Assuming ranges are sorted and not overlapping, we can yield results sequentially
144
+ const lmdbRanges = [];
145
+ for (let {
146
+ start,
147
+ end
148
+ } of ranges) {
149
+ start = [keyPrefix, ...start];
150
+ end = [keyPrefix, ...end];
151
+ const range = !reverse ? {
152
+ start,
153
+ end,
154
+ limit,
155
+ offset,
156
+ snapshot: false
157
+ } : {
158
+ start: end,
159
+ end: start,
160
+ limit,
161
+ offset,
162
+ reverse,
163
+ snapshot: false
164
+ };
165
+ lmdbRanges.push(range);
166
+ }
167
+ context.usedLimit = limit;
168
+ context.usedSkip = offset;
169
+ return new _iterable.GatsbyIterable(() => traverseRanges(context, lmdbRanges));
170
+ }
171
+ function performFullScan(context) {
172
+ // *Caveat*: our old query implementation was putting undefined and null values at the end
173
+ // of the list when ordered ascending. But lmdb-store keeps them at the top.
174
+ // So in LMDB case, need to concat two ranges to conform to our old format:
175
+ // concat(undefinedToEnd, topToUndefined)
176
+ const {
177
+ reverse,
178
+ indexMetadata: {
179
+ keyPrefix
180
+ }
181
+ } = context;
182
+ let start = [keyPrefix, getValueEdgeAfter(_createIndex.undefinedSymbol)];
183
+ let end = [getValueEdgeAfter(keyPrefix)];
184
+ let range = !reverse ? {
185
+ start,
186
+ end,
187
+ snapshot: false
188
+ } : {
189
+ start: end,
190
+ end: start,
191
+ reverse,
192
+ snapshot: false
193
+ };
194
+ const undefinedToEnd = range;
195
+
196
+ // Concat null/undefined values
197
+ end = start;
198
+ start = [keyPrefix, null];
199
+ range = !reverse ? {
200
+ start,
201
+ end,
202
+ snapshot: false
203
+ } : {
204
+ start: end,
205
+ end: start,
206
+ reverse,
207
+ snapshot: false
208
+ };
209
+ const topToUndefined = range;
210
+ const ranges = !reverse ? [undefinedToEnd, topToUndefined] : [topToUndefined, undefinedToEnd];
211
+ return new _iterable.GatsbyIterable(() => traverseRanges(context, ranges));
212
+ }
213
+ function* traverseRanges(context, ranges) {
214
+ const {
215
+ databases: {
216
+ indexes
217
+ }
218
+ } = context;
219
+ for (const range of ranges) {
220
+ // @ts-ignore
221
+ yield* indexes.getRange(range);
222
+ }
223
+ }
224
+
225
+ /**
226
+ * Takes results after the index scan and tries to filter them additionally with unused parts of the query.
227
+ *
228
+ * This is O(N) but the advantage is that it uses data available in the index.
229
+ * So it effectively bypasses the `getNode()` call for such filters (with all associated deserialization complexity).
230
+ *
231
+ * Example:
232
+ * Imagine the index is: { foo: 1, bar: 1 }
233
+ *
234
+ * Now we run the query:
235
+ * sort: [`foo`]
236
+ * filter: { bar: { eq: `test` }}
237
+ *
238
+ * Initial filtering pass will have to perform a full index scan (because `bar` is the last field in the index).
239
+ *
240
+ * But we still have values of `bar` stored in the index itself,
241
+ * so can filter by this value without loading the full node contents.
242
+ */
243
+ function narrowResultsIfPossible(context, entries) {
244
+ const {
245
+ indexMetadata,
246
+ dbQueries,
247
+ usedQueries
248
+ } = context;
249
+ const indexFields = new Map();
250
+ indexMetadata.keyFields.forEach(([fieldName], positionInKey) => {
251
+ // Every index key is [indexId, field1, field2, ...] and `indexMetadata.keyFields` contains [field1, field2, ...]
252
+ // As `indexId` is in the first column the fields need to be offset by +1 for correct addressing
253
+ indexFields.set(fieldName, positionInKey + 1);
254
+ });
255
+ const filtersToApply = [];
256
+ for (const query of dbQueries) {
257
+ const fieldName = (0, _query.dbQueryToDottedField)(query);
258
+ const positionInKey = indexFields.get(fieldName);
259
+ if (typeof positionInKey === `undefined`) {
260
+ // No data for this field in index
261
+ continue;
262
+ }
263
+ if (usedQueries.has(query)) {
264
+ // Filter is already applied
265
+ continue;
266
+ }
267
+ if (isMultiKeyIndex(context) && isNegatedQuery(query)) {
268
+ // NE/NIN not supported with MultiKey indexes:
269
+ // MultiKey indexes include duplicates; negated queries will only filter some of those
270
+ // but may still incorrectly include others in final results
271
+ continue;
272
+ }
273
+ const filter = (0, _query.getFilterStatement)(query);
274
+ filtersToApply.push([filter, positionInKey]);
275
+ usedQueries.add(query);
276
+ }
277
+ return filtersToApply.length === 0 ? entries : entries.filter(({
278
+ key
279
+ }) => {
280
+ for (const [filter, fieldPositionInIndex] of filtersToApply) {
281
+ const value = key[fieldPositionInIndex] === _createIndex.undefinedSymbol ? undefined : key[fieldPositionInIndex];
282
+ if (!(0, _common.matchesFilter)(filter, value)) {
283
+ // Mimic AND semantics
284
+ return false;
285
+ }
286
+ }
287
+ return true;
288
+ });
289
+ }
290
+
291
+ /**
292
+ * Returns query clauses that can potentially use index.
293
+ * Returned list is sorted by query specificity
294
+ */
295
+ function getSupportedQueries(context, dbQueries) {
296
+ const isSupported = new Set([_query.DbComparator.EQ, _query.DbComparator.IN, _query.DbComparator.GTE, _query.DbComparator.LTE, _query.DbComparator.GT, _query.DbComparator.LT, _query.DbComparator.NIN, _query.DbComparator.NE]);
297
+ let supportedQueries = dbQueries.filter(query => isSupported.has((0, _query.getFilterStatement)(query).comparator));
298
+ if (isMultiKeyIndex(context)) {
299
+ // Note:
300
+ // NE and NIN are not supported by multi-key indexes. Why?
301
+ // Imagine a node { id: 1, field: [`foo`, `bar`] }
302
+ // Then the filter { field: { ne: `foo` } } should completely remove this node from results.
303
+ // But multikey index contains separate entries for `foo` and `bar` values.
304
+ // Final range will exclude entry "foo" but it will still include entry for "bar" hence
305
+ // will incorrectly include our node in results.
306
+ supportedQueries = supportedQueries.filter(query => !isNegatedQuery(query));
307
+ }
308
+ return (0, _query.sortBySpecificity)(supportedQueries);
309
+ }
310
+ function isEqualityQuery(query) {
311
+ const filter = (0, _query.getFilterStatement)(query);
312
+ return filter.comparator === _query.DbComparator.EQ || filter.comparator === _query.DbComparator.IN;
313
+ }
314
+ function isNegatedQuery(query) {
315
+ const filter = (0, _query.getFilterStatement)(query);
316
+ return filter.comparator === _query.DbComparator.NE || filter.comparator === _query.DbComparator.NIN;
317
+ }
318
+ function getIndexRanges(context) {
319
+ const {
320
+ dbQueries,
321
+ indexMetadata: {
322
+ keyFields
323
+ }
324
+ } = context;
325
+ const rangeStarts = [];
326
+ const rangeEndings = [];
327
+ const supportedQueries = getSupportedQueries(context, dbQueries);
328
+ for (const indexFieldInfo of new Map(keyFields)) {
329
+ const query = getMostSpecificQuery(supportedQueries, indexFieldInfo);
330
+ if (!query) {
331
+ // Use index prefix, not all index fields
332
+ break;
333
+ }
334
+ const result = resolveIndexFieldRanges(context, query, indexFieldInfo);
335
+ rangeStarts.push(result.rangeStarts);
336
+ rangeEndings.push(result.rangeEndings);
337
+ if (!isEqualityQuery(query)) {
338
+ // Compound index { a: 1, b: 1, c: 1 } supports only one non-eq (range) operator. E.g.:
339
+ // Supported: { a: { eq: `foo` }, b: { eq: 8 }, c: { gt: 5 } }
340
+ // Not supported: { a: { eq: `foo` }, b: { gt: 5 }, c: { eq: 5 } }
341
+ // (or to be precise, can do a range scan only for { a: { eq: `foo` }, b: { gt: 5 } })
342
+ break;
343
+ }
344
+ }
345
+ if (!rangeStarts.length) {
346
+ return [];
347
+ }
348
+ // Only the last segment encloses the whole range.
349
+ // For example, given an index { a: 1, b: 1 } and a filter { a: { eq: `foo` }, b: { eq: `bar` } },
350
+ // It should produce this range:
351
+ // {
352
+ // start: [`foo`, `bar`],
353
+ // end: [`foo`, [`bar`, BinaryInfinityPositive]]
354
+ // }
355
+ //
356
+ // Not this:
357
+ // {
358
+ // start: [`foo`, `bar`],
359
+ // end: [[`foo`, BinaryInfinityPositive], [`bar`, BinaryInfinityPositive]]
360
+ // }
361
+ for (let i = 0; i < rangeStarts.length - 1; i++) {
362
+ rangeEndings[i] = rangeStarts[i];
363
+ }
364
+
365
+ // Example:
366
+ // rangeStarts: [
367
+ // [field1Start1, field1Start2],
368
+ // [field2Start1],
369
+ // ]
370
+ // rangeEnds: [
371
+ // [field1End1, field1End2],
372
+ // [field2End1],
373
+ // ]
374
+ // Need:
375
+ // rangeStartsProduct: [
376
+ // [field1Start1, field2Start1],
377
+ // [field1Start2, field2Start1],
378
+ // ]
379
+ // rangeEndingsProduct: [
380
+ // [field1End1, field2End1],
381
+ // [field1End2, field2End1],
382
+ // ]
383
+ const rangeStartsProduct = (0, _common.cartesianProduct)(...rangeStarts);
384
+ const rangeEndingsProduct = (0, _common.cartesianProduct)(...rangeEndings);
385
+ const ranges = [];
386
+ for (let i = 0; i < rangeStartsProduct.length; i++) {
387
+ ranges.push({
388
+ start: rangeStartsProduct[i],
389
+ end: rangeEndingsProduct[i]
390
+ });
391
+ }
392
+ // TODO: sort and intersect ranges. Also, we may want this at some point:
393
+ // https://docs.mongodb.com/manual/core/multikey-index-bounds/
394
+ return ranges;
395
+ }
396
+ function getFieldQueries(queries, fieldName) {
397
+ return queries.filter(q => (0, _query.dbQueryToDottedField)(q) === fieldName);
398
+ }
399
+ function getMostSpecificQuery(queries, [indexField]) {
400
+ const fieldQueries = getFieldQueries(queries, indexField);
401
+ // Assuming queries are sorted by specificity, the best bet is to pick the first query
402
+ return fieldQueries[0];
403
+ }
404
+ function resolveIndexFieldRanges(context, query, [field, sortDirection]) {
405
+ // Tracking starts and ends separately instead of doing Array<[start, end]>
406
+ // to simplify cartesian product creation later
407
+ const rangeStarts = [];
408
+ const rangeEndings = [];
409
+ const filter = (0, _query.getFilterStatement)(query);
410
+ if (filter.comparator === _query.DbComparator.IN && !Array.isArray(filter.value)) {
411
+ throw new Error("The argument to the `in` predicate should be an array");
412
+ }
413
+ context.usedQueries.add(query);
414
+ switch (filter.comparator) {
415
+ case _query.DbComparator.EQ:
416
+ case _query.DbComparator.IN:
417
+ {
418
+ const arr = Array.isArray(filter.value) ? [...filter.value] : [filter.value];
419
+
420
+ // Sort ranges by index sort direction
421
+ arr.sort((a, b) => {
422
+ if (a === b) return 0;
423
+ if (sortDirection === 1) return a > b ? 1 : -1;
424
+ return a < b ? 1 : -1;
425
+ });
426
+ let hasNull = false;
427
+ for (const item of new Set(arr)) {
428
+ const value = toIndexFieldValue(item, filter);
429
+ if (value === null) hasNull = true;
430
+ rangeStarts.push(value);
431
+ rangeEndings.push(getValueEdgeAfter(value));
432
+ }
433
+ // Special case: { eq: null } or { in: [null, `any`]} must also include values for undefined!
434
+ if (hasNull) {
435
+ rangeStarts.push(_createIndex.undefinedSymbol);
436
+ rangeEndings.push(getValueEdgeAfter(_createIndex.undefinedSymbol));
437
+ }
438
+ break;
439
+ }
440
+ case _query.DbComparator.LT:
441
+ case _query.DbComparator.LTE:
442
+ {
443
+ var _resolveRangeEdge;
444
+ if (Array.isArray(filter.value)) throw new Error(`${filter.comparator} value must not be an array`);
445
+ const value = toIndexFieldValue(filter.value, filter);
446
+ const end = filter.comparator === _query.DbComparator.LT ? value : getValueEdgeAfter(value);
447
+
448
+ // Try to find matching GTE/GT filter
449
+ const start = (_resolveRangeEdge = resolveRangeEdge(context, field, _query.DbComparator.GTE)) !== null && _resolveRangeEdge !== void 0 ? _resolveRangeEdge : resolveRangeEdge(context, field, _query.DbComparator.GT, ValueEdges.AFTER);
450
+
451
+ // Do not include null or undefined in results unless null was requested explicitly
452
+ //
453
+ // Index ordering:
454
+ // BinaryInfinityNegative
455
+ // null
456
+ // Symbol(`undef`)
457
+ // -10
458
+ // 10
459
+ // `Hello`
460
+ // [`Hello`]
461
+ // BinaryInfinityPositive
462
+ const rangeHead = value === null ? BinaryInfinityNegative : getValueEdgeAfter(_createIndex.undefinedSymbol);
463
+ rangeStarts.push(start !== null && start !== void 0 ? start : rangeHead);
464
+ rangeEndings.push(end);
465
+ break;
466
+ }
467
+ case _query.DbComparator.GT:
468
+ case _query.DbComparator.GTE:
469
+ {
470
+ var _resolveRangeEdge2;
471
+ if (Array.isArray(filter.value)) throw new Error(`${filter.comparator} value must not be an array`);
472
+ const value = toIndexFieldValue(filter.value, filter);
473
+ const start = filter.comparator === _query.DbComparator.GTE ? value : getValueEdgeAfter(value);
474
+
475
+ // Try to find matching LT/LTE
476
+ const end = (_resolveRangeEdge2 = resolveRangeEdge(context, field, _query.DbComparator.LTE, ValueEdges.AFTER)) !== null && _resolveRangeEdge2 !== void 0 ? _resolveRangeEdge2 : resolveRangeEdge(context, field, _query.DbComparator.LT);
477
+ const rangeTail = value === null ? getValueEdgeAfter(null) : BinaryInfinityPositive;
478
+ rangeStarts.push(start);
479
+ rangeEndings.push(end !== null && end !== void 0 ? end : rangeTail);
480
+ break;
481
+ }
482
+ case _query.DbComparator.NE:
483
+ case _query.DbComparator.NIN:
484
+ {
485
+ const arr = Array.isArray(filter.value) ? [...filter.value] : [filter.value];
486
+
487
+ // Sort ranges by index sort direction
488
+ arr.sort((a, b) => {
489
+ if (a === b) return 0;
490
+ if (sortDirection === 1) return a > b ? 1 : -1;
491
+ return a < b ? 1 : -1;
492
+ });
493
+ const hasNull = arr.some(value => value === null);
494
+ if (hasNull) {
495
+ rangeStarts.push(getValueEdgeAfter(_createIndex.undefinedSymbol));
496
+ } else {
497
+ rangeStarts.push(BinaryInfinityNegative);
498
+ }
499
+ for (const item of new Set(arr)) {
500
+ const value = toIndexFieldValue(item, filter);
501
+ if (value === null) continue; // already handled via hasNull case above
502
+ rangeEndings.push(value);
503
+ rangeStarts.push(getValueEdgeAfter(value));
504
+ }
505
+ rangeEndings.push(BinaryInfinityPositive);
506
+ break;
507
+ }
508
+ default:
509
+ throw new Error(`Unsupported predicate: ${filter.comparator}`);
510
+ }
511
+ return {
512
+ rangeStarts,
513
+ rangeEndings
514
+ };
515
+ }
516
+ function resolveRangeEdge(context, indexField, predicate, edge = ValueEdges.EQ) {
517
+ const fieldQueries = getFieldQueries(context.dbQueries, indexField);
518
+ for (const dbQuery of fieldQueries) {
519
+ if (context.usedQueries.has(dbQuery)) {
520
+ continue;
521
+ }
522
+ const filterStatement = (0, _query.getFilterStatement)(dbQuery);
523
+ if (filterStatement.comparator !== predicate) {
524
+ continue;
525
+ }
526
+ context.usedQueries.add(dbQuery);
527
+ const value = filterStatement.value;
528
+ if (Array.isArray(value)) {
529
+ throw new Error(`Range filter ${predicate} should not have array value`);
530
+ }
531
+ if (typeof value === `object` && value !== null) {
532
+ throw new Error(`Range filter ${predicate} should not have value of type ${typeof value}`);
533
+ }
534
+ if (edge === 0) {
535
+ return value;
536
+ }
537
+ return edge < 0 ? getValueEdgeBefore(value) : getValueEdgeAfter(value);
538
+ }
539
+ return undefined;
540
+ }
541
+
542
+ /**
543
+ * Returns the edge after the given value, suitable for lmdb range queries.
544
+ *
545
+ * Example:
546
+ * Get all items from index starting with ["foo"] prefix up to the next existing prefix:
547
+ *
548
+ * ```js
549
+ * db.getRange({ start: ["foo"], end: [getValueEdgeAfter("foo")] })
550
+ * ```
551
+ *
552
+ * This method relies on ordered-binary format used by lmdb-store to persist keys
553
+ * and assumes keys are composite and represented as arrays.
554
+ *
555
+ * Implementation detail: ordered-binary treats `null` as multipart separator within binary sequence
556
+ */
557
+ function getValueEdgeAfter(value) {
558
+ return [value, BinaryInfinityPositive];
559
+ }
560
+ function getValueEdgeBefore(value) {
561
+ return [_createIndex.undefinedSymbol, value];
562
+ }
563
+ function toIndexFieldValue(filterValue, filter) {
564
+ if (typeof filterValue === `object` && filterValue !== null) {
565
+ throw new Error(`Bad filter value for predicate ${filter.comparator}: ${(0, _util.inspect)(filter.value)}`);
566
+ }
567
+ return filterValue;
568
+ }
569
+ function getIdentifier(entry) {
570
+ const id = entry.key[entry.key.length - 1];
571
+ if (typeof id !== `number` && typeof id !== `string`) {
572
+ const out = (0, _util.inspect)(id);
573
+ throw new Error(`Last element of index key is expected to be numeric or string id, got ${out}`);
574
+ }
575
+ return id;
576
+ }
577
+ //# sourceMappingURL=filter-using-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-using-index.js","names":["BinaryInfinityNegative","Buffer","from","BinaryInfinityPositive","String","fromCharCode","repeat","ValueEdges","filterUsingIndex","args","context","createFilteringContext","ranges","getIndexRanges","entries","length","performRangeScan","performFullScan","usedQueries","size","dbQueries","narrowResultsIfPossible","isMultiKeyIndex","needsDeduplication","deduplicate","getIdentifier","usedLimit","usedSkip","countUsingIndexOnly","databases","indexes","indexMetadata","keyPrefix","Error","range","start","end","getValueEdgeAfter","snapshot","getKeysCount","count","undefined","Set","multiKeyFields","fieldsWithAppliedEq","forEach","q","filter","getFilterStatement","comparator","DbComparator","EQ","add","dbQueryToDottedField","some","fieldName","has","stats","reverse","limit","skip","offset","maxKeysPerItem","lmdbRanges","push","GatsbyIterable","traverseRanges","undefinedSymbol","undefinedToEnd","topToUndefined","getRange","indexFields","Map","keyFields","positionInKey","set","filtersToApply","query","get","isNegatedQuery","key","fieldPositionInIndex","value","matchesFilter","getSupportedQueries","isSupported","IN","GTE","LTE","GT","LT","NIN","NE","supportedQueries","sortBySpecificity","isEqualityQuery","rangeStarts","rangeEndings","indexFieldInfo","getMostSpecificQuery","result","resolveIndexFieldRanges","i","rangeStartsProduct","cartesianProduct","rangeEndingsProduct","getFieldQueries","queries","indexField","fieldQueries","field","sortDirection","Array","isArray","arr","sort","a","b","hasNull","item","toIndexFieldValue","resolveRangeEdge","AFTER","rangeHead","rangeTail","predicate","edge","dbQuery","filterStatement","getValueEdgeBefore","filterValue","inspect","entry","id","out"],"sources":["../../../../src/datastore/lmdb/query/filter-using-index.ts"],"sourcesContent":["import { GatsbyIterable } from \"../../common/iterable\"\nimport {\n DbComparator,\n DbComparatorValue,\n DbQuery,\n dbQueryToDottedField,\n getFilterStatement,\n IDbFilterStatement,\n sortBySpecificity,\n} from \"../../common/query\"\nimport { IDataStore, ILmdbDatabases, NodeId } from \"../../types\"\nimport {\n IIndexMetadata,\n IndexFieldValue,\n IndexKey,\n undefinedSymbol,\n} from \"./create-index\"\nimport { cartesianProduct, matchesFilter } from \"./common\"\nimport { inspect } from \"util\"\n\n// JS values encoded by ordered-binary never start with 0 or 255 byte\nexport const BinaryInfinityNegative = Buffer.from([0])\nexport const BinaryInfinityPositive = String.fromCharCode(255).repeat(4)\n\ntype RangeEdgeAfter = [IndexFieldValue, typeof BinaryInfinityPositive]\ntype RangeEdgeBefore = [typeof undefinedSymbol, IndexFieldValue]\ntype RangeValue =\n | IndexFieldValue\n | RangeEdgeAfter\n | RangeEdgeBefore\n | typeof BinaryInfinityPositive\n | typeof BinaryInfinityNegative\ntype RangeBoundary = Array<RangeValue>\n\nexport interface IIndexEntry {\n key: IndexKey\n value: NodeId\n}\n\ninterface IIndexRange {\n start: RangeBoundary\n end: RangeBoundary\n}\n\nenum ValueEdges {\n BEFORE = -1,\n EQ = 0,\n AFTER = 1,\n}\n\nexport interface IFilterArgs {\n datastore: IDataStore\n databases: ILmdbDatabases\n dbQueries: Array<DbQuery>\n indexMetadata: IIndexMetadata\n limit?: number\n skip?: number\n reverse?: boolean\n}\n\ninterface IFilterContext extends IFilterArgs {\n usedLimit: number | undefined\n usedSkip: number\n usedQueries: Set<DbQuery>\n}\n\nexport interface IFilterResult {\n entries: GatsbyIterable<IIndexEntry>\n usedQueries: Set<DbQuery>\n usedLimit: number | undefined\n usedSkip: number\n}\n\ninterface ILmdbStoreRangeOptions {\n start?: any\n end?: any\n limit?: number | undefined\n offset?: number | undefined\n revers?: boolean\n snapshot?: boolean\n}\n\nexport function filterUsingIndex(args: IFilterArgs): IFilterResult {\n const context = createFilteringContext(args)\n const ranges = getIndexRanges(context)\n\n let entries =\n ranges.length > 0\n ? performRangeScan(context, ranges)\n : performFullScan(context)\n\n if (context.usedQueries.size !== args.dbQueries.length) {\n // Try to additionally filter out results using data stored in index\n entries = narrowResultsIfPossible(context, entries)\n }\n if (isMultiKeyIndex(context) && needsDeduplication(context)) {\n entries = entries.deduplicate(getIdentifier)\n }\n return {\n entries,\n usedQueries: context.usedQueries,\n usedLimit: context.usedLimit,\n usedSkip: context.usedSkip,\n }\n}\n\nexport function countUsingIndexOnly(args: IFilterArgs): number {\n const context = createFilteringContext(args)\n const {\n databases: { indexes },\n dbQueries,\n indexMetadata: { keyPrefix },\n } = args\n\n const ranges = getIndexRanges(context)\n\n if (context.usedQueries.size !== dbQueries.length) {\n throw new Error(`Cannot count using index only`)\n }\n if (isMultiKeyIndex(context) && needsDeduplication(context)) {\n throw new Error(`Cannot count using MultiKey index.`)\n }\n if (ranges.length === 0) {\n const range: ILmdbStoreRangeOptions = {\n start: [keyPrefix],\n end: [getValueEdgeAfter(keyPrefix)],\n snapshot: false,\n }\n return indexes.getKeysCount(range)\n }\n let count = 0\n for (let { start, end } of ranges) {\n start = [keyPrefix, ...start]\n end = [keyPrefix, ...end]\n // Assuming ranges are not overlapping\n const range: ILmdbStoreRangeOptions = { start, end, snapshot: false }\n count += indexes.getKeysCount(range)\n }\n return count\n}\n\nfunction createFilteringContext(args: IFilterArgs): IFilterContext {\n return {\n ...args,\n usedLimit: undefined,\n usedSkip: 0,\n usedQueries: new Set<DbQuery>(),\n }\n}\n\nfunction isMultiKeyIndex(context: IFilterContext): boolean {\n return context.indexMetadata.multiKeyFields.length > 0\n}\n\nfunction needsDeduplication(context: IFilterContext): boolean {\n if (!isMultiKeyIndex(context)) {\n return false\n }\n // Deduplication is not needed if all multiKeyFields have applied `eq` filters\n const fieldsWithAppliedEq = new Set<string>()\n context.usedQueries.forEach(q => {\n const filter = getFilterStatement(q)\n if (filter.comparator === DbComparator.EQ) {\n fieldsWithAppliedEq.add(dbQueryToDottedField(q))\n }\n })\n return context.indexMetadata.multiKeyFields.some(\n fieldName => !fieldsWithAppliedEq.has(fieldName)\n )\n}\n\nfunction performRangeScan(\n context: IFilterContext,\n ranges: Array<IIndexRange>\n): GatsbyIterable<IIndexEntry> {\n const {\n indexMetadata: { keyPrefix, stats },\n reverse,\n } = context\n\n let { limit, skip: offset = 0 } = context\n\n if (context.dbQueries.length !== context.usedQueries.size) {\n // Since this query is not fully satisfied by the index, we can't use limit/skip\n limit = undefined\n offset = 0\n }\n if (ranges.length > 1) {\n // e.g. { in: [1, 2] }\n // Cannot use offset: we will run several range queries and it's not clear which one to offset\n // TODO: assuming ranges are sorted and not overlapping it should be possible to use offsets in this case\n // by running first range query, counting results while lazily iterating and\n // running the next range query when the previous iterator is done (and count is known)\n // with offset = offset - previousRangeCount, limit = limit - previousRangeCount\n limit = typeof limit !== `undefined` ? offset + limit : undefined\n offset = 0\n }\n if (limit && isMultiKeyIndex(context) && needsDeduplication(context)) {\n // Cannot use limit:\n // MultiKey index may contain duplicates - we can only set a safe upper bound\n limit *= stats.maxKeysPerItem\n }\n\n // Assuming ranges are sorted and not overlapping, we can yield results sequentially\n const lmdbRanges: Array<ILmdbStoreRangeOptions> = []\n for (let { start, end } of ranges) {\n start = [keyPrefix, ...start]\n end = [keyPrefix, ...end]\n const range = !reverse\n ? { start, end, limit, offset, snapshot: false }\n : { start: end, end: start, limit, offset, reverse, snapshot: false }\n\n lmdbRanges.push(range)\n }\n context.usedLimit = limit\n context.usedSkip = offset\n return new GatsbyIterable(() => traverseRanges(context, lmdbRanges))\n}\n\nfunction performFullScan(context: IFilterContext): GatsbyIterable<IIndexEntry> {\n // *Caveat*: our old query implementation was putting undefined and null values at the end\n // of the list when ordered ascending. But lmdb-store keeps them at the top.\n // So in LMDB case, need to concat two ranges to conform to our old format:\n // concat(undefinedToEnd, topToUndefined)\n const {\n reverse,\n indexMetadata: { keyPrefix },\n } = context\n\n let start: RangeBoundary = [keyPrefix, getValueEdgeAfter(undefinedSymbol)]\n let end: RangeBoundary = [getValueEdgeAfter(keyPrefix)]\n let range = !reverse\n ? { start, end, snapshot: false }\n : { start: end, end: start, reverse, snapshot: false }\n\n const undefinedToEnd = range\n\n // Concat null/undefined values\n end = start\n start = [keyPrefix, null]\n range = !reverse\n ? { start, end, snapshot: false }\n : { start: end, end: start, reverse, snapshot: false }\n\n const topToUndefined = range\n\n const ranges: Array<ILmdbStoreRangeOptions> = !reverse\n ? [undefinedToEnd, topToUndefined]\n : [topToUndefined, undefinedToEnd]\n\n return new GatsbyIterable(() => traverseRanges(context, ranges))\n}\n\nfunction* traverseRanges(\n context: IFilterContext,\n ranges: Array<ILmdbStoreRangeOptions>\n): Generator<IIndexEntry> {\n const {\n databases: { indexes },\n } = context\n\n for (const range of ranges) {\n // @ts-ignore\n yield* indexes.getRange(range)\n }\n}\n\n/**\n * Takes results after the index scan and tries to filter them additionally with unused parts of the query.\n *\n * This is O(N) but the advantage is that it uses data available in the index.\n * So it effectively bypasses the `getNode()` call for such filters (with all associated deserialization complexity).\n *\n * Example:\n * Imagine the index is: { foo: 1, bar: 1 }\n *\n * Now we run the query:\n * sort: [`foo`]\n * filter: { bar: { eq: `test` }}\n *\n * Initial filtering pass will have to perform a full index scan (because `bar` is the last field in the index).\n *\n * But we still have values of `bar` stored in the index itself,\n * so can filter by this value without loading the full node contents.\n */\nfunction narrowResultsIfPossible(\n context: IFilterContext,\n entries: GatsbyIterable<IIndexEntry>\n): GatsbyIterable<IIndexEntry> {\n const { indexMetadata, dbQueries, usedQueries } = context\n\n const indexFields = new Map<string, number>()\n indexMetadata.keyFields.forEach(([fieldName], positionInKey) => {\n // Every index key is [indexId, field1, field2, ...] and `indexMetadata.keyFields` contains [field1, field2, ...]\n // As `indexId` is in the first column the fields need to be offset by +1 for correct addressing\n indexFields.set(fieldName, positionInKey + 1)\n })\n\n type Filter = [filter: IDbFilterStatement, fieldPositionInIndex: number]\n const filtersToApply: Array<Filter> = []\n\n for (const query of dbQueries) {\n const fieldName = dbQueryToDottedField(query)\n const positionInKey = indexFields.get(fieldName)\n\n if (typeof positionInKey === `undefined`) {\n // No data for this field in index\n continue\n }\n if (usedQueries.has(query)) {\n // Filter is already applied\n continue\n }\n if (isMultiKeyIndex(context) && isNegatedQuery(query)) {\n // NE/NIN not supported with MultiKey indexes:\n // MultiKey indexes include duplicates; negated queries will only filter some of those\n // but may still incorrectly include others in final results\n continue\n }\n const filter = getFilterStatement(query)\n filtersToApply.push([filter, positionInKey])\n usedQueries.add(query)\n }\n\n return filtersToApply.length === 0\n ? entries\n : entries.filter(({ key }) => {\n for (const [filter, fieldPositionInIndex] of filtersToApply) {\n const value =\n key[fieldPositionInIndex] === undefinedSymbol\n ? undefined\n : key[fieldPositionInIndex]\n\n if (!matchesFilter(filter, value)) {\n // Mimic AND semantics\n return false\n }\n }\n return true\n })\n}\n\n/**\n * Returns query clauses that can potentially use index.\n * Returned list is sorted by query specificity\n */\nfunction getSupportedQueries(\n context: IFilterContext,\n dbQueries: Array<DbQuery>\n): Array<DbQuery> {\n const isSupported = new Set([\n DbComparator.EQ,\n DbComparator.IN,\n DbComparator.GTE,\n DbComparator.LTE,\n DbComparator.GT,\n DbComparator.LT,\n DbComparator.NIN,\n DbComparator.NE,\n ])\n let supportedQueries = dbQueries.filter(query =>\n isSupported.has(getFilterStatement(query).comparator)\n )\n if (isMultiKeyIndex(context)) {\n // Note:\n // NE and NIN are not supported by multi-key indexes. Why?\n // Imagine a node { id: 1, field: [`foo`, `bar`] }\n // Then the filter { field: { ne: `foo` } } should completely remove this node from results.\n // But multikey index contains separate entries for `foo` and `bar` values.\n // Final range will exclude entry \"foo\" but it will still include entry for \"bar\" hence\n // will incorrectly include our node in results.\n supportedQueries = supportedQueries.filter(query => !isNegatedQuery(query))\n }\n return sortBySpecificity(supportedQueries)\n}\n\nfunction isEqualityQuery(query: DbQuery): boolean {\n const filter = getFilterStatement(query)\n return (\n filter.comparator === DbComparator.EQ ||\n filter.comparator === DbComparator.IN\n )\n}\n\nfunction isNegatedQuery(query: DbQuery): boolean {\n const filter = getFilterStatement(query)\n return (\n filter.comparator === DbComparator.NE ||\n filter.comparator === DbComparator.NIN\n )\n}\n\nexport function getIndexRanges(context: IFilterContext): Array<IIndexRange> {\n const {\n dbQueries,\n indexMetadata: { keyFields },\n } = context\n const rangeStarts: Array<RangeBoundary> = []\n const rangeEndings: Array<RangeBoundary> = []\n const supportedQueries = getSupportedQueries(context, dbQueries)\n\n for (const indexFieldInfo of new Map(keyFields)) {\n const query = getMostSpecificQuery(supportedQueries, indexFieldInfo)\n if (!query) {\n // Use index prefix, not all index fields\n break\n }\n const result = resolveIndexFieldRanges(context, query, indexFieldInfo)\n rangeStarts.push(result.rangeStarts)\n rangeEndings.push(result.rangeEndings)\n\n if (!isEqualityQuery(query)) {\n // Compound index { a: 1, b: 1, c: 1 } supports only one non-eq (range) operator. E.g.:\n // Supported: { a: { eq: `foo` }, b: { eq: 8 }, c: { gt: 5 } }\n // Not supported: { a: { eq: `foo` }, b: { gt: 5 }, c: { eq: 5 } }\n // (or to be precise, can do a range scan only for { a: { eq: `foo` }, b: { gt: 5 } })\n break\n }\n }\n if (!rangeStarts.length) {\n return []\n }\n // Only the last segment encloses the whole range.\n // For example, given an index { a: 1, b: 1 } and a filter { a: { eq: `foo` }, b: { eq: `bar` } },\n // It should produce this range:\n // {\n // start: [`foo`, `bar`],\n // end: [`foo`, [`bar`, BinaryInfinityPositive]]\n // }\n //\n // Not this:\n // {\n // start: [`foo`, `bar`],\n // end: [[`foo`, BinaryInfinityPositive], [`bar`, BinaryInfinityPositive]]\n // }\n for (let i = 0; i < rangeStarts.length - 1; i++) {\n rangeEndings[i] = rangeStarts[i]\n }\n\n // Example:\n // rangeStarts: [\n // [field1Start1, field1Start2],\n // [field2Start1],\n // ]\n // rangeEnds: [\n // [field1End1, field1End2],\n // [field2End1],\n // ]\n // Need:\n // rangeStartsProduct: [\n // [field1Start1, field2Start1],\n // [field1Start2, field2Start1],\n // ]\n // rangeEndingsProduct: [\n // [field1End1, field2End1],\n // [field1End2, field2End1],\n // ]\n const rangeStartsProduct = cartesianProduct(...rangeStarts)\n const rangeEndingsProduct = cartesianProduct(...rangeEndings)\n\n const ranges: Array<IIndexRange> = []\n for (let i = 0; i < rangeStartsProduct.length; i++) {\n ranges.push({\n start: rangeStartsProduct[i],\n end: rangeEndingsProduct[i],\n })\n }\n // TODO: sort and intersect ranges. Also, we may want this at some point:\n // https://docs.mongodb.com/manual/core/multikey-index-bounds/\n return ranges\n}\n\nfunction getFieldQueries(\n queries: Array<DbQuery>,\n fieldName: string\n): Array<DbQuery> {\n return queries.filter(q => dbQueryToDottedField(q) === fieldName)\n}\n\nfunction getMostSpecificQuery(\n queries: Array<DbQuery>,\n [indexField]: [fieldName: string, sortDirection: number]\n): DbQuery | undefined {\n const fieldQueries = getFieldQueries(queries, indexField)\n // Assuming queries are sorted by specificity, the best bet is to pick the first query\n return fieldQueries[0]\n}\n\nfunction resolveIndexFieldRanges(\n context: IFilterContext,\n query: DbQuery,\n [field, sortDirection]: [fieldName: string, sortDirection: number]\n): {\n rangeStarts: RangeBoundary\n rangeEndings: RangeBoundary\n} {\n // Tracking starts and ends separately instead of doing Array<[start, end]>\n // to simplify cartesian product creation later\n const rangeStarts: RangeBoundary = []\n const rangeEndings: RangeBoundary = []\n\n const filter = getFilterStatement(query)\n\n if (filter.comparator === DbComparator.IN && !Array.isArray(filter.value)) {\n throw new Error(\"The argument to the `in` predicate should be an array\")\n }\n\n context.usedQueries.add(query)\n\n switch (filter.comparator) {\n case DbComparator.EQ:\n case DbComparator.IN: {\n const arr = Array.isArray(filter.value)\n ? [...filter.value]\n : [filter.value]\n\n // Sort ranges by index sort direction\n arr.sort((a: any, b: any): number => {\n if (a === b) return 0\n if (sortDirection === 1) return a > b ? 1 : -1\n return a < b ? 1 : -1\n })\n\n let hasNull = false\n for (const item of new Set(arr)) {\n const value = toIndexFieldValue(item, filter)\n if (value === null) hasNull = true\n rangeStarts.push(value)\n rangeEndings.push(getValueEdgeAfter(value))\n }\n // Special case: { eq: null } or { in: [null, `any`]} must also include values for undefined!\n if (hasNull) {\n rangeStarts.push(undefinedSymbol)\n rangeEndings.push(getValueEdgeAfter(undefinedSymbol))\n }\n break\n }\n case DbComparator.LT:\n case DbComparator.LTE: {\n if (Array.isArray(filter.value))\n throw new Error(`${filter.comparator} value must not be an array`)\n\n const value = toIndexFieldValue(filter.value, filter)\n const end =\n filter.comparator === DbComparator.LT ? value : getValueEdgeAfter(value)\n\n // Try to find matching GTE/GT filter\n const start =\n resolveRangeEdge(context, field, DbComparator.GTE) ??\n resolveRangeEdge(context, field, DbComparator.GT, ValueEdges.AFTER)\n\n // Do not include null or undefined in results unless null was requested explicitly\n //\n // Index ordering:\n // BinaryInfinityNegative\n // null\n // Symbol(`undef`)\n // -10\n // 10\n // `Hello`\n // [`Hello`]\n // BinaryInfinityPositive\n const rangeHead =\n value === null\n ? BinaryInfinityNegative\n : getValueEdgeAfter(undefinedSymbol)\n\n rangeStarts.push(start ?? rangeHead)\n rangeEndings.push(end)\n break\n }\n case DbComparator.GT:\n case DbComparator.GTE: {\n if (Array.isArray(filter.value))\n throw new Error(`${filter.comparator} value must not be an array`)\n\n const value = toIndexFieldValue(filter.value, filter)\n const start =\n filter.comparator === DbComparator.GTE\n ? value\n : getValueEdgeAfter(value)\n\n // Try to find matching LT/LTE\n const end =\n resolveRangeEdge(context, field, DbComparator.LTE, ValueEdges.AFTER) ??\n resolveRangeEdge(context, field, DbComparator.LT)\n\n const rangeTail =\n value === null ? getValueEdgeAfter(null) : BinaryInfinityPositive\n\n rangeStarts.push(start)\n rangeEndings.push(end ?? rangeTail)\n break\n }\n case DbComparator.NE:\n case DbComparator.NIN: {\n const arr = Array.isArray(filter.value)\n ? [...filter.value]\n : [filter.value]\n\n // Sort ranges by index sort direction\n arr.sort((a: any, b: any): number => {\n if (a === b) return 0\n if (sortDirection === 1) return a > b ? 1 : -1\n return a < b ? 1 : -1\n })\n const hasNull = arr.some(value => value === null)\n\n if (hasNull) {\n rangeStarts.push(getValueEdgeAfter(undefinedSymbol))\n } else {\n rangeStarts.push(BinaryInfinityNegative)\n }\n for (const item of new Set(arr)) {\n const value = toIndexFieldValue(item, filter)\n if (value === null) continue // already handled via hasNull case above\n rangeEndings.push(value)\n rangeStarts.push(getValueEdgeAfter(value))\n }\n rangeEndings.push(BinaryInfinityPositive)\n break\n }\n default:\n throw new Error(`Unsupported predicate: ${filter.comparator}`)\n }\n return { rangeStarts, rangeEndings }\n}\n\nfunction resolveRangeEdge(\n context: IFilterContext,\n indexField: string,\n predicate: DbComparator,\n edge: ValueEdges = ValueEdges.EQ\n): IndexFieldValue | RangeEdgeBefore | RangeEdgeAfter | undefined {\n const fieldQueries = getFieldQueries(context.dbQueries, indexField)\n for (const dbQuery of fieldQueries) {\n if (context.usedQueries.has(dbQuery)) {\n continue\n }\n const filterStatement = getFilterStatement(dbQuery)\n if (filterStatement.comparator !== predicate) {\n continue\n }\n context.usedQueries.add(dbQuery)\n const value = filterStatement.value\n if (Array.isArray(value)) {\n throw new Error(`Range filter ${predicate} should not have array value`)\n }\n if (typeof value === `object` && value !== null) {\n throw new Error(\n `Range filter ${predicate} should not have value of type ${typeof value}`\n )\n }\n if (edge === 0) {\n return value\n }\n return edge < 0 ? getValueEdgeBefore(value) : getValueEdgeAfter(value)\n }\n return undefined\n}\n\n/**\n * Returns the edge after the given value, suitable for lmdb range queries.\n *\n * Example:\n * Get all items from index starting with [\"foo\"] prefix up to the next existing prefix:\n *\n * ```js\n * db.getRange({ start: [\"foo\"], end: [getValueEdgeAfter(\"foo\")] })\n * ```\n *\n * This method relies on ordered-binary format used by lmdb-store to persist keys\n * and assumes keys are composite and represented as arrays.\n *\n * Implementation detail: ordered-binary treats `null` as multipart separator within binary sequence\n */\nfunction getValueEdgeAfter(value: IndexFieldValue): RangeEdgeAfter {\n return [value, BinaryInfinityPositive]\n}\nfunction getValueEdgeBefore(value: IndexFieldValue): RangeEdgeBefore {\n return [undefinedSymbol, value]\n}\n\nfunction toIndexFieldValue(\n filterValue: DbComparatorValue,\n filter: IDbFilterStatement\n): IndexFieldValue {\n if (typeof filterValue === `object` && filterValue !== null) {\n throw new Error(\n `Bad filter value for predicate ${filter.comparator}: ${inspect(\n filter.value\n )}`\n )\n }\n return filterValue\n}\n\nfunction getIdentifier(entry: IIndexEntry): number | string {\n const id = entry.key[entry.key.length - 1]\n if (typeof id !== `number` && typeof id !== `string`) {\n const out = inspect(id)\n throw new Error(\n `Last element of index key is expected to be numeric or string id, got ${out}`\n )\n }\n return id\n}\n"],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { IDataStore, ILmdbDatabases, IQueryResult, IRunQueryArgs } from "../../types";
2
+ import { IIndexEntry } from "./filter-using-index";
3
+ interface IDoRunQueryArgs extends IRunQueryArgs {
4
+ databases: ILmdbDatabases;
5
+ datastore: IDataStore;
6
+ }
7
+ export declare function doRunQuery(args: IDoRunQueryArgs): Promise<IQueryResult>;
8
+ export declare function compareByKeySuffix(prefixLength: number): (a: IIndexEntry, b: IIndexEntry) => number;
9
+ export {};