@descope/sdk-mixins 0.6.6 → 0.6.8
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/cjs/mixins/configMixin/configMixin.js +13 -2
- package/dist/cjs/mixins/configMixin/configMixin.js.map +1 -1
- package/dist/cjs/mixins/resetMixin.js +47 -0
- package/dist/cjs/mixins/resetMixin.js.map +1 -0
- package/dist/esm/mixins/configMixin/configMixin.js +13 -2
- package/dist/esm/mixins/configMixin/configMixin.js.map +1 -1
- package/dist/esm/mixins/resetMixin.js +45 -0
- package/dist/esm/mixins/resetMixin.js.map +1 -0
- package/dist/index.d.ts +249 -251
- package/dist/types/mixins/configMixin/configMixin.d.ts +32 -33
- package/dist/types/mixins/configMixin/types.d.ts +12 -4
- package/dist/types/mixins/createStateManagementMixin.d.ts +2 -2
- package/dist/types/mixins/createValidateAttributesMixin/createValidateAttributesMixin.d.ts +5 -5
- package/dist/types/mixins/debuggerMixin/debuggerMixin.d.ts +8 -8
- package/dist/types/mixins/descopeUiMixin/descopeUiMixin.d.ts +41 -42
- package/dist/types/mixins/formMixin.d.ts +2 -2
- package/dist/types/mixins/initLifecycleMixin.d.ts +1 -1
- package/dist/types/mixins/loggerMixin/loggerMixin.d.ts +2 -2
- package/dist/types/mixins/modalMixin/modalMixin.d.ts +43 -44
- package/dist/types/mixins/notificationsMixin/notificationsMixin.d.ts +43 -44
- package/dist/types/mixins/observeAttributesMixin/observeAttributesMixin.d.ts +4 -4
- package/dist/types/mixins/projectIdMixin.d.ts +5 -5
- package/dist/types/mixins/resetMixin.d.ts +344 -0
- package/dist/types/mixins/staticResourcesMixin/staticResourcesMixin.d.ts +8 -8
- package/dist/types/mixins/themeMixin/themeMixin.d.ts +41 -47
- package/package.json +7 -7
|
@@ -4,13 +4,16 @@ var tslib = require('tslib');
|
|
|
4
4
|
var sdkHelpers = require('@descope/sdk-helpers');
|
|
5
5
|
var staticResourcesMixin = require('../staticResourcesMixin/staticResourcesMixin.js');
|
|
6
6
|
var constants = require('./constants.js');
|
|
7
|
+
var resetMixin = require('../resetMixin.js');
|
|
8
|
+
var initLifecycleMixin = require('../initLifecycleMixin.js');
|
|
7
9
|
|
|
8
10
|
const configMixin = sdkHelpers.createSingletonMixin((superclass) => {
|
|
9
|
-
var _ConfigMixinClass__configResource, _ConfigMixinClass_fetchConfig, _a;
|
|
10
|
-
const BaseClass = sdkHelpers.compose(staticResourcesMixin.staticResourcesMixin)(superclass);
|
|
11
|
+
var _ConfigMixinClass_instances, _ConfigMixinClass_configCacheClear, _ConfigMixinClass__configResource, _ConfigMixinClass_fetchConfig, _a;
|
|
12
|
+
const BaseClass = sdkHelpers.compose(staticResourcesMixin.staticResourcesMixin, resetMixin.resetMixin, initLifecycleMixin.initLifecycleMixin)(superclass);
|
|
11
13
|
return _a = class ConfigMixinClass extends BaseClass {
|
|
12
14
|
constructor() {
|
|
13
15
|
super(...arguments);
|
|
16
|
+
_ConfigMixinClass_instances.add(this);
|
|
14
17
|
_ConfigMixinClass__configResource.set(this, void 0);
|
|
15
18
|
_ConfigMixinClass_fetchConfig.set(this, async () => {
|
|
16
19
|
try {
|
|
@@ -26,6 +29,10 @@ const configMixin = sdkHelpers.createSingletonMixin((superclass) => {
|
|
|
26
29
|
return undefined;
|
|
27
30
|
});
|
|
28
31
|
}
|
|
32
|
+
async init() {
|
|
33
|
+
await super.init();
|
|
34
|
+
this.onReset('config', tslib.__classPrivateFieldGet(this, _ConfigMixinClass_instances, "m", _ConfigMixinClass_configCacheClear).bind(this));
|
|
35
|
+
}
|
|
29
36
|
get config() {
|
|
30
37
|
if (!tslib.__classPrivateFieldGet(this, _ConfigMixinClass__configResource, "f")) {
|
|
31
38
|
tslib.__classPrivateFieldSet(this, _ConfigMixinClass__configResource, tslib.__classPrivateFieldGet(this, _ConfigMixinClass_fetchConfig, "f").call(this), "f");
|
|
@@ -35,6 +42,10 @@ const configMixin = sdkHelpers.createSingletonMixin((superclass) => {
|
|
|
35
42
|
},
|
|
36
43
|
_ConfigMixinClass__configResource = new WeakMap(),
|
|
37
44
|
_ConfigMixinClass_fetchConfig = new WeakMap(),
|
|
45
|
+
_ConfigMixinClass_instances = new WeakSet(),
|
|
46
|
+
_ConfigMixinClass_configCacheClear = function _ConfigMixinClass_configCacheClear() {
|
|
47
|
+
tslib.__classPrivateFieldSet(this, _ConfigMixinClass__configResource, undefined, "f");
|
|
48
|
+
},
|
|
38
49
|
_a;
|
|
39
50
|
});
|
|
40
51
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configMixin.js","sources":["../../../../src/mixins/configMixin/configMixin.ts"],"sourcesContent":["/* eslint-disable no-underscore-dangle */\nimport { compose, createSingletonMixin } from '@descope/sdk-helpers';\nimport { staticResourcesMixin } from '../staticResourcesMixin';\nimport { CONFIG_FILENAME } from './constants';\nimport { ProjectConfiguration } from './types';\n\nexport const configMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) => {\n const BaseClass = compose(staticResourcesMixin)(superclass);\n\n return class ConfigMixinClass extends BaseClass {\n get config() {\n if (!this.#_configResource) {\n this.#_configResource = this.#fetchConfig();\n }\n\n return this.#_configResource;\n }\n\n #_configResource;\n\n #fetchConfig = async () => {\n try {\n const {\n body,\n headers,\n }: { body: ProjectConfiguration; headers: Record<string, any> } =\n await (<any>this.fetchStaticResource(CONFIG_FILENAME, 'json'));\n return {\n projectConfig: body as ProjectConfiguration,\n executionContext: { geo: headers['x-geo'] },\n };\n } catch (e) {\n this.logger.error(\n 'Cannot fetch config file',\n 'make sure that your projectId & flowId are correct',\n );\n }\n\n return undefined;\n };\n };\n },\n);\n"],"names":["createSingletonMixin","compose","staticResourcesMixin","CONFIG_FILENAME","__classPrivateFieldGet","__classPrivateFieldSet"],"mappings":"
|
|
1
|
+
{"version":3,"file":"configMixin.js","sources":["../../../../src/mixins/configMixin/configMixin.ts"],"sourcesContent":["/* eslint-disable no-underscore-dangle */\nimport { compose, createSingletonMixin } from '@descope/sdk-helpers';\nimport { staticResourcesMixin } from '../staticResourcesMixin';\nimport { CONFIG_FILENAME } from './constants';\nimport { Config, ProjectConfiguration } from './types';\nimport { resetMixin } from '../resetMixin';\nimport { initLifecycleMixin } from '../initLifecycleMixin';\n\nexport const configMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) => {\n const BaseClass = compose(\n staticResourcesMixin,\n resetMixin,\n initLifecycleMixin,\n )(superclass);\n\n return class ConfigMixinClass extends BaseClass {\n async init() {\n await super.init();\n this.onReset('config', this.#configCacheClear.bind(this));\n }\n\n get config() {\n if (!this.#_configResource) {\n this.#_configResource = this.#fetchConfig();\n }\n\n return this.#_configResource;\n }\n\n #configCacheClear() {\n this.#_configResource = undefined;\n }\n\n #_configResource: Promise<Config>;\n\n #fetchConfig: () => Promise<Config> = async () => {\n try {\n const {\n body,\n headers,\n }: { body: ProjectConfiguration; headers: Record<string, any> } =\n await (<any>this.fetchStaticResource(CONFIG_FILENAME, 'json'));\n return {\n projectConfig: body as ProjectConfiguration,\n executionContext: { geo: headers['x-geo'] },\n };\n } catch (e) {\n this.logger.error(\n 'Cannot fetch config file',\n 'make sure that your projectId & flowId are correct',\n );\n }\n\n return undefined;\n };\n };\n },\n);\n"],"names":["createSingletonMixin","compose","staticResourcesMixin","resetMixin","initLifecycleMixin","CONFIG_FILENAME","__classPrivateFieldGet","__classPrivateFieldSet"],"mappings":";;;;;;;;;MAQa,WAAW,GAAGA,+BAAoB,CAC7C,CAAqC,UAAa,KAAI;;AACpD,IAAA,MAAM,SAAS,GAAGC,kBAAO,CACvBC,yCAAoB,EACpBC,qBAAU,EACVC,qCAAkB,CACnB,CAAC,UAAU,CAAC,CAAC;IAEd,OAAO,EAAA,GAAA,MAAM,gBAAiB,SAAQ,SAAS,CAAA;AAAxC,YAAA,WAAA,GAAA;;;gBAkBL,iCAAkC,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;gBAElC,6BAAsC,CAAA,GAAA,CAAA,IAAA,EAAA,YAAW;AAC/C,oBAAA,IAAI;AACF,wBAAA,MAAM,EACJ,IAAI,EACJ,OAAO,GACR,GACC,MAAY,IAAI,CAAC,mBAAmB,CAACC,yBAAe,EAAE,MAAM,CAAE,CAAC;wBACjE,OAAO;AACL,4BAAA,aAAa,EAAE,IAA4B;4BAC3C,gBAAgB,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;yBAC5C,CAAC;qBACH;oBAAC,OAAO,CAAC,EAAE;wBACV,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,0BAA0B,EAC1B,oDAAoD,CACrD,CAAC;qBACH;AAED,oBAAA,OAAO,SAAS,CAAC;AACnB,iBAAC,CAAC,CAAA;aACH;AAvCC,YAAA,MAAM,IAAI,GAAA;AACR,gBAAA,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;AACnB,gBAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAEC,4BAAA,CAAA,IAAI,EAAkB,2BAAA,EAAA,GAAA,EAAA,kCAAA,CAAA,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aAC3D;AAED,YAAA,IAAI,MAAM,GAAA;AACR,gBAAA,IAAI,CAACA,4BAAA,CAAA,IAAI,EAAA,iCAAA,EAAA,GAAA,CAAiB,EAAE;oBAC1BC,4BAAA,CAAA,IAAI,qCAAoBD,4BAAA,CAAA,IAAI,qCAAa,CAAjB,IAAA,CAAA,IAAI,CAAe,EAAA,GAAA,CAAA,CAAC;iBAC7C;gBAED,OAAOA,4BAAA,CAAA,IAAI,EAAA,iCAAA,EAAA,GAAA,CAAiB,CAAC;aAC9B;AA4BF,SAAA;;;;;AAzBG,YAAAC,4BAAA,CAAA,IAAI,EAAA,iCAAA,EAAoB,SAAS,EAAA,GAAA,CAAA,CAAC;SACnC;AAwBD,QAAA,EAAA,CAAA;AACJ,CAAC;;;;"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var tslib = require('tslib');
|
|
4
|
+
var sdkHelpers = require('@descope/sdk-helpers');
|
|
5
|
+
var commonValidators = require('./createValidateAttributesMixin/commonValidators.js');
|
|
6
|
+
var createValidateAttributesMixin = require('./createValidateAttributesMixin/createValidateAttributesMixin.js');
|
|
7
|
+
|
|
8
|
+
const resetMixin = sdkHelpers.createSingletonMixin((superclass) => {
|
|
9
|
+
var _ResetMixinClass_callbacks, _a;
|
|
10
|
+
const BaseClass = sdkHelpers.compose(createValidateAttributesMixin.createValidateAttributesMixin({ 'project-id': commonValidators.missingAttrValidator }))(superclass);
|
|
11
|
+
return _a = class ResetMixinClass extends BaseClass {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
_ResetMixinClass_callbacks.set(this, new Map());
|
|
15
|
+
}
|
|
16
|
+
onReset(sectionId, callback) {
|
|
17
|
+
if (!tslib.__classPrivateFieldGet(this, _ResetMixinClass_callbacks, "f").has(sectionId)) {
|
|
18
|
+
tslib.__classPrivateFieldGet(this, _ResetMixinClass_callbacks, "f").set(sectionId, callback);
|
|
19
|
+
return () => {
|
|
20
|
+
tslib.__classPrivateFieldGet(this, _ResetMixinClass_callbacks, "f").delete(sectionId);
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
throw new Error(`Callback for sectionId ${sectionId} already exists`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
async reset(...sectionIds) {
|
|
28
|
+
if (sectionIds.length === 0) {
|
|
29
|
+
await Promise.all(Array.from(tslib.__classPrivateFieldGet(this, _ResetMixinClass_callbacks, "f").values()).map((callback) => callback()));
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
await Promise.all(sectionIds.map((sectionId) => {
|
|
33
|
+
var _b;
|
|
34
|
+
if (!tslib.__classPrivateFieldGet(this, _ResetMixinClass_callbacks, "f").has(sectionId)) {
|
|
35
|
+
throw new Error(`Callback for sectionId ${sectionId} does not exist`);
|
|
36
|
+
}
|
|
37
|
+
return (_b = tslib.__classPrivateFieldGet(this, _ResetMixinClass_callbacks, "f").get(sectionId)) === null || _b === void 0 ? void 0 : _b();
|
|
38
|
+
}));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
_ResetMixinClass_callbacks = new WeakMap(),
|
|
43
|
+
_a;
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
exports.resetMixin = resetMixin;
|
|
47
|
+
//# sourceMappingURL=resetMixin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resetMixin.js","sources":["../../../src/mixins/resetMixin.ts"],"sourcesContent":["import { createSingletonMixin, compose } from '@descope/sdk-helpers';\nimport { missingAttrValidator } from './createValidateAttributesMixin/commonValidators';\nimport { createValidateAttributesMixin } from './createValidateAttributesMixin';\n\nexport const resetMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) => {\n const BaseClass = compose(\n createValidateAttributesMixin({ 'project-id': missingAttrValidator }),\n )(superclass);\n\n return class ResetMixinClass extends BaseClass {\n #callbacks = new Map<string, () => void>();\n\n onReset(sectionId: string, callback: () => void | Promise<void>) {\n if (!this.#callbacks.has(sectionId)) {\n this.#callbacks.set(sectionId, callback);\n return () => {\n this.#callbacks.delete(sectionId);\n };\n } else {\n throw new Error(`Callback for sectionId ${sectionId} already exists`);\n }\n }\n\n async reset(...sectionIds: string[]) {\n if (sectionIds.length === 0) {\n await Promise.all(\n Array.from(this.#callbacks.values()).map((callback) => callback()),\n );\n } else {\n await Promise.all(\n sectionIds.map((sectionId) => {\n if (!this.#callbacks.has(sectionId)) {\n throw new Error(\n `Callback for sectionId ${sectionId} does not exist`,\n );\n }\n return this.#callbacks.get(sectionId)?.();\n }),\n );\n }\n }\n };\n },\n);\n"],"names":["createSingletonMixin","compose","createValidateAttributesMixin","missingAttrValidator","__classPrivateFieldGet"],"mappings":";;;;;;;MAIa,UAAU,GAAGA,+BAAoB,CAC5C,CAAqC,UAAa,KAAI;;AACpD,IAAA,MAAM,SAAS,GAAGC,kBAAO,CACvBC,2DAA6B,CAAC,EAAE,YAAY,EAAEC,qCAAoB,EAAE,CAAC,CACtE,CAAC,UAAU,CAAC,CAAC;IAEd,OAAO,EAAA,GAAA,MAAM,eAAgB,SAAQ,SAAS,CAAA;AAAvC,YAAA,WAAA,GAAA;;gBACL,0BAAa,CAAA,GAAA,CAAA,IAAA,EAAA,IAAI,GAAG,EAAsB,CAAC,CAAA;aA+B5C;YA7BC,OAAO,CAAC,SAAiB,EAAE,QAAoC,EAAA;gBAC7D,IAAI,CAACC,4BAAA,CAAA,IAAI,EAAW,0BAAA,EAAA,GAAA,CAAA,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;oBACnCA,4BAAA,CAAA,IAAI,kCAAW,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACzC,oBAAA,OAAO,MAAK;AACV,wBAAAA,4BAAA,CAAA,IAAI,EAAW,0BAAA,EAAA,GAAA,CAAA,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACpC,qBAAC,CAAC;iBACH;qBAAM;AACL,oBAAA,MAAM,IAAI,KAAK,CAAC,0BAA0B,SAAS,CAAA,eAAA,CAAiB,CAAC,CAAC;iBACvE;aACF;AAED,YAAA,MAAM,KAAK,CAAC,GAAG,UAAoB,EAAA;AACjC,gBAAA,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC3B,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,IAAI,CAACA,4BAAA,CAAA,IAAI,EAAA,0BAAA,EAAA,GAAA,CAAW,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC,CACnE,CAAC;iBACH;qBAAM;oBACL,MAAM,OAAO,CAAC,GAAG,CACf,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,KAAI;;wBAC3B,IAAI,CAACA,4BAAA,CAAA,IAAI,EAAW,0BAAA,EAAA,GAAA,CAAA,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;AACnC,4BAAA,MAAM,IAAI,KAAK,CACb,0BAA0B,SAAS,CAAA,eAAA,CAAiB,CACrD,CAAC;yBACH;wBACD,OAAO,CAAA,EAAA,GAAAA,4BAAA,CAAA,IAAI,EAAW,0BAAA,EAAA,GAAA,CAAA,CAAC,GAAG,CAAC,SAAS,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,EAAI,CAAC;qBAC3C,CAAC,CACH,CAAC;iBACH;aACF;AACF,SAAA;;AAAC,QAAA,EAAA,CAAA;AACJ,CAAC;;;;"}
|
|
@@ -2,13 +2,16 @@ import { __classPrivateFieldGet, __classPrivateFieldSet } from 'tslib';
|
|
|
2
2
|
import { createSingletonMixin, compose } from '@descope/sdk-helpers';
|
|
3
3
|
import { staticResourcesMixin } from '../staticResourcesMixin/staticResourcesMixin.js';
|
|
4
4
|
import { CONFIG_FILENAME } from './constants.js';
|
|
5
|
+
import { resetMixin } from '../resetMixin.js';
|
|
6
|
+
import { initLifecycleMixin } from '../initLifecycleMixin.js';
|
|
5
7
|
|
|
6
8
|
const configMixin = createSingletonMixin((superclass) => {
|
|
7
|
-
var _ConfigMixinClass__configResource, _ConfigMixinClass_fetchConfig, _a;
|
|
8
|
-
const BaseClass = compose(staticResourcesMixin)(superclass);
|
|
9
|
+
var _ConfigMixinClass_instances, _ConfigMixinClass_configCacheClear, _ConfigMixinClass__configResource, _ConfigMixinClass_fetchConfig, _a;
|
|
10
|
+
const BaseClass = compose(staticResourcesMixin, resetMixin, initLifecycleMixin)(superclass);
|
|
9
11
|
return _a = class ConfigMixinClass extends BaseClass {
|
|
10
12
|
constructor() {
|
|
11
13
|
super(...arguments);
|
|
14
|
+
_ConfigMixinClass_instances.add(this);
|
|
12
15
|
_ConfigMixinClass__configResource.set(this, void 0);
|
|
13
16
|
_ConfigMixinClass_fetchConfig.set(this, async () => {
|
|
14
17
|
try {
|
|
@@ -24,6 +27,10 @@ const configMixin = createSingletonMixin((superclass) => {
|
|
|
24
27
|
return undefined;
|
|
25
28
|
});
|
|
26
29
|
}
|
|
30
|
+
async init() {
|
|
31
|
+
await super.init();
|
|
32
|
+
this.onReset('config', __classPrivateFieldGet(this, _ConfigMixinClass_instances, "m", _ConfigMixinClass_configCacheClear).bind(this));
|
|
33
|
+
}
|
|
27
34
|
get config() {
|
|
28
35
|
if (!__classPrivateFieldGet(this, _ConfigMixinClass__configResource, "f")) {
|
|
29
36
|
__classPrivateFieldSet(this, _ConfigMixinClass__configResource, __classPrivateFieldGet(this, _ConfigMixinClass_fetchConfig, "f").call(this), "f");
|
|
@@ -33,6 +40,10 @@ const configMixin = createSingletonMixin((superclass) => {
|
|
|
33
40
|
},
|
|
34
41
|
_ConfigMixinClass__configResource = new WeakMap(),
|
|
35
42
|
_ConfigMixinClass_fetchConfig = new WeakMap(),
|
|
43
|
+
_ConfigMixinClass_instances = new WeakSet(),
|
|
44
|
+
_ConfigMixinClass_configCacheClear = function _ConfigMixinClass_configCacheClear() {
|
|
45
|
+
__classPrivateFieldSet(this, _ConfigMixinClass__configResource, undefined, "f");
|
|
46
|
+
},
|
|
36
47
|
_a;
|
|
37
48
|
});
|
|
38
49
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configMixin.js","sources":["../../../../src/mixins/configMixin/configMixin.ts"],"sourcesContent":["/* eslint-disable no-underscore-dangle */\nimport { compose, createSingletonMixin } from '@descope/sdk-helpers';\nimport { staticResourcesMixin } from '../staticResourcesMixin';\nimport { CONFIG_FILENAME } from './constants';\nimport { ProjectConfiguration } from './types';\n\nexport const configMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) => {\n const BaseClass = compose(staticResourcesMixin)(superclass);\n\n return class ConfigMixinClass extends BaseClass {\n get config() {\n if (!this.#_configResource) {\n this.#_configResource = this.#fetchConfig();\n }\n\n return this.#_configResource;\n }\n\n #_configResource;\n\n #fetchConfig = async () => {\n try {\n const {\n body,\n headers,\n }: { body: ProjectConfiguration; headers: Record<string, any> } =\n await (<any>this.fetchStaticResource(CONFIG_FILENAME, 'json'));\n return {\n projectConfig: body as ProjectConfiguration,\n executionContext: { geo: headers['x-geo'] },\n };\n } catch (e) {\n this.logger.error(\n 'Cannot fetch config file',\n 'make sure that your projectId & flowId are correct',\n );\n }\n\n return undefined;\n };\n };\n },\n);\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"configMixin.js","sources":["../../../../src/mixins/configMixin/configMixin.ts"],"sourcesContent":["/* eslint-disable no-underscore-dangle */\nimport { compose, createSingletonMixin } from '@descope/sdk-helpers';\nimport { staticResourcesMixin } from '../staticResourcesMixin';\nimport { CONFIG_FILENAME } from './constants';\nimport { Config, ProjectConfiguration } from './types';\nimport { resetMixin } from '../resetMixin';\nimport { initLifecycleMixin } from '../initLifecycleMixin';\n\nexport const configMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) => {\n const BaseClass = compose(\n staticResourcesMixin,\n resetMixin,\n initLifecycleMixin,\n )(superclass);\n\n return class ConfigMixinClass extends BaseClass {\n async init() {\n await super.init();\n this.onReset('config', this.#configCacheClear.bind(this));\n }\n\n get config() {\n if (!this.#_configResource) {\n this.#_configResource = this.#fetchConfig();\n }\n\n return this.#_configResource;\n }\n\n #configCacheClear() {\n this.#_configResource = undefined;\n }\n\n #_configResource: Promise<Config>;\n\n #fetchConfig: () => Promise<Config> = async () => {\n try {\n const {\n body,\n headers,\n }: { body: ProjectConfiguration; headers: Record<string, any> } =\n await (<any>this.fetchStaticResource(CONFIG_FILENAME, 'json'));\n return {\n projectConfig: body as ProjectConfiguration,\n executionContext: { geo: headers['x-geo'] },\n };\n } catch (e) {\n this.logger.error(\n 'Cannot fetch config file',\n 'make sure that your projectId & flowId are correct',\n );\n }\n\n return undefined;\n };\n };\n },\n);\n"],"names":[],"mappings":";;;;;;;MAQa,WAAW,GAAG,oBAAoB,CAC7C,CAAqC,UAAa,KAAI;;AACpD,IAAA,MAAM,SAAS,GAAG,OAAO,CACvB,oBAAoB,EACpB,UAAU,EACV,kBAAkB,CACnB,CAAC,UAAU,CAAC,CAAC;IAEd,OAAO,EAAA,GAAA,MAAM,gBAAiB,SAAQ,SAAS,CAAA;AAAxC,YAAA,WAAA,GAAA;;;gBAkBL,iCAAkC,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;gBAElC,6BAAsC,CAAA,GAAA,CAAA,IAAA,EAAA,YAAW;AAC/C,oBAAA,IAAI;AACF,wBAAA,MAAM,EACJ,IAAI,EACJ,OAAO,GACR,GACC,MAAY,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,MAAM,CAAE,CAAC;wBACjE,OAAO;AACL,4BAAA,aAAa,EAAE,IAA4B;4BAC3C,gBAAgB,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;yBAC5C,CAAC;qBACH;oBAAC,OAAO,CAAC,EAAE;wBACV,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,0BAA0B,EAC1B,oDAAoD,CACrD,CAAC;qBACH;AAED,oBAAA,OAAO,SAAS,CAAC;AACnB,iBAAC,CAAC,CAAA;aACH;AAvCC,YAAA,MAAM,IAAI,GAAA;AACR,gBAAA,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;AACnB,gBAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,sBAAA,CAAA,IAAI,EAAkB,2BAAA,EAAA,GAAA,EAAA,kCAAA,CAAA,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aAC3D;AAED,YAAA,IAAI,MAAM,GAAA;AACR,gBAAA,IAAI,CAAC,sBAAA,CAAA,IAAI,EAAA,iCAAA,EAAA,GAAA,CAAiB,EAAE;oBAC1B,sBAAA,CAAA,IAAI,qCAAoB,sBAAA,CAAA,IAAI,qCAAa,CAAjB,IAAA,CAAA,IAAI,CAAe,EAAA,GAAA,CAAA,CAAC;iBAC7C;gBAED,OAAO,sBAAA,CAAA,IAAI,EAAA,iCAAA,EAAA,GAAA,CAAiB,CAAC;aAC9B;AA4BF,SAAA;;;;;AAzBG,YAAA,sBAAA,CAAA,IAAI,EAAA,iCAAA,EAAoB,SAAS,EAAA,GAAA,CAAA,CAAC;SACnC;AAwBD,QAAA,EAAA,CAAA;AACJ,CAAC;;;;"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { __classPrivateFieldGet } from 'tslib';
|
|
2
|
+
import { createSingletonMixin, compose } from '@descope/sdk-helpers';
|
|
3
|
+
import { missingAttrValidator } from './createValidateAttributesMixin/commonValidators.js';
|
|
4
|
+
import { createValidateAttributesMixin } from './createValidateAttributesMixin/createValidateAttributesMixin.js';
|
|
5
|
+
|
|
6
|
+
const resetMixin = createSingletonMixin((superclass) => {
|
|
7
|
+
var _ResetMixinClass_callbacks, _a;
|
|
8
|
+
const BaseClass = compose(createValidateAttributesMixin({ 'project-id': missingAttrValidator }))(superclass);
|
|
9
|
+
return _a = class ResetMixinClass extends BaseClass {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
_ResetMixinClass_callbacks.set(this, new Map());
|
|
13
|
+
}
|
|
14
|
+
onReset(sectionId, callback) {
|
|
15
|
+
if (!__classPrivateFieldGet(this, _ResetMixinClass_callbacks, "f").has(sectionId)) {
|
|
16
|
+
__classPrivateFieldGet(this, _ResetMixinClass_callbacks, "f").set(sectionId, callback);
|
|
17
|
+
return () => {
|
|
18
|
+
__classPrivateFieldGet(this, _ResetMixinClass_callbacks, "f").delete(sectionId);
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
throw new Error(`Callback for sectionId ${sectionId} already exists`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
async reset(...sectionIds) {
|
|
26
|
+
if (sectionIds.length === 0) {
|
|
27
|
+
await Promise.all(Array.from(__classPrivateFieldGet(this, _ResetMixinClass_callbacks, "f").values()).map((callback) => callback()));
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
await Promise.all(sectionIds.map((sectionId) => {
|
|
31
|
+
var _b;
|
|
32
|
+
if (!__classPrivateFieldGet(this, _ResetMixinClass_callbacks, "f").has(sectionId)) {
|
|
33
|
+
throw new Error(`Callback for sectionId ${sectionId} does not exist`);
|
|
34
|
+
}
|
|
35
|
+
return (_b = __classPrivateFieldGet(this, _ResetMixinClass_callbacks, "f").get(sectionId)) === null || _b === void 0 ? void 0 : _b();
|
|
36
|
+
}));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
_ResetMixinClass_callbacks = new WeakMap(),
|
|
41
|
+
_a;
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
export { resetMixin };
|
|
45
|
+
//# sourceMappingURL=resetMixin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resetMixin.js","sources":["../../../src/mixins/resetMixin.ts"],"sourcesContent":["import { createSingletonMixin, compose } from '@descope/sdk-helpers';\nimport { missingAttrValidator } from './createValidateAttributesMixin/commonValidators';\nimport { createValidateAttributesMixin } from './createValidateAttributesMixin';\n\nexport const resetMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) => {\n const BaseClass = compose(\n createValidateAttributesMixin({ 'project-id': missingAttrValidator }),\n )(superclass);\n\n return class ResetMixinClass extends BaseClass {\n #callbacks = new Map<string, () => void>();\n\n onReset(sectionId: string, callback: () => void | Promise<void>) {\n if (!this.#callbacks.has(sectionId)) {\n this.#callbacks.set(sectionId, callback);\n return () => {\n this.#callbacks.delete(sectionId);\n };\n } else {\n throw new Error(`Callback for sectionId ${sectionId} already exists`);\n }\n }\n\n async reset(...sectionIds: string[]) {\n if (sectionIds.length === 0) {\n await Promise.all(\n Array.from(this.#callbacks.values()).map((callback) => callback()),\n );\n } else {\n await Promise.all(\n sectionIds.map((sectionId) => {\n if (!this.#callbacks.has(sectionId)) {\n throw new Error(\n `Callback for sectionId ${sectionId} does not exist`,\n );\n }\n return this.#callbacks.get(sectionId)?.();\n }),\n );\n }\n }\n };\n },\n);\n"],"names":[],"mappings":";;;;;MAIa,UAAU,GAAG,oBAAoB,CAC5C,CAAqC,UAAa,KAAI;;AACpD,IAAA,MAAM,SAAS,GAAG,OAAO,CACvB,6BAA6B,CAAC,EAAE,YAAY,EAAE,oBAAoB,EAAE,CAAC,CACtE,CAAC,UAAU,CAAC,CAAC;IAEd,OAAO,EAAA,GAAA,MAAM,eAAgB,SAAQ,SAAS,CAAA;AAAvC,YAAA,WAAA,GAAA;;gBACL,0BAAa,CAAA,GAAA,CAAA,IAAA,EAAA,IAAI,GAAG,EAAsB,CAAC,CAAA;aA+B5C;YA7BC,OAAO,CAAC,SAAiB,EAAE,QAAoC,EAAA;gBAC7D,IAAI,CAAC,sBAAA,CAAA,IAAI,EAAW,0BAAA,EAAA,GAAA,CAAA,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;oBACnC,sBAAA,CAAA,IAAI,kCAAW,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACzC,oBAAA,OAAO,MAAK;AACV,wBAAA,sBAAA,CAAA,IAAI,EAAW,0BAAA,EAAA,GAAA,CAAA,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACpC,qBAAC,CAAC;iBACH;qBAAM;AACL,oBAAA,MAAM,IAAI,KAAK,CAAC,0BAA0B,SAAS,CAAA,eAAA,CAAiB,CAAC,CAAC;iBACvE;aACF;AAED,YAAA,MAAM,KAAK,CAAC,GAAG,UAAoB,EAAA;AACjC,gBAAA,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC3B,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,IAAI,CAAC,sBAAA,CAAA,IAAI,EAAA,0BAAA,EAAA,GAAA,CAAW,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC,CACnE,CAAC;iBACH;qBAAM;oBACL,MAAM,OAAO,CAAC,GAAG,CACf,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,KAAI;;wBAC3B,IAAI,CAAC,sBAAA,CAAA,IAAI,EAAW,0BAAA,EAAA,GAAA,CAAA,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;AACnC,4BAAA,MAAM,IAAI,KAAK,CACb,0BAA0B,SAAS,CAAA,eAAA,CAAiB,CACrD,CAAC;yBACH;wBACD,OAAO,CAAA,EAAA,GAAA,sBAAA,CAAA,IAAI,EAAW,0BAAA,EAAA,GAAA,CAAA,CAAC,GAAG,CAAC,SAAS,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,EAAI,CAAC;qBAC3C,CAAC,CACH,CAAC;iBACH;aACF;AACF,SAAA;;AAAC,QAAA,EAAA,CAAA;AACJ,CAAC;;;;"}
|