@slicemachine/manager 0.17.8-beta.5 → 0.17.8-beta.6
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/lib/esm/config.cjs +91 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/config.cjs.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.cjs +17 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/constants.cjs.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.cjs +190 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/core-client.cjs.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/core-client.js +190 -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.cjs +90 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/identify.cjs.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.cjs +64 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/logger.cjs.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.cjs +17 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/messages.cjs.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.cjs +323 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/plugins/destination.cjs.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.cjs +55 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/revenue.cjs.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.cjs +251 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/timeline.cjs.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/timeline.js +251 -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.cjs +103 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/transports/base.cjs.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.cjs +15 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/chunk.cjs.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.cjs +126 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/debug.cjs.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/debug.js +126 -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.cjs +34 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/event-builder.cjs.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.cjs +14 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/result-builder.cjs.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.cjs +9 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/return-wrapper.cjs.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.cjs +25 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/uuid.cjs.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.cjs +58 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/valid-properties.cjs.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/valid-properties.js +58 -0
- package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/valid-properties.js.map +1 -0
- package/dist/_node_modules/@amplitude/analytics-node/lib/esm/config.cjs +21 -0
- package/dist/_node_modules/@amplitude/analytics-node/lib/esm/config.cjs.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.cjs +23 -0
- package/dist/_node_modules/@amplitude/analytics-node/lib/esm/index.cjs.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.cjs +81 -0
- package/dist/_node_modules/@amplitude/analytics-node/lib/esm/node-client.cjs.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.cjs +37 -0
- package/dist/_node_modules/@amplitude/analytics-node/lib/esm/plugins/context.cjs.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.cjs +85 -0
- package/dist/_node_modules/@amplitude/analytics-node/lib/esm/transports/http.cjs.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.cjs +5 -0
- package/dist/_node_modules/@amplitude/analytics-node/lib/esm/version.cjs.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.cjs +30 -0
- package/dist/_node_modules/@amplitude/analytics-types/lib/esm/event.cjs.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.cjs +41 -0
- package/dist/_node_modules/@amplitude/analytics-types/lib/esm/index.cjs.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.cjs +11 -0
- package/dist/_node_modules/@amplitude/analytics-types/lib/esm/logger.cjs.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.cjs +9 -0
- package/dist/_node_modules/@amplitude/analytics-types/lib/esm/plugin.cjs.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.cjs +9 -0
- package/dist/_node_modules/@amplitude/analytics-types/lib/esm/server-zone.cjs.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.cjs +15 -0
- package/dist/_node_modules/@amplitude/analytics-types/lib/esm/status.cjs.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.cjs +9 -0
- package/dist/_node_modules/@amplitude/analytics-types/lib/esm/transport.cjs.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.cjs +1247 -0
- package/dist/_node_modules/@amplitude/experiment-core/dist/experiment-core.esm.cjs.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-core/dist/experiment-core.esm.js +1247 -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.cjs +7 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/gen/version.cjs.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/gen/version.js +8 -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.cjs +29 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment-filter.cjs.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment-filter.js +30 -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.cjs +92 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment-service.cjs.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment-service.js +91 -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.cjs +25 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment.cjs.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment.js +26 -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.cjs +84 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/cookie.cjs.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/cookie.js +85 -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.cjs +37 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/factory.cjs.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/factory.js +38 -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.cjs +61 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/index.cjs.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/index.js +60 -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.cjs +87 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/cache.cjs.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/cache.js +88 -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.cjs +204 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/client.cjs.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/client.js +205 -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/fetcher.cjs +82 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/fetcher.cjs.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/fetcher.js +83 -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.cjs +121 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/poller.cjs.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/remote/client.cjs +166 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/remote/client.cjs.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/remote/client.js +167 -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.cjs +105 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/transport/http.cjs.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/transport/http.js +106 -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/types/config.cjs +38 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/types/config.cjs.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/types/config.js +39 -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/util/backoff.cjs +51 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/backoff.cjs.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/backoff.js +52 -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.cjs +92 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/cache.cjs.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/cache.js +93 -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/hash.cjs +18 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/hash.cjs.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/hash.js +19 -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.cjs +20 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/logger.cjs.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/logger.js +21 -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/time.cjs +13 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/time.cjs.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/time.js +14 -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.cjs +44 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/user.cjs.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/user.js +45 -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.cjs +39 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/variant.cjs.map +1 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/variant.js +38 -0
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/variant.js.map +1 -0
- package/dist/_node_modules/cross-spawn/index.cjs +1 -1
- package/dist/_node_modules/cross-spawn/index.js +1 -1
- package/dist/_node_modules/execa/_node_modules/get-stream/index.cjs +1 -1
- package/dist/_node_modules/execa/_node_modules/get-stream/index.js +1 -1
- package/dist/_node_modules/path-key/index.cjs +1 -1
- package/dist/_node_modules/path-key/index.js +1 -1
- package/dist/_node_modules/signal-exit/index.cjs +1 -1
- package/dist/_node_modules/signal-exit/index.js +1 -1
- package/dist/_node_modules/tslib/tslib.es6.cjs +206 -0
- package/dist/_node_modules/tslib/tslib.es6.cjs.map +1 -0
- package/dist/_node_modules/tslib/tslib.es6.js +207 -0
- package/dist/_node_modules/tslib/tslib.es6.js.map +1 -0
- package/dist/_virtual/_commonjsHelpers.cjs +30 -0
- package/dist/_virtual/_commonjsHelpers.cjs.map +1 -1
- package/dist/_virtual/_commonjsHelpers.js +30 -0
- package/dist/_virtual/_commonjsHelpers.js.map +1 -1
- package/dist/_virtual/assignment-filter.cjs +5 -0
- package/dist/_virtual/assignment-filter.cjs.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.cjs +5 -0
- package/dist/_virtual/assignment-service.cjs.map +1 -0
- package/dist/_virtual/assignment-service.js +5 -0
- package/dist/_virtual/assignment-service.js.map +1 -0
- package/dist/_virtual/assignment.cjs +5 -0
- package/dist/_virtual/assignment.cjs.map +1 -0
- package/dist/_virtual/assignment.js +5 -0
- package/dist/_virtual/assignment.js.map +1 -0
- package/dist/_virtual/backoff.cjs +5 -0
- package/dist/_virtual/backoff.cjs.map +1 -0
- package/dist/_virtual/backoff.js +5 -0
- package/dist/_virtual/backoff.js.map +1 -0
- package/dist/_virtual/cache.cjs +5 -0
- package/dist/_virtual/cache.cjs.map +1 -0
- package/dist/_virtual/cache.js +5 -0
- package/dist/_virtual/cache.js.map +1 -0
- package/dist/_virtual/cache2.cjs +5 -0
- package/dist/_virtual/cache2.cjs.map +1 -0
- package/dist/_virtual/cache2.js +5 -0
- package/dist/_virtual/cache2.js.map +1 -0
- package/dist/_virtual/client.cjs +5 -0
- package/dist/_virtual/client.cjs.map +1 -0
- package/dist/_virtual/client.js +5 -0
- package/dist/_virtual/client.js.map +1 -0
- package/dist/_virtual/client2.cjs +5 -0
- package/dist/_virtual/client2.cjs.map +1 -0
- package/dist/_virtual/client2.js +5 -0
- package/dist/_virtual/client2.js.map +1 -0
- package/dist/_virtual/config.cjs +5 -0
- package/dist/_virtual/config.cjs.map +1 -0
- package/dist/_virtual/config.js +5 -0
- package/dist/_virtual/config.js.map +1 -0
- package/dist/_virtual/cookie.cjs +5 -0
- package/dist/_virtual/cookie.cjs.map +1 -0
- package/dist/_virtual/cookie.js +5 -0
- package/dist/_virtual/cookie.js.map +1 -0
- package/dist/_virtual/experiment-core.esm.cjs +6 -0
- package/dist/_virtual/experiment-core.esm.cjs.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.cjs +5 -0
- package/dist/_virtual/factory.cjs.map +1 -0
- package/dist/_virtual/factory.js +5 -0
- package/dist/_virtual/factory.js.map +1 -0
- package/dist/_virtual/fetcher.cjs +5 -0
- package/dist/_virtual/fetcher.cjs.map +1 -0
- package/dist/_virtual/fetcher.js +5 -0
- package/dist/_virtual/fetcher.js.map +1 -0
- package/dist/_virtual/hash.cjs +5 -0
- package/dist/_virtual/hash.cjs.map +1 -0
- package/dist/_virtual/hash.js +5 -0
- package/dist/_virtual/hash.js.map +1 -0
- package/dist/_virtual/http.cjs +5 -0
- package/dist/_virtual/http.cjs.map +1 -0
- package/dist/_virtual/http.js +5 -0
- package/dist/_virtual/http.js.map +1 -0
- package/dist/_virtual/index.cjs +2 -2
- package/dist/_virtual/index.js +2 -2
- package/dist/_virtual/index2.cjs +4 -3
- package/dist/_virtual/index2.cjs.map +1 -1
- package/dist/_virtual/index2.js +4 -2
- package/dist/_virtual/index2.js.map +1 -1
- package/dist/_virtual/index3.cjs +2 -2
- package/dist/_virtual/index3.js +2 -2
- package/dist/_virtual/index4.cjs +2 -2
- package/dist/_virtual/index4.js +2 -2
- package/dist/_virtual/index5.cjs +5 -0
- package/dist/_virtual/index5.cjs.map +1 -0
- package/dist/_virtual/index5.js +5 -0
- package/dist/_virtual/index5.js.map +1 -0
- package/dist/_virtual/index6.cjs +5 -0
- package/dist/_virtual/index6.cjs.map +1 -0
- package/dist/_virtual/index6.js +5 -0
- package/dist/_virtual/index6.js.map +1 -0
- package/dist/_virtual/logger.cjs +5 -0
- package/dist/_virtual/logger.cjs.map +1 -0
- package/dist/_virtual/logger.js +5 -0
- package/dist/_virtual/logger.js.map +1 -0
- package/dist/_virtual/poller.cjs +5 -0
- package/dist/_virtual/poller.cjs.map +1 -0
- package/dist/_virtual/poller.js +5 -0
- package/dist/_virtual/poller.js.map +1 -0
- package/dist/_virtual/time.cjs +5 -0
- package/dist/_virtual/time.cjs.map +1 -0
- package/dist/_virtual/time.js +5 -0
- package/dist/_virtual/time.js.map +1 -0
- package/dist/_virtual/user.cjs +5 -0
- package/dist/_virtual/user.cjs.map +1 -0
- package/dist/_virtual/user.js +5 -0
- package/dist/_virtual/user.js.map +1 -0
- package/dist/_virtual/variant.cjs +5 -0
- package/dist/_virtual/variant.cjs.map +1 -0
- package/dist/_virtual/variant.js +5 -0
- package/dist/_virtual/variant.js.map +1 -0
- package/dist/_virtual/version.cjs +5 -0
- package/dist/_virtual/version.cjs.map +1 -0
- package/dist/_virtual/version.js +5 -0
- package/dist/_virtual/version.js.map +1 -0
- package/dist/constants/API_TOKENS.cjs +8 -2
- package/dist/constants/API_TOKENS.cjs.map +1 -1
- package/dist/constants/API_TOKENS.d.ts +1 -0
- package/dist/constants/API_TOKENS.js +8 -2
- package/dist/constants/API_TOKENS.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/managers/telemetry/TelemetryManager.cjs +28 -0
- package/dist/managers/telemetry/TelemetryManager.cjs.map +1 -1
- package/dist/managers/telemetry/TelemetryManager.d.ts +4 -0
- package/dist/managers/telemetry/TelemetryManager.js +28 -0
- package/dist/managers/telemetry/TelemetryManager.js.map +1 -1
- package/dist/managers/telemetry/types.cjs +8 -2
- package/dist/managers/telemetry/types.cjs.map +1 -1
- package/dist/managers/telemetry/types.d.ts +11 -2
- package/dist/managers/telemetry/types.js +8 -2
- package/dist/managers/telemetry/types.js.map +1 -1
- package/package.json +3 -2
- package/src/constants/API_TOKENS.ts +9 -2
- package/src/index.ts +2 -0
- package/src/managers/telemetry/TelemetryManager.ts +42 -1
- package/src/managers/telemetry/types.ts +27 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"experiment-core.esm.js","sources":["../../../../../../../node_modules/@amplitude/experiment-core/dist/experiment-core.esm.js"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nfunction __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function () {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nfunction __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nfunction __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n return ar;\n}\nfunction __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nvar EvaluationOperator = {\n IS: 'is',\n IS_NOT: 'is not',\n CONTAINS: 'contains',\n DOES_NOT_CONTAIN: 'does not contain',\n LESS_THAN: 'less',\n LESS_THAN_EQUALS: 'less or equal',\n GREATER_THAN: 'greater',\n GREATER_THAN_EQUALS: 'greater or equal',\n VERSION_LESS_THAN: 'version less',\n VERSION_LESS_THAN_EQUALS: 'version less or equal',\n VERSION_GREATER_THAN: 'version greater',\n VERSION_GREATER_THAN_EQUALS: 'version greater or equal',\n SET_IS: 'set is',\n SET_IS_NOT: 'set is not',\n SET_CONTAINS: 'set contains',\n SET_DOES_NOT_CONTAIN: 'set does not contain',\n SET_CONTAINS_ANY: 'set contains any',\n SET_DOES_NOT_CONTAIN_ANY: 'set does not contain any',\n REGEX_MATCH: 'regex match',\n REGEX_DOES_NOT_MATCH: 'regex does not match',\n};\n\nvar stringToUtf8ByteArray = function (str) {\n var out = [];\n var p = 0;\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i);\n if (c < 128) {\n out[p++] = c;\n }\n else if (c < 2048) {\n out[p++] = (c >> 6) | 192;\n out[p++] = (c & 63) | 128;\n }\n else if ((c & 0xfc00) == 0xd800 &&\n i + 1 < str.length &&\n (str.charCodeAt(i + 1) & 0xfc00) == 0xdc00) {\n // Surrogate Pair\n c = 0x10000 + ((c & 0x03ff) << 10) + (str.charCodeAt(++i) & 0x03ff);\n out[p++] = (c >> 18) | 240;\n out[p++] = ((c >> 12) & 63) | 128;\n out[p++] = ((c >> 6) & 63) | 128;\n out[p++] = (c & 63) | 128;\n }\n else {\n out[p++] = (c >> 12) | 224;\n out[p++] = ((c >> 6) & 63) | 128;\n out[p++] = (c & 63) | 128;\n }\n }\n return Uint8Array.from(out);\n};\n\nvar C1_32 = -0x3361d2af;\nvar C2_32 = 0x1b873593;\nvar R1_32 = 15;\nvar R2_32 = 13;\nvar M_32 = 5;\nvar N_32 = -0x19ab949c;\nvar hash32x86 = function (input, seed) {\n if (seed === void 0) { seed = 0; }\n var data = stringToUtf8ByteArray(input);\n var length = data.length;\n var nBlocks = length >> 2;\n var hash = seed;\n // body\n for (var i = 0; i < nBlocks; i++) {\n var index_1 = i << 2;\n var k = readIntLe(data, index_1);\n hash = mix32(k, hash);\n }\n // tail\n var index = nBlocks << 2;\n var k1 = 0;\n switch (length - index) {\n case 3:\n k1 ^= data[index + 2] << 16;\n k1 ^= data[index + 1] << 8;\n k1 ^= data[index];\n k1 = Math.imul(k1, C1_32);\n k1 = rotateLeft(k1, R1_32);\n k1 = Math.imul(k1, C2_32);\n hash ^= k1;\n break;\n case 2:\n k1 ^= data[index + 1] << 8;\n k1 ^= data[index];\n k1 = Math.imul(k1, C1_32);\n k1 = rotateLeft(k1, R1_32);\n k1 = Math.imul(k1, C2_32);\n hash ^= k1;\n break;\n case 1:\n k1 ^= data[index];\n k1 = Math.imul(k1, C1_32);\n k1 = rotateLeft(k1, R1_32);\n k1 = Math.imul(k1, C2_32);\n hash ^= k1;\n break;\n }\n hash ^= length;\n return fmix32(hash) >>> 0;\n};\nvar mix32 = function (k, hash) {\n var kResult = k;\n var hashResult = hash;\n kResult = Math.imul(kResult, C1_32);\n kResult = rotateLeft(kResult, R1_32);\n kResult = Math.imul(kResult, C2_32);\n hashResult ^= kResult;\n hashResult = rotateLeft(hashResult, R2_32);\n hashResult = Math.imul(hashResult, M_32);\n return (hashResult + N_32) | 0;\n};\nvar fmix32 = function (hash) {\n var hashResult = hash;\n hashResult ^= hashResult >>> 16;\n hashResult = Math.imul(hashResult, -0x7a143595);\n hashResult ^= hashResult >>> 13;\n hashResult = Math.imul(hashResult, -0x3d4d51cb);\n hashResult ^= hashResult >>> 16;\n return hashResult;\n};\nvar rotateLeft = function (x, n, width) {\n if (width === void 0) { width = 32; }\n if (n > width)\n n = n % width;\n var mask = (0xffffffff << (width - n)) >>> 0;\n var r = (((x & mask) >>> 0) >>> (width - n)) >>> 0;\n return ((x << n) | r) >>> 0;\n};\nvar readIntLe = function (data, index) {\n if (index === void 0) { index = 0; }\n var n = (data[index] << 24) |\n (data[index + 1] << 16) |\n (data[index + 2] << 8) |\n data[index + 3];\n return reverseBytes(n);\n};\nvar reverseBytes = function (n) {\n return (((n & -0x1000000) >>> 24) |\n ((n & 0x00ff0000) >>> 8) |\n ((n & 0x0000ff00) << 8) |\n ((n & 0x000000ff) << 24));\n};\n\nvar select = function (selectable, selector) {\n var e_1, _a;\n if (!selector || selector.length === 0) {\n return undefined;\n }\n try {\n for (var selector_1 = __values(selector), selector_1_1 = selector_1.next(); !selector_1_1.done; selector_1_1 = selector_1.next()) {\n var selectorElement = selector_1_1.value;\n if (!selectorElement || !selectable || typeof selectable !== 'object') {\n return undefined;\n }\n selectable = selectable[selectorElement];\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (selector_1_1 && !selector_1_1.done && (_a = selector_1.return)) _a.call(selector_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (!selectable) {\n return undefined;\n }\n else {\n return selectable;\n }\n};\n\n// major and minor should be non-negative numbers separated by a dot\nvar MAJOR_MINOR_REGEX = '(\\\\d+)\\\\.(\\\\d+)';\n// patch should be a non-negative number\nvar PATCH_REGEX = '(\\\\d+)';\n// prerelease is optional. If provided, it should be a hyphen followed by a\n// series of dot separated identifiers where an identifer can contain anything in [-0-9a-zA-Z]\nvar PRERELEASE_REGEX = '(-(([-\\\\w]+\\\\.?)*))?';\n// version pattern should be major.minor(.patchAndPreRelease) where .patchAndPreRelease is optional\nvar VERSION_PATTERN = \"^\".concat(MAJOR_MINOR_REGEX, \"(\\\\.\").concat(PATCH_REGEX).concat(PRERELEASE_REGEX, \")?$\");\nvar SemanticVersion = /** @class */ (function () {\n function SemanticVersion(major, minor, patch, preRelease) {\n if (preRelease === void 0) { preRelease = undefined; }\n this.major = major;\n this.minor = minor;\n this.patch = patch;\n this.preRelease = preRelease;\n }\n SemanticVersion.parse = function (version) {\n if (!version) {\n return undefined;\n }\n var matchGroup = new RegExp(VERSION_PATTERN).exec(version);\n if (!matchGroup) {\n return undefined;\n }\n var major = Number(matchGroup[1]);\n var minor = Number(matchGroup[2]);\n if (isNaN(major) || isNaN(minor)) {\n return undefined;\n }\n var patch = Number(matchGroup[4]) || 0;\n var preRelease = matchGroup[5] || undefined;\n return new SemanticVersion(major, minor, patch, preRelease);\n };\n SemanticVersion.prototype.compareTo = function (other) {\n if (this.major > other.major)\n return 1;\n if (this.major < other.major)\n return -1;\n if (this.minor > other.minor)\n return 1;\n if (this.minor < other.minor)\n return -1;\n if (this.patch > other.patch)\n return 1;\n if (this.patch < other.patch)\n return -1;\n if (this.preRelease && !other.preRelease)\n return -1;\n if (!this.preRelease && other.preRelease)\n return 1;\n if (this.preRelease && other.preRelease) {\n if (this.preRelease > other.preRelease)\n return 1;\n if (this.preRelease < other.preRelease)\n return -1;\n return 0;\n }\n return 0;\n };\n return SemanticVersion;\n}());\n\nvar EvaluationEngine = /** @class */ (function () {\n function EvaluationEngine() {\n }\n EvaluationEngine.prototype.evaluate = function (context, flags) {\n var e_1, _a;\n var results = {};\n var target = {\n context: context,\n result: results,\n };\n try {\n for (var flags_1 = __values(flags), flags_1_1 = flags_1.next(); !flags_1_1.done; flags_1_1 = flags_1.next()) {\n var flag = flags_1_1.value;\n // Evaluate flag and update results.\n var variant = this.evaluateFlag(target, flag);\n if (variant) {\n results[flag.key] = variant;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (flags_1_1 && !flags_1_1.done && (_a = flags_1.return)) _a.call(flags_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return results;\n };\n EvaluationEngine.prototype.evaluateFlag = function (target, flag) {\n var e_2, _a;\n var result;\n try {\n for (var _b = __values(flag.segments), _c = _b.next(); !_c.done; _c = _b.next()) {\n var segment = _c.value;\n result = this.evaluateSegment(target, flag, segment);\n if (result) {\n // Merge all metadata into the result\n var metadata = __assign(__assign(__assign({}, flag.metadata), segment.metadata), result.metadata);\n result = __assign(__assign({}, result), { metadata: metadata });\n break;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return result;\n };\n EvaluationEngine.prototype.evaluateSegment = function (target, flag, segment) {\n var e_3, _a, e_4, _b;\n if (!segment.conditions) {\n // Null conditions always match\n var variantKey = this.bucket(target, segment);\n if (variantKey !== undefined) {\n return flag.variants[variantKey];\n }\n else {\n return undefined;\n }\n }\n try {\n // Outer list logic is \"or\" (||)\n for (var _c = __values(segment.conditions), _d = _c.next(); !_d.done; _d = _c.next()) {\n var conditions = _d.value;\n var match = true;\n try {\n for (var conditions_1 = (e_4 = void 0, __values(conditions)), conditions_1_1 = conditions_1.next(); !conditions_1_1.done; conditions_1_1 = conditions_1.next()) {\n var condition = conditions_1_1.value;\n match = this.matchCondition(target, condition);\n if (!match) {\n break;\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (conditions_1_1 && !conditions_1_1.done && (_b = conditions_1.return)) _b.call(conditions_1);\n }\n finally { if (e_4) throw e_4.error; }\n }\n // On match, bucket the user.\n if (match) {\n var variantKey = this.bucket(target, segment);\n if (variantKey !== undefined) {\n return flag.variants[variantKey];\n }\n else {\n return undefined;\n }\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return undefined;\n };\n EvaluationEngine.prototype.matchCondition = function (target, condition) {\n var propValue = select(target, condition.selector);\n // We need special matching for null properties and set type prop values\n // and operators. All other values are matched as strings, since the\n // filter values are always strings.\n if (!propValue) {\n return this.matchNull(condition.op, condition.values);\n }\n else if (this.isSetOperator(condition.op)) {\n var propValueStringList = this.coerceStringArray(propValue);\n if (!propValueStringList) {\n return false;\n }\n return this.matchSet(propValueStringList, condition.op, condition.values);\n }\n else {\n var propValueString = this.coerceString(propValue);\n if (propValueString !== undefined) {\n return this.matchString(propValueString, condition.op, condition.values);\n }\n else {\n return false;\n }\n }\n };\n EvaluationEngine.prototype.getHash = function (key) {\n return hash32x86(key);\n };\n EvaluationEngine.prototype.bucket = function (target, segment) {\n var e_5, _a, e_6, _b;\n if (!segment.bucket) {\n // A null bucket means the segment is fully rolled out. Select the\n // default variant.\n return segment.variant;\n }\n // Select the bucketing value.\n var bucketingValue = this.coerceString(select(target, segment.bucket.selector));\n if (!bucketingValue || bucketingValue.length === 0) {\n // A null or empty bucketing value cannot be bucketed. Select the\n // default variant.\n return segment.variant;\n }\n // Salt and has the value, and compute the allocation and distribution\n // values.\n var keyToHash = \"\".concat(segment.bucket.salt, \"/\").concat(bucketingValue);\n var hash = this.getHash(keyToHash);\n var allocationValue = hash % 100;\n var distributionValue = Math.floor(hash / 100);\n try {\n for (var _c = __values(segment.bucket.allocations), _d = _c.next(); !_d.done; _d = _c.next()) {\n var allocation = _d.value;\n var allocationStart = allocation.range[0];\n var allocationEnd = allocation.range[1];\n if (allocationValue >= allocationStart &&\n allocationValue < allocationEnd) {\n try {\n for (var _e = (e_6 = void 0, __values(allocation.distributions)), _f = _e.next(); !_f.done; _f = _e.next()) {\n var distribution = _f.value;\n var distributionStart = distribution.range[0];\n var distributionEnd = distribution.range[1];\n if (distributionValue >= distributionStart &&\n distributionValue < distributionEnd) {\n return distribution.variant;\n }\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_6) throw e_6.error; }\n }\n }\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_5) throw e_5.error; }\n }\n return segment.variant;\n };\n EvaluationEngine.prototype.matchNull = function (op, filterValues) {\n var containsNone = this.containsNone(filterValues);\n switch (op) {\n case EvaluationOperator.IS:\n case EvaluationOperator.CONTAINS:\n case EvaluationOperator.LESS_THAN:\n case EvaluationOperator.LESS_THAN_EQUALS:\n case EvaluationOperator.GREATER_THAN:\n case EvaluationOperator.GREATER_THAN_EQUALS:\n case EvaluationOperator.VERSION_LESS_THAN:\n case EvaluationOperator.VERSION_LESS_THAN_EQUALS:\n case EvaluationOperator.VERSION_GREATER_THAN:\n case EvaluationOperator.VERSION_GREATER_THAN_EQUALS:\n case EvaluationOperator.SET_IS:\n case EvaluationOperator.SET_CONTAINS:\n case EvaluationOperator.SET_CONTAINS_ANY:\n return containsNone;\n case EvaluationOperator.IS_NOT:\n case EvaluationOperator.DOES_NOT_CONTAIN:\n case EvaluationOperator.SET_DOES_NOT_CONTAIN:\n case EvaluationOperator.SET_DOES_NOT_CONTAIN_ANY:\n return !containsNone;\n default:\n return false;\n }\n };\n EvaluationEngine.prototype.matchSet = function (propValues, op, filterValues) {\n switch (op) {\n case EvaluationOperator.SET_IS:\n return this.setEquals(propValues, filterValues);\n case EvaluationOperator.SET_IS_NOT:\n return !this.setEquals(propValues, filterValues);\n case EvaluationOperator.SET_CONTAINS:\n return this.matchesSetContainsAll(propValues, filterValues);\n case EvaluationOperator.SET_DOES_NOT_CONTAIN:\n return !this.matchesSetContainsAll(propValues, filterValues);\n case EvaluationOperator.SET_CONTAINS_ANY:\n return this.matchesSetContainsAny(propValues, filterValues);\n case EvaluationOperator.SET_DOES_NOT_CONTAIN_ANY:\n return !this.matchesSetContainsAny(propValues, filterValues);\n default:\n return false;\n }\n };\n EvaluationEngine.prototype.matchString = function (propValue, op, filterValues) {\n var _this = this;\n switch (op) {\n case EvaluationOperator.IS:\n return this.matchesIs(propValue, filterValues);\n case EvaluationOperator.IS_NOT:\n return !this.matchesIs(propValue, filterValues);\n case EvaluationOperator.CONTAINS:\n return this.matchesContains(propValue, filterValues);\n case EvaluationOperator.DOES_NOT_CONTAIN:\n return !this.matchesContains(propValue, filterValues);\n case EvaluationOperator.LESS_THAN:\n case EvaluationOperator.LESS_THAN_EQUALS:\n case EvaluationOperator.GREATER_THAN:\n case EvaluationOperator.GREATER_THAN_EQUALS:\n return this.matchesComparable(propValue, op, filterValues, function (value) { return _this.parseNumber(value); }, this.comparator);\n case EvaluationOperator.VERSION_LESS_THAN:\n case EvaluationOperator.VERSION_LESS_THAN_EQUALS:\n case EvaluationOperator.VERSION_GREATER_THAN:\n case EvaluationOperator.VERSION_GREATER_THAN_EQUALS:\n return this.matchesComparable(propValue, op, filterValues, function (value) { return SemanticVersion.parse(value); }, this.versionComparator);\n case EvaluationOperator.REGEX_MATCH:\n return this.matchesRegex(propValue, filterValues);\n case EvaluationOperator.REGEX_DOES_NOT_MATCH:\n return !this.matchesRegex(propValue, filterValues);\n default:\n return false;\n }\n };\n EvaluationEngine.prototype.matchesIs = function (propValue, filterValues) {\n if (this.containsBooleans(filterValues)) {\n var lower_1 = propValue.toLowerCase();\n if (lower_1 === 'true' || lower_1 === 'false') {\n return filterValues.some(function (value) { return value.toLowerCase() === lower_1; });\n }\n }\n return filterValues.some(function (value) { return propValue === value; });\n };\n EvaluationEngine.prototype.matchesContains = function (propValue, filterValues) {\n var e_7, _a;\n try {\n for (var filterValues_1 = __values(filterValues), filterValues_1_1 = filterValues_1.next(); !filterValues_1_1.done; filterValues_1_1 = filterValues_1.next()) {\n var filterValue = filterValues_1_1.value;\n if (propValue.toLowerCase().includes(filterValue.toLowerCase())) {\n return true;\n }\n }\n }\n catch (e_7_1) { e_7 = { error: e_7_1 }; }\n finally {\n try {\n if (filterValues_1_1 && !filterValues_1_1.done && (_a = filterValues_1.return)) _a.call(filterValues_1);\n }\n finally { if (e_7) throw e_7.error; }\n }\n return false;\n };\n EvaluationEngine.prototype.matchesComparable = function (propValue, op, filterValues, typeTransformer, typeComparator) {\n var _this = this;\n var propValueTransformed = typeTransformer(propValue);\n var filterValuesTransformed = filterValues\n .map(function (filterValue) {\n return typeTransformer(filterValue);\n })\n .filter(function (filterValue) {\n return filterValue !== undefined;\n });\n if (propValueTransformed === undefined ||\n filterValuesTransformed.length === 0) {\n return filterValues.some(function (filterValue) {\n return _this.comparator(propValue, op, filterValue);\n });\n }\n else {\n return filterValuesTransformed.some(function (filterValueTransformed) {\n return typeComparator(propValueTransformed, op, filterValueTransformed);\n });\n }\n };\n EvaluationEngine.prototype.comparator = function (propValue, op, filterValue) {\n switch (op) {\n case EvaluationOperator.LESS_THAN:\n case EvaluationOperator.VERSION_LESS_THAN:\n return propValue < filterValue;\n case EvaluationOperator.LESS_THAN_EQUALS:\n case EvaluationOperator.VERSION_LESS_THAN_EQUALS:\n return propValue <= filterValue;\n case EvaluationOperator.GREATER_THAN:\n case EvaluationOperator.VERSION_GREATER_THAN:\n return propValue > filterValue;\n case EvaluationOperator.GREATER_THAN_EQUALS:\n case EvaluationOperator.VERSION_GREATER_THAN_EQUALS:\n return propValue >= filterValue;\n default:\n return false;\n }\n };\n EvaluationEngine.prototype.versionComparator = function (propValue, op, filterValue) {\n var compareTo = propValue.compareTo(filterValue);\n switch (op) {\n case EvaluationOperator.LESS_THAN:\n case EvaluationOperator.VERSION_LESS_THAN:\n return compareTo < 0;\n case EvaluationOperator.LESS_THAN_EQUALS:\n case EvaluationOperator.VERSION_LESS_THAN_EQUALS:\n return compareTo <= 0;\n case EvaluationOperator.GREATER_THAN:\n case EvaluationOperator.VERSION_GREATER_THAN:\n return compareTo > 0;\n case EvaluationOperator.GREATER_THAN_EQUALS:\n case EvaluationOperator.VERSION_GREATER_THAN_EQUALS:\n return compareTo >= 0;\n default:\n return false;\n }\n };\n EvaluationEngine.prototype.matchesRegex = function (propValue, filterValues) {\n return filterValues.some(function (filterValue) {\n return Boolean(new RegExp(filterValue).exec(propValue));\n });\n };\n EvaluationEngine.prototype.containsNone = function (filterValues) {\n return filterValues.some(function (filterValue) {\n return filterValue === '(none)';\n });\n };\n EvaluationEngine.prototype.containsBooleans = function (filterValues) {\n return filterValues.some(function (filterValue) {\n switch (filterValue.toLowerCase()) {\n case 'true':\n case 'false':\n return true;\n default:\n return false;\n }\n });\n };\n EvaluationEngine.prototype.parseNumber = function (value) {\n var _a;\n return (_a = Number(value)) !== null && _a !== void 0 ? _a : undefined;\n };\n EvaluationEngine.prototype.coerceString = function (value) {\n if (!value) {\n return undefined;\n }\n if (typeof value === 'object') {\n return JSON.stringify(value);\n }\n return String(value);\n };\n EvaluationEngine.prototype.coerceStringArray = function (value) {\n var _this = this;\n if (Array.isArray(value)) {\n var anyArray = value;\n return anyArray\n .map(function (e) { return _this.coerceString(e); })\n .filter(Boolean);\n }\n var stringValue = String(value);\n try {\n var parsedValue = JSON.parse(stringValue);\n if (Array.isArray(parsedValue)) {\n var anyArray = value;\n return anyArray\n .map(function (e) { return _this.coerceString(e); })\n .filter(Boolean);\n }\n else {\n return undefined;\n }\n }\n catch (_a) {\n return undefined;\n }\n };\n EvaluationEngine.prototype.isSetOperator = function (op) {\n switch (op) {\n case EvaluationOperator.SET_IS:\n case EvaluationOperator.SET_IS_NOT:\n case EvaluationOperator.SET_CONTAINS:\n case EvaluationOperator.SET_DOES_NOT_CONTAIN:\n case EvaluationOperator.SET_CONTAINS_ANY:\n case EvaluationOperator.SET_DOES_NOT_CONTAIN_ANY:\n return true;\n default:\n return false;\n }\n };\n EvaluationEngine.prototype.setEquals = function (xa, ya) {\n var xs = new Set(xa);\n var ys = new Set(ya);\n return xs.size === ys.size && __spreadArray([], __read(ys), false).every(function (y) { return xs.has(y); });\n };\n EvaluationEngine.prototype.matchesSetContainsAll = function (propValues, filterValues) {\n var e_8, _a;\n if (propValues.length < filterValues.length) {\n return false;\n }\n try {\n for (var filterValues_2 = __values(filterValues), filterValues_2_1 = filterValues_2.next(); !filterValues_2_1.done; filterValues_2_1 = filterValues_2.next()) {\n var filterValue = filterValues_2_1.value;\n if (!this.matchesIs(filterValue, propValues)) {\n return false;\n }\n }\n }\n catch (e_8_1) { e_8 = { error: e_8_1 }; }\n finally {\n try {\n if (filterValues_2_1 && !filterValues_2_1.done && (_a = filterValues_2.return)) _a.call(filterValues_2);\n }\n finally { if (e_8) throw e_8.error; }\n }\n return true;\n };\n EvaluationEngine.prototype.matchesSetContainsAny = function (propValues, filterValues) {\n var e_9, _a;\n try {\n for (var filterValues_3 = __values(filterValues), filterValues_3_1 = filterValues_3.next(); !filterValues_3_1.done; filterValues_3_1 = filterValues_3.next()) {\n var filterValue = filterValues_3_1.value;\n if (this.matchesIs(filterValue, propValues)) {\n return true;\n }\n }\n }\n catch (e_9_1) { e_9 = { error: e_9_1 }; }\n finally {\n try {\n if (filterValues_3_1 && !filterValues_3_1.done && (_a = filterValues_3.return)) _a.call(filterValues_3);\n }\n finally { if (e_9) throw e_9.error; }\n }\n return false;\n };\n return EvaluationEngine;\n}());\n\nvar topologicalSort = function (flags, flagKeys) {\n var e_1, _a;\n var available = __assign({}, flags);\n var result = [];\n var startingKeys = flagKeys || Object.keys(available);\n try {\n for (var startingKeys_1 = __values(startingKeys), startingKeys_1_1 = startingKeys_1.next(); !startingKeys_1_1.done; startingKeys_1_1 = startingKeys_1.next()) {\n var flagKey = startingKeys_1_1.value;\n var traversal = parentTraversal(flagKey, available);\n if (traversal) {\n result.push.apply(result, __spreadArray([], __read(traversal), false));\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (startingKeys_1_1 && !startingKeys_1_1.done && (_a = startingKeys_1.return)) _a.call(startingKeys_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return result;\n};\nvar parentTraversal = function (flagKey, available, path) {\n var e_2, _a;\n if (path === void 0) { path = []; }\n var flag = available[flagKey];\n if (!flag) {\n return undefined;\n }\n else if (!flag.dependencies || flag.dependencies.length === 0) {\n delete available[flag.key];\n return [flag];\n }\n path.push(flag.key);\n var result = [];\n var _loop_1 = function (parentKey) {\n if (path.some(function (p) { return p === parentKey; })) {\n throw Error(\"Detected a cycle between flags \".concat(path));\n }\n var traversal = parentTraversal(parentKey, available, path);\n if (traversal) {\n result.push.apply(result, __spreadArray([], __read(traversal), false));\n }\n };\n try {\n for (var _b = __values(flag.dependencies), _c = _b.next(); !_c.done; _c = _b.next()) {\n var parentKey = _c.value;\n _loop_1(parentKey);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n result.push(flag);\n path.pop();\n delete available[flag.key];\n return result;\n};\n\n/**\n * base64.ts\n *\n * Licensed under the BSD 3-Clause License.\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * References:\n * http://en.wikipedia.org/wiki/Base64\n *\n * @author Dan Kogai (https://github.com/dankogai)\n */\nconst version = '3.7.5';\n/**\n * @deprecated use lowercase `version`.\n */\nconst VERSION = version;\nconst _hasatob = typeof atob === 'function';\nconst _hasbtoa = typeof btoa === 'function';\nconst _hasBuffer = typeof Buffer === 'function';\nconst _TD = typeof TextDecoder === 'function' ? new TextDecoder() : undefined;\nconst _TE = typeof TextEncoder === 'function' ? new TextEncoder() : undefined;\nconst b64ch = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nconst b64chs = Array.prototype.slice.call(b64ch);\nconst b64tab = (a => {\n let tab = {};\n a.forEach((c, i) => tab[c] = i);\n return tab;\n})(b64chs);\nconst b64re = /^(?:[A-Za-z\\d+\\/]{4})*?(?:[A-Za-z\\d+\\/]{2}(?:==)?|[A-Za-z\\d+\\/]{3}=?)?$/;\nconst _fromCC = String.fromCharCode.bind(String);\nconst _U8Afrom = typeof Uint8Array.from === 'function' ? Uint8Array.from.bind(Uint8Array) : it => new Uint8Array(Array.prototype.slice.call(it, 0));\nconst _mkUriSafe = src => src.replace(/=/g, '').replace(/[+\\/]/g, m0 => m0 == '+' ? '-' : '_');\nconst _tidyB64 = s => s.replace(/[^A-Za-z0-9\\+\\/]/g, '');\n/**\n * polyfill version of `btoa`\n */\nconst btoaPolyfill = bin => {\n // console.log('polyfilled');\n let u32,\n c0,\n c1,\n c2,\n asc = '';\n const pad = bin.length % 3;\n for (let i = 0; i < bin.length;) {\n if ((c0 = bin.charCodeAt(i++)) > 255 || (c1 = bin.charCodeAt(i++)) > 255 || (c2 = bin.charCodeAt(i++)) > 255) throw new TypeError('invalid character found');\n u32 = c0 << 16 | c1 << 8 | c2;\n asc += b64chs[u32 >> 18 & 63] + b64chs[u32 >> 12 & 63] + b64chs[u32 >> 6 & 63] + b64chs[u32 & 63];\n }\n return pad ? asc.slice(0, pad - 3) + \"===\".substring(pad) : asc;\n};\n/**\n * does what `window.btoa` of web browsers do.\n * @param {String} bin binary string\n * @returns {string} Base64-encoded string\n */\nconst _btoa = _hasbtoa ? bin => btoa(bin) : _hasBuffer ? bin => Buffer.from(bin, 'binary').toString('base64') : btoaPolyfill;\nconst _fromUint8Array = _hasBuffer ? u8a => Buffer.from(u8a).toString('base64') : u8a => {\n // cf. https://stackoverflow.com/questions/12710001/how-to-convert-uint8-array-to-base64-encoded-string/12713326#12713326\n const maxargs = 0x1000;\n let strs = [];\n for (let i = 0, l = u8a.length; i < l; i += maxargs) {\n strs.push(_fromCC.apply(null, u8a.subarray(i, i + maxargs)));\n }\n return _btoa(strs.join(''));\n};\n/**\n * converts a Uint8Array to a Base64 string.\n * @param {boolean} [urlsafe] URL-and-filename-safe a la RFC4648 §5\n * @returns {string} Base64 string\n */\nconst fromUint8Array = (u8a, urlsafe = false) => urlsafe ? _mkUriSafe(_fromUint8Array(u8a)) : _fromUint8Array(u8a);\n// This trick is found broken https://github.com/dankogai/js-base64/issues/130\n// const utob = (src: string) => unescape(encodeURIComponent(src));\n// reverting good old fationed regexp\nconst cb_utob = c => {\n if (c.length < 2) {\n var cc = c.charCodeAt(0);\n return cc < 0x80 ? c : cc < 0x800 ? _fromCC(0xc0 | cc >>> 6) + _fromCC(0x80 | cc & 0x3f) : _fromCC(0xe0 | cc >>> 12 & 0x0f) + _fromCC(0x80 | cc >>> 6 & 0x3f) + _fromCC(0x80 | cc & 0x3f);\n } else {\n var cc = 0x10000 + (c.charCodeAt(0) - 0xD800) * 0x400 + (c.charCodeAt(1) - 0xDC00);\n return _fromCC(0xf0 | cc >>> 18 & 0x07) + _fromCC(0x80 | cc >>> 12 & 0x3f) + _fromCC(0x80 | cc >>> 6 & 0x3f) + _fromCC(0x80 | cc & 0x3f);\n }\n};\nconst re_utob = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFFF]|[^\\x00-\\x7F]/g;\n/**\n * @deprecated should have been internal use only.\n * @param {string} src UTF-8 string\n * @returns {string} UTF-16 string\n */\nconst utob = u => u.replace(re_utob, cb_utob);\n//\nconst _encode = _hasBuffer ? s => Buffer.from(s, 'utf8').toString('base64') : _TE ? s => _fromUint8Array(_TE.encode(s)) : s => _btoa(utob(s));\n/**\n * converts a UTF-8-encoded string to a Base64 string.\n * @param {boolean} [urlsafe] if `true` make the result URL-safe\n * @returns {string} Base64 string\n */\nconst encode = (src, urlsafe = false) => urlsafe ? _mkUriSafe(_encode(src)) : _encode(src);\n/**\n * converts a UTF-8-encoded string to URL-safe Base64 RFC4648 §5.\n * @returns {string} Base64 string\n */\nconst encodeURI = src => encode(src, true);\n// This trick is found broken https://github.com/dankogai/js-base64/issues/130\n// const btou = (src: string) => decodeURIComponent(escape(src));\n// reverting good old fationed regexp\nconst re_btou = /[\\xC0-\\xDF][\\x80-\\xBF]|[\\xE0-\\xEF][\\x80-\\xBF]{2}|[\\xF0-\\xF7][\\x80-\\xBF]{3}/g;\nconst cb_btou = cccc => {\n switch (cccc.length) {\n case 4:\n var cp = (0x07 & cccc.charCodeAt(0)) << 18 | (0x3f & cccc.charCodeAt(1)) << 12 | (0x3f & cccc.charCodeAt(2)) << 6 | 0x3f & cccc.charCodeAt(3),\n offset = cp - 0x10000;\n return _fromCC((offset >>> 10) + 0xD800) + _fromCC((offset & 0x3FF) + 0xDC00);\n case 3:\n return _fromCC((0x0f & cccc.charCodeAt(0)) << 12 | (0x3f & cccc.charCodeAt(1)) << 6 | 0x3f & cccc.charCodeAt(2));\n default:\n return _fromCC((0x1f & cccc.charCodeAt(0)) << 6 | 0x3f & cccc.charCodeAt(1));\n }\n};\n/**\n * @deprecated should have been internal use only.\n * @param {string} src UTF-16 string\n * @returns {string} UTF-8 string\n */\nconst btou = b => b.replace(re_btou, cb_btou);\n/**\n * polyfill version of `atob`\n */\nconst atobPolyfill = asc => {\n // console.log('polyfilled');\n asc = asc.replace(/\\s+/g, '');\n if (!b64re.test(asc)) throw new TypeError('malformed base64.');\n asc += '=='.slice(2 - (asc.length & 3));\n let u24,\n bin = '',\n r1,\n r2;\n for (let i = 0; i < asc.length;) {\n u24 = b64tab[asc.charAt(i++)] << 18 | b64tab[asc.charAt(i++)] << 12 | (r1 = b64tab[asc.charAt(i++)]) << 6 | (r2 = b64tab[asc.charAt(i++)]);\n bin += r1 === 64 ? _fromCC(u24 >> 16 & 255) : r2 === 64 ? _fromCC(u24 >> 16 & 255, u24 >> 8 & 255) : _fromCC(u24 >> 16 & 255, u24 >> 8 & 255, u24 & 255);\n }\n return bin;\n};\n/**\n * does what `window.atob` of web browsers do.\n * @param {String} asc Base64-encoded string\n * @returns {string} binary string\n */\nconst _atob = _hasatob ? asc => atob(_tidyB64(asc)) : _hasBuffer ? asc => Buffer.from(asc, 'base64').toString('binary') : atobPolyfill;\n//\nconst _toUint8Array = _hasBuffer ? a => _U8Afrom(Buffer.from(a, 'base64')) : a => _U8Afrom(_atob(a).split('').map(c => c.charCodeAt(0)));\n/**\n * converts a Base64 string to a Uint8Array.\n */\nconst toUint8Array = a => _toUint8Array(_unURI(a));\n//\nconst _decode = _hasBuffer ? a => Buffer.from(a, 'base64').toString('utf8') : _TD ? a => _TD.decode(_toUint8Array(a)) : a => btou(_atob(a));\nconst _unURI = a => _tidyB64(a.replace(/[-_]/g, m0 => m0 == '-' ? '+' : '/'));\n/**\n * converts a Base64 string to a UTF-8 string.\n * @param {String} src Base64 string. Both normal and URL-safe are supported\n * @returns {string} UTF-8 string\n */\nconst decode = src => _decode(_unURI(src));\n/**\n * check if a value is a valid Base64 string\n * @param {String} src a value to check\n */\nconst isValid = src => {\n if (typeof src !== 'string') return false;\n const s = src.replace(/\\s+/g, '').replace(/={0,2}$/, '');\n return !/[^\\s0-9a-zA-Z\\+/]/.test(s) || !/[^\\s0-9a-zA-Z\\-_]/.test(s);\n};\n//\nconst _noEnum = v => {\n return {\n value: v,\n enumerable: false,\n writable: true,\n configurable: true\n };\n};\n/**\n * extend String.prototype with relevant methods\n */\nconst extendString = function () {\n const _add = (name, body) => Object.defineProperty(String.prototype, name, _noEnum(body));\n _add('fromBase64', function () {\n return decode(this);\n });\n _add('toBase64', function (urlsafe) {\n return encode(this, urlsafe);\n });\n _add('toBase64URI', function () {\n return encode(this, true);\n });\n _add('toBase64URL', function () {\n return encode(this, true);\n });\n _add('toUint8Array', function () {\n return toUint8Array(this);\n });\n};\n/**\n * extend Uint8Array.prototype with relevant methods\n */\nconst extendUint8Array = function () {\n const _add = (name, body) => Object.defineProperty(Uint8Array.prototype, name, _noEnum(body));\n _add('toBase64', function (urlsafe) {\n return fromUint8Array(this, urlsafe);\n });\n _add('toBase64URI', function () {\n return fromUint8Array(this, true);\n });\n _add('toBase64URL', function () {\n return fromUint8Array(this, true);\n });\n};\n/**\n * extend Builtin prototypes with relevant methods\n */\nconst extendBuiltins = () => {\n extendString();\n extendUint8Array();\n};\nconst gBase64 = {\n version: version,\n VERSION: VERSION,\n atob: _atob,\n atobPolyfill: atobPolyfill,\n btoa: _btoa,\n btoaPolyfill: btoaPolyfill,\n fromBase64: decode,\n toBase64: encode,\n encode: encode,\n encodeURI: encodeURI,\n encodeURL: encodeURI,\n utob: utob,\n btou: btou,\n decode: decode,\n isValid: isValid,\n fromUint8Array: fromUint8Array,\n toUint8Array: toUint8Array,\n extendString: extendString,\n extendUint8Array: extendUint8Array,\n extendBuiltins: extendBuiltins\n};\n\nvar SdkEvaluationApi = /** @class */ (function () {\n function SdkEvaluationApi(deploymentKey, serverUrl, httpClient) {\n this.deploymentKey = deploymentKey;\n this.serverUrl = serverUrl;\n this.httpClient = httpClient;\n }\n SdkEvaluationApi.prototype.getVariants = function (user, options) {\n return __awaiter(this, void 0, void 0, function () {\n var userJsonBase64, headers, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n userJsonBase64 = gBase64.encodeURL(JSON.stringify(user));\n headers = {\n Authorization: \"Api-Key \".concat(this.deploymentKey),\n 'X-Amp-Exp-User': userJsonBase64,\n };\n if (options === null || options === void 0 ? void 0 : options.flagKeys) {\n headers['X-Amp-Exp-Flag-Keys'] = gBase64.encodeURL(JSON.stringify(options.flagKeys));\n }\n if (options === null || options === void 0 ? void 0 : options.trackingOption) {\n headers['X-Amp-Exp-Track'] = options.trackingOption;\n }\n return [4 /*yield*/, this.httpClient.request({\n requestUrl: \"\".concat(this.serverUrl, \"/sdk/v2/vardata?v=0\"),\n method: 'GET',\n headers: headers,\n timeoutMillis: options === null || options === void 0 ? void 0 : options.timeoutMillis,\n })];\n case 1:\n response = _a.sent();\n if (response.status != 200) {\n throw Error(\"Fetch error response: status=\".concat(response.status));\n }\n return [2 /*return*/, JSON.parse(response.body)];\n }\n });\n });\n };\n return SdkEvaluationApi;\n}());\n\nvar SdkFlagApi = /** @class */ (function () {\n function SdkFlagApi(deploymentKey, serverUrl, httpClient) {\n this.deploymentKey = deploymentKey;\n this.serverUrl = serverUrl;\n this.httpClient = httpClient;\n }\n SdkFlagApi.prototype.getFlags = function (options) {\n return __awaiter(this, void 0, void 0, function () {\n var headers, response, flagsArray;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n headers = {\n Authorization: \"Api-Key \".concat(this.deploymentKey),\n };\n if ((options === null || options === void 0 ? void 0 : options.libraryName) && (options === null || options === void 0 ? void 0 : options.libraryVersion)) {\n headers['X-Amp-Exp-Library'] = \"\".concat(options.libraryName, \"/\").concat(options.libraryVersion);\n }\n return [4 /*yield*/, this.httpClient.request({\n requestUrl: \"\".concat(this.serverUrl, \"/sdk/v2/flags\"),\n method: 'GET',\n headers: headers,\n timeoutMillis: options === null || options === void 0 ? void 0 : options.timeoutMillis,\n })];\n case 1:\n response = _a.sent();\n if (response.status != 200) {\n throw Error(\"Flags error response: status=\".concat(response.status));\n }\n flagsArray = JSON.parse(response.body);\n return [2 /*return*/, flagsArray.reduce(function (map, flag) {\n map[flag.key] = flag;\n return map;\n }, {})];\n }\n });\n });\n };\n return SdkFlagApi;\n}());\n\nvar safeGlobal = typeof globalThis !== 'undefined' ? globalThis : global || self;\n\nvar Poller = /** @class */ (function () {\n function Poller(action, ms) {\n this.poller = undefined;\n this.action = action;\n this.ms = ms;\n }\n Poller.prototype.start = function () {\n if (this.poller) {\n return;\n }\n this.poller = safeGlobal.setInterval(this.action, this.ms);\n void this.action();\n };\n Poller.prototype.stop = function () {\n if (!this.poller) {\n return;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n safeGlobal.clearInterval(this.poller);\n this.poller = undefined;\n };\n return Poller;\n}());\n\nexport { EvaluationEngine, EvaluationOperator, Poller, SdkEvaluationApi, SdkFlagApi, safeGlobal, topologicalSort };\n"],"names":["__assign","SemanticVersion","version","EvaluationEngine","parentKey","SdkEvaluationApi","SdkFlagApi","Poller"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const version = require("../../../../../_virtual/version.cjs");
|
|
3
|
+
Object.defineProperty(version.__exports, "__esModule", { value: true });
|
|
4
|
+
version.__exports.version = void 0;
|
|
5
|
+
version.__exports.version = "1.8.1";
|
|
6
|
+
module.exports = version.__exports;
|
|
7
|
+
//# sourceMappingURL=version.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.cjs","sources":["../../../../../../../../node_modules/@amplitude/experiment-node-server/dist/gen/version.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.version = void 0;\n// generated by genversion\nexports.version = '1.8.1';\n"],"names":["version"],"mappings":";;AACA,OAAO,eAAeA,QAAAA,WAAS,cAAc,EAAE,OAAO,KAAI,CAAE;AAC7CA,QAAAA,UAAA,UAAG;AAElBA,QAAA,UAAA,UAAkB;;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { __exports as version } from "../../../../../_virtual/version.js";
|
|
2
|
+
Object.defineProperty(version, "__esModule", { value: true });
|
|
3
|
+
version.version = void 0;
|
|
4
|
+
version.version = "1.8.1";
|
|
5
|
+
export {
|
|
6
|
+
version as default
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sources":["../../../../../../../../node_modules/@amplitude/experiment-node-server/dist/gen/version.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.version = void 0;\n// generated by genversion\nexports.version = '1.8.1';\n"],"names":[],"mappings":";AACA,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAI,CAAE;AAC7C,QAAA,UAAG;AAElB,QAAA,UAAkB;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const assignmentFilter = require("../../../../../../_virtual/assignment-filter.cjs");
|
|
3
|
+
require("../util/cache.cjs");
|
|
4
|
+
require("./assignment-service.cjs");
|
|
5
|
+
const cache = require("../../../../../../_virtual/cache2.cjs");
|
|
6
|
+
const assignmentService = require("../../../../../../_virtual/assignment-service.cjs");
|
|
7
|
+
Object.defineProperty(assignmentFilter.__exports, "__esModule", { value: true });
|
|
8
|
+
assignmentFilter.__exports.InMemoryAssignmentFilter = void 0;
|
|
9
|
+
const cache_1 = cache.__exports;
|
|
10
|
+
const assignment_service_1 = assignmentService.__exports;
|
|
11
|
+
class InMemoryAssignmentFilter {
|
|
12
|
+
constructor(size, ttlMillis = assignment_service_1.DAY_MILLIS) {
|
|
13
|
+
this.cache = new cache_1.Cache(size, ttlMillis);
|
|
14
|
+
}
|
|
15
|
+
shouldTrack(assignment) {
|
|
16
|
+
if (Object.keys(assignment.results).length === 0) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
const canonicalAssignment = assignment.canonicalize();
|
|
20
|
+
const track = this.cache.get(canonicalAssignment) == void 0;
|
|
21
|
+
if (track) {
|
|
22
|
+
this.cache.put(canonicalAssignment, 0);
|
|
23
|
+
}
|
|
24
|
+
return track;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
assignmentFilter.__exports.InMemoryAssignmentFilter = InMemoryAssignmentFilter;
|
|
28
|
+
module.exports = assignmentFilter.__exports;
|
|
29
|
+
//# sourceMappingURL=assignment-filter.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assignment-filter.cjs","sources":["../../../../../../../../../node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment-filter.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InMemoryAssignmentFilter = void 0;\nconst cache_1 = require(\"../util/cache\");\nconst assignment_service_1 = require(\"./assignment-service\");\nclass InMemoryAssignmentFilter {\n constructor(size, ttlMillis = assignment_service_1.DAY_MILLIS) {\n this.cache = new cache_1.Cache(size, ttlMillis);\n }\n shouldTrack(assignment) {\n if (Object.keys(assignment.results).length === 0) {\n // Don't track empty assignments.\n return false;\n }\n const canonicalAssignment = assignment.canonicalize();\n const track = this.cache.get(canonicalAssignment) == undefined;\n if (track) {\n this.cache.put(canonicalAssignment, 0);\n }\n return track;\n }\n}\nexports.InMemoryAssignmentFilter = InMemoryAssignmentFilter;\n"],"names":["assignmentFilter","require$$0","require$$1"],"mappings":";;;;;;AACA,OAAO,eAAeA,iBAAAA,WAAS,cAAc,EAAE,OAAO,KAAI,CAAE;AAC5BA,iBAAAA,UAAA,2BAAG;AACnC,MAAM,UAAUC,MAAAA;AAChB,MAAM,uBAAuBC,kBAAAA;AAC7B,MAAM,yBAAyB;AAAA,EAC3B,YAAY,MAAM,YAAY,qBAAqB,YAAY;AAC3D,SAAK,QAAQ,IAAI,QAAQ,MAAM,MAAM,SAAS;AAAA,EACjD;AAAA,EACD,YAAY,YAAY;AACpB,QAAI,OAAO,KAAK,WAAW,OAAO,EAAE,WAAW,GAAG;AAE9C,aAAO;AAAA,IACV;AACD,UAAM,sBAAsB,WAAW;AACvC,UAAM,QAAQ,KAAK,MAAM,IAAI,mBAAmB,KAAK;AACrD,QAAI,OAAO;AACP,WAAK,MAAM,IAAI,qBAAqB,CAAC;AAAA,IACxC;AACD,WAAO;AAAA,EACV;AACL;AACAF,iBAAA,UAAA,2BAAmC;;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { __exports as assignmentFilter } from "../../../../../../_virtual/assignment-filter.js";
|
|
2
|
+
import "../util/cache.js";
|
|
3
|
+
import "./assignment-service.js";
|
|
4
|
+
import { __exports as cache } from "../../../../../../_virtual/cache2.js";
|
|
5
|
+
import { __exports as assignmentService } from "../../../../../../_virtual/assignment-service.js";
|
|
6
|
+
Object.defineProperty(assignmentFilter, "__esModule", { value: true });
|
|
7
|
+
assignmentFilter.InMemoryAssignmentFilter = void 0;
|
|
8
|
+
const cache_1 = cache;
|
|
9
|
+
const assignment_service_1 = assignmentService;
|
|
10
|
+
class InMemoryAssignmentFilter {
|
|
11
|
+
constructor(size, ttlMillis = assignment_service_1.DAY_MILLIS) {
|
|
12
|
+
this.cache = new cache_1.Cache(size, ttlMillis);
|
|
13
|
+
}
|
|
14
|
+
shouldTrack(assignment) {
|
|
15
|
+
if (Object.keys(assignment.results).length === 0) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
const canonicalAssignment = assignment.canonicalize();
|
|
19
|
+
const track = this.cache.get(canonicalAssignment) == void 0;
|
|
20
|
+
if (track) {
|
|
21
|
+
this.cache.put(canonicalAssignment, 0);
|
|
22
|
+
}
|
|
23
|
+
return track;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
assignmentFilter.InMemoryAssignmentFilter = InMemoryAssignmentFilter;
|
|
27
|
+
export {
|
|
28
|
+
assignmentFilter as default
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=assignment-filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assignment-filter.js","sources":["../../../../../../../../../node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment-filter.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InMemoryAssignmentFilter = void 0;\nconst cache_1 = require(\"../util/cache\");\nconst assignment_service_1 = require(\"./assignment-service\");\nclass InMemoryAssignmentFilter {\n constructor(size, ttlMillis = assignment_service_1.DAY_MILLIS) {\n this.cache = new cache_1.Cache(size, ttlMillis);\n }\n shouldTrack(assignment) {\n if (Object.keys(assignment.results).length === 0) {\n // Don't track empty assignments.\n return false;\n }\n const canonicalAssignment = assignment.canonicalize();\n const track = this.cache.get(canonicalAssignment) == undefined;\n if (track) {\n this.cache.put(canonicalAssignment, 0);\n }\n return track;\n }\n}\nexports.InMemoryAssignmentFilter = InMemoryAssignmentFilter;\n"],"names":["require$$0","require$$1"],"mappings":";;;;;AACA,OAAO,eAAe,kBAAS,cAAc,EAAE,OAAO,KAAI,CAAE;AAC5B,iBAAA,2BAAG;AACnC,MAAM,UAAUA;AAChB,MAAM,uBAAuBC;AAC7B,MAAM,yBAAyB;AAAA,EAC3B,YAAY,MAAM,YAAY,qBAAqB,YAAY;AAC3D,SAAK,QAAQ,IAAI,QAAQ,MAAM,MAAM,SAAS;AAAA,EACjD;AAAA,EACD,YAAY,YAAY;AACpB,QAAI,OAAO,KAAK,WAAW,OAAO,EAAE,WAAW,GAAG;AAE9C,aAAO;AAAA,IACV;AACD,UAAM,sBAAsB,WAAW;AACvC,UAAM,QAAQ,KAAK,MAAM,IAAI,mBAAmB,KAAK;AACrD,QAAI,OAAO;AACP,WAAK,MAAM,IAAI,qBAAqB,CAAC;AAAA,IACxC;AACD,WAAO;AAAA,EACV;AACL;AACA,iBAAA,2BAAmC;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const _commonjsHelpers = require("../../../../../../_virtual/_commonjsHelpers.cjs");
|
|
3
|
+
const assignmentService = require("../../../../../../_virtual/assignment-service.cjs");
|
|
4
|
+
require("../util/hash.cjs");
|
|
5
|
+
const hash = require("../../../../../../_virtual/hash.cjs");
|
|
6
|
+
(function(exports2) {
|
|
7
|
+
var __awaiter = _commonjsHelpers.commonjsGlobal && _commonjsHelpers.commonjsGlobal.__awaiter || function(thisArg, _arguments, P, generator) {
|
|
8
|
+
function adopt(value) {
|
|
9
|
+
return value instanceof P ? value : new P(function(resolve) {
|
|
10
|
+
resolve(value);
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
return new (P || (P = Promise))(function(resolve, reject) {
|
|
14
|
+
function fulfilled(value) {
|
|
15
|
+
try {
|
|
16
|
+
step(generator.next(value));
|
|
17
|
+
} catch (e) {
|
|
18
|
+
reject(e);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
function rejected(value) {
|
|
22
|
+
try {
|
|
23
|
+
step(generator["throw"](value));
|
|
24
|
+
} catch (e) {
|
|
25
|
+
reject(e);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function step(result) {
|
|
29
|
+
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
30
|
+
}
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
35
|
+
exports2.toEvent = exports2.AmplitudeAssignmentService = exports2.FLAG_TYPE_MUTUAL_EXCLUSION_GROUP = exports2.DAY_MILLIS = void 0;
|
|
36
|
+
const hash_1 = hash.__exports;
|
|
37
|
+
exports2.DAY_MILLIS = 24 * 60 * 60 * 1e3;
|
|
38
|
+
exports2.FLAG_TYPE_MUTUAL_EXCLUSION_GROUP = "mutual-exclusion-group";
|
|
39
|
+
class AmplitudeAssignmentService {
|
|
40
|
+
constructor(amplitude, assignmentFilter) {
|
|
41
|
+
this.amplitude = amplitude;
|
|
42
|
+
this.assignmentFilter = assignmentFilter;
|
|
43
|
+
}
|
|
44
|
+
track(assignment) {
|
|
45
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
+
if (this.assignmentFilter.shouldTrack(assignment)) {
|
|
47
|
+
this.amplitude.logEvent((0, exports2.toEvent)(assignment));
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports2.AmplitudeAssignmentService = AmplitudeAssignmentService;
|
|
53
|
+
const toEvent = (assignment) => {
|
|
54
|
+
var _a, _b, _c, _d;
|
|
55
|
+
const event = {
|
|
56
|
+
event_type: "[Experiment] Assignment",
|
|
57
|
+
user_id: assignment.user.user_id,
|
|
58
|
+
device_id: assignment.user.device_id,
|
|
59
|
+
event_properties: {},
|
|
60
|
+
user_properties: {}
|
|
61
|
+
};
|
|
62
|
+
const set = {};
|
|
63
|
+
const unset = {};
|
|
64
|
+
for (const flagKey in assignment.results) {
|
|
65
|
+
const variant = assignment.results[flagKey];
|
|
66
|
+
if (!variant.key) {
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
const version = (_a = variant.metadata) === null || _a === void 0 ? void 0 : _a.flagVersion;
|
|
70
|
+
const segmentName = (_b = variant.metadata) === null || _b === void 0 ? void 0 : _b.segmentName;
|
|
71
|
+
const flagType = (_c = variant.metadata) === null || _c === void 0 ? void 0 : _c.flagType;
|
|
72
|
+
const isDefault = (_d = variant.metadata) === null || _d === void 0 ? void 0 : _d.default;
|
|
73
|
+
event.event_properties[`${flagKey}.variant`] = variant.key;
|
|
74
|
+
if (version && segmentName) {
|
|
75
|
+
event.event_properties[`${flagKey}.details`] = `v${version} rule:${segmentName}`;
|
|
76
|
+
}
|
|
77
|
+
if (flagType != exports2.FLAG_TYPE_MUTUAL_EXCLUSION_GROUP) {
|
|
78
|
+
if (isDefault) {
|
|
79
|
+
unset[`[Experiment] ${flagKey}`] = "-";
|
|
80
|
+
} else {
|
|
81
|
+
set[`[Experiment] ${flagKey}`] = variant.key;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
event.user_properties["$set"] = set;
|
|
86
|
+
event.user_properties["$unset"] = unset;
|
|
87
|
+
event.insert_id = `${event.user_id} ${event.device_id} ${(0, hash_1.hashCode)(assignment.canonicalize())} ${Math.floor(assignment.timestamp / exports2.DAY_MILLIS)}`;
|
|
88
|
+
return event;
|
|
89
|
+
};
|
|
90
|
+
exports2.toEvent = toEvent;
|
|
91
|
+
})(assignmentService.__exports);
|
|
92
|
+
//# sourceMappingURL=assignment-service.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assignment-service.cjs","sources":["../../../../../../../../../node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment-service.js"],"sourcesContent":["\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toEvent = exports.AmplitudeAssignmentService = exports.FLAG_TYPE_MUTUAL_EXCLUSION_GROUP = exports.DAY_MILLIS = void 0;\nconst hash_1 = require(\"../util/hash\");\nexports.DAY_MILLIS = 24 * 60 * 60 * 1000;\nexports.FLAG_TYPE_MUTUAL_EXCLUSION_GROUP = 'mutual-exclusion-group';\nclass AmplitudeAssignmentService {\n constructor(amplitude, assignmentFilter) {\n this.amplitude = amplitude;\n this.assignmentFilter = assignmentFilter;\n }\n track(assignment) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.assignmentFilter.shouldTrack(assignment)) {\n this.amplitude.logEvent((0, exports.toEvent)(assignment));\n }\n });\n }\n}\nexports.AmplitudeAssignmentService = AmplitudeAssignmentService;\nconst toEvent = (assignment) => {\n var _a, _b, _c, _d;\n const event = {\n event_type: '[Experiment] Assignment',\n user_id: assignment.user.user_id,\n device_id: assignment.user.device_id,\n event_properties: {},\n user_properties: {},\n };\n const set = {};\n const unset = {};\n for (const flagKey in assignment.results) {\n const variant = assignment.results[flagKey];\n if (!variant.key) {\n continue;\n }\n const version = (_a = variant.metadata) === null || _a === void 0 ? void 0 : _a.flagVersion;\n const segmentName = (_b = variant.metadata) === null || _b === void 0 ? void 0 : _b.segmentName;\n const flagType = (_c = variant.metadata) === null || _c === void 0 ? void 0 : _c.flagType;\n const isDefault = (_d = variant.metadata) === null || _d === void 0 ? void 0 : _d.default;\n event.event_properties[`${flagKey}.variant`] = variant.key;\n if (version && segmentName) {\n event.event_properties[`${flagKey}.details`] = `v${version} rule:${segmentName}`;\n }\n if (flagType != exports.FLAG_TYPE_MUTUAL_EXCLUSION_GROUP) {\n if (isDefault) {\n unset[`[Experiment] ${flagKey}`] = '-';\n }\n else {\n set[`[Experiment] ${flagKey}`] = variant.key;\n }\n }\n }\n event.user_properties['$set'] = set;\n event.user_properties['$unset'] = unset;\n event.insert_id = `${event.user_id} ${event.device_id} ${(0, hash_1.hashCode)(assignment.canonicalize())} ${Math.floor(assignment.timestamp / exports.DAY_MILLIS)}`;\n return event;\n};\nexports.toEvent = toEvent;\n"],"names":["this","exports","require$$0"],"mappings":";;;;;;AACA,MAAI,YAAaA,iBAAI,kBAAIA,gCAAK,aAAc,SAAU,SAAS,YAAY,GAAG,WAAW;AACrF,aAAS,MAAM,OAAO;AAAE,aAAO,iBAAiB,IAAI,QAAQ,IAAI,EAAE,SAAU,SAAS;AAAE,gBAAQ,KAAK;AAAA,MAAE,CAAE;AAAA,IAAI;AAC5G,WAAO,KAAK,MAAM,IAAI,UAAU,SAAU,SAAS,QAAQ;AACvD,eAAS,UAAU,OAAO;AAAE,YAAI;AAAE,eAAK,UAAU,KAAK,KAAK,CAAC;AAAA,QAAE,SAAU,GAAP;AAAY,iBAAO,CAAC;AAAA;MAAM;AAC3F,eAAS,SAAS,OAAO;AAAE,YAAI;AAAE,eAAK,UAAU,OAAO,EAAE,KAAK,CAAC;AAAA,QAAI,SAAQ,GAAP;AAAY,iBAAO,CAAC;AAAA;MAAM;AAC9F,eAAS,KAAK,QAAQ;AAAE,eAAO,OAAO,QAAQ,OAAO,KAAK,IAAI,MAAM,OAAO,KAAK,EAAE,KAAK,WAAW,QAAQ;AAAA,MAAI;AAC9G,YAAM,YAAY,UAAU,MAAM,SAAS,cAAc,CAAE,CAAA,GAAG,KAAI,CAAE;AAAA,IAC5E,CAAK;AAAA,EACL;AACA,SAAO,eAAcC,UAAU,cAAc,EAAE,OAAO,KAAI,CAAE;AAC5D,EAAAA,SAAA,UAAkBA,SAAqC,6BAAAA,SAAA,mCAA2CA,SAAqB,aAAA;AACvH,QAAM,SAASC,KAAAA;AACf,EAAAD,SAAA,aAAqB,KAAK,KAAK,KAAK;AACpC,EAAAA,SAAA,mCAA2C;AAC3C,QAAM,2BAA2B;AAAA,IAC7B,YAAY,WAAW,kBAAkB;AACrC,WAAK,YAAY;AACjB,WAAK,mBAAmB;AAAA,IAC3B;AAAA,IACD,MAAM,YAAY;AACd,aAAO,UAAU,MAAM,QAAQ,QAAQ,aAAa;AAChD,YAAI,KAAK,iBAAiB,YAAY,UAAU,GAAG;AAC/C,eAAK,UAAU,UAAS,GAAIA,SAAQ,SAAS,UAAU,CAAC;AAAA,QAC3D;AAAA,MACb,CAAS;AAAA,IACJ;AAAA,EACJ;AACD,EAAAA,SAAA,6BAAqC;AACrC,QAAM,UAAU,CAAC,eAAe;AAC5B,QAAI,IAAI,IAAI,IAAI;AAChB,UAAM,QAAQ;AAAA,MACV,YAAY;AAAA,MACZ,SAAS,WAAW,KAAK;AAAA,MACzB,WAAW,WAAW,KAAK;AAAA,MAC3B,kBAAkB,CAAE;AAAA,MACpB,iBAAiB,CAAE;AAAA,IAC3B;AACI,UAAM,MAAM,CAAA;AACZ,UAAM,QAAQ,CAAA;AACd,eAAW,WAAW,WAAW,SAAS;AACtC,YAAM,UAAU,WAAW,QAAQ,OAAO;AAC1C,UAAI,CAAC,QAAQ,KAAK;AACd;AAAA,MACH;AACD,YAAM,WAAW,KAAK,QAAQ,cAAc,QAAQ,OAAO,SAAS,SAAS,GAAG;AAChF,YAAM,eAAe,KAAK,QAAQ,cAAc,QAAQ,OAAO,SAAS,SAAS,GAAG;AACpF,YAAM,YAAY,KAAK,QAAQ,cAAc,QAAQ,OAAO,SAAS,SAAS,GAAG;AACjF,YAAM,aAAa,KAAK,QAAQ,cAAc,QAAQ,OAAO,SAAS,SAAS,GAAG;AAClF,YAAM,iBAAiB,GAAG,iBAAiB,IAAI,QAAQ;AACvD,UAAI,WAAW,aAAa;AACxB,cAAM,iBAAiB,GAAG,iBAAiB,IAAI,IAAI,gBAAgB;AAAA,MACtE;AACD,UAAI,YAAYA,SAAQ,kCAAkC;AACtD,YAAI,WAAW;AACX,gBAAM,gBAAgB,SAAS,IAAI;AAAA,QACtC,OACI;AACD,cAAI,gBAAgB,SAAS,IAAI,QAAQ;AAAA,QAC5C;AAAA,MACJ;AAAA,IACJ;AACD,UAAM,gBAAgB,MAAM,IAAI;AAChC,UAAM,gBAAgB,QAAQ,IAAI;AAClC,UAAM,YAAY,GAAG,MAAM,WAAW,MAAM,cAAa,GAAI,OAAO,UAAU,WAAW,aAAc,CAAA,KAAK,KAAK,MAAM,WAAW,YAAYA,SAAQ,UAAU;AAChK,WAAO;AAAA,EACX;AACA,EAAAA,SAAA,UAAkB;;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { commonjsGlobal } from "../../../../../../_virtual/_commonjsHelpers.js";
|
|
2
|
+
import { __exports as assignmentService } from "../../../../../../_virtual/assignment-service.js";
|
|
3
|
+
import "../util/hash.js";
|
|
4
|
+
import { __exports as hash } from "../../../../../../_virtual/hash.js";
|
|
5
|
+
(function(exports) {
|
|
6
|
+
var __awaiter = commonjsGlobal && commonjsGlobal.__awaiter || function(thisArg, _arguments, P, generator) {
|
|
7
|
+
function adopt(value) {
|
|
8
|
+
return value instanceof P ? value : new P(function(resolve) {
|
|
9
|
+
resolve(value);
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
return new (P || (P = Promise))(function(resolve, reject) {
|
|
13
|
+
function fulfilled(value) {
|
|
14
|
+
try {
|
|
15
|
+
step(generator.next(value));
|
|
16
|
+
} catch (e) {
|
|
17
|
+
reject(e);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function rejected(value) {
|
|
21
|
+
try {
|
|
22
|
+
step(generator["throw"](value));
|
|
23
|
+
} catch (e) {
|
|
24
|
+
reject(e);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function step(result) {
|
|
28
|
+
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
29
|
+
}
|
|
30
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
31
|
+
});
|
|
32
|
+
};
|
|
33
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
+
exports.toEvent = exports.AmplitudeAssignmentService = exports.FLAG_TYPE_MUTUAL_EXCLUSION_GROUP = exports.DAY_MILLIS = void 0;
|
|
35
|
+
const hash_1 = hash;
|
|
36
|
+
exports.DAY_MILLIS = 24 * 60 * 60 * 1e3;
|
|
37
|
+
exports.FLAG_TYPE_MUTUAL_EXCLUSION_GROUP = "mutual-exclusion-group";
|
|
38
|
+
class AmplitudeAssignmentService {
|
|
39
|
+
constructor(amplitude, assignmentFilter) {
|
|
40
|
+
this.amplitude = amplitude;
|
|
41
|
+
this.assignmentFilter = assignmentFilter;
|
|
42
|
+
}
|
|
43
|
+
track(assignment) {
|
|
44
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
45
|
+
if (this.assignmentFilter.shouldTrack(assignment)) {
|
|
46
|
+
this.amplitude.logEvent((0, exports.toEvent)(assignment));
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.AmplitudeAssignmentService = AmplitudeAssignmentService;
|
|
52
|
+
const toEvent = (assignment) => {
|
|
53
|
+
var _a, _b, _c, _d;
|
|
54
|
+
const event = {
|
|
55
|
+
event_type: "[Experiment] Assignment",
|
|
56
|
+
user_id: assignment.user.user_id,
|
|
57
|
+
device_id: assignment.user.device_id,
|
|
58
|
+
event_properties: {},
|
|
59
|
+
user_properties: {}
|
|
60
|
+
};
|
|
61
|
+
const set = {};
|
|
62
|
+
const unset = {};
|
|
63
|
+
for (const flagKey in assignment.results) {
|
|
64
|
+
const variant = assignment.results[flagKey];
|
|
65
|
+
if (!variant.key) {
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
const version = (_a = variant.metadata) === null || _a === void 0 ? void 0 : _a.flagVersion;
|
|
69
|
+
const segmentName = (_b = variant.metadata) === null || _b === void 0 ? void 0 : _b.segmentName;
|
|
70
|
+
const flagType = (_c = variant.metadata) === null || _c === void 0 ? void 0 : _c.flagType;
|
|
71
|
+
const isDefault = (_d = variant.metadata) === null || _d === void 0 ? void 0 : _d.default;
|
|
72
|
+
event.event_properties[`${flagKey}.variant`] = variant.key;
|
|
73
|
+
if (version && segmentName) {
|
|
74
|
+
event.event_properties[`${flagKey}.details`] = `v${version} rule:${segmentName}`;
|
|
75
|
+
}
|
|
76
|
+
if (flagType != exports.FLAG_TYPE_MUTUAL_EXCLUSION_GROUP) {
|
|
77
|
+
if (isDefault) {
|
|
78
|
+
unset[`[Experiment] ${flagKey}`] = "-";
|
|
79
|
+
} else {
|
|
80
|
+
set[`[Experiment] ${flagKey}`] = variant.key;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
event.user_properties["$set"] = set;
|
|
85
|
+
event.user_properties["$unset"] = unset;
|
|
86
|
+
event.insert_id = `${event.user_id} ${event.device_id} ${(0, hash_1.hashCode)(assignment.canonicalize())} ${Math.floor(assignment.timestamp / exports.DAY_MILLIS)}`;
|
|
87
|
+
return event;
|
|
88
|
+
};
|
|
89
|
+
exports.toEvent = toEvent;
|
|
90
|
+
})(assignmentService);
|
|
91
|
+
//# sourceMappingURL=assignment-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assignment-service.js","sources":["../../../../../../../../../node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment-service.js"],"sourcesContent":["\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toEvent = exports.AmplitudeAssignmentService = exports.FLAG_TYPE_MUTUAL_EXCLUSION_GROUP = exports.DAY_MILLIS = void 0;\nconst hash_1 = require(\"../util/hash\");\nexports.DAY_MILLIS = 24 * 60 * 60 * 1000;\nexports.FLAG_TYPE_MUTUAL_EXCLUSION_GROUP = 'mutual-exclusion-group';\nclass AmplitudeAssignmentService {\n constructor(amplitude, assignmentFilter) {\n this.amplitude = amplitude;\n this.assignmentFilter = assignmentFilter;\n }\n track(assignment) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.assignmentFilter.shouldTrack(assignment)) {\n this.amplitude.logEvent((0, exports.toEvent)(assignment));\n }\n });\n }\n}\nexports.AmplitudeAssignmentService = AmplitudeAssignmentService;\nconst toEvent = (assignment) => {\n var _a, _b, _c, _d;\n const event = {\n event_type: '[Experiment] Assignment',\n user_id: assignment.user.user_id,\n device_id: assignment.user.device_id,\n event_properties: {},\n user_properties: {},\n };\n const set = {};\n const unset = {};\n for (const flagKey in assignment.results) {\n const variant = assignment.results[flagKey];\n if (!variant.key) {\n continue;\n }\n const version = (_a = variant.metadata) === null || _a === void 0 ? void 0 : _a.flagVersion;\n const segmentName = (_b = variant.metadata) === null || _b === void 0 ? void 0 : _b.segmentName;\n const flagType = (_c = variant.metadata) === null || _c === void 0 ? void 0 : _c.flagType;\n const isDefault = (_d = variant.metadata) === null || _d === void 0 ? void 0 : _d.default;\n event.event_properties[`${flagKey}.variant`] = variant.key;\n if (version && segmentName) {\n event.event_properties[`${flagKey}.details`] = `v${version} rule:${segmentName}`;\n }\n if (flagType != exports.FLAG_TYPE_MUTUAL_EXCLUSION_GROUP) {\n if (isDefault) {\n unset[`[Experiment] ${flagKey}`] = '-';\n }\n else {\n set[`[Experiment] ${flagKey}`] = variant.key;\n }\n }\n }\n event.user_properties['$set'] = set;\n event.user_properties['$unset'] = unset;\n event.insert_id = `${event.user_id} ${event.device_id} ${(0, hash_1.hashCode)(assignment.canonicalize())} ${Math.floor(assignment.timestamp / exports.DAY_MILLIS)}`;\n return event;\n};\nexports.toEvent = toEvent;\n"],"names":["this","require$$0"],"mappings":"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","x_google_ignoreList":[0]}
|
package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment.cjs
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const assignment = require("../../../../../../_virtual/assignment.cjs");
|
|
3
|
+
Object.defineProperty(assignment.__exports, "__esModule", { value: true });
|
|
4
|
+
assignment.__exports.Assignment = void 0;
|
|
5
|
+
class Assignment {
|
|
6
|
+
constructor(user, results) {
|
|
7
|
+
this.timestamp = Date.now();
|
|
8
|
+
this.user = user;
|
|
9
|
+
this.results = results;
|
|
10
|
+
}
|
|
11
|
+
canonicalize() {
|
|
12
|
+
var _a, _b, _c;
|
|
13
|
+
let canonical = `${(_a = this.user.user_id) === null || _a === void 0 ? void 0 : _a.trim()} ${(_b = this.user.device_id) === null || _b === void 0 ? void 0 : _b.trim()} `;
|
|
14
|
+
for (const key of Object.keys(this.results).sort()) {
|
|
15
|
+
const variant = this.results[key];
|
|
16
|
+
if (variant === null || variant === void 0 ? void 0 : variant.key) {
|
|
17
|
+
canonical += key.trim() + " " + ((_c = variant === null || variant === void 0 ? void 0 : variant.key) === null || _c === void 0 ? void 0 : _c.trim()) + " ";
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return canonical;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
assignment.__exports.Assignment = Assignment;
|
|
24
|
+
module.exports = assignment.__exports;
|
|
25
|
+
//# sourceMappingURL=assignment.cjs.map
|
package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment.cjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assignment.cjs","sources":["../../../../../../../../../node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Assignment = void 0;\nclass Assignment {\n constructor(user, results) {\n this.timestamp = Date.now();\n this.user = user;\n this.results = results;\n }\n canonicalize() {\n var _a, _b, _c;\n let canonical = `${(_a = this.user.user_id) === null || _a === void 0 ? void 0 : _a.trim()} ${(_b = this.user.device_id) === null || _b === void 0 ? void 0 : _b.trim()} `;\n for (const key of Object.keys(this.results).sort()) {\n const variant = this.results[key];\n if (variant === null || variant === void 0 ? void 0 : variant.key) {\n canonical += key.trim() + ' ' + ((_c = variant === null || variant === void 0 ? void 0 : variant.key) === null || _c === void 0 ? void 0 : _c.trim()) + ' ';\n }\n }\n return canonical;\n }\n}\nexports.Assignment = Assignment;\n"],"names":["assignment"],"mappings":";;AACA,OAAO,eAAeA,WAAAA,WAAS,cAAc,EAAE,OAAO,KAAI,CAAE;AAC1CA,WAAAA,UAAA,aAAG;AACrB,MAAM,WAAW;AAAA,EACb,YAAY,MAAM,SAAS;AACvB,SAAK,YAAY,KAAK;AACtB,SAAK,OAAO;AACZ,SAAK,UAAU;AAAA,EAClB;AAAA,EACD,eAAe;AACX,QAAI,IAAI,IAAI;AACZ,QAAI,YAAY,IAAI,KAAK,KAAK,KAAK,aAAa,QAAQ,OAAO,SAAS,SAAS,GAAG,KAAI,MAAO,KAAK,KAAK,KAAK,eAAe,QAAQ,OAAO,SAAS,SAAS,GAAG,KAAM;AACvK,eAAW,OAAO,OAAO,KAAK,KAAK,OAAO,EAAE,QAAQ;AAChD,YAAM,UAAU,KAAK,QAAQ,GAAG;AAChC,UAAI,YAAY,QAAQ,YAAY,SAAS,SAAS,QAAQ,KAAK;AAC/D,qBAAa,IAAI,KAAM,IAAG,QAAQ,KAAK,YAAY,QAAQ,YAAY,SAAS,SAAS,QAAQ,SAAS,QAAQ,OAAO,SAAS,SAAS,GAAG,KAAM,KAAI;AAAA,MAC3J;AAAA,IACJ;AACD,WAAO;AAAA,EACV;AACL;AACAA,WAAA,UAAA,aAAqB;;","x_google_ignoreList":[0]}
|
package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { __exports as assignment } from "../../../../../../_virtual/assignment.js";
|
|
2
|
+
Object.defineProperty(assignment, "__esModule", { value: true });
|
|
3
|
+
assignment.Assignment = void 0;
|
|
4
|
+
class Assignment {
|
|
5
|
+
constructor(user, results) {
|
|
6
|
+
this.timestamp = Date.now();
|
|
7
|
+
this.user = user;
|
|
8
|
+
this.results = results;
|
|
9
|
+
}
|
|
10
|
+
canonicalize() {
|
|
11
|
+
var _a, _b, _c;
|
|
12
|
+
let canonical = `${(_a = this.user.user_id) === null || _a === void 0 ? void 0 : _a.trim()} ${(_b = this.user.device_id) === null || _b === void 0 ? void 0 : _b.trim()} `;
|
|
13
|
+
for (const key of Object.keys(this.results).sort()) {
|
|
14
|
+
const variant = this.results[key];
|
|
15
|
+
if (variant === null || variant === void 0 ? void 0 : variant.key) {
|
|
16
|
+
canonical += key.trim() + " " + ((_c = variant === null || variant === void 0 ? void 0 : variant.key) === null || _c === void 0 ? void 0 : _c.trim()) + " ";
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return canonical;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
assignment.Assignment = Assignment;
|
|
23
|
+
export {
|
|
24
|
+
assignment as default
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=assignment.js.map
|
package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assignment.js","sources":["../../../../../../../../../node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Assignment = void 0;\nclass Assignment {\n constructor(user, results) {\n this.timestamp = Date.now();\n this.user = user;\n this.results = results;\n }\n canonicalize() {\n var _a, _b, _c;\n let canonical = `${(_a = this.user.user_id) === null || _a === void 0 ? void 0 : _a.trim()} ${(_b = this.user.device_id) === null || _b === void 0 ? void 0 : _b.trim()} `;\n for (const key of Object.keys(this.results).sort()) {\n const variant = this.results[key];\n if (variant === null || variant === void 0 ? void 0 : variant.key) {\n canonical += key.trim() + ' ' + ((_c = variant === null || variant === void 0 ? void 0 : variant.key) === null || _c === void 0 ? void 0 : _c.trim()) + ' ';\n }\n }\n return canonical;\n }\n}\nexports.Assignment = Assignment;\n"],"names":[],"mappings":";AACA,OAAO,eAAe,YAAS,cAAc,EAAE,OAAO,KAAI,CAAE;AAC1C,WAAA,aAAG;AACrB,MAAM,WAAW;AAAA,EACb,YAAY,MAAM,SAAS;AACvB,SAAK,YAAY,KAAK;AACtB,SAAK,OAAO;AACZ,SAAK,UAAU;AAAA,EAClB;AAAA,EACD,eAAe;AACX,QAAI,IAAI,IAAI;AACZ,QAAI,YAAY,IAAI,KAAK,KAAK,KAAK,aAAa,QAAQ,OAAO,SAAS,SAAS,GAAG,KAAI,MAAO,KAAK,KAAK,KAAK,eAAe,QAAQ,OAAO,SAAS,SAAS,GAAG,KAAM;AACvK,eAAW,OAAO,OAAO,KAAK,KAAK,OAAO,EAAE,QAAQ;AAChD,YAAM,UAAU,KAAK,QAAQ,GAAG;AAChC,UAAI,YAAY,QAAQ,YAAY,SAAS,SAAS,QAAQ,KAAK;AAC/D,qBAAa,IAAI,KAAM,IAAG,QAAQ,KAAK,YAAY,QAAQ,YAAY,SAAS,SAAS,QAAQ,SAAS,QAAQ,OAAO,SAAS,SAAS,GAAG,KAAM,KAAI;AAAA,MAC3J;AAAA,IACJ;AACD,WAAO;AAAA,EACV;AACL;AACA,WAAA,aAAqB;","x_google_ignoreList":[0]}
|