@descope/sdk-mixins 0.0.0-next-497a5fe8-20250421 → 0.0.0-next-26df9ba9-20250424

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 (215) hide show
  1. package/dist/cjs/constants.js +6 -0
  2. package/dist/cjs/constants.js.map +1 -0
  3. package/dist/cjs/index.js +43 -0
  4. package/dist/cjs/index.js.map +1 -0
  5. package/dist/cjs/mixins/baseUrlMixin.js +14 -0
  6. package/dist/cjs/mixins/baseUrlMixin.js.map +1 -0
  7. package/dist/cjs/mixins/configMixin/configMixin.js +53 -0
  8. package/dist/cjs/mixins/configMixin/configMixin.js.map +1 -0
  9. package/dist/cjs/mixins/configMixin/constants.js +6 -0
  10. package/dist/cjs/mixins/configMixin/constants.js.map +1 -0
  11. package/dist/cjs/mixins/cookieConfigMixin.js +14 -0
  12. package/dist/cjs/mixins/cookieConfigMixin.js.map +1 -0
  13. package/dist/cjs/mixins/createStateManagementMixin.js +47 -0
  14. package/dist/cjs/mixins/createStateManagementMixin.js.map +1 -0
  15. package/dist/cjs/mixins/createValidateAttributesMixin/commonValidators.js +7 -0
  16. package/dist/cjs/mixins/createValidateAttributesMixin/commonValidators.js.map +1 -0
  17. package/dist/cjs/mixins/createValidateAttributesMixin/createValidateAttributesMixin.js +40 -0
  18. package/dist/cjs/mixins/createValidateAttributesMixin/createValidateAttributesMixin.js.map +1 -0
  19. package/dist/cjs/mixins/debuggerMixin/debugger-wc.js +237 -0
  20. package/dist/cjs/mixins/debuggerMixin/debugger-wc.js.map +1 -0
  21. package/dist/cjs/mixins/debuggerMixin/debuggerMixin.js +73 -0
  22. package/dist/cjs/mixins/debuggerMixin/debuggerMixin.js.map +1 -0
  23. package/dist/cjs/mixins/debuggerMixin/helpers.js +76 -0
  24. package/dist/cjs/mixins/debuggerMixin/helpers.js.map +1 -0
  25. package/dist/cjs/mixins/descopeUiMixin/constants.js +14 -0
  26. package/dist/cjs/mixins/descopeUiMixin/constants.js.map +1 -0
  27. package/dist/cjs/mixins/descopeUiMixin/descopeUiMixin.js +96 -0
  28. package/dist/cjs/mixins/descopeUiMixin/descopeUiMixin.js.map +1 -0
  29. package/dist/cjs/mixins/descopeUiMixin/helpers.js +8 -0
  30. package/dist/cjs/mixins/descopeUiMixin/helpers.js.map +1 -0
  31. package/dist/cjs/mixins/formMixin.js +57 -0
  32. package/dist/cjs/mixins/formMixin.js.map +1 -0
  33. package/dist/cjs/mixins/initElementMixin.js +39 -0
  34. package/dist/cjs/mixins/initElementMixin.js.map +1 -0
  35. package/dist/cjs/mixins/initLifecycleMixin.js +29 -0
  36. package/dist/cjs/mixins/initLifecycleMixin.js.map +1 -0
  37. package/dist/cjs/mixins/injectNpmLibMixin/constants.js +10 -0
  38. package/dist/cjs/mixins/injectNpmLibMixin/constants.js.map +1 -0
  39. package/dist/cjs/mixins/injectNpmLibMixin/helpers.js +112 -0
  40. package/dist/cjs/mixins/injectNpmLibMixin/helpers.js.map +1 -0
  41. package/dist/cjs/mixins/injectNpmLibMixin/injectNpmLibMixin.js +28 -0
  42. package/dist/cjs/mixins/injectNpmLibMixin/injectNpmLibMixin.js.map +1 -0
  43. package/dist/cjs/mixins/loggerMixin/loggerMixin.js +37 -0
  44. package/dist/cjs/mixins/loggerMixin/loggerMixin.js.map +1 -0
  45. package/dist/cjs/mixins/modalMixin/constants.js +6 -0
  46. package/dist/cjs/mixins/modalMixin/constants.js.map +1 -0
  47. package/dist/cjs/mixins/modalMixin/helpers.js +14 -0
  48. package/dist/cjs/mixins/modalMixin/helpers.js.map +1 -0
  49. package/dist/cjs/mixins/modalMixin/modalMixin.js +47 -0
  50. package/dist/cjs/mixins/modalMixin/modalMixin.js.map +1 -0
  51. package/dist/cjs/mixins/notificationsMixin/constants.js +6 -0
  52. package/dist/cjs/mixins/notificationsMixin/constants.js.map +1 -0
  53. package/dist/cjs/mixins/notificationsMixin/helpers.js +14 -0
  54. package/dist/cjs/mixins/notificationsMixin/helpers.js.map +1 -0
  55. package/dist/cjs/mixins/notificationsMixin/notificationsMixin.js +50 -0
  56. package/dist/cjs/mixins/notificationsMixin/notificationsMixin.js.map +1 -0
  57. package/dist/cjs/mixins/observeAttributesMixin/helpers.js +17 -0
  58. package/dist/cjs/mixins/observeAttributesMixin/helpers.js.map +1 -0
  59. package/dist/cjs/mixins/observeAttributesMixin/observeAttributesMixin.js +47 -0
  60. package/dist/cjs/mixins/observeAttributesMixin/observeAttributesMixin.js.map +1 -0
  61. package/dist/cjs/mixins/projectIdMixin.js +17 -0
  62. package/dist/cjs/mixins/projectIdMixin.js.map +1 -0
  63. package/dist/cjs/mixins/resetMixin.js +47 -0
  64. package/dist/cjs/mixins/resetMixin.js.map +1 -0
  65. package/dist/cjs/mixins/staticResourcesMixin/constants.js +13 -0
  66. package/dist/cjs/mixins/staticResourcesMixin/constants.js.map +1 -0
  67. package/dist/cjs/mixins/staticResourcesMixin/fetchWithFallbacks.js +43 -0
  68. package/dist/cjs/mixins/staticResourcesMixin/fetchWithFallbacks.js.map +1 -0
  69. package/dist/cjs/mixins/staticResourcesMixin/index.js +9 -0
  70. package/dist/cjs/mixins/staticResourcesMixin/index.js.map +1 -0
  71. package/dist/cjs/mixins/staticResourcesMixin/staticResourcesMixin.js +101 -0
  72. package/dist/cjs/mixins/staticResourcesMixin/staticResourcesMixin.js.map +1 -0
  73. package/dist/cjs/mixins/themeMixin/constants.js +7 -0
  74. package/dist/cjs/mixins/themeMixin/constants.js.map +1 -0
  75. package/dist/cjs/mixins/themeMixin/helpers.js +34 -0
  76. package/dist/cjs/mixins/themeMixin/helpers.js.map +1 -0
  77. package/dist/cjs/mixins/themeMixin/index.js +8 -0
  78. package/dist/cjs/mixins/themeMixin/index.js.map +1 -0
  79. package/dist/cjs/mixins/themeMixin/themeMixin.js +179 -0
  80. package/dist/cjs/mixins/themeMixin/themeMixin.js.map +1 -0
  81. package/dist/cjs/package.json +1 -0
  82. package/dist/esm/constants.js +4 -0
  83. package/dist/esm/constants.js.map +1 -0
  84. package/dist/esm/index.js +19 -0
  85. package/dist/esm/index.js.map +1 -0
  86. package/dist/esm/mixins/baseUrlMixin.js +12 -0
  87. package/dist/esm/mixins/baseUrlMixin.js.map +1 -0
  88. package/dist/esm/mixins/configMixin/configMixin.js +51 -0
  89. package/dist/esm/mixins/configMixin/configMixin.js.map +1 -0
  90. package/dist/esm/mixins/configMixin/constants.js +4 -0
  91. package/dist/esm/mixins/configMixin/constants.js.map +1 -0
  92. package/dist/esm/mixins/cookieConfigMixin.js +12 -0
  93. package/dist/esm/mixins/cookieConfigMixin.js.map +1 -0
  94. package/dist/esm/mixins/createStateManagementMixin.js +45 -0
  95. package/dist/esm/mixins/createStateManagementMixin.js.map +1 -0
  96. package/dist/esm/mixins/createValidateAttributesMixin/commonValidators.js +5 -0
  97. package/dist/esm/mixins/createValidateAttributesMixin/commonValidators.js.map +1 -0
  98. package/dist/esm/mixins/createValidateAttributesMixin/createValidateAttributesMixin.js +38 -0
  99. package/dist/esm/mixins/createValidateAttributesMixin/createValidateAttributesMixin.js.map +1 -0
  100. package/dist/esm/mixins/debuggerMixin/debugger-wc.js +233 -0
  101. package/dist/esm/mixins/debuggerMixin/debugger-wc.js.map +1 -0
  102. package/dist/esm/mixins/debuggerMixin/debuggerMixin.js +71 -0
  103. package/dist/esm/mixins/debuggerMixin/debuggerMixin.js.map +1 -0
  104. package/dist/esm/mixins/debuggerMixin/helpers.js +72 -0
  105. package/dist/esm/mixins/debuggerMixin/helpers.js.map +1 -0
  106. package/dist/esm/mixins/descopeUiMixin/constants.js +9 -0
  107. package/dist/esm/mixins/descopeUiMixin/constants.js.map +1 -0
  108. package/dist/esm/mixins/descopeUiMixin/descopeUiMixin.js +94 -0
  109. package/dist/esm/mixins/descopeUiMixin/descopeUiMixin.js.map +1 -0
  110. package/dist/esm/mixins/descopeUiMixin/helpers.js +6 -0
  111. package/dist/esm/mixins/descopeUiMixin/helpers.js.map +1 -0
  112. package/dist/esm/mixins/formMixin.js +55 -0
  113. package/dist/esm/mixins/formMixin.js.map +1 -0
  114. package/dist/esm/mixins/initElementMixin.js +37 -0
  115. package/dist/esm/mixins/initElementMixin.js.map +1 -0
  116. package/dist/esm/mixins/initLifecycleMixin.js +27 -0
  117. package/dist/esm/mixins/initLifecycleMixin.js.map +1 -0
  118. package/dist/esm/mixins/injectNpmLibMixin/constants.js +8 -0
  119. package/dist/esm/mixins/injectNpmLibMixin/constants.js.map +1 -0
  120. package/dist/esm/mixins/injectNpmLibMixin/helpers.js +109 -0
  121. package/dist/esm/mixins/injectNpmLibMixin/helpers.js.map +1 -0
  122. package/dist/esm/mixins/injectNpmLibMixin/injectNpmLibMixin.js +26 -0
  123. package/dist/esm/mixins/injectNpmLibMixin/injectNpmLibMixin.js.map +1 -0
  124. package/dist/esm/mixins/loggerMixin/loggerMixin.js +35 -0
  125. package/dist/esm/mixins/loggerMixin/loggerMixin.js.map +1 -0
  126. package/dist/esm/mixins/modalMixin/constants.js +4 -0
  127. package/dist/esm/mixins/modalMixin/constants.js.map +1 -0
  128. package/dist/esm/mixins/modalMixin/helpers.js +12 -0
  129. package/dist/esm/mixins/modalMixin/helpers.js.map +1 -0
  130. package/dist/esm/mixins/modalMixin/modalMixin.js +45 -0
  131. package/dist/esm/mixins/modalMixin/modalMixin.js.map +1 -0
  132. package/dist/esm/mixins/notificationsMixin/constants.js +4 -0
  133. package/dist/esm/mixins/notificationsMixin/constants.js.map +1 -0
  134. package/dist/esm/mixins/notificationsMixin/helpers.js +12 -0
  135. package/dist/esm/mixins/notificationsMixin/helpers.js.map +1 -0
  136. package/dist/esm/mixins/notificationsMixin/notificationsMixin.js +48 -0
  137. package/dist/esm/mixins/notificationsMixin/notificationsMixin.js.map +1 -0
  138. package/dist/esm/mixins/observeAttributesMixin/helpers.js +15 -0
  139. package/dist/esm/mixins/observeAttributesMixin/helpers.js.map +1 -0
  140. package/dist/esm/mixins/observeAttributesMixin/observeAttributesMixin.js +45 -0
  141. package/dist/esm/mixins/observeAttributesMixin/observeAttributesMixin.js.map +1 -0
  142. package/dist/esm/mixins/projectIdMixin.js +15 -0
  143. package/dist/esm/mixins/projectIdMixin.js.map +1 -0
  144. package/dist/esm/mixins/resetMixin.js +45 -0
  145. package/dist/esm/mixins/resetMixin.js.map +1 -0
  146. package/dist/esm/mixins/staticResourcesMixin/constants.js +9 -0
  147. package/dist/esm/mixins/staticResourcesMixin/constants.js.map +1 -0
  148. package/dist/esm/mixins/staticResourcesMixin/fetchWithFallbacks.js +41 -0
  149. package/dist/esm/mixins/staticResourcesMixin/fetchWithFallbacks.js.map +1 -0
  150. package/dist/esm/mixins/staticResourcesMixin/index.js +2 -0
  151. package/dist/esm/mixins/staticResourcesMixin/index.js.map +1 -0
  152. package/dist/esm/mixins/staticResourcesMixin/staticResourcesMixin.js +98 -0
  153. package/dist/esm/mixins/staticResourcesMixin/staticResourcesMixin.js.map +1 -0
  154. package/dist/esm/mixins/themeMixin/constants.js +5 -0
  155. package/dist/esm/mixins/themeMixin/constants.js.map +1 -0
  156. package/dist/esm/mixins/themeMixin/helpers.js +31 -0
  157. package/dist/esm/mixins/themeMixin/helpers.js.map +1 -0
  158. package/dist/esm/mixins/themeMixin/index.js +2 -0
  159. package/dist/esm/mixins/themeMixin/index.js.map +1 -0
  160. package/dist/esm/mixins/themeMixin/themeMixin.js +177 -0
  161. package/dist/esm/mixins/themeMixin/themeMixin.js.map +1 -0
  162. package/dist/index.d.ts +6503 -0
  163. package/dist/types/constants.d.ts +1 -0
  164. package/dist/types/index.d.ts +24 -0
  165. package/dist/types/mixins/baseUrlMixin.d.ts +331 -0
  166. package/dist/types/mixins/configMixin/configMixin.d.ts +363 -0
  167. package/dist/types/mixins/configMixin/constants.d.ts +1 -0
  168. package/dist/types/mixins/configMixin/index.d.ts +2 -0
  169. package/dist/types/mixins/configMixin/types.d.ts +66 -0
  170. package/dist/types/mixins/cookieConfigMixin.d.ts +331 -0
  171. package/dist/types/mixins/createStateManagementMixin.d.ts +341 -0
  172. package/dist/types/mixins/createValidateAttributesMixin/commonValidators.d.ts +1 -0
  173. package/dist/types/mixins/createValidateAttributesMixin/createValidateAttributesMixin.d.ts +346 -0
  174. package/dist/types/mixins/createValidateAttributesMixin/index.d.ts +1 -0
  175. package/dist/types/mixins/debuggerMixin/debugger-wc.d.ts +9 -0
  176. package/dist/types/mixins/debuggerMixin/debuggerMixin.d.ts +347 -0
  177. package/dist/types/mixins/debuggerMixin/helpers.d.ts +4 -0
  178. package/dist/types/mixins/debuggerMixin/index.d.ts +1 -0
  179. package/dist/types/mixins/debuggerMixin/types.d.ts +12 -0
  180. package/dist/types/mixins/descopeUiMixin/constants.d.ts +4 -0
  181. package/dist/types/mixins/descopeUiMixin/descopeUiMixin.d.ts +373 -0
  182. package/dist/types/mixins/descopeUiMixin/helpers.d.ts +2 -0
  183. package/dist/types/mixins/descopeUiMixin/index.d.ts +1 -0
  184. package/dist/types/mixins/formMixin.d.ts +345 -0
  185. package/dist/types/mixins/initElementMixin.d.ts +332 -0
  186. package/dist/types/mixins/initLifecycleMixin.d.ts +332 -0
  187. package/dist/types/mixins/injectNpmLibMixin/constants.d.ts +1 -0
  188. package/dist/types/mixins/injectNpmLibMixin/helpers.d.ts +7 -0
  189. package/dist/types/mixins/injectNpmLibMixin/index.d.ts +1 -0
  190. package/dist/types/mixins/injectNpmLibMixin/injectNpmLibMixin.d.ts +343 -0
  191. package/dist/types/mixins/loggerMixin/index.d.ts +2 -0
  192. package/dist/types/mixins/loggerMixin/loggerMixin.d.ts +339 -0
  193. package/dist/types/mixins/loggerMixin/types.d.ts +6 -0
  194. package/dist/types/mixins/modalMixin/constants.d.ts +1 -0
  195. package/dist/types/mixins/modalMixin/helpers.d.ts +1 -0
  196. package/dist/types/mixins/modalMixin/index.d.ts +1 -0
  197. package/dist/types/mixins/modalMixin/modalMixin.d.ts +406 -0
  198. package/dist/types/mixins/notificationsMixin/constants.d.ts +1 -0
  199. package/dist/types/mixins/notificationsMixin/helpers.d.ts +1 -0
  200. package/dist/types/mixins/notificationsMixin/index.d.ts +1 -0
  201. package/dist/types/mixins/notificationsMixin/notificationsMixin.d.ts +425 -0
  202. package/dist/types/mixins/observeAttributesMixin/helpers.d.ts +1 -0
  203. package/dist/types/mixins/observeAttributesMixin/index.d.ts +1 -0
  204. package/dist/types/mixins/observeAttributesMixin/observeAttributesMixin.d.ts +342 -0
  205. package/dist/types/mixins/projectIdMixin.d.ts +342 -0
  206. package/dist/types/mixins/resetMixin.d.ts +344 -0
  207. package/dist/types/mixins/staticResourcesMixin/constants.d.ts +4 -0
  208. package/dist/types/mixins/staticResourcesMixin/fetchWithFallbacks.d.ts +7 -0
  209. package/dist/types/mixins/staticResourcesMixin/index.d.ts +1 -0
  210. package/dist/types/mixins/staticResourcesMixin/staticResourcesMixin.d.ts +362 -0
  211. package/dist/types/mixins/themeMixin/constants.d.ts +2 -0
  212. package/dist/types/mixins/themeMixin/helpers.d.ts +5 -0
  213. package/dist/types/mixins/themeMixin/index.d.ts +1 -0
  214. package/dist/types/mixins/themeMixin/themeMixin.d.ts +406 -0
  215. package/package.json +10 -10
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loggerMixin.js","sources":["../../../../src/mixins/loggerMixin/loggerMixin.ts"],"sourcesContent":["import { createSingletonMixin } from '@descope/sdk-helpers';\nimport { Logger } from './types';\n\nconst logLevels = ['error', 'warn', 'info', 'debug'] as const;\n\nexport type LogLevel = (typeof logLevels)[number];\n\nexport const loggerMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) =>\n class LoggerMixinClass extends superclass {\n #logger: Logger = this.#wrapLogger(console);\n\n #wrapLogger(logger: Partial<Logger>) {\n return logLevels.reduce((acc, logLevel) => {\n acc[logLevel] = (...args: any[]) => {\n this.onLogEvent(logLevel, args);\n logger[logLevel]?.(...args);\n };\n\n return acc;\n }, {}) as Logger;\n }\n\n set logger(logger: Partial<Logger> | undefined) {\n this.#logger = this.#wrapLogger(logger || console);\n }\n\n get logger(): Logger {\n return this.#logger;\n }\n\n // eslint-disable-next-line class-methods-use-this, @typescript-eslint/no-unused-vars\n onLogEvent(logLevel: LogLevel, data: any[]) {}\n },\n);\n"],"names":["createSingletonMixin","__classPrivateFieldGet","__classPrivateFieldSet"],"mappings":";;;;;AAGA,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAU,CAAC;AAIvD,MAAM,WAAW,GAAGA,+BAAoB,CAC7C,CAAqC,UAAa,KAAI,EAAA,IAAA,2BAAA,EAAA,wBAAA,EAAA,4BAAA,EAAA,EAAA,CAAA,CAAA,OAAA,EAAA,GACpD,MAAM,gBAAiB,SAAQ,UAAU,CAAA;AAAzC,QAAA,WAAA,GAAA;;;YACE,wBAAkB,CAAA,GAAA,CAAA,IAAA,EAAAC,4BAAA,CAAA,IAAI,EAAY,2BAAA,EAAA,GAAA,EAAA,4BAAA,CAAA,CAAA,IAAA,CAAhB,IAAI,EAAa,OAAO,CAAC,CAAC,CAAA;SAuB7C;QAVC,IAAI,MAAM,CAAC,MAAmC,EAAA;AAC5C,YAAAC,4BAAA,CAAA,IAAI,EAAA,wBAAA,EAAWD,4BAAA,CAAA,IAAI,EAAY,2BAAA,EAAA,GAAA,EAAA,4BAAA,CAAA,CAAA,IAAA,CAAhB,IAAI,EAAa,MAAM,IAAI,OAAO,CAAC,MAAA,CAAC;SACpD;AAED,QAAA,IAAI,MAAM,GAAA;YACR,OAAOA,4BAAA,CAAA,IAAI,EAAA,wBAAA,EAAA,GAAA,CAAQ,CAAC;SACrB;;AAGD,QAAA,UAAU,CAAC,QAAkB,EAAE,IAAW,KAAI;AAC/C,KAAA;;;yEArBa,MAAuB,EAAA;QACjC,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,KAAI;YACxC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAW,KAAI;;AACjC,gBAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAChC,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,CAAC,uDAAG,GAAG,IAAI,CAAC,CAAC;AAC9B,aAAC,CAAC;AAEF,YAAA,OAAO,GAAG,CAAC;SACZ,EAAE,EAAE,CAAW,CAAC;KAClB;AAYF,IAAA,EAAA,CAAA,EAAA;;;;"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ const MODAL_ELE_TAG = 'descope-modal';
4
+
5
+ exports.MODAL_ELE_TAG = MODAL_ELE_TAG;
6
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sources":["../../../../src/mixins/modalMixin/constants.ts"],"sourcesContent":["export const MODAL_ELE_TAG = 'descope-modal';\n"],"names":[],"mappings":";;AAAO,MAAM,aAAa,GAAG;;;;"}
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ var constants = require('./constants.js');
4
+
5
+ const createModalEle = (config = {}) => {
6
+ const modal = document.createElement(constants.MODAL_ELE_TAG);
7
+ Object.keys(config).forEach((key) => {
8
+ modal.setAttribute(key, config[key]);
9
+ });
10
+ return modal;
11
+ };
12
+
13
+ exports.createModalEle = createModalEle;
14
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sources":["../../../../src/mixins/modalMixin/helpers.ts"],"sourcesContent":["import { MODAL_ELE_TAG } from './constants';\n\nexport const createModalEle = (config = {}) => {\n const modal = document.createElement(MODAL_ELE_TAG);\n Object.keys(config).forEach((key) => {\n modal.setAttribute(key, config[key]);\n });\n\n return modal;\n};\n"],"names":["MODAL_ELE_TAG"],"mappings":";;;;MAEa,cAAc,GAAG,CAAC,MAAM,GAAG,EAAE,KAAI;IAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAACA,uBAAa,CAAC,CAAC;IACpD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;QAClC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACvC,KAAC,CAAC,CAAC;AAEH,IAAA,OAAO,KAAK,CAAC;AACf;;;;"}
@@ -0,0 +1,47 @@
1
+ 'use strict';
2
+
3
+ var tslib = require('tslib');
4
+ var sdkHelpers = require('@descope/sdk-helpers');
5
+ var initLifecycleMixin = require('../initLifecycleMixin.js');
6
+ var initElementMixin = require('../initElementMixin.js');
7
+ var descopeUiMixin = require('../descopeUiMixin/descopeUiMixin.js');
8
+ var helpers = require('./helpers.js');
9
+ var constants = require('./constants.js');
10
+ var sdkComponentDrivers = require('@descope/sdk-component-drivers');
11
+
12
+ const modalMixin = sdkHelpers.createSingletonMixin((superclass) => {
13
+ var _ModalMixinClass_ModalDriverWrapper, _a;
14
+ const BaseClass = sdkHelpers.compose(initLifecycleMixin.initLifecycleMixin, initElementMixin.initElementMixin, descopeUiMixin.descopeUiMixin)(superclass);
15
+ return _a = class ModalMixinClass extends BaseClass {
16
+ constructor() {
17
+ super(...arguments);
18
+ _ModalMixinClass_ModalDriverWrapper.set(this, (() => {
19
+ const loadDescopeUiComponents = this.loadDescopeUiComponents.bind(this);
20
+ return class ModalDriverWrapper extends sdkComponentDrivers.ModalDriver {
21
+ setContent(template) {
22
+ loadDescopeUiComponents(template);
23
+ super.setContent(template);
24
+ }
25
+ };
26
+ })());
27
+ }
28
+ createModal(config) {
29
+ const baseConfig = {};
30
+ const modal = helpers.createModalEle(Object.assign(Object.assign({}, baseConfig), config));
31
+ this.rootElement.append(modal);
32
+ return new (tslib.__classPrivateFieldGet(this, _ModalMixinClass_ModalDriverWrapper, "f"))(modal, {
33
+ logger: this.logger,
34
+ });
35
+ }
36
+ async init() {
37
+ var _b;
38
+ this.loadDescopeUiComponents([constants.MODAL_ELE_TAG]);
39
+ await ((_b = super.init) === null || _b === void 0 ? void 0 : _b.call(this));
40
+ }
41
+ },
42
+ _ModalMixinClass_ModalDriverWrapper = new WeakMap(),
43
+ _a;
44
+ });
45
+
46
+ exports.modalMixin = modalMixin;
47
+ //# sourceMappingURL=modalMixin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modalMixin.js","sources":["../../../../src/mixins/modalMixin/modalMixin.ts"],"sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport { createSingletonMixin, compose } from '@descope/sdk-helpers';\nimport { initLifecycleMixin } from '../initLifecycleMixin';\nimport { initElementMixin } from '../initElementMixin';\nimport { descopeUiMixin } from '../descopeUiMixin';\nimport { createModalEle } from './helpers';\nimport { MODAL_ELE_TAG } from './constants';\nimport { ModalDriver } from '@descope/sdk-component-drivers';\n\nexport const modalMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) => {\n const BaseClass = compose(\n initLifecycleMixin,\n initElementMixin,\n descopeUiMixin,\n )(superclass);\n return class ModalMixinClass extends BaseClass {\n #ModalDriverWrapper = (() => {\n const loadDescopeUiComponents = this.loadDescopeUiComponents.bind(this);\n return class ModalDriverWrapper extends ModalDriver {\n setContent(template: HTMLTemplateElement) {\n loadDescopeUiComponents(template);\n super.setContent(template);\n }\n };\n })();\n\n createModal(config?: Record<string, string>) {\n const baseConfig = {};\n\n const modal = createModalEle({\n ...baseConfig,\n ...config,\n });\n\n this.rootElement.append(modal);\n\n return new this.#ModalDriverWrapper(modal, {\n logger: this.logger,\n }) as ModalDriver;\n }\n\n async init() {\n this.loadDescopeUiComponents([MODAL_ELE_TAG]);\n await super.init?.();\n }\n };\n },\n);\n"],"names":["createSingletonMixin","compose","initLifecycleMixin","initElementMixin","descopeUiMixin","ModalDriver","createModalEle","__classPrivateFieldGet","MODAL_ELE_TAG"],"mappings":";;;;;;;;;;;MASa,UAAU,GAAGA,+BAAoB,CAC5C,CAAqC,UAAa,KAAI;;AACpD,IAAA,MAAM,SAAS,GAAGC,kBAAO,CACvBC,qCAAkB,EAClBC,iCAAgB,EAChBC,6BAAc,CACf,CAAC,UAAU,CAAC,CAAC;IACd,OAAO,EAAA,GAAA,MAAM,eAAgB,SAAQ,SAAS,CAAA;AAAvC,YAAA,WAAA,GAAA;;gBACL,mCAAsB,CAAA,GAAA,CAAA,IAAA,EAAA,CAAC,MAAK;oBAC1B,MAAM,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACxE,OAAO,MAAM,kBAAmB,SAAQC,+BAAW,CAAA;AACjD,wBAAA,UAAU,CAAC,QAA6B,EAAA;4BACtC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;AAClC,4BAAA,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;yBAC5B;qBACF,CAAC;iBACH,GAAG,CAAC,CAAA;aAqBN;AAnBC,YAAA,WAAW,CAAC,MAA+B,EAAA;gBACzC,MAAM,UAAU,GAAG,EAAE,CAAC;gBAEtB,MAAM,KAAK,GAAGC,sBAAc,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACvB,UAAU,CACV,EAAA,MAAM,EACT,CAAC;AAEH,gBAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAE/B,gBAAA,OAAO,KAAIC,4BAAA,CAAA,IAAI,EAAoB,mCAAA,EAAA,GAAA,CAAA,EAAC,KAAK,EAAE;oBACzC,MAAM,EAAE,IAAI,CAAC,MAAM;AACpB,iBAAA,CAAgB,CAAC;aACnB;AAED,YAAA,MAAM,IAAI,GAAA;;AACR,gBAAA,IAAI,CAAC,uBAAuB,CAAC,CAACC,uBAAa,CAAC,CAAC,CAAC;AAC9C,gBAAA,OAAM,CAAA,EAAA,GAAA,KAAK,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,IAAA,CAAI,CAAA,CAAC;aACtB;AACF,SAAA;;AAAC,QAAA,EAAA,CAAA;AACJ,CAAC;;;;"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ const NOTIFICATION_ELE_TAG = 'descope-notification';
4
+
5
+ exports.NOTIFICATION_ELE_TAG = NOTIFICATION_ELE_TAG;
6
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sources":["../../../../src/mixins/notificationsMixin/constants.ts"],"sourcesContent":["export const NOTIFICATION_ELE_TAG = 'descope-notification';\n"],"names":[],"mappings":";;AAAO,MAAM,oBAAoB,GAAG;;;;"}
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ var constants = require('./constants.js');
4
+
5
+ const createNotificationEle = (config = {}) => {
6
+ const notification = document.createElement(constants.NOTIFICATION_ELE_TAG);
7
+ Object.keys(config).forEach((key) => {
8
+ notification.setAttribute(key, config[key]);
9
+ });
10
+ return notification;
11
+ };
12
+
13
+ exports.createNotificationEle = createNotificationEle;
14
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sources":["../../../../src/mixins/notificationsMixin/helpers.ts"],"sourcesContent":["import { NOTIFICATION_ELE_TAG } from './constants';\n\nexport const createNotificationEle = (config = {}) => {\n const notification = document.createElement(NOTIFICATION_ELE_TAG);\n Object.keys(config).forEach((key) => {\n notification.setAttribute(key, config[key]);\n });\n\n return notification;\n};\n"],"names":["NOTIFICATION_ELE_TAG"],"mappings":";;;;MAEa,qBAAqB,GAAG,CAAC,MAAM,GAAG,EAAE,KAAI;IACnD,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAACA,8BAAoB,CAAC,CAAC;IAClE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;QAClC,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9C,KAAC,CAAC,CAAC;AAEH,IAAA,OAAO,YAAY,CAAC;AACtB;;;;"}
@@ -0,0 +1,50 @@
1
+ 'use strict';
2
+
3
+ var tslib = require('tslib');
4
+ var sdkHelpers = require('@descope/sdk-helpers');
5
+ var initLifecycleMixin = require('../initLifecycleMixin.js');
6
+ var initElementMixin = require('../initElementMixin.js');
7
+ var descopeUiMixin = require('../descopeUiMixin/descopeUiMixin.js');
8
+ var helpers = require('./helpers.js');
9
+ var constants = require('./constants.js');
10
+ var sdkComponentDrivers = require('@descope/sdk-component-drivers');
11
+
12
+ const notificationsMixin = sdkHelpers.createSingletonMixin((superclass) => {
13
+ var _NotificationsMixinClass_NotificationDriverWrapper, _a;
14
+ const BaseClass = sdkHelpers.compose(initLifecycleMixin.initLifecycleMixin, initElementMixin.initElementMixin, descopeUiMixin.descopeUiMixin)(superclass);
15
+ return _a = class NotificationsMixinClass extends BaseClass {
16
+ constructor() {
17
+ super(...arguments);
18
+ _NotificationsMixinClass_NotificationDriverWrapper.set(this, (() => {
19
+ const loadDescopeUiComponents = this.loadDescopeUiComponents.bind(this);
20
+ return class NotificationDriverWrapper extends sdkComponentDrivers.NotificationDriver {
21
+ setContent(templateOrString) {
22
+ const template = typeof templateOrString === 'string'
23
+ ? sdkHelpers.createTemplate(templateOrString)
24
+ : templateOrString;
25
+ loadDescopeUiComponents(template);
26
+ super.setContent(template);
27
+ }
28
+ };
29
+ })());
30
+ }
31
+ createNotification(config) {
32
+ const baseConfig = {};
33
+ const notification = helpers.createNotificationEle(Object.assign(Object.assign({}, baseConfig), config));
34
+ this.rootElement.append(notification);
35
+ return new (tslib.__classPrivateFieldGet(this, _NotificationsMixinClass_NotificationDriverWrapper, "f"))(notification, {
36
+ logger: this.logger,
37
+ });
38
+ }
39
+ async init() {
40
+ var _b;
41
+ await ((_b = super.init) === null || _b === void 0 ? void 0 : _b.call(this));
42
+ this.loadDescopeUiComponents([constants.NOTIFICATION_ELE_TAG]);
43
+ }
44
+ },
45
+ _NotificationsMixinClass_NotificationDriverWrapper = new WeakMap(),
46
+ _a;
47
+ });
48
+
49
+ exports.notificationsMixin = notificationsMixin;
50
+ //# sourceMappingURL=notificationsMixin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notificationsMixin.js","sources":["../../../../src/mixins/notificationsMixin/notificationsMixin.ts"],"sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport {\n createSingletonMixin,\n compose,\n createTemplate,\n} from '@descope/sdk-helpers';\nimport { initLifecycleMixin } from '../initLifecycleMixin';\nimport { initElementMixin } from '../initElementMixin';\nimport { descopeUiMixin } from '../descopeUiMixin';\nimport { createNotificationEle } from './helpers';\nimport { NOTIFICATION_ELE_TAG } from './constants';\nimport { NotificationDriver } from '@descope/sdk-component-drivers';\n\nexport const notificationsMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) => {\n const BaseClass = compose(\n initLifecycleMixin,\n initElementMixin,\n descopeUiMixin,\n )(superclass);\n return class NotificationsMixinClass extends BaseClass {\n #NotificationDriverWrapper = (() => {\n const loadDescopeUiComponents = this.loadDescopeUiComponents.bind(this);\n return class NotificationDriverWrapper extends NotificationDriver {\n setContent(templateOrString: HTMLTemplateElement | string) {\n const template =\n typeof templateOrString === 'string'\n ? createTemplate(templateOrString)\n : templateOrString;\n\n loadDescopeUiComponents(template);\n super.setContent(template);\n }\n };\n })();\n\n createNotification(\n config?: {\n mode: 'success' | 'error';\n duration: number;\n 'has-close-button'?: boolean;\n position?:\n | 'top-stretch'\n | 'top-start'\n | 'top-center'\n | 'top-end'\n | 'middle'\n | 'bottom-start'\n | 'bottom-center'\n | 'bottom-end'\n | 'bottom-stretch';\n size: 'xs' | 'sm' | 'md' | 'lg';\n bordered?: boolean;\n } & {\n [key: string]: string | boolean | number;\n },\n ) {\n const baseConfig = {};\n\n const notification = createNotificationEle({\n ...baseConfig,\n ...config,\n });\n\n this.rootElement.append(notification);\n\n return new this.#NotificationDriverWrapper(notification, {\n logger: this.logger,\n });\n }\n\n async init() {\n await super.init?.();\n this.loadDescopeUiComponents([NOTIFICATION_ELE_TAG]);\n }\n };\n },\n);\n"],"names":["createSingletonMixin","compose","initLifecycleMixin","initElementMixin","descopeUiMixin","NotificationDriver","createTemplate","createNotificationEle","__classPrivateFieldGet","NOTIFICATION_ELE_TAG"],"mappings":";;;;;;;;;;;MAaa,kBAAkB,GAAGA,+BAAoB,CACpD,CAAqC,UAAa,KAAI;;AACpD,IAAA,MAAM,SAAS,GAAGC,kBAAO,CACvBC,qCAAkB,EAClBC,iCAAgB,EAChBC,6BAAc,CACf,CAAC,UAAU,CAAC,CAAC;IACd,OAAO,EAAA,GAAA,MAAM,uBAAwB,SAAQ,SAAS,CAAA;AAA/C,YAAA,WAAA,GAAA;;gBACL,kDAA6B,CAAA,GAAA,CAAA,IAAA,EAAA,CAAC,MAAK;oBACjC,MAAM,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACxE,OAAO,MAAM,yBAA0B,SAAQC,sCAAkB,CAAA;AAC/D,wBAAA,UAAU,CAAC,gBAA8C,EAAA;AACvD,4BAAA,MAAM,QAAQ,GACZ,OAAO,gBAAgB,KAAK,QAAQ;AAClC,kCAAEC,yBAAc,CAAC,gBAAgB,CAAC;kCAChC,gBAAgB,CAAC;4BAEvB,uBAAuB,CAAC,QAAQ,CAAC,CAAC;AAClC,4BAAA,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;yBAC5B;qBACF,CAAC;iBACH,GAAG,CAAC,CAAA;aAyCN;AAvCC,YAAA,kBAAkB,CAChB,MAkBC,EAAA;gBAED,MAAM,UAAU,GAAG,EAAE,CAAC;gBAEtB,MAAM,YAAY,GAAGC,6BAAqB,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACrC,UAAU,CACV,EAAA,MAAM,EACT,CAAC;AAEH,gBAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAEtC,gBAAA,OAAO,KAAIC,4BAAA,CAAA,IAAI,EAA2B,kDAAA,EAAA,GAAA,CAAA,EAAC,YAAY,EAAE;oBACvD,MAAM,EAAE,IAAI,CAAC,MAAM;AACpB,iBAAA,CAAC,CAAC;aACJ;AAED,YAAA,MAAM,IAAI,GAAA;;AACR,gBAAA,OAAM,CAAA,EAAA,GAAA,KAAK,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,IAAA,CAAI,CAAA,CAAC;AACrB,gBAAA,IAAI,CAAC,uBAAuB,CAAC,CAACC,8BAAoB,CAAC,CAAC,CAAC;aACtD;AACF,SAAA;;AAAC,QAAA,EAAA,CAAA;AACJ,CAAC;;;;"}
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ const attributesObserver = (ele, callback) => {
4
+ // sync all attrs on init
5
+ Array.from(ele.attributes).forEach((attr) => callback(attr.name));
6
+ const observer = new MutationObserver((mutationsList) => {
7
+ mutationsList.forEach((mutation) => {
8
+ if (mutation.type === 'attributes') {
9
+ callback(mutation.attributeName);
10
+ }
11
+ });
12
+ });
13
+ observer.observe(ele, { attributes: true });
14
+ };
15
+
16
+ exports.attributesObserver = attributesObserver;
17
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sources":["../../../../src/mixins/observeAttributesMixin/helpers.ts"],"sourcesContent":["export const attributesObserver = (\n ele: HTMLElement,\n callback: (attrName: string) => void,\n) => {\n // sync all attrs on init\n Array.from(ele.attributes).forEach((attr) => callback(attr.name));\n\n const observer = new MutationObserver((mutationsList) => {\n mutationsList.forEach((mutation) => {\n if (mutation.type === 'attributes') {\n callback(mutation.attributeName);\n }\n });\n });\n\n observer.observe(ele, { attributes: true });\n};\n"],"names":[],"mappings":";;MAAa,kBAAkB,GAAG,CAChC,GAAgB,EAChB,QAAoC,KAClC;;IAEF,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAElE,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,CAAC,aAAa,KAAI;AACtD,QAAA,aAAa,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;AACjC,YAAA,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE;AAClC,gBAAA,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;aAClC;AACH,SAAC,CAAC,CAAC;AACL,KAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9C;;;;"}
@@ -0,0 +1,47 @@
1
+ 'use strict';
2
+
3
+ var tslib = require('tslib');
4
+ var sdkHelpers = require('@descope/sdk-helpers');
5
+ var initLifecycleMixin = require('../initLifecycleMixin.js');
6
+ var loggerMixin = require('../loggerMixin/loggerMixin.js');
7
+ var helpers = require('./helpers.js');
8
+
9
+ const observeAttributesMixin = sdkHelpers.createSingletonMixin((superclass) => {
10
+ var _ObserveAttributesMixinClass_observeMappings, _a;
11
+ const BaseClass = sdkHelpers.compose(loggerMixin.loggerMixin, initLifecycleMixin.initLifecycleMixin)(superclass);
12
+ return _a = class ObserveAttributesMixinClass extends BaseClass {
13
+ constructor() {
14
+ super(...arguments);
15
+ _ObserveAttributesMixinClass_observeMappings.set(this, {});
16
+ }
17
+ async init() {
18
+ var _b;
19
+ await ((_b = super.init) === null || _b === void 0 ? void 0 : _b.call(this));
20
+ helpers.attributesObserver(this, (attrName) => {
21
+ var _b;
22
+ (_b = tslib.__classPrivateFieldGet(this, _ObserveAttributesMixinClass_observeMappings, "f")[attrName]) === null || _b === void 0 ? void 0 : _b.forEach((cb) => {
23
+ cb(attrName, this.getAttribute(attrName));
24
+ });
25
+ });
26
+ }
27
+ observeAttribute(attrName, onAttrChange) {
28
+ if (!tslib.__classPrivateFieldGet(this, _ObserveAttributesMixinClass_observeMappings, "f")[attrName]) {
29
+ tslib.__classPrivateFieldGet(this, _ObserveAttributesMixinClass_observeMappings, "f")[attrName] = [];
30
+ }
31
+ const idx = tslib.__classPrivateFieldGet(this, _ObserveAttributesMixinClass_observeMappings, "f")[attrName].push(onAttrChange);
32
+ return () => tslib.__classPrivateFieldGet(this, _ObserveAttributesMixinClass_observeMappings, "f")[attrName].splice(idx, 1);
33
+ }
34
+ observeAttributes(attrs, cb) {
35
+ const unobserveList = attrs.reduce((acc, attrName) => {
36
+ acc.push(this.observeAttribute(attrName, cb));
37
+ return acc;
38
+ }, []);
39
+ return () => unobserveList.forEach((unobserve) => unobserve());
40
+ }
41
+ },
42
+ _ObserveAttributesMixinClass_observeMappings = new WeakMap(),
43
+ _a;
44
+ });
45
+
46
+ exports.observeAttributesMixin = observeAttributesMixin;
47
+ //# sourceMappingURL=observeAttributesMixin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observeAttributesMixin.js","sources":["../../../../src/mixins/observeAttributesMixin/observeAttributesMixin.ts"],"sourcesContent":["import { createSingletonMixin, compose } from '@descope/sdk-helpers';\nimport { initLifecycleMixin } from '../initLifecycleMixin';\nimport { loggerMixin } from '../loggerMixin';\nimport { attributesObserver } from './helpers';\n\ntype OnAttrChange = (attrName: string, value: string | null) => void;\n\nexport const observeAttributesMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) => {\n const BaseClass = compose(loggerMixin, initLifecycleMixin)(superclass);\n return class ObserveAttributesMixinClass extends BaseClass {\n #observeMappings = {};\n\n async init() {\n await super.init?.();\n\n attributesObserver(this, (attrName: string) => {\n this.#observeMappings[attrName]?.forEach((cb: OnAttrChange) => {\n cb(attrName, this.getAttribute(attrName));\n });\n });\n }\n\n observeAttribute(attrName: string, onAttrChange: OnAttrChange) {\n if (!this.#observeMappings[attrName]) {\n this.#observeMappings[attrName] = [];\n }\n\n const idx = this.#observeMappings[attrName].push(onAttrChange);\n\n return () => this.#observeMappings[attrName].splice(idx, 1);\n }\n\n observeAttributes(attrs: string[], cb: OnAttrChange) {\n const unobserveList = attrs.reduce((acc, attrName) => {\n acc.push(this.observeAttribute(attrName, cb));\n\n return acc;\n }, []);\n\n return () => unobserveList.forEach((unobserve) => unobserve());\n }\n };\n },\n);\n"],"names":["createSingletonMixin","compose","loggerMixin","initLifecycleMixin","attributesObserver","__classPrivateFieldGet"],"mappings":";;;;;;;;MAOa,sBAAsB,GAAGA,+BAAoB,CACxD,CAAqC,UAAa,KAAI;;IACpD,MAAM,SAAS,GAAGC,kBAAO,CAACC,uBAAW,EAAEC,qCAAkB,CAAC,CAAC,UAAU,CAAC,CAAC;IACvE,OAAO,EAAA,GAAA,MAAM,2BAA4B,SAAQ,SAAS,CAAA;AAAnD,YAAA,WAAA,GAAA;;AACL,gBAAA,4CAAA,CAAA,GAAA,CAAA,IAAA,EAAmB,EAAE,CAAC,CAAA;aA+BvB;AA7BC,YAAA,MAAM,IAAI,GAAA;;AACR,gBAAA,OAAM,CAAA,EAAA,GAAA,KAAK,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,IAAA,CAAI,CAAA,CAAC;AAErB,gBAAAC,0BAAkB,CAAC,IAAI,EAAE,CAAC,QAAgB,KAAI;;AAC5C,oBAAA,CAAA,EAAA,GAAAC,4BAAA,CAAA,IAAI,EAAiB,4CAAA,EAAA,GAAA,CAAA,CAAC,QAAQ,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,CAAC,CAAC,EAAgB,KAAI;wBAC5D,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC5C,qBAAC,CAAC,CAAC;AACL,iBAAC,CAAC,CAAC;aACJ;YAED,gBAAgB,CAAC,QAAgB,EAAE,YAA0B,EAAA;gBAC3D,IAAI,CAACA,6BAAA,IAAI,EAAA,4CAAA,EAAA,GAAA,CAAiB,CAAC,QAAQ,CAAC,EAAE;AACpC,oBAAAA,4BAAA,CAAA,IAAI,EAAiB,4CAAA,EAAA,GAAA,CAAA,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;iBACtC;AAED,gBAAA,MAAM,GAAG,GAAGA,4BAAA,CAAA,IAAI,EAAiB,4CAAA,EAAA,GAAA,CAAA,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAE/D,gBAAA,OAAO,MAAMA,4BAAA,CAAA,IAAI,oDAAiB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;aAC7D;YAED,iBAAiB,CAAC,KAAe,EAAE,EAAgB,EAAA;gBACjD,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,KAAI;AACnD,oBAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAE9C,oBAAA,OAAO,GAAG,CAAC;iBACZ,EAAE,EAAE,CAAC,CAAC;AAEP,gBAAA,OAAO,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC,CAAC;aAChE;AACF,SAAA;;AAAC,QAAA,EAAA,CAAA;AACJ,CAAC;;;;"}
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ var sdkHelpers = require('@descope/sdk-helpers');
4
+ var commonValidators = require('./createValidateAttributesMixin/commonValidators.js');
5
+ var createValidateAttributesMixin = require('./createValidateAttributesMixin/createValidateAttributesMixin.js');
6
+
7
+ const projectIdMixin = sdkHelpers.createSingletonMixin((superclass) => {
8
+ const BaseClass = sdkHelpers.compose(createValidateAttributesMixin.createValidateAttributesMixin({ 'project-id': commonValidators.missingAttrValidator }))(superclass);
9
+ return class ProjectIdMixinClass extends BaseClass {
10
+ get projectId() {
11
+ return this.getAttribute('project-id');
12
+ }
13
+ };
14
+ });
15
+
16
+ exports.projectIdMixin = projectIdMixin;
17
+ //# sourceMappingURL=projectIdMixin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectIdMixin.js","sources":["../../../src/mixins/projectIdMixin.ts"],"sourcesContent":["import { createSingletonMixin, compose } from '@descope/sdk-helpers';\nimport { missingAttrValidator } from './createValidateAttributesMixin/commonValidators';\nimport { createValidateAttributesMixin } from './createValidateAttributesMixin';\n\nexport const projectIdMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) => {\n const BaseClass = compose(\n createValidateAttributesMixin({ 'project-id': missingAttrValidator }),\n )(superclass);\n\n return class ProjectIdMixinClass extends BaseClass {\n get projectId() {\n return this.getAttribute('project-id');\n }\n };\n },\n);\n"],"names":["createSingletonMixin","compose","createValidateAttributesMixin","missingAttrValidator"],"mappings":";;;;;;MAIa,cAAc,GAAGA,+BAAoB,CAChD,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,MAAM,mBAAoB,SAAQ,SAAS,CAAA;AAChD,QAAA,IAAI,SAAS,GAAA;AACX,YAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;SACxC;KACF,CAAC;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;;;;"}
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ var constants = require('../../constants.js');
4
+
5
+ const BASE_CONTENT_URL_KEY = 'base.content.url';
6
+ const BASE_CONTENT_URL = 'https://static.descope.com/pages';
7
+ const OVERRIDE_CONTENT_URL = (constants.IS_LOCAL_STORAGE && localStorage.getItem(BASE_CONTENT_URL_KEY)) || '';
8
+ const ASSETS_FOLDER = 'v2-beta';
9
+
10
+ exports.ASSETS_FOLDER = ASSETS_FOLDER;
11
+ exports.BASE_CONTENT_URL = BASE_CONTENT_URL;
12
+ exports.OVERRIDE_CONTENT_URL = OVERRIDE_CONTENT_URL;
13
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sources":["../../../../src/mixins/staticResourcesMixin/constants.ts"],"sourcesContent":["import { IS_LOCAL_STORAGE } from '../../constants';\n\nconst BASE_CONTENT_URL_KEY = 'base.content.url';\n\nexport const BASE_CONTENT_URL = 'https://static.descope.com/pages';\n\nexport const OVERRIDE_CONTENT_URL =\n (IS_LOCAL_STORAGE && localStorage.getItem(BASE_CONTENT_URL_KEY)) || '';\n\nexport const ASSETS_FOLDER = 'v2-beta';\nexport const PREV_VER_ASSETS_FOLDER = 'v2-alpha';\n"],"names":["IS_LOCAL_STORAGE"],"mappings":";;;;AAEA,MAAM,oBAAoB,GAAG,kBAAkB,CAAC;AAEzC,MAAM,gBAAgB,GAAG,mCAAmC;AAEtD,MAAA,oBAAoB,GAC/B,CAACA,0BAAgB,IAAI,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,KAAK,GAAG;AAElE,MAAM,aAAa,GAAG;;;;;;"}
@@ -0,0 +1,43 @@
1
+ 'use strict';
2
+
3
+ const notLastMsgSuffix = 'Trying the next fallback URL...';
4
+ // reties in case on network error
5
+ const fetchWithRetry = async (url, init, { logger } = {}) => {
6
+ try {
7
+ return await fetch(url, init);
8
+ }
9
+ catch (e) {
10
+ // if there is an exception, we want to retry
11
+ // so we can overcome network errors
12
+ logger === null || logger === void 0 ? void 0 : logger.debug(`Network error fetching URL ${url} [${e.message}], retrying...`);
13
+ return fetch(url, init);
14
+ }
15
+ };
16
+ const fetchWithFallbacks = async (fallbacks, init, { logger, onSuccess, } = {}) => {
17
+ const fallbacksArr = Array.isArray(fallbacks) ? fallbacks : [fallbacks];
18
+ for (let index = 0; index < fallbacksArr.length; index++) {
19
+ const url = fallbacksArr[index];
20
+ const isLast = index === fallbacksArr.length - 1;
21
+ try {
22
+ const res = await fetchWithRetry(url.toString(), init, { logger });
23
+ if (res.ok) {
24
+ onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(index);
25
+ logger === null || logger === void 0 ? void 0 : logger.debug(`Successfully fetched URL ${url}`);
26
+ return res;
27
+ }
28
+ const errMsg = `Error fetching URL ${url} [${res.status}]`;
29
+ if (isLast)
30
+ throw new Error(errMsg);
31
+ logger === null || logger === void 0 ? void 0 : logger.debug(`${errMsg}. ${notLastMsgSuffix}`);
32
+ }
33
+ catch (e) {
34
+ const errMsg = `Error fetching URL ${url} [${e.message}]`;
35
+ if (isLast)
36
+ throw new Error(errMsg);
37
+ logger === null || logger === void 0 ? void 0 : logger.debug(`${errMsg}. ${notLastMsgSuffix}`);
38
+ }
39
+ }
40
+ };
41
+
42
+ exports.fetchWithFallbacks = fetchWithFallbacks;
43
+ //# sourceMappingURL=fetchWithFallbacks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchWithFallbacks.js","sources":["../../../../src/mixins/staticResourcesMixin/fetchWithFallbacks.ts"],"sourcesContent":["import { Logger } from '../loggerMixin';\n\ntype FetchParams = Parameters<typeof fetch>;\nconst notLastMsgSuffix = 'Trying the next fallback URL...';\n\n// reties in case on network error\nconst fetchWithRetry = async (\n url: string,\n init: FetchParams['1'],\n { logger }: { logger?: Logger } = {},\n) => {\n try {\n return await fetch(url, init);\n } catch (e) {\n // if there is an exception, we want to retry\n // so we can overcome network errors\n logger?.debug(\n `Network error fetching URL ${url} [${e.message}], retrying...`,\n );\n return fetch(url, init);\n }\n};\n\nexport const fetchWithFallbacks = async (\n fallbacks: FetchParams['0'] | FetchParams['0'][],\n init: FetchParams['1'],\n {\n logger,\n onSuccess,\n }: { logger?: Logger; onSuccess?: (urlIndex: number) => void } = {},\n): ReturnType<typeof fetch> => {\n const fallbacksArr = Array.isArray(fallbacks) ? fallbacks : [fallbacks];\n\n for (let index = 0; index < fallbacksArr.length; index++) {\n const url = fallbacksArr[index];\n const isLast = index === fallbacksArr.length - 1;\n\n try {\n const res = await fetchWithRetry(url.toString(), init, { logger });\n if (res.ok) {\n onSuccess?.(index);\n logger?.debug(`Successfully fetched URL ${url}`);\n return res;\n }\n\n const errMsg = `Error fetching URL ${url} [${res.status}]`;\n\n if (isLast) throw new Error(errMsg);\n\n logger?.debug(`${errMsg}. ${notLastMsgSuffix}`);\n } catch (e) {\n const errMsg = `Error fetching URL ${url} [${e.message}]`;\n\n if (isLast) throw new Error(errMsg);\n\n logger?.debug(`${errMsg}. ${notLastMsgSuffix}`);\n }\n }\n};\n"],"names":[],"mappings":";;AAGA,MAAM,gBAAgB,GAAG,iCAAiC,CAAC;AAE3D;AACA,MAAM,cAAc,GAAG,OACrB,GAAW,EACX,IAAsB,EACtB,EAAE,MAAM,EAA0B,GAAA,EAAE,KAClC;AACF,IAAA,IAAI;AACF,QAAA,OAAO,MAAM,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;KAC/B;IAAC,OAAO,CAAC,EAAE;;;AAGV,QAAA,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,KAAK,CACX,CAA8B,2BAAA,EAAA,GAAG,KAAK,CAAC,CAAC,OAAO,CAAA,cAAA,CAAgB,CAChE,CAAC;AACF,QAAA,OAAO,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;KACzB;AACH,CAAC,CAAC;AAEW,MAAA,kBAAkB,GAAG,OAChC,SAAgD,EAChD,IAAsB,EACtB,EACE,MAAM,EACN,SAAS,GACsD,GAAA,EAAE,KACvC;AAC5B,IAAA,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,CAAC,SAAS,CAAC,CAAC;AAExE,IAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;AACxD,QAAA,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,KAAK,KAAK,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;AAEjD,QAAA,IAAI;AACF,YAAA,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AACnE,YAAA,IAAI,GAAG,CAAC,EAAE,EAAE;AACV,gBAAA,SAAS,aAAT,SAAS,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAT,SAAS,CAAG,KAAK,CAAC,CAAC;gBACnB,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,KAAK,CAAC,CAA4B,yBAAA,EAAA,GAAG,CAAE,CAAA,CAAC,CAAC;AACjD,gBAAA,OAAO,GAAG,CAAC;aACZ;YAED,MAAM,MAAM,GAAG,CAAsB,mBAAA,EAAA,GAAG,KAAK,GAAG,CAAC,MAAM,CAAA,CAAA,CAAG,CAAC;AAE3D,YAAA,IAAI,MAAM;AAAE,gBAAA,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;AAEpC,YAAA,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,KAAK,CAAC,CAAA,EAAG,MAAM,CAAA,EAAA,EAAK,gBAAgB,CAAA,CAAE,CAAC,CAAC;SACjD;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,MAAM,GAAG,CAAsB,mBAAA,EAAA,GAAG,KAAK,CAAC,CAAC,OAAO,CAAA,CAAA,CAAG,CAAC;AAE1D,YAAA,IAAI,MAAM;AAAE,gBAAA,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;AAEpC,YAAA,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,KAAK,CAAC,CAAA,EAAG,MAAM,CAAA,EAAA,EAAK,gBAAgB,CAAA,CAAE,CAAC,CAAC;SACjD;KACF;AACH;;;;"}
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var staticResourcesMixin = require('./staticResourcesMixin.js');
4
+
5
+
6
+
7
+ exports.getResourceUrl = staticResourcesMixin.getResourceUrl;
8
+ exports.staticResourcesMixin = staticResourcesMixin.staticResourcesMixin;
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -0,0 +1,101 @@
1
+ 'use strict';
2
+
3
+ var tslib = require('tslib');
4
+ var sdkHelpers = require('@descope/sdk-helpers');
5
+ var loggerMixin = require('../loggerMixin/loggerMixin.js');
6
+ var constants = require('./constants.js');
7
+ var projectIdMixin = require('../projectIdMixin.js');
8
+ var baseUrlMixin = require('../baseUrlMixin.js');
9
+ var fetchWithFallbacks = require('./fetchWithFallbacks.js');
10
+
11
+ function getResourceUrl({ projectId, filename, assetsFolder = constants.ASSETS_FOLDER, baseUrl = constants.BASE_CONTENT_URL, }) {
12
+ const url = new URL(baseUrl);
13
+ url.pathname = sdkHelpers.pathJoin(url.pathname, projectId, assetsFolder, filename);
14
+ // we want to keep the baseUrl so we can use it later
15
+ url.baseUrl = baseUrl;
16
+ return url;
17
+ }
18
+ const staticResourcesMixin = sdkHelpers.createSingletonMixin((superclass) => {
19
+ var _StaticResourcesMixinClass_instances, _StaticResourcesMixinClass_lastBaseUrl, _StaticResourcesMixinClass_workingBaseUrl, _StaticResourcesMixinClass_getResourceUrls, _a;
20
+ const BaseClass = sdkHelpers.compose(loggerMixin.loggerMixin, projectIdMixin.projectIdMixin, baseUrlMixin.baseUrlMixin)(superclass);
21
+ // the logic should be as following:
22
+ // if there is a local storage override, use it
23
+ // otherwise, if there is a base-static-url attribute, use it
24
+ // otherwise, try to use base-url, and check if it's working
25
+ // if it's working, use it
26
+ // if not, use the default content url
27
+ return _a = class StaticResourcesMixinClass extends BaseClass {
28
+ constructor() {
29
+ super(...arguments);
30
+ _StaticResourcesMixinClass_instances.add(this);
31
+ _StaticResourcesMixinClass_lastBaseUrl.set(this, void 0);
32
+ _StaticResourcesMixinClass_workingBaseUrl.set(this, void 0);
33
+ }
34
+ async fetchStaticResource(filename, format) {
35
+ const resourceUrls = tslib.__classPrivateFieldGet(this, _StaticResourcesMixinClass_instances, "m", _StaticResourcesMixinClass_getResourceUrls).call(this, filename);
36
+ // if there are multiple resource urls, it means that there are fallbacks,
37
+ // if one of the options (which is not the last) is working, we want to keep using it by updating the workingBaseUrl
38
+ const onSuccess = !Array.isArray(resourceUrls)
39
+ ? null
40
+ : (index) => {
41
+ if (index !== resourceUrls.length - 1) {
42
+ const { baseUrl } = resourceUrls[index];
43
+ tslib.__classPrivateFieldSet(this, _StaticResourcesMixinClass_workingBaseUrl, baseUrl, "f");
44
+ }
45
+ };
46
+ try {
47
+ const res = await fetchWithFallbacks.fetchWithFallbacks(resourceUrls, { cache: 'default' }, { logger: this.logger, onSuccess });
48
+ return {
49
+ body: await res[format](),
50
+ headers: Object.fromEntries(res.headers.entries()),
51
+ };
52
+ }
53
+ catch (e) {
54
+ this.logger.error(e.message);
55
+ }
56
+ }
57
+ get baseStaticUrl() {
58
+ return this.getAttribute('base-static-url');
59
+ }
60
+ },
61
+ _StaticResourcesMixinClass_lastBaseUrl = new WeakMap(),
62
+ _StaticResourcesMixinClass_workingBaseUrl = new WeakMap(),
63
+ _StaticResourcesMixinClass_instances = new WeakSet(),
64
+ _StaticResourcesMixinClass_getResourceUrls = function _StaticResourcesMixinClass_getResourceUrls(filename) {
65
+ const overrideUrl = constants.OVERRIDE_CONTENT_URL || this.baseStaticUrl;
66
+ if (overrideUrl) {
67
+ return getResourceUrl({
68
+ projectId: this.projectId,
69
+ filename,
70
+ baseUrl: overrideUrl,
71
+ });
72
+ }
73
+ const isBaseUrlUpdated = tslib.__classPrivateFieldGet(this, _StaticResourcesMixinClass_lastBaseUrl, "f") !== this.baseUrl;
74
+ const shouldFallbackFetch = isBaseUrlUpdated && !!this.baseUrl;
75
+ // if the base url has changed, reset the working base url
76
+ if (isBaseUrlUpdated) {
77
+ tslib.__classPrivateFieldSet(this, _StaticResourcesMixinClass_lastBaseUrl, this.baseUrl, "f");
78
+ tslib.__classPrivateFieldSet(this, _StaticResourcesMixinClass_workingBaseUrl, undefined, "f");
79
+ }
80
+ const resourceUrl = getResourceUrl({
81
+ projectId: this.projectId,
82
+ filename,
83
+ baseUrl: tslib.__classPrivateFieldGet(this, _StaticResourcesMixinClass_workingBaseUrl, "f"),
84
+ });
85
+ // if there is no reason to check the baseUrl, generate the resource url according to the priority
86
+ if (!shouldFallbackFetch) {
87
+ return resourceUrl;
88
+ }
89
+ const resourceUrlFromBaseUrl = getResourceUrl({
90
+ projectId: this.projectId,
91
+ filename,
92
+ baseUrl: this.baseUrl + '/pages',
93
+ });
94
+ return [resourceUrlFromBaseUrl, resourceUrl];
95
+ },
96
+ _a;
97
+ });
98
+
99
+ exports.getResourceUrl = getResourceUrl;
100
+ exports.staticResourcesMixin = staticResourcesMixin;
101
+ //# sourceMappingURL=staticResourcesMixin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"staticResourcesMixin.js","sources":["../../../../src/mixins/staticResourcesMixin/staticResourcesMixin.ts"],"sourcesContent":["import { pathJoin, compose, createSingletonMixin } from '@descope/sdk-helpers';\nimport { loggerMixin } from '../loggerMixin';\nimport {\n ASSETS_FOLDER,\n BASE_CONTENT_URL,\n OVERRIDE_CONTENT_URL,\n} from './constants';\nimport { projectIdMixin } from '../projectIdMixin';\nimport { baseUrlMixin } from '../baseUrlMixin';\nimport { fetchWithFallbacks } from './fetchWithFallbacks';\n\ntype Format = 'text' | 'json';\n\ntype CustomUrl = URL & { baseUrl: string };\n\nexport function getResourceUrl({\n projectId,\n filename,\n assetsFolder = ASSETS_FOLDER,\n baseUrl = BASE_CONTENT_URL,\n}: {\n projectId: string;\n filename: string;\n assetsFolder?: string;\n baseUrl?: string;\n}) {\n const url: CustomUrl = new URL(baseUrl) as any;\n url.pathname = pathJoin(url.pathname, projectId, assetsFolder, filename);\n // we want to keep the baseUrl so we can use it later\n url.baseUrl = baseUrl;\n\n return url;\n}\n\nexport const staticResourcesMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) => {\n const BaseClass = compose(\n loggerMixin,\n projectIdMixin,\n baseUrlMixin,\n )(superclass);\n\n // the logic should be as following:\n // if there is a local storage override, use it\n // otherwise, if there is a base-static-url attribute, use it\n // otherwise, try to use base-url, and check if it's working\n // if it's working, use it\n // if not, use the default content url\n return class StaticResourcesMixinClass extends BaseClass {\n #lastBaseUrl?: string;\n #workingBaseUrl?: string;\n\n #getResourceUrls(filename: string): CustomUrl[] | CustomUrl {\n const overrideUrl = OVERRIDE_CONTENT_URL || this.baseStaticUrl;\n\n if (overrideUrl) {\n return getResourceUrl({\n projectId: this.projectId,\n filename,\n baseUrl: overrideUrl,\n });\n }\n\n const isBaseUrlUpdated = this.#lastBaseUrl !== this.baseUrl;\n const shouldFallbackFetch = isBaseUrlUpdated && !!this.baseUrl;\n\n // if the base url has changed, reset the working base url\n if (isBaseUrlUpdated) {\n this.#lastBaseUrl = this.baseUrl;\n this.#workingBaseUrl = undefined;\n }\n\n const resourceUrl = getResourceUrl({\n projectId: this.projectId,\n filename,\n baseUrl: this.#workingBaseUrl,\n });\n\n // if there is no reason to check the baseUrl, generate the resource url according to the priority\n if (!shouldFallbackFetch) {\n return resourceUrl;\n }\n\n const resourceUrlFromBaseUrl = getResourceUrl({\n projectId: this.projectId,\n filename,\n baseUrl: this.baseUrl + '/pages',\n });\n\n return [resourceUrlFromBaseUrl, resourceUrl];\n }\n\n async fetchStaticResource<F extends Format>(\n filename: string,\n format: F,\n ): Promise<{\n body: F extends 'json' ? Record<string, any> : string;\n headers: Record<string, string>;\n }> {\n const resourceUrls = this.#getResourceUrls(filename);\n\n // if there are multiple resource urls, it means that there are fallbacks,\n // if one of the options (which is not the last) is working, we want to keep using it by updating the workingBaseUrl\n const onSuccess = !Array.isArray(resourceUrls)\n ? null\n : (index: number) => {\n if (index !== resourceUrls.length - 1) {\n const { baseUrl } = resourceUrls[index];\n this.#workingBaseUrl = baseUrl;\n }\n };\n\n try {\n const res = await fetchWithFallbacks(\n resourceUrls,\n { cache: 'default' },\n { logger: this.logger, onSuccess },\n );\n\n return {\n body: await res[format](),\n headers: Object.fromEntries(res.headers.entries()),\n };\n } catch (e) {\n this.logger.error(e.message);\n }\n }\n\n get baseStaticUrl() {\n return this.getAttribute('base-static-url');\n }\n };\n },\n);\n"],"names":["ASSETS_FOLDER","BASE_CONTENT_URL","pathJoin","createSingletonMixin","compose","loggerMixin","projectIdMixin","baseUrlMixin","__classPrivateFieldGet","__classPrivateFieldSet","fetchWithFallbacks","OVERRIDE_CONTENT_URL"],"mappings":";;;;;;;;;;AAegB,SAAA,cAAc,CAAC,EAC7B,SAAS,EACT,QAAQ,EACR,YAAY,GAAGA,uBAAa,EAC5B,OAAO,GAAGC,0BAAgB,GAM3B,EAAA;AACC,IAAA,MAAM,GAAG,GAAc,IAAI,GAAG,CAAC,OAAO,CAAQ,CAAC;AAC/C,IAAA,GAAG,CAAC,QAAQ,GAAGC,mBAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;;AAEzE,IAAA,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;AAEtB,IAAA,OAAO,GAAG,CAAC;AACb,CAAC;MAEY,oBAAoB,GAAGC,+BAAoB,CACtD,CAAqC,UAAa,KAAI;;AACpD,IAAA,MAAM,SAAS,GAAGC,kBAAO,CACvBC,uBAAW,EACXC,6BAAc,EACdC,yBAAY,CACb,CAAC,UAAU,CAAC,CAAC;;;;;;;IAQd,OAAO,EAAA,GAAA,MAAM,yBAA0B,SAAQ,SAAS,CAAA;AAAjD,YAAA,WAAA,GAAA;;;gBACL,sCAAsB,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;gBACtB,yCAAyB,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;aAiF1B;AAvCC,YAAA,MAAM,mBAAmB,CACvB,QAAgB,EAChB,MAAS,EAAA;gBAKT,MAAM,YAAY,GAAGC,4BAAA,CAAA,IAAI,EAAA,oCAAA,EAAA,GAAA,EAAA,0CAAA,CAAiB,MAArB,IAAI,EAAkB,QAAQ,CAAC,CAAC;;;gBAIrD,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;AAC5C,sBAAE,IAAI;AACN,sBAAE,CAAC,KAAa,KAAI;wBAChB,IAAI,KAAK,KAAK,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;4BACrC,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AACxC,4BAAAC,4BAAA,CAAA,IAAI,EAAA,yCAAA,EAAmB,OAAO,EAAA,GAAA,CAAA,CAAC;yBAChC;AACH,qBAAC,CAAC;AAEN,gBAAA,IAAI;oBACF,MAAM,GAAG,GAAG,MAAMC,qCAAkB,CAClC,YAAY,EACZ,EAAE,KAAK,EAAE,SAAS,EAAE,EACpB,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,CACnC,CAAC;oBAEF,OAAO;AACL,wBAAA,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE;wBACzB,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;qBACnD,CAAC;iBACH;gBAAC,OAAO,CAAC,EAAE;oBACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;iBAC9B;aACF;AAED,YAAA,IAAI,aAAa,GAAA;AACf,gBAAA,OAAO,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;aAC7C;AACF,SAAA;;;;yGA/EkB,QAAgB,EAAA;AAC/B,YAAA,MAAM,WAAW,GAAGC,8BAAoB,IAAI,IAAI,CAAC,aAAa,CAAC;YAE/D,IAAI,WAAW,EAAE;AACf,gBAAA,OAAO,cAAc,CAAC;oBACpB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,QAAQ;AACR,oBAAA,OAAO,EAAE,WAAW;AACrB,iBAAA,CAAC,CAAC;aACJ;YAED,MAAM,gBAAgB,GAAGH,4BAAA,CAAA,IAAI,8CAAa,KAAK,IAAI,CAAC,OAAO,CAAC;YAC5D,MAAM,mBAAmB,GAAG,gBAAgB,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;;YAG/D,IAAI,gBAAgB,EAAE;AACpB,gBAAAC,4BAAA,CAAA,IAAI,EAAgB,sCAAA,EAAA,IAAI,CAAC,OAAO,MAAA,CAAC;AACjC,gBAAAA,4BAAA,CAAA,IAAI,EAAA,yCAAA,EAAmB,SAAS,EAAA,GAAA,CAAA,CAAC;aAClC;YAED,MAAM,WAAW,GAAG,cAAc,CAAC;gBACjC,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,QAAQ;gBACR,OAAO,EAAED,4BAAA,CAAA,IAAI,EAAgB,yCAAA,EAAA,GAAA,CAAA;AAC9B,aAAA,CAAC,CAAC;;YAGH,IAAI,CAAC,mBAAmB,EAAE;AACxB,gBAAA,OAAO,WAAW,CAAC;aACpB;YAED,MAAM,sBAAsB,GAAG,cAAc,CAAC;gBAC5C,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,QAAQ;AACR,gBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,GAAG,QAAQ;AACjC,aAAA,CAAC,CAAC;AAEH,YAAA,OAAO,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAAC;SAC9C;AAyCD,QAAA,EAAA,CAAA;AACJ,CAAC;;;;;"}
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ // Those files are saved on a new folder to prevent breaking changes
4
+ const DEFAULT_STYLE_ID = 'theme';
5
+
6
+ exports.DEFAULT_STYLE_ID = DEFAULT_STYLE_ID;
7
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sources":["../../../../src/mixins/themeMixin/constants.ts"],"sourcesContent":["// Those files are saved on a new folder to prevent breaking changes\nexport const DEFAULT_STYLE_ID = 'theme';\nexport const CONFIG_FILENAME = 'config.json';\n"],"names":[],"mappings":";;AAAA;AACO,MAAM,gBAAgB,GAAG;;;;"}
@@ -0,0 +1,34 @@
1
+ 'use strict';
2
+
3
+ var constants = require('../descopeUiMixin/constants.js');
4
+
5
+ const loadFont = (url) => {
6
+ const font = document.createElement('link');
7
+ font.href = url;
8
+ font.rel = 'stylesheet';
9
+ document.head.appendChild(font);
10
+ };
11
+ const loadDevTheme = async () => {
12
+ const componentsUrl = localStorage.getItem(constants.UI_COMPONENTS_URL_KEY);
13
+ const descopeDevUrl = componentsUrl === null || componentsUrl === void 0 ? void 0 : componentsUrl.replace(/[^\/]+$/, 'DescopeDev.js');
14
+ // eslint-disable-next-line no-console
15
+ console.warn('Trying to load DescopeDev.js from', descopeDevUrl);
16
+ const scriptEle = document.createElement('script');
17
+ scriptEle.src = descopeDevUrl;
18
+ document.body.appendChild(scriptEle);
19
+ await new Promise((resolve, reject) => {
20
+ scriptEle.onload = resolve;
21
+ scriptEle.onerror = reject;
22
+ });
23
+ if (globalThis.DescopeDev) {
24
+ const { themeToStyle, defaultTheme, darkTheme } = globalThis.DescopeDev;
25
+ return {
26
+ light: themeToStyle(defaultTheme),
27
+ dark: themeToStyle(darkTheme),
28
+ };
29
+ }
30
+ };
31
+
32
+ exports.loadDevTheme = loadDevTheme;
33
+ exports.loadFont = loadFont;
34
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sources":["../../../../src/mixins/themeMixin/helpers.ts"],"sourcesContent":["import { UI_COMPONENTS_URL_KEY } from '../descopeUiMixin/constants';\n\nexport const loadFont = (url: string) => {\n const font = document.createElement('link');\n font.href = url;\n font.rel = 'stylesheet';\n document.head.appendChild(font);\n};\n\nexport const loadDevTheme = async () => {\n const componentsUrl = localStorage.getItem(UI_COMPONENTS_URL_KEY);\n const descopeDevUrl = componentsUrl?.replace(/[^\\/]+$/, 'DescopeDev.js');\n\n // eslint-disable-next-line no-console\n console.warn('Trying to load DescopeDev.js from', descopeDevUrl);\n const scriptEle = document.createElement('script');\n scriptEle.src = descopeDevUrl;\n document.body.appendChild(scriptEle);\n\n await new Promise((resolve, reject) => {\n scriptEle.onload = resolve;\n scriptEle.onerror = reject;\n });\n\n if (globalThis.DescopeDev) {\n const { themeToStyle, defaultTheme, darkTheme } = globalThis.DescopeDev;\n\n return {\n light: themeToStyle(defaultTheme),\n dark: themeToStyle(darkTheme),\n };\n }\n};\n"],"names":["UI_COMPONENTS_URL_KEY"],"mappings":";;;;AAEa,MAAA,QAAQ,GAAG,CAAC,GAAW,KAAI;IACtC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC5C,IAAA,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;AAChB,IAAA,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC;AACxB,IAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAClC,EAAE;AAEW,MAAA,YAAY,GAAG,YAAW;IACrC,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAACA,+BAAqB,CAAC,CAAC;AAClE,IAAA,MAAM,aAAa,GAAG,aAAa,KAAA,IAAA,IAAb,aAAa,KAAb,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,aAAa,CAAE,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;;AAGzE,IAAA,OAAO,CAAC,IAAI,CAAC,mCAAmC,EAAE,aAAa,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACnD,IAAA,SAAS,CAAC,GAAG,GAAG,aAAa,CAAC;AAC9B,IAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAErC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACpC,QAAA,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC;AAC3B,QAAA,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC;AAC7B,KAAC,CAAC,CAAC;AAEH,IAAA,IAAI,UAAU,CAAC,UAAU,EAAE;QACzB,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,UAAU,CAAC;QAExE,OAAO;AACL,YAAA,KAAK,EAAE,YAAY,CAAC,YAAY,CAAC;AACjC,YAAA,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC;SAC9B,CAAC;KACH;AACH;;;;;"}