@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.
- package/LICENSE +22 -0
- package/README.md +142 -0
- package/adapters.js +31 -0
- package/apis.json +73 -0
- package/cache-dir/.eslintrc.json +10 -0
- package/cache-dir/api-runner-browser-plugins.js +14 -0
- package/cache-dir/api-runner-browser.js +52 -0
- package/cache-dir/api-runner-ssr.js +88 -0
- package/cache-dir/api-ssr-docs.js +207 -0
- package/cache-dir/app.js +249 -0
- package/cache-dir/blank.css +0 -0
- package/cache-dir/commonjs/api-runner-browser-plugins.js +17 -0
- package/cache-dir/commonjs/api-runner-browser-plugins.js.map +1 -0
- package/cache-dir/commonjs/api-runner-browser.js +49 -0
- package/cache-dir/commonjs/api-runner-browser.js.map +1 -0
- package/cache-dir/commonjs/api-runner-ssr.js +88 -0
- package/cache-dir/commonjs/api-runner-ssr.js.map +1 -0
- package/cache-dir/commonjs/api-ssr-docs.js +210 -0
- package/cache-dir/commonjs/api-ssr-docs.js.map +1 -0
- package/cache-dir/commonjs/app.js +197 -0
- package/cache-dir/commonjs/app.js.map +1 -0
- package/cache-dir/commonjs/context-utils.js +25 -0
- package/cache-dir/commonjs/context-utils.js.map +1 -0
- package/cache-dir/commonjs/create-content-digest-browser-shim.js +4 -0
- package/cache-dir/commonjs/create-content-digest-browser-shim.js.map +1 -0
- package/cache-dir/commonjs/css-to-object.js +21 -0
- package/cache-dir/commonjs/css-to-object.js.map +1 -0
- package/cache-dir/commonjs/debug-log.js +11 -0
- package/cache-dir/commonjs/debug-log.js.map +1 -0
- package/cache-dir/commonjs/default-html.js +33 -0
- package/cache-dir/commonjs/default-html.js.map +1 -0
- package/cache-dir/commonjs/dev-loader.js +247 -0
- package/cache-dir/commonjs/dev-loader.js.map +1 -0
- package/cache-dir/commonjs/develop-static-entry.js +129 -0
- package/cache-dir/commonjs/develop-static-entry.js.map +1 -0
- package/cache-dir/commonjs/dummy.js +8 -0
- package/cache-dir/commonjs/dummy.js.map +1 -0
- package/cache-dir/commonjs/emitter.js +10 -0
- package/cache-dir/commonjs/emitter.js.map +1 -0
- package/cache-dir/commonjs/ensure-resources.js +107 -0
- package/cache-dir/commonjs/ensure-resources.js.map +1 -0
- package/cache-dir/commonjs/error-overlay-handler.js +35 -0
- package/cache-dir/commonjs/error-overlay-handler.js.map +1 -0
- package/cache-dir/commonjs/fast-refresh-overlay/components/accordion.js +80 -0
- package/cache-dir/commonjs/fast-refresh-overlay/components/accordion.js.map +1 -0
- package/cache-dir/commonjs/fast-refresh-overlay/components/build-error.js +44 -0
- package/cache-dir/commonjs/fast-refresh-overlay/components/build-error.js.map +1 -0
- package/cache-dir/commonjs/fast-refresh-overlay/components/code-frame.js +38 -0
- package/cache-dir/commonjs/fast-refresh-overlay/components/code-frame.js.map +1 -0
- package/cache-dir/commonjs/fast-refresh-overlay/components/dev-ssr-error.js +52 -0
- package/cache-dir/commonjs/fast-refresh-overlay/components/dev-ssr-error.js.map +1 -0
- package/cache-dir/commonjs/fast-refresh-overlay/components/error-boundary.js +31 -0
- package/cache-dir/commonjs/fast-refresh-overlay/components/error-boundary.js.map +1 -0
- package/cache-dir/commonjs/fast-refresh-overlay/components/getserverdata-error.js +47 -0
- package/cache-dir/commonjs/fast-refresh-overlay/components/getserverdata-error.js.map +1 -0
- package/cache-dir/commonjs/fast-refresh-overlay/components/graphql-errors.js +77 -0
- package/cache-dir/commonjs/fast-refresh-overlay/components/graphql-errors.js.map +1 -0
- package/cache-dir/commonjs/fast-refresh-overlay/components/hooks.js +93 -0
- package/cache-dir/commonjs/fast-refresh-overlay/components/hooks.js.map +1 -0
- package/cache-dir/commonjs/fast-refresh-overlay/components/overlay.js +147 -0
- package/cache-dir/commonjs/fast-refresh-overlay/components/overlay.js.map +1 -0
- package/cache-dir/commonjs/fast-refresh-overlay/components/runtime-errors.js +110 -0
- package/cache-dir/commonjs/fast-refresh-overlay/components/runtime-errors.js.map +1 -0
- package/cache-dir/commonjs/fast-refresh-overlay/components/use-id.js +50 -0
- package/cache-dir/commonjs/fast-refresh-overlay/components/use-id.js.map +1 -0
- package/cache-dir/commonjs/fast-refresh-overlay/helpers/focus-trap.js +2879 -0
- package/cache-dir/commonjs/fast-refresh-overlay/helpers/focus-trap.js.map +1 -0
- package/cache-dir/commonjs/fast-refresh-overlay/helpers/keys.js +84 -0
- package/cache-dir/commonjs/fast-refresh-overlay/helpers/keys.js.map +1 -0
- package/cache-dir/commonjs/fast-refresh-overlay/helpers/lock-body.js +48 -0
- package/cache-dir/commonjs/fast-refresh-overlay/helpers/lock-body.js.map +1 -0
- package/cache-dir/commonjs/fast-refresh-overlay/helpers/match.js +44 -0
- package/cache-dir/commonjs/fast-refresh-overlay/helpers/match.js.map +1 -0
- package/cache-dir/commonjs/fast-refresh-overlay/index.js +182 -0
- package/cache-dir/commonjs/fast-refresh-overlay/index.js.map +1 -0
- package/cache-dir/commonjs/fast-refresh-overlay/style.js +418 -0
- package/cache-dir/commonjs/fast-refresh-overlay/style.js.map +1 -0
- package/cache-dir/commonjs/fast-refresh-overlay/utils.js +75 -0
- package/cache-dir/commonjs/fast-refresh-overlay/utils.js.map +1 -0
- package/cache-dir/commonjs/find-path.js +145 -0
- package/cache-dir/commonjs/find-path.js.map +1 -0
- package/cache-dir/commonjs/gatsby-browser-entry.js +52 -0
- package/cache-dir/commonjs/gatsby-browser-entry.js.map +1 -0
- package/cache-dir/commonjs/head/components/fire-callback-in-effect.js +18 -0
- package/cache-dir/commonjs/head/components/fire-callback-in-effect.js.map +1 -0
- package/cache-dir/commonjs/head/components/head-components.js +72 -0
- package/cache-dir/commonjs/head/components/head-components.js.map +1 -0
- package/cache-dir/commonjs/head/constants.js +13 -0
- package/cache-dir/commonjs/head/constants.js.map +1 -0
- package/cache-dir/commonjs/head/head-export-handler-for-browser.js +144 -0
- package/cache-dir/commonjs/head/head-export-handler-for-browser.js.map +1 -0
- package/cache-dir/commonjs/head/head-export-handler-for-ssr.js +225 -0
- package/cache-dir/commonjs/head/head-export-handler-for-ssr.js.map +1 -0
- package/cache-dir/commonjs/head/utils.js +264 -0
- package/cache-dir/commonjs/head/utils.js.map +1 -0
- package/cache-dir/commonjs/loader.js +861 -0
- package/cache-dir/commonjs/loader.js.map +1 -0
- package/cache-dir/commonjs/loading-indicator/index.js +25 -0
- package/cache-dir/commonjs/loading-indicator/index.js.map +1 -0
- package/cache-dir/commonjs/loading-indicator/indicator.js +63 -0
- package/cache-dir/commonjs/loading-indicator/indicator.js.map +1 -0
- package/cache-dir/commonjs/loading-indicator/style.js +103 -0
- package/cache-dir/commonjs/loading-indicator/style.js.map +1 -0
- package/cache-dir/commonjs/navigation.js +260 -0
- package/cache-dir/commonjs/navigation.js.map +1 -0
- package/cache-dir/commonjs/normalize-page-path.js +22 -0
- package/cache-dir/commonjs/normalize-page-path.js.map +1 -0
- package/cache-dir/commonjs/page-renderer.js +59 -0
- package/cache-dir/commonjs/page-renderer.js.map +1 -0
- package/cache-dir/commonjs/pages.json +1 -0
- package/cache-dir/commonjs/polyfill-entry.js +7 -0
- package/cache-dir/commonjs/polyfill-entry.js.map +1 -0
- package/cache-dir/commonjs/prefetch.js +67 -0
- package/cache-dir/commonjs/prefetch.js.map +1 -0
- package/cache-dir/commonjs/production-app.js +256 -0
- package/cache-dir/commonjs/production-app.js.map +1 -0
- package/cache-dir/commonjs/public-page-renderer-dev.js +26 -0
- package/cache-dir/commonjs/public-page-renderer-dev.js.map +1 -0
- package/cache-dir/commonjs/public-page-renderer-prod.js +30 -0
- package/cache-dir/commonjs/public-page-renderer-prod.js.map +1 -0
- package/cache-dir/commonjs/public-page-renderer.js +11 -0
- package/cache-dir/commonjs/public-page-renderer.js.map +1 -0
- package/cache-dir/commonjs/query-result-store.js +160 -0
- package/cache-dir/commonjs/query-result-store.js.map +1 -0
- package/cache-dir/commonjs/react-dom-utils.js +34 -0
- package/cache-dir/commonjs/react-dom-utils.js.map +1 -0
- package/cache-dir/commonjs/react-lifecycles-compat.js +4 -0
- package/cache-dir/commonjs/react-lifecycles-compat.js.map +1 -0
- package/cache-dir/commonjs/redirect-utils.js +25 -0
- package/cache-dir/commonjs/redirect-utils.js.map +1 -0
- package/cache-dir/commonjs/redirects.json +1 -0
- package/cache-dir/commonjs/register-service-worker.js +66 -0
- package/cache-dir/commonjs/register-service-worker.js.map +1 -0
- package/cache-dir/commonjs/root.js +105 -0
- package/cache-dir/commonjs/root.js.map +1 -0
- package/cache-dir/commonjs/route-announcer-props.js +24 -0
- package/cache-dir/commonjs/route-announcer-props.js.map +1 -0
- package/cache-dir/commonjs/server-utils/writable-as-promise.js +42 -0
- package/cache-dir/commonjs/server-utils/writable-as-promise.js.map +1 -0
- package/cache-dir/commonjs/shadow-portal.js +36 -0
- package/cache-dir/commonjs/shadow-portal.js.map +1 -0
- package/cache-dir/commonjs/slice/context.js +15 -0
- package/cache-dir/commonjs/slice/context.js.map +1 -0
- package/cache-dir/commonjs/slice/inline-slice.js +34 -0
- package/cache-dir/commonjs/slice/inline-slice.js.map +1 -0
- package/cache-dir/commonjs/slice/server-slice-renderer.js +29 -0
- package/cache-dir/commonjs/slice/server-slice-renderer.js.map +1 -0
- package/cache-dir/commonjs/slice/server-slice.js +54 -0
- package/cache-dir/commonjs/slice/server-slice.js.map +1 -0
- package/cache-dir/commonjs/slice.js +124 -0
- package/cache-dir/commonjs/slice.js.map +1 -0
- package/cache-dir/commonjs/socketIo.js +62 -0
- package/cache-dir/commonjs/socketIo.js.map +1 -0
- package/cache-dir/commonjs/ssr-builtin-trackers/child_process.js +8 -0
- package/cache-dir/commonjs/ssr-builtin-trackers/child_process.js.map +1 -0
- package/cache-dir/commonjs/ssr-builtin-trackers/fs.js +7 -0
- package/cache-dir/commonjs/ssr-builtin-trackers/fs.js.map +1 -0
- package/cache-dir/commonjs/ssr-builtin-trackers/http.js +9 -0
- package/cache-dir/commonjs/ssr-builtin-trackers/http.js.map +1 -0
- package/cache-dir/commonjs/ssr-builtin-trackers/http2.js +7 -0
- package/cache-dir/commonjs/ssr-builtin-trackers/http2.js.map +1 -0
- package/cache-dir/commonjs/ssr-builtin-trackers/https.js +9 -0
- package/cache-dir/commonjs/ssr-builtin-trackers/https.js.map +1 -0
- package/cache-dir/commonjs/ssr-builtin-trackers/tracking-unsafe-module-wrapper.js +55 -0
- package/cache-dir/commonjs/ssr-builtin-trackers/tracking-unsafe-module-wrapper.js.map +1 -0
- package/cache-dir/commonjs/ssr-develop-static-entry.js +366 -0
- package/cache-dir/commonjs/ssr-develop-static-entry.js.map +1 -0
- package/cache-dir/commonjs/static-entry.js +544 -0
- package/cache-dir/commonjs/static-entry.js.map +1 -0
- package/cache-dir/commonjs/static-query.js +74 -0
- package/cache-dir/commonjs/static-query.js.map +1 -0
- package/cache-dir/commonjs/strip-prefix.js +22 -0
- package/cache-dir/commonjs/strip-prefix.js.map +1 -0
- package/cache-dir/context-utils.js +29 -0
- package/cache-dir/create-content-digest-browser-shim.js +1 -0
- package/cache-dir/css-to-object.js +19 -0
- package/cache-dir/debug-log.js +13 -0
- package/cache-dir/default-html.js +36 -0
- package/cache-dir/dev-loader.js +280 -0
- package/cache-dir/develop-static-entry.js +129 -0
- package/cache-dir/dummy.js +2 -0
- package/cache-dir/emitter.js +4 -0
- package/cache-dir/ensure-resources.js +119 -0
- package/cache-dir/error-overlay-handler.js +36 -0
- package/cache-dir/fast-refresh-overlay/components/accordion.js +83 -0
- package/cache-dir/fast-refresh-overlay/components/build-error.js +46 -0
- package/cache-dir/fast-refresh-overlay/components/code-frame.js +38 -0
- package/cache-dir/fast-refresh-overlay/components/dev-ssr-error.js +66 -0
- package/cache-dir/fast-refresh-overlay/components/error-boundary.js +28 -0
- package/cache-dir/fast-refresh-overlay/components/getserverdata-error.js +53 -0
- package/cache-dir/fast-refresh-overlay/components/graphql-errors.js +100 -0
- package/cache-dir/fast-refresh-overlay/components/hooks.js +102 -0
- package/cache-dir/fast-refresh-overlay/components/overlay.js +143 -0
- package/cache-dir/fast-refresh-overlay/components/runtime-errors.js +139 -0
- package/cache-dir/fast-refresh-overlay/components/use-id.js +56 -0
- package/cache-dir/fast-refresh-overlay/helpers/focus-trap.js +3561 -0
- package/cache-dir/fast-refresh-overlay/helpers/keys.js +80 -0
- package/cache-dir/fast-refresh-overlay/helpers/lock-body.js +52 -0
- package/cache-dir/fast-refresh-overlay/helpers/match.js +42 -0
- package/cache-dir/fast-refresh-overlay/index.js +147 -0
- package/cache-dir/fast-refresh-overlay/style.js +413 -0
- package/cache-dir/fast-refresh-overlay/utils.js +81 -0
- package/cache-dir/find-path.js +160 -0
- package/cache-dir/gatsby-browser-entry.js +27 -0
- package/cache-dir/head/components/fire-callback-in-effect.js +12 -0
- package/cache-dir/head/components/head-components.js +86 -0
- package/cache-dir/head/constants.js +15 -0
- package/cache-dir/head/head-export-handler-for-browser.js +170 -0
- package/cache-dir/head/head-export-handler-for-ssr.js +237 -0
- package/cache-dir/head/utils.js +287 -0
- package/cache-dir/loader.js +977 -0
- package/cache-dir/loading-indicator/index.js +19 -0
- package/cache-dir/loading-indicator/indicator.js +65 -0
- package/cache-dir/loading-indicator/style.js +99 -0
- package/cache-dir/navigation.js +257 -0
- package/cache-dir/normalize-page-path.js +17 -0
- package/cache-dir/page-renderer.js +59 -0
- package/cache-dir/page-ssr/index.d.ts +76 -0
- package/cache-dir/pages.json +1 -0
- package/cache-dir/polyfill-entry.js +5 -0
- package/cache-dir/prefetch.js +80 -0
- package/cache-dir/production-app.js +340 -0
- package/cache-dir/public-page-renderer-dev.js +21 -0
- package/cache-dir/public-page-renderer-prod.js +25 -0
- package/cache-dir/public-page-renderer.js +9 -0
- package/cache-dir/query-engine/index.d.ts +31 -0
- package/cache-dir/query-result-store.js +197 -0
- package/cache-dir/react-dom-utils.js +38 -0
- package/cache-dir/react-lifecycles-compat.js +1 -0
- package/cache-dir/redirect-utils.js +22 -0
- package/cache-dir/redirects.json +1 -0
- package/cache-dir/register-service-worker.js +64 -0
- package/cache-dir/root.js +147 -0
- package/cache-dir/route-announcer-props.js +18 -0
- package/cache-dir/server-utils/writable-as-promise.js +41 -0
- package/cache-dir/shadow-portal.js +28 -0
- package/cache-dir/slice/context.js +13 -0
- package/cache-dir/slice/inline-slice.js +34 -0
- package/cache-dir/slice/server-slice-renderer.js +28 -0
- package/cache-dir/slice/server-slice.js +52 -0
- package/cache-dir/slice.js +158 -0
- package/cache-dir/socketIo.js +58 -0
- package/cache-dir/ssr-builtin-trackers/child_process.js +4 -0
- package/cache-dir/ssr-builtin-trackers/fs.js +3 -0
- package/cache-dir/ssr-builtin-trackers/http.js +3 -0
- package/cache-dir/ssr-builtin-trackers/http2.js +3 -0
- package/cache-dir/ssr-builtin-trackers/https.js +3 -0
- package/cache-dir/ssr-builtin-trackers/tracking-unsafe-module-wrapper.js +64 -0
- package/cache-dir/ssr-develop-static-entry.js +428 -0
- package/cache-dir/static-entry.js +594 -0
- package/cache-dir/static-query.js +91 -0
- package/cache-dir/strip-prefix.js +20 -0
- package/changes.json +454 -0
- package/cli.js +3 -0
- package/dist/bin/gatsby.js +5 -0
- package/dist/bin/gatsby.js.map +1 -0
- package/dist/bootstrap/__mocks__/get-config/ts/gatsby-config.d.ts +3 -0
- package/dist/bootstrap/__mocks__/resolve-module-exports.d.ts +1 -0
- package/dist/bootstrap/create-graphql-runner.d.ts +10 -0
- package/dist/bootstrap/create-graphql-runner.js +71 -0
- package/dist/bootstrap/create-graphql-runner.js.map +1 -0
- package/dist/bootstrap/get-config-file.d.ts +4 -0
- package/dist/bootstrap/get-config-file.js +152 -0
- package/dist/bootstrap/get-config-file.js.map +1 -0
- package/dist/bootstrap/index.d.ts +12 -0
- package/dist/bootstrap/index.js +56 -0
- package/dist/bootstrap/index.js.map +1 -0
- package/dist/bootstrap/load-config/index.d.ts +7 -0
- package/dist/bootstrap/load-config/index.js +73 -0
- package/dist/bootstrap/load-config/index.js.map +1 -0
- package/dist/bootstrap/load-plugins/index.d.ts +3 -0
- package/dist/bootstrap/load-plugins/index.js +79 -0
- package/dist/bootstrap/load-plugins/index.js.map +1 -0
- package/dist/bootstrap/load-plugins/load-internal-plugins.d.ts +2 -0
- package/dist/bootstrap/load-plugins/load-internal-plugins.js +105 -0
- package/dist/bootstrap/load-plugins/load-internal-plugins.js.map +1 -0
- package/dist/bootstrap/load-plugins/process-plugin.d.ts +2 -0
- package/dist/bootstrap/load-plugins/process-plugin.js +81 -0
- package/dist/bootstrap/load-plugins/process-plugin.js.map +1 -0
- package/dist/bootstrap/load-plugins/resolve-plugin.d.ts +13 -0
- package/dist/bootstrap/load-plugins/resolve-plugin.js +75 -0
- package/dist/bootstrap/load-plugins/resolve-plugin.js.map +1 -0
- package/dist/bootstrap/load-plugins/types.d.ts +48 -0
- package/dist/bootstrap/load-plugins/types.js +4 -0
- package/dist/bootstrap/load-plugins/types.js.map +1 -0
- package/dist/bootstrap/load-plugins/utils/check-local-plugin.d.ts +8 -0
- package/dist/bootstrap/load-plugins/utils/check-local-plugin.js +38 -0
- package/dist/bootstrap/load-plugins/utils/check-local-plugin.js.map +1 -0
- package/dist/bootstrap/load-plugins/utils/create-hash.d.ts +1 -0
- package/dist/bootstrap/load-plugins/utils/create-hash.js +20 -0
- package/dist/bootstrap/load-plugins/utils/create-hash.js.map +1 -0
- package/dist/bootstrap/load-plugins/utils/create-id.d.ts +10 -0
- package/dist/bootstrap/load-plugins/utils/create-id.js +16 -0
- package/dist/bootstrap/load-plugins/utils/create-id.js.map +1 -0
- package/dist/bootstrap/load-plugins/utils/flatten-plugins.d.ts +2 -0
- package/dist/bootstrap/load-plugins/utils/flatten-plugins.js +41 -0
- package/dist/bootstrap/load-plugins/utils/flatten-plugins.js.map +1 -0
- package/dist/bootstrap/load-plugins/utils/get-api.d.ts +12 -0
- package/dist/bootstrap/load-plugins/utils/get-api.js +12 -0
- package/dist/bootstrap/load-plugins/utils/get-api.js.map +1 -0
- package/dist/bootstrap/load-plugins/utils/normalize.d.ts +5 -0
- package/dist/bootstrap/load-plugins/utils/normalize.js +33 -0
- package/dist/bootstrap/load-plugins/utils/normalize.js.map +1 -0
- package/dist/bootstrap/load-plugins/validate.d.ts +41 -0
- package/dist/bootstrap/load-plugins/validate.js +369 -0
- package/dist/bootstrap/load-plugins/validate.js.map +1 -0
- package/dist/bootstrap/load-themes/index.d.ts +17 -0
- package/dist/bootstrap/load-themes/index.js +186 -0
- package/dist/bootstrap/load-themes/index.js.map +1 -0
- package/dist/bootstrap/log-line-function.d.ts +0 -0
- package/dist/bootstrap/log-line-function.js +19 -0
- package/dist/bootstrap/log-line-function.js.map +1 -0
- package/dist/bootstrap/prefer-default.d.ts +1 -0
- package/dist/bootstrap/prefer-default.js +7 -0
- package/dist/bootstrap/prefer-default.js.map +1 -0
- package/dist/bootstrap/redirects-writer.d.ts +2 -0
- package/dist/bootstrap/redirects-writer.js +59 -0
- package/dist/bootstrap/redirects-writer.js.map +1 -0
- package/dist/bootstrap/remove-stale-jobs.d.ts +2 -0
- package/dist/bootstrap/remove-stale-jobs.js +31 -0
- package/dist/bootstrap/remove-stale-jobs.js.map +1 -0
- package/dist/bootstrap/requires-writer.d.ts +11 -0
- package/dist/bootstrap/requires-writer.js +260 -0
- package/dist/bootstrap/requires-writer.js.map +1 -0
- package/dist/bootstrap/resolve-js-file-path.d.ts +14 -0
- package/dist/bootstrap/resolve-js-file-path.js +58 -0
- package/dist/bootstrap/resolve-js-file-path.js.map +1 -0
- package/dist/bootstrap/resolve-module-exports.d.ts +20 -0
- package/dist/bootstrap/resolve-module-exports.js +188 -0
- package/dist/bootstrap/resolve-module-exports.js.map +1 -0
- package/dist/bootstrap/schema-hot-reloader.d.ts +3 -0
- package/dist/bootstrap/schema-hot-reloader.js +60 -0
- package/dist/bootstrap/schema-hot-reloader.js.map +1 -0
- package/dist/cache/cache-fs.d.ts +1 -0
- package/dist/cache/cache-fs.js +270 -0
- package/dist/cache/cache-fs.js.map +1 -0
- package/dist/cache/json-file-store.d.ts +8 -0
- package/dist/cache/json-file-store.js +144 -0
- package/dist/cache/json-file-store.js.map +1 -0
- package/dist/cache/wrap-callback.d.ts +0 -0
- package/dist/cache/wrap-callback.js +49 -0
- package/dist/cache/wrap-callback.js.map +1 -0
- package/dist/commands/build-html.d.ts +69 -0
- package/dist/commands/build-html.js +652 -0
- package/dist/commands/build-html.js.map +1 -0
- package/dist/commands/build-javascript.d.ts +4 -0
- package/dist/commands/build-javascript.js +18 -0
- package/dist/commands/build-javascript.js.map +1 -0
- package/dist/commands/build-utils.d.ts +8 -0
- package/dist/commands/build-utils.js +186 -0
- package/dist/commands/build-utils.js.map +1 -0
- package/dist/commands/build.d.ts +1 -0
- package/dist/commands/build.js +505 -0
- package/dist/commands/build.js.map +1 -0
- package/dist/commands/clean.d.ts +1 -0
- package/dist/commands/clean.js +29 -0
- package/dist/commands/clean.js.map +1 -0
- package/dist/commands/develop-process.d.ts +1 -0
- package/dist/commands/develop-process.js +120 -0
- package/dist/commands/develop-process.js.map +1 -0
- package/dist/commands/develop-static.d.ts +3 -0
- package/dist/commands/develop-static.js +22 -0
- package/dist/commands/develop-static.js.map +1 -0
- package/dist/commands/develop.d.ts +2 -0
- package/dist/commands/develop.js +273 -0
- package/dist/commands/develop.js.map +1 -0
- package/dist/commands/feedback.d.ts +1 -0
- package/dist/commands/feedback.js +17 -0
- package/dist/commands/feedback.js.map +1 -0
- package/dist/commands/repl.d.ts +1 -0
- package/dist/commands/repl.js +58 -0
- package/dist/commands/repl.js.map +1 -0
- package/dist/commands/serve.d.ts +1 -0
- package/dist/commands/serve.js +282 -0
- package/dist/commands/serve.js.map +1 -0
- package/dist/commands/types.d.ts +54 -0
- package/dist/commands/types.js +23 -0
- package/dist/commands/types.js.map +1 -0
- package/dist/constants.d.ts +1 -0
- package/dist/constants.js +7 -0
- package/dist/constants.js.map +1 -0
- package/dist/datastore/common/iterable.d.ts +51 -0
- package/dist/datastore/common/iterable.js +217 -0
- package/dist/datastore/common/iterable.js.map +1 -0
- package/dist/datastore/common/query.d.ts +69 -0
- package/dist/datastore/common/query.js +219 -0
- package/dist/datastore/common/query.js.map +1 -0
- package/dist/datastore/datastore.d.ts +2 -0
- package/dist/datastore/datastore.js +23 -0
- package/dist/datastore/datastore.js.map +1 -0
- package/dist/datastore/in-memory/in-memory-datastore.d.ts +2 -0
- package/dist/datastore/in-memory/in-memory-datastore.js +75 -0
- package/dist/datastore/in-memory/in-memory-datastore.js.map +1 -0
- package/dist/datastore/in-memory/indexing.d.ts +80 -0
- package/dist/datastore/in-memory/indexing.js +994 -0
- package/dist/datastore/in-memory/indexing.js.map +1 -0
- package/dist/datastore/in-memory/run-fast-filters.d.ts +27 -0
- package/dist/datastore/in-memory/run-fast-filters.js +276 -0
- package/dist/datastore/in-memory/run-fast-filters.js.map +1 -0
- package/dist/datastore/index.d.ts +20 -0
- package/dist/datastore/index.js +34 -0
- package/dist/datastore/index.js.map +1 -0
- package/dist/datastore/lmdb/lmdb-datastore.d.ts +14 -0
- package/dist/datastore/lmdb/lmdb-datastore.js +261 -0
- package/dist/datastore/lmdb/lmdb-datastore.js.map +1 -0
- package/dist/datastore/lmdb/query/common.d.ts +23 -0
- package/dist/datastore/lmdb/query/common.js +127 -0
- package/dist/datastore/lmdb/query/common.js.map +1 -0
- package/dist/datastore/lmdb/query/create-index.d.ts +25 -0
- package/dist/datastore/lmdb/query/create-index.js +239 -0
- package/dist/datastore/lmdb/query/create-index.js.map +1 -0
- package/dist/datastore/lmdb/query/filter-using-index.d.ts +43 -0
- package/dist/datastore/lmdb/query/filter-using-index.js +577 -0
- package/dist/datastore/lmdb/query/filter-using-index.js.map +1 -0
- package/dist/datastore/lmdb/query/run-query.d.ts +9 -0
- package/dist/datastore/lmdb/query/run-query.js +285 -0
- package/dist/datastore/lmdb/query/run-query.js.map +1 -0
- package/dist/datastore/lmdb/query/suggest-index.d.ts +15 -0
- package/dist/datastore/lmdb/query/suggest-index.js +93 -0
- package/dist/datastore/lmdb/query/suggest-index.js.map +1 -0
- package/dist/datastore/lmdb/updates/nodes-by-type.d.ts +3 -0
- package/dist/datastore/lmdb/updates/nodes-by-type.js +21 -0
- package/dist/datastore/lmdb/updates/nodes-by-type.js.map +1 -0
- package/dist/datastore/lmdb/updates/nodes.d.ts +5 -0
- package/dist/datastore/lmdb/updates/nodes.js +33 -0
- package/dist/datastore/lmdb/updates/nodes.js.map +1 -0
- package/dist/datastore/types.d.ts +47 -0
- package/dist/datastore/types.js +4 -0
- package/dist/datastore/types.js.map +1 -0
- package/dist/internal-plugins/bundle-optimisations/gatsby-node.js +42 -0
- package/dist/internal-plugins/bundle-optimisations/gatsby-node.js.map +1 -0
- package/dist/internal-plugins/bundle-optimisations/index.js +3 -0
- package/dist/internal-plugins/bundle-optimisations/index.js.map +1 -0
- package/dist/internal-plugins/bundle-optimisations/package.json +10 -0
- package/dist/internal-plugins/bundle-optimisations/polyfills/fetch.js +4 -0
- package/dist/internal-plugins/bundle-optimisations/polyfills/fetch.js.map +1 -0
- package/dist/internal-plugins/bundle-optimisations/polyfills/no-op.js +3 -0
- package/dist/internal-plugins/bundle-optimisations/polyfills/no-op.js.map +1 -0
- package/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js +4 -0
- package/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js.map +1 -0
- package/dist/internal-plugins/bundle-optimisations/polyfills/whatwg-fetch.js +6 -0
- package/dist/internal-plugins/bundle-optimisations/polyfills/whatwg-fetch.js.map +1 -0
- package/dist/internal-plugins/dev-404-page/gatsby-node.js +30 -0
- package/dist/internal-plugins/dev-404-page/gatsby-node.js.map +1 -0
- package/dist/internal-plugins/dev-404-page/index.js +3 -0
- package/dist/internal-plugins/dev-404-page/index.js.map +1 -0
- package/dist/internal-plugins/dev-404-page/package.json +11 -0
- package/dist/internal-plugins/dev-404-page/raw_dev-404-page.js +262 -0
- package/dist/internal-plugins/functions/api-function-webpack-loader.d.ts +3 -0
- package/dist/internal-plugins/functions/api-function-webpack-loader.js +74 -0
- package/dist/internal-plugins/functions/api-function-webpack-loader.js.map +1 -0
- package/dist/internal-plugins/functions/config.d.ts +20 -0
- package/dist/internal-plugins/functions/config.js +96 -0
- package/dist/internal-plugins/functions/config.js.map +1 -0
- package/dist/internal-plugins/functions/gatsby-node.d.ts +3 -0
- package/dist/internal-plugins/functions/gatsby-node.js +452 -0
- package/dist/internal-plugins/functions/gatsby-node.js.map +1 -0
- package/dist/internal-plugins/functions/index.js +3 -0
- package/dist/internal-plugins/functions/index.js.map +1 -0
- package/dist/internal-plugins/functions/middleware.d.ts +11 -0
- package/dist/internal-plugins/functions/middleware.js +160 -0
- package/dist/internal-plugins/functions/middleware.js.map +1 -0
- package/dist/internal-plugins/functions/package.json +11 -0
- package/dist/internal-plugins/internal-data-bridge/gatsby-node.js +191 -0
- package/dist/internal-plugins/internal-data-bridge/gatsby-node.js.map +1 -0
- package/dist/internal-plugins/internal-data-bridge/index.js +3 -0
- package/dist/internal-plugins/internal-data-bridge/index.js.map +1 -0
- package/dist/internal-plugins/internal-data-bridge/package.json +11 -0
- package/dist/internal-plugins/load-babel-config/gatsby-node.js +37 -0
- package/dist/internal-plugins/load-babel-config/gatsby-node.js.map +1 -0
- package/dist/internal-plugins/load-babel-config/index.js +3 -0
- package/dist/internal-plugins/load-babel-config/index.js.map +1 -0
- package/dist/internal-plugins/load-babel-config/package.json +11 -0
- package/dist/internal-plugins/partytown/gatsby-browser.js +23 -0
- package/dist/internal-plugins/partytown/gatsby-browser.js.map +1 -0
- package/dist/internal-plugins/partytown/gatsby-node.d.ts +2 -0
- package/dist/internal-plugins/partytown/gatsby-node.js +60 -0
- package/dist/internal-plugins/partytown/gatsby-node.js.map +1 -0
- package/dist/internal-plugins/partytown/gatsby-ssr.js +39 -0
- package/dist/internal-plugins/partytown/gatsby-ssr.js.map +1 -0
- package/dist/internal-plugins/partytown/index.js +3 -0
- package/dist/internal-plugins/partytown/index.js.map +1 -0
- package/dist/internal-plugins/partytown/package.json +12 -0
- package/dist/internal-plugins/partytown/proxy.d.ts +3 -0
- package/dist/internal-plugins/partytown/proxy.js +26 -0
- package/dist/internal-plugins/partytown/proxy.js.map +1 -0
- package/dist/internal-plugins/partytown/utils/get-forwards.d.ts +2 -0
- package/dist/internal-plugins/partytown/utils/get-forwards.js +8 -0
- package/dist/internal-plugins/partytown/utils/get-forwards.js.map +1 -0
- package/dist/internal-plugins/partytown/utils/inject-partytown-snippet.d.ts +2 -0
- package/dist/internal-plugins/partytown/utils/inject-partytown-snippet.js +28 -0
- package/dist/internal-plugins/partytown/utils/inject-partytown-snippet.js.map +1 -0
- package/dist/internal-plugins/prod-404-500/gatsby-node.js +50 -0
- package/dist/internal-plugins/prod-404-500/gatsby-node.js.map +1 -0
- package/dist/internal-plugins/prod-404-500/index.js +3 -0
- package/dist/internal-plugins/prod-404-500/index.js.map +1 -0
- package/dist/internal-plugins/prod-404-500/package.json +11 -0
- package/dist/internal-plugins/webpack-theme-component-shadowing/create-page.js +31 -0
- package/dist/internal-plugins/webpack-theme-component-shadowing/create-page.js.map +1 -0
- package/dist/internal-plugins/webpack-theme-component-shadowing/gatsby-node.js +31 -0
- package/dist/internal-plugins/webpack-theme-component-shadowing/gatsby-node.js.map +1 -0
- package/dist/internal-plugins/webpack-theme-component-shadowing/index.js +273 -0
- package/dist/internal-plugins/webpack-theme-component-shadowing/index.js.map +1 -0
- package/dist/internal-plugins/webpack-theme-component-shadowing/package.json +11 -0
- package/dist/internal.d.ts +5 -0
- package/dist/internal.js +34 -0
- package/dist/internal.js.map +1 -0
- package/dist/joi-schemas/joi.d.ts +5 -0
- package/dist/joi-schemas/joi.js +122 -0
- package/dist/joi-schemas/joi.js.map +1 -0
- package/dist/query/error-parser.d.ts +19 -0
- package/dist/query/error-parser.js +163 -0
- package/dist/query/error-parser.js.map +1 -0
- package/dist/query/file-parser.js +584 -0
- package/dist/query/file-parser.js.map +1 -0
- package/dist/query/graphql-errors-codeframe.d.ts +1 -0
- package/dist/query/graphql-errors-codeframe.js +20 -0
- package/dist/query/graphql-errors-codeframe.js.map +1 -0
- package/dist/query/graphql-errors.js +278 -0
- package/dist/query/graphql-errors.js.map +1 -0
- package/dist/query/graphql-runner.d.ts +39 -0
- package/dist/query/graphql-runner.js +221 -0
- package/dist/query/graphql-runner.js.map +1 -0
- package/dist/query/graphql-span-tracer.d.ts +19 -0
- package/dist/query/graphql-span-tracer.js +63 -0
- package/dist/query/graphql-span-tracer.js.map +1 -0
- package/dist/query/index.d.ts +32 -0
- package/dist/query/index.js +301 -0
- package/dist/query/index.js.map +1 -0
- package/dist/query/query-compiler.js +433 -0
- package/dist/query/query-compiler.js.map +1 -0
- package/dist/query/query-runner.d.ts +13 -0
- package/dist/query/query-runner.js +176 -0
- package/dist/query/query-runner.js.map +1 -0
- package/dist/query/query-watcher.d.ts +17 -0
- package/dist/query/query-watcher.js +250 -0
- package/dist/query/query-watcher.js.map +1 -0
- package/dist/query/transform-document.d.ts +6 -0
- package/dist/query/transform-document.js +131 -0
- package/dist/query/transform-document.js.map +1 -0
- package/dist/query/types.d.ts +35 -0
- package/dist/query/types.js +4 -0
- package/dist/query/types.js.map +1 -0
- package/dist/query/utils.d.ts +4 -0
- package/dist/query/utils.js +20 -0
- package/dist/query/utils.js.map +1 -0
- package/dist/redux/actions/add-page-dependency.d.ts +7 -0
- package/dist/redux/actions/add-page-dependency.js +52 -0
- package/dist/redux/actions/add-page-dependency.js.map +1 -0
- package/dist/redux/actions/index.d.ts +16 -0
- package/dist/redux/actions/index.js +21 -0
- package/dist/redux/actions/index.js.map +1 -0
- package/dist/redux/actions/internal.d.ts +124 -0
- package/dist/redux/actions/internal.js +394 -0
- package/dist/redux/actions/internal.js.map +1 -0
- package/dist/redux/actions/public.js +1354 -0
- package/dist/redux/actions/public.js.map +1 -0
- package/dist/redux/actions/restricted.d.ts +332 -0
- package/dist/redux/actions/restricted.js +521 -0
- package/dist/redux/actions/restricted.js.map +1 -0
- package/dist/redux/index.d.ts +20 -0
- package/dist/redux/index.js +125 -0
- package/dist/redux/index.js.map +1 -0
- package/dist/redux/persist.d.ts +5 -0
- package/dist/redux/persist.js +191 -0
- package/dist/redux/persist.js.map +1 -0
- package/dist/redux/plugin-runner.d.ts +1 -0
- package/dist/redux/plugin-runner.js +45 -0
- package/dist/redux/plugin-runner.js.map +1 -0
- package/dist/redux/reducers/adapter.d.ts +6 -0
- package/dist/redux/reducers/adapter.js +22 -0
- package/dist/redux/reducers/adapter.js.map +1 -0
- package/dist/redux/reducers/babelrc.d.ts +9 -0
- package/dist/redux/reducers/babelrc.js +104 -0
- package/dist/redux/reducers/babelrc.js.map +1 -0
- package/dist/redux/reducers/components-using-slices.d.ts +2 -0
- package/dist/redux/reducers/components-using-slices.js +15 -0
- package/dist/redux/reducers/components-using-slices.js.map +1 -0
- package/dist/redux/reducers/components.d.ts +2 -0
- package/dist/redux/reducers/components.js +104 -0
- package/dist/redux/reducers/components.js.map +1 -0
- package/dist/redux/reducers/config.d.ts +2 -0
- package/dist/redux/reducers/config.js +16 -0
- package/dist/redux/reducers/config.js.map +1 -0
- package/dist/redux/reducers/definitions.d.ts +2 -0
- package/dist/redux/reducers/definitions.js +14 -0
- package/dist/redux/reducers/definitions.js.map +1 -0
- package/dist/redux/reducers/flattened-plugins.d.ts +17 -0
- package/dist/redux/reducers/flattened-plugins.js +14 -0
- package/dist/redux/reducers/flattened-plugins.js.map +1 -0
- package/dist/redux/reducers/functions.d.ts +2 -0
- package/dist/redux/reducers/functions.js +14 -0
- package/dist/redux/reducers/functions.js.map +1 -0
- package/dist/redux/reducers/html.d.ts +25 -0
- package/dist/redux/reducers/html.js +384 -0
- package/dist/redux/reducers/html.js.map +1 -0
- package/dist/redux/reducers/index.d.ts +45 -0
- package/dist/redux/reducers/index.js +86 -0
- package/dist/redux/reducers/index.js.map +1 -0
- package/dist/redux/reducers/inference-metadata.d.ts +7 -0
- package/dist/redux/reducers/inference-metadata.js +174 -0
- package/dist/redux/reducers/inference-metadata.js.map +1 -0
- package/dist/redux/reducers/jobs.d.ts +5 -0
- package/dist/redux/reducers/jobs.js +65 -0
- package/dist/redux/reducers/jobs.js.map +1 -0
- package/dist/redux/reducers/jobsv2.d.ts +6 -0
- package/dist/redux/reducers/jobsv2.js +88 -0
- package/dist/redux/reducers/jobsv2.js.map +1 -0
- package/dist/redux/reducers/last-action.d.ts +2 -0
- package/dist/redux/reducers/last-action.js +7 -0
- package/dist/redux/reducers/last-action.js.map +1 -0
- package/dist/redux/reducers/node-manifest.d.ts +2 -0
- package/dist/redux/reducers/node-manifest.js +58 -0
- package/dist/redux/reducers/node-manifest.js.map +1 -0
- package/dist/redux/reducers/nodes-by-type.d.ts +2 -0
- package/dist/redux/reducers/nodes-by-type.js +53 -0
- package/dist/redux/reducers/nodes-by-type.js.map +1 -0
- package/dist/redux/reducers/nodes-touched.d.ts +3 -0
- package/dist/redux/reducers/nodes-touched.js +18 -0
- package/dist/redux/reducers/nodes-touched.js.map +1 -0
- package/dist/redux/reducers/nodes.d.ts +2 -0
- package/dist/redux/reducers/nodes.js +30 -0
- package/dist/redux/reducers/nodes.js.map +1 -0
- package/dist/redux/reducers/page-data-stats.d.ts +2 -0
- package/dist/redux/reducers/page-data-stats.js +15 -0
- package/dist/redux/reducers/page-data-stats.js.map +1 -0
- package/dist/redux/reducers/pages.d.ts +2 -0
- package/dist/redux/reducers/pages.js +43 -0
- package/dist/redux/reducers/pages.js.map +1 -0
- package/dist/redux/reducers/pending-page-data-writes.d.ts +5 -0
- package/dist/redux/reducers/pending-page-data-writes.js +66 -0
- package/dist/redux/reducers/pending-page-data-writes.js.map +1 -0
- package/dist/redux/reducers/program.d.ts +2 -0
- package/dist/redux/reducers/program.js +62 -0
- package/dist/redux/reducers/program.js.map +1 -0
- package/dist/redux/reducers/queries.d.ts +26 -0
- package/dist/redux/reducers/queries.js +403 -0
- package/dist/redux/reducers/queries.js.map +1 -0
- package/dist/redux/reducers/redirects.d.ts +2 -0
- package/dist/redux/reducers/redirects.js +39 -0
- package/dist/redux/reducers/redirects.js.map +1 -0
- package/dist/redux/reducers/remote-file-allowed-urls.d.ts +2 -0
- package/dist/redux/reducers/remote-file-allowed-urls.js +19 -0
- package/dist/redux/reducers/remote-file-allowed-urls.js.map +1 -0
- package/dist/redux/reducers/resolved-nodes.d.ts +2 -0
- package/dist/redux/reducers/resolved-nodes.js +45 -0
- package/dist/redux/reducers/resolved-nodes.js.map +1 -0
- package/dist/redux/reducers/schema-customization.d.ts +23 -0
- package/dist/redux/reducers/schema-customization.js +103 -0
- package/dist/redux/reducers/schema-customization.js.map +1 -0
- package/dist/redux/reducers/schema.d.ts +3 -0
- package/dist/redux/reducers/schema.js +17 -0
- package/dist/redux/reducers/schema.js.map +1 -0
- package/dist/redux/reducers/set-request-headers.d.ts +7 -0
- package/dist/redux/reducers/set-request-headers.js +24 -0
- package/dist/redux/reducers/set-request-headers.js.map +1 -0
- package/dist/redux/reducers/slices-by-template.d.ts +2 -0
- package/dist/redux/reducers/slices-by-template.js +16 -0
- package/dist/redux/reducers/slices-by-template.js.map +1 -0
- package/dist/redux/reducers/slices.d.ts +2 -0
- package/dist/redux/reducers/slices.js +22 -0
- package/dist/redux/reducers/slices.js.map +1 -0
- package/dist/redux/reducers/stateful-source-plugins.d.ts +5 -0
- package/dist/redux/reducers/stateful-source-plugins.js +20 -0
- package/dist/redux/reducers/stateful-source-plugins.js.map +1 -0
- package/dist/redux/reducers/static-queries-by-template.d.ts +2 -0
- package/dist/redux/reducers/static-queries-by-template.js +19 -0
- package/dist/redux/reducers/static-queries-by-template.js.map +1 -0
- package/dist/redux/reducers/static-query-components.d.ts +2 -0
- package/dist/redux/reducers/static-query-components.js +18 -0
- package/dist/redux/reducers/static-query-components.js.map +1 -0
- package/dist/redux/reducers/status.d.ts +7 -0
- package/dist/redux/reducers/status.js +57 -0
- package/dist/redux/reducers/status.js.map +1 -0
- package/dist/redux/reducers/telemetry.d.ts +2 -0
- package/dist/redux/reducers/telemetry.js +46 -0
- package/dist/redux/reducers/telemetry.js.map +1 -0
- package/dist/redux/reducers/type-owners.d.ts +5 -0
- package/dist/redux/reducers/type-owners.js +102 -0
- package/dist/redux/reducers/type-owners.js.map +1 -0
- package/dist/redux/reducers/visited-page.d.ts +2 -0
- package/dist/redux/reducers/visited-page.js +31 -0
- package/dist/redux/reducers/visited-page.js.map +1 -0
- package/dist/redux/reducers/webpack-compilation-hash.d.ts +2 -0
- package/dist/redux/reducers/webpack-compilation-hash.js +14 -0
- package/dist/redux/reducers/webpack-compilation-hash.js.map +1 -0
- package/dist/redux/reducers/webpack.d.ts +2 -0
- package/dist/redux/reducers/webpack.js +27 -0
- package/dist/redux/reducers/webpack.js.map +1 -0
- package/dist/redux/save-state.js +19 -0
- package/dist/redux/save-state.js.map +1 -0
- package/dist/redux/types.d.ts +1337 -0
- package/dist/redux/types.js +326 -0
- package/dist/redux/types.js.map +1 -0
- package/dist/schema/context.d.ts +14 -0
- package/dist/schema/context.js +38 -0
- package/dist/schema/context.js.map +1 -0
- package/dist/schema/extensions/index.js +205 -0
- package/dist/schema/extensions/index.js.map +1 -0
- package/dist/schema/graphql-engine/bootstrap.d.ts +2 -0
- package/dist/schema/graphql-engine/bootstrap.js +12 -0
- package/dist/schema/graphql-engine/bootstrap.js.map +1 -0
- package/dist/schema/graphql-engine/bundle-webpack.d.ts +5 -0
- package/dist/schema/graphql-engine/bundle-webpack.js +446 -0
- package/dist/schema/graphql-engine/bundle-webpack.js.map +1 -0
- package/dist/schema/graphql-engine/entry.d.ts +23 -0
- package/dist/schema/graphql-engine/entry.js +204 -0
- package/dist/schema/graphql-engine/entry.js.map +1 -0
- package/dist/schema/graphql-engine/lmdb-bundling-patch.d.ts +1 -0
- package/dist/schema/graphql-engine/lmdb-bundling-patch.js +72 -0
- package/dist/schema/graphql-engine/lmdb-bundling-patch.js.map +1 -0
- package/dist/schema/graphql-engine/platform-and-arch-check.d.ts +0 -0
- package/dist/schema/graphql-engine/platform-and-arch-check.js +6 -0
- package/dist/schema/graphql-engine/platform-and-arch-check.js.map +1 -0
- package/dist/schema/graphql-engine/print-plugins.d.ts +2 -0
- package/dist/schema/graphql-engine/print-plugins.js +145 -0
- package/dist/schema/graphql-engine/print-plugins.js.map +1 -0
- package/dist/schema/graphql-engine/sharp-bundling-patch.d.ts +1 -0
- package/dist/schema/graphql-engine/sharp-bundling-patch.js +8 -0
- package/dist/schema/graphql-engine/sharp-bundling-patch.js.map +1 -0
- package/dist/schema/graphql-engine/shims/gatsby-sharp.js +10 -0
- package/dist/schema/graphql-engine/shims/gatsby-sharp.js.map +1 -0
- package/dist/schema/graphql-engine/shims/no-op-module.js +3 -0
- package/dist/schema/graphql-engine/shims/no-op-module.js.map +1 -0
- package/dist/schema/graphql-engine/shims/ts-node.js +17 -0
- package/dist/schema/graphql-engine/shims/ts-node.js.map +1 -0
- package/dist/schema/graphql-engine/standalone-regenerate.d.ts +2 -0
- package/dist/schema/graphql-engine/standalone-regenerate.js +73 -0
- package/dist/schema/graphql-engine/standalone-regenerate.js.map +1 -0
- package/dist/schema/index.js +189 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/infer/add-inferred-fields.js +413 -0
- package/dist/schema/infer/add-inferred-fields.js.map +1 -0
- package/dist/schema/infer/build-example-data.d.ts +5 -0
- package/dist/schema/infer/build-example-data.js +199 -0
- package/dist/schema/infer/build-example-data.js.map +1 -0
- package/dist/schema/infer/index.js +121 -0
- package/dist/schema/infer/index.js.map +1 -0
- package/dist/schema/infer/inference-metadata.d.ts +72 -0
- package/dist/schema/infer/inference-metadata.js +280 -0
- package/dist/schema/infer/inference-metadata.js.map +1 -0
- package/dist/schema/infer/is-file.d.ts +1 -0
- package/dist/schema/infer/is-file.js +65 -0
- package/dist/schema/infer/is-file.js.map +1 -0
- package/dist/schema/infer/type-conflict-reporter.d.ts +28 -0
- package/dist/schema/infer/type-conflict-reporter.js +104 -0
- package/dist/schema/infer/type-conflict-reporter.js.map +1 -0
- package/dist/schema/node-model.js +784 -0
- package/dist/schema/node-model.js.map +1 -0
- package/dist/schema/print.d.ts +20 -0
- package/dist/schema/print.js +279 -0
- package/dist/schema/print.js.map +1 -0
- package/dist/schema/resolvers.d.ts +40 -0
- package/dist/schema/resolvers.js +569 -0
- package/dist/schema/resolvers.js.map +1 -0
- package/dist/schema/schema-composer.d.ts +3 -0
- package/dist/schema/schema-composer.js +31 -0
- package/dist/schema/schema-composer.js.map +1 -0
- package/dist/schema/schema.js +1295 -0
- package/dist/schema/schema.js.map +1 -0
- package/dist/schema/type-definitions.d.ts +47 -0
- package/dist/schema/type-definitions.js +4 -0
- package/dist/schema/type-definitions.js.map +1 -0
- package/dist/schema/types/built-in-types.d.ts +5 -0
- package/dist/schema/types/built-in-types.js +139 -0
- package/dist/schema/types/built-in-types.js.map +1 -0
- package/dist/schema/types/date.d.ts +37 -0
- package/dist/schema/types/date.js +225 -0
- package/dist/schema/types/date.js.map +1 -0
- package/dist/schema/types/derived-types.d.ts +45 -0
- package/dist/schema/types/derived-types.js +108 -0
- package/dist/schema/types/derived-types.js.map +1 -0
- package/dist/schema/types/filter.d.ts +12 -0
- package/dist/schema/types/filter.js +105 -0
- package/dist/schema/types/filter.js.map +1 -0
- package/dist/schema/types/media.d.ts +2 -0
- package/dist/schema/types/media.js +10 -0
- package/dist/schema/types/media.js.map +1 -0
- package/dist/schema/types/node-interface.d.ts +14 -0
- package/dist/schema/types/node-interface.js +103 -0
- package/dist/schema/types/node-interface.js.map +1 -0
- package/dist/schema/types/pagination.d.ts +16 -0
- package/dist/schema/types/pagination.js +198 -0
- package/dist/schema/types/pagination.js.map +1 -0
- package/dist/schema/types/remote-file-interface.d.ts +3 -0
- package/dist/schema/types/remote-file-interface.js +34 -0
- package/dist/schema/types/remote-file-interface.js.map +1 -0
- package/dist/schema/types/sort.d.ts +24 -0
- package/dist/schema/types/sort.js +178 -0
- package/dist/schema/types/sort.js.map +1 -0
- package/dist/schema/types/type-builders.d.ts +36 -0
- package/dist/schema/types/type-builders.js +61 -0
- package/dist/schema/types/type-builders.js.map +1 -0
- package/dist/schema/types/type-defs.js +86 -0
- package/dist/schema/types/type-defs.js.map +1 -0
- package/dist/schema/types/utils.d.ts +33 -0
- package/dist/schema/types/utils.js +153 -0
- package/dist/schema/types/utils.js.map +1 -0
- package/dist/schema/utils.d.ts +28 -0
- package/dist/schema/utils.js +149 -0
- package/dist/schema/utils.js.map +1 -0
- package/dist/services/build-schema.d.ts +2 -0
- package/dist/services/build-schema.js +24 -0
- package/dist/services/build-schema.js.map +1 -0
- package/dist/services/calculate-dirty-queries.d.ts +5 -0
- package/dist/services/calculate-dirty-queries.js +44 -0
- package/dist/services/calculate-dirty-queries.js.map +1 -0
- package/dist/services/create-pages.d.ts +5 -0
- package/dist/services/create-pages.js +108 -0
- package/dist/services/create-pages.js.map +1 -0
- package/dist/services/customize-schema.d.ts +2 -0
- package/dist/services/customize-schema.js +26 -0
- package/dist/services/customize-schema.js.map +1 -0
- package/dist/services/extract-queries.d.ts +2 -0
- package/dist/services/extract-queries.js +24 -0
- package/dist/services/extract-queries.js.map +1 -0
- package/dist/services/graphql-typegen.d.ts +2 -0
- package/dist/services/graphql-typegen.js +46 -0
- package/dist/services/graphql-typegen.js.map +1 -0
- package/dist/services/index.d.ts +19 -0
- package/dist/services/index.js +68 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/initialize.d.ts +14 -0
- package/dist/services/initialize.js +519 -0
- package/dist/services/initialize.js.map +1 -0
- package/dist/services/listen-for-mutations.d.ts +2 -0
- package/dist/services/listen-for-mutations.js +59 -0
- package/dist/services/listen-for-mutations.js.map +1 -0
- package/dist/services/listen-to-webpack.d.ts +3 -0
- package/dist/services/listen-to-webpack.js +17 -0
- package/dist/services/listen-to-webpack.js.map +1 -0
- package/dist/services/post-bootstrap.d.ts +2 -0
- package/dist/services/post-bootstrap.js +29 -0
- package/dist/services/post-bootstrap.js.map +1 -0
- package/dist/services/recompile.d.ts +3 -0
- package/dist/services/recompile.js +67 -0
- package/dist/services/recompile.js.map +1 -0
- package/dist/services/run-mutation-batch.d.ts +2 -0
- package/dist/services/run-mutation-batch.js +12 -0
- package/dist/services/run-mutation-batch.js.map +1 -0
- package/dist/services/run-page-queries.d.ts +2 -0
- package/dist/services/run-page-queries.js +38 -0
- package/dist/services/run-page-queries.js.map +1 -0
- package/dist/services/run-slice-queries.d.ts +2 -0
- package/dist/services/run-slice-queries.js +40 -0
- package/dist/services/run-slice-queries.js.map +1 -0
- package/dist/services/run-static-queries.d.ts +2 -0
- package/dist/services/run-static-queries.js +38 -0
- package/dist/services/run-static-queries.js.map +1 -0
- package/dist/services/source-nodes.d.ts +5 -0
- package/dist/services/source-nodes.js +47 -0
- package/dist/services/source-nodes.js.map +1 -0
- package/dist/services/start-webpack-server.d.ts +9 -0
- package/dist/services/start-webpack-server.js +103 -0
- package/dist/services/start-webpack-server.js.map +1 -0
- package/dist/services/types.d.ts +53 -0
- package/dist/services/types.js +4 -0
- package/dist/services/types.js.map +1 -0
- package/dist/services/write-out-redirects.d.ts +2 -0
- package/dist/services/write-out-redirects.js +20 -0
- package/dist/services/write-out-redirects.js.map +1 -0
- package/dist/services/write-out-requires.d.ts +2 -0
- package/dist/services/write-out-requires.js +27 -0
- package/dist/services/write-out-requires.js.map +1 -0
- package/dist/state-machines/data-layer/actions.d.ts +11 -0
- package/dist/state-machines/data-layer/actions.js +38 -0
- package/dist/state-machines/data-layer/actions.js.map +1 -0
- package/dist/state-machines/data-layer/index.d.ts +24 -0
- package/dist/state-machines/data-layer/index.js +152 -0
- package/dist/state-machines/data-layer/index.js.map +1 -0
- package/dist/state-machines/data-layer/services.d.ts +3 -0
- package/dist/state-machines/data-layer/services.js +14 -0
- package/dist/state-machines/data-layer/services.js.map +1 -0
- package/dist/state-machines/data-layer/types.d.ts +27 -0
- package/dist/state-machines/data-layer/types.js +4 -0
- package/dist/state-machines/data-layer/types.js.map +1 -0
- package/dist/state-machines/develop/actions.d.ts +68 -0
- package/dist/state-machines/develop/actions.js +259 -0
- package/dist/state-machines/develop/actions.js.map +1 -0
- package/dist/state-machines/develop/index.d.ts +5 -0
- package/dist/state-machines/develop/index.js +372 -0
- package/dist/state-machines/develop/index.js.map +1 -0
- package/dist/state-machines/develop/services.d.ts +3 -0
- package/dist/state-machines/develop/services.js +22 -0
- package/dist/state-machines/develop/services.js.map +1 -0
- package/dist/state-machines/index.d.ts +7 -0
- package/dist/state-machines/index.js +21 -0
- package/dist/state-machines/index.js.map +1 -0
- package/dist/state-machines/query-running/actions.d.ts +9 -0
- package/dist/state-machines/query-running/actions.js +55 -0
- package/dist/state-machines/query-running/actions.js.map +1 -0
- package/dist/state-machines/query-running/index.d.ts +7 -0
- package/dist/state-machines/query-running/index.js +142 -0
- package/dist/state-machines/query-running/index.js.map +1 -0
- package/dist/state-machines/query-running/services.d.ts +3 -0
- package/dist/state-machines/query-running/services.js +17 -0
- package/dist/state-machines/query-running/services.js.map +1 -0
- package/dist/state-machines/query-running/types.d.ts +26 -0
- package/dist/state-machines/query-running/types.js +4 -0
- package/dist/state-machines/query-running/types.js.map +1 -0
- package/dist/state-machines/waiting/actions.d.ts +11 -0
- package/dist/state-machines/waiting/actions.js +36 -0
- package/dist/state-machines/waiting/actions.js.map +1 -0
- package/dist/state-machines/waiting/index.d.ts +12 -0
- package/dist/state-machines/waiting/index.js +145 -0
- package/dist/state-machines/waiting/index.js.map +1 -0
- package/dist/state-machines/waiting/services.d.ts +3 -0
- package/dist/state-machines/waiting/services.js +10 -0
- package/dist/state-machines/waiting/services.js.map +1 -0
- package/dist/state-machines/waiting/types.d.ts +12 -0
- package/dist/state-machines/waiting/types.js +4 -0
- package/dist/state-machines/waiting/types.js.map +1 -0
- package/dist/types.d.ts +9 -0
- package/dist/types.js +4 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/adapter/constants.d.ts +5 -0
- package/dist/utils/adapter/constants.js +31 -0
- package/dist/utils/adapter/constants.js.map +1 -0
- package/dist/utils/adapter/create-headers.d.ts +10 -0
- package/dist/utils/adapter/create-headers.js +94 -0
- package/dist/utils/adapter/create-headers.js.map +1 -0
- package/dist/utils/adapter/get-route-path.d.ts +3 -0
- package/dist/utils/adapter/get-route-path.js +22 -0
- package/dist/utils/adapter/get-route-path.js.map +1 -0
- package/dist/utils/adapter/init.d.ts +3 -0
- package/dist/utils/adapter/init.js +183 -0
- package/dist/utils/adapter/init.js.map +1 -0
- package/dist/utils/adapter/manager.d.ts +9 -0
- package/dist/utils/adapter/manager.js +554 -0
- package/dist/utils/adapter/manager.js.map +1 -0
- package/dist/utils/adapter/no-op-manager.d.ts +2 -0
- package/dist/utils/adapter/no-op-manager.js +18 -0
- package/dist/utils/adapter/no-op-manager.js.map +1 -0
- package/dist/utils/adapter/types.d.ts +282 -0
- package/dist/utils/adapter/types.js +4 -0
- package/dist/utils/adapter/types.js.map +1 -0
- package/dist/utils/api-browser-docs.d.ts +272 -0
- package/dist/utils/api-browser-docs.js +318 -0
- package/dist/utils/api-browser-docs.js.map +1 -0
- package/dist/utils/api-node-docs.d.ts +470 -0
- package/dist/utils/api-node-docs.js +519 -0
- package/dist/utils/api-node-docs.js.map +1 -0
- package/dist/utils/api-node-helpers-docs.js +322 -0
- package/dist/utils/api-node-helpers-docs.js.map +1 -0
- package/dist/utils/api-runner-error-parser.d.ts +5 -0
- package/dist/utils/api-runner-error-parser.js +63 -0
- package/dist/utils/api-runner-error-parser.js.map +1 -0
- package/dist/utils/api-runner-node.js +663 -0
- package/dist/utils/api-runner-node.js.map +1 -0
- package/dist/utils/app-data.d.ts +2 -0
- package/dist/utils/app-data.js +15 -0
- package/dist/utils/app-data.js.map +1 -0
- package/dist/utils/assert-store.d.ts +2 -0
- package/dist/utils/assert-store.js +12 -0
- package/dist/utils/assert-store.js.map +1 -0
- package/dist/utils/babel/babel-module-exports-helpers.d.ts +22 -0
- package/dist/utils/babel/babel-module-exports-helpers.js +48 -0
- package/dist/utils/babel/babel-module-exports-helpers.js.map +1 -0
- package/dist/utils/babel/babel-plugin-add-slice-placeholder-location.d.ts +10 -0
- package/dist/utils/babel/babel-plugin-add-slice-placeholder-location.js +48 -0
- package/dist/utils/babel/babel-plugin-add-slice-placeholder-location.js.map +1 -0
- package/dist/utils/babel/babel-plugin-remove-api.d.ts +5 -0
- package/dist/utils/babel/babel-plugin-remove-api.js +148 -0
- package/dist/utils/babel/babel-plugin-remove-api.js.map +1 -0
- package/dist/utils/babel/find-slices.d.ts +8 -0
- package/dist/utils/babel/find-slices.js +68 -0
- package/dist/utils/babel/find-slices.js.map +1 -0
- package/dist/utils/babel-loader-helpers.d.ts +19 -0
- package/dist/utils/babel-loader-helpers.js +158 -0
- package/dist/utils/babel-loader-helpers.js.map +1 -0
- package/dist/utils/babel-loader.d.ts +8 -0
- package/dist/utils/babel-loader.js +158 -0
- package/dist/utils/babel-loader.js.map +1 -0
- package/dist/utils/babel-parse-to-ast.d.ts +4 -0
- package/dist/utils/babel-parse-to-ast.js +34 -0
- package/dist/utils/babel-parse-to-ast.js.map +1 -0
- package/dist/utils/batcher.d.ts +15 -0
- package/dist/utils/batcher.js +46 -0
- package/dist/utils/batcher.js.map +1 -0
- package/dist/utils/browserslist.d.ts +2 -0
- package/dist/utils/browserslist.js +38 -0
- package/dist/utils/browserslist.js.map +1 -0
- package/dist/utils/cache-lmdb.d.ts +19 -0
- package/dist/utils/cache-lmdb.js +88 -0
- package/dist/utils/cache-lmdb.js.map +1 -0
- package/dist/utils/cache.d.ts +17 -0
- package/dist/utils/cache.js +77 -0
- package/dist/utils/cache.js.map +1 -0
- package/dist/utils/call-deferred-api.d.ts +8 -0
- package/dist/utils/call-deferred-api.js +35 -0
- package/dist/utils/call-deferred-api.js.map +1 -0
- package/dist/utils/changed-pages.d.ts +6 -0
- package/dist/utils/changed-pages.js +45 -0
- package/dist/utils/changed-pages.js.map +1 -0
- package/dist/utils/clear-require-cache.d.ts +1 -0
- package/dist/utils/clear-require-cache.js +24 -0
- package/dist/utils/clear-require-cache.js.map +1 -0
- package/dist/utils/client-assets-for-template.d.ts +9 -0
- package/dist/utils/client-assets-for-template.js +141 -0
- package/dist/utils/client-assets-for-template.js.map +1 -0
- package/dist/utils/create-node-id.d.ts +24 -0
- package/dist/utils/create-node-id.js +67 -0
- package/dist/utils/create-node-id.js.map +1 -0
- package/dist/utils/create-schema-customization.d.ts +6 -0
- package/dist/utils/create-schema-customization.js +25 -0
- package/dist/utils/create-schema-customization.js.map +1 -0
- package/dist/utils/detect-node-mutations.d.ts +4 -0
- package/dist/utils/detect-node-mutations.js +134 -0
- package/dist/utils/detect-node-mutations.js.map +1 -0
- package/dist/utils/detect-port-in-use-and-prompt.d.ts +1 -0
- package/dist/utils/detect-port-in-use-and-prompt.js +31 -0
- package/dist/utils/detect-port-in-use-and-prompt.js.map +1 -0
- package/dist/utils/dev-ssr/parse-error.d.ts +22 -0
- package/dist/utils/dev-ssr/parse-error.js +119 -0
- package/dist/utils/dev-ssr/parse-error.js.map +1 -0
- package/dist/utils/dev-ssr/render-dev-html-child.d.ts +13 -0
- package/dist/utils/dev-ssr/render-dev-html-child.js +47 -0
- package/dist/utils/dev-ssr/render-dev-html-child.js.map +1 -0
- package/dist/utils/dev-ssr/render-dev-html.d.ts +23 -0
- package/dist/utils/dev-ssr/render-dev-html.js +227 -0
- package/dist/utils/dev-ssr/render-dev-html.js.map +1 -0
- package/dist/utils/develop-preload-headers.d.ts +7 -0
- package/dist/utils/develop-preload-headers.js +64 -0
- package/dist/utils/develop-preload-headers.js.map +1 -0
- package/dist/utils/did-you-mean.d.ts +3 -0
- package/dist/utils/did-you-mean.js +21 -0
- package/dist/utils/did-you-mean.js.map +1 -0
- package/dist/utils/engine-context.d.ts +5 -0
- package/dist/utils/engine-context.js +19 -0
- package/dist/utils/engine-context.js.map +1 -0
- package/dist/utils/engines-fs-provider.d.ts +9 -0
- package/dist/utils/engines-fs-provider.js +24 -0
- package/dist/utils/engines-fs-provider.js.map +1 -0
- package/dist/utils/engines-helpers.d.ts +10 -0
- package/dist/utils/engines-helpers.js +48 -0
- package/dist/utils/engines-helpers.js.map +1 -0
- package/dist/utils/ensure-file-content.d.ts +1 -0
- package/dist/utils/ensure-file-content.js +19 -0
- package/dist/utils/ensure-file-content.js.map +1 -0
- package/dist/utils/eslint/required.js +10 -0
- package/dist/utils/eslint/required.js.map +1 -0
- package/dist/utils/eslint-config.d.ts +3 -0
- package/dist/utils/eslint-config.js +136 -0
- package/dist/utils/eslint-config.js.map +1 -0
- package/dist/utils/eslint-rules/limited-exports-page-templates.d.ts +1 -0
- package/dist/utils/eslint-rules/limited-exports-page-templates.js +183 -0
- package/dist/utils/eslint-rules/limited-exports-page-templates.js.map +1 -0
- package/dist/utils/eslint-rules/no-anonymous-exports-page-templates.d.ts +1 -0
- package/dist/utils/eslint-rules/no-anonymous-exports-page-templates.js +75 -0
- package/dist/utils/eslint-rules/no-anonymous-exports-page-templates.js.map +1 -0
- package/dist/utils/eslint-rules-helpers.d.ts +4 -0
- package/dist/utils/eslint-rules-helpers.js +22 -0
- package/dist/utils/eslint-rules-helpers.js.map +1 -0
- package/dist/utils/express-middlewares.d.ts +4 -0
- package/dist/utils/express-middlewares.js +57 -0
- package/dist/utils/express-middlewares.js.map +1 -0
- package/dist/utils/extract-undefined-global.d.ts +4 -0
- package/dist/utils/extract-undefined-global.js +15 -0
- package/dist/utils/extract-undefined-global.js.map +1 -0
- package/dist/utils/fast-refresh-module.d.ts +22 -0
- package/dist/utils/fast-refresh-module.js +53 -0
- package/dist/utils/fast-refresh-module.js.map +1 -0
- package/dist/utils/feedback.d.ts +5 -0
- package/dist/utils/feedback.js +159 -0
- package/dist/utils/feedback.js.map +1 -0
- package/dist/utils/find-page-by-path.d.ts +2 -0
- package/dist/utils/find-page-by-path.js +96 -0
- package/dist/utils/find-page-by-path.js.map +1 -0
- package/dist/utils/flags.d.ts +41 -0
- package/dist/utils/flags.js +92 -0
- package/dist/utils/flags.js.map +1 -0
- package/dist/utils/gatsby-cloud-config.d.ts +4 -0
- package/dist/utils/gatsby-cloud-config.js +15 -0
- package/dist/utils/gatsby-cloud-config.js.map +1 -0
- package/dist/utils/gatsby-dependents.d.ts +8 -0
- package/dist/utils/gatsby-dependents.js +51 -0
- package/dist/utils/gatsby-dependents.js.map +1 -0
- package/dist/utils/gatsby-webpack-stats-extractor.d.ts +7 -0
- package/dist/utils/gatsby-webpack-stats-extractor.js +136 -0
- package/dist/utils/gatsby-webpack-stats-extractor.js.map +1 -0
- package/dist/utils/gatsby-webpack-virtual-modules.d.ts +6 -0
- package/dist/utils/gatsby-webpack-virtual-modules.js +45 -0
- package/dist/utils/gatsby-webpack-virtual-modules.js.map +1 -0
- package/dist/utils/get-cache.d.ts +2 -0
- package/dist/utils/get-cache.js +18 -0
- package/dist/utils/get-cache.js.map +1 -0
- package/dist/utils/get-latest-gatsby-files.d.ts +8 -0
- package/dist/utils/get-latest-gatsby-files.js +93 -0
- package/dist/utils/get-latest-gatsby-files.js.map +1 -0
- package/dist/utils/get-page-data.d.ts +3 -0
- package/dist/utils/get-page-data.js +88 -0
- package/dist/utils/get-page-data.js.map +1 -0
- package/dist/utils/get-public-path.d.ts +5 -0
- package/dist/utils/get-public-path.js +19 -0
- package/dist/utils/get-public-path.js.map +1 -0
- package/dist/utils/get-server-data.d.ts +19 -0
- package/dist/utils/get-server-data.js +29 -0
- package/dist/utils/get-server-data.js.map +1 -0
- package/dist/utils/get-ssl-cert.d.ts +9 -0
- package/dist/utils/get-ssl-cert.js +95 -0
- package/dist/utils/get-ssl-cert.js.map +1 -0
- package/dist/utils/get-static-dir.d.ts +12 -0
- package/dist/utils/get-static-dir.js +60 -0
- package/dist/utils/get-static-dir.js.map +1 -0
- package/dist/utils/get-value-at.d.ts +1 -0
- package/dist/utils/get-value-at.js +22 -0
- package/dist/utils/get-value-at.js.map +1 -0
- package/dist/utils/graphql-typegen/file-writes.d.ts +5 -0
- package/dist/utils/graphql-typegen/file-writes.js +63 -0
- package/dist/utils/graphql-typegen/file-writes.js.map +1 -0
- package/dist/utils/graphql-typegen/ts-codegen.d.ts +5 -0
- package/dist/utils/graphql-typegen/ts-codegen.js +136 -0
- package/dist/utils/graphql-typegen/ts-codegen.js.map +1 -0
- package/dist/utils/graphql-typegen/utils.d.ts +11 -0
- package/dist/utils/graphql-typegen/utils.js +70 -0
- package/dist/utils/graphql-typegen/utils.js.map +1 -0
- package/dist/utils/handle-flags.d.ts +8 -0
- package/dist/utils/handle-flags.js +212 -0
- package/dist/utils/handle-flags.js.map +1 -0
- package/dist/utils/import-gatsby-plugin.d.ts +11 -0
- package/dist/utils/import-gatsby-plugin.js +40 -0
- package/dist/utils/import-gatsby-plugin.js.map +1 -0
- package/dist/utils/is-32-bit-integer.d.ts +1 -0
- package/dist/utils/is-32-bit-integer.js +8 -0
- package/dist/utils/is-32-bit-integer.js.map +1 -0
- package/dist/utils/is-near-match.d.ts +1 -0
- package/dist/utils/is-near-match.js +10 -0
- package/dist/utils/is-near-match.js.map +1 -0
- package/dist/utils/jobs/manager.d.ts +34 -0
- package/dist/utils/jobs/manager.js +313 -0
- package/dist/utils/jobs/manager.js.map +1 -0
- package/dist/utils/jobs/types.d.ts +63 -0
- package/dist/utils/jobs/types.js +32 -0
- package/dist/utils/jobs/types.js.map +1 -0
- package/dist/utils/jobs/worker-messaging.d.ts +10 -0
- package/dist/utils/jobs/worker-messaging.js +114 -0
- package/dist/utils/jobs/worker-messaging.js.map +1 -0
- package/dist/utils/js-chunk-names.d.ts +1 -0
- package/dist/utils/js-chunk-names.js +72 -0
- package/dist/utils/js-chunk-names.js.map +1 -0
- package/dist/utils/loading-indicator.d.ts +3 -0
- package/dist/utils/loading-indicator.js +44 -0
- package/dist/utils/loading-indicator.js.map +1 -0
- package/dist/utils/local-eslint-config-finder.d.ts +1 -0
- package/dist/utils/local-eslint-config-finder.js +31 -0
- package/dist/utils/local-eslint-config-finder.js.map +1 -0
- package/dist/utils/merge-gatsby-config.d.ts +28 -0
- package/dist/utils/merge-gatsby-config.js +43 -0
- package/dist/utils/merge-gatsby-config.js.map +1 -0
- package/dist/utils/mett.d.ts +10 -0
- package/dist/utils/mett.js +42 -0
- package/dist/utils/mett.js.map +1 -0
- package/dist/utils/module-resolver.d.ts +2 -0
- package/dist/utils/module-resolver.js +24 -0
- package/dist/utils/module-resolver.js.map +1 -0
- package/dist/utils/node-manifest.d.ts +46 -0
- package/dist/utils/node-manifest.js +367 -0
- package/dist/utils/node-manifest.js.map +1 -0
- package/dist/utils/nodes.d.ts +13 -0
- package/dist/utils/nodes.js +62 -0
- package/dist/utils/nodes.js.map +1 -0
- package/dist/utils/normalize-path.d.ts +2 -0
- package/dist/utils/normalize-path.js +11 -0
- package/dist/utils/normalize-path.js.map +1 -0
- package/dist/utils/page-data-helpers.d.ts +23 -0
- package/dist/utils/page-data-helpers.js +76 -0
- package/dist/utils/page-data-helpers.js.map +1 -0
- package/dist/utils/page-data.d.ts +39 -0
- package/dist/utils/page-data.js +366 -0
- package/dist/utils/page-data.js.map +1 -0
- package/dist/utils/page-mode.d.ts +18 -0
- package/dist/utils/page-mode.js +124 -0
- package/dist/utils/page-mode.js.map +1 -0
- package/dist/utils/page-ssr-module/bundle-webpack.d.ts +18 -0
- package/dist/utils/page-ssr-module/bundle-webpack.js +209 -0
- package/dist/utils/page-ssr-module/bundle-webpack.js.map +1 -0
- package/dist/utils/page-ssr-module/entry.d.ts +61 -0
- package/dist/utils/page-ssr-module/entry.js +344 -0
- package/dist/utils/page-ssr-module/entry.js.map +1 -0
- package/dist/utils/page-ssr-module/lambda.d.ts +3 -0
- package/dist/utils/page-ssr-module/lambda.js +401 -0
- package/dist/utils/page-ssr-module/lambda.js.map +1 -0
- package/dist/utils/parcel/compile-gatsby-files.d.ts +26 -0
- package/dist/utils/parcel/compile-gatsby-files.js +271 -0
- package/dist/utils/parcel/compile-gatsby-files.js.map +1 -0
- package/dist/utils/path.d.ts +5 -0
- package/dist/utils/path.js +55 -0
- package/dist/utils/path.js.map +1 -0
- package/dist/utils/prepare-regex.d.ts +1 -0
- package/dist/utils/prepare-regex.js +13 -0
- package/dist/utils/prepare-regex.js.map +1 -0
- package/dist/utils/prepare-urls.d.ts +7 -0
- package/dist/utils/prepare-urls.js +58 -0
- package/dist/utils/prepare-urls.js.map +1 -0
- package/dist/utils/print-instructions.d.ts +2 -0
- package/dist/utils/print-instructions.js +42 -0
- package/dist/utils/print-instructions.js.map +1 -0
- package/dist/utils/rank-route.d.ts +1 -0
- package/dist/utils/rank-route.js +26 -0
- package/dist/utils/rank-route.js.map +1 -0
- package/dist/utils/reach-router-add-basecontext-export-loader.d.ts +1 -0
- package/dist/utils/reach-router-add-basecontext-export-loader.js +23 -0
- package/dist/utils/reach-router-add-basecontext-export-loader.js.map +1 -0
- package/dist/utils/report-once.d.ts +1 -0
- package/dist/utils/report-once.js +17 -0
- package/dist/utils/report-once.js.map +1 -0
- package/dist/utils/sanitize-node.d.ts +12 -0
- package/dist/utils/sanitize-node.js +87 -0
- package/dist/utils/sanitize-node.js.map +1 -0
- package/dist/utils/show-experiment-notice.d.ts +6 -0
- package/dist/utils/show-experiment-notice.js +51 -0
- package/dist/utils/show-experiment-notice.js.map +1 -0
- package/dist/utils/slices/stitching.d.ts +4 -0
- package/dist/utils/slices/stitching.js +92 -0
- package/dist/utils/slices/stitching.js.map +1 -0
- package/dist/utils/slices.d.ts +2 -0
- package/dist/utils/slices.js +9 -0
- package/dist/utils/slices.js.map +1 -0
- package/dist/utils/source-nodes-api-runner.d.ts +8 -0
- package/dist/utils/source-nodes-api-runner.js +23 -0
- package/dist/utils/source-nodes-api-runner.js.map +1 -0
- package/dist/utils/source-nodes.d.ts +11 -0
- package/dist/utils/source-nodes.js +150 -0
- package/dist/utils/source-nodes.js.map +1 -0
- package/dist/utils/stack-trace-utils.d.ts +24 -0
- package/dist/utils/stack-trace-utils.js +113 -0
- package/dist/utils/stack-trace-utils.js.map +1 -0
- package/dist/utils/start-server.d.ts +22 -0
- package/dist/utils/start-server.js +722 -0
- package/dist/utils/start-server.js.map +1 -0
- package/dist/utils/state-machine-logging.d.ts +4 -0
- package/dist/utils/state-machine-logging.js +47 -0
- package/dist/utils/state-machine-logging.js.map +1 -0
- package/dist/utils/static-query-utils.d.ts +13 -0
- package/dist/utils/static-query-utils.js +57 -0
- package/dist/utils/static-query-utils.js.map +1 -0
- package/dist/utils/test-import-error.d.ts +1 -0
- package/dist/utils/test-import-error.js +18 -0
- package/dist/utils/test-import-error.js.map +1 -0
- package/dist/utils/tracer/index.d.ts +12 -0
- package/dist/utils/tracer/index.js +42 -0
- package/dist/utils/tracer/index.js.map +1 -0
- package/dist/utils/tracer/jaeger-local.d.ts +4 -0
- package/dist/utils/tracer/jaeger-local.js +32 -0
- package/dist/utils/tracer/jaeger-local.js.map +1 -0
- package/dist/utils/tracer/zipkin-local.d.ts +11 -0
- package/dist/utils/tracer/zipkin-local.js +87 -0
- package/dist/utils/tracer/zipkin-local.js.map +1 -0
- package/dist/utils/tracer/zipkin-types.d.js +14 -0
- package/dist/utils/tracer/zipkin-types.d.js.map +1 -0
- package/dist/utils/validate-component.d.ts +23 -0
- package/dist/utils/validate-component.js +99 -0
- package/dist/utils/validate-component.js.map +1 -0
- package/dist/utils/validate-engines/child.d.ts +1 -0
- package/dist/utils/validate-engines/child.js +74 -0
- package/dist/utils/validate-engines/child.js.map +1 -0
- package/dist/utils/validate-engines/index.d.ts +2 -0
- package/dist/utils/validate-engines/index.js +48 -0
- package/dist/utils/validate-engines/index.js.map +1 -0
- package/dist/utils/wait-until-jobs-complete.d.ts +2 -0
- package/dist/utils/wait-until-jobs-complete.js +30 -0
- package/dist/utils/wait-until-jobs-complete.js.map +1 -0
- package/dist/utils/webpack/bundle.d.ts +9 -0
- package/dist/utils/webpack/bundle.js +41 -0
- package/dist/utils/webpack/bundle.js.map +1 -0
- package/dist/utils/webpack/get-ssr-chunk-hashes.d.ts +9 -0
- package/dist/utils/webpack/get-ssr-chunk-hashes.js +55 -0
- package/dist/utils/webpack/get-ssr-chunk-hashes.js.map +1 -0
- package/dist/utils/webpack/loaders/client-components-requires-writer-loader.d.ts +1 -0
- package/dist/utils/webpack/loaders/client-components-requires-writer-loader.js +22 -0
- package/dist/utils/webpack/loaders/client-components-requires-writer-loader.js.map +1 -0
- package/dist/utils/webpack/loaders/partial-hydration-reference-loader.d.ts +1 -0
- package/dist/utils/webpack/loaders/partial-hydration-reference-loader.js +127 -0
- package/dist/utils/webpack/loaders/partial-hydration-reference-loader.js.map +1 -0
- package/dist/utils/webpack/loaders/webpack-remove-exports-loader.d.ts +1 -0
- package/dist/utils/webpack/loaders/webpack-remove-exports-loader.js +40 -0
- package/dist/utils/webpack/loaders/webpack-remove-exports-loader.js.map +1 -0
- package/dist/utils/webpack/plugins/cache-folder-resolver.d.ts +25 -0
- package/dist/utils/webpack/plugins/cache-folder-resolver.js +111 -0
- package/dist/utils/webpack/plugins/cache-folder-resolver.js.map +1 -0
- package/dist/utils/webpack/plugins/corejs-resolver.d.ts +12 -0
- package/dist/utils/webpack/plugins/corejs-resolver.js +66 -0
- package/dist/utils/webpack/plugins/corejs-resolver.js.map +1 -0
- package/dist/utils/webpack/plugins/force-css-hmr-for-edge-cases.d.ts +22 -0
- package/dist/utils/webpack/plugins/force-css-hmr-for-edge-cases.js +88 -0
- package/dist/utils/webpack/plugins/force-css-hmr-for-edge-cases.js.map +1 -0
- package/dist/utils/webpack/plugins/partial-hydration.d.ts +26 -0
- package/dist/utils/webpack/plugins/partial-hydration.js +362 -0
- package/dist/utils/webpack/plugins/partial-hydration.js.map +1 -0
- package/dist/utils/webpack/plugins/static-query-mapper.d.ts +13 -0
- package/dist/utils/webpack/plugins/static-query-mapper.js +235 -0
- package/dist/utils/webpack/plugins/static-query-mapper.js.map +1 -0
- package/dist/utils/webpack/plugins/webpack-logging.d.ts +12 -0
- package/dist/utils/webpack/plugins/webpack-logging.js +51 -0
- package/dist/utils/webpack/plugins/webpack-logging.js.map +1 -0
- package/dist/utils/webpack/utils/create-normalized-module-key.d.ts +12 -0
- package/dist/utils/webpack/utils/create-normalized-module-key.js +25 -0
- package/dist/utils/webpack/utils/create-normalized-module-key.js.map +1 -0
- package/dist/utils/webpack/utils/is-file-inside-compilations.d.ts +7 -0
- package/dist/utils/webpack/utils/is-file-inside-compilations.js +37 -0
- package/dist/utils/webpack/utils/is-file-inside-compilations.js.map +1 -0
- package/dist/utils/webpack-error-utils.d.ts +24 -0
- package/dist/utils/webpack-error-utils.js +112 -0
- package/dist/utils/webpack-error-utils.js.map +1 -0
- package/dist/utils/webpack-plugins.d.ts +46 -0
- package/dist/utils/webpack-plugins.js +61 -0
- package/dist/utils/webpack-plugins.js.map +1 -0
- package/dist/utils/webpack-status.d.ts +3 -0
- package/dist/utils/webpack-status.js +21 -0
- package/dist/utils/webpack-status.js.map +1 -0
- package/dist/utils/webpack-utils.d.ts +121 -0
- package/dist/utils/webpack-utils.js +574 -0
- package/dist/utils/webpack-utils.js.map +1 -0
- package/dist/utils/webpack.config.js +804 -0
- package/dist/utils/webpack.config.js.map +1 -0
- package/dist/utils/websocket-manager.d.ts +39 -0
- package/dist/utils/websocket-manager.js +183 -0
- package/dist/utils/websocket-manager.js.map +1 -0
- package/dist/utils/worker/child/index.d.ts +5 -0
- package/dist/utils/worker/child/index.js +35 -0
- package/dist/utils/worker/child/index.js.map +1 -0
- package/dist/utils/worker/child/load-config-and-plugins.d.ts +2 -0
- package/dist/utils/worker/child/load-config-and-plugins.js +28 -0
- package/dist/utils/worker/child/load-config-and-plugins.js.map +1 -0
- package/dist/utils/worker/child/queries.d.ts +7 -0
- package/dist/utils/worker/child/queries.js +84 -0
- package/dist/utils/worker/child/queries.js.map +1 -0
- package/dist/utils/worker/child/render-html.d.ts +49 -0
- package/dist/utils/worker/child/render-html.js +562 -0
- package/dist/utils/worker/child/render-html.js.map +1 -0
- package/dist/utils/worker/child/schema.d.ts +2 -0
- package/dist/utils/worker/child/schema.js +41 -0
- package/dist/utils/worker/child/schema.js.map +1 -0
- package/dist/utils/worker/child/state.d.ts +2 -0
- package/dist/utils/worker/child/state.js +13 -0
- package/dist/utils/worker/child/state.js.map +1 -0
- package/dist/utils/worker/messaging.d.ts +16 -0
- package/dist/utils/worker/messaging.js +9 -0
- package/dist/utils/worker/messaging.js.map +1 -0
- package/dist/utils/worker/pool.d.ts +10 -0
- package/dist/utils/worker/pool.js +122 -0
- package/dist/utils/worker/pool.js.map +1 -0
- package/dist/utils/worker/reporter.d.ts +3 -0
- package/dist/utils/worker/reporter.js +26 -0
- package/dist/utils/worker/reporter.js.map +1 -0
- package/dist/utils/worker/types.d.ts +3 -0
- package/dist/utils/worker/types.js +4 -0
- package/dist/utils/worker/types.js.map +1 -0
- package/graphql.d.ts +2 -0
- package/graphql.js +6 -0
- package/index.d.ts +1906 -0
- package/internal.d.ts +4 -0
- package/internal.js +5 -0
- package/ipc.json +3 -0
- package/package.json +744 -0
- package/reporter.d.ts +4 -0
- package/reporter.js +3 -0
- package/scripts/postinstall.js +7 -0
- package/utils.js +1 -0
- package/webpack.d.ts +3 -0
- 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 {};
|