@launchdarkly/js-server-sdk-common-edge 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +32 -0
  3. package/dist/cjs/package.json +5 -0
  4. package/dist/cjs/src/api/LDClient.d.ts +12 -0
  5. package/dist/cjs/src/api/LDClient.d.ts.map +1 -0
  6. package/dist/cjs/src/api/LDClient.js +23 -0
  7. package/dist/cjs/src/api/LDClient.js.map +1 -0
  8. package/dist/cjs/src/api/createCallbacks.d.ts +10 -0
  9. package/dist/cjs/src/api/createCallbacks.d.ts.map +1 -0
  10. package/dist/cjs/src/api/createCallbacks.js +20 -0
  11. package/dist/cjs/src/api/createCallbacks.js.map +1 -0
  12. package/dist/cjs/src/api/createOptions.d.ts +36 -0
  13. package/dist/cjs/src/api/createOptions.d.ts.map +1 -0
  14. package/dist/cjs/src/api/createOptions.js +25 -0
  15. package/dist/cjs/src/api/createOptions.js.map +1 -0
  16. package/dist/cjs/src/api/index.d.ts +2 -0
  17. package/dist/cjs/src/api/index.d.ts.map +1 -0
  18. package/dist/cjs/src/api/index.js +18 -0
  19. package/dist/cjs/src/api/index.js.map +1 -0
  20. package/dist/cjs/src/index.d.ts +19 -0
  21. package/dist/cjs/src/index.d.ts.map +1 -0
  22. package/dist/cjs/src/index.js +32 -0
  23. package/dist/cjs/src/index.js.map +1 -0
  24. package/dist/cjs/src/platform/crypto/cryptoJSHasher.d.ts +9 -0
  25. package/dist/cjs/src/platform/crypto/cryptoJSHasher.d.ts.map +1 -0
  26. package/dist/cjs/src/platform/crypto/cryptoJSHasher.js +40 -0
  27. package/dist/cjs/src/platform/crypto/cryptoJSHasher.js.map +1 -0
  28. package/dist/cjs/src/platform/crypto/cryptoJSHmac.d.ts +9 -0
  29. package/dist/cjs/src/platform/crypto/cryptoJSHmac.d.ts.map +1 -0
  30. package/dist/cjs/src/platform/crypto/cryptoJSHmac.js +35 -0
  31. package/dist/cjs/src/platform/crypto/cryptoJSHmac.js.map +1 -0
  32. package/dist/cjs/src/platform/crypto/index.d.ts +13 -0
  33. package/dist/cjs/src/platform/crypto/index.d.ts.map +1 -0
  34. package/dist/cjs/src/platform/crypto/index.js +22 -0
  35. package/dist/cjs/src/platform/crypto/index.js.map +1 -0
  36. package/dist/cjs/src/platform/crypto/types.d.ts +3 -0
  37. package/dist/cjs/src/platform/crypto/types.d.ts.map +1 -0
  38. package/dist/cjs/src/platform/crypto/types.js +3 -0
  39. package/dist/cjs/src/platform/crypto/types.js.map +1 -0
  40. package/dist/cjs/src/platform/index.d.ts +8 -0
  41. package/dist/cjs/src/platform/index.d.ts.map +1 -0
  42. package/dist/cjs/src/platform/index.js +13 -0
  43. package/dist/cjs/src/platform/index.js.map +1 -0
  44. package/dist/cjs/src/platform/requests.d.ts +6 -0
  45. package/dist/cjs/src/platform/requests.d.ts.map +1 -0
  46. package/dist/cjs/src/platform/requests.js +14 -0
  47. package/dist/cjs/src/platform/requests.js.map +1 -0
  48. package/dist/cjs/src/utils/mockFeatureStore.d.ts +4 -0
  49. package/dist/cjs/src/utils/mockFeatureStore.d.ts.map +1 -0
  50. package/dist/cjs/src/utils/mockFeatureStore.js +13 -0
  51. package/dist/cjs/src/utils/mockFeatureStore.js.map +1 -0
  52. package/dist/cjs/src/utils/validateOptions.d.ts +15 -0
  53. package/dist/cjs/src/utils/validateOptions.d.ts.map +1 -0
  54. package/dist/cjs/src/utils/validateOptions.js +31 -0
  55. package/dist/cjs/src/utils/validateOptions.js.map +1 -0
  56. package/dist/esm/package.json +5 -0
  57. package/dist/esm/src/api/LDClient.d.ts +12 -0
  58. package/dist/esm/src/api/LDClient.d.ts.map +1 -0
  59. package/dist/esm/src/api/LDClient.js +19 -0
  60. package/dist/esm/src/api/LDClient.js.map +1 -0
  61. package/dist/esm/src/api/createCallbacks.d.ts +10 -0
  62. package/dist/esm/src/api/createCallbacks.d.ts.map +1 -0
  63. package/dist/esm/src/api/createCallbacks.js +18 -0
  64. package/dist/esm/src/api/createCallbacks.js.map +1 -0
  65. package/dist/esm/src/api/createOptions.d.ts +36 -0
  66. package/dist/esm/src/api/createOptions.d.ts.map +1 -0
  67. package/dist/esm/src/api/createOptions.js +22 -0
  68. package/dist/esm/src/api/createOptions.js.map +1 -0
  69. package/dist/esm/src/api/index.d.ts +2 -0
  70. package/dist/esm/src/api/index.d.ts.map +1 -0
  71. package/dist/esm/src/api/index.js +2 -0
  72. package/dist/esm/src/api/index.js.map +1 -0
  73. package/dist/esm/src/index.d.ts +19 -0
  74. package/dist/esm/src/index.d.ts.map +1 -0
  75. package/dist/esm/src/index.js +14 -0
  76. package/dist/esm/src/index.js.map +1 -0
  77. package/dist/esm/src/platform/crypto/cryptoJSHasher.d.ts +9 -0
  78. package/dist/esm/src/platform/crypto/cryptoJSHasher.d.ts.map +1 -0
  79. package/dist/esm/src/platform/crypto/cryptoJSHasher.js +37 -0
  80. package/dist/esm/src/platform/crypto/cryptoJSHasher.js.map +1 -0
  81. package/dist/esm/src/platform/crypto/cryptoJSHmac.d.ts +9 -0
  82. package/dist/esm/src/platform/crypto/cryptoJSHmac.d.ts.map +1 -0
  83. package/dist/esm/src/platform/crypto/cryptoJSHmac.js +32 -0
  84. package/dist/esm/src/platform/crypto/cryptoJSHmac.js.map +1 -0
  85. package/dist/esm/src/platform/crypto/index.d.ts +13 -0
  86. package/dist/esm/src/platform/crypto/index.d.ts.map +1 -0
  87. package/dist/esm/src/platform/crypto/index.js +19 -0
  88. package/dist/esm/src/platform/crypto/index.js.map +1 -0
  89. package/dist/esm/src/platform/crypto/types.d.ts +3 -0
  90. package/dist/esm/src/platform/crypto/types.d.ts.map +1 -0
  91. package/dist/esm/src/platform/crypto/types.js +2 -0
  92. package/dist/esm/src/platform/crypto/types.js.map +1 -0
  93. package/dist/esm/src/platform/index.d.ts +8 -0
  94. package/dist/esm/src/platform/index.d.ts.map +1 -0
  95. package/dist/esm/src/platform/index.js +10 -0
  96. package/dist/esm/src/platform/index.js.map +1 -0
  97. package/dist/esm/src/platform/requests.d.ts +6 -0
  98. package/dist/esm/src/platform/requests.d.ts.map +1 -0
  99. package/dist/esm/src/platform/requests.js +11 -0
  100. package/dist/esm/src/platform/requests.js.map +1 -0
  101. package/dist/esm/src/utils/mockFeatureStore.d.ts +4 -0
  102. package/dist/esm/src/utils/mockFeatureStore.d.ts.map +1 -0
  103. package/dist/esm/src/utils/mockFeatureStore.js +11 -0
  104. package/dist/esm/src/utils/mockFeatureStore.js.map +1 -0
  105. package/dist/esm/src/utils/validateOptions.d.ts +15 -0
  106. package/dist/esm/src/utils/validateOptions.d.ts.map +1 -0
  107. package/dist/esm/src/utils/validateOptions.js +29 -0
  108. package/dist/esm/src/utils/validateOptions.js.map +1 -0
  109. package/package.json +57 -0
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ const validateOptions = (sdkKey, options) => {
15
+ const { featureStore, logger, sendEvents } = options, rest = __rest(options, ["featureStore", "logger", "sendEvents"]);
16
+ if (!sdkKey) {
17
+ throw new Error('You must configure the client with a client key');
18
+ }
19
+ if (!featureStore || typeof featureStore !== 'object' || !featureStore.get) {
20
+ throw new Error('You must configure the client with a feature store');
21
+ }
22
+ if (!logger) {
23
+ throw new Error('You must configure the client with a logger');
24
+ }
25
+ if (JSON.stringify(rest) !== '{}') {
26
+ throw new Error(`Invalid configuration: ${Object.keys(rest).toString()} not supported`);
27
+ }
28
+ return true;
29
+ };
30
+ exports.default = validateOptions;
31
+ //# sourceMappingURL=validateOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateOptions.js","sourceRoot":"","sources":["../../../../src/utils/validateOptions.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAeA,MAAM,eAAe,GAAG,CAAC,MAAc,EAAE,OAA0B,EAAE,EAAE;IACrE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,KAAc,OAAO,EAAhB,IAAI,UAAK,OAAO,EAAvD,wCAA6C,CAAU,CAAC;IAC9D,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;KACpE;IAED,IAAI,CAAC,YAAY,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE;QAC1E,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;KACvE;IAED,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;KAChE;IAED,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;KACzF;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,kBAAe,eAAe,CAAC"}
@@ -0,0 +1,5 @@
1
+ {
2
+ "name": "@launchdarkly/js-server-sdk-common-edge",
3
+ "version": "0.0.1",
4
+ "type": "module"
5
+ }
@@ -0,0 +1,12 @@
1
+ /// <reference types="node" />
2
+ import { EventEmitter } from 'node:events';
3
+ import { Info, LDClientImpl, LDOptions } from '@launchdarkly/js-server-sdk-common';
4
+ /**
5
+ * The LaunchDarkly SDK edge client object.
6
+ */
7
+ export declare class LDClient extends LDClientImpl {
8
+ emitter: EventEmitter;
9
+ constructor(sdkKey: string, platformInfo: Info, options: LDOptions);
10
+ }
11
+ export default LDClient;
12
+ //# sourceMappingURL=LDClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LDClient.d.ts","sourceRoot":"","sources":["../../../../src/api/LDClient.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAKnF;;GAEG;AACH,qBAAa,QAAS,SAAQ,YAAY;IACxC,OAAO,EAAE,YAAY,CAAC;gBAGV,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS;CAMnE;AAED,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { EventEmitter } from 'node:events';
2
+ import { LDClientImpl } from '@launchdarkly/js-server-sdk-common';
3
+ import createOptions from './createOptions';
4
+ import createCallbacks from './createCallbacks';
5
+ import EdgePlatform from '../platform';
6
+ /**
7
+ * The LaunchDarkly SDK edge client object.
8
+ */
9
+ export class LDClient extends LDClientImpl {
10
+ // sdkKey is only used to query featureStore, not to initialize with LD servers
11
+ constructor(sdkKey, platformInfo, options) {
12
+ const em = new EventEmitter();
13
+ const platform = new EdgePlatform(platformInfo);
14
+ super('n/a', platform, createOptions(options), createCallbacks(em));
15
+ this.emitter = em;
16
+ }
17
+ }
18
+ export default LDClient;
19
+ //# sourceMappingURL=LDClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LDClient.js","sourceRoot":"","sources":["../../../../src/api/LDClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAQ,YAAY,EAAa,MAAM,oCAAoC,CAAC;AACnF,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,YAAY,MAAM,aAAa,CAAC;AAEvC;;GAEG;AACH,MAAM,OAAO,QAAS,SAAQ,YAAY;IAGxC,+EAA+E;IAC/E,YAAY,MAAc,EAAE,YAAkB,EAAE,OAAkB;QAChE,MAAM,EAAE,GAAG,IAAI,YAAY,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,YAAY,CAAC,CAAC;QAChD,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;CACF;AAED,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { EventEmitter } from 'node:events';
2
+ declare const createCallbacks: (emitter: EventEmitter) => {
3
+ onError: (err: Error) => void;
4
+ onFailed: (err: Error) => void;
5
+ onReady: () => void;
6
+ onUpdate: () => void;
7
+ hasEventListeners: () => boolean;
8
+ };
9
+ export default createCallbacks;
10
+ //# sourceMappingURL=createCallbacks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createCallbacks.d.ts","sourceRoot":"","sources":["../../../../src/api/createCallbacks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,QAAA,MAAM,eAAe,YAAa,YAAY;mBAC7B,KAAK;oBAKJ,KAAK;;;;CAQrB,CAAC;AAEH,eAAe,eAAe,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { noop } from '@launchdarkly/js-server-sdk-common';
2
+ const createCallbacks = (emitter) => ({
3
+ onError: (err) => {
4
+ if (emitter.listenerCount('error')) {
5
+ emitter.emit('error', err);
6
+ }
7
+ },
8
+ onFailed: (err) => {
9
+ emitter.emit('failed', err);
10
+ },
11
+ onReady: () => {
12
+ emitter.emit('ready');
13
+ },
14
+ onUpdate: noop,
15
+ hasEventListeners: () => false,
16
+ });
17
+ export default createCallbacks;
18
+ //# sourceMappingURL=createCallbacks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createCallbacks.js","sourceRoot":"","sources":["../../../../src/api/createCallbacks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE1D,MAAM,eAAe,GAAG,CAAC,OAAqB,EAAE,EAAE,CAAC,CAAC;IAClD,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;QACtB,IAAI,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;YAClC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,QAAQ,EAAE,CAAC,GAAU,EAAE,EAAE;QACvB,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,EAAE,GAAG,EAAE;QACZ,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IACD,QAAQ,EAAE,IAAI;IACd,iBAAiB,EAAE,GAAG,EAAE,CAAC,KAAK;CAC/B,CAAC,CAAC;AAEH,eAAe,eAAe,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { LDOptions } from '@launchdarkly/js-server-sdk-common';
2
+ export declare const defaultOptions: LDOptions;
3
+ declare const createOptions: (options: LDOptions) => {
4
+ baseUri?: string | undefined;
5
+ streamUri?: string | undefined;
6
+ eventsUri?: string | undefined;
7
+ timeout?: number | undefined;
8
+ capacity?: number | undefined;
9
+ logger?: import("@launchdarkly/js-server-sdk-common").LDLogger | undefined;
10
+ featureStore?: import("@launchdarkly/js-server-sdk-common").LDFeatureStore | ((clientContext: import("@launchdarkly/js-server-sdk-common").LDClientContext) => import("@launchdarkly/js-server-sdk-common").LDFeatureStore) | undefined;
11
+ bigSegments?: import("@launchdarkly/js-server-sdk-common").LDBigSegmentsOptions | undefined;
12
+ updateProcessor?: object | undefined;
13
+ flushInterval?: number | undefined;
14
+ pollInterval?: number | undefined;
15
+ proxyOptions?: import("@launchdarkly/js-server-sdk-common").LDProxyOptions | undefined;
16
+ offline?: boolean | undefined;
17
+ stream?: boolean | undefined;
18
+ streamInitialReconnectDelay?: number | undefined;
19
+ useLdd?: boolean | undefined;
20
+ sendEvents?: boolean | undefined;
21
+ allAttributesPrivate?: boolean | undefined;
22
+ privateAttributes?: string[] | undefined;
23
+ contextKeysCapacity?: number | undefined;
24
+ contextKeysFlushInterval?: number | undefined;
25
+ tlsParams?: import("@launchdarkly/js-server-sdk-common").LDTLSOptions | undefined;
26
+ diagnosticOptOut?: boolean | undefined;
27
+ diagnosticRecordingInterval?: number | undefined;
28
+ wrapperName?: string | undefined;
29
+ wrapperVersion?: string | undefined;
30
+ application?: {
31
+ id?: string | undefined;
32
+ version?: string | undefined;
33
+ } | undefined;
34
+ };
35
+ export default createOptions;
36
+ //# sourceMappingURL=createOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createOptions.d.ts","sourceRoot":"","sources":["../../../../src/api/createOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAE5E,eAAO,MAAM,cAAc,EAAE,SAY5B,CAAC;AAEF,QAAA,MAAM,aAAa,YAAa,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIxC,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { BasicLogger } from '@launchdarkly/js-server-sdk-common';
2
+ export const defaultOptions = {
3
+ stream: false,
4
+ sendEvents: false,
5
+ offline: false,
6
+ useLdd: true,
7
+ allAttributesPrivate: false,
8
+ privateAttributes: [],
9
+ contextKeysCapacity: 1000,
10
+ contextKeysFlushInterval: 300,
11
+ diagnosticOptOut: true,
12
+ diagnosticRecordingInterval: 900,
13
+ logger: BasicLogger.get(),
14
+ };
15
+ const createOptions = (options) => {
16
+ var _a;
17
+ const finalOptions = Object.assign(Object.assign({}, defaultOptions), options);
18
+ (_a = finalOptions.logger) === null || _a === void 0 ? void 0 : _a.debug(`Using LD options: ${JSON.stringify(finalOptions)}`);
19
+ return finalOptions;
20
+ };
21
+ export default createOptions;
22
+ //# sourceMappingURL=createOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createOptions.js","sourceRoot":"","sources":["../../../../src/api/createOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAa,MAAM,oCAAoC,CAAC;AAE5E,MAAM,CAAC,MAAM,cAAc,GAAc;IACvC,MAAM,EAAE,KAAK;IACb,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,IAAI;IACZ,oBAAoB,EAAE,KAAK;IAC3B,iBAAiB,EAAE,EAAE;IACrB,mBAAmB,EAAE,IAAI;IACzB,wBAAwB,EAAE,GAAG;IAC7B,gBAAgB,EAAE,IAAI;IACtB,2BAA2B,EAAE,GAAG;IAChC,MAAM,EAAE,WAAW,CAAC,GAAG,EAAE;CAC1B,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,OAAkB,EAAE,EAAE;;IAC3C,MAAM,YAAY,mCAAQ,cAAc,GAAK,OAAO,CAAE,CAAC;IACvD,MAAA,YAAY,CAAC,MAAM,0CAAE,KAAK,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAChF,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './LDClient';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './LDClient';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * This is the internal API reference for the common code shared between
3
+ * LaunchDarkly Edge SDKs.
4
+ *
5
+ * Do not use this package directly in a cloud worker.
6
+ *
7
+ */
8
+ import type { Info } from '@launchdarkly/js-server-sdk-common';
9
+ import { LDClient } from './api';
10
+ import { LDOptions, LDOptionsInternal } from './utils/validateOptions';
11
+ export * from '@launchdarkly/js-server-sdk-common';
12
+ export type { LDClient, LDOptions };
13
+ /**
14
+ * Do not use this function directly.
15
+ *
16
+ * This is an internal API to be used directly only by LaunchDarkly Edge SDKs.
17
+ */
18
+ export declare const init: (sdkKey: string, platformInfo: Info, options: LDOptionsInternal) => LDClient;
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAwB,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAExF,cAAc,oCAAoC,CAAC;AACnD,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AAEpC;;;;GAIG;AACH,eAAO,MAAM,IAAI,WAAY,MAAM,gBAAgB,IAAI,WAAW,iBAAiB,aAKlF,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { LDClient } from './api';
2
+ import validateOptions from './utils/validateOptions';
3
+ export * from '@launchdarkly/js-server-sdk-common';
4
+ /**
5
+ * Do not use this function directly.
6
+ *
7
+ * This is an internal API to be used directly only by LaunchDarkly Edge SDKs.
8
+ */
9
+ export const init = (sdkKey, platformInfo, options) => {
10
+ // this throws if options are invalid
11
+ validateOptions(sdkKey, options);
12
+ return new LDClient(sdkKey, platformInfo, options);
13
+ };
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,eAAiD,MAAM,yBAAyB,CAAC;AAExF,cAAc,oCAAoC,CAAC;AAGnD;;;;GAIG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,MAAc,EAAE,YAAkB,EAAE,OAA0B,EAAE,EAAE;IACrF,qCAAqC;IACrC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjC,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;AACrD,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { Hasher as LDHasher } from '@launchdarkly/js-server-sdk-common';
2
+ import { SupportedHashAlgorithm, SupportedOutputEncoding } from './types';
3
+ export default class CryptoJSHasher implements LDHasher {
4
+ private cryptoJSHasher;
5
+ constructor(algorithm: SupportedHashAlgorithm);
6
+ digest(encoding: SupportedOutputEncoding): string;
7
+ update(data: string): this;
8
+ }
9
+ //# sourceMappingURL=cryptoJSHasher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cryptoJSHasher.d.ts","sourceRoot":"","sources":["../../../../../src/platform/crypto/cryptoJSHasher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAE1E,MAAM,CAAC,OAAO,OAAO,cAAe,YAAW,QAAQ;IACrD,OAAO,CAAC,cAAc,CAAC;gBAEX,SAAS,EAAE,sBAAsB;IAiB7C,MAAM,CAAC,QAAQ,EAAE,uBAAuB,GAAG,MAAM;IAkBjD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAI3B"}
@@ -0,0 +1,37 @@
1
+ import CryptoJS from 'crypto-js';
2
+ export default class CryptoJSHasher {
3
+ constructor(algorithm) {
4
+ let algo;
5
+ switch (algorithm) {
6
+ case 'sha1':
7
+ algo = CryptoJS.algo.SHA1;
8
+ break;
9
+ case 'sha256':
10
+ algo = CryptoJS.algo.SHA256;
11
+ break;
12
+ default:
13
+ throw new Error('unsupported hash algorithm. Only sha1 and sha256 are supported.');
14
+ }
15
+ this.cryptoJSHasher = algo.create();
16
+ }
17
+ digest(encoding) {
18
+ const result = this.cryptoJSHasher.finalize();
19
+ let enc;
20
+ switch (encoding) {
21
+ case 'base64':
22
+ enc = CryptoJS.enc.Base64;
23
+ break;
24
+ case 'hex':
25
+ enc = CryptoJS.enc.Hex;
26
+ break;
27
+ default:
28
+ throw new Error('unsupported output encoding. Only base64 and hex are supported.');
29
+ }
30
+ return result.toString(enc);
31
+ }
32
+ update(data) {
33
+ this.cryptoJSHasher.update(data);
34
+ return this;
35
+ }
36
+ }
37
+ //# sourceMappingURL=cryptoJSHasher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cryptoJSHasher.js","sourceRoot":"","sources":["../../../../../src/platform/crypto/cryptoJSHasher.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,WAAW,CAAC;AAIjC,MAAM,CAAC,OAAO,OAAO,cAAc;IAGjC,YAAY,SAAiC;QAC3C,IAAI,IAAI,CAAC;QAET,QAAQ,SAAS,EAAE;YACjB,KAAK,MAAM;gBACT,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC1B,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC5B,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;SACtF;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,QAAiC;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;QAE9C,IAAI,GAAG,CAAC;QACR,QAAQ,QAAQ,EAAE;YAChB,KAAK,QAAQ;gBACX,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;gBAC1B,MAAM;YACR,KAAK,KAAK;gBACR,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;gBACvB,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;SACtF;QAED,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ import { Hmac as LDHmac } from '@launchdarkly/js-server-sdk-common';
2
+ import { SupportedHashAlgorithm, SupportedOutputEncoding } from './types';
3
+ export default class CryptoJSHmac implements LDHmac {
4
+ private CryptoJSHmac;
5
+ constructor(algorithm: SupportedHashAlgorithm, key: string);
6
+ digest(encoding: SupportedOutputEncoding): string;
7
+ update(data: string): this;
8
+ }
9
+ //# sourceMappingURL=cryptoJSHmac.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cryptoJSHmac.d.ts","sourceRoot":"","sources":["../../../../../src/platform/crypto/cryptoJSHmac.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAE1E,MAAM,CAAC,OAAO,OAAO,YAAa,YAAW,MAAM;IACjD,OAAO,CAAC,YAAY,CAAC;gBAET,SAAS,EAAE,sBAAsB,EAAE,GAAG,EAAE,MAAM;IAiB1D,MAAM,CAAC,QAAQ,EAAE,uBAAuB,GAAG,MAAM;IAcjD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAI3B"}
@@ -0,0 +1,32 @@
1
+ import CryptoJS from 'crypto-js';
2
+ export default class CryptoJSHmac {
3
+ constructor(algorithm, key) {
4
+ let algo;
5
+ switch (algorithm) {
6
+ case 'sha1':
7
+ algo = CryptoJS.algo.SHA1;
8
+ break;
9
+ case 'sha256':
10
+ algo = CryptoJS.algo.SHA256;
11
+ break;
12
+ default:
13
+ throw new Error('unsupported hash algorithm. Only sha1 and sha256 are supported.');
14
+ }
15
+ this.CryptoJSHmac = CryptoJS.algo.HMAC.create(algo, key);
16
+ }
17
+ digest(encoding) {
18
+ const result = this.CryptoJSHmac.finalize();
19
+ if (encoding === 'base64') {
20
+ return result.toString(CryptoJS.enc.Base64);
21
+ }
22
+ if (encoding === 'hex') {
23
+ return result.toString(CryptoJS.enc.Hex);
24
+ }
25
+ throw new Error('unsupported output encoding. Only base64 and hex are supported.');
26
+ }
27
+ update(data) {
28
+ this.CryptoJSHmac.update(data);
29
+ return this;
30
+ }
31
+ }
32
+ //# sourceMappingURL=cryptoJSHmac.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cryptoJSHmac.js","sourceRoot":"","sources":["../../../../../src/platform/crypto/cryptoJSHmac.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,WAAW,CAAC;AAIjC,MAAM,CAAC,OAAO,OAAO,YAAY;IAG/B,YAAY,SAAiC,EAAE,GAAW;QACxD,IAAI,IAAI,CAAC;QAET,QAAQ,SAAS,EAAE;YACjB,KAAK,MAAM;gBACT,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC1B,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC5B,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;SACtF;QAED,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,CAAC,QAAiC;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QAE5C,IAAI,QAAQ,KAAK,QAAQ,EAAE;YACzB,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;SAC7C;QAED,IAAI,QAAQ,KAAK,KAAK,EAAE;YACtB,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAC1C;QAED,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ import type { Crypto, Hasher, Hmac } from '@launchdarkly/js-server-sdk-common';
2
+ import { SupportedHashAlgorithm } from './types';
3
+ /**
4
+ * Uses crypto-js as substitute to node:crypto because the latter
5
+ * is not yet supported in some runtimes.
6
+ * https://cryptojs.gitbook.io/docs/
7
+ */
8
+ export default class EdgeCrypto implements Crypto {
9
+ createHash(algorithm: SupportedHashAlgorithm): Hasher;
10
+ createHmac(algorithm: SupportedHashAlgorithm, key: string): Hmac;
11
+ randomUUID(): string;
12
+ }
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/platform/crypto/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAG/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEjD;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,YAAW,MAAM;IAC/C,UAAU,CAAC,SAAS,EAAE,sBAAsB,GAAG,MAAM;IAIrD,UAAU,CAAC,SAAS,EAAE,sBAAsB,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAIhE,UAAU,IAAI,MAAM;CAGrB"}
@@ -0,0 +1,19 @@
1
+ import CryptoJSHasher from './cryptoJSHasher';
2
+ import CryptoJSHmac from './cryptoJSHmac';
3
+ /**
4
+ * Uses crypto-js as substitute to node:crypto because the latter
5
+ * is not yet supported in some runtimes.
6
+ * https://cryptojs.gitbook.io/docs/
7
+ */
8
+ export default class EdgeCrypto {
9
+ createHash(algorithm) {
10
+ return new CryptoJSHasher(algorithm);
11
+ }
12
+ createHmac(algorithm, key) {
13
+ return new CryptoJSHmac(algorithm, key);
14
+ }
15
+ randomUUID() {
16
+ return crypto.randomUUID();
17
+ }
18
+ }
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/platform/crypto/index.ts"],"names":[],"mappings":"AACA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAG1C;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU;IAC7B,UAAU,CAAC,SAAiC;QAC1C,OAAO,IAAI,cAAc,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED,UAAU,CAAC,SAAiC,EAAE,GAAW;QACvD,OAAO,IAAI,YAAY,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,UAAU;QACR,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC;IAC7B,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ export type SupportedHashAlgorithm = 'sha1' | 'sha256';
2
+ export type SupportedOutputEncoding = 'base64' | 'hex';
3
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/platform/crypto/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,QAAQ,CAAC;AACvD,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,KAAK,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/platform/crypto/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import type { Crypto, Info, Platform, Requests } from '@launchdarkly/js-server-sdk-common';
2
+ export default class EdgePlatform implements Platform {
3
+ info: Info;
4
+ crypto: Crypto;
5
+ requests: Requests;
6
+ constructor(info: Info);
7
+ }
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/platform/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAI3F,MAAM,CAAC,OAAO,OAAO,YAAa,YAAW,QAAQ;IACnD,IAAI,EAAE,IAAI,CAAC;IAEX,MAAM,EAAE,MAAM,CAAoB;IAElC,QAAQ,EAAE,QAAQ,CAAsB;gBAE5B,IAAI,EAAE,IAAI;CAGvB"}
@@ -0,0 +1,10 @@
1
+ import EdgeCrypto from './crypto';
2
+ import EdgeRequests from './requests';
3
+ export default class EdgePlatform {
4
+ constructor(info) {
5
+ this.crypto = new EdgeCrypto();
6
+ this.requests = new EdgeRequests();
7
+ this.info = info;
8
+ }
9
+ }
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/platform/index.ts"],"names":[],"mappings":"AACA,OAAO,UAAU,MAAM,UAAU,CAAC;AAClC,OAAO,YAAY,MAAM,YAAY,CAAC;AAEtC,MAAM,CAAC,OAAO,OAAO,YAAY;IAO/B,YAAY,IAAU;QAJtB,WAAM,GAAW,IAAI,UAAU,EAAE,CAAC;QAElC,aAAQ,GAAa,IAAI,YAAY,EAAE,CAAC;QAGtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ import type { EventSource, EventSourceInitDict, Options, Response, Requests } from '@launchdarkly/js-server-sdk-common';
2
+ export default class EdgeRequests implements Requests {
3
+ fetch(url: string, options?: Options): Promise<Response>;
4
+ createEventSource(url: string, eventSourceInitDict: EventSourceInitDict): EventSource;
5
+ }
6
+ //# sourceMappingURL=requests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requests.d.ts","sourceRoot":"","sources":["../../../../src/platform/requests.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,mBAAmB,EACnB,OAAO,EACP,QAAQ,EACR,QAAQ,EACT,MAAM,oCAAoC,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,YAAa,YAAW,QAAQ;IACnD,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,OAAY,GAAG,OAAO,CAAC,QAAQ,CAAC;IAK5D,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,mBAAmB,EAAE,mBAAmB,GAAG,WAAW;CAGtF"}
@@ -0,0 +1,11 @@
1
+ import { NullEventSource } from '@launchdarkly/js-server-sdk-common';
2
+ export default class EdgeRequests {
3
+ fetch(url, options = {}) {
4
+ // @ts-ignore
5
+ return fetch(url, options);
6
+ }
7
+ createEventSource(url, eventSourceInitDict) {
8
+ return new NullEventSource(url, eventSourceInitDict);
9
+ }
10
+ }
11
+ //# sourceMappingURL=requests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requests.js","sourceRoot":"","sources":["../../../../src/platform/requests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AASrE,MAAM,CAAC,OAAO,OAAO,YAAY;IAC/B,KAAK,CAAC,GAAW,EAAE,UAAmB,EAAE;QACtC,aAAa;QACb,OAAO,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,iBAAiB,CAAC,GAAW,EAAE,mBAAwC;QACrE,OAAO,IAAI,eAAe,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;IACvD,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ import type { LDFeatureStore } from '@launchdarkly/js-server-sdk-common';
2
+ declare const mockFeatureStore: LDFeatureStore;
3
+ export default mockFeatureStore;
4
+ //# sourceMappingURL=mockFeatureStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockFeatureStore.d.ts","sourceRoot":"","sources":["../../../../src/utils/mockFeatureStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzE,QAAA,MAAM,gBAAgB,EAAE,cAQvB,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,11 @@
1
+ const mockFeatureStore = {
2
+ all: jest.fn(),
3
+ close: jest.fn(),
4
+ init: jest.fn(),
5
+ initialized: jest.fn(),
6
+ upsert: jest.fn(),
7
+ get: jest.fn(),
8
+ delete: jest.fn(),
9
+ };
10
+ export default mockFeatureStore;
11
+ //# sourceMappingURL=mockFeatureStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockFeatureStore.js","sourceRoot":"","sources":["../../../../src/utils/mockFeatureStore.ts"],"names":[],"mappings":"AAEA,MAAM,gBAAgB,GAAmB;IACvC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;IACd,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;IAChB,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;IACf,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE;IACtB,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;IACjB,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;IACd,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;CAClB,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { LDOptions as LDOptionsCommon } from '@launchdarkly/js-server-sdk-common/dist/api/options/LDOptions';
2
+ /**
3
+ * The Launchdarkly Edge SDKs configuration options. Only logger is officially
4
+ * supported. sendEvents is unsupported and is only included as a beta
5
+ * preview.
6
+ */
7
+ export type LDOptions = Pick<LDOptionsCommon, 'logger' | 'sendEvents'>;
8
+ /**
9
+ * The internal options include featureStore because that's how the LDClient
10
+ * implementation expects it.
11
+ */
12
+ export type LDOptionsInternal = LDOptions & Pick<LDOptionsCommon, 'featureStore'>;
13
+ declare const validateOptions: (sdkKey: string, options: LDOptionsInternal) => boolean;
14
+ export default validateOptions;
15
+ //# sourceMappingURL=validateOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateOptions.d.ts","sourceRoot":"","sources":["../../../../src/utils/validateOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,+DAA+D,CAAC;AAE7G;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,QAAQ,GAAG,YAAY,CAAC,CAAC;AAEvE;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;AAElF,QAAA,MAAM,eAAe,WAAY,MAAM,WAAW,iBAAiB,YAmBlE,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,29 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ const validateOptions = (sdkKey, options) => {
13
+ const { featureStore, logger, sendEvents } = options, rest = __rest(options, ["featureStore", "logger", "sendEvents"]);
14
+ if (!sdkKey) {
15
+ throw new Error('You must configure the client with a client key');
16
+ }
17
+ if (!featureStore || typeof featureStore !== 'object' || !featureStore.get) {
18
+ throw new Error('You must configure the client with a feature store');
19
+ }
20
+ if (!logger) {
21
+ throw new Error('You must configure the client with a logger');
22
+ }
23
+ if (JSON.stringify(rest) !== '{}') {
24
+ throw new Error(`Invalid configuration: ${Object.keys(rest).toString()} not supported`);
25
+ }
26
+ return true;
27
+ };
28
+ export default validateOptions;
29
+ //# sourceMappingURL=validateOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateOptions.js","sourceRoot":"","sources":["../../../../src/utils/validateOptions.ts"],"names":[],"mappings":";;;;;;;;;;;AAeA,MAAM,eAAe,GAAG,CAAC,MAAc,EAAE,OAA0B,EAAE,EAAE;IACrE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,KAAc,OAAO,EAAhB,IAAI,UAAK,OAAO,EAAvD,wCAA6C,CAAU,CAAC;IAC9D,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;KACpE;IAED,IAAI,CAAC,YAAY,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE;QAC1E,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;KACvE;IAED,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;KAChE;IAED,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;KACzF;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
package/package.json ADDED
@@ -0,0 +1,57 @@
1
+ {
2
+ "name": "@launchdarkly/js-server-sdk-common-edge",
3
+ "version": "0.0.1",
4
+ "description": "LaunchDarkly Server SDK for JavaScript - common Edge SDK code",
5
+ "packageManager": "yarn@3.4.1",
6
+ "keywords": [
7
+ "launchdarkly",
8
+ "edge",
9
+ "function",
10
+ "worker"
11
+ ],
12
+ "type": "module",
13
+ "exports": {
14
+ "require": "./dist/cjs/src/index.js",
15
+ "import": "./dist/esm/src/index.js"
16
+ },
17
+ "main": "./dist/cjs/src/index.js",
18
+ "types": "./dist/cjs/src/index.d.ts",
19
+ "files": [
20
+ "/dist"
21
+ ],
22
+ "scripts": {
23
+ "doc": "../../../scripts/build-doc.sh .",
24
+ "build": "../../../scripts/build-package.sh",
25
+ "tsw": "yarn tsc --watch",
26
+ "start": "rimraf dist && yarn tsw",
27
+ "lint": "eslint . --ext .ts",
28
+ "prettier": "prettier --write '**/*.@(js|ts|tsx|json|css)' --ignore-path ../../../.prettierignore",
29
+ "test": "NODE_OPTIONS=\"--experimental-vm-modules --no-warnings\" jest --ci --runInBand --coverage",
30
+ "check": "yarn prettier && yarn lint && yarn build && yarn test && yarn doc"
31
+ },
32
+ "dependencies": {
33
+ "@launchdarkly/js-server-sdk-common": "0.3.0",
34
+ "crypto-js": "^4.1.1"
35
+ },
36
+ "devDependencies": {
37
+ "@types/crypto-js": "^4.1.1",
38
+ "@types/jest": "^29.5.0",
39
+ "@typescript-eslint/eslint-plugin": "^5.57.0",
40
+ "@typescript-eslint/parser": "^5.57.0",
41
+ "esbuild": "^0.17.17",
42
+ "eslint": "^8.37.0",
43
+ "eslint-config-airbnb-base": "^15.0.0",
44
+ "eslint-config-airbnb-typescript": "^17.0.0",
45
+ "eslint-config-prettier": "^8.8.0",
46
+ "eslint-plugin-import": "^2.27.5",
47
+ "eslint-plugin-prettier": "^4.2.1",
48
+ "jest": "^29.5.0",
49
+ "launchdarkly-js-test-helpers": "^2.2.0",
50
+ "npm-dts": "^1.3.12",
51
+ "prettier": "^2.8.7",
52
+ "rimraf": "^5.0.0",
53
+ "ts-jest": "^29.1.0",
54
+ "typedoc": "0.23.26",
55
+ "typescript": "^5.0.3"
56
+ }
57
+ }