@prismicio/manager 0.0.1
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/dist/_node_modules/@amplitude/analytics-core/_node_modules/tslib/tslib.es6.js +168 -0
- package/dist/_node_modules/@amplitude/analytics-core/_node_modules/tslib/tslib.es6.js.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/config.js +91 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/config.js.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/constants.js +17 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/constants.js.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/core-client.js +187 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/core-client.js.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/identify.js +90 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/identify.js.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/logger.js +64 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/logger.js.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/messages.js +17 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/messages.js.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/plugins/destination.js +323 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/plugins/destination.js.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/revenue.js +55 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/revenue.js.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/timeline.js +245 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/timeline.js.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/transports/base.js +103 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/transports/base.js.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/chunk.js +15 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/chunk.js.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/debug.js +119 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/debug.js.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/event-builder.js +34 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/event-builder.js.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/result-builder.js +14 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/result-builder.js.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/return-wrapper.js +9 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/return-wrapper.js.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/uuid.js +25 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/uuid.js.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/valid-properties.js +56 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/valid-properties.js.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-node/_node_modules/tslib/tslib.es6.js +134 -0
- package/dist/_node_modules/@amplitude/analytics-node/_node_modules/tslib/tslib.es6.js.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-node/lib/esm/config.js +21 -0
- package/dist/_node_modules/@amplitude/analytics-node/lib/esm/config.js.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-node/lib/esm/index.js +24 -0
- package/dist/_node_modules/@amplitude/analytics-node/lib/esm/index.js.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-node/lib/esm/node-client.js +81 -0
- package/dist/_node_modules/@amplitude/analytics-node/lib/esm/node-client.js.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-node/lib/esm/plugins/context.js +37 -0
- package/dist/_node_modules/@amplitude/analytics-node/lib/esm/plugins/context.js.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-node/lib/esm/transports/http.js +67 -0
- package/dist/_node_modules/@amplitude/analytics-node/lib/esm/transports/http.js.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-node/lib/esm/version.js +5 -0
- package/dist/_node_modules/@amplitude/analytics-node/lib/esm/version.js.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-types/lib/esm/event.js +33 -0
- package/dist/_node_modules/@amplitude/analytics-types/lib/esm/event.js.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-types/lib/esm/index.js +17 -0
- package/dist/_node_modules/@amplitude/analytics-types/lib/esm/index.js.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-types/lib/esm/logger.js +12 -0
- package/dist/_node_modules/@amplitude/analytics-types/lib/esm/logger.js.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-types/lib/esm/plugin.js +10 -0
- package/dist/_node_modules/@amplitude/analytics-types/lib/esm/plugin.js.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-types/lib/esm/server-zone.js +10 -0
- package/dist/_node_modules/@amplitude/analytics-types/lib/esm/server-zone.js.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-types/lib/esm/status.js +16 -0
- package/dist/_node_modules/@amplitude/analytics-types/lib/esm/status.js.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-types/lib/esm/transport.js +10 -0
- package/dist/_node_modules/@amplitude/analytics-types/lib/esm/transport.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-core/dist/experiment-core.esm.js +1234 -0
- package/dist/_node_modules/@amplitude/experiment-core/dist/experiment-core.esm.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/gen/version.js +14 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/gen/version.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment-filter.js +34 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment-filter.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment-service.js +98 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment-service.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment.js +32 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/cookie.js +90 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/cookie.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/factory.js +46 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/factory.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/index.js +66 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/index.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/cache.js +93 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/cache.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/client.js +278 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/client.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/cohort/cohort-api.js +89 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/cohort/cohort-api.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/cohort/fetcher.js +114 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/cohort/fetcher.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/cohort/poller.js +115 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/cohort/poller.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/cohort/storage.js +46 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/cohort/storage.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/fetcher.js +86 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/fetcher.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/poller.js +122 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/poller.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/stream-flag-api.js +195 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/stream-flag-api.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/streamer.js +149 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/streamer.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/updater.js +107 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/updater.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/remote/client.js +168 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/remote/client.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/transport/http.js +114 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/transport/http.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/transport/stream.js +164 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/transport/stream.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/types/cohort.js +14 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/types/cohort.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/types/config.js +75 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/types/config.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/types/loglevel.js +23 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/types/loglevel.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/backoff.js +73 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/backoff.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/cache.js +99 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/cache.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/cohort.js +85 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/cohort.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/config.js +47 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/config.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/hash.js +25 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/hash.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/logger.js +68 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/logger.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/threading.js +97 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/threading.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/time.js +20 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/time.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/user.js +57 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/user.js.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/variant.js +47 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/variant.js.map +1 -0
- package/dist/_node_modules/common-tags/es/TemplateTag/TemplateTag.js +133 -0
- package/dist/_node_modules/common-tags/es/TemplateTag/TemplateTag.js.map +1 -0
- package/dist/_node_modules/common-tags/es/commaLists/commaLists.js +6 -0
- package/dist/_node_modules/common-tags/es/commaLists/commaLists.js.map +1 -0
- package/dist/_node_modules/common-tags/es/commaListsAnd/commaListsAnd.js +6 -0
- package/dist/_node_modules/common-tags/es/commaListsAnd/commaListsAnd.js.map +1 -0
- package/dist/_node_modules/common-tags/es/commaListsOr/commaListsOr.js +6 -0
- package/dist/_node_modules/common-tags/es/commaListsOr/commaListsOr.js.map +1 -0
- package/dist/_node_modules/common-tags/es/html/html.js +8 -0
- package/dist/_node_modules/common-tags/es/html/html.js.map +1 -0
- package/dist/_node_modules/common-tags/es/inlineArrayTransformer/inlineArrayTransformer.js +33 -0
- package/dist/_node_modules/common-tags/es/inlineArrayTransformer/inlineArrayTransformer.js.map +1 -0
- package/dist/_node_modules/common-tags/es/inlineLists/inlineLists.js +6 -0
- package/dist/_node_modules/common-tags/es/inlineLists/inlineLists.js.map +1 -0
- package/dist/_node_modules/common-tags/es/oneLine/oneLine.js +5 -0
- package/dist/_node_modules/common-tags/es/oneLine/oneLine.js.map +1 -0
- package/dist/_node_modules/common-tags/es/oneLineCommaLists/oneLineCommaLists.js +6 -0
- package/dist/_node_modules/common-tags/es/oneLineCommaLists/oneLineCommaLists.js.map +1 -0
- package/dist/_node_modules/common-tags/es/oneLineCommaListsAnd/oneLineCommaListsAnd.js +6 -0
- package/dist/_node_modules/common-tags/es/oneLineCommaListsAnd/oneLineCommaListsAnd.js.map +1 -0
- package/dist/_node_modules/common-tags/es/oneLineCommaListsOr/oneLineCommaListsOr.js +6 -0
- package/dist/_node_modules/common-tags/es/oneLineCommaListsOr/oneLineCommaListsOr.js.map +1 -0
- package/dist/_node_modules/common-tags/es/oneLineInlineLists/oneLineInlineLists.js +6 -0
- package/dist/_node_modules/common-tags/es/oneLineInlineLists/oneLineInlineLists.js.map +1 -0
- package/dist/_node_modules/common-tags/es/oneLineTrim/oneLineTrim.js +5 -0
- package/dist/_node_modules/common-tags/es/oneLineTrim/oneLineTrim.js.map +1 -0
- package/dist/_node_modules/common-tags/es/removeNonPrintingValuesTransformer/removeNonPrintingValuesTransformer.js +20 -0
- package/dist/_node_modules/common-tags/es/removeNonPrintingValuesTransformer/removeNonPrintingValuesTransformer.js.map +1 -0
- package/dist/_node_modules/common-tags/es/replaceResultTransformer/replaceResultTransformer.js +14 -0
- package/dist/_node_modules/common-tags/es/replaceResultTransformer/replaceResultTransformer.js.map +1 -0
- package/dist/_node_modules/common-tags/es/replaceSubstitutionTransformer/replaceSubstitutionTransformer.js +18 -0
- package/dist/_node_modules/common-tags/es/replaceSubstitutionTransformer/replaceSubstitutionTransformer.js.map +1 -0
- package/dist/_node_modules/common-tags/es/safeHtml/safeHtml.js +8 -0
- package/dist/_node_modules/common-tags/es/safeHtml/safeHtml.js.map +1 -0
- package/dist/_node_modules/common-tags/es/splitStringTransformer/splitStringTransformer.js +16 -0
- package/dist/_node_modules/common-tags/es/splitStringTransformer/splitStringTransformer.js.map +1 -0
- package/dist/_node_modules/common-tags/es/stripIndent/stripIndent.js +8 -0
- package/dist/_node_modules/common-tags/es/stripIndent/stripIndent.js.map +1 -0
- package/dist/_node_modules/common-tags/es/stripIndentTransformer/stripIndentTransformer.js +36 -0
- package/dist/_node_modules/common-tags/es/stripIndentTransformer/stripIndentTransformer.js.map +1 -0
- package/dist/_node_modules/common-tags/es/stripIndents/stripIndents.js +5 -0
- package/dist/_node_modules/common-tags/es/stripIndents/stripIndents.js.map +1 -0
- package/dist/_node_modules/common-tags/es/trimResultTransformer/trimResultTransformer.js +22 -0
- package/dist/_node_modules/common-tags/es/trimResultTransformer/trimResultTransformer.js.map +1 -0
- package/dist/_node_modules/data-uri-to-buffer/dist/index.js +41 -0
- package/dist/_node_modules/data-uri-to-buffer/dist/index.js.map +1 -0
- package/dist/_node_modules/eventsource/lib/eventsource.js +384 -0
- package/dist/_node_modules/eventsource/lib/eventsource.js.map +1 -0
- package/dist/_node_modules/fetch-blob/file.js +41 -0
- package/dist/_node_modules/fetch-blob/file.js.map +1 -0
- package/dist/_node_modules/fetch-blob/from.js +9 -0
- package/dist/_node_modules/fetch-blob/from.js.map +1 -0
- package/dist/_node_modules/fetch-blob/index.js +201 -0
- package/dist/_node_modules/fetch-blob/index.js.map +1 -0
- package/dist/_node_modules/fetch-blob/streams.js +52 -0
- package/dist/_node_modules/fetch-blob/streams.js.map +1 -0
- package/dist/_node_modules/formdata-polyfill/esm.min.js +90 -0
- package/dist/_node_modules/formdata-polyfill/esm.min.js.map +1 -0
- package/dist/_node_modules/get-port/index.js +115 -0
- package/dist/_node_modules/get-port/index.js.map +1 -0
- package/dist/_node_modules/node-domexception/index.js +20 -0
- package/dist/_node_modules/node-domexception/index.js.map +1 -0
- package/dist/_node_modules/node-fetch/src/body.js +259 -0
- package/dist/_node_modules/node-fetch/src/body.js.map +1 -0
- package/dist/_node_modules/node-fetch/src/errors/abort-error.js +10 -0
- package/dist/_node_modules/node-fetch/src/errors/abort-error.js.map +1 -0
- package/dist/_node_modules/node-fetch/src/errors/base.js +17 -0
- package/dist/_node_modules/node-fetch/src/errors/base.js.map +1 -0
- package/dist/_node_modules/node-fetch/src/errors/fetch-error.js +19 -0
- package/dist/_node_modules/node-fetch/src/errors/fetch-error.js.map +1 -0
- package/dist/_node_modules/node-fetch/src/headers.js +189 -0
- package/dist/_node_modules/node-fetch/src/headers.js.map +1 -0
- package/dist/_node_modules/node-fetch/src/index.js +290 -0
- package/dist/_node_modules/node-fetch/src/index.js.map +1 -0
- package/dist/_node_modules/node-fetch/src/request.js +203 -0
- package/dist/_node_modules/node-fetch/src/request.js.map +1 -0
- package/dist/_node_modules/node-fetch/src/response.js +123 -0
- package/dist/_node_modules/node-fetch/src/response.js.map +1 -0
- package/dist/_node_modules/node-fetch/src/utils/get-search.js +12 -0
- package/dist/_node_modules/node-fetch/src/utils/get-search.js.map +1 -0
- package/dist/_node_modules/node-fetch/src/utils/is-redirect.js +8 -0
- package/dist/_node_modules/node-fetch/src/utils/is-redirect.js.map +1 -0
- package/dist/_node_modules/node-fetch/src/utils/is.js +28 -0
- package/dist/_node_modules/node-fetch/src/utils/is.js.map +1 -0
- package/dist/_node_modules/node-fetch/src/utils/multipart-parser.js +356 -0
- package/dist/_node_modules/node-fetch/src/utils/multipart-parser.js.map +1 -0
- package/dist/_node_modules/node-fetch/src/utils/referrer.js +149 -0
- package/dist/_node_modules/node-fetch/src/utils/referrer.js.map +1 -0
- package/dist/_node_modules/web-streams-polyfill/dist/ponyfill.es2018.js +3818 -0
- package/dist/_node_modules/web-streams-polyfill/dist/ponyfill.es2018.js.map +1 -0
- package/dist/_virtual/_commonjsHelpers.js +35 -0
- package/dist/_virtual/_commonjsHelpers.js.map +1 -0
- package/dist/_virtual/assignment-filter.js +5 -0
- package/dist/_virtual/assignment-filter.js.map +1 -0
- package/dist/_virtual/assignment-service.js +5 -0
- package/dist/_virtual/assignment-service.js.map +1 -0
- package/dist/_virtual/assignment.js +5 -0
- package/dist/_virtual/assignment.js.map +1 -0
- package/dist/_virtual/backoff.js +5 -0
- package/dist/_virtual/backoff.js.map +1 -0
- package/dist/_virtual/cache.js +5 -0
- package/dist/_virtual/cache.js.map +1 -0
- package/dist/_virtual/cache2.js +5 -0
- package/dist/_virtual/cache2.js.map +1 -0
- package/dist/_virtual/client.js +5 -0
- package/dist/_virtual/client.js.map +1 -0
- package/dist/_virtual/client2.js +5 -0
- package/dist/_virtual/client2.js.map +1 -0
- package/dist/_virtual/cohort-api.js +5 -0
- package/dist/_virtual/cohort-api.js.map +1 -0
- package/dist/_virtual/cohort.js +5 -0
- package/dist/_virtual/cohort.js.map +1 -0
- package/dist/_virtual/cohort2.js +5 -0
- package/dist/_virtual/cohort2.js.map +1 -0
- package/dist/_virtual/config.js +5 -0
- package/dist/_virtual/config.js.map +1 -0
- package/dist/_virtual/config2.js +5 -0
- package/dist/_virtual/config2.js.map +1 -0
- package/dist/_virtual/cookie.js +5 -0
- package/dist/_virtual/cookie.js.map +1 -0
- package/dist/_virtual/experiment-core.esm.js +7 -0
- package/dist/_virtual/experiment-core.esm.js.map +1 -0
- package/dist/_virtual/factory.js +5 -0
- package/dist/_virtual/factory.js.map +1 -0
- package/dist/_virtual/fetcher.js +5 -0
- package/dist/_virtual/fetcher.js.map +1 -0
- package/dist/_virtual/fetcher2.js +5 -0
- package/dist/_virtual/fetcher2.js.map +1 -0
- package/dist/_virtual/hash.js +5 -0
- package/dist/_virtual/hash.js.map +1 -0
- package/dist/_virtual/http.js +5 -0
- package/dist/_virtual/http.js.map +1 -0
- package/dist/_virtual/index.js +6 -0
- package/dist/_virtual/index.js.map +1 -0
- package/dist/_virtual/index2.js +5 -0
- package/dist/_virtual/index2.js.map +1 -0
- package/dist/_virtual/index3.js +3 -0
- package/dist/_virtual/index3.js.map +1 -0
- package/dist/_virtual/index4.js +7 -0
- package/dist/_virtual/index4.js.map +1 -0
- package/dist/_virtual/logger.js +5 -0
- package/dist/_virtual/logger.js.map +1 -0
- package/dist/_virtual/loglevel.js +5 -0
- package/dist/_virtual/loglevel.js.map +1 -0
- package/dist/_virtual/poller.js +5 -0
- package/dist/_virtual/poller.js.map +1 -0
- package/dist/_virtual/poller2.js +5 -0
- package/dist/_virtual/poller2.js.map +1 -0
- package/dist/_virtual/ponyfill.es2018.js +5 -0
- package/dist/_virtual/ponyfill.es2018.js.map +1 -0
- package/dist/_virtual/storage.js +5 -0
- package/dist/_virtual/storage.js.map +1 -0
- package/dist/_virtual/stream-flag-api.js +5 -0
- package/dist/_virtual/stream-flag-api.js.map +1 -0
- package/dist/_virtual/stream.js +5 -0
- package/dist/_virtual/stream.js.map +1 -0
- package/dist/_virtual/streamer.js +5 -0
- package/dist/_virtual/streamer.js.map +1 -0
- package/dist/_virtual/streams.js +3 -0
- package/dist/_virtual/streams.js.map +1 -0
- package/dist/_virtual/streams2.js +5 -0
- package/dist/_virtual/streams2.js.map +1 -0
- package/dist/_virtual/threading.js +5 -0
- package/dist/_virtual/threading.js.map +1 -0
- package/dist/_virtual/time.js +5 -0
- package/dist/_virtual/time.js.map +1 -0
- package/dist/_virtual/updater.js +5 -0
- package/dist/_virtual/updater.js.map +1 -0
- package/dist/_virtual/user.js +5 -0
- package/dist/_virtual/user.js.map +1 -0
- package/dist/_virtual/variant.js +5 -0
- package/dist/_virtual/variant.js.map +1 -0
- package/dist/_virtual/version.js +5 -0
- package/dist/_virtual/version.js.map +1 -0
- package/dist/auth/PrismicAuthManager.d.ts +47 -0
- package/dist/auth/PrismicAuthManager.js +214 -0
- package/dist/auth/PrismicAuthManager.js.map +1 -0
- package/dist/auth/createPrismicAuthManager.d.ts +4 -0
- package/dist/auth/createPrismicAuthManager.js +8 -0
- package/dist/auth/createPrismicAuthManager.js.map +1 -0
- package/dist/auth/createPrismicAuthManagerMiddleware.d.ts +13 -0
- package/dist/auth/createPrismicAuthManagerMiddleware.js +39 -0
- package/dist/auth/createPrismicAuthManagerMiddleware.js.map +1 -0
- package/dist/constants/API_ENDPOINTS.d.ts +9 -0
- package/dist/constants/API_ENDPOINTS.js +73 -0
- package/dist/constants/API_ENDPOINTS.js.map +1 -0
- package/dist/constants/API_TOKENS.d.ts +6 -0
- package/dist/constants/API_TOKENS.js +27 -0
- package/dist/constants/API_TOKENS.js.map +1 -0
- package/dist/constants/APPLICATION_MODE.d.ts +8 -0
- package/dist/constants/APPLICATION_MODE.js +12 -0
- package/dist/constants/APPLICATION_MODE.js.map +1 -0
- package/dist/constants/PRISMIC_CLI_NPM_PACKAGE_NAME.d.ts +1 -0
- package/dist/constants/PRISMIC_CLI_NPM_PACKAGE_NAME.js +5 -0
- package/dist/constants/PRISMIC_CLI_NPM_PACKAGE_NAME.js.map +1 -0
- package/dist/constants/PRISMIC_CLI_USER_AGENT.d.ts +1 -0
- package/dist/constants/PRISMIC_CLI_USER_AGENT.js +5 -0
- package/dist/constants/PRISMIC_CLI_USER_AGENT.js.map +1 -0
- package/dist/constants/PRISMIC_CONFIG_FILENAME.d.ts +1 -0
- package/dist/constants/PRISMIC_CONFIG_FILENAME.js +5 -0
- package/dist/constants/PRISMIC_CONFIG_FILENAME.js.map +1 -0
- package/dist/constants/SLICEMACHINE_CONFIG_FILENAME.d.ts +1 -0
- package/dist/constants/SLICEMACHINE_CONFIG_FILENAME.js +5 -0
- package/dist/constants/SLICEMACHINE_CONFIG_FILENAME.js.map +1 -0
- package/dist/constants/TS_CONFIG_FILENAME.d.ts +1 -0
- package/dist/constants/TS_CONFIG_FILENAME.js +5 -0
- package/dist/constants/TS_CONFIG_FILENAME.js.map +1 -0
- package/dist/errors.d.ts +43 -0
- package/dist/errors.js +20 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/DecodeError.d.ts +13 -0
- package/dist/lib/DecodeError.js +21 -0
- package/dist/lib/DecodeError.js.map +1 -0
- package/dist/lib/assertPluginsInitialized.d.ts +2 -0
- package/dist/lib/assertPluginsInitialized.js +9 -0
- package/dist/lib/assertPluginsInitialized.js.map +1 -0
- package/dist/lib/castArray.d.ts +1 -0
- package/dist/lib/castArray.js +7 -0
- package/dist/lib/castArray.js.map +1 -0
- package/dist/lib/decode.d.ts +10 -0
- package/dist/lib/decode.js +14 -0
- package/dist/lib/decode.js.map +1 -0
- package/dist/lib/decodeHookResult.d.ts +7 -0
- package/dist/lib/decodeHookResult.js +21 -0
- package/dist/lib/decodeHookResult.js.map +1 -0
- package/dist/lib/decodePackageJSON.d.ts +12 -0
- package/dist/lib/decodePrismicConfig.d.ts +3 -0
- package/dist/lib/decodePrismicConfig.js +22 -0
- package/dist/lib/decodePrismicConfig.js.map +1 -0
- package/dist/lib/fetchNPMPackageVersions.d.ts +5 -0
- package/dist/lib/fetchNPMPackageVersions.js +24 -0
- package/dist/lib/fetchNPMPackageVersions.js.map +1 -0
- package/dist/lib/format.d.ts +12 -0
- package/dist/lib/format.js +30 -0
- package/dist/lib/format.js.map +1 -0
- package/dist/lib/installDependencies.d.ts +13 -0
- package/dist/lib/installDependencies.js +45 -0
- package/dist/lib/installDependencies.js.map +1 -0
- package/dist/lib/locateFileUpward.d.ts +10 -0
- package/dist/lib/locateFileUpward.js +29 -0
- package/dist/lib/locateFileUpward.js.map +1 -0
- package/dist/lib/prismicrc.d.ts +8 -0
- package/dist/lib/prismicrc.js +29 -0
- package/dist/lib/prismicrc.js.map +1 -0
- package/dist/lib/trailingSlash.d.ts +1 -0
- package/dist/lib/trailingSlash.js +7 -0
- package/dist/lib/trailingSlash.js.map +1 -0
- package/dist/lib/typesInternalSchemas.d.ts +12 -0
- package/dist/lib/typesInternalSchemas.js +29 -0
- package/dist/lib/typesInternalSchemas.js.map +1 -0
- package/dist/managers/BaseManager.d.ts +27 -0
- package/dist/managers/BaseManager.js +48 -0
- package/dist/managers/BaseManager.js.map +1 -0
- package/dist/managers/PrismicManager.d.ts +33 -0
- package/dist/managers/PrismicManager.js +60 -0
- package/dist/managers/PrismicManager.js.map +1 -0
- package/dist/managers/createPrismicManager.d.ts +4 -0
- package/dist/managers/createPrismicManager.js +8 -0
- package/dist/managers/createPrismicManager.js.map +1 -0
- package/dist/managers/customTypes/CustomTypesManager.d.ts +44 -0
- package/dist/managers/customTypes/CustomTypesManager.js +111 -0
- package/dist/managers/customTypes/CustomTypesManager.js.map +1 -0
- package/dist/managers/customTypes/types.d.ts +2 -0
- package/dist/managers/plugins/PluginsManager.d.ts +13 -0
- package/dist/managers/plugins/PluginsManager.js +30 -0
- package/dist/managers/plugins/PluginsManager.js.map +1 -0
- package/dist/managers/prismicRepository/PrismicRepositoryManager.d.ts +12 -0
- package/dist/managers/prismicRepository/PrismicRepositoryManager.js +79 -0
- package/dist/managers/prismicRepository/PrismicRepositoryManager.js.map +1 -0
- package/dist/managers/prismicRepository/types.d.ts +17 -0
- package/dist/managers/prismicRepository/types.js +24 -0
- package/dist/managers/prismicRepository/types.js.map +1 -0
- package/dist/managers/project/ProjectManager.d.ts +51 -0
- package/dist/managers/project/ProjectManager.js +208 -0
- package/dist/managers/project/ProjectManager.js.map +1 -0
- package/dist/managers/slices/SlicesManager.d.ts +61 -0
- package/dist/managers/slices/SlicesManager.js +169 -0
- package/dist/managers/slices/SlicesManager.js.map +1 -0
- package/dist/managers/telemetry/TelemetryManager.d.ts +23 -0
- package/dist/managers/telemetry/TelemetryManager.js +133 -0
- package/dist/managers/telemetry/TelemetryManager.js.map +1 -0
- package/dist/managers/telemetry/types.d.ts +35 -0
- package/dist/managers/telemetry/types.js +15 -0
- package/dist/managers/telemetry/types.js.map +1 -0
- package/dist/managers/user/UserManager.d.ts +22 -0
- package/dist/managers/user/UserManager.js +22 -0
- package/dist/managers/user/UserManager.js.map +1 -0
- package/dist/managers/versions/VersionsManager.d.ts +21 -0
- package/dist/managers/versions/VersionsManager.js +39 -0
- package/dist/managers/versions/VersionsManager.js.map +1 -0
- package/dist/types.d.ts +32 -0
- package/package.json +100 -0
- package/src/auth/PrismicAuthManager.ts +346 -0
- package/src/auth/createPrismicAuthManager.ts +11 -0
- package/src/auth/createPrismicAuthManagerMiddleware.ts +79 -0
- package/src/constants/API_ENDPOINTS.ts +106 -0
- package/src/constants/API_TOKENS.ts +29 -0
- package/src/constants/APPLICATION_MODE.ts +8 -0
- package/src/constants/PRISMIC_CLI_NPM_PACKAGE_NAME.ts +1 -0
- package/src/constants/PRISMIC_CLI_USER_AGENT.ts +1 -0
- package/src/constants/PRISMIC_CONFIG_FILENAME.ts +1 -0
- package/src/constants/SLICEMACHINE_CONFIG_FILENAME.ts +1 -0
- package/src/constants/TS_CONFIG_FILENAME.ts +1 -0
- package/src/errors.ts +109 -0
- package/src/index.ts +5 -0
- package/src/lib/DecodeError.ts +31 -0
- package/src/lib/assertPluginsInitialized.ts +11 -0
- package/src/lib/castArray.ts +3 -0
- package/src/lib/decode.ts +28 -0
- package/src/lib/decodeHookResult.ts +36 -0
- package/src/lib/decodePackageJSON.ts +18 -0
- package/src/lib/decodePrismicConfig.ts +26 -0
- package/src/lib/fetchNPMPackageVersions.ts +45 -0
- package/src/lib/format.ts +34 -0
- package/src/lib/installDependencies.ts +74 -0
- package/src/lib/locateFileUpward.ts +53 -0
- package/src/lib/prismicrc.ts +41 -0
- package/src/lib/trailingSlash.ts +5 -0
- package/src/lib/typesInternalSchemas.ts +42 -0
- package/src/managers/BaseManager.ts +74 -0
- package/src/managers/PrismicManager.ts +81 -0
- package/src/managers/createPrismicManager.ts +9 -0
- package/src/managers/customTypes/CustomTypesManager.ts +221 -0
- package/src/managers/customTypes/types.ts +3 -0
- package/src/managers/plugins/PluginsManager.ts +44 -0
- package/src/managers/prismicRepository/PrismicRepositoryManager.ts +120 -0
- package/src/managers/prismicRepository/types.ts +23 -0
- package/src/managers/project/ProjectManager.ts +354 -0
- package/src/managers/slices/SlicesManager.ts +308 -0
- package/src/managers/telemetry/TelemetryManager.ts +227 -0
- package/src/managers/telemetry/types.ts +62 -0
- package/src/managers/user/UserManager.ts +35 -0
- package/src/managers/versions/VersionsManager.ts +53 -0
- package/src/types.ts +41 -0
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import * as fs from "node:fs/promises";
|
|
3
|
+
import * as path from "node:path";
|
|
4
|
+
import { detect } from "@antfu/ni";
|
|
5
|
+
import { PRISMIC_CONFIG_FILENAME } from "../../constants/PRISMIC_CONFIG_FILENAME.js";
|
|
6
|
+
import { SLICEMACHINE_CONFIG_FILENAME } from "../../constants/SLICEMACHINE_CONFIG_FILENAME.js";
|
|
7
|
+
import { TS_CONFIG_FILENAME } from "../../constants/TS_CONFIG_FILENAME.js";
|
|
8
|
+
import { PrismicError, InternalError } from "../../errors.js";
|
|
9
|
+
import { assertPluginsInitialized } from "../../lib/assertPluginsInitialized.js";
|
|
10
|
+
import { decodePrismicConfig } from "../../lib/decodePrismicConfig.js";
|
|
11
|
+
import { format } from "../../lib/format.js";
|
|
12
|
+
import { installDependencies } from "../../lib/installDependencies.js";
|
|
13
|
+
import { locateFileUpward } from "../../lib/locateFileUpward.js";
|
|
14
|
+
import { BaseManager } from "../BaseManager.js";
|
|
15
|
+
class ProjectManager extends BaseManager {
|
|
16
|
+
_cachedRoot;
|
|
17
|
+
_cachedPrismicConfigPath;
|
|
18
|
+
_cachedPrismicConfig;
|
|
19
|
+
async getPrismicConfigPath(args) {
|
|
20
|
+
if (this._cachedPrismicConfigPath && !args?.ignoreCache) {
|
|
21
|
+
return this._cachedPrismicConfigPath;
|
|
22
|
+
}
|
|
23
|
+
try {
|
|
24
|
+
this._cachedPrismicConfigPath = await locateFileUpward(PRISMIC_CONFIG_FILENAME, { startDir: this.cwd });
|
|
25
|
+
} catch {
|
|
26
|
+
throw new Error(`Could not find a ${PRISMIC_CONFIG_FILENAME} file. Please create a config file at the root of your project.`);
|
|
27
|
+
}
|
|
28
|
+
return this._cachedPrismicConfigPath;
|
|
29
|
+
}
|
|
30
|
+
async getRoot(args) {
|
|
31
|
+
if (this._cachedRoot && !args?.ignoreCache) {
|
|
32
|
+
return this._cachedRoot;
|
|
33
|
+
}
|
|
34
|
+
const prismicConfigFilePath = await this.getPrismicConfigPath({
|
|
35
|
+
ignoreCache: args?.ignoreCache
|
|
36
|
+
});
|
|
37
|
+
this._cachedRoot = path.dirname(prismicConfigFilePath);
|
|
38
|
+
return this._cachedRoot;
|
|
39
|
+
}
|
|
40
|
+
async suggestRoot() {
|
|
41
|
+
const suggestedRootPackageJSON = await locateFileUpward("package.json", {
|
|
42
|
+
startDir: this.cwd
|
|
43
|
+
});
|
|
44
|
+
return path.dirname(suggestedRootPackageJSON);
|
|
45
|
+
}
|
|
46
|
+
async suggestPrismicConfigPath() {
|
|
47
|
+
const suggestedRoot = await this.suggestRoot();
|
|
48
|
+
return path.resolve(suggestedRoot, PRISMIC_CONFIG_FILENAME);
|
|
49
|
+
}
|
|
50
|
+
async checkIsTypeScript(args) {
|
|
51
|
+
const root = args?.rootOverride || await this.getRoot();
|
|
52
|
+
const rootTSConfigPath = path.resolve(root, TS_CONFIG_FILENAME);
|
|
53
|
+
return existsSync(rootTSConfigPath);
|
|
54
|
+
}
|
|
55
|
+
async getPrismicConfig() {
|
|
56
|
+
if (this._cachedPrismicConfig) {
|
|
57
|
+
return this._cachedPrismicConfig;
|
|
58
|
+
} else {
|
|
59
|
+
return await this.loadPrismicConfig();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
async writePrismicConfig(args) {
|
|
63
|
+
const configFilePath = args.path || await this.getPrismicConfigPath();
|
|
64
|
+
const config = await format(JSON.stringify(args.config, null, 2), configFilePath);
|
|
65
|
+
await fs.writeFile(configFilePath, config, "utf-8");
|
|
66
|
+
delete this._cachedPrismicConfig;
|
|
67
|
+
}
|
|
68
|
+
async loadPrismicConfig() {
|
|
69
|
+
const configFilePath = await this.getPrismicConfigPath();
|
|
70
|
+
let rawConfig;
|
|
71
|
+
try {
|
|
72
|
+
const contents = await fs.readFile(configFilePath, "utf8");
|
|
73
|
+
rawConfig = JSON.parse(contents);
|
|
74
|
+
} catch (error2) {
|
|
75
|
+
if (error2 instanceof SyntaxError) {
|
|
76
|
+
throw new PrismicError(`Could not parse config file at ${configFilePath}.
|
|
77
|
+
|
|
78
|
+
Error Message: ${error2.message}`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
if (!rawConfig) {
|
|
82
|
+
throw new Error("No Prismic config found, please initialize your project with Prismic first.");
|
|
83
|
+
}
|
|
84
|
+
const { value: prismicConfig, error } = decodePrismicConfig(rawConfig);
|
|
85
|
+
if (error) {
|
|
86
|
+
throw new Error(`Invalid Prismic config. ${error.errors.join(", ")}`, {
|
|
87
|
+
cause: { rawConfig }
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
this._cachedPrismicConfig = prismicConfig;
|
|
91
|
+
return prismicConfig;
|
|
92
|
+
}
|
|
93
|
+
async getRepositoryName() {
|
|
94
|
+
const prismicConfig = await this.getPrismicConfig();
|
|
95
|
+
return prismicConfig.repositoryName;
|
|
96
|
+
}
|
|
97
|
+
async checkLegacyConfigExists() {
|
|
98
|
+
try {
|
|
99
|
+
await locateFileUpward(SLICEMACHINE_CONFIG_FILENAME, {
|
|
100
|
+
startDir: this.cwd
|
|
101
|
+
});
|
|
102
|
+
return true;
|
|
103
|
+
} catch {
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
async migrateLegacyConfig() {
|
|
108
|
+
const suggestedRoot = await this.suggestRoot();
|
|
109
|
+
const legacyConfigPath = path.resolve(suggestedRoot, SLICEMACHINE_CONFIG_FILENAME);
|
|
110
|
+
const newConfigPath = path.resolve(suggestedRoot, PRISMIC_CONFIG_FILENAME);
|
|
111
|
+
try {
|
|
112
|
+
await fs.access(legacyConfigPath);
|
|
113
|
+
} catch {
|
|
114
|
+
throw new Error(`Legacy config file ${SLICEMACHINE_CONFIG_FILENAME} not found.`);
|
|
115
|
+
}
|
|
116
|
+
try {
|
|
117
|
+
await fs.access(newConfigPath);
|
|
118
|
+
throw new Error(`Cannot migrate: ${PRISMIC_CONFIG_FILENAME} already exists.`);
|
|
119
|
+
} catch {
|
|
120
|
+
}
|
|
121
|
+
const legacyConfigContent = await fs.readFile(legacyConfigPath, "utf8");
|
|
122
|
+
let rawConfig;
|
|
123
|
+
try {
|
|
124
|
+
rawConfig = JSON.parse(legacyConfigContent);
|
|
125
|
+
} catch (error2) {
|
|
126
|
+
if (error2 instanceof SyntaxError) {
|
|
127
|
+
throw new PrismicError(`Could not parse legacy config file at ${legacyConfigPath}.
|
|
128
|
+
|
|
129
|
+
Error Message: ${error2.message}`);
|
|
130
|
+
}
|
|
131
|
+
throw error2;
|
|
132
|
+
}
|
|
133
|
+
const { value: prismicConfig, error } = decodePrismicConfig(rawConfig);
|
|
134
|
+
if (error) {
|
|
135
|
+
throw new Error(`Invalid legacy Prismic config. ${error.errors.join(", ")}`, {
|
|
136
|
+
cause: { rawConfig }
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
const formattedConfig = await format(JSON.stringify(prismicConfig, null, 2), newConfigPath);
|
|
140
|
+
await fs.writeFile(newConfigPath, formattedConfig, "utf-8");
|
|
141
|
+
await fs.unlink(legacyConfigPath);
|
|
142
|
+
delete this._cachedPrismicConfig;
|
|
143
|
+
delete this._cachedPrismicConfigPath;
|
|
144
|
+
delete this._cachedRoot;
|
|
145
|
+
}
|
|
146
|
+
async initProject(args) {
|
|
147
|
+
assertPluginsInitialized(this.pluginSystemRunner);
|
|
148
|
+
const log = args?.log || console.log.bind(this);
|
|
149
|
+
const { errors } = await this.pluginSystemRunner.callHook("project:init", {
|
|
150
|
+
log,
|
|
151
|
+
installDependencies: async (args2) => {
|
|
152
|
+
const { execaProcess } = await this.installDependencies({
|
|
153
|
+
dependencies: args2.dependencies,
|
|
154
|
+
dev: args2.dev,
|
|
155
|
+
log
|
|
156
|
+
});
|
|
157
|
+
await execaProcess;
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
if (errors.length > 0) {
|
|
161
|
+
throw new PrismicError(`Failed to initialize project: ${errors.join(", ")}`);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
async detectPackageManager(args) {
|
|
165
|
+
const projectRoot = args?.root || await this.getRoot();
|
|
166
|
+
const packageManager = await detect({
|
|
167
|
+
autoInstall: true,
|
|
168
|
+
cwd: projectRoot
|
|
169
|
+
});
|
|
170
|
+
return packageManager || "npm";
|
|
171
|
+
}
|
|
172
|
+
async installDependencies(args) {
|
|
173
|
+
const packageManager = args.packageManager || await this.detectPackageManager();
|
|
174
|
+
const log = args.log || console.log.bind(this);
|
|
175
|
+
const wrappedLogger = (data) => {
|
|
176
|
+
if (data instanceof Buffer) {
|
|
177
|
+
log(data.toString());
|
|
178
|
+
} else if (typeof data === "string") {
|
|
179
|
+
log(data);
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
try {
|
|
183
|
+
const { execaProcess } = await installDependencies({
|
|
184
|
+
packageManager,
|
|
185
|
+
dependencies: args.dependencies,
|
|
186
|
+
dev: args.dev
|
|
187
|
+
});
|
|
188
|
+
if (process.stdout.isTTY || process.env.NODE_ENV === "test") {
|
|
189
|
+
execaProcess.stdout?.on("data", wrappedLogger);
|
|
190
|
+
}
|
|
191
|
+
execaProcess.stderr?.on("data", wrappedLogger);
|
|
192
|
+
return {
|
|
193
|
+
execaProcess
|
|
194
|
+
};
|
|
195
|
+
} catch (error) {
|
|
196
|
+
if (error instanceof Error && "shortMessage" in error && "stderr" in error) {
|
|
197
|
+
throw new InternalError("Package installation failed", {
|
|
198
|
+
cause: error
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
throw error;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
export {
|
|
206
|
+
ProjectManager
|
|
207
|
+
};
|
|
208
|
+
//# sourceMappingURL=ProjectManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectManager.js","sources":["../../../../src/managers/project/ProjectManager.ts"],"sourcesContent":["import { existsSync } from \"node:fs\";\nimport * as fs from \"node:fs/promises\";\nimport * as path from \"node:path\";\n\nimport { detect as niDetect } from \"@antfu/ni\";\nimport { type ResultPromise } from \"execa\";\n\nimport { PRISMIC_CONFIG_FILENAME } from \"../../constants/PRISMIC_CONFIG_FILENAME\";\nimport { SLICEMACHINE_CONFIG_FILENAME } from \"../../constants/SLICEMACHINE_CONFIG_FILENAME\";\nimport { TS_CONFIG_FILENAME } from \"../../constants/TS_CONFIG_FILENAME\";\nimport { PrismicError, InternalError } from \"../../errors\";\nimport { assertPluginsInitialized } from \"../../lib/assertPluginsInitialized\";\nimport { decodePrismicConfig } from \"../../lib/decodePrismicConfig\";\nimport { format } from \"../../lib/format\";\nimport { installDependencies } from \"../../lib/installDependencies\";\nimport { locateFileUpward } from \"../../lib/locateFileUpward\";\nimport { PackageManager, PrismicConfig } from \"../../types\";\nimport { BaseManager } from \"../BaseManager\";\n\ntype ProjectManagerGetPrismicConfigPathArgs = {\n\tignoreCache?: boolean;\n};\n\ntype ProjectManagerGetRootArgs = {\n\tignoreCache?: boolean;\n};\n\ntype ProjectManagerCheckIsTypeScriptArgs = {\n\trootOverride?: string;\n};\n\ntype ProjectManagerWritePrismicConfigArgs = {\n\tconfig: PrismicConfig;\n\tpath?: string;\n};\n\ntype ProjectManagerInitProjectArgs = {\n\tlog?: (message: string) => void;\n};\n\ntype ProjectManagerDetectPackageManager = {\n\troot?: string;\n};\n\ntype ProjectManagerInstallDependenciesArgs = {\n\tdependencies: Record<string, string>;\n\tdev?: boolean;\n\tpackageManager?: PackageManager;\n\tlog?: (message: string) => void;\n};\n\ntype ProjectManagerInstallDependenciesReturnType = {\n\texecaProcess: ResultPromise;\n};\n\nexport class ProjectManager extends BaseManager {\n\tprivate _cachedRoot: string | undefined;\n\tprivate _cachedPrismicConfigPath: string | undefined;\n\tprivate _cachedPrismicConfig: PrismicConfig | undefined;\n\n\tasync getPrismicConfigPath(\n\t\targs?: ProjectManagerGetPrismicConfigPathArgs,\n\t): Promise<string> {\n\t\tif (this._cachedPrismicConfigPath && !args?.ignoreCache) {\n\t\t\treturn this._cachedPrismicConfigPath;\n\t\t}\n\n\t\ttry {\n\t\t\tthis._cachedPrismicConfigPath = await locateFileUpward(\n\t\t\t\tPRISMIC_CONFIG_FILENAME,\n\t\t\t\t{ startDir: this.cwd },\n\t\t\t);\n\t\t} catch {\n\t\t\tthrow new Error(\n\t\t\t\t`Could not find a ${PRISMIC_CONFIG_FILENAME} file. Please create a config file at the root of your project.`,\n\t\t\t);\n\t\t}\n\n\t\treturn this._cachedPrismicConfigPath;\n\t}\n\n\tasync getRoot(args?: ProjectManagerGetRootArgs): Promise<string> {\n\t\tif (this._cachedRoot && !args?.ignoreCache) {\n\t\t\treturn this._cachedRoot;\n\t\t}\n\n\t\tconst prismicConfigFilePath = await this.getPrismicConfigPath({\n\t\t\tignoreCache: args?.ignoreCache,\n\t\t});\n\n\t\tthis._cachedRoot = path.dirname(prismicConfigFilePath);\n\n\t\treturn this._cachedRoot;\n\t}\n\n\tasync suggestRoot(): Promise<string> {\n\t\tconst suggestedRootPackageJSON = await locateFileUpward(\"package.json\", {\n\t\t\tstartDir: this.cwd,\n\t\t});\n\n\t\treturn path.dirname(suggestedRootPackageJSON);\n\t}\n\n\tasync suggestPrismicConfigPath(): Promise<string> {\n\t\tconst suggestedRoot = await this.suggestRoot();\n\n\t\treturn path.resolve(suggestedRoot, PRISMIC_CONFIG_FILENAME);\n\t}\n\n\tasync checkIsTypeScript(\n\t\targs?: ProjectManagerCheckIsTypeScriptArgs,\n\t): Promise<boolean> {\n\t\tconst root = args?.rootOverride || (await this.getRoot());\n\t\tconst rootTSConfigPath = path.resolve(root, TS_CONFIG_FILENAME);\n\n\t\t// We just care if the file exists, we don't need access to it\n\t\treturn existsSync(rootTSConfigPath);\n\t}\n\n\tasync getPrismicConfig(): Promise<PrismicConfig> {\n\t\tif (this._cachedPrismicConfig) {\n\t\t\treturn this._cachedPrismicConfig;\n\t\t} else {\n\t\t\treturn await this.loadPrismicConfig();\n\t\t}\n\t}\n\n\tasync writePrismicConfig(\n\t\targs: ProjectManagerWritePrismicConfigArgs,\n\t): Promise<void> {\n\t\tconst configFilePath = args.path || (await this.getPrismicConfigPath());\n\n\t\tconst config = await format(\n\t\t\tJSON.stringify(args.config, null, 2),\n\t\t\tconfigFilePath,\n\t\t);\n\n\t\tawait fs.writeFile(configFilePath, config, \"utf-8\");\n\n\t\t// Clear config cache\n\t\tdelete this._cachedPrismicConfig;\n\t}\n\n\tasync loadPrismicConfig(): Promise<PrismicConfig> {\n\t\tconst configFilePath = await this.getPrismicConfigPath();\n\n\t\tlet rawConfig: unknown | undefined;\n\t\ttry {\n\t\t\tconst contents = await fs.readFile(configFilePath, \"utf8\");\n\t\t\trawConfig = JSON.parse(contents);\n\t\t} catch (error) {\n\t\t\tif (error instanceof SyntaxError) {\n\t\t\t\tthrow new PrismicError(\n\t\t\t\t\t`Could not parse config file at ${configFilePath}.\\n\\nError Message: ${error.message}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Noop, more specific error is thrown after\n\t\t}\n\n\t\tif (!rawConfig) {\n\t\t\tthrow new Error(\n\t\t\t\t\"No Prismic config found, please initialize your project with Prismic first.\",\n\t\t\t);\n\t\t}\n\n\t\tconst { value: prismicConfig, error } = decodePrismicConfig(rawConfig);\n\n\t\tif (error) {\n\t\t\tthrow new Error(`Invalid Prismic config. ${error.errors.join(\", \")}`, {\n\t\t\t\tcause: { rawConfig },\n\t\t\t});\n\t\t}\n\n\t\tthis._cachedPrismicConfig = prismicConfig;\n\n\t\treturn prismicConfig;\n\t}\n\n\tasync getRepositoryName(): Promise<string> {\n\t\tconst prismicConfig = await this.getPrismicConfig();\n\n\t\treturn prismicConfig.repositoryName;\n\t}\n\n\tasync checkLegacyConfigExists(): Promise<boolean> {\n\t\ttry {\n\t\t\tawait locateFileUpward(SLICEMACHINE_CONFIG_FILENAME, {\n\t\t\t\tstartDir: this.cwd,\n\t\t\t});\n\n\t\t\treturn true;\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tasync migrateLegacyConfig(): Promise<void> {\n\t\tconst suggestedRoot = await this.suggestRoot();\n\t\tconst legacyConfigPath = path.resolve(\n\t\t\tsuggestedRoot,\n\t\t\tSLICEMACHINE_CONFIG_FILENAME,\n\t\t);\n\t\tconst newConfigPath = path.resolve(suggestedRoot, PRISMIC_CONFIG_FILENAME);\n\n\t\t// Check if legacy config exists\n\t\ttry {\n\t\t\tawait fs.access(legacyConfigPath);\n\t\t} catch {\n\t\t\tthrow new Error(\n\t\t\t\t`Legacy config file ${SLICEMACHINE_CONFIG_FILENAME} not found.`,\n\t\t\t);\n\t\t}\n\n\t\t// Check if new config already exists\n\t\ttry {\n\t\t\tawait fs.access(newConfigPath);\n\t\t\tthrow new Error(\n\t\t\t\t`Cannot migrate: ${PRISMIC_CONFIG_FILENAME} already exists.`,\n\t\t\t);\n\t\t} catch {\n\t\t\t// File doesn't exist, which is what we want\n\t\t}\n\n\t\tconst legacyConfigContent = await fs.readFile(legacyConfigPath, \"utf8\");\n\n\t\t// Parse and validate the config\n\t\tlet rawConfig: unknown;\n\t\ttry {\n\t\t\trawConfig = JSON.parse(legacyConfigContent);\n\t\t} catch (error) {\n\t\t\tif (error instanceof SyntaxError) {\n\t\t\t\tthrow new PrismicError(\n\t\t\t\t\t`Could not parse legacy config file at ${legacyConfigPath}.\\n\\nError Message: ${error.message}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\n\t\tconst { value: prismicConfig, error } = decodePrismicConfig(rawConfig);\n\n\t\tif (error) {\n\t\t\tthrow new Error(\n\t\t\t\t`Invalid legacy Prismic config. ${error.errors.join(\", \")}`,\n\t\t\t\t{\n\t\t\t\t\tcause: { rawConfig },\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\n\t\t// Format and write the new config\n\t\tconst formattedConfig = await format(\n\t\t\tJSON.stringify(prismicConfig, null, 2),\n\t\t\tnewConfigPath,\n\t\t);\n\n\t\tawait fs.writeFile(newConfigPath, formattedConfig, \"utf-8\");\n\n\t\t// Remove legacy config file\n\t\tawait fs.unlink(legacyConfigPath);\n\n\t\t// Clear caches\n\t\tdelete this._cachedPrismicConfig;\n\t\tdelete this._cachedPrismicConfigPath;\n\t\tdelete this._cachedRoot;\n\t}\n\n\tasync initProject(args?: ProjectManagerInitProjectArgs): Promise<void> {\n\t\tassertPluginsInitialized(this.pluginSystemRunner);\n\n\t\t// eslint-disable-next-line no-console\n\t\tconst log = args?.log || console.log.bind(this);\n\n\t\tconst { errors } = await this.pluginSystemRunner.callHook(\"project:init\", {\n\t\t\tlog,\n\t\t\tinstallDependencies: async (args) => {\n\t\t\t\tconst { execaProcess } = await this.installDependencies({\n\t\t\t\t\tdependencies: args.dependencies,\n\t\t\t\t\tdev: args.dev,\n\t\t\t\t\tlog,\n\t\t\t\t});\n\n\t\t\t\tawait execaProcess;\n\t\t\t},\n\t\t});\n\n\t\tif (errors.length > 0) {\n\t\t\tthrow new PrismicError(\n\t\t\t\t`Failed to initialize project: ${errors.join(\", \")}`,\n\t\t\t);\n\t\t}\n\t}\n\n\tasync detectPackageManager(\n\t\targs?: ProjectManagerDetectPackageManager,\n\t): Promise<PackageManager> {\n\t\tconst projectRoot = args?.root || (await this.getRoot());\n\n\t\tconst packageManager = await niDetect({\n\t\t\tautoInstall: true,\n\t\t\tcwd: projectRoot,\n\t\t});\n\n\t\treturn packageManager || \"npm\";\n\t}\n\n\tasync installDependencies(\n\t\targs: ProjectManagerInstallDependenciesArgs,\n\t): Promise<ProjectManagerInstallDependenciesReturnType> {\n\t\tconst packageManager =\n\t\t\targs.packageManager || (await this.detectPackageManager());\n\n\t\t// eslint-disable-next-line no-console\n\t\tconst log = args.log || console.log.bind(this);\n\n\t\tconst wrappedLogger = (data: Buffer | string | null) => {\n\t\t\tif (data instanceof Buffer) {\n\t\t\t\tlog(data.toString());\n\t\t\t} else if (typeof data === \"string\") {\n\t\t\t\tlog(data);\n\t\t\t}\n\t\t};\n\n\t\ttry {\n\t\t\tconst { execaProcess } = await installDependencies({\n\t\t\t\tpackageManager,\n\t\t\t\tdependencies: args.dependencies,\n\t\t\t\tdev: args.dev,\n\t\t\t});\n\n\t\t\t// Don't clutter console with logs when process is non TTY (CI, etc.)\n\t\t\tif (process.stdout.isTTY || process.env.NODE_ENV === \"test\") {\n\t\t\t\texecaProcess.stdout?.on(\"data\", wrappedLogger);\n\t\t\t}\n\t\t\texecaProcess.stderr?.on(\"data\", wrappedLogger);\n\n\t\t\treturn {\n\t\t\t\texecaProcess,\n\t\t\t};\n\t\t} catch (error) {\n\t\t\tif (\n\t\t\t\terror instanceof Error &&\n\t\t\t\t\"shortMessage\" in error &&\n\t\t\t\t\"stderr\" in error\n\t\t\t) {\n\t\t\t\tthrow new InternalError(\"Package installation failed\", {\n\t\t\t\t\tcause: error,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthrow error;\n\t\t}\n\t}\n}\n"],"names":["error","args","niDetect"],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { CallHookReturnType, HookError, SliceCreateHook, SliceCreateHookData, SliceLibraryReadHookData, SliceReadHookData, SliceRenameHook, SliceRenameHookData, SliceUpdateHook } from "@prismicio/plugin-kit";
|
|
2
|
+
import TypesInternal from "@prismicio/types-internal/lib/customtypes/index.js";
|
|
3
|
+
import { DecodeError } from "../../lib/DecodeError.js";
|
|
4
|
+
import { OnlyHookErrors } from "../../types.js";
|
|
5
|
+
import { BaseManager } from "../BaseManager.js";
|
|
6
|
+
type SlicesManagerReadSliceLibraryReturnType = {
|
|
7
|
+
sliceIDs: string[];
|
|
8
|
+
errors: (DecodeError | HookError)[];
|
|
9
|
+
};
|
|
10
|
+
type SlicesManagerReadAllSliceLibrariesReturnType = {
|
|
11
|
+
libraries: {
|
|
12
|
+
libraryID: string;
|
|
13
|
+
sliceIDs: string[] | undefined;
|
|
14
|
+
}[];
|
|
15
|
+
errors: (DecodeError | HookError)[];
|
|
16
|
+
};
|
|
17
|
+
type PrismicManagerReadAllSlicesForLibraryArgs = {
|
|
18
|
+
libraryID: string;
|
|
19
|
+
};
|
|
20
|
+
type PrismicManagerUpdateSliceArgs = {
|
|
21
|
+
libraryID: string;
|
|
22
|
+
model: TypesInternal.SharedSlice;
|
|
23
|
+
};
|
|
24
|
+
type PrismicManagerReadAllSlicesForLibraryReturnType = {
|
|
25
|
+
models: {
|
|
26
|
+
model: TypesInternal.SharedSlice;
|
|
27
|
+
}[];
|
|
28
|
+
errors: (DecodeError | HookError)[];
|
|
29
|
+
};
|
|
30
|
+
type PrismicManagerReadAllSlicesReturnType = {
|
|
31
|
+
models: {
|
|
32
|
+
libraryID: string;
|
|
33
|
+
model: TypesInternal.SharedSlice;
|
|
34
|
+
}[];
|
|
35
|
+
errors: (DecodeError | HookError)[];
|
|
36
|
+
};
|
|
37
|
+
type PrismicManagerReadSliceReturnType = {
|
|
38
|
+
model: TypesInternal.SharedSlice | undefined;
|
|
39
|
+
errors: (DecodeError | HookError)[];
|
|
40
|
+
};
|
|
41
|
+
type PrismicManagerDeleteSliceArgs = {
|
|
42
|
+
libraryID: string;
|
|
43
|
+
sliceID: string;
|
|
44
|
+
};
|
|
45
|
+
type PrismicManagerDeleteSliceReturnType = {
|
|
46
|
+
errors: (DecodeError | HookError)[];
|
|
47
|
+
};
|
|
48
|
+
export declare class SlicesManager extends BaseManager {
|
|
49
|
+
readSliceLibrary(args: SliceLibraryReadHookData): Promise<SlicesManagerReadSliceLibraryReturnType>;
|
|
50
|
+
getDefaultLibraryID(): Promise<string>;
|
|
51
|
+
readAllSliceLibraries(): Promise<SlicesManagerReadAllSliceLibrariesReturnType>;
|
|
52
|
+
readAllSlicesForLibrary(args: PrismicManagerReadAllSlicesForLibraryArgs): Promise<PrismicManagerReadAllSlicesForLibraryReturnType>;
|
|
53
|
+
readAllSlices(): Promise<PrismicManagerReadAllSlicesReturnType>;
|
|
54
|
+
createSlice(args: SliceCreateHookData): Promise<OnlyHookErrors<CallHookReturnType<SliceCreateHook>>>;
|
|
55
|
+
readSlice(args: SliceReadHookData): Promise<PrismicManagerReadSliceReturnType>;
|
|
56
|
+
updateSlice(args: PrismicManagerUpdateSliceArgs): Promise<OnlyHookErrors<CallHookReturnType<SliceUpdateHook>>>;
|
|
57
|
+
renameSlice(args: SliceRenameHookData): Promise<OnlyHookErrors<CallHookReturnType<SliceRenameHook>>>;
|
|
58
|
+
deleteSlice(args: PrismicManagerDeleteSliceArgs): Promise<PrismicManagerDeleteSliceReturnType>;
|
|
59
|
+
fetchRemoteSlices(): Promise<TypesInternal.SharedSlice[]>;
|
|
60
|
+
}
|
|
61
|
+
export {};
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import * as prismicCustomTypesClient from "@prismicio/custom-types-client";
|
|
2
|
+
import fetch from './../../_node_modules/node-fetch/src/index.js';
|
|
3
|
+
import * as z from "zod";
|
|
4
|
+
import { API_ENDPOINTS } from "../../constants/API_ENDPOINTS.js";
|
|
5
|
+
import { PRISMIC_CLI_USER_AGENT } from "../../constants/PRISMIC_CLI_USER_AGENT.js";
|
|
6
|
+
import { assertPluginsInitialized } from "../../lib/assertPluginsInitialized.js";
|
|
7
|
+
import { decodeHookResult } from "../../lib/decodeHookResult.js";
|
|
8
|
+
import { SharedSliceSchema } from "../../lib/typesInternalSchemas.js";
|
|
9
|
+
import { BaseManager } from "../BaseManager.js";
|
|
10
|
+
class SlicesManager extends BaseManager {
|
|
11
|
+
async readSliceLibrary(args) {
|
|
12
|
+
assertPluginsInitialized(this.pluginSystemRunner);
|
|
13
|
+
const hookResult = await this.pluginSystemRunner.callHook("slice-library:read", args);
|
|
14
|
+
const { data, errors } = decodeHookResult(z.object({
|
|
15
|
+
id: z.string(),
|
|
16
|
+
sliceIDs: z.array(z.string())
|
|
17
|
+
}), hookResult);
|
|
18
|
+
return {
|
|
19
|
+
sliceIDs: data[0]?.sliceIDs ?? [],
|
|
20
|
+
errors
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
async getDefaultLibraryID() {
|
|
24
|
+
const prismicConfig = await this.project.getPrismicConfig();
|
|
25
|
+
const libraryIDs = prismicConfig.libraries || [];
|
|
26
|
+
return libraryIDs[0];
|
|
27
|
+
}
|
|
28
|
+
async readAllSliceLibraries() {
|
|
29
|
+
assertPluginsInitialized(this.pluginSystemRunner);
|
|
30
|
+
const prismicConfig = await this.project.getPrismicConfig();
|
|
31
|
+
const libraryIDs = prismicConfig.libraries || [];
|
|
32
|
+
const res = {
|
|
33
|
+
libraries: [],
|
|
34
|
+
errors: []
|
|
35
|
+
};
|
|
36
|
+
for (const libraryID of libraryIDs) {
|
|
37
|
+
const { sliceIDs, errors } = await this.readSliceLibrary({
|
|
38
|
+
libraryID
|
|
39
|
+
});
|
|
40
|
+
res.errors = [...res.errors, ...errors];
|
|
41
|
+
res.libraries.push({
|
|
42
|
+
libraryID,
|
|
43
|
+
sliceIDs
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
return res;
|
|
47
|
+
}
|
|
48
|
+
async readAllSlicesForLibrary(args) {
|
|
49
|
+
assertPluginsInitialized(this.pluginSystemRunner);
|
|
50
|
+
const res = {
|
|
51
|
+
models: [],
|
|
52
|
+
errors: []
|
|
53
|
+
};
|
|
54
|
+
const { sliceIDs, errors } = await this.readSliceLibrary({
|
|
55
|
+
libraryID: args.libraryID
|
|
56
|
+
});
|
|
57
|
+
res.errors.push(...errors);
|
|
58
|
+
if (sliceIDs) {
|
|
59
|
+
for (const sliceID of sliceIDs) {
|
|
60
|
+
const { model, errors: errors2 } = await this.readSlice({
|
|
61
|
+
libraryID: args.libraryID,
|
|
62
|
+
sliceID
|
|
63
|
+
});
|
|
64
|
+
res.errors.push(...errors2);
|
|
65
|
+
if (model) {
|
|
66
|
+
res.models.push({ model });
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return res;
|
|
71
|
+
}
|
|
72
|
+
async readAllSlices() {
|
|
73
|
+
assertPluginsInitialized(this.pluginSystemRunner);
|
|
74
|
+
const prismicConfig = await this.project.getPrismicConfig();
|
|
75
|
+
const libraryIDs = prismicConfig.libraries || [];
|
|
76
|
+
const res = {
|
|
77
|
+
models: [],
|
|
78
|
+
errors: []
|
|
79
|
+
};
|
|
80
|
+
for (const libraryID of libraryIDs) {
|
|
81
|
+
const { models, errors } = await this.readAllSlicesForLibrary({
|
|
82
|
+
libraryID
|
|
83
|
+
});
|
|
84
|
+
res.errors.push(...errors);
|
|
85
|
+
for (const model of models) {
|
|
86
|
+
res.models.push({
|
|
87
|
+
libraryID,
|
|
88
|
+
model: model.model
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return res;
|
|
93
|
+
}
|
|
94
|
+
async createSlice(args) {
|
|
95
|
+
assertPluginsInitialized(this.pluginSystemRunner);
|
|
96
|
+
const hookResult = await this.pluginSystemRunner.callHook("slice:create", args);
|
|
97
|
+
return {
|
|
98
|
+
errors: hookResult.errors
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
async readSlice(args) {
|
|
102
|
+
assertPluginsInitialized(this.pluginSystemRunner);
|
|
103
|
+
const hookResult = await this.pluginSystemRunner.callHook("slice:read", args);
|
|
104
|
+
const { data, errors } = decodeHookResult(z.object({
|
|
105
|
+
model: SharedSliceSchema
|
|
106
|
+
}), hookResult);
|
|
107
|
+
return {
|
|
108
|
+
model: data[0]?.model,
|
|
109
|
+
errors: errors.map((error) => {
|
|
110
|
+
error.message = `Failed to decode slice model with id '${args.sliceID}': ${error.message}`;
|
|
111
|
+
return error;
|
|
112
|
+
})
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
async updateSlice(args) {
|
|
116
|
+
assertPluginsInitialized(this.pluginSystemRunner);
|
|
117
|
+
const hookResult = await this.pluginSystemRunner.callHook("slice:update", args);
|
|
118
|
+
return {
|
|
119
|
+
errors: [...hookResult.errors]
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
async renameSlice(args) {
|
|
123
|
+
assertPluginsInitialized(this.pluginSystemRunner);
|
|
124
|
+
const hookResult = await this.pluginSystemRunner.callHook("slice:rename", args);
|
|
125
|
+
return {
|
|
126
|
+
errors: hookResult.errors
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
async deleteSlice(args) {
|
|
130
|
+
assertPluginsInitialized(this.pluginSystemRunner);
|
|
131
|
+
const { model, errors: readSliceErrors } = await this.readSlice({
|
|
132
|
+
libraryID: args.libraryID,
|
|
133
|
+
sliceID: args.sliceID
|
|
134
|
+
});
|
|
135
|
+
if (model) {
|
|
136
|
+
const { errors: deleteSliceErrors } = await this.pluginSystemRunner.callHook("slice:delete", {
|
|
137
|
+
model,
|
|
138
|
+
libraryID: args.libraryID
|
|
139
|
+
});
|
|
140
|
+
return {
|
|
141
|
+
errors: deleteSliceErrors
|
|
142
|
+
};
|
|
143
|
+
} else {
|
|
144
|
+
return {
|
|
145
|
+
errors: readSliceErrors
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
async fetchRemoteSlices() {
|
|
150
|
+
const authenticationToken = await this.user.getAuthenticationToken();
|
|
151
|
+
const repositoryName = await this.project.getRepositoryName();
|
|
152
|
+
const client = prismicCustomTypesClient.createClient({
|
|
153
|
+
endpoint: API_ENDPOINTS.PrismicLegacyCustomTypesApi,
|
|
154
|
+
repositoryName,
|
|
155
|
+
token: authenticationToken,
|
|
156
|
+
fetch,
|
|
157
|
+
fetchOptions: {
|
|
158
|
+
headers: {
|
|
159
|
+
"User-Agent": PRISMIC_CLI_USER_AGENT
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
return await client.getAllSharedSlices();
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
export {
|
|
167
|
+
SlicesManager
|
|
168
|
+
};
|
|
169
|
+
//# sourceMappingURL=SlicesManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SlicesManager.js","sources":["../../../../src/managers/slices/SlicesManager.ts"],"sourcesContent":["import * as prismicCustomTypesClient from \"@prismicio/custom-types-client\";\nimport {\n\tCallHookReturnType,\n\tHookError,\n\tSliceCreateHook,\n\tSliceCreateHookData,\n\tSliceLibraryReadHookData,\n\tSliceReadHookData,\n\tSliceRenameHook,\n\tSliceRenameHookData,\n\tSliceUpdateHook,\n} from \"@prismicio/plugin-kit\";\nimport TypesInternal from \"@prismicio/types-internal/lib/customtypes/index.js\";\nimport fetch from \"node-fetch\";\nimport * as z from \"zod\";\n\nimport { API_ENDPOINTS } from \"../../constants/API_ENDPOINTS\";\nimport { PRISMIC_CLI_USER_AGENT } from \"../../constants/PRISMIC_CLI_USER_AGENT\";\nimport { DecodeError } from \"../../lib/DecodeError\";\nimport { assertPluginsInitialized } from \"../../lib/assertPluginsInitialized\";\nimport { decodeHookResult } from \"../../lib/decodeHookResult\";\nimport { SharedSliceSchema } from \"../../lib/typesInternalSchemas\";\nimport { OnlyHookErrors } from \"../../types\";\nimport { BaseManager } from \"../BaseManager\";\n\ntype SlicesManagerReadSliceLibraryReturnType = {\n\tsliceIDs: string[];\n\terrors: (DecodeError | HookError)[];\n};\n\ntype SlicesManagerReadAllSliceLibrariesReturnType = {\n\tlibraries: {\n\t\tlibraryID: string;\n\t\tsliceIDs: string[] | undefined;\n\t}[];\n\terrors: (DecodeError | HookError)[];\n};\n\ntype PrismicManagerReadAllSlicesForLibraryArgs = {\n\tlibraryID: string;\n};\n\ntype PrismicManagerUpdateSliceArgs = {\n\tlibraryID: string;\n\tmodel: TypesInternal.SharedSlice;\n};\n\ntype PrismicManagerReadAllSlicesForLibraryReturnType = {\n\tmodels: { model: TypesInternal.SharedSlice }[];\n\terrors: (DecodeError | HookError)[];\n};\n\ntype PrismicManagerReadAllSlicesReturnType = {\n\tmodels: {\n\t\tlibraryID: string;\n\t\tmodel: TypesInternal.SharedSlice;\n\t}[];\n\terrors: (DecodeError | HookError)[];\n};\n\ntype PrismicManagerReadSliceReturnType = {\n\tmodel: TypesInternal.SharedSlice | undefined;\n\terrors: (DecodeError | HookError)[];\n};\n\ntype PrismicManagerDeleteSliceArgs = {\n\tlibraryID: string;\n\tsliceID: string;\n};\n\ntype PrismicManagerDeleteSliceReturnType = {\n\terrors: (DecodeError | HookError)[];\n};\n\nexport class SlicesManager extends BaseManager {\n\tasync readSliceLibrary(\n\t\targs: SliceLibraryReadHookData,\n\t): Promise<SlicesManagerReadSliceLibraryReturnType> {\n\t\tassertPluginsInitialized(this.pluginSystemRunner);\n\n\t\tconst hookResult = await this.pluginSystemRunner.callHook(\n\t\t\t\"slice-library:read\",\n\t\t\targs,\n\t\t);\n\t\tconst { data, errors } = decodeHookResult(\n\t\t\tz.object({\n\t\t\t\tid: z.string(),\n\t\t\t\tsliceIDs: z.array(z.string()),\n\t\t\t}),\n\t\t\thookResult,\n\t\t);\n\n\t\treturn {\n\t\t\tsliceIDs: data[0]?.sliceIDs ?? [],\n\t\t\terrors: errors,\n\t\t};\n\t}\n\n\tasync getDefaultLibraryID(): Promise<string> {\n\t\tconst prismicConfig = await this.project.getPrismicConfig();\n\t\tconst libraryIDs = prismicConfig.libraries || [];\n\n\t\treturn libraryIDs[0];\n\t}\n\n\tasync readAllSliceLibraries(): Promise<SlicesManagerReadAllSliceLibrariesReturnType> {\n\t\tassertPluginsInitialized(this.pluginSystemRunner);\n\n\t\tconst prismicConfig = await this.project.getPrismicConfig();\n\t\tconst libraryIDs = prismicConfig.libraries || [];\n\n\t\tconst res: SlicesManagerReadAllSliceLibrariesReturnType = {\n\t\t\tlibraries: [],\n\t\t\terrors: [],\n\t\t};\n\n\t\tfor (const libraryID of libraryIDs) {\n\t\t\tconst { sliceIDs, errors } = await this.readSliceLibrary({\n\t\t\t\tlibraryID,\n\t\t\t});\n\t\t\tres.errors = [...res.errors, ...errors];\n\n\t\t\tres.libraries.push({\n\t\t\t\tlibraryID,\n\t\t\t\tsliceIDs,\n\t\t\t});\n\t\t}\n\n\t\treturn res;\n\t}\n\n\tasync readAllSlicesForLibrary(\n\t\targs: PrismicManagerReadAllSlicesForLibraryArgs,\n\t): Promise<PrismicManagerReadAllSlicesForLibraryReturnType> {\n\t\tassertPluginsInitialized(this.pluginSystemRunner);\n\n\t\tconst res: PrismicManagerReadAllSlicesForLibraryReturnType = {\n\t\t\tmodels: [],\n\t\t\terrors: [],\n\t\t};\n\n\t\tconst { sliceIDs, errors } = await this.readSliceLibrary({\n\t\t\tlibraryID: args.libraryID,\n\t\t});\n\t\tres.errors.push(...errors);\n\n\t\tif (sliceIDs) {\n\t\t\tfor (const sliceID of sliceIDs) {\n\t\t\t\tconst { model, errors } = await this.readSlice({\n\t\t\t\t\tlibraryID: args.libraryID,\n\t\t\t\t\tsliceID,\n\t\t\t\t});\n\t\t\t\tres.errors.push(...errors);\n\n\t\t\t\tif (model) {\n\t\t\t\t\tres.models.push({ model });\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn res;\n\t}\n\n\tasync readAllSlices(): Promise<PrismicManagerReadAllSlicesReturnType> {\n\t\tassertPluginsInitialized(this.pluginSystemRunner);\n\n\t\tconst prismicConfig = await this.project.getPrismicConfig();\n\t\tconst libraryIDs = prismicConfig.libraries || [];\n\n\t\tconst res: PrismicManagerReadAllSlicesReturnType = {\n\t\t\tmodels: [],\n\t\t\terrors: [],\n\t\t};\n\n\t\tfor (const libraryID of libraryIDs) {\n\t\t\tconst { models, errors } = await this.readAllSlicesForLibrary({\n\t\t\t\tlibraryID,\n\t\t\t});\n\t\t\tres.errors.push(...errors);\n\n\t\t\tfor (const model of models) {\n\t\t\t\tres.models.push({\n\t\t\t\t\tlibraryID,\n\t\t\t\t\tmodel: model.model,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn res;\n\t}\n\n\tasync createSlice(\n\t\targs: SliceCreateHookData,\n\t): Promise<OnlyHookErrors<CallHookReturnType<SliceCreateHook>>> {\n\t\tassertPluginsInitialized(this.pluginSystemRunner);\n\n\t\tconst hookResult = await this.pluginSystemRunner.callHook(\n\t\t\t\"slice:create\",\n\t\t\targs,\n\t\t);\n\n\t\treturn {\n\t\t\terrors: hookResult.errors,\n\t\t};\n\t}\n\n\tasync readSlice(\n\t\targs: SliceReadHookData,\n\t): Promise<PrismicManagerReadSliceReturnType> {\n\t\tassertPluginsInitialized(this.pluginSystemRunner);\n\n\t\tconst hookResult = await this.pluginSystemRunner.callHook(\n\t\t\t\"slice:read\",\n\t\t\targs,\n\t\t);\n\t\tconst { data, errors } = decodeHookResult(\n\t\t\tz.object({\n\t\t\t\tmodel: SharedSliceSchema,\n\t\t\t}),\n\t\t\thookResult,\n\t\t);\n\n\t\treturn {\n\t\t\tmodel: data[0]?.model,\n\t\t\terrors: errors.map((error) => {\n\t\t\t\terror.message = `Failed to decode slice model with id '${args.sliceID}': ${error.message}`;\n\n\t\t\t\treturn error;\n\t\t\t}),\n\t\t};\n\t}\n\n\tasync updateSlice(\n\t\targs: PrismicManagerUpdateSliceArgs,\n\t): Promise<OnlyHookErrors<CallHookReturnType<SliceUpdateHook>>> {\n\t\tassertPluginsInitialized(this.pluginSystemRunner);\n\n\t\tconst hookResult = await this.pluginSystemRunner.callHook(\n\t\t\t\"slice:update\",\n\t\t\targs,\n\t\t);\n\n\t\treturn {\n\t\t\terrors: [...hookResult.errors],\n\t\t};\n\t}\n\n\tasync renameSlice(\n\t\targs: SliceRenameHookData,\n\t): Promise<OnlyHookErrors<CallHookReturnType<SliceRenameHook>>> {\n\t\tassertPluginsInitialized(this.pluginSystemRunner);\n\n\t\tconst hookResult = await this.pluginSystemRunner.callHook(\n\t\t\t\"slice:rename\",\n\t\t\targs,\n\t\t);\n\n\t\treturn {\n\t\t\terrors: hookResult.errors,\n\t\t};\n\t}\n\n\tasync deleteSlice(\n\t\targs: PrismicManagerDeleteSliceArgs,\n\t): Promise<PrismicManagerDeleteSliceReturnType> {\n\t\tassertPluginsInitialized(this.pluginSystemRunner);\n\n\t\tconst { model, errors: readSliceErrors } = await this.readSlice({\n\t\t\tlibraryID: args.libraryID,\n\t\t\tsliceID: args.sliceID,\n\t\t});\n\n\t\tif (model) {\n\t\t\tconst { errors: deleteSliceErrors } =\n\t\t\t\tawait this.pluginSystemRunner.callHook(\"slice:delete\", {\n\t\t\t\t\tmodel,\n\t\t\t\t\tlibraryID: args.libraryID,\n\t\t\t\t});\n\n\t\t\treturn {\n\t\t\t\terrors: deleteSliceErrors,\n\t\t\t};\n\t\t} else {\n\t\t\treturn {\n\t\t\t\terrors: readSliceErrors,\n\t\t\t};\n\t\t}\n\t}\n\n\tasync fetchRemoteSlices(): Promise<TypesInternal.SharedSlice[]> {\n\t\tconst authenticationToken = await this.user.getAuthenticationToken();\n\t\tconst repositoryName = await this.project.getRepositoryName();\n\n\t\tconst client = prismicCustomTypesClient.createClient({\n\t\t\tendpoint: API_ENDPOINTS.PrismicLegacyCustomTypesApi,\n\t\t\trepositoryName,\n\t\t\ttoken: authenticationToken,\n\t\t\tfetch,\n\t\t\tfetchOptions: {\n\t\t\t\theaders: {\n\t\t\t\t\t\"User-Agent\": PRISMIC_CLI_USER_AGENT,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\treturn await client.getAllSharedSlices();\n\t}\n}\n"],"names":["errors"],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Variant } from "@amplitude/experiment-node-server";
|
|
2
|
+
import { PrismicUserProfile } from "../../auth/PrismicAuthManager.js";
|
|
3
|
+
import { BaseManager } from "../BaseManager.js";
|
|
4
|
+
import { SegmentEvents } from "./types.js";
|
|
5
|
+
type TelemetryManagerInitTelemetryArgs = {
|
|
6
|
+
appName: string;
|
|
7
|
+
appVersion: string;
|
|
8
|
+
};
|
|
9
|
+
type TelemetryManagerTrackArgs = SegmentEvents;
|
|
10
|
+
export declare class TelemetryManager extends BaseManager {
|
|
11
|
+
private _segmentClient;
|
|
12
|
+
private _anonymousID;
|
|
13
|
+
private _userID;
|
|
14
|
+
private _context;
|
|
15
|
+
private _experiment;
|
|
16
|
+
initTelemetry(args: TelemetryManagerInitTelemetryArgs): Promise<void>;
|
|
17
|
+
track(args: TelemetryManagerTrackArgs): Promise<void>;
|
|
18
|
+
identify(userProfile: PrismicUserProfile): Promise<void>;
|
|
19
|
+
checkIsTelemetryEnabled(): Promise<boolean>;
|
|
20
|
+
private initExperiment;
|
|
21
|
+
getExperimentVariant(variantKey: string): Promise<Variant | undefined>;
|
|
22
|
+
}
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { s as srcExports } from "../../_virtual/index.js";
|
|
3
|
+
import { Analytics } from "@segment/analytics-node";
|
|
4
|
+
import { API_TOKENS } from "../../constants/API_TOKENS.js";
|
|
5
|
+
import { readPrismicrc } from "../../lib/prismicrc.js";
|
|
6
|
+
import { BaseManager } from "../BaseManager.js";
|
|
7
|
+
import { HumanSegmentEventType } from "./types.js";
|
|
8
|
+
function assertTelemetryInitialized(segmentClient) {
|
|
9
|
+
if (segmentClient === void 0) {
|
|
10
|
+
throw new Error("Telemetry has not been initialized. Run `PrismicManager.telemetry.prototype.initTelemetry()` before re-calling this method.");
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
class TelemetryManager extends BaseManager {
|
|
14
|
+
_segmentClient = void 0;
|
|
15
|
+
_anonymousID = void 0;
|
|
16
|
+
_userID = void 0;
|
|
17
|
+
_context = void 0;
|
|
18
|
+
_experiment = void 0;
|
|
19
|
+
async initTelemetry(args) {
|
|
20
|
+
const isTelemetryEnabled = await this.checkIsTelemetryEnabled();
|
|
21
|
+
this._segmentClient = () => {
|
|
22
|
+
const analytics = new Analytics({
|
|
23
|
+
writeKey: API_TOKENS.SegmentKey,
|
|
24
|
+
// Since it's a local app, we do not benefit from event batching the way a server would normally do, all tracking event will be awaited.
|
|
25
|
+
maxEventsInBatch: 1,
|
|
26
|
+
disable: !isTelemetryEnabled
|
|
27
|
+
});
|
|
28
|
+
analytics.on("error", (error) => {
|
|
29
|
+
});
|
|
30
|
+
return analytics;
|
|
31
|
+
};
|
|
32
|
+
if (isTelemetryEnabled) {
|
|
33
|
+
this.initExperiment();
|
|
34
|
+
}
|
|
35
|
+
this._anonymousID = randomUUID();
|
|
36
|
+
this._context = { app: { name: args.appName, version: args.appVersion } };
|
|
37
|
+
}
|
|
38
|
+
async track(args) {
|
|
39
|
+
const { event, repository, ...properties } = args;
|
|
40
|
+
let repositoryName = repository;
|
|
41
|
+
if (repositoryName === void 0) {
|
|
42
|
+
try {
|
|
43
|
+
repositoryName = await this.project.getRepositoryName();
|
|
44
|
+
} catch {
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const payload = {
|
|
48
|
+
event: HumanSegmentEventType[event],
|
|
49
|
+
properties: {
|
|
50
|
+
nodeVersion: process.versions.node,
|
|
51
|
+
...properties
|
|
52
|
+
},
|
|
53
|
+
context: { ...this._context }
|
|
54
|
+
};
|
|
55
|
+
payload.anonymousId = this._anonymousID;
|
|
56
|
+
if (this._userID) {
|
|
57
|
+
payload.userId = this._userID;
|
|
58
|
+
}
|
|
59
|
+
if (repositoryName) {
|
|
60
|
+
payload.context ||= {};
|
|
61
|
+
payload.context.groupId ||= {};
|
|
62
|
+
payload.context.groupId.Repository = repositoryName;
|
|
63
|
+
}
|
|
64
|
+
return new Promise((resolve) => {
|
|
65
|
+
assertTelemetryInitialized(this._segmentClient);
|
|
66
|
+
this._segmentClient().track(payload, (maybeError) => {
|
|
67
|
+
resolve();
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
async identify(userProfile) {
|
|
72
|
+
const payload = {
|
|
73
|
+
userId: userProfile.shortId,
|
|
74
|
+
anonymousId: this._anonymousID,
|
|
75
|
+
integrations: {
|
|
76
|
+
Intercom: {
|
|
77
|
+
user_hash: userProfile.intercomHash
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
context: { ...this._context }
|
|
81
|
+
};
|
|
82
|
+
this._userID = userProfile.shortId;
|
|
83
|
+
return new Promise((resolve) => {
|
|
84
|
+
assertTelemetryInitialized(this._segmentClient);
|
|
85
|
+
this._segmentClient().identify(payload, (maybeError) => {
|
|
86
|
+
resolve();
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
async checkIsTelemetryEnabled() {
|
|
91
|
+
let root;
|
|
92
|
+
try {
|
|
93
|
+
root = await this.project.getRoot().catch(() => this.project.suggestRoot());
|
|
94
|
+
return readPrismicrc(root).telemetry !== false;
|
|
95
|
+
} catch {
|
|
96
|
+
return true;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
initExperiment() {
|
|
100
|
+
try {
|
|
101
|
+
this._experiment = srcExports.Experiment.initializeRemote(API_TOKENS.AmplitudeKey);
|
|
102
|
+
} catch (error) {
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
async getExperimentVariant(variantKey) {
|
|
106
|
+
if (this._experiment) {
|
|
107
|
+
try {
|
|
108
|
+
const repositoryName = await this.project.getRepositoryName();
|
|
109
|
+
const variants = await this._experiment.fetchV2({
|
|
110
|
+
user_id: this._userID,
|
|
111
|
+
user_properties: {
|
|
112
|
+
Repository: repositoryName
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
const variantValue = variants[variantKey].value;
|
|
116
|
+
if (variantValue) {
|
|
117
|
+
await this.track({
|
|
118
|
+
event: "experiment:exposure",
|
|
119
|
+
flag_key: variantKey,
|
|
120
|
+
variant: variantValue
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
return variants[variantKey];
|
|
124
|
+
} catch (error) {
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return void 0;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
export {
|
|
131
|
+
TelemetryManager
|
|
132
|
+
};
|
|
133
|
+
//# sourceMappingURL=TelemetryManager.js.map
|