gatsby 3.12.0-next.0 → 3.12.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/CHANGELOG.md +48 -0
- package/cache-dir/api-runner-browser.js +2 -5
- package/cache-dir/commonjs/fast-refresh-overlay/helpers/focus-trap.js +2 -6
- package/cache-dir/commonjs/production-app.js +5 -1
- package/cache-dir/fast-refresh-overlay/components/graphql-errors.js +4 -3
- package/cache-dir/fast-refresh-overlay/components/runtime-errors.js +4 -3
- package/cache-dir/production-app.js +3 -1
- package/cli.js +0 -0
- package/dist/bootstrap/__mocks__/resolve-module-exports.d.ts +1 -1
- package/dist/bootstrap/create-graphql-runner.d.ts +10 -10
- package/dist/bootstrap/create-graphql-runner.js.map +1 -1
- package/dist/bootstrap/get-config-file.d.ts +4 -4
- package/dist/bootstrap/index.d.ts +10 -10
- package/dist/bootstrap/load-config-and-plugins.d.ts +8 -8
- package/dist/bootstrap/load-plugins/index.d.ts +2 -2
- package/dist/bootstrap/load-plugins/load.d.ts +14 -14
- package/dist/bootstrap/load-plugins/types.d.ts +40 -40
- package/dist/bootstrap/load-plugins/validate.d.ts +40 -40
- package/dist/bootstrap/load-plugins/validate.js.map +1 -1
- package/dist/bootstrap/prefer-default.d.ts +1 -1
- package/dist/bootstrap/redirects-writer.d.ts +2 -2
- package/dist/bootstrap/remove-stale-jobs.d.ts +2 -2
- package/dist/bootstrap/requires-writer.d.ts +10 -10
- package/dist/bootstrap/resolve-module-exports.d.ts +15 -15
- package/dist/bootstrap/resolve-module-exports.js.map +1 -1
- package/dist/bootstrap/schema-hot-reloader.d.ts +3 -3
- package/dist/cache/cache-fs.d.ts +1 -1
- package/dist/cache/json-file-store.d.ts +8 -8
- package/dist/cache/json-file-store.js +11 -11
- package/dist/cache/json-file-store.js.map +1 -1
- package/dist/commands/build-html.d.ts +53 -53
- package/dist/commands/build-html.js.map +1 -1
- package/dist/commands/build-javascript.d.ts +7 -7
- package/dist/commands/build-utils.d.ts +8 -8
- package/dist/commands/build-utils.js.map +1 -1
- package/dist/commands/build.d.ts +1 -1
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/clean.d.ts +1 -1
- package/dist/commands/develop-process.d.ts +1 -1
- package/dist/commands/develop-process.js.map +1 -1
- package/dist/commands/develop-static.d.ts +3 -3
- package/dist/commands/develop.d.ts +2 -2
- package/dist/commands/develop.js +3 -0
- package/dist/commands/develop.js.map +1 -1
- package/dist/commands/feedback.d.ts +1 -1
- package/dist/commands/repl.d.ts +1 -1
- package/dist/commands/repl.js.map +1 -1
- package/dist/commands/serve.d.ts +1 -1
- package/dist/commands/serve.js.map +1 -1
- package/dist/commands/types.d.ts +48 -48
- package/dist/datastore/common/iterable.d.ts +48 -48
- package/dist/datastore/common/query.d.ts +69 -69
- package/dist/datastore/common/query.js.map +1 -1
- package/dist/datastore/datastore.d.ts +4 -4
- package/dist/datastore/in-memory/in-memory-datastore.d.ts +2 -2
- package/dist/datastore/in-memory/indexing.d.ts +59 -59
- package/dist/datastore/in-memory/indexing.js.map +1 -1
- package/dist/datastore/in-memory/run-fast-filters.d.ts +28 -28
- package/dist/datastore/in-memory/run-fast-filters.js.map +1 -1
- package/dist/datastore/index.d.ts +20 -20
- package/dist/datastore/lmdb/lmdb-datastore.d.ts +2 -2
- package/dist/datastore/lmdb/query/common.d.ts +23 -23
- package/dist/datastore/lmdb/query/common.js +11 -13
- package/dist/datastore/lmdb/query/common.js.map +1 -1
- package/dist/datastore/lmdb/query/create-index.d.ts +25 -25
- package/dist/datastore/lmdb/query/filter-using-index.d.ts +43 -43
- package/dist/datastore/lmdb/query/filter-using-index.js +1 -1
- package/dist/datastore/lmdb/query/filter-using-index.js.map +1 -1
- package/dist/datastore/lmdb/query/run-query.d.ts +9 -9
- package/dist/datastore/lmdb/query/run-query.js +1 -1
- package/dist/datastore/lmdb/query/run-query.js.map +1 -1
- package/dist/datastore/lmdb/query/suggest-index.d.ts +15 -15
- package/dist/datastore/lmdb/updates/nodes-by-type.d.ts +3 -3
- package/dist/datastore/lmdb/updates/nodes.d.ts +5 -5
- package/dist/datastore/types.d.ts +47 -47
- package/dist/internal-plugins/dev-404-page/raw_dev-404-page.js +1 -1
- package/dist/internal-plugins/functions/gatsby-node.d.ts +3 -3
- package/dist/internal-plugins/functions/gatsby-node.js +2 -1
- package/dist/internal-plugins/functions/gatsby-node.js.map +1 -1
- package/dist/internal.d.ts +5 -5
- package/dist/joi-schemas/joi.d.ts +5 -5
- package/dist/query/error-parser.d.ts +19 -19
- package/dist/query/error-parser.js.map +1 -1
- package/dist/query/file-parser.js.map +1 -1
- package/dist/query/graphql-errors.js.map +1 -1
- package/dist/query/graphql-runner.d.ts +34 -34
- package/dist/query/graphql-span-tracer.d.ts +19 -19
- package/dist/query/index.d.ts +26 -26
- package/dist/query/index.js +12 -1
- package/dist/query/index.js.map +1 -1
- package/dist/query/query-compiler.js.map +1 -1
- package/dist/query/query-runner.d.ts +13 -13
- package/dist/query/query-watcher.d.ts +17 -17
- package/dist/query/types.d.ts +34 -34
- package/dist/query/utils.d.ts +4 -4
- package/dist/redux/actions/add-page-dependency.d.ts +5 -5
- package/dist/redux/actions/index.d.ts +14 -14
- package/dist/redux/actions/internal.d.ts +120 -120
- package/dist/redux/actions/internal.js.map +1 -1
- package/dist/redux/actions/public.js +1 -1
- package/dist/redux/actions/public.js.map +1 -1
- package/dist/redux/actions/restricted.d.ts +292 -292
- package/dist/redux/actions/restricted.js.map +1 -1
- package/dist/redux/index.d.ts +20 -20
- package/dist/redux/index.js.map +1 -1
- package/dist/redux/persist.d.ts +5 -5
- package/dist/redux/plugin-runner.d.ts +1 -1
- package/dist/redux/reducers/babelrc.d.ts +9 -9
- package/dist/redux/reducers/components.d.ts +2 -2
- package/dist/redux/reducers/config.d.ts +2 -2
- package/dist/redux/reducers/definitions.d.ts +2 -2
- package/dist/redux/reducers/flattened-plugins.d.ts +15 -15
- package/dist/redux/reducers/functions.d.ts +2 -2
- package/dist/redux/reducers/html.d.ts +8 -8
- package/dist/redux/reducers/html.js.map +1 -1
- package/dist/redux/reducers/index.d.ts +35 -35
- package/dist/redux/reducers/inference-metadata.d.ts +7 -7
- package/dist/redux/reducers/jobs.d.ts +5 -5
- package/dist/redux/reducers/jobsv2.d.ts +5 -5
- package/dist/redux/reducers/last-action.d.ts +2 -2
- package/dist/redux/reducers/node-manifest.d.ts +2 -2
- package/dist/redux/reducers/nodes-by-type.d.ts +2 -2
- package/dist/redux/reducers/nodes-touched.d.ts +3 -3
- package/dist/redux/reducers/nodes.d.ts +2 -2
- package/dist/redux/reducers/normalize-path.d.ts +2 -2
- package/dist/redux/reducers/page-data-stats.d.ts +2 -2
- package/dist/redux/reducers/pages.d.ts +2 -2
- package/dist/redux/reducers/pending-page-data-writes.d.ts +4 -4
- package/dist/redux/reducers/program.d.ts +2 -2
- package/dist/redux/reducers/queries.d.ts +26 -26
- package/dist/redux/reducers/redirects.d.ts +2 -2
- package/dist/redux/reducers/resolved-nodes.d.ts +2 -2
- package/dist/redux/reducers/schema-customization.d.ts +23 -23
- package/dist/redux/reducers/schema.d.ts +3 -3
- package/dist/redux/reducers/static-queries-by-template.d.ts +2 -2
- package/dist/redux/reducers/static-query-components.d.ts +2 -2
- package/dist/redux/reducers/status.d.ts +6 -6
- package/dist/redux/reducers/visited-page.d.ts +2 -2
- package/dist/redux/reducers/webpack-compilation-hash.d.ts +2 -2
- package/dist/redux/reducers/webpack.d.ts +2 -2
- package/dist/redux/types.d.ts +746 -746
- package/dist/schema/context.d.ts +13 -13
- package/dist/schema/infer/add-inferred-fields.js +50 -50
- package/dist/schema/infer/add-inferred-fields.js.map +1 -1
- package/dist/schema/infer/build-example-data.d.ts +5 -5
- package/dist/schema/infer/build-example-data.js.map +1 -1
- package/dist/schema/infer/inference-metadata.d.ts +72 -72
- package/dist/schema/infer/inference-metadata.js.map +1 -1
- package/dist/schema/infer/is-file.d.ts +1 -1
- package/dist/schema/infer/is-file.js.map +1 -1
- package/dist/schema/infer/type-conflict-reporter.d.ts +28 -28
- package/dist/schema/node-model.js +1 -3
- package/dist/schema/node-model.js.map +1 -1
- package/dist/schema/resolvers.d.ts +37 -37
- package/dist/schema/resolvers.js +3 -3
- package/dist/schema/resolvers.js.map +1 -1
- package/dist/schema/schema-composer.d.ts +3 -3
- package/dist/schema/schema-composer.js.map +1 -1
- package/dist/schema/type-definitions.d.ts +42 -42
- package/dist/schema/types/built-in-types.d.ts +3 -3
- package/dist/schema/types/date.d.ts +40 -40
- package/dist/schema/types/date.js.map +1 -1
- package/dist/schema/types/derived-types.d.ts +45 -45
- package/dist/schema/types/filter.d.ts +12 -12
- package/dist/schema/types/node-interface.d.ts +14 -14
- package/dist/schema/types/pagination.d.ts +16 -16
- package/dist/schema/types/pagination.js.map +1 -1
- package/dist/schema/types/sort.d.ts +18 -18
- package/dist/schema/types/sort.js +2 -2
- package/dist/schema/types/sort.js.map +1 -1
- package/dist/schema/types/type-builders.d.ts +36 -36
- package/dist/services/build-schema.d.ts +2 -2
- package/dist/services/calculate-dirty-queries.d.ts +5 -5
- package/dist/services/create-pages.d.ts +5 -5
- package/dist/services/create-pages.js +20 -2
- package/dist/services/create-pages.js.map +1 -1
- package/dist/services/customize-schema.d.ts +2 -2
- package/dist/services/extract-queries.d.ts +2 -2
- package/dist/services/index.d.ts +18 -18
- package/dist/services/initialize.d.ts +8 -8
- package/dist/services/listen-for-mutations.d.ts +2 -2
- package/dist/services/listen-to-webpack.d.ts +3 -3
- package/dist/services/listen-to-webpack.js.map +1 -1
- package/dist/services/post-bootstrap.d.ts +2 -2
- package/dist/services/rebuild-schema-with-site-pages.d.ts +2 -2
- package/dist/services/recompile.d.ts +3 -3
- package/dist/services/run-mutation-batch.d.ts +2 -2
- package/dist/services/run-page-queries.d.ts +2 -2
- package/dist/services/run-page-queries.js +0 -9
- package/dist/services/run-page-queries.js.map +1 -1
- package/dist/services/run-static-queries.d.ts +2 -2
- package/dist/services/source-nodes.d.ts +5 -5
- package/dist/services/start-webpack-server.d.ts +9 -9
- package/dist/services/start-webpack-server.js.map +1 -1
- package/dist/services/types.d.ts +45 -45
- package/dist/services/write-out-redirects.d.ts +2 -2
- package/dist/services/write-out-requires.d.ts +2 -2
- package/dist/state-machines/data-layer/actions.d.ts +8 -8
- package/dist/state-machines/data-layer/index.d.ts +24 -24
- package/dist/state-machines/data-layer/services.d.ts +3 -3
- package/dist/state-machines/data-layer/types.d.ts +23 -23
- package/dist/state-machines/develop/actions.d.ts +37 -37
- package/dist/state-machines/develop/index.d.ts +6 -6
- package/dist/state-machines/develop/services.d.ts +3 -3
- package/dist/state-machines/index.d.ts +7 -7
- package/dist/state-machines/query-running/actions.d.ts +9 -9
- package/dist/state-machines/query-running/actions.js.map +1 -1
- package/dist/state-machines/query-running/index.d.ts +7 -7
- package/dist/state-machines/query-running/services.d.ts +3 -3
- package/dist/state-machines/query-running/types.d.ts +23 -23
- package/dist/state-machines/waiting/actions.d.ts +11 -11
- package/dist/state-machines/waiting/index.d.ts +12 -12
- package/dist/state-machines/waiting/services.d.ts +3 -3
- package/dist/state-machines/waiting/types.d.ts +12 -12
- package/dist/types.d.ts +9 -9
- package/dist/utils/api-browser-docs.d.ts +242 -242
- package/dist/utils/api-browser-docs.js +3 -3
- package/dist/utils/api-browser-docs.js.map +1 -1
- package/dist/utils/api-node-docs.d.ts +460 -460
- package/dist/utils/api-runner-error-parser.d.ts +5 -5
- package/dist/utils/api-runner-node.js.map +1 -1
- package/dist/utils/app-data.d.ts +2 -2
- package/dist/utils/assert-store.d.ts +2 -2
- package/dist/utils/babel-parse-to-ast.d.ts +4 -4
- package/dist/utils/browserslist.d.ts +2 -2
- package/dist/utils/cache-lmdb.d.ts +19 -19
- package/dist/utils/cache-lmdb.js.map +1 -1
- package/dist/utils/cache.d.ts +17 -17
- package/dist/utils/call-deferred-api.d.ts +8 -8
- package/dist/utils/changed-pages.d.ts +6 -6
- package/dist/utils/create-node-id.d.ts +24 -24
- package/dist/utils/create-schema-customization.d.ts +6 -6
- package/dist/utils/detect-port-in-use-and-prompt.d.ts +1 -1
- package/dist/utils/dev-ssr/render-dev-html.d.ts +23 -23
- package/dist/utils/develop-preload-headers.d.ts +7 -7
- package/dist/utils/develop-proxy.d.ts +14 -14
- package/dist/utils/did-you-mean.d.ts +3 -3
- package/dist/utils/eslint-config.d.ts +4 -4
- package/dist/utils/eslint-rules/limited-exports-page-templates.d.ts +1 -1
- package/dist/utils/eslint-rules/limited-exports-page-templates.js.map +1 -1
- package/dist/utils/eslint-rules/no-anonymous-exports-page-templates.d.ts +1 -1
- package/dist/utils/eslint-rules-helpers.d.ts +4 -4
- package/dist/utils/fast-refresh-module.d.ts +22 -22
- package/dist/utils/fast-refresh-module.js +7 -6
- package/dist/utils/fast-refresh-module.js.map +1 -1
- package/dist/utils/feedback.d.ts +5 -5
- package/dist/utils/feedback.js +1 -2
- package/dist/utils/feedback.js.map +1 -1
- package/dist/utils/find-page-by-path.d.ts +2 -2
- package/dist/utils/find-page-by-path.js +13 -13
- package/dist/utils/find-page-by-path.js.map +1 -1
- package/dist/utils/flags.d.ts +41 -41
- package/dist/utils/flags.js +7 -1
- package/dist/utils/flags.js.map +1 -1
- package/dist/utils/gatsby-dependents.d.ts +8 -8
- package/dist/utils/gatsby-webpack-eslint-graphql-schema-reload-plugin.d.ts +8 -8
- package/dist/utils/gatsby-webpack-stats-extractor.d.ts +6 -6
- package/dist/utils/gatsby-webpack-virtual-modules.d.ts +6 -6
- package/dist/utils/get-cache.d.ts +2 -2
- package/dist/utils/get-latest-apis.d.ts +6 -6
- package/dist/utils/get-page-data.d.ts +3 -3
- package/dist/utils/get-public-path.d.ts +5 -5
- package/dist/utils/get-ssl-cert.d.ts +9 -9
- package/dist/utils/get-static-dir.d.ts +12 -12
- package/dist/utils/get-value-at.d.ts +1 -1
- package/dist/utils/handle-flags.d.ts +8 -8
- package/dist/utils/is-32-bit-integer.d.ts +1 -1
- package/dist/utils/jobs/manager.d.ts +30 -30
- package/dist/utils/jobs/types.d.ts +63 -63
- package/dist/utils/jobs/worker-messaging.d.ts +9 -9
- package/dist/utils/js-chunk-names.d.ts +1 -1
- package/dist/utils/loading-indicator.d.ts +3 -3
- package/dist/utils/local-eslint-config-finder.d.ts +1 -1
- package/dist/utils/merge-gatsby-config.d.ts +23 -23
- package/dist/utils/mett.d.ts +10 -10
- package/dist/utils/node-manifest.d.ts +43 -43
- package/dist/utils/node-manifest.js +2 -4
- package/dist/utils/node-manifest.js.map +1 -1
- package/dist/utils/nodes.d.ts +13 -13
- package/dist/utils/page-data.d.ts +25 -25
- package/dist/utils/page-data.js +19 -14
- package/dist/utils/page-data.js.map +1 -1
- package/dist/utils/page-html.d.ts +4 -4
- package/dist/utils/path.d.ts +5 -5
- package/dist/utils/path.js.map +1 -1
- package/dist/utils/prepare-regex.d.ts +1 -1
- package/dist/utils/prepare-urls.d.ts +7 -7
- package/dist/utils/print-deprecation-warnings.d.ts +1 -1
- package/dist/utils/print-instructions.d.ts +2 -2
- package/dist/utils/reach-router-add-basecontext-export-loader.d.ts +1 -1
- package/dist/utils/restarting-screen.d.ts +2 -2
- package/dist/utils/sample-site-for-experiment.d.ts +2 -2
- package/dist/utils/show-experiment-notice.d.ts +6 -6
- package/dist/utils/source-nodes.d.ts +8 -8
- package/dist/utils/stack-trace-utils.d.ts +22 -22
- package/dist/utils/start-server.d.ts +25 -25
- package/dist/utils/start-server.js.map +1 -1
- package/dist/utils/state-machine-logging.d.ts +2 -2
- package/dist/utils/telemetry-server.d.ts +1 -1
- package/dist/utils/test-require-error.d.ts +1 -1
- package/dist/utils/tracer/index.d.ts +12 -12
- package/dist/utils/tracer/jaeger-local.d.ts +4 -4
- package/dist/utils/tracer/zipkin-local.d.ts +11 -11
- package/dist/utils/validate-page-component.d.ts +12 -12
- package/dist/utils/wait-until-jobs-complete.d.ts +1 -1
- package/dist/utils/webpack/cache-folder-resolver.d.ts +9 -9
- package/dist/utils/webpack/corejs-resolver.d.ts +12 -12
- package/dist/utils/webpack/force-css-hmr-for-edge-cases.d.ts +22 -22
- package/dist/utils/webpack/static-query-mapper.d.ts +7 -7
- package/dist/utils/webpack/static-query-mapper.js.map +1 -1
- package/dist/utils/webpack-error-utils.d.ts +24 -24
- package/dist/utils/webpack-error-utils.js.map +1 -1
- package/dist/utils/webpack-plugins.d.ts +46 -46
- package/dist/utils/webpack-plugins.js.map +1 -1
- package/dist/utils/webpack-status.d.ts +3 -3
- package/dist/utils/webpack-utils.d.ts +122 -122
- package/dist/utils/webpack-utils.js.map +1 -1
- package/dist/utils/websocket-manager.d.ts +39 -39
- package/dist/utils/websocket-manager.js.map +1 -1
- package/dist/utils/worker/child/index.d.ts +4 -4
- package/dist/utils/worker/child/load-config-and-plugins.d.ts +2 -2
- package/dist/utils/worker/child/queries.d.ts +7 -7
- package/dist/utils/worker/child/queries.js +8 -5
- package/dist/utils/worker/child/queries.js.map +1 -1
- package/dist/utils/worker/child/render-html.d.ts +20 -20
- package/dist/utils/worker/child/render-html.js.map +1 -1
- package/dist/utils/worker/child/schema.d.ts +2 -2
- package/dist/utils/worker/child/state.d.ts +2 -2
- package/dist/utils/worker/messaging.d.ts +8 -8
- package/dist/utils/worker/pool.d.ts +6 -6
- package/dist/utils/worker/pool.js +9 -7
- package/dist/utils/worker/pool.js.map +1 -1
- package/dist/utils/worker/reporter.d.ts +3 -3
- package/dist/utils/worker/types.d.ts +3 -3
- package/gatsby-admin-public/app-433dff501e8fc3ddfa80.js +3 -0
- package/gatsby-admin-public/{app-7416363fd827487b167c.js.LICENSE.txt → app-433dff501e8fc3ddfa80.js.LICENSE.txt} +0 -0
- package/gatsby-admin-public/app-433dff501e8fc3ddfa80.js.map +1 -0
- package/gatsby-admin-public/c432bec7e9afb3443fd639df9e5f119e13575cf7-c73e9fe03e5830637703.js.map +1 -1
- package/gatsby-admin-public/chunk-map.json +1 -1
- package/gatsby-admin-public/component---src-pages-index-tsx-b0fccb5b43eaa060f69e.js +3 -0
- package/gatsby-admin-public/{component---src-pages-index-tsx-455d21fec959a5b752ca.js.LICENSE.txt → component---src-pages-index-tsx-b0fccb5b43eaa060f69e.js.LICENSE.txt} +0 -0
- package/gatsby-admin-public/component---src-pages-index-tsx-b0fccb5b43eaa060f69e.js.map +1 -0
- package/gatsby-admin-public/component---src-pages-plugins-tsx-79f5388e76bb004c461a.js.map +1 -1
- package/gatsby-admin-public/component---src-pages-recipe-js-9e01f3d3434a2f348a2c.js.map +1 -1
- package/gatsby-admin-public/e2852b4470dcb2615e49edcd9de2a3c8119d4bec-4fc8e86d00876f47cb7d.js +2 -0
- package/gatsby-admin-public/e2852b4470dcb2615e49edcd9de2a3c8119d4bec-4fc8e86d00876f47cb7d.js.map +1 -0
- package/gatsby-admin-public/index.html +1 -1
- package/gatsby-admin-public/page-data/app-data.json +1 -1
- package/gatsby-admin-public/page-data/index/page-data.json +5 -1
- package/gatsby-admin-public/page-data/pages/page-data.json +5 -1
- package/gatsby-admin-public/page-data/plugins/page-data.json +6 -1
- package/gatsby-admin-public/page-data/recipe/page-data.json +5 -1
- package/gatsby-admin-public/page-data/recipes/page-data.json +5 -1
- package/gatsby-admin-public/pages/index.html +1 -1
- package/gatsby-admin-public/plugins/index.html +1 -1
- package/gatsby-admin-public/polyfill-08422f5bf802ee9b6cef.js +2 -0
- package/gatsby-admin-public/polyfill-08422f5bf802ee9b6cef.js.map +1 -0
- package/gatsby-admin-public/recipe/index.html +1 -1
- package/gatsby-admin-public/recipes/index.html +1 -1
- package/gatsby-admin-public/{webpack-runtime-b8776838c6ef57d401d3.js → webpack-runtime-a88e8fb9bdd306ace038.js} +2 -2
- package/gatsby-admin-public/{webpack-runtime-b8776838c6ef57d401d3.js.map → webpack-runtime-a88e8fb9bdd306ace038.js.map} +1 -1
- package/gatsby-admin-public/webpack.stats.json +1 -1
- package/package.json +31 -31
- package/gatsby-admin-public/app-7416363fd827487b167c.js +0 -3
- package/gatsby-admin-public/app-7416363fd827487b167c.js.map +0 -1
- package/gatsby-admin-public/component---src-pages-index-tsx-455d21fec959a5b752ca.js +0 -3
- package/gatsby-admin-public/component---src-pages-index-tsx-455d21fec959a5b752ca.js.map +0 -1
- package/gatsby-admin-public/e2852b4470dcb2615e49edcd9de2a3c8119d4bec-8bd93b1279f7c801579e.js +0 -2
- package/gatsby-admin-public/e2852b4470dcb2615e49edcd9de2a3c8119d4bec-8bd93b1279f7c801579e.js.map +0 -1
- package/gatsby-admin-public/polyfill-ec82ae3845a81bcd97bd.js +0 -2
- package/gatsby-admin-public/polyfill-ec82ae3845a81bcd97bd.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,54 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [3.12.0](https://github.com/gatsbyjs/gatsby/compare/gatsby@3.12.0-next.3...gatsby@3.12.0) (2021-08-18)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- **gatsby:** reduce parse cost writing page-data ([#32763](https://github.com/gatsbyjs/gatsby/issues/32763)) ([b97782f](https://github.com/gatsbyjs/gatsby/commit/b97782f35c92a2c51fdd5c997a0ac3fe45cf2524))
|
|
11
|
+
- **gatsby:** Wrap performance mark in check ([#32778](https://github.com/gatsbyjs/gatsby/issues/32778)) ([365d00b](https://github.com/gatsbyjs/gatsby/commit/365d00b2ee413ef38f56ba4262304865ecd4256e))
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
- **gatsby:** measure how long GraphQL takes to run in createPages and warn if > 10s ([#32751](https://github.com/gatsbyjs/gatsby/issues/32751)) ([8bd7cf0](https://github.com/gatsbyjs/gatsby/commit/8bd7cf06a0f0bea14c376b8c0daca8856baf6db6))
|
|
16
|
+
- **gatsby:** Opt in 20% of users to webpack dev server caching ([#32829](https://github.com/gatsbyjs/gatsby/issues/32829)) ([#32839](https://github.com/gatsbyjs/gatsby/issues/32839)) ([a0e2a77](https://github.com/gatsbyjs/gatsby/commit/a0e2a77f07731bac63bb8b8a07a30ab422ed7c53))
|
|
17
|
+
|
|
18
|
+
# [3.12.0-next.3](https://github.com/gatsbyjs/gatsby/compare/gatsby@3.12.0-next.2...gatsby@3.12.0-next.3) (2021-08-09)
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
- **gatsby:** fix incorrect filtering with experimental LMDB indexes ([#32728](https://github.com/gatsbyjs/gatsby/issues/32728)) ([9b456cd](https://github.com/gatsbyjs/gatsby/commit/9b456cd1d9fdf8096d12fd367e679d815e08b6cf))
|
|
23
|
+
- **gatsby:** fix node manifest processing in inc builds ([#32538](https://github.com/gatsbyjs/gatsby/issues/32538)) ([1577f9b](https://github.com/gatsbyjs/gatsby/commit/1577f9b0ab9909cdc4dfe0acca2dbbae89418ad5))
|
|
24
|
+
- **gatsby:** Silence process.send Error ([#32744](https://github.com/gatsbyjs/gatsby/issues/32744)) ([5d7831d](https://github.com/gatsbyjs/gatsby/commit/5d7831d949b3352b7bb39718072b75102707ad99))
|
|
25
|
+
- **gatsby:** Worker support in fast-refresh-module ([#32432](https://github.com/gatsbyjs/gatsby/issues/32432)) ([6daead6](https://github.com/gatsbyjs/gatsby/commit/6daead63ce02c21690a48cdd531fdb2761628703))
|
|
26
|
+
|
|
27
|
+
### Features
|
|
28
|
+
|
|
29
|
+
- **gatsby:** add env flag to disable lazy function compilation in develop ([#32707](https://github.com/gatsbyjs/gatsby/issues/32707)) ([ed04979](https://github.com/gatsbyjs/gatsby/commit/ed04979ed66219ed9f5f07a5b859f07217d32393))
|
|
30
|
+
- **gatsby:** write node manifests to public dir instead of .cache ([#32547](https://github.com/gatsbyjs/gatsby/issues/32547)) ([9c41b7a](https://github.com/gatsbyjs/gatsby/commit/9c41b7a90e97d971049dd9b5d296a37ca8912fa8))
|
|
31
|
+
|
|
32
|
+
# [3.12.0-next.2](https://github.com/gatsbyjs/gatsby/compare/gatsby@3.12.0-next.1...gatsby@3.12.0-next.2) (2021-08-05)
|
|
33
|
+
|
|
34
|
+
**Note:** Version bump only for package gatsby
|
|
35
|
+
|
|
36
|
+
# [3.12.0-next.1](https://github.com/gatsbyjs/gatsby/compare/gatsby@3.12.0-next.0...gatsby@3.12.0-next.1) (2021-08-05)
|
|
37
|
+
|
|
38
|
+
### Bug Fixes
|
|
39
|
+
|
|
40
|
+
- **deps:** update dependency chalk to ^4.1.2 ([#32576](https://github.com/gatsbyjs/gatsby/issues/32576)) ([5c4e109](https://github.com/gatsbyjs/gatsby/commit/5c4e109313cd1b59f814332fdb4dfdcaf1faed1a))
|
|
41
|
+
- **deps:** update dependency eslint to ^7.32.0 ([#32628](https://github.com/gatsbyjs/gatsby/issues/32628)) ([65fe945](https://github.com/gatsbyjs/gatsby/commit/65fe94547e0892b3978a7c7376ff1297acb0144f))
|
|
42
|
+
- **deps:** update dependency eslint-plugin-flowtype to ^5.8.2 ([#32629](https://github.com/gatsbyjs/gatsby/issues/32629)) ([4391f05](https://github.com/gatsbyjs/gatsby/commit/4391f05bcae65c36820c3407f09df668dacc692e))
|
|
43
|
+
- **deps:** update dependency eslint-plugin-import to ^2.23.4 ([#32581](https://github.com/gatsbyjs/gatsby/issues/32581)) ([769e98f](https://github.com/gatsbyjs/gatsby/commit/769e98f3dbcdbededfa1909d86aad83050a291c7))
|
|
44
|
+
- **deps:** update dependency eslint-plugin-react to ^7.24.0 ([#32582](https://github.com/gatsbyjs/gatsby/issues/32582)) ([de676bc](https://github.com/gatsbyjs/gatsby/commit/de676bc45d4196c78bf88e91346625ef80e93545))
|
|
45
|
+
- **deps:** update dependency eslint-webpack-plugin to ^2.5.4 ([#32583](https://github.com/gatsbyjs/gatsby/issues/32583)) ([170e58b](https://github.com/gatsbyjs/gatsby/commit/170e58b1ea30e3ee9927e9ef61be9c0c629b9534))
|
|
46
|
+
- **deps:** update dependency mini-css-extract-plugin to v1.6.2 ([#32586](https://github.com/gatsbyjs/gatsby/issues/32586)) ([6c6d4e5](https://github.com/gatsbyjs/gatsby/commit/6c6d4e501764614ad737c88ba5810b6fbbcbff68))
|
|
47
|
+
- **docs:** clarify redirectInBrowser option ([#32669](https://github.com/gatsbyjs/gatsby/issues/32669)) ([774e680](https://github.com/gatsbyjs/gatsby/commit/774e680e186f3ac0928a7b178d395d64b7d8a4e9))
|
|
48
|
+
- **gatsby:** load page and static queries texts in PQR only once per worker ([#32545](https://github.com/gatsbyjs/gatsby/issues/32545)) ([bbec42b](https://github.com/gatsbyjs/gatsby/commit/bbec42bd599dfbed4c7a4728f50b3c9fba5f903c))
|
|
49
|
+
|
|
50
|
+
### Features
|
|
51
|
+
|
|
52
|
+
- **gatsby:** allow sites to disable the dev 404 page ([#32686](https://github.com/gatsbyjs/gatsby/issues/32686)) ([af5525e](https://github.com/gatsbyjs/gatsby/commit/af5525e59cbc8052ccac1c646ef12a0c5d9843bf))
|
|
53
|
+
|
|
6
54
|
# [3.12.0-next.0](https://github.com/gatsbyjs/gatsby/compare/gatsby@3.11.0-next.6...gatsby@3.12.0-next.0) (2021-07-29)
|
|
7
55
|
|
|
8
56
|
### Bug Fixes
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
const plugins = require(`./api-runner-browser-plugins`)
|
|
2
|
-
const {
|
|
3
|
-
|
|
4
|
-
loadPage,
|
|
5
|
-
loadPageSync,
|
|
6
|
-
} = require(`./loader`).publicLoader
|
|
2
|
+
const { getResourceURLsForPathname, loadPage, loadPageSync } =
|
|
3
|
+
require(`./loader`).publicLoader
|
|
7
4
|
|
|
8
5
|
exports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {
|
|
9
6
|
// Hooks for gatsby-cypress's API handler
|
|
@@ -1284,9 +1284,7 @@ function findIndex(array, callback) {
|
|
|
1284
1284
|
function getContentDocument(node) {
|
|
1285
1285
|
try {
|
|
1286
1286
|
// works on <object> and <iframe>
|
|
1287
|
-
return node.contentDocument ||
|
|
1288
|
-
node.contentWindow && node.contentWindow.document || // works on <object> and <iframe> that contain SVG
|
|
1289
|
-
node.getSVGDocument && node.getSVGDocument() || null;
|
|
1287
|
+
return node.contentDocument || node.contentWindow && node.contentWindow.document || node.getSVGDocument && node.getSVGDocument() || null;
|
|
1290
1288
|
} catch (e) {
|
|
1291
1289
|
// SecurityError: Failed to read the 'contentDocument' property from 'HTMLObjectElement'
|
|
1292
1290
|
// also IE may throw member not found exception e.g. on <object type="image/png">
|
|
@@ -2005,9 +2003,7 @@ function selector$2() {
|
|
|
2005
2003
|
} // https://www.w3.org/TR/html5/editing.html#sequential-focus-navigation-and-the-tabindex-attribute
|
|
2006
2004
|
|
|
2007
2005
|
|
|
2008
|
-
selector$1 = '' + (
|
|
2009
|
-
supports$6.focusTable ? 'table, td,' : '') + ( // IE11 supports.can focus <fieldset>
|
|
2010
|
-
supports$6.focusFieldset ? 'fieldset,' : '') + // Namespace problems of [xlink:href] explained in https://stackoverflow.com/a/23047888/515124
|
|
2006
|
+
selector$1 = '' + (supports$6.focusTable ? 'table, td,' : '') + (supports$6.focusFieldset ? 'fieldset,' : '') + // Namespace problems of [xlink:href] explained in https://stackoverflow.com/a/23047888/515124
|
|
2011
2007
|
// svg a[*|href] does not match in IE9, but since we're filtering
|
|
2012
2008
|
// through is/focusable we can include all <a> from SVG
|
|
2013
2009
|
'svg a,' + // may behave as 'svg, svg *,' in chrome as *every* svg element with a focus event listener is focusable
|
|
@@ -162,7 +162,11 @@ window.___loader = _loader.publicLoader;
|
|
|
162
162
|
_react.default.useEffect(() => {
|
|
163
163
|
if (!onClientEntryRanRef.current) {
|
|
164
164
|
onClientEntryRanRef.current = true;
|
|
165
|
-
|
|
165
|
+
|
|
166
|
+
if (performance.mark) {
|
|
167
|
+
performance.mark(`onInitialClientRender`);
|
|
168
|
+
}
|
|
169
|
+
|
|
166
170
|
(0, _apiRunnerBrowser.apiRunner)(`onInitialClientRender`);
|
|
167
171
|
}
|
|
168
172
|
}, []);
|
|
@@ -59,9 +59,10 @@ function WrappedAccordionItem({ error, open }) {
|
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
export function GraphqlErrors({ errors, dismiss }) {
|
|
62
|
-
const deduplicatedErrors = React.useMemo(
|
|
63
|
-
errors,
|
|
64
|
-
|
|
62
|
+
const deduplicatedErrors = React.useMemo(
|
|
63
|
+
() => Array.from(new Set(errors)),
|
|
64
|
+
[errors]
|
|
65
|
+
)
|
|
65
66
|
const hasMultipleErrors = deduplicatedErrors.length > 1
|
|
66
67
|
return (
|
|
67
68
|
<Overlay>
|
|
@@ -53,9 +53,10 @@ function WrappedAccordionItem({ error, open }) {
|
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
export function RuntimeErrors({ errors, dismiss }) {
|
|
56
|
-
const deduplicatedErrors = React.useMemo(
|
|
57
|
-
errors,
|
|
58
|
-
|
|
56
|
+
const deduplicatedErrors = React.useMemo(
|
|
57
|
+
() => Array.from(new Set(errors)),
|
|
58
|
+
[errors]
|
|
59
|
+
)
|
|
59
60
|
const hasMultipleErrors = deduplicatedErrors.length > 1
|
|
60
61
|
|
|
61
62
|
return (
|
|
@@ -180,7 +180,9 @@ apiRunnerAsync(`onClientEntry`).then(() => {
|
|
|
180
180
|
React.useEffect(() => {
|
|
181
181
|
if (!onClientEntryRanRef.current) {
|
|
182
182
|
onClientEntryRanRef.current = true
|
|
183
|
-
performance.mark
|
|
183
|
+
if (performance.mark) {
|
|
184
|
+
performance.mark(`onInitialClientRender`)
|
|
185
|
+
}
|
|
184
186
|
|
|
185
187
|
apiRunner(`onInitialClientRender`)
|
|
186
188
|
}
|
package/cli.js
CHANGED
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const resolveModuleExports: (input: unknown) => Array<string> | undefined;
|
|
1
|
+
export declare const resolveModuleExports: (input: unknown) => Array<string> | undefined;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { Span } from "opentracing";
|
|
2
|
-
import { ExecutionResult, Source } from "graphql";
|
|
3
|
-
import { Store } from "redux";
|
|
4
|
-
import { Reporter } from "../..";
|
|
5
|
-
import { IGatsbyState } from "../redux/types";
|
|
6
|
-
export declare type Runner = (query: string | Source, context: Record<string, any>) => Promise<ExecutionResult>;
|
|
7
|
-
export declare const createGraphQLRunner: (store: Store<IGatsbyState>, reporter: Reporter, { parentSpan, graphqlTracing, }?: {
|
|
8
|
-
parentSpan: Span | undefined;
|
|
9
|
-
graphqlTracing?: boolean | undefined;
|
|
10
|
-
}) => Runner;
|
|
1
|
+
import { Span } from "opentracing";
|
|
2
|
+
import { ExecutionResult, Source } from "graphql";
|
|
3
|
+
import { Store } from "redux";
|
|
4
|
+
import { Reporter } from "../..";
|
|
5
|
+
import { IGatsbyState } from "../redux/types";
|
|
6
|
+
export declare type Runner = (query: string | Source, context: Record<string, any>) => Promise<ExecutionResult>;
|
|
7
|
+
export declare const createGraphQLRunner: (store: Store<IGatsbyState>, reporter: Reporter, { parentSpan, graphqlTracing, }?: {
|
|
8
|
+
parentSpan: Span | undefined;
|
|
9
|
+
graphqlTracing?: boolean | undefined;
|
|
10
|
+
}) => Runner;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/bootstrap/create-graphql-runner.ts"],"names":["createGraphQLRunner","store","reporter","parentSpan","graphqlTracing","undefined","runner","GraphQLRunner","eventTypes","forEach","type","emitter","on","query","context","queryName","then","result","errors","structuredErrors","map","e","file","stackTrace","parse","find","test","getFunctionName","structuredError","message","location","start","line","getLineNumber","column","getColumnNumber","filePath","getFileName","error","fromGraphQLFunction","filter","Boolean","length","panicOnBuild"],"mappings":";;;;;;;AAAA;;AAKA;;AACA;;AACA;;AAUO,MAAMA,mBAAmB,GAAG,CACjCC,KADiC,EAEjCC,QAFiC,EAGjC;AACEC,EAAAA,UADF;AAEEC,EAAAA;AAFF,IAGgE;AAC9DD,EAAAA,UAAU,EAAEE,SADkD;AAE9DD,EAAAA,cAAc,EAAE;AAF8C,CAN/B,KAUtB;AACX;AACA,MAAIE,MAAiC,GAAG,IAAIC,4BAAJ,CAAkBN,KAAlB,EAAyB;AAC/DG,IAAAA;AAD+D,GAAzB,CAAxC;AAIA,QAAMI,UAAyB,GAAG,CAC/B,cAD+B,EAE/B,aAF+B,EAG/B,aAH+B,EAI/B,qBAJ+B,EAK/B,YAL+B,EAM/B,mBAN+B,EAO/B,+BAP+B,CAAlC;AAUAA,EAAAA,UAAU,CAACC,OAAX,CAAmBC,IAAI,IAAI;AACzBC,mBAAQC,EAAR,CAAWF,IAAX,EAAiB,MAAM;AACrBJ,MAAAA,MAAM,GAAGD,SAAT;AACD,KAFD;AAGD,GAJD;AAMA,SAAO,CAACQ,KAAD,EAAQC,OAAR,KAAwC;AAC7C,QAAI,CAACR,MAAL,EAAa;AACXA,MAAAA,MAAM,GAAG,IAAIC,4BAAJ,CAAkBN,KAAlB,EAAyB;AAChCG,QAAAA;AADgC,OAAzB,CAAT;AAGD;;AACD,WAAOE,MAAM,CACVO,KADI,CACEA,KADF,EACSC,OADT,EACkB;AACrBC,MAAAA,SAAS,EAAG,mBADS;AAErBZ,MAAAA;AAFqB,KADlB,EAKJa,IALI,CAKCC,MAAM,IAAI;AACd,UAAIA,MAAM,CAACC,MAAX,EAAmB;AACjB,cAAMC,gBAAgB,GAAGF,MAAM,CAACC,MAAP,CACtBE,GADsB,CAClBC,CAAC,IAAI;AACR;AACA,gBAAMC,IAAI,GAAGC,oBACVC,KADU,CACJH,CADI,EAEVI,IAFU,CAELH,IAAI,IAAI,cAAcI,IAAd,CAAmBJ,IAAI,CAACK,eAAL,EAAnB,CAFH,CAAb;;AAIA,cAAIL,IAAJ,EAAU;AACR,kBAAMM,eAAe,GAAG,0BAAY;AAClCC,cAAAA,OAAO,EAAER,CAAC,CAACQ,OADuB;AAElCC,cAAAA,QAAQ,EAAE;AACRC,gBAAAA,KAAK,EAAE;AACLC,kBAAAA,IAAI,EAAEV,IAAI,CAACW,aAAL,EADD;AAELC,kBAAAA,MAAM,EAAEZ,IAAI,CAACa,eAAL;AAFH;AADC,eAFwB;AAQlCC,cAAAA,QAAQ,EAAEd,IAAI,CAACe,WAAL,EARwB;AASlCC,cAAAA,KAAK,EAAEjB;AAT2B,aAAZ,CAAxB;AAWAO,YAAAA,eAAe,CAACd,OAAhB,GAA0B,EACxB,GAAGc,eAAe,CAACd,OADK;AAExByB,cAAAA,mBAAmB,EAAE;AAFG,aAA1B;AAIA,mBAAOX,eAAP;AACD;;AAED,iBAAO,IAAP;AACD,SA3BsB,EA4BtBY,MA5BsB,
|
|
1
|
+
{"version":3,"sources":["../../src/bootstrap/create-graphql-runner.ts"],"names":["createGraphQLRunner","store","reporter","parentSpan","graphqlTracing","undefined","runner","GraphQLRunner","eventTypes","forEach","type","emitter","on","query","context","queryName","then","result","errors","structuredErrors","map","e","file","stackTrace","parse","find","test","getFunctionName","structuredError","message","location","start","line","getLineNumber","column","getColumnNumber","filePath","getFileName","error","fromGraphQLFunction","filter","Boolean","length","panicOnBuild"],"mappings":";;;;;;;AAAA;;AAKA;;AACA;;AACA;;AAUO,MAAMA,mBAAmB,GAAG,CACjCC,KADiC,EAEjCC,QAFiC,EAGjC;AACEC,EAAAA,UADF;AAEEC,EAAAA;AAFF,IAGgE;AAC9DD,EAAAA,UAAU,EAAEE,SADkD;AAE9DD,EAAAA,cAAc,EAAE;AAF8C,CAN/B,KAUtB;AACX;AACA,MAAIE,MAAiC,GAAG,IAAIC,4BAAJ,CAAkBN,KAAlB,EAAyB;AAC/DG,IAAAA;AAD+D,GAAzB,CAAxC;AAIA,QAAMI,UAAyB,GAAG,CAC/B,cAD+B,EAE/B,aAF+B,EAG/B,aAH+B,EAI/B,qBAJ+B,EAK/B,YAL+B,EAM/B,mBAN+B,EAO/B,+BAP+B,CAAlC;AAUAA,EAAAA,UAAU,CAACC,OAAX,CAAmBC,IAAI,IAAI;AACzBC,mBAAQC,EAAR,CAAWF,IAAX,EAAiB,MAAM;AACrBJ,MAAAA,MAAM,GAAGD,SAAT;AACD,KAFD;AAGD,GAJD;AAMA,SAAO,CAACQ,KAAD,EAAQC,OAAR,KAAwC;AAC7C,QAAI,CAACR,MAAL,EAAa;AACXA,MAAAA,MAAM,GAAG,IAAIC,4BAAJ,CAAkBN,KAAlB,EAAyB;AAChCG,QAAAA;AADgC,OAAzB,CAAT;AAGD;;AACD,WAAOE,MAAM,CACVO,KADI,CACEA,KADF,EACSC,OADT,EACkB;AACrBC,MAAAA,SAAS,EAAG,mBADS;AAErBZ,MAAAA;AAFqB,KADlB,EAKJa,IALI,CAKCC,MAAM,IAAI;AACd,UAAIA,MAAM,CAACC,MAAX,EAAmB;AACjB,cAAMC,gBAAgB,GAAGF,MAAM,CAACC,MAAP,CACtBE,GADsB,CAClBC,CAAC,IAAI;AACR;AACA,gBAAMC,IAAI,GAAGC,oBACVC,KADU,CACJH,CADI,EAEVI,IAFU,CAELH,IAAI,IAAI,cAAcI,IAAd,CAAmBJ,IAAI,CAACK,eAAL,EAAnB,CAFH,CAAb;;AAIA,cAAIL,IAAJ,EAAU;AACR,kBAAMM,eAAe,GAAG,0BAAY;AAClCC,cAAAA,OAAO,EAAER,CAAC,CAACQ,OADuB;AAElCC,cAAAA,QAAQ,EAAE;AACRC,gBAAAA,KAAK,EAAE;AACLC,kBAAAA,IAAI,EAAEV,IAAI,CAACW,aAAL,EADD;AAELC,kBAAAA,MAAM,EAAEZ,IAAI,CAACa,eAAL;AAFH;AADC,eAFwB;AAQlCC,cAAAA,QAAQ,EAAEd,IAAI,CAACe,WAAL,EARwB;AASlCC,cAAAA,KAAK,EAAEjB;AAT2B,aAAZ,CAAxB;AAWAO,YAAAA,eAAe,CAACd,OAAhB,GAA0B,EACxB,GAAGc,eAAe,CAACd,OADK;AAExByB,cAAAA,mBAAmB,EAAE;AAFG,aAA1B;AAIA,mBAAOX,eAAP;AACD;;AAED,iBAAO,IAAP;AACD,SA3BsB,EA4BtBY,MA5BsB,CA4BfC,OA5Be,CAAzB;;AA8BA,YAAItB,gBAAgB,CAACuB,MAArB,EAA6B;AAC3B;AACAxC,UAAAA,QAAQ,CAACyC,YAAT,CAAsBxB,gBAAtB;AACD;AACF;;AAED,aAAOF,MAAP;AACD,KA5CI,CAAP;AA6CD,GAnDD;AAoDD,CApFM","sourcesContent":["import stackTrace from \"stack-trace\"\nimport { Span } from \"opentracing\"\nimport { ExecutionResult, Source } from \"graphql\"\nimport { Store } from \"redux\"\n\nimport { GraphQLRunner } from \"../query/graphql-runner\"\nimport errorParser from \"../query/error-parser\"\nimport { emitter } from \"../redux\"\nimport { Reporter } from \"../..\"\nimport { IGatsbyState } from \"../redux/types\"\nimport { IMatch } from \"../types\"\n\nexport type Runner = (\n query: string | Source,\n context: Record<string, any>\n) => Promise<ExecutionResult>\n\nexport const createGraphQLRunner = (\n store: Store<IGatsbyState>,\n reporter: Reporter,\n {\n parentSpan,\n graphqlTracing,\n }: { parentSpan: Span | undefined; graphqlTracing?: boolean } = {\n parentSpan: undefined,\n graphqlTracing: false,\n }\n): Runner => {\n // TODO: Move tracking of changed state inside GraphQLRunner itself. https://github.com/gatsbyjs/gatsby/issues/20941\n let runner: GraphQLRunner | undefined = new GraphQLRunner(store, {\n graphqlTracing,\n })\n\n const eventTypes: Array<string> = [\n `DELETE_CACHE`,\n `CREATE_NODE`,\n `DELETE_NODE`,\n `SET_SCHEMA_COMPOSER`,\n `SET_SCHEMA`,\n `ADD_FIELD_TO_NODE`,\n `ADD_CHILD_NODE_TO_PARENT_NODE`,\n ]\n\n eventTypes.forEach(type => {\n emitter.on(type, () => {\n runner = undefined\n })\n })\n\n return (query, context): ReturnType<Runner> => {\n if (!runner) {\n runner = new GraphQLRunner(store, {\n graphqlTracing,\n })\n }\n return runner\n .query(query, context, {\n queryName: `gatsby-node query`,\n parentSpan,\n })\n .then(result => {\n if (result.errors) {\n const structuredErrors = result.errors\n .map(e => {\n // Find the file where graphql was called.\n const file = stackTrace\n .parse(e)\n .find(file => /createPages/.test(file.getFunctionName()))\n\n if (file) {\n const structuredError = errorParser({\n message: e.message,\n location: {\n start: {\n line: file.getLineNumber(),\n column: file.getColumnNumber(),\n },\n },\n filePath: file.getFileName(),\n error: e,\n })\n structuredError.context = {\n ...structuredError.context,\n fromGraphQLFunction: true,\n }\n return structuredError\n }\n\n return null\n })\n .filter(Boolean as unknown as (match) => match is IMatch)\n\n if (structuredErrors.length) {\n // panic on build exits the process\n reporter.panicOnBuild(structuredErrors)\n }\n }\n\n return result\n })\n }\n}\n"],"file":"create-graphql-runner.js"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare function getConfigFile(rootDir: string, configName: string, distance?: number): Promise<{
|
|
2
|
-
configModule: any;
|
|
3
|
-
configFilePath: string;
|
|
4
|
-
}>;
|
|
1
|
+
export declare function getConfigFile(rootDir: string, configName: string, distance?: number): Promise<{
|
|
2
|
+
configModule: any;
|
|
3
|
+
configFilePath: string;
|
|
4
|
+
}>;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { IBuildContext } from "../services";
|
|
2
|
-
import { Runner } from "./create-graphql-runner";
|
|
3
|
-
import type { GatsbyWorkerPool } from "../utils/worker/pool";
|
|
4
|
-
import { IProgram } from "../commands/types";
|
|
5
|
-
export declare function bootstrap(initialContext: Partial<IBuildContext> & {
|
|
6
|
-
program: IProgram;
|
|
7
|
-
}): Promise<{
|
|
8
|
-
gatsbyNodeGraphQLFunction: Runner;
|
|
9
|
-
workerPool: GatsbyWorkerPool;
|
|
10
|
-
}>;
|
|
1
|
+
import { IBuildContext } from "../services";
|
|
2
|
+
import { Runner } from "./create-graphql-runner";
|
|
3
|
+
import type { GatsbyWorkerPool } from "../utils/worker/pool";
|
|
4
|
+
import { IProgram } from "../commands/types";
|
|
5
|
+
export declare function bootstrap(initialContext: Partial<IBuildContext> & {
|
|
6
|
+
program: IProgram;
|
|
7
|
+
}): Promise<{
|
|
8
|
+
gatsbyNodeGraphQLFunction: Runner;
|
|
9
|
+
workerPool: GatsbyWorkerPool;
|
|
10
|
+
}>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { IFlattenedPlugin } from "./load-plugins/types";
|
|
2
|
-
export declare function loadConfigAndPlugins({ siteDirectory, processFlags, }: {
|
|
3
|
-
siteDirectory: string;
|
|
4
|
-
processFlags?: boolean;
|
|
5
|
-
}): Promise<{
|
|
6
|
-
config: any;
|
|
7
|
-
flattenedPlugins: Array<IFlattenedPlugin>;
|
|
8
|
-
}>;
|
|
1
|
+
import { IFlattenedPlugin } from "./load-plugins/types";
|
|
2
|
+
export declare function loadConfigAndPlugins({ siteDirectory, processFlags, }: {
|
|
3
|
+
siteDirectory: string;
|
|
4
|
+
processFlags?: boolean;
|
|
5
|
+
}): Promise<{
|
|
6
|
+
config: any;
|
|
7
|
+
flattenedPlugins: Array<IFlattenedPlugin>;
|
|
8
|
+
}>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { IFlattenedPlugin, IRawSiteConfig } from "./types";
|
|
2
|
-
export declare function loadPlugins(rawConfig: IRawSiteConfig | undefined, rootDir: string): Promise<Array<IFlattenedPlugin>>;
|
|
1
|
+
import { IFlattenedPlugin, IRawSiteConfig } from "./types";
|
|
2
|
+
export declare function loadPlugins(rawConfig: IRawSiteConfig | undefined, rootDir: string): Promise<Array<IFlattenedPlugin>>;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { IPluginInfo, PluginRef, ISiteConfig } from "./types";
|
|
2
|
-
/**
|
|
3
|
-
* @param plugin
|
|
4
|
-
* This should be a plugin spec object where possible but can also be the
|
|
5
|
-
* name of a plugin.
|
|
6
|
-
*
|
|
7
|
-
* When it is a name, it can be a name of a local plugin, the name of a plugin
|
|
8
|
-
* located in node_modules, or a Gatsby internal plugin. In the last case the
|
|
9
|
-
* plugin will be an absolute path.
|
|
10
|
-
* @param rootDir
|
|
11
|
-
* This is the project location, from which are found the plugins
|
|
12
|
-
*/
|
|
13
|
-
export declare function resolvePlugin(plugin: PluginRef, rootDir: string | null): IPluginInfo;
|
|
14
|
-
export declare function loadPlugins(config: ISiteConfig | undefined, rootDir: string): Array<IPluginInfo>;
|
|
1
|
+
import { IPluginInfo, PluginRef, ISiteConfig } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* @param plugin
|
|
4
|
+
* This should be a plugin spec object where possible but can also be the
|
|
5
|
+
* name of a plugin.
|
|
6
|
+
*
|
|
7
|
+
* When it is a name, it can be a name of a local plugin, the name of a plugin
|
|
8
|
+
* located in node_modules, or a Gatsby internal plugin. In the last case the
|
|
9
|
+
* plugin will be an absolute path.
|
|
10
|
+
* @param rootDir
|
|
11
|
+
* This is the project location, from which are found the plugins
|
|
12
|
+
*/
|
|
13
|
+
export declare function resolvePlugin(plugin: PluginRef, rootDir: string | null): IPluginInfo;
|
|
14
|
+
export declare function loadPlugins(config: ISiteConfig | undefined, rootDir: string): Array<IPluginInfo>;
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
export interface IRawSiteConfig {
|
|
2
|
-
plugins?: Array<PluginRef>;
|
|
3
|
-
}
|
|
4
|
-
export interface ISiteConfig extends IRawSiteConfig {
|
|
5
|
-
plugins?: Array<IPluginRefObject>;
|
|
6
|
-
}
|
|
7
|
-
export interface IPluginInfo {
|
|
8
|
-
/** Unique ID describing a plugin */
|
|
9
|
-
id: string;
|
|
10
|
-
/** The absolute path to the plugin */
|
|
11
|
-
resolve: string;
|
|
12
|
-
/** The plugin name */
|
|
13
|
-
name: string;
|
|
14
|
-
/** The plugin version (can be content hash) */
|
|
15
|
-
version: string;
|
|
16
|
-
/** Options passed to the plugin */
|
|
17
|
-
pluginOptions?: IPluginInfoOptions;
|
|
18
|
-
}
|
|
19
|
-
export interface IPluginInfoOptions {
|
|
20
|
-
plugins?: Array<IPluginInfo>;
|
|
21
|
-
path?: string;
|
|
22
|
-
[option: string]: unknown;
|
|
23
|
-
}
|
|
24
|
-
export interface IFlattenedPlugin extends IPluginInfo {
|
|
25
|
-
skipSSR?: boolean;
|
|
26
|
-
ssrAPIs: Array<string>;
|
|
27
|
-
nodeAPIs: Array<string>;
|
|
28
|
-
browserAPIs: Array<string>;
|
|
29
|
-
}
|
|
30
|
-
export interface IPluginRefObject {
|
|
31
|
-
resolve: string;
|
|
32
|
-
options?: IPluginRefOptions;
|
|
33
|
-
parentDir?: string;
|
|
34
|
-
}
|
|
35
|
-
export declare type PluginRef = string | IPluginRefObject;
|
|
36
|
-
export interface IPluginRefOptions {
|
|
37
|
-
plugins?: Array<PluginRef>;
|
|
38
|
-
path?: string;
|
|
39
|
-
[option: string]: unknown;
|
|
40
|
-
}
|
|
1
|
+
export interface IRawSiteConfig {
|
|
2
|
+
plugins?: Array<PluginRef>;
|
|
3
|
+
}
|
|
4
|
+
export interface ISiteConfig extends IRawSiteConfig {
|
|
5
|
+
plugins?: Array<IPluginRefObject>;
|
|
6
|
+
}
|
|
7
|
+
export interface IPluginInfo {
|
|
8
|
+
/** Unique ID describing a plugin */
|
|
9
|
+
id: string;
|
|
10
|
+
/** The absolute path to the plugin */
|
|
11
|
+
resolve: string;
|
|
12
|
+
/** The plugin name */
|
|
13
|
+
name: string;
|
|
14
|
+
/** The plugin version (can be content hash) */
|
|
15
|
+
version: string;
|
|
16
|
+
/** Options passed to the plugin */
|
|
17
|
+
pluginOptions?: IPluginInfoOptions;
|
|
18
|
+
}
|
|
19
|
+
export interface IPluginInfoOptions {
|
|
20
|
+
plugins?: Array<IPluginInfo>;
|
|
21
|
+
path?: string;
|
|
22
|
+
[option: string]: unknown;
|
|
23
|
+
}
|
|
24
|
+
export interface IFlattenedPlugin extends IPluginInfo {
|
|
25
|
+
skipSSR?: boolean;
|
|
26
|
+
ssrAPIs: Array<string>;
|
|
27
|
+
nodeAPIs: Array<string>;
|
|
28
|
+
browserAPIs: Array<string>;
|
|
29
|
+
}
|
|
30
|
+
export interface IPluginRefObject {
|
|
31
|
+
resolve: string;
|
|
32
|
+
options?: IPluginRefOptions;
|
|
33
|
+
parentDir?: string;
|
|
34
|
+
}
|
|
35
|
+
export declare type PluginRef = string | IPluginRefObject;
|
|
36
|
+
export interface IPluginRefOptions {
|
|
37
|
+
plugins?: Array<PluginRef>;
|
|
38
|
+
path?: string;
|
|
39
|
+
[option: string]: unknown;
|
|
40
|
+
}
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
import { PackageJson } from "../../../";
|
|
2
|
-
import { IPluginInfo, IFlattenedPlugin, ISiteConfig } from "./types";
|
|
3
|
-
interface IApi {
|
|
4
|
-
version?: string;
|
|
5
|
-
}
|
|
6
|
-
export interface IEntry {
|
|
7
|
-
exportName: string;
|
|
8
|
-
pluginName: string;
|
|
9
|
-
pluginVersion: string;
|
|
10
|
-
api?: IApi;
|
|
11
|
-
}
|
|
12
|
-
export declare type ExportType = "node" | "browser" | "ssr";
|
|
13
|
-
declare type IEntryMap = {
|
|
14
|
-
[exportType in ExportType]: Array<IEntry>;
|
|
15
|
-
};
|
|
16
|
-
export declare type ICurrentAPIs = {
|
|
17
|
-
[exportType in ExportType]: Array<string>;
|
|
18
|
-
};
|
|
19
|
-
export declare function handleBadExports({ currentAPIs, badExports, }: {
|
|
20
|
-
currentAPIs: ICurrentAPIs;
|
|
21
|
-
badExports: {
|
|
22
|
-
[api in ExportType]: Array<IEntry>;
|
|
23
|
-
};
|
|
24
|
-
}): Promise<void>;
|
|
25
|
-
export declare function validateConfigPluginsOptions(config: ISiteConfig | undefined, rootDir: string | null): Promise<void>;
|
|
26
|
-
/**
|
|
27
|
-
* Identify which APIs each plugin exports
|
|
28
|
-
*/
|
|
29
|
-
export declare function collatePluginAPIs({ currentAPIs, flattenedPlugins, }: {
|
|
30
|
-
currentAPIs: ICurrentAPIs;
|
|
31
|
-
flattenedPlugins: Array<IPluginInfo & Partial<IFlattenedPlugin>>;
|
|
32
|
-
}): {
|
|
33
|
-
flattenedPlugins: Array<IFlattenedPlugin>;
|
|
34
|
-
badExports: IEntryMap;
|
|
35
|
-
};
|
|
36
|
-
export declare const handleMultipleReplaceRenderers: ({ flattenedPlugins, }: {
|
|
37
|
-
flattenedPlugins: Array<IFlattenedPlugin>;
|
|
38
|
-
}) => Array<IFlattenedPlugin>;
|
|
39
|
-
export declare function warnOnIncompatiblePeerDependency(name: string, packageJSON: PackageJson): void;
|
|
40
|
-
export {};
|
|
1
|
+
import { PackageJson } from "../../../";
|
|
2
|
+
import { IPluginInfo, IFlattenedPlugin, ISiteConfig } from "./types";
|
|
3
|
+
interface IApi {
|
|
4
|
+
version?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface IEntry {
|
|
7
|
+
exportName: string;
|
|
8
|
+
pluginName: string;
|
|
9
|
+
pluginVersion: string;
|
|
10
|
+
api?: IApi;
|
|
11
|
+
}
|
|
12
|
+
export declare type ExportType = "node" | "browser" | "ssr";
|
|
13
|
+
declare type IEntryMap = {
|
|
14
|
+
[exportType in ExportType]: Array<IEntry>;
|
|
15
|
+
};
|
|
16
|
+
export declare type ICurrentAPIs = {
|
|
17
|
+
[exportType in ExportType]: Array<string>;
|
|
18
|
+
};
|
|
19
|
+
export declare function handleBadExports({ currentAPIs, badExports, }: {
|
|
20
|
+
currentAPIs: ICurrentAPIs;
|
|
21
|
+
badExports: {
|
|
22
|
+
[api in ExportType]: Array<IEntry>;
|
|
23
|
+
};
|
|
24
|
+
}): Promise<void>;
|
|
25
|
+
export declare function validateConfigPluginsOptions(config: ISiteConfig | undefined, rootDir: string | null): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Identify which APIs each plugin exports
|
|
28
|
+
*/
|
|
29
|
+
export declare function collatePluginAPIs({ currentAPIs, flattenedPlugins, }: {
|
|
30
|
+
currentAPIs: ICurrentAPIs;
|
|
31
|
+
flattenedPlugins: Array<IPluginInfo & Partial<IFlattenedPlugin>>;
|
|
32
|
+
}): {
|
|
33
|
+
flattenedPlugins: Array<IFlattenedPlugin>;
|
|
34
|
+
badExports: IEntryMap;
|
|
35
|
+
};
|
|
36
|
+
export declare const handleMultipleReplaceRenderers: ({ flattenedPlugins, }: {
|
|
37
|
+
flattenedPlugins: Array<IFlattenedPlugin>;
|
|
38
|
+
}) => Array<IFlattenedPlugin>;
|
|
39
|
+
export declare function warnOnIncompatiblePeerDependency(name: string, packageJSON: PackageJson): void;
|
|
40
|
+
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/bootstrap/load-plugins/validate.ts"],"names":["getGatsbyUpgradeVersion","entries","reduce","version","entry","api","semver","gt","getBadExports","plugin","pluginAPIKeys","apis","badExports","concat","_","difference","map","e","exportName","pluginName","name","pluginVersion","getErrorContext","exportType","currentAPIs","latestAPIs","ex","gatsbyUpgradeVersion","errors","fixes","forEach","similarities","stringSimilarity","findBestMatch","isDefaultPlugin","message","push","bestMatch","rating","target","sourceMessage","length","filter","Boolean","join","handleBadExports","hasBadExports","Object","keys","find","toPairs","badItem","context","reporter","error","id","validatePluginsOptions","plugins","rootDir","newPlugins","Promise","all","gatsbyNode","resolvedPlugin","require","resolve","err","pluginOptionsSchema","optionsSchema","Joi","isSchema","type","warn","describe","append","array","options","subErrors","subPlugins","ValidationError","validationWarnings","details","validationErrors","configDir","parentDir","path","relative","valueString","validateConfigPluginsOptions","config","process","exit","collatePluginAPIs","flattenedPlugins","node","browser","ssr","nodeAPIs","browserAPIs","ssrAPIs","pluginNodeExports","mode","pluginBrowserExports","pluginSSRExports","intersection","handleMultipleReplaceRenderers","rendererPlugins","includes","console","log","env","NODE_ENV","ignorable","slice","messages","fp","i","skipSSR","m","warnOnIncompatiblePeerDependency","packageJSON","gatsbyPeerDependency","get","satisfies","gatsbyVersion","includePrerelease"],"mappings":"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","sourcesContent":["import _ from \"lodash\"\nimport path from \"path\"\nimport * as semver from \"semver\"\nimport * as stringSimilarity from \"string-similarity\"\nimport { version as gatsbyVersion } from \"gatsby/package.json\"\nimport reporter from \"gatsby-cli/lib/reporter\"\nimport { validateOptionsSchema, Joi } from \"gatsby-plugin-utils\"\nimport { IPluginRefObject } from \"gatsby-plugin-utils/dist/types\"\nimport { stripIndent } from \"common-tags\"\nimport { trackCli } from \"gatsby-telemetry\"\nimport { resolveModuleExports } from \"../resolve-module-exports\"\nimport { getLatestAPIs } from \"../../utils/get-latest-apis\"\nimport { GatsbyNode, PackageJson } from \"../../../\"\nimport {\n IPluginInfo,\n IFlattenedPlugin,\n IPluginInfoOptions,\n ISiteConfig,\n} from \"./types\"\nimport { resolvePlugin } from \"./load\"\n\ninterface IApi {\n version?: string\n}\n\nexport interface IEntry {\n exportName: string\n pluginName: string\n pluginVersion: string\n api?: IApi\n}\n\nexport type ExportType = \"node\" | \"browser\" | \"ssr\"\n\ntype IEntryMap = {\n [exportType in ExportType]: Array<IEntry>\n}\n\nexport type ICurrentAPIs = {\n [exportType in ExportType]: Array<string>\n}\n\nconst getGatsbyUpgradeVersion = (entries: ReadonlyArray<IEntry>): string =>\n entries.reduce((version, entry) => {\n if (entry.api && entry.api.version) {\n return semver.gt(entry.api.version, version || `0.0.0`)\n ? entry.api.version\n : version\n }\n return version\n }, ``)\n\n// Given a plugin object, an array of the API names it exports and an\n// array of valid API names, return an array of invalid API exports.\nfunction getBadExports(\n plugin: IPluginInfo,\n pluginAPIKeys: ReadonlyArray<string>,\n apis: ReadonlyArray<string>\n): Array<IEntry> {\n let badExports: Array<IEntry> = []\n // Discover any exports from plugins which are not \"known\"\n badExports = badExports.concat(\n _.difference(pluginAPIKeys, apis).map(e => {\n return {\n exportName: e,\n pluginName: plugin.name,\n pluginVersion: plugin.version,\n }\n })\n )\n return badExports\n}\n\nfunction getErrorContext(\n badExports: Array<IEntry>,\n exportType: ExportType,\n currentAPIs: ICurrentAPIs,\n latestAPIs: { [exportType in ExportType]: { [exportName: string]: IApi } }\n): {\n errors: Array<string>\n entries: Array<IEntry>\n exportType: ExportType\n fixes: Array<string>\n sourceMessage: string\n} {\n const entries = badExports.map(ex => {\n return {\n ...ex,\n api: latestAPIs[exportType][ex.exportName],\n }\n })\n\n const gatsbyUpgradeVersion = getGatsbyUpgradeVersion(entries)\n const errors: Array<string> = []\n const fixes = gatsbyUpgradeVersion\n ? [`npm install gatsby@^${gatsbyUpgradeVersion}`]\n : []\n\n entries.forEach(entry => {\n const similarities = stringSimilarity.findBestMatch(\n entry.exportName,\n currentAPIs[exportType]\n )\n const isDefaultPlugin = entry.pluginName == `default-site-plugin`\n\n const message = entry.api\n ? entry.api.version\n ? `was introduced in gatsby@${entry.api.version}`\n : `is not available in your version of Gatsby`\n : `is not a known API`\n\n if (isDefaultPlugin) {\n errors.push(\n `- Your local gatsby-${exportType}.js is using the API \"${entry.exportName}\" which ${message}.`\n )\n } else {\n errors.push(\n `- The plugin ${entry.pluginName}@${entry.pluginVersion} is using the API \"${entry.exportName}\" which ${message}.`\n )\n }\n\n if (similarities.bestMatch.rating > 0.5) {\n fixes.push(\n `Rename \"${entry.exportName}\" -> \"${similarities.bestMatch.target}\"`\n )\n }\n })\n\n return {\n errors,\n entries,\n exportType,\n fixes,\n // note: this is a fallback if gatsby-cli is not updated with structured error\n sourceMessage: [\n `Your plugins must export known APIs from their gatsby-node.js.`,\n ]\n .concat(errors)\n .concat(\n fixes.length > 0\n ? [`\\n`, `Some of the following may help fix the error(s):`, ...fixes]\n : []\n )\n .filter(Boolean)\n .join(`\\n`),\n }\n}\n\nexport async function handleBadExports({\n currentAPIs,\n badExports,\n}: {\n currentAPIs: ICurrentAPIs\n badExports: { [api in ExportType]: Array<IEntry> }\n}): Promise<void> {\n const hasBadExports = Object.keys(badExports).find(\n api => badExports[api].length > 0\n )\n if (hasBadExports) {\n const latestAPIs = await getLatestAPIs()\n // Output error messages for all bad exports\n _.toPairs(badExports).forEach(badItem => {\n const [exportType, entries] = badItem\n if (entries.length > 0) {\n const context = getErrorContext(\n entries,\n exportType as keyof typeof badExports,\n currentAPIs,\n latestAPIs\n )\n reporter.error({\n id: `11329`,\n context,\n })\n }\n })\n }\n}\n\nasync function validatePluginsOptions(\n plugins: Array<IPluginRefObject>,\n rootDir: string | null\n): Promise<{\n errors: number\n plugins: Array<IPluginRefObject>\n}> {\n let errors = 0\n const newPlugins = await Promise.all(\n plugins.map(async plugin => {\n let gatsbyNode\n try {\n const resolvedPlugin = resolvePlugin(plugin, rootDir)\n gatsbyNode = require(`${resolvedPlugin.resolve}/gatsby-node`)\n } catch (err) {\n gatsbyNode = {}\n }\n\n if (!gatsbyNode.pluginOptionsSchema) return plugin\n\n let optionsSchema = (gatsbyNode.pluginOptionsSchema as Exclude<\n GatsbyNode[\"pluginOptionsSchema\"],\n undefined\n >)({\n Joi,\n })\n\n // Validate correct usage of pluginOptionsSchema\n if (!Joi.isSchema(optionsSchema) || optionsSchema.type !== `object`) {\n reporter.warn(\n `Plugin \"${plugin.resolve}\" has an invalid options schema so we cannot verify your configuration for it.`\n )\n return plugin\n }\n\n try {\n if (!optionsSchema.describe().keys.plugins) {\n // All plugins have \"plugins: []\"\" added to their options in load.ts, even if they\n // do not have subplugins. We add plugins to the schema if it does not exist already\n // to make sure they pass validation.\n optionsSchema = optionsSchema.append({\n plugins: Joi.array().length(0),\n })\n }\n\n plugin.options = await validateOptionsSchema(\n optionsSchema,\n (plugin.options as IPluginInfoOptions) || {}\n )\n\n if (plugin.options?.plugins) {\n const {\n errors: subErrors,\n plugins: subPlugins,\n } = await validatePluginsOptions(\n plugin.options.plugins as Array<IPluginRefObject>,\n rootDir\n )\n plugin.options.plugins = subPlugins\n errors += subErrors\n }\n } catch (error) {\n if (error instanceof Joi.ValidationError) {\n // Show a small warning on unknown options rather than erroring\n const validationWarnings = error.details.filter(\n err => err.type === `object.unknown`\n )\n const validationErrors = error.details.filter(\n err => err.type !== `object.unknown`\n )\n\n // If rootDir and plugin.parentDir are the same, i.e. if this is a plugin a user configured in their gatsby-config.js (and not a sub-theme that added it), this will be \"\"\n // Otherwise, this will contain (and show) the relative path\n const configDir =\n (plugin.parentDir &&\n rootDir &&\n path.relative(rootDir, plugin.parentDir)) ||\n null\n if (validationErrors.length > 0) {\n reporter.error({\n id: `11331`,\n context: {\n configDir,\n validationErrors,\n pluginName: plugin.resolve,\n },\n })\n errors++\n }\n\n if (validationWarnings.length > 0) {\n reporter.warn(\n stripIndent(`\n Warning: there are unknown plugin options for \"${\n plugin.resolve\n }\"${\n configDir ? `, configured by ${configDir}` : ``\n }: ${validationWarnings\n .map(error => error.path.join(`.`))\n .join(`, `)}\n Please open an issue at ghub.io/${\n plugin.resolve\n } if you believe this option is valid.\n `)\n )\n trackCli(`UNKNOWN_PLUGIN_OPTION`, {\n name: plugin.resolve,\n valueString: validationWarnings\n .map(error => error.path.join(`.`))\n .join(`, `),\n })\n // We do not increment errors++ here as we do not want to process.exit if there are only warnings\n }\n\n return plugin\n }\n\n throw error\n }\n\n return plugin\n })\n )\n return { errors, plugins: newPlugins }\n}\n\nexport async function validateConfigPluginsOptions(\n config: ISiteConfig = {},\n rootDir: string | null\n): Promise<void> {\n if (!config.plugins) return\n\n const { errors, plugins } = await validatePluginsOptions(\n config.plugins,\n rootDir\n )\n\n config.plugins = plugins\n\n if (errors > 0) {\n process.exit(1)\n }\n}\n\n/**\n * Identify which APIs each plugin exports\n */\nexport function collatePluginAPIs({\n currentAPIs,\n flattenedPlugins,\n}: {\n currentAPIs: ICurrentAPIs\n flattenedPlugins: Array<IPluginInfo & Partial<IFlattenedPlugin>>\n}): { flattenedPlugins: Array<IFlattenedPlugin>; badExports: IEntryMap } {\n // Get a list of bad exports\n const badExports: IEntryMap = {\n node: [],\n browser: [],\n ssr: [],\n }\n\n flattenedPlugins.forEach(plugin => {\n plugin.nodeAPIs = []\n plugin.browserAPIs = []\n plugin.ssrAPIs = []\n\n // Discover which APIs this plugin implements and store an array against\n // the plugin node itself *and* in an API to plugins map for faster lookups\n // later.\n const pluginNodeExports = resolveModuleExports(\n `${plugin.resolve}/gatsby-node`,\n {\n mode: `require`,\n }\n )\n const pluginBrowserExports = resolveModuleExports(\n `${plugin.resolve}/gatsby-browser`\n )\n const pluginSSRExports = resolveModuleExports(\n `${plugin.resolve}/gatsby-ssr`\n )\n\n if (pluginNodeExports.length > 0) {\n plugin.nodeAPIs = _.intersection(pluginNodeExports, currentAPIs.node)\n badExports.node = badExports.node.concat(\n getBadExports(plugin, pluginNodeExports, currentAPIs.node)\n ) // Collate any bad exports\n }\n\n if (pluginBrowserExports.length > 0) {\n plugin.browserAPIs = _.intersection(\n pluginBrowserExports,\n currentAPIs.browser\n )\n badExports.browser = badExports.browser.concat(\n getBadExports(plugin, pluginBrowserExports, currentAPIs.browser)\n ) // Collate any bad exports\n }\n\n if (pluginSSRExports.length > 0) {\n plugin.ssrAPIs = _.intersection(pluginSSRExports, currentAPIs.ssr)\n badExports.ssr = badExports.ssr.concat(\n getBadExports(plugin, pluginSSRExports, currentAPIs.ssr)\n ) // Collate any bad exports\n }\n })\n\n return {\n flattenedPlugins: flattenedPlugins as Array<IFlattenedPlugin>,\n badExports,\n }\n}\n\nexport const handleMultipleReplaceRenderers = ({\n flattenedPlugins,\n}: {\n flattenedPlugins: Array<IFlattenedPlugin>\n}): Array<IFlattenedPlugin> => {\n // multiple replaceRenderers may cause problems at build time\n const rendererPlugins = flattenedPlugins\n .filter(plugin => plugin.ssrAPIs.includes(`replaceRenderer`))\n .map(plugin => plugin.name)\n if (rendererPlugins.length > 1) {\n if (rendererPlugins.includes(`default-site-plugin`)) {\n reporter.warn(`replaceRenderer API found in these plugins:`)\n reporter.warn(rendererPlugins.join(`, `))\n reporter.warn(\n `This might be an error, see: https://www.gatsbyjs.org/docs/debugging-replace-renderer-api/`\n )\n } else {\n console.log(``)\n reporter.error(\n `Gatsby's replaceRenderer API is implemented by multiple plugins:`\n )\n reporter.error(rendererPlugins.join(`, `))\n reporter.error(`This will break your build`)\n reporter.error(\n `See: https://www.gatsbyjs.org/docs/debugging-replace-renderer-api/`\n )\n if (process.env.NODE_ENV === `production`) process.exit(1)\n }\n\n // Now update plugin list so only final replaceRenderer will run\n const ignorable = rendererPlugins.slice(0, -1)\n\n // For each plugin in ignorable, set a skipSSR flag to true\n // This prevents apiRunnerSSR() from attempting to run it later\n const messages: Array<string> = []\n flattenedPlugins.forEach((fp, i) => {\n if (ignorable.includes(fp.name)) {\n messages.push(\n `Duplicate replaceRenderer found, skipping gatsby-ssr.js for plugin: ${fp.name}`\n )\n flattenedPlugins[i].skipSSR = true\n }\n })\n if (messages.length > 0) {\n console.log(``)\n messages.forEach(m => reporter.warn(m))\n console.log(``)\n }\n }\n\n return flattenedPlugins\n}\n\nexport function warnOnIncompatiblePeerDependency(\n name: string,\n packageJSON: PackageJson\n): void {\n // Note: In the future the peer dependency should be enforced for all plugins.\n const gatsbyPeerDependency = _.get(packageJSON, `peerDependencies.gatsby`)\n if (\n gatsbyPeerDependency &&\n !semver.satisfies(gatsbyVersion, gatsbyPeerDependency, {\n includePrerelease: true,\n })\n ) {\n reporter.warn(\n `Plugin ${name} is not compatible with your gatsby version ${gatsbyVersion} - It requires gatsby@${gatsbyPeerDependency}`\n )\n }\n}\n"],"file":"validate.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/bootstrap/load-plugins/validate.ts"],"names":["getGatsbyUpgradeVersion","entries","reduce","version","entry","api","semver","gt","getBadExports","plugin","pluginAPIKeys","apis","badExports","concat","_","difference","map","e","exportName","pluginName","name","pluginVersion","getErrorContext","exportType","currentAPIs","latestAPIs","ex","gatsbyUpgradeVersion","errors","fixes","forEach","similarities","stringSimilarity","findBestMatch","isDefaultPlugin","message","push","bestMatch","rating","target","sourceMessage","length","filter","Boolean","join","handleBadExports","hasBadExports","Object","keys","find","toPairs","badItem","context","reporter","error","id","validatePluginsOptions","plugins","rootDir","newPlugins","Promise","all","gatsbyNode","resolvedPlugin","require","resolve","err","pluginOptionsSchema","optionsSchema","Joi","isSchema","type","warn","describe","append","array","options","subErrors","subPlugins","ValidationError","validationWarnings","details","validationErrors","configDir","parentDir","path","relative","valueString","validateConfigPluginsOptions","config","process","exit","collatePluginAPIs","flattenedPlugins","node","browser","ssr","nodeAPIs","browserAPIs","ssrAPIs","pluginNodeExports","mode","pluginBrowserExports","pluginSSRExports","intersection","handleMultipleReplaceRenderers","rendererPlugins","includes","console","log","env","NODE_ENV","ignorable","slice","messages","fp","i","skipSSR","m","warnOnIncompatiblePeerDependency","packageJSON","gatsbyPeerDependency","get","satisfies","gatsbyVersion","includePrerelease"],"mappings":"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","sourcesContent":["import _ from \"lodash\"\nimport path from \"path\"\nimport * as semver from \"semver\"\nimport * as stringSimilarity from \"string-similarity\"\nimport { version as gatsbyVersion } from \"gatsby/package.json\"\nimport reporter from \"gatsby-cli/lib/reporter\"\nimport { validateOptionsSchema, Joi } from \"gatsby-plugin-utils\"\nimport { IPluginRefObject } from \"gatsby-plugin-utils/dist/types\"\nimport { stripIndent } from \"common-tags\"\nimport { trackCli } from \"gatsby-telemetry\"\nimport { resolveModuleExports } from \"../resolve-module-exports\"\nimport { getLatestAPIs } from \"../../utils/get-latest-apis\"\nimport { GatsbyNode, PackageJson } from \"../../../\"\nimport {\n IPluginInfo,\n IFlattenedPlugin,\n IPluginInfoOptions,\n ISiteConfig,\n} from \"./types\"\nimport { resolvePlugin } from \"./load\"\n\ninterface IApi {\n version?: string\n}\n\nexport interface IEntry {\n exportName: string\n pluginName: string\n pluginVersion: string\n api?: IApi\n}\n\nexport type ExportType = \"node\" | \"browser\" | \"ssr\"\n\ntype IEntryMap = {\n [exportType in ExportType]: Array<IEntry>\n}\n\nexport type ICurrentAPIs = {\n [exportType in ExportType]: Array<string>\n}\n\nconst getGatsbyUpgradeVersion = (entries: ReadonlyArray<IEntry>): string =>\n entries.reduce((version, entry) => {\n if (entry.api && entry.api.version) {\n return semver.gt(entry.api.version, version || `0.0.0`)\n ? entry.api.version\n : version\n }\n return version\n }, ``)\n\n// Given a plugin object, an array of the API names it exports and an\n// array of valid API names, return an array of invalid API exports.\nfunction getBadExports(\n plugin: IPluginInfo,\n pluginAPIKeys: ReadonlyArray<string>,\n apis: ReadonlyArray<string>\n): Array<IEntry> {\n let badExports: Array<IEntry> = []\n // Discover any exports from plugins which are not \"known\"\n badExports = badExports.concat(\n _.difference(pluginAPIKeys, apis).map(e => {\n return {\n exportName: e,\n pluginName: plugin.name,\n pluginVersion: plugin.version,\n }\n })\n )\n return badExports\n}\n\nfunction getErrorContext(\n badExports: Array<IEntry>,\n exportType: ExportType,\n currentAPIs: ICurrentAPIs,\n latestAPIs: { [exportType in ExportType]: { [exportName: string]: IApi } }\n): {\n errors: Array<string>\n entries: Array<IEntry>\n exportType: ExportType\n fixes: Array<string>\n sourceMessage: string\n} {\n const entries = badExports.map(ex => {\n return {\n ...ex,\n api: latestAPIs[exportType][ex.exportName],\n }\n })\n\n const gatsbyUpgradeVersion = getGatsbyUpgradeVersion(entries)\n const errors: Array<string> = []\n const fixes = gatsbyUpgradeVersion\n ? [`npm install gatsby@^${gatsbyUpgradeVersion}`]\n : []\n\n entries.forEach(entry => {\n const similarities = stringSimilarity.findBestMatch(\n entry.exportName,\n currentAPIs[exportType]\n )\n const isDefaultPlugin = entry.pluginName == `default-site-plugin`\n\n const message = entry.api\n ? entry.api.version\n ? `was introduced in gatsby@${entry.api.version}`\n : `is not available in your version of Gatsby`\n : `is not a known API`\n\n if (isDefaultPlugin) {\n errors.push(\n `- Your local gatsby-${exportType}.js is using the API \"${entry.exportName}\" which ${message}.`\n )\n } else {\n errors.push(\n `- The plugin ${entry.pluginName}@${entry.pluginVersion} is using the API \"${entry.exportName}\" which ${message}.`\n )\n }\n\n if (similarities.bestMatch.rating > 0.5) {\n fixes.push(\n `Rename \"${entry.exportName}\" -> \"${similarities.bestMatch.target}\"`\n )\n }\n })\n\n return {\n errors,\n entries,\n exportType,\n fixes,\n // note: this is a fallback if gatsby-cli is not updated with structured error\n sourceMessage: [\n `Your plugins must export known APIs from their gatsby-node.js.`,\n ]\n .concat(errors)\n .concat(\n fixes.length > 0\n ? [`\\n`, `Some of the following may help fix the error(s):`, ...fixes]\n : []\n )\n .filter(Boolean)\n .join(`\\n`),\n }\n}\n\nexport async function handleBadExports({\n currentAPIs,\n badExports,\n}: {\n currentAPIs: ICurrentAPIs\n badExports: { [api in ExportType]: Array<IEntry> }\n}): Promise<void> {\n const hasBadExports = Object.keys(badExports).find(\n api => badExports[api].length > 0\n )\n if (hasBadExports) {\n const latestAPIs = await getLatestAPIs()\n // Output error messages for all bad exports\n _.toPairs(badExports).forEach(badItem => {\n const [exportType, entries] = badItem\n if (entries.length > 0) {\n const context = getErrorContext(\n entries,\n exportType as keyof typeof badExports,\n currentAPIs,\n latestAPIs\n )\n reporter.error({\n id: `11329`,\n context,\n })\n }\n })\n }\n}\n\nasync function validatePluginsOptions(\n plugins: Array<IPluginRefObject>,\n rootDir: string | null\n): Promise<{\n errors: number\n plugins: Array<IPluginRefObject>\n}> {\n let errors = 0\n const newPlugins = await Promise.all(\n plugins.map(async plugin => {\n let gatsbyNode\n try {\n const resolvedPlugin = resolvePlugin(plugin, rootDir)\n gatsbyNode = require(`${resolvedPlugin.resolve}/gatsby-node`)\n } catch (err) {\n gatsbyNode = {}\n }\n\n if (!gatsbyNode.pluginOptionsSchema) return plugin\n\n let optionsSchema = (\n gatsbyNode.pluginOptionsSchema as Exclude<\n GatsbyNode[\"pluginOptionsSchema\"],\n undefined\n >\n )({\n Joi,\n })\n\n // Validate correct usage of pluginOptionsSchema\n if (!Joi.isSchema(optionsSchema) || optionsSchema.type !== `object`) {\n reporter.warn(\n `Plugin \"${plugin.resolve}\" has an invalid options schema so we cannot verify your configuration for it.`\n )\n return plugin\n }\n\n try {\n if (!optionsSchema.describe().keys.plugins) {\n // All plugins have \"plugins: []\"\" added to their options in load.ts, even if they\n // do not have subplugins. We add plugins to the schema if it does not exist already\n // to make sure they pass validation.\n optionsSchema = optionsSchema.append({\n plugins: Joi.array().length(0),\n })\n }\n\n plugin.options = await validateOptionsSchema(\n optionsSchema,\n (plugin.options as IPluginInfoOptions) || {}\n )\n\n if (plugin.options?.plugins) {\n const { errors: subErrors, plugins: subPlugins } =\n await validatePluginsOptions(\n plugin.options.plugins as Array<IPluginRefObject>,\n rootDir\n )\n plugin.options.plugins = subPlugins\n errors += subErrors\n }\n } catch (error) {\n if (error instanceof Joi.ValidationError) {\n // Show a small warning on unknown options rather than erroring\n const validationWarnings = error.details.filter(\n err => err.type === `object.unknown`\n )\n const validationErrors = error.details.filter(\n err => err.type !== `object.unknown`\n )\n\n // If rootDir and plugin.parentDir are the same, i.e. if this is a plugin a user configured in their gatsby-config.js (and not a sub-theme that added it), this will be \"\"\n // Otherwise, this will contain (and show) the relative path\n const configDir =\n (plugin.parentDir &&\n rootDir &&\n path.relative(rootDir, plugin.parentDir)) ||\n null\n if (validationErrors.length > 0) {\n reporter.error({\n id: `11331`,\n context: {\n configDir,\n validationErrors,\n pluginName: plugin.resolve,\n },\n })\n errors++\n }\n\n if (validationWarnings.length > 0) {\n reporter.warn(\n stripIndent(`\n Warning: there are unknown plugin options for \"${\n plugin.resolve\n }\"${\n configDir ? `, configured by ${configDir}` : ``\n }: ${validationWarnings\n .map(error => error.path.join(`.`))\n .join(`, `)}\n Please open an issue at ghub.io/${\n plugin.resolve\n } if you believe this option is valid.\n `)\n )\n trackCli(`UNKNOWN_PLUGIN_OPTION`, {\n name: plugin.resolve,\n valueString: validationWarnings\n .map(error => error.path.join(`.`))\n .join(`, `),\n })\n // We do not increment errors++ here as we do not want to process.exit if there are only warnings\n }\n\n return plugin\n }\n\n throw error\n }\n\n return plugin\n })\n )\n return { errors, plugins: newPlugins }\n}\n\nexport async function validateConfigPluginsOptions(\n config: ISiteConfig = {},\n rootDir: string | null\n): Promise<void> {\n if (!config.plugins) return\n\n const { errors, plugins } = await validatePluginsOptions(\n config.plugins,\n rootDir\n )\n\n config.plugins = plugins\n\n if (errors > 0) {\n process.exit(1)\n }\n}\n\n/**\n * Identify which APIs each plugin exports\n */\nexport function collatePluginAPIs({\n currentAPIs,\n flattenedPlugins,\n}: {\n currentAPIs: ICurrentAPIs\n flattenedPlugins: Array<IPluginInfo & Partial<IFlattenedPlugin>>\n}): { flattenedPlugins: Array<IFlattenedPlugin>; badExports: IEntryMap } {\n // Get a list of bad exports\n const badExports: IEntryMap = {\n node: [],\n browser: [],\n ssr: [],\n }\n\n flattenedPlugins.forEach(plugin => {\n plugin.nodeAPIs = []\n plugin.browserAPIs = []\n plugin.ssrAPIs = []\n\n // Discover which APIs this plugin implements and store an array against\n // the plugin node itself *and* in an API to plugins map for faster lookups\n // later.\n const pluginNodeExports = resolveModuleExports(\n `${plugin.resolve}/gatsby-node`,\n {\n mode: `require`,\n }\n )\n const pluginBrowserExports = resolveModuleExports(\n `${plugin.resolve}/gatsby-browser`\n )\n const pluginSSRExports = resolveModuleExports(\n `${plugin.resolve}/gatsby-ssr`\n )\n\n if (pluginNodeExports.length > 0) {\n plugin.nodeAPIs = _.intersection(pluginNodeExports, currentAPIs.node)\n badExports.node = badExports.node.concat(\n getBadExports(plugin, pluginNodeExports, currentAPIs.node)\n ) // Collate any bad exports\n }\n\n if (pluginBrowserExports.length > 0) {\n plugin.browserAPIs = _.intersection(\n pluginBrowserExports,\n currentAPIs.browser\n )\n badExports.browser = badExports.browser.concat(\n getBadExports(plugin, pluginBrowserExports, currentAPIs.browser)\n ) // Collate any bad exports\n }\n\n if (pluginSSRExports.length > 0) {\n plugin.ssrAPIs = _.intersection(pluginSSRExports, currentAPIs.ssr)\n badExports.ssr = badExports.ssr.concat(\n getBadExports(plugin, pluginSSRExports, currentAPIs.ssr)\n ) // Collate any bad exports\n }\n })\n\n return {\n flattenedPlugins: flattenedPlugins as Array<IFlattenedPlugin>,\n badExports,\n }\n}\n\nexport const handleMultipleReplaceRenderers = ({\n flattenedPlugins,\n}: {\n flattenedPlugins: Array<IFlattenedPlugin>\n}): Array<IFlattenedPlugin> => {\n // multiple replaceRenderers may cause problems at build time\n const rendererPlugins = flattenedPlugins\n .filter(plugin => plugin.ssrAPIs.includes(`replaceRenderer`))\n .map(plugin => plugin.name)\n if (rendererPlugins.length > 1) {\n if (rendererPlugins.includes(`default-site-plugin`)) {\n reporter.warn(`replaceRenderer API found in these plugins:`)\n reporter.warn(rendererPlugins.join(`, `))\n reporter.warn(\n `This might be an error, see: https://www.gatsbyjs.org/docs/debugging-replace-renderer-api/`\n )\n } else {\n console.log(``)\n reporter.error(\n `Gatsby's replaceRenderer API is implemented by multiple plugins:`\n )\n reporter.error(rendererPlugins.join(`, `))\n reporter.error(`This will break your build`)\n reporter.error(\n `See: https://www.gatsbyjs.org/docs/debugging-replace-renderer-api/`\n )\n if (process.env.NODE_ENV === `production`) process.exit(1)\n }\n\n // Now update plugin list so only final replaceRenderer will run\n const ignorable = rendererPlugins.slice(0, -1)\n\n // For each plugin in ignorable, set a skipSSR flag to true\n // This prevents apiRunnerSSR() from attempting to run it later\n const messages: Array<string> = []\n flattenedPlugins.forEach((fp, i) => {\n if (ignorable.includes(fp.name)) {\n messages.push(\n `Duplicate replaceRenderer found, skipping gatsby-ssr.js for plugin: ${fp.name}`\n )\n flattenedPlugins[i].skipSSR = true\n }\n })\n if (messages.length > 0) {\n console.log(``)\n messages.forEach(m => reporter.warn(m))\n console.log(``)\n }\n }\n\n return flattenedPlugins\n}\n\nexport function warnOnIncompatiblePeerDependency(\n name: string,\n packageJSON: PackageJson\n): void {\n // Note: In the future the peer dependency should be enforced for all plugins.\n const gatsbyPeerDependency = _.get(packageJSON, `peerDependencies.gatsby`)\n if (\n gatsbyPeerDependency &&\n !semver.satisfies(gatsbyVersion, gatsbyPeerDependency, {\n includePrerelease: true,\n })\n ) {\n reporter.warn(\n `Plugin ${name} is not compatible with your gatsby version ${gatsbyVersion} - It requires gatsby@${gatsbyPeerDependency}`\n )\n }\n}\n"],"file":"validate.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const preferDefault: (m: any) => any;
|
|
1
|
+
export declare const preferDefault: (m: any) => any;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const writeRedirects: () => Promise<void>;
|
|
2
|
-
export declare const startRedirectListener: () => void;
|
|
1
|
+
export declare const writeRedirects: () => Promise<void>;
|
|
2
|
+
export declare const startRedirectListener: () => void;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { IGatsbyState, IRemoveStaleJobV2Action, ICreateJobV2FromInternalAction } from "../redux/types";
|
|
2
|
-
export declare const removeStaleJobs: (jobs: IGatsbyState["jobsV2"]) => Array<IRemoveStaleJobV2Action | ICreateJobV2FromInternalAction>;
|
|
1
|
+
import { IGatsbyState, IRemoveStaleJobV2Action, ICreateJobV2FromInternalAction } from "../redux/types";
|
|
2
|
+
export declare const removeStaleJobs: (jobs: IGatsbyState["jobsV2"]) => Array<IRemoveStaleJobV2Action | ICreateJobV2FromInternalAction>;
|