@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 @@
|
|
|
1
|
+
{"version":3,"file":"TelemetryManager.js","sources":["../../../../src/managers/telemetry/TelemetryManager.ts"],"sourcesContent":["import { randomUUID } from \"node:crypto\";\n\nimport {\n\tExperiment,\n\tRemoteEvaluationClient,\n\tVariant,\n} from \"@amplitude/experiment-node-server\";\nimport { Analytics, TrackParams } from \"@segment/analytics-node\";\n\nimport { PrismicUserProfile } from \"../../auth/PrismicAuthManager\";\nimport { API_TOKENS } from \"../../constants/API_TOKENS\";\nimport { readPrismicrc } from \"../../lib/prismicrc\";\nimport { BaseManager } from \"../BaseManager\";\n\nimport {\n\tHumanSegmentEventType,\n\tHumanSegmentEventTypes,\n\tSegmentEvents,\n} from \"./types\";\n\ntype TelemetryManagerInitTelemetryArgs = {\n\tappName: string;\n\tappVersion: string;\n};\n\ntype TelemetryManagerTrackArgs = SegmentEvents;\n\ntype TelemetryManagerContext = {\n\tapp: {\n\t\tname: string;\n\t\tversion: string;\n\t};\n};\n\nfunction assertTelemetryInitialized(\n\tsegmentClient: (() => Analytics) | undefined,\n): asserts segmentClient is NonNullable<typeof segmentClient> {\n\tif (segmentClient === undefined) {\n\t\tthrow new Error(\n\t\t\t\"Telemetry has not been initialized. Run `PrismicManager.telemetry.prototype.initTelemetry()` before re-calling this method.\",\n\t\t);\n\t}\n}\n\nexport class TelemetryManager extends BaseManager {\n\tprivate _segmentClient: (() => Analytics) | undefined = undefined;\n\tprivate _anonymousID: string | undefined = undefined;\n\tprivate _userID: string | undefined = undefined;\n\tprivate _context: TelemetryManagerContext | undefined = undefined;\n\tprivate _experiment: RemoteEvaluationClient | undefined = undefined;\n\n\tasync initTelemetry(args: TelemetryManagerInitTelemetryArgs): Promise<void> {\n\t\tconst isTelemetryEnabled = await this.checkIsTelemetryEnabled();\n\n\t\tthis._segmentClient = () => {\n\t\t\tconst analytics = new Analytics({\n\t\t\t\twriteKey: API_TOKENS.SegmentKey,\n\t\t\t\t// 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.\n\t\t\t\tmaxEventsInBatch: 1,\n\t\t\t\tdisable: !isTelemetryEnabled,\n\t\t\t});\n\n\t\t\tanalytics.on(\"error\", (error) => {\n\t\t\t\t// noop - We don't care if the tracking event\n\t\t\t\t// failed. Some users or networks intentionally\n\t\t\t\t// block Segment, so we can't block the app if\n\t\t\t\t// a tracking event is unsuccessful.\n\t\t\t\tif (import.meta.env.DEV) {\n\t\t\t\t\tconsole.error(`An error occurred with Segment`, error);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn analytics;\n\t\t};\n\n\t\tif (isTelemetryEnabled) {\n\t\t\tthis.initExperiment();\n\t\t}\n\n\t\tthis._anonymousID = randomUUID();\n\t\tthis._context = { app: { name: args.appName, version: args.appVersion } };\n\t}\n\n\tasync track(args: TelemetryManagerTrackArgs): Promise<void> {\n\t\tconst { event, repository, ...properties } = args;\n\t\tlet repositoryName = repository;\n\n\t\tif (repositoryName === undefined) {\n\t\t\ttry {\n\t\t\t\trepositoryName = await this.project.getRepositoryName();\n\t\t\t} catch {\n\t\t\t\t// noop, happen only when the user is not in a project\n\t\t\t}\n\t\t}\n\n\t\tconst payload: {\n\t\t\tevent: HumanSegmentEventTypes;\n\t\t\tuserId?: string;\n\t\t\tanonymousId?: string;\n\t\t\tproperties?: Record<string, unknown>;\n\t\t\tcontext?: Partial<TelemetryManagerContext> & {\n\t\t\t\tgroupId?: {\n\t\t\t\t\tRepository?: string;\n\t\t\t\t};\n\t\t\t};\n\t\t} = {\n\t\t\tevent: HumanSegmentEventType[event],\n\t\t\tproperties: {\n\t\t\t\tnodeVersion: process.versions.node,\n\t\t\t\t...properties,\n\t\t\t},\n\t\t\tcontext: { ...this._context },\n\t\t};\n\n\t\t// Always keep an anonymous ID to keep track of the user before and after identification\n\t\tpayload.anonymousId = this._anonymousID;\n\n\t\tif (this._userID) {\n\t\t\tpayload.userId = this._userID;\n\t\t}\n\n\t\tif (repositoryName) {\n\t\t\tpayload.context ||= {};\n\t\t\tpayload.context.groupId ||= {};\n\t\t\tpayload.context.groupId.Repository = repositoryName;\n\t\t}\n\n\t\treturn new Promise((resolve) => {\n\t\t\tassertTelemetryInitialized(this._segmentClient);\n\n\t\t\tthis._segmentClient().track(\n\t\t\t\tpayload as TrackParams,\n\t\t\t\t(maybeError?: unknown) => {\n\t\t\t\t\tif (maybeError && import.meta.env.DEV) {\n\t\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\t`An error occurred during Segment tracking`,\n\t\t\t\t\t\t\tmaybeError,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tresolve();\n\t\t\t\t},\n\t\t\t);\n\t\t});\n\t}\n\n\tasync identify(userProfile: PrismicUserProfile): Promise<void> {\n\t\tconst payload = {\n\t\t\tuserId: userProfile.shortId,\n\t\t\tanonymousId: this._anonymousID,\n\t\t\tintegrations: {\n\t\t\t\tIntercom: {\n\t\t\t\t\tuser_hash: userProfile.intercomHash,\n\t\t\t\t},\n\t\t\t},\n\t\t\tcontext: { ...this._context },\n\t\t};\n\n\t\tthis._userID = userProfile.shortId;\n\n\t\treturn new Promise((resolve) => {\n\t\t\tassertTelemetryInitialized(this._segmentClient);\n\n\t\t\tthis._segmentClient().identify(payload, (maybeError?: unknown) => {\n\t\t\t\tif (maybeError && import.meta.env.DEV) {\n\t\t\t\t\tconsole.warn(`An error occurred during Segment identify`, maybeError);\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t\t});\n\t}\n\n\tasync checkIsTelemetryEnabled(): Promise<boolean> {\n\t\tlet root: string;\n\t\ttry {\n\t\t\troot = await this.project\n\t\t\t\t.getRoot()\n\t\t\t\t.catch(() => this.project.suggestRoot());\n\n\t\t\treturn readPrismicrc(root).telemetry !== false;\n\t\t} catch {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tprivate initExperiment(): void {\n\t\ttry {\n\t\t\tthis._experiment = Experiment.initializeRemote(API_TOKENS.AmplitudeKey);\n\t\t} catch (error) {\n\t\t\tif (import.meta.env.DEV) {\n\t\t\t\tconsole.error(\"Error initializing experiment\", error);\n\t\t\t}\n\t\t}\n\t}\n\n\tasync getExperimentVariant(variantKey: string): Promise<Variant | undefined> {\n\t\tif (this._experiment) {\n\t\t\ttry {\n\t\t\t\tconst repositoryName = await this.project.getRepositoryName();\n\t\t\t\tconst variants = await this._experiment.fetchV2({\n\t\t\t\t\tuser_id: this._userID,\n\t\t\t\t\tuser_properties: {\n\t\t\t\t\t\tRepository: repositoryName,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tconst variantValue = variants[variantKey].value;\n\t\t\t\tif (variantValue) {\n\t\t\t\t\tawait this.track({\n\t\t\t\t\t\tevent: \"experiment:exposure\",\n\t\t\t\t\t\tflag_key: variantKey,\n\t\t\t\t\t\tvariant: variantValue,\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn variants[variantKey];\n\t\t\t} catch (error) {\n\t\t\t\tif (import.meta.env.DEV) {\n\t\t\t\t\tconsole.error(\"Error fetching experiment variant\", error);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn undefined;\n\t}\n}\n"],"names":["Experiment"],"mappings":";;;;;;;AAkCA,SAAS,2BACR,eAA4C;AAE5C,MAAI,kBAAkB,QAAW;AAChC,UAAM,IAAI,MACT,6HAA6H;AAAA,EAE/H;AACD;AAEM,MAAO,yBAAyB,YAAW;AAAA,EACxC,iBAAgD;AAAA,EAChD,eAAmC;AAAA,EACnC,UAA8B;AAAA,EAC9B,WAAgD;AAAA,EAChD,cAAkD;AAAA,EAE1D,MAAM,cAAc,MAAuC;AAC1D,UAAM,qBAAqB,MAAM,KAAK,wBAAA;AAEtC,SAAK,iBAAiB,MAAK;AAC1B,YAAM,YAAY,IAAI,UAAU;AAAA,QAC/B,UAAU,WAAW;AAAA;AAAA,QAErB,kBAAkB;AAAA,QAClB,SAAS,CAAC;AAAA,MAAA,CACV;AAED,gBAAU,GAAG,SAAS,CAAC,UAAS;AAAA,MAQhC,CAAC;AAED,aAAO;AAAA,IACR;AAEA,QAAI,oBAAoB;AACvB,WAAK,eAAA;AAAA,IACN;AAEA,SAAK,eAAe,WAAA;AACpB,SAAK,WAAW,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,SAAS,KAAK,aAAU;AAAA,EACtE;AAAA,EAEA,MAAM,MAAM,MAA+B;AAC1C,UAAM,EAAE,OAAO,YAAY,GAAG,eAAe;AAC7C,QAAI,iBAAiB;AAErB,QAAI,mBAAmB,QAAW;AACjC,UAAI;AACH,yBAAiB,MAAM,KAAK,QAAQ,kBAAA;AAAA,MACrC,QAAQ;AAAA,MAER;AAAA,IACD;AAEA,UAAM,UAUF;AAAA,MACH,OAAO,sBAAsB,KAAK;AAAA,MAClC,YAAY;AAAA,QACX,aAAa,QAAQ,SAAS;AAAA,QAC9B,GAAG;AAAA,MAAA;AAAA,MAEJ,SAAS,EAAE,GAAG,KAAK,SAAA;AAAA,IAAQ;AAI5B,YAAQ,cAAc,KAAK;AAE3B,QAAI,KAAK,SAAS;AACjB,cAAQ,SAAS,KAAK;AAAA,IACvB;AAEA,QAAI,gBAAgB;AACnB,cAAQ,YAAY,CAAA;AACpB,cAAQ,QAAQ,YAAY,CAAA;AAC5B,cAAQ,QAAQ,QAAQ,aAAa;AAAA,IACtC;AAEA,WAAO,IAAI,QAAQ,CAAC,YAAW;AAC9B,iCAA2B,KAAK,cAAc;AAE9C,WAAK,eAAA,EAAiB,MACrB,SACA,CAAC,eAAwB;AAQxB,gBAAA;AAAA,MACD,CAAC;AAAA,IAEH,CAAC;AAAA,EACF;AAAA,EAEA,MAAM,SAAS,aAA+B;AAC7C,UAAM,UAAU;AAAA,MACf,QAAQ,YAAY;AAAA,MACpB,aAAa,KAAK;AAAA,MAClB,cAAc;AAAA,QACb,UAAU;AAAA,UACT,WAAW,YAAY;AAAA,QAAA;AAAA,MACvB;AAAA,MAEF,SAAS,EAAE,GAAG,KAAK,SAAA;AAAA,IAAQ;AAG5B,SAAK,UAAU,YAAY;AAE3B,WAAO,IAAI,QAAQ,CAAC,YAAW;AAC9B,iCAA2B,KAAK,cAAc;AAE9C,WAAK,eAAA,EAAiB,SAAS,SAAS,CAAC,eAAwB;AAKhE,gBAAA;AAAA,MACD,CAAC;AAAA,IACF,CAAC;AAAA,EACF;AAAA,EAEA,MAAM,0BAAuB;AAC5B,QAAI;AACJ,QAAI;AACH,aAAO,MAAM,KAAK,QAChB,QAAA,EACA,MAAM,MAAM,KAAK,QAAQ,aAAa;AAExC,aAAO,cAAc,IAAI,EAAE,cAAc;AAAA,IAC1C,QAAQ;AACP,aAAO;AAAA,IACR;AAAA,EACD;AAAA,EAEQ,iBAAc;AACrB,QAAI;AACH,WAAK,cAAcA,WAAAA,WAAW,iBAAiB,WAAW,YAAY;AAAA,IACvE,SAAS,OAAO;AAAA,IAIhB;AAAA,EACD;AAAA,EAEA,MAAM,qBAAqB,YAAkB;AAC5C,QAAI,KAAK,aAAa;AACrB,UAAI;AACH,cAAM,iBAAiB,MAAM,KAAK,QAAQ,kBAAA;AAC1C,cAAM,WAAW,MAAM,KAAK,YAAY,QAAQ;AAAA,UAC/C,SAAS,KAAK;AAAA,UACd,iBAAiB;AAAA,YAChB,YAAY;AAAA,UAAA;AAAA,QACZ,CACD;AAED,cAAM,eAAe,SAAS,UAAU,EAAE;AAC1C,YAAI,cAAc;AACjB,gBAAM,KAAK,MAAM;AAAA,YAChB,OAAO;AAAA,YACP,UAAU;AAAA,YACV,SAAS;AAAA,UAAA,CACT;AAAA,QACF;AAEA,eAAO,SAAS,UAAU;AAAA,MAC3B,SAAS,OAAO;AAAA,MAIhB;AAAA,IACD;AAEA,WAAO;AAAA,EACR;AACA;"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export type { Variant } from "@amplitude/experiment-node-server";
|
|
2
|
+
export declare const SegmentEventType: {
|
|
3
|
+
readonly experiment_exposure: "experiment:exposure";
|
|
4
|
+
readonly prismic_cli_start: "prismic-cli:start";
|
|
5
|
+
readonly prismic_cli_end: "prismic-cli:end";
|
|
6
|
+
};
|
|
7
|
+
type SegmentEventTypes = (typeof SegmentEventType)[keyof typeof SegmentEventType];
|
|
8
|
+
export declare const HumanSegmentEventType: {
|
|
9
|
+
readonly "experiment:exposure": "$exposure";
|
|
10
|
+
readonly "prismic-cli:start": "Prismic CLI Start";
|
|
11
|
+
readonly "prismic-cli:end": "Prismic CLI End";
|
|
12
|
+
};
|
|
13
|
+
export type HumanSegmentEventTypes = (typeof HumanSegmentEventType)[keyof typeof HumanSegmentEventType];
|
|
14
|
+
type SegmentEvent<TType extends SegmentEventTypes, TProperties extends Record<string, unknown> | void = void> = TProperties extends void ? {
|
|
15
|
+
event: TType;
|
|
16
|
+
repository?: string;
|
|
17
|
+
} : {
|
|
18
|
+
event: TType;
|
|
19
|
+
repository?: string;
|
|
20
|
+
} & TProperties;
|
|
21
|
+
type ExperimentExposure = SegmentEvent<typeof SegmentEventType.experiment_exposure, {
|
|
22
|
+
flag_key: string;
|
|
23
|
+
variant: string;
|
|
24
|
+
}>;
|
|
25
|
+
type PrismicCLIStartSegmentEvent = SegmentEvent<typeof SegmentEventType.prismic_cli_start, {
|
|
26
|
+
commandType: "init" | "sync";
|
|
27
|
+
fullCommand: string;
|
|
28
|
+
}>;
|
|
29
|
+
type PrismicCLIEndSegmentEvent = SegmentEvent<typeof SegmentEventType.prismic_cli_end, {
|
|
30
|
+
commandType: "init" | "sync";
|
|
31
|
+
success: boolean;
|
|
32
|
+
error?: string;
|
|
33
|
+
fullCommand: string;
|
|
34
|
+
}>;
|
|
35
|
+
export type SegmentEvents = ExperimentExposure | PrismicCLIStartSegmentEvent | PrismicCLIEndSegmentEvent;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const SegmentEventType = {
|
|
2
|
+
experiment_exposure: "experiment:exposure",
|
|
3
|
+
prismic_cli_start: "prismic-cli:start",
|
|
4
|
+
prismic_cli_end: "prismic-cli:end"
|
|
5
|
+
};
|
|
6
|
+
const HumanSegmentEventType = {
|
|
7
|
+
[SegmentEventType.experiment_exposure]: "$exposure",
|
|
8
|
+
[SegmentEventType.prismic_cli_start]: "Prismic CLI Start",
|
|
9
|
+
[SegmentEventType.prismic_cli_end]: "Prismic CLI End"
|
|
10
|
+
};
|
|
11
|
+
export {
|
|
12
|
+
HumanSegmentEventType,
|
|
13
|
+
SegmentEventType
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../src/managers/telemetry/types.ts"],"sourcesContent":["export type { Variant } from \"@amplitude/experiment-node-server\";\n\nexport const SegmentEventType = {\n\texperiment_exposure: \"experiment:exposure\",\n\tprismic_cli_start: \"prismic-cli:start\",\n\tprismic_cli_end: \"prismic-cli:end\",\n} as const;\ntype SegmentEventTypes =\n\t(typeof SegmentEventType)[keyof typeof SegmentEventType];\n\nexport const HumanSegmentEventType = {\n\t[SegmentEventType.experiment_exposure]: \"$exposure\",\n\t[SegmentEventType.prismic_cli_start]: \"Prismic CLI Start\",\n\t[SegmentEventType.prismic_cli_end]: \"Prismic CLI End\",\n} as const;\n\nexport type HumanSegmentEventTypes =\n\t(typeof HumanSegmentEventType)[keyof typeof HumanSegmentEventType];\n\ntype SegmentEvent<\n\tTType extends SegmentEventTypes,\n\tTProperties extends Record<string, unknown> | void = void,\n> = TProperties extends void\n\t? {\n\t\t\tevent: TType;\n\t\t\trepository?: string;\n\t\t}\n\t: {\n\t\t\tevent: TType;\n\t\t\trepository?: string;\n\t\t} & TProperties;\n\ntype ExperimentExposure = SegmentEvent<\n\ttypeof SegmentEventType.experiment_exposure,\n\t{\n\t\tflag_key: string;\n\t\tvariant: string;\n\t}\n>;\n\ntype PrismicCLIStartSegmentEvent = SegmentEvent<\n\ttypeof SegmentEventType.prismic_cli_start,\n\t{\n\t\tcommandType: \"init\" | \"sync\";\n\t\tfullCommand: string;\n\t}\n>;\n\ntype PrismicCLIEndSegmentEvent = SegmentEvent<\n\ttypeof SegmentEventType.prismic_cli_end,\n\t{\n\t\tcommandType: \"init\" | \"sync\";\n\t\tsuccess: boolean;\n\t\terror?: string;\n\t\tfullCommand: string;\n\t}\n>;\n\nexport type SegmentEvents =\n\t| ExperimentExposure\n\t| PrismicCLIStartSegmentEvent\n\t| PrismicCLIEndSegmentEvent;\n"],"names":[],"mappings":"AAEO,MAAM,mBAAmB;AAAA,EAC/B,qBAAqB;AAAA,EACrB,mBAAmB;AAAA,EACnB,iBAAiB;;AAKX,MAAM,wBAAwB;AAAA,EACpC,CAAC,iBAAiB,mBAAmB,GAAG;AAAA,EACxC,CAAC,iBAAiB,iBAAiB,GAAG;AAAA,EACtC,CAAC,iBAAiB,eAAe,GAAG;;"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { BaseManager } from "../BaseManager.js";
|
|
2
|
+
import { PrismicManager } from "../PrismicManager.js";
|
|
3
|
+
export declare class UserManager extends BaseManager {
|
|
4
|
+
constructor(prismicManager: PrismicManager);
|
|
5
|
+
login: (args: {
|
|
6
|
+
email: string;
|
|
7
|
+
token: string;
|
|
8
|
+
}) => Promise<void>;
|
|
9
|
+
getLoginSessionInfo: () => Promise<{
|
|
10
|
+
port: number;
|
|
11
|
+
url: string;
|
|
12
|
+
}>;
|
|
13
|
+
nodeLoginSession: (args: {
|
|
14
|
+
port: number;
|
|
15
|
+
onListenCallback?: () => void;
|
|
16
|
+
}) => Promise<void>;
|
|
17
|
+
logout: () => Promise<void>;
|
|
18
|
+
checkIsLoggedIn: () => Promise<boolean>;
|
|
19
|
+
refreshAuthenticationToken: () => Promise<void>;
|
|
20
|
+
getAuthenticationToken: () => Promise<string>;
|
|
21
|
+
getProfile: () => Promise<import("../..").PrismicUserProfile>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { PrismicError } from "../../errors.js";
|
|
2
|
+
import { BaseManager } from "../BaseManager.js";
|
|
3
|
+
class UserManager extends BaseManager {
|
|
4
|
+
constructor(prismicManager) {
|
|
5
|
+
super(prismicManager);
|
|
6
|
+
if (!prismicManager.getPrismicAuthManager()) {
|
|
7
|
+
throw new PrismicError("PrismicManager._prismicAuthManager must be set with a PrismicAuthManager instance before instantiating UserManager.");
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
login = this.prismicAuthManager.login.bind(this.prismicAuthManager);
|
|
11
|
+
getLoginSessionInfo = this.prismicAuthManager.getLoginSessionInfo.bind(this.prismicAuthManager);
|
|
12
|
+
nodeLoginSession = this.prismicAuthManager.nodeLoginSession.bind(this.prismicAuthManager);
|
|
13
|
+
logout = this.prismicAuthManager.logout.bind(this.prismicAuthManager);
|
|
14
|
+
checkIsLoggedIn = this.prismicAuthManager.checkIsLoggedIn.bind(this.prismicAuthManager);
|
|
15
|
+
refreshAuthenticationToken = this.prismicAuthManager.refreshAuthenticationToken.bind(this.prismicAuthManager);
|
|
16
|
+
getAuthenticationToken = this.prismicAuthManager.getAuthenticationToken.bind(this.prismicAuthManager);
|
|
17
|
+
getProfile = this.prismicAuthManager.getProfile.bind(this.prismicAuthManager);
|
|
18
|
+
}
|
|
19
|
+
export {
|
|
20
|
+
UserManager
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=UserManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserManager.js","sources":["../../../../src/managers/user/UserManager.ts"],"sourcesContent":["import { PrismicError } from \"../../errors\";\nimport { BaseManager } from \"../BaseManager\";\nimport { PrismicManager } from \"../PrismicManager\";\n\nexport class UserManager extends BaseManager {\n\tconstructor(prismicManager: PrismicManager) {\n\t\tsuper(prismicManager);\n\n\t\tif (!prismicManager.getPrismicAuthManager()) {\n\t\t\tthrow new PrismicError(\n\t\t\t\t\"PrismicManager._prismicAuthManager must be set with a PrismicAuthManager instance before instantiating UserManager.\",\n\t\t\t);\n\t\t}\n\t}\n\n\tlogin = this.prismicAuthManager.login.bind(this.prismicAuthManager);\n\tgetLoginSessionInfo = this.prismicAuthManager.getLoginSessionInfo.bind(\n\t\tthis.prismicAuthManager,\n\t);\n\tnodeLoginSession = this.prismicAuthManager.nodeLoginSession.bind(\n\t\tthis.prismicAuthManager,\n\t);\n\tlogout = this.prismicAuthManager.logout.bind(this.prismicAuthManager);\n\tcheckIsLoggedIn = this.prismicAuthManager.checkIsLoggedIn.bind(\n\t\tthis.prismicAuthManager,\n\t);\n\trefreshAuthenticationToken =\n\t\tthis.prismicAuthManager.refreshAuthenticationToken.bind(\n\t\t\tthis.prismicAuthManager,\n\t\t);\n\tgetAuthenticationToken = this.prismicAuthManager.getAuthenticationToken.bind(\n\t\tthis.prismicAuthManager,\n\t);\n\tgetProfile = this.prismicAuthManager.getProfile.bind(this.prismicAuthManager);\n}\n"],"names":[],"mappings":";;AAIM,MAAO,oBAAoB,YAAW;AAAA,EAC3C,YAAY,gBAA8B;AACzC,UAAM,cAAc;AAEpB,QAAI,CAAC,eAAe,yBAAyB;AAC5C,YAAM,IAAI,aACT,qHAAqH;AAAA,IAEvH;AAAA,EACD;AAAA,EAEA,QAAQ,KAAK,mBAAmB,MAAM,KAAK,KAAK,kBAAkB;AAAA,EAClE,sBAAsB,KAAK,mBAAmB,oBAAoB,KACjE,KAAK,kBAAkB;AAAA,EAExB,mBAAmB,KAAK,mBAAmB,iBAAiB,KAC3D,KAAK,kBAAkB;AAAA,EAExB,SAAS,KAAK,mBAAmB,OAAO,KAAK,KAAK,kBAAkB;AAAA,EACpE,kBAAkB,KAAK,mBAAmB,gBAAgB,KACzD,KAAK,kBAAkB;AAAA,EAExB,6BACC,KAAK,mBAAmB,2BAA2B,KAClD,KAAK,kBAAkB;AAAA,EAEzB,yBAAyB,KAAK,mBAAmB,uBAAuB,KACvE,KAAK,kBAAkB;AAAA,EAExB,aAAa,KAAK,mBAAmB,WAAW,KAAK,KAAK,kBAAkB;AAC5E;"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { BaseManager } from "../BaseManager.js";
|
|
2
|
+
type CheckCLIVersionLatestArgs = {
|
|
3
|
+
currentVersion: string;
|
|
4
|
+
};
|
|
5
|
+
export declare class VersionsManager extends BaseManager {
|
|
6
|
+
/**
|
|
7
|
+
* Fetches the latest stable version of the Prismic CLI from npm.
|
|
8
|
+
*
|
|
9
|
+
* @returns The latest stable version string.
|
|
10
|
+
*/
|
|
11
|
+
getLatestCLIVersion(): Promise<string>;
|
|
12
|
+
/**
|
|
13
|
+
* Checks if the current CLI version is the latest available version.
|
|
14
|
+
*
|
|
15
|
+
* @param args - Arguments object containing the current version.
|
|
16
|
+
*
|
|
17
|
+
* @returns `true` if the current version is the latest, `false` otherwise.
|
|
18
|
+
*/
|
|
19
|
+
checkIsCLIVersionLatest(args: CheckCLIVersionLatestArgs): Promise<boolean>;
|
|
20
|
+
}
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import semver from "semver";
|
|
2
|
+
import { PRISMIC_CLI_NPM_PACKAGE_NAME } from "../../constants/PRISMIC_CLI_NPM_PACKAGE_NAME.js";
|
|
3
|
+
import { fetchNPMPackageVersions } from "../../lib/fetchNPMPackageVersions.js";
|
|
4
|
+
import { BaseManager } from "../BaseManager.js";
|
|
5
|
+
class VersionsManager extends BaseManager {
|
|
6
|
+
/**
|
|
7
|
+
* Fetches the latest stable version of the Prismic CLI from npm.
|
|
8
|
+
*
|
|
9
|
+
* @returns The latest stable version string.
|
|
10
|
+
*/
|
|
11
|
+
async getLatestCLIVersion() {
|
|
12
|
+
const versions = await fetchNPMPackageVersions({
|
|
13
|
+
packageName: PRISMIC_CLI_NPM_PACKAGE_NAME
|
|
14
|
+
});
|
|
15
|
+
const stableVersions = versions.filter((version) => {
|
|
16
|
+
return semver.prerelease(version) === null;
|
|
17
|
+
});
|
|
18
|
+
if (stableVersions.length === 0) {
|
|
19
|
+
throw new Error("No stable versions found for the package on the npm registry.");
|
|
20
|
+
}
|
|
21
|
+
const sortedVersions = semver.rsort(stableVersions);
|
|
22
|
+
return sortedVersions[0];
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Checks if the current CLI version is the latest available version.
|
|
26
|
+
*
|
|
27
|
+
* @param args - Arguments object containing the current version.
|
|
28
|
+
*
|
|
29
|
+
* @returns `true` if the current version is the latest, `false` otherwise.
|
|
30
|
+
*/
|
|
31
|
+
async checkIsCLIVersionLatest(args) {
|
|
32
|
+
const latestVersion = await this.getLatestCLIVersion();
|
|
33
|
+
return semver.eq(args.currentVersion, latestVersion);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export {
|
|
37
|
+
VersionsManager
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=VersionsManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VersionsManager.js","sources":["../../../../src/managers/versions/VersionsManager.ts"],"sourcesContent":["import semver from \"semver\";\n\nimport { PRISMIC_CLI_NPM_PACKAGE_NAME } from \"../../constants/PRISMIC_CLI_NPM_PACKAGE_NAME\";\nimport { fetchNPMPackageVersions } from \"../../lib/fetchNPMPackageVersions\";\nimport { BaseManager } from \"../BaseManager\";\n\ntype CheckCLIVersionLatestArgs = {\n\tcurrentVersion: string;\n};\n\nexport class VersionsManager extends BaseManager {\n\t/**\n\t * Fetches the latest stable version of the Prismic CLI from npm.\n\t *\n\t * @returns The latest stable version string.\n\t */\n\tasync getLatestCLIVersion(): Promise<string> {\n\t\tconst versions = await fetchNPMPackageVersions({\n\t\t\tpackageName: PRISMIC_CLI_NPM_PACKAGE_NAME,\n\t\t});\n\n\t\t// Filter out pre-release versions (alpha, beta, rc, etc.)\n\t\tconst stableVersions = versions.filter((version) => {\n\t\t\treturn semver.prerelease(version) === null;\n\t\t});\n\n\t\tif (stableVersions.length === 0) {\n\t\t\tthrow new Error(\n\t\t\t\t\"No stable versions found for the package on the npm registry.\",\n\t\t\t);\n\t\t}\n\n\t\t// Sort versions in descending order and return the latest\n\t\tconst sortedVersions = semver.rsort(stableVersions);\n\n\t\treturn sortedVersions[0];\n\t}\n\n\t/**\n\t * Checks if the current CLI version is the latest available version.\n\t *\n\t * @param args - Arguments object containing the current version.\n\t *\n\t * @returns `true` if the current version is the latest, `false` otherwise.\n\t */\n\tasync checkIsCLIVersionLatest(\n\t\targs: CheckCLIVersionLatestArgs,\n\t): Promise<boolean> {\n\t\tconst latestVersion = await this.getLatestCLIVersion();\n\n\t\treturn semver.eq(args.currentVersion, latestVersion);\n\t}\n}\n"],"names":[],"mappings":";;;;AAUM,MAAO,wBAAwB,YAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM/C,MAAM,sBAAmB;AACxB,UAAM,WAAW,MAAM,wBAAwB;AAAA,MAC9C,aAAa;AAAA,IAAA,CACb;AAGD,UAAM,iBAAiB,SAAS,OAAO,CAAC,YAAW;AAClD,aAAO,OAAO,WAAW,OAAO,MAAM;AAAA,IACvC,CAAC;AAED,QAAI,eAAe,WAAW,GAAG;AAChC,YAAM,IAAI,MACT,+DAA+D;AAAA,IAEjE;AAGA,UAAM,iBAAiB,OAAO,MAAM,cAAc;AAElD,WAAO,eAAe,CAAC;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,wBACL,MAA+B;AAE/B,UAAM,gBAAgB,MAAM,KAAK,oBAAA;AAEjC,WAAO,OAAO,GAAG,KAAK,gBAAgB,aAAa;AAAA,EACpD;AACA;"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { detect as niDetect } from "@antfu/ni";
|
|
2
|
+
import { HookError, PluginOptions } from "@prismicio/plugin-kit";
|
|
3
|
+
export type PackageManager = NonNullable<Awaited<ReturnType<typeof niDetect>>>;
|
|
4
|
+
export type { APIEndpoints } from "./constants/API_ENDPOINTS.js";
|
|
5
|
+
/**
|
|
6
|
+
* A string, object, or instance representing a registered plugin.
|
|
7
|
+
*
|
|
8
|
+
* @typeParam TPluginOptions - User-provided options for the plugin.
|
|
9
|
+
*/
|
|
10
|
+
export type PrismicConfigPluginRegistration<TPluginOptions extends PluginOptions = PluginOptions> = string | {
|
|
11
|
+
resolve: string;
|
|
12
|
+
options?: TPluginOptions;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Prismic configuration from `prismic.config.js`.
|
|
16
|
+
*/
|
|
17
|
+
export type PrismicConfig = {
|
|
18
|
+
apiEndpoint?: string;
|
|
19
|
+
repositoryName: string;
|
|
20
|
+
libraries?: string[];
|
|
21
|
+
adapter: PrismicConfigPluginRegistration;
|
|
22
|
+
};
|
|
23
|
+
export type OnlyHookErrors<THookResult extends {
|
|
24
|
+
errors: HookError[];
|
|
25
|
+
} | Promise<{
|
|
26
|
+
errors: HookError[];
|
|
27
|
+
}>> = Pick<Awaited<THookResult>, "errors">;
|
|
28
|
+
export type S3ACL = {
|
|
29
|
+
uploadEndpoint: string;
|
|
30
|
+
requiredFormDataFields: Record<string, string>;
|
|
31
|
+
imgixEndpoint: string;
|
|
32
|
+
};
|
package/package.json
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@prismicio/manager",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Manage all aspects of a Prismic project.",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "ssh://git@github.com/prismicio/devtools.git",
|
|
8
|
+
"directory": "packages/manager"
|
|
9
|
+
},
|
|
10
|
+
"license": "Apache-2.0",
|
|
11
|
+
"author": "Prismic <contact@prismic.io> (https://prismic.io)",
|
|
12
|
+
"sideEffects": false,
|
|
13
|
+
"type": "module",
|
|
14
|
+
"exports": {
|
|
15
|
+
".": {
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"import": "./dist/index.js"
|
|
18
|
+
},
|
|
19
|
+
"./client": {
|
|
20
|
+
"types": "./dist/client/index.d.js",
|
|
21
|
+
"import": "./dist/client.js"
|
|
22
|
+
},
|
|
23
|
+
"./test": {
|
|
24
|
+
"types": "./dist/test/index.d.js",
|
|
25
|
+
"import": "./dist/test.js"
|
|
26
|
+
},
|
|
27
|
+
"./package.json": "./package.json"
|
|
28
|
+
},
|
|
29
|
+
"main": "dist/index.js",
|
|
30
|
+
"module": "dist/index.js",
|
|
31
|
+
"types": "dist/index.d.ts",
|
|
32
|
+
"typesVersions": {
|
|
33
|
+
"*": {
|
|
34
|
+
"*": [
|
|
35
|
+
"dist/index.d.ts"
|
|
36
|
+
],
|
|
37
|
+
"client": [
|
|
38
|
+
"dist/client/index.d.ts"
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"files": [
|
|
43
|
+
"dist",
|
|
44
|
+
"src"
|
|
45
|
+
],
|
|
46
|
+
"engines": {
|
|
47
|
+
"node": ">=20.19.0"
|
|
48
|
+
},
|
|
49
|
+
"publishConfig": {
|
|
50
|
+
"access": "public"
|
|
51
|
+
},
|
|
52
|
+
"scripts": {
|
|
53
|
+
"build": "vite build",
|
|
54
|
+
"dev": "vite build --watch --mode development",
|
|
55
|
+
"types": "tsc --noEmit",
|
|
56
|
+
"format": "prettier --write .",
|
|
57
|
+
"lint": "eslint --max-warnings 0 .",
|
|
58
|
+
"prepack": "$npm_execpath run build",
|
|
59
|
+
"depcheck": "depcheck --config=.depcheckrc",
|
|
60
|
+
"audit": "yarn npm audit --environment production --severity high"
|
|
61
|
+
},
|
|
62
|
+
"dependencies": {
|
|
63
|
+
"@antfu/ni": "27.0.1",
|
|
64
|
+
"@prismicio/client": "7.21.0",
|
|
65
|
+
"@prismicio/custom-types-client": "2.1.0",
|
|
66
|
+
"@prismicio/plugin-kit": "0.0.1",
|
|
67
|
+
"@prismicio/types-internal": "3.16.1",
|
|
68
|
+
"@segment/analytics-node": "2.3.0",
|
|
69
|
+
"cookie": "1.1.1",
|
|
70
|
+
"cors": "2.8.5",
|
|
71
|
+
"execa": "9.6.0",
|
|
72
|
+
"fp-ts": "2.16.11",
|
|
73
|
+
"get-port": "7.1.0",
|
|
74
|
+
"h3": "1.15.4",
|
|
75
|
+
"io-ts": "2.2.22",
|
|
76
|
+
"io-ts-types": "0.5.19",
|
|
77
|
+
"node-fetch": "3.3.2",
|
|
78
|
+
"prettier": "3.7.1",
|
|
79
|
+
"rc9": "2.1.2",
|
|
80
|
+
"semver": "7.7.3",
|
|
81
|
+
"zod": "4.1.13"
|
|
82
|
+
},
|
|
83
|
+
"devDependencies": {
|
|
84
|
+
"@amplitude/experiment-node-server": "1.12.1",
|
|
85
|
+
"@eslint/js": "9.28.0",
|
|
86
|
+
"@trivago/prettier-plugin-sort-imports": "6.0.0",
|
|
87
|
+
"@types/cors": "2.8.19",
|
|
88
|
+
"@types/semver": "7.7.1",
|
|
89
|
+
"depcheck": "1.4.7",
|
|
90
|
+
"eslint": "9.39.1",
|
|
91
|
+
"eslint-config-prettier": "10.1.8",
|
|
92
|
+
"eslint-plugin-tsdoc": "0.5.0",
|
|
93
|
+
"prettier": "3.7.1",
|
|
94
|
+
"prettier-plugin-jsdoc": "1.7.0",
|
|
95
|
+
"typescript": "5.9.3",
|
|
96
|
+
"typescript-eslint": "8.33.0",
|
|
97
|
+
"vite": "7.2.4",
|
|
98
|
+
"vite-plugin-sdk": "0.1.5"
|
|
99
|
+
}
|
|
100
|
+
}
|
|
@@ -0,0 +1,346 @@
|
|
|
1
|
+
import * as fs from "node:fs/promises";
|
|
2
|
+
import * as http from "node:http";
|
|
3
|
+
import * as os from "node:os";
|
|
4
|
+
import * as path from "node:path";
|
|
5
|
+
|
|
6
|
+
import cors from "cors";
|
|
7
|
+
import getPort from "get-port";
|
|
8
|
+
import * as h3 from "h3";
|
|
9
|
+
import fetch from "node-fetch";
|
|
10
|
+
import * as z from "zod";
|
|
11
|
+
|
|
12
|
+
import { API_ENDPOINTS } from "../constants/API_ENDPOINTS";
|
|
13
|
+
import { PRISMIC_CLI_USER_AGENT } from "../constants/PRISMIC_CLI_USER_AGENT";
|
|
14
|
+
import {
|
|
15
|
+
InternalError,
|
|
16
|
+
UnauthenticatedError,
|
|
17
|
+
UnexpectedDataError,
|
|
18
|
+
} from "../errors";
|
|
19
|
+
import { decode } from "../lib/decode";
|
|
20
|
+
|
|
21
|
+
import { createPrismicAuthManagerMiddleware } from "./createPrismicAuthManagerMiddleware";
|
|
22
|
+
|
|
23
|
+
const PERSISTED_AUTH_STATE_FILE_NAME = ".prismic";
|
|
24
|
+
const DEFAULT_PERSISTED_AUTH_STATE: PrismicAuthState = {
|
|
25
|
+
base: "https://prismic.io",
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const PrismicAuthStateSchema = z.object({
|
|
29
|
+
base: z.string(),
|
|
30
|
+
token: z.string().optional(),
|
|
31
|
+
});
|
|
32
|
+
export type PrismicAuthState = z.infer<typeof PrismicAuthStateSchema>;
|
|
33
|
+
|
|
34
|
+
const PrismicUserProfileSchema = z.object({
|
|
35
|
+
userId: z.string(),
|
|
36
|
+
shortId: z.string(),
|
|
37
|
+
intercomHash: z.string(),
|
|
38
|
+
email: z.string(),
|
|
39
|
+
firstName: z.string(),
|
|
40
|
+
lastName: z.string(),
|
|
41
|
+
});
|
|
42
|
+
export type PrismicUserProfile = z.infer<typeof PrismicUserProfileSchema>;
|
|
43
|
+
|
|
44
|
+
type PrismicAuthManagerConstructorArgs = {
|
|
45
|
+
scopedDirectory?: string;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
type PrismicAuthManagerLoginArgs = {
|
|
49
|
+
email: string;
|
|
50
|
+
token: string;
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
type PrismicAuthManagerGetLoginSessionInfoReturnType = {
|
|
54
|
+
port: number;
|
|
55
|
+
url: string;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
type PrismicAuthManagerNodeLoginSessionArgs = {
|
|
59
|
+
port: number;
|
|
60
|
+
onListenCallback?: () => void;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
type GetProfileForAuthenticationTokenArgs = {
|
|
64
|
+
authenticationToken: string;
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
const checkHasAuthenticationToken = (
|
|
68
|
+
authState: PrismicAuthState,
|
|
69
|
+
): authState is PrismicAuthState & {
|
|
70
|
+
token: string;
|
|
71
|
+
} => {
|
|
72
|
+
return Boolean(authState.token);
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
export class PrismicAuthManager {
|
|
76
|
+
scopedDirectory: string;
|
|
77
|
+
|
|
78
|
+
constructor({
|
|
79
|
+
scopedDirectory = os.homedir(),
|
|
80
|
+
}: PrismicAuthManagerConstructorArgs = {}) {
|
|
81
|
+
this.scopedDirectory = scopedDirectory;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
async login(args: PrismicAuthManagerLoginArgs): Promise<void> {
|
|
85
|
+
const authState = await this._readPersistedAuthState();
|
|
86
|
+
|
|
87
|
+
// Set the auth's URL base to the current base at runtime.
|
|
88
|
+
authState.base = API_ENDPOINTS.PrismicWroom;
|
|
89
|
+
authState.token = args.token;
|
|
90
|
+
|
|
91
|
+
await this._writePersistedAuthState(authState);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
async getLoginSessionInfo(): Promise<PrismicAuthManagerGetLoginSessionInfoReturnType> {
|
|
95
|
+
// Pick a random port, with a preference for historic `5555`
|
|
96
|
+
const port = await getPort({ port: 5555 });
|
|
97
|
+
|
|
98
|
+
const url = new URL(
|
|
99
|
+
`./dashboard/cli/login?source=prismic-cli&port=${port}`,
|
|
100
|
+
API_ENDPOINTS.PrismicWroom,
|
|
101
|
+
).toString();
|
|
102
|
+
|
|
103
|
+
return {
|
|
104
|
+
port,
|
|
105
|
+
url,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
async nodeLoginSession(
|
|
110
|
+
args: PrismicAuthManagerNodeLoginSessionArgs,
|
|
111
|
+
): Promise<void> {
|
|
112
|
+
return new Promise<void>((resolve, reject) => {
|
|
113
|
+
// Timeout attempt after 3 minutes
|
|
114
|
+
const timeout = setTimeout(() => {
|
|
115
|
+
server.close();
|
|
116
|
+
reject(
|
|
117
|
+
new Error(
|
|
118
|
+
"Login timeout, server did not receive a response within a 3-minute delay",
|
|
119
|
+
),
|
|
120
|
+
);
|
|
121
|
+
}, 180_000);
|
|
122
|
+
|
|
123
|
+
const app = h3.createApp();
|
|
124
|
+
app.use(h3.fromNodeMiddleware(cors()));
|
|
125
|
+
app.use(
|
|
126
|
+
h3.fromNodeMiddleware(
|
|
127
|
+
createPrismicAuthManagerMiddleware({
|
|
128
|
+
prismicAuthManager: this,
|
|
129
|
+
onLoginCallback() {
|
|
130
|
+
// Cleanup process and resolve
|
|
131
|
+
clearTimeout(timeout);
|
|
132
|
+
server.close();
|
|
133
|
+
resolve();
|
|
134
|
+
},
|
|
135
|
+
}),
|
|
136
|
+
),
|
|
137
|
+
);
|
|
138
|
+
|
|
139
|
+
// Start server
|
|
140
|
+
const server = http.createServer(h3.toNodeListener(app));
|
|
141
|
+
server.once("listening", () => {
|
|
142
|
+
if (args.onListenCallback) {
|
|
143
|
+
args.onListenCallback();
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
server.listen(args.port, "127.0.0.1");
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
async logout(): Promise<void> {
|
|
151
|
+
const authState = await this._readPersistedAuthState();
|
|
152
|
+
|
|
153
|
+
authState.token = undefined;
|
|
154
|
+
|
|
155
|
+
await this._writePersistedAuthState(authState);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
async checkIsLoggedIn(): Promise<boolean> {
|
|
159
|
+
const authState = await this._readPersistedAuthState();
|
|
160
|
+
|
|
161
|
+
if (checkHasAuthenticationToken(authState)) {
|
|
162
|
+
const url = new URL(
|
|
163
|
+
"./validate",
|
|
164
|
+
API_ENDPOINTS.PrismicLegacyAuthenticationApi,
|
|
165
|
+
);
|
|
166
|
+
url.searchParams.set("token", authState.token);
|
|
167
|
+
|
|
168
|
+
let res;
|
|
169
|
+
try {
|
|
170
|
+
res = await fetch(url.toString(), {
|
|
171
|
+
headers: {
|
|
172
|
+
"User-Agent": PRISMIC_CLI_USER_AGENT,
|
|
173
|
+
},
|
|
174
|
+
});
|
|
175
|
+
} catch {
|
|
176
|
+
// Noop, we return if `res` is not defined.
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
if (!res || !res.ok) {
|
|
180
|
+
await this.logout();
|
|
181
|
+
|
|
182
|
+
return false;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
return true;
|
|
186
|
+
} else {
|
|
187
|
+
return false;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
async getAuthenticationToken(): Promise<string> {
|
|
192
|
+
// If already logged in with a valid token, return it
|
|
193
|
+
let isLoggedIn = await this.checkIsLoggedIn();
|
|
194
|
+
|
|
195
|
+
if (isLoggedIn) {
|
|
196
|
+
const authState = await this._readPersistedAuthState();
|
|
197
|
+
|
|
198
|
+
if (authState.token) {
|
|
199
|
+
return authState.token;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
// Not logged in - attempt silent token refresh
|
|
204
|
+
// Note: checkIsLoggedIn() logs out on invalid tokens, so refresh
|
|
205
|
+
// will only work if there was no token (edge case) or network failed
|
|
206
|
+
try {
|
|
207
|
+
await this.refreshAuthenticationToken();
|
|
208
|
+
|
|
209
|
+
// Verify the refreshed token is valid
|
|
210
|
+
isLoggedIn = await this.checkIsLoggedIn();
|
|
211
|
+
if (isLoggedIn) {
|
|
212
|
+
const authState = await this._readPersistedAuthState();
|
|
213
|
+
if (authState.token) {
|
|
214
|
+
return authState.token;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
} catch {
|
|
218
|
+
// Refresh failed - fall through to throw UnauthenticatedError
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
throw new UnauthenticatedError();
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
async refreshAuthenticationToken(): Promise<void> {
|
|
225
|
+
const authState = await this._readPersistedAuthState();
|
|
226
|
+
|
|
227
|
+
if (checkHasAuthenticationToken(authState)) {
|
|
228
|
+
const url = new URL(
|
|
229
|
+
"./refreshtoken",
|
|
230
|
+
API_ENDPOINTS.PrismicLegacyAuthenticationApi,
|
|
231
|
+
);
|
|
232
|
+
url.searchParams.set("token", authState.token);
|
|
233
|
+
|
|
234
|
+
const res = await fetch(url.toString(), {
|
|
235
|
+
headers: {
|
|
236
|
+
"User-Agent": PRISMIC_CLI_USER_AGENT,
|
|
237
|
+
},
|
|
238
|
+
});
|
|
239
|
+
const text = await res.text();
|
|
240
|
+
|
|
241
|
+
if (res.ok) {
|
|
242
|
+
authState.token = text;
|
|
243
|
+
|
|
244
|
+
await this._writePersistedAuthState(authState);
|
|
245
|
+
} else {
|
|
246
|
+
throw new InternalError("Failed to refresh authentication token.", {
|
|
247
|
+
cause: text,
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
} else {
|
|
251
|
+
throw new UnauthenticatedError();
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
async getProfile(): Promise<PrismicUserProfile> {
|
|
256
|
+
const authenticationToken = await this.getAuthenticationToken();
|
|
257
|
+
|
|
258
|
+
return await this._getProfileForAuthenticationToken({
|
|
259
|
+
authenticationToken,
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
private async _getProfileForAuthenticationToken(
|
|
264
|
+
args: GetProfileForAuthenticationTokenArgs,
|
|
265
|
+
): Promise<PrismicUserProfile> {
|
|
266
|
+
const url = new URL("./profile", API_ENDPOINTS.PrismicLegacyUserApi);
|
|
267
|
+
const res = await fetch(url.toString(), {
|
|
268
|
+
headers: {
|
|
269
|
+
Authorization: `Bearer ${args.authenticationToken}`,
|
|
270
|
+
"User-Agent": PRISMIC_CLI_USER_AGENT,
|
|
271
|
+
},
|
|
272
|
+
});
|
|
273
|
+
|
|
274
|
+
if (res.ok) {
|
|
275
|
+
const json = await res.json();
|
|
276
|
+
const { value: profile, error } = decode(PrismicUserProfileSchema, json);
|
|
277
|
+
|
|
278
|
+
if (error) {
|
|
279
|
+
throw new UnexpectedDataError(
|
|
280
|
+
"Received invalid data from the Prismic user service.",
|
|
281
|
+
);
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
return profile;
|
|
285
|
+
} else {
|
|
286
|
+
const text = await res.text();
|
|
287
|
+
throw new InternalError(
|
|
288
|
+
"Failed to retrieve profile from the Prismic user service.",
|
|
289
|
+
{
|
|
290
|
+
cause: text,
|
|
291
|
+
},
|
|
292
|
+
);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
private async _readPersistedAuthState(): Promise<PrismicAuthState> {
|
|
297
|
+
const authStateFilePath = this._getPersistedAuthStateFilePath();
|
|
298
|
+
|
|
299
|
+
let authStateFileContents: string = JSON.stringify({});
|
|
300
|
+
let rawAuthState: Record<string, unknown> = {};
|
|
301
|
+
|
|
302
|
+
try {
|
|
303
|
+
authStateFileContents = await fs.readFile(authStateFilePath, "utf8");
|
|
304
|
+
rawAuthState = JSON.parse(authStateFileContents);
|
|
305
|
+
} catch {
|
|
306
|
+
// Write a default persisted state if it doesn't already exist.
|
|
307
|
+
rawAuthState = DEFAULT_PERSISTED_AUTH_STATE;
|
|
308
|
+
authStateFileContents = JSON.stringify(rawAuthState, null, "\t");
|
|
309
|
+
|
|
310
|
+
await fs.mkdir(path.dirname(authStateFilePath), { recursive: true });
|
|
311
|
+
await fs.writeFile(authStateFilePath, authStateFileContents);
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
const { value: authState, error } = decode(
|
|
315
|
+
PrismicAuthStateSchema,
|
|
316
|
+
rawAuthState,
|
|
317
|
+
);
|
|
318
|
+
|
|
319
|
+
if (error) {
|
|
320
|
+
throw new UnexpectedDataError("Prismic authentication state is invalid.");
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
return authState;
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
private async _writePersistedAuthState(
|
|
327
|
+
authState: PrismicAuthState,
|
|
328
|
+
): Promise<void> {
|
|
329
|
+
const authStateFilePath = this._getPersistedAuthStateFilePath();
|
|
330
|
+
|
|
331
|
+
try {
|
|
332
|
+
await fs.writeFile(authStateFilePath, JSON.stringify(authState, null, 2));
|
|
333
|
+
} catch (error) {
|
|
334
|
+
throw new InternalError(
|
|
335
|
+
"Failed to write Prismic authentication state to the file system.",
|
|
336
|
+
{
|
|
337
|
+
cause: error,
|
|
338
|
+
},
|
|
339
|
+
);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
private _getPersistedAuthStateFilePath(): string {
|
|
344
|
+
return path.resolve(this.scopedDirectory, PERSISTED_AUTH_STATE_FILE_NAME);
|
|
345
|
+
}
|
|
346
|
+
}
|