@tern-secure/shared 1.2.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/dist/browser.d.mts +28 -0
  2. package/dist/browser.d.ts +28 -0
  3. package/dist/browser.js +95 -0
  4. package/dist/browser.js.map +1 -0
  5. package/dist/browser.mjs +66 -0
  6. package/dist/browser.mjs.map +1 -0
  7. package/dist/chunk-2UQ43P4P.mjs +45 -0
  8. package/dist/chunk-2UQ43P4P.mjs.map +1 -0
  9. package/dist/{chunk-HATJQ74R.mjs → chunk-33U3M4YY.mjs} +2 -2
  10. package/dist/chunk-33U3M4YY.mjs.map +1 -0
  11. package/dist/chunk-CGGW4CI3.mjs +265 -0
  12. package/dist/chunk-CGGW4CI3.mjs.map +1 -0
  13. package/dist/{chunk-XCVOYULH.mjs → chunk-PHCVLVZY.mjs} +2 -2
  14. package/dist/{chunk-XCVOYULH.mjs.map → chunk-PHCVLVZY.mjs.map} +1 -1
  15. package/dist/cookie.d.mts +4 -1
  16. package/dist/cookie.d.ts +4 -1
  17. package/dist/cookie.js +35 -2
  18. package/dist/cookie.js.map +1 -1
  19. package/dist/cookie.mjs +33 -1
  20. package/dist/cookie.mjs.map +1 -1
  21. package/dist/derivedAuthState.d.mts +13 -7
  22. package/dist/derivedAuthState.d.ts +13 -7
  23. package/dist/derivedAuthState.js +22 -34
  24. package/dist/derivedAuthState.js.map +1 -1
  25. package/dist/derivedAuthState.mjs +22 -33
  26. package/dist/derivedAuthState.mjs.map +1 -1
  27. package/dist/errors-api.d.mts +49 -0
  28. package/dist/errors-api.d.ts +49 -0
  29. package/dist/errors-api.js +124 -0
  30. package/dist/errors-api.js.map +1 -0
  31. package/dist/errors-api.mjs +91 -0
  32. package/dist/errors-api.mjs.map +1 -0
  33. package/dist/errors.d.mts +17 -0
  34. package/dist/errors.d.ts +17 -0
  35. package/dist/errors.js +139 -0
  36. package/dist/errors.js.map +1 -0
  37. package/dist/errors.mjs +111 -0
  38. package/dist/errors.mjs.map +1 -0
  39. package/dist/eventBus.d.mts +28 -7
  40. package/dist/eventBus.d.ts +28 -7
  41. package/dist/eventBus.js +36 -21
  42. package/dist/eventBus.js.map +1 -1
  43. package/dist/eventBus.mjs +4 -26
  44. package/dist/eventBus.mjs.map +1 -1
  45. package/dist/{types/eventBus.d.ts → eventEmitter.d.mts} +4 -2
  46. package/dist/eventEmitter.d.ts +9 -0
  47. package/dist/eventEmitter.js +57 -0
  48. package/dist/eventEmitter.js.map +1 -0
  49. package/dist/eventEmitter.mjs +32 -0
  50. package/dist/eventEmitter.mjs.map +1 -0
  51. package/dist/loadScript.js +1 -1
  52. package/dist/loadScript.js.map +1 -1
  53. package/dist/loadScript.mjs +1 -1
  54. package/dist/loadTernUIScript.js +5 -3
  55. package/dist/loadTernUIScript.js.map +1 -1
  56. package/dist/loadTernUIScript.mjs +7 -5
  57. package/dist/loadTernUIScript.mjs.map +1 -1
  58. package/dist/pathMatcher.d.mts +14 -0
  59. package/dist/pathMatcher.d.ts +14 -0
  60. package/dist/pathMatcher.js +263 -0
  61. package/dist/pathMatcher.js.map +1 -0
  62. package/dist/pathMatcher.mjs +17 -0
  63. package/dist/pathMatcher.mjs.map +1 -0
  64. package/dist/pathToRegexp.d.mts +81 -0
  65. package/dist/pathToRegexp.d.ts +81 -0
  66. package/dist/pathToRegexp.js +292 -0
  67. package/dist/pathToRegexp.js.map +1 -0
  68. package/dist/pathToRegexp.mjs +9 -0
  69. package/dist/pathToRegexp.mjs.map +1 -0
  70. package/dist/react/index.d.mts +8 -2
  71. package/dist/react/index.d.ts +8 -2
  72. package/dist/react/index.js +28 -2
  73. package/dist/react/index.js.map +1 -1
  74. package/dist/react/index.mjs +25 -2
  75. package/dist/react/index.mjs.map +1 -1
  76. package/dist/resolveVersion.js +1 -1
  77. package/dist/resolveVersion.js.map +1 -1
  78. package/dist/resolveVersion.mjs +1 -1
  79. package/dist/serviceWorker.js +1 -1
  80. package/dist/serviceWorker.js.map +1 -1
  81. package/dist/serviceWorker.mjs +1 -1
  82. package/dist/serviceWorker.mjs.map +1 -1
  83. package/dist/ternStatusEvent.d.mts +15 -0
  84. package/dist/ternStatusEvent.d.ts +15 -0
  85. package/dist/ternStatusEvent.js +81 -0
  86. package/dist/ternStatusEvent.js.map +1 -0
  87. package/dist/ternStatusEvent.mjs +16 -0
  88. package/dist/ternStatusEvent.mjs.map +1 -0
  89. package/dist/url.d.mts +3 -0
  90. package/dist/url.d.ts +3 -0
  91. package/dist/url.js +33 -0
  92. package/dist/url.js.map +1 -0
  93. package/dist/url.mjs +8 -0
  94. package/dist/url.mjs.map +1 -0
  95. package/dist/utils/index.d.mts +5 -0
  96. package/dist/utils/index.d.ts +5 -0
  97. package/dist/utils/index.js +44 -0
  98. package/dist/utils/index.js.map +1 -0
  99. package/dist/utils/index.mjs +17 -0
  100. package/dist/utils/index.mjs.map +1 -0
  101. package/package.json +22 -6
  102. package/dist/chunk-HATJQ74R.mjs.map +0 -1
  103. package/dist/types/cookie.d.ts +0 -12
  104. package/dist/types/cookie.d.ts.map +0 -1
  105. package/dist/types/derivedAuthState.d.ts +0 -7
  106. package/dist/types/derivedAuthState.d.ts.map +0 -1
  107. package/dist/types/eventBus.d.ts.map +0 -1
  108. package/dist/types/loadScript.d.ts +0 -10
  109. package/dist/types/loadScript.d.ts.map +0 -1
  110. package/dist/types/loadTernUIScript.d.ts +0 -20
  111. package/dist/types/loadTernUIScript.d.ts.map +0 -1
  112. package/dist/types/nextjs/client/auth-actions.d.ts +0 -1
  113. package/dist/types/nextjs/client/auth-actions.d.ts.map +0 -1
  114. package/dist/types/react/hooks/index.d.ts +0 -2
  115. package/dist/types/react/hooks/index.d.ts.map +0 -1
  116. package/dist/types/react/hooks/useTernSecure.d.ts +0 -3
  117. package/dist/types/react/hooks/useTernSecure.d.ts.map +0 -1
  118. package/dist/types/react/index.d.ts +0 -4
  119. package/dist/types/react/index.d.ts.map +0 -1
  120. package/dist/types/react/ternsecureCtx.d.ts +0 -26
  121. package/dist/types/react/ternsecureCtx.d.ts.map +0 -1
  122. package/dist/types/react/ternsecureProvider.d.ts +0 -20
  123. package/dist/types/react/ternsecureProvider.d.ts.map +0 -1
  124. package/dist/types/resolveVersion.d.ts +0 -2
  125. package/dist/types/resolveVersion.d.ts.map +0 -1
  126. package/dist/types/retry.d.ts +0 -46
  127. package/dist/types/retry.d.ts.map +0 -1
  128. package/dist/types/serviceWorker.d.ts +0 -12
  129. package/dist/types/serviceWorker.d.ts.map +0 -1
@@ -1,7 +1,9 @@
1
- export declare class EventEmitter {
1
+ declare class EventEmitter {
2
2
  private listeners;
3
3
  on(eventName: string, listener: (...args: any[]) => void): () => void;
4
4
  emit(eventName: string, ...args: any[]): void;
5
5
  off(eventName: string, listener: (...args: any[]) => void): void;
6
+ getListeners(eventName: string): Array<(...args: any[]) => void>;
6
7
  }
7
- //# sourceMappingURL=eventBus.d.ts.map
8
+
9
+ export { EventEmitter };
@@ -0,0 +1,9 @@
1
+ declare class EventEmitter {
2
+ private listeners;
3
+ on(eventName: string, listener: (...args: any[]) => void): () => void;
4
+ emit(eventName: string, ...args: any[]): void;
5
+ off(eventName: string, listener: (...args: any[]) => void): void;
6
+ getListeners(eventName: string): Array<(...args: any[]) => void>;
7
+ }
8
+
9
+ export { EventEmitter };
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/eventEmitter.ts
21
+ var eventEmitter_exports = {};
22
+ __export(eventEmitter_exports, {
23
+ EventEmitter: () => EventEmitter
24
+ });
25
+ module.exports = __toCommonJS(eventEmitter_exports);
26
+ var EventEmitter = class {
27
+ constructor() {
28
+ this.listeners = {};
29
+ }
30
+ on(eventName, listener) {
31
+ if (!this.listeners[eventName]) {
32
+ this.listeners[eventName] = [];
33
+ }
34
+ this.listeners[eventName].push(listener);
35
+ return () => {
36
+ this.listeners[eventName] = this.listeners[eventName].filter((l) => l !== listener);
37
+ };
38
+ }
39
+ emit(eventName, ...args) {
40
+ if (this.listeners[eventName]) {
41
+ this.listeners[eventName].forEach((listener) => listener(...args));
42
+ }
43
+ }
44
+ off(eventName, listener) {
45
+ if (this.listeners[eventName]) {
46
+ this.listeners[eventName] = this.listeners[eventName].filter((l) => l !== listener);
47
+ }
48
+ }
49
+ getListeners(eventName) {
50
+ return this.listeners[eventName] ? [...this.listeners[eventName]] : [];
51
+ }
52
+ };
53
+ // Annotate the CommonJS export names for ESM import in node:
54
+ 0 && (module.exports = {
55
+ EventEmitter
56
+ });
57
+ //# sourceMappingURL=eventEmitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/eventEmitter.ts"],"sourcesContent":["export class EventEmitter {\n private listeners: { [eventName: string]: Array<(...args: any[]) => void> } = {};\n\n on(eventName: string, listener: (...args: any[]) => void): () => void {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push(listener);\n return () => {\n this.listeners[eventName] = this.listeners[eventName].filter(l => l !== listener);\n };\n }\n\n emit(eventName: string, ...args: any[]): void {\n if (this.listeners[eventName]) {\n this.listeners[eventName].forEach(listener => listener(...args));\n }\n }\n\n off(eventName: string, listener: (...args: any[]) => void): void {\n if (this.listeners[eventName]) {\n this.listeners[eventName] = this.listeners[eventName].filter(l => l !== listener);\n }\n }\n\n getListeners(eventName: string): Array<(...args: any[]) => void> {\n return this.listeners[eventName] ? [...this.listeners[eventName]] : [];\n }\n}"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,IAAM,eAAN,MAAmB;AAAA,EAAnB;AACH,SAAQ,YAAsE,CAAC;AAAA;AAAA,EAE/E,GAAG,WAAmB,UAAgD;AAClE,QAAI,CAAC,KAAK,UAAU,SAAS,GAAG;AAC5B,WAAK,UAAU,SAAS,IAAI,CAAC;AAAA,IACjC;AACA,SAAK,UAAU,SAAS,EAAE,KAAK,QAAQ;AACvC,WAAO,MAAM;AACT,WAAK,UAAU,SAAS,IAAI,KAAK,UAAU,SAAS,EAAE,OAAO,OAAK,MAAM,QAAQ;AAAA,IACpF;AAAA,EACJ;AAAA,EAEA,KAAK,cAAsB,MAAmB;AAC1C,QAAI,KAAK,UAAU,SAAS,GAAG;AAC3B,WAAK,UAAU,SAAS,EAAE,QAAQ,cAAY,SAAS,GAAG,IAAI,CAAC;AAAA,IACnE;AAAA,EACJ;AAAA,EAEA,IAAI,WAAmB,UAA0C;AAC7D,QAAI,KAAK,UAAU,SAAS,GAAG;AAC3B,WAAK,UAAU,SAAS,IAAI,KAAK,UAAU,SAAS,EAAE,OAAO,OAAK,MAAM,QAAQ;AAAA,IACpF;AAAA,EACJ;AAAA,EAEA,aAAa,WAAoD;AAC7D,WAAO,KAAK,UAAU,SAAS,IAAI,CAAC,GAAG,KAAK,UAAU,SAAS,CAAC,IAAI,CAAC;AAAA,EACzE;AACJ;","names":[]}
@@ -0,0 +1,32 @@
1
+ // src/eventEmitter.ts
2
+ var EventEmitter = class {
3
+ constructor() {
4
+ this.listeners = {};
5
+ }
6
+ on(eventName, listener) {
7
+ if (!this.listeners[eventName]) {
8
+ this.listeners[eventName] = [];
9
+ }
10
+ this.listeners[eventName].push(listener);
11
+ return () => {
12
+ this.listeners[eventName] = this.listeners[eventName].filter((l) => l !== listener);
13
+ };
14
+ }
15
+ emit(eventName, ...args) {
16
+ if (this.listeners[eventName]) {
17
+ this.listeners[eventName].forEach((listener) => listener(...args));
18
+ }
19
+ }
20
+ off(eventName, listener) {
21
+ if (this.listeners[eventName]) {
22
+ this.listeners[eventName] = this.listeners[eventName].filter((l) => l !== listener);
23
+ }
24
+ }
25
+ getListeners(eventName) {
26
+ return this.listeners[eventName] ? [...this.listeners[eventName]] : [];
27
+ }
28
+ };
29
+ export {
30
+ EventEmitter
31
+ };
32
+ //# sourceMappingURL=eventEmitter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/eventEmitter.ts"],"sourcesContent":["export class EventEmitter {\n private listeners: { [eventName: string]: Array<(...args: any[]) => void> } = {};\n\n on(eventName: string, listener: (...args: any[]) => void): () => void {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push(listener);\n return () => {\n this.listeners[eventName] = this.listeners[eventName].filter(l => l !== listener);\n };\n }\n\n emit(eventName: string, ...args: any[]): void {\n if (this.listeners[eventName]) {\n this.listeners[eventName].forEach(listener => listener(...args));\n }\n }\n\n off(eventName: string, listener: (...args: any[]) => void): void {\n if (this.listeners[eventName]) {\n this.listeners[eventName] = this.listeners[eventName].filter(l => l !== listener);\n }\n }\n\n getListeners(eventName: string): Array<(...args: any[]) => void> {\n return this.listeners[eventName] ? [...this.listeners[eventName]] : [];\n }\n}"],"mappings":";AAAO,IAAM,eAAN,MAAmB;AAAA,EAAnB;AACH,SAAQ,YAAsE,CAAC;AAAA;AAAA,EAE/E,GAAG,WAAmB,UAAgD;AAClE,QAAI,CAAC,KAAK,UAAU,SAAS,GAAG;AAC5B,WAAK,UAAU,SAAS,IAAI,CAAC;AAAA,IACjC;AACA,SAAK,UAAU,SAAS,EAAE,KAAK,QAAQ;AACvC,WAAO,MAAM;AACT,WAAK,UAAU,SAAS,IAAI,KAAK,UAAU,SAAS,EAAE,OAAO,OAAK,MAAM,QAAQ;AAAA,IACpF;AAAA,EACJ;AAAA,EAEA,KAAK,cAAsB,MAAmB;AAC1C,QAAI,KAAK,UAAU,SAAS,GAAG;AAC3B,WAAK,UAAU,SAAS,EAAE,QAAQ,cAAY,SAAS,GAAG,IAAI,CAAC;AAAA,IACnE;AAAA,EACJ;AAAA,EAEA,IAAI,WAAmB,UAA0C;AAC7D,QAAI,KAAK,UAAU,SAAS,GAAG;AAC3B,WAAK,UAAU,SAAS,IAAI,KAAK,UAAU,SAAS,EAAE,OAAO,OAAK,MAAM,QAAQ;AAAA,IACpF;AAAA,EACJ;AAAA,EAEA,aAAa,WAAoD;AAC7D,WAAO,KAAK,UAAU,SAAS,IAAI,CAAC,GAAG,KAAK,UAAU,SAAS,CAAC,IAAI,CAAC;AAAA,EACzE;AACJ;","names":[]}
@@ -60,7 +60,7 @@ async function loadScript(src = "", options) {
60
60
  cleanup();
61
61
  script.remove();
62
62
  console.error(`[loadScript] Failed to load script: ${src}`, error);
63
- reject(new Error(`Failed to load script: ${src}, Error: ${error.message || error}`));
63
+ reject(new Error(`Failed to load script: ${src}, Error: ${error.message}`));
64
64
  };
65
65
  script.addEventListener("load", handleLoad);
66
66
  script.addEventListener("error", handleError);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/loadScript.ts"],"sourcesContent":[" import { retry } from './retry'\n\n type LoadScriptOptions = {\n async?: boolean;\n defer?: boolean;\n crossOrigin?: 'anonymous' | 'use-credentials';\n nonce?: string;\n beforeLoad?: (script: HTMLScriptElement) => void;\n };\n\n export async function loadScript(src ='', options: LoadScriptOptions): Promise<HTMLScriptElement> {\n const { async, defer, crossOrigin, nonce, beforeLoad } = options;\n\n const load = () => {\n return new Promise<HTMLScriptElement>((resolve, reject) => {\n if (!src) {\n reject(new Error('Script src is required'));\n }\n\n if (!document || !document.body) {\n reject(new Error('Document body is not available'));\n }\n\n const script = document.createElement('script');\n\n if (crossOrigin) script.setAttribute('crossorigin', crossOrigin);\n script.async = async || false;\n script.defer = defer || false;\n\n let resolved = false;\n let timeoutId: NodeJS.Timeout | null = null;\n\n const cleanup = () => {\n script.removeEventListener('load', handleLoad);\n script.removeEventListener('error', handleError);\n if (timeoutId) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n };\n \n const handleLoad = () => {\n if (resolved) return;\n console.log(`[loadScript] Script loaded successfully: ${src}`);\n\n resolved = true;\n cleanup();\n resolve(script);\n };\n \n const handleError = (error: ErrorEvent) => {\n if (resolved) return;\n resolved = true;\n cleanup();\n script.remove();\n console.error(`[loadScript] Failed to load script: ${src}`, error);\n reject(new Error(`Failed to load script: ${src}, Error: ${error.message || error}`));\n };\n \n script.addEventListener('load', handleLoad);\n script.addEventListener('error', handleError);\n\n script.src = src;\n script.nonce = nonce;\n beforeLoad?.(script);\n\n console.log(`[loadScript] Appending script to document body: ${src}`);\n document.body.appendChild(script)\n });\n };\n\n return load()\n\n //return retry(load, { shouldRetry: (_, iterations) => iterations <=5 });\n }"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAUE,eAAsB,WAAW,MAAK,IAAI,SAAwD;AAChG,QAAM,EAAE,OAAO,OAAO,aAAa,OAAO,WAAW,IAAI;AAEzD,QAAM,OAAO,MAAM;AACjB,WAAO,IAAI,QAA2B,CAAC,SAAS,WAAW;AACzD,UAAI,CAAC,KAAK;AACR,eAAO,IAAI,MAAM,wBAAwB,CAAC;AAAA,MAC5C;AAEA,UAAI,CAAC,YAAY,CAAC,SAAS,MAAM;AAC/B,eAAO,IAAI,MAAM,gCAAgC,CAAC;AAAA,MACpD;AAEA,YAAM,SAAS,SAAS,cAAc,QAAQ;AAE9C,UAAI,YAAa,QAAO,aAAa,eAAe,WAAW;AAC/D,aAAO,QAAQ,SAAS;AACxB,aAAO,QAAQ,SAAS;AAExB,UAAI,WAAW;AACf,UAAI,YAAmC;AAEvC,YAAM,UAAU,MAAM;AACpB,eAAO,oBAAoB,QAAQ,UAAU;AAC7C,eAAO,oBAAoB,SAAS,WAAW;AAC/C,YAAI,WAAW;AACb,uBAAa,SAAS;AACtB,sBAAY;AAAA,QACd;AAAA,MACF;AAEA,YAAM,aAAa,MAAM;AACvB,YAAI,SAAU;AACd,gBAAQ,IAAI,4CAA4C,GAAG,EAAE;AAE7D,mBAAW;AACX,gBAAQ;AACR,gBAAQ,MAAM;AAAA,MAChB;AAEA,YAAM,cAAc,CAAC,UAAsB;AACzC,YAAI,SAAU;AACd,mBAAW;AACX,gBAAQ;AACR,eAAO,OAAO;AACd,gBAAQ,MAAM,uCAAuC,GAAG,IAAI,KAAK;AACjE,eAAO,IAAI,MAAM,0BAA0B,GAAG,YAAY,MAAM,WAAW,KAAK,EAAE,CAAC;AAAA,MACrF;AAEA,aAAO,iBAAiB,QAAQ,UAAU;AAC1C,aAAO,iBAAiB,SAAS,WAAW;AAE5C,aAAO,MAAM;AACb,aAAO,QAAQ;AACf,+CAAa;AAEb,cAAQ,IAAI,mDAAmD,GAAG,EAAE;AACpE,eAAS,KAAK,YAAY,MAAM;AAAA,IAClC,CAAC;AAAA,EACH;AAEA,SAAO,KAAK;AAGd;","names":[]}
1
+ {"version":3,"sources":["../src/loadScript.ts"],"sourcesContent":["type LoadScriptOptions = {\n async?: boolean;\n defer?: boolean;\n crossOrigin?: 'anonymous' | 'use-credentials';\n nonce?: string;\n beforeLoad?: (script: HTMLScriptElement) => void;\n };\n\n export async function loadScript(src ='', options: LoadScriptOptions): Promise<HTMLScriptElement> {\n const { async, defer, crossOrigin, nonce, beforeLoad } = options;\n\n const load = () => {\n return new Promise<HTMLScriptElement>((resolve, reject) => {\n if (!src) {\n reject(new Error('Script src is required'));\n }\n\n if (!document || !document.body) {\n reject(new Error('Document body is not available'));\n }\n\n const script = document.createElement('script');\n\n if (crossOrigin) script.setAttribute('crossorigin', crossOrigin);\n script.async = async || false;\n script.defer = defer || false;\n\n let resolved = false;\n let timeoutId: NodeJS.Timeout | null = null;\n\n const cleanup = () => {\n script.removeEventListener('load', handleLoad);\n script.removeEventListener('error', handleError);\n if (timeoutId) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n };\n \n const handleLoad = () => {\n if (resolved) return;\n console.log(`[loadScript] Script loaded successfully: ${src}`);\n\n resolved = true;\n cleanup();\n resolve(script);\n };\n \n const handleError = (error: ErrorEvent) => {\n if (resolved) return;\n resolved = true;\n cleanup();\n script.remove();\n console.error(`[loadScript] Failed to load script: ${src}`, error);\n reject(new Error(`Failed to load script: ${src}, Error: ${error.message}`));\n };\n \n script.addEventListener('load', handleLoad);\n script.addEventListener('error', handleError);\n\n script.src = src;\n script.nonce = nonce;\n beforeLoad?.(script);\n\n console.log(`[loadScript] Appending script to document body: ${src}`);\n document.body.appendChild(script)\n });\n };\n\n return load()\n\n //return retry(load, { shouldRetry: (_, iterations) => iterations <=5 });\n }"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQE,eAAsB,WAAW,MAAK,IAAI,SAAwD;AAChG,QAAM,EAAE,OAAO,OAAO,aAAa,OAAO,WAAW,IAAI;AAEzD,QAAM,OAAO,MAAM;AACjB,WAAO,IAAI,QAA2B,CAAC,SAAS,WAAW;AACzD,UAAI,CAAC,KAAK;AACR,eAAO,IAAI,MAAM,wBAAwB,CAAC;AAAA,MAC5C;AAEA,UAAI,CAAC,YAAY,CAAC,SAAS,MAAM;AAC/B,eAAO,IAAI,MAAM,gCAAgC,CAAC;AAAA,MACpD;AAEA,YAAM,SAAS,SAAS,cAAc,QAAQ;AAE9C,UAAI,YAAa,QAAO,aAAa,eAAe,WAAW;AAC/D,aAAO,QAAQ,SAAS;AACxB,aAAO,QAAQ,SAAS;AAExB,UAAI,WAAW;AACf,UAAI,YAAmC;AAEvC,YAAM,UAAU,MAAM;AACpB,eAAO,oBAAoB,QAAQ,UAAU;AAC7C,eAAO,oBAAoB,SAAS,WAAW;AAC/C,YAAI,WAAW;AACb,uBAAa,SAAS;AACtB,sBAAY;AAAA,QACd;AAAA,MACF;AAEA,YAAM,aAAa,MAAM;AACvB,YAAI,SAAU;AACd,gBAAQ,IAAI,4CAA4C,GAAG,EAAE;AAE7D,mBAAW;AACX,gBAAQ;AACR,gBAAQ,MAAM;AAAA,MAChB;AAEA,YAAM,cAAc,CAAC,UAAsB;AACzC,YAAI,SAAU;AACd,mBAAW;AACX,gBAAQ;AACR,eAAO,OAAO;AACd,gBAAQ,MAAM,uCAAuC,GAAG,IAAI,KAAK;AACjE,eAAO,IAAI,MAAM,0BAA0B,GAAG,YAAY,MAAM,OAAO,EAAE,CAAC;AAAA,MAC5E;AAEA,aAAO,iBAAiB,QAAQ,UAAU;AAC1C,aAAO,iBAAiB,SAAS,WAAW;AAE5C,aAAO,MAAM;AACb,aAAO,QAAQ;AACf,+CAAa;AAEb,cAAQ,IAAI,mDAAmD,GAAG,EAAE;AACpE,eAAS,KAAK,YAAY,MAAM;AAAA,IAClC,CAAC;AAAA,EACH;AAEA,SAAO,KAAK;AAGd;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  loadScript
3
- } from "./chunk-HATJQ74R.mjs";
3
+ } from "./chunk-33U3M4YY.mjs";
4
4
  export {
5
5
  loadScript
6
6
  };
@@ -64,7 +64,7 @@ async function loadScript(src = "", options) {
64
64
  cleanup();
65
65
  script.remove();
66
66
  console.error(`[loadScript] Failed to load script: ${src}`, error);
67
- reject(new Error(`Failed to load script: ${src}, Error: ${error.message || error}`));
67
+ reject(new Error(`Failed to load script: ${src}, Error: ${error.message}`));
68
68
  };
69
69
  script.addEventListener("load", handleLoad);
70
70
  script.addEventListener("error", handleError);
@@ -79,7 +79,7 @@ async function loadScript(src = "", options) {
79
79
  }
80
80
 
81
81
  // src/resolveVersion.ts
82
- var resolveVersion = (ternUIVersion, packageVersion = "1.1.2") => {
82
+ var resolveVersion = (ternUIVersion, packageVersion = TERN_UI_VERSION) => {
83
83
  if (ternUIVersion) {
84
84
  return ternUIVersion;
85
85
  }
@@ -101,7 +101,9 @@ var loadTernUIScript = async (options) => {
101
101
  });
102
102
  }
103
103
  if (!(options == null ? void 0 : options.customDomain)) {
104
- throw new Error("TernUI script requires a custom domain or proxy URL to be specified in options.");
104
+ throw new Error(
105
+ "TernUI script requires a custom domain or proxy URL to be specified in options."
106
+ );
105
107
  }
106
108
  return loadScript(ternUIgetScriptUrl(options), {
107
109
  async: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/loadTernUIScript.ts","../src/loadScript.ts","../src/resolveVersion.ts"],"sourcesContent":["import type { TernSecureInstanceTreeOptions, TernSecureSDK } from \"@tern-secure/types\";\nimport { loadScript } from \"./loadScript\";\nimport { resolveVersion } from \"./resolveVersion\";\n\n\nexport type LoadTernUISCriptOptions = TernSecureInstanceTreeOptions & {\n apiKey?: string;\n customDomain?: string;\n proxyUrl?: string;\n ternUIVersion?: string;\n sdkMetadata?: TernSecureSDK;\n scriptHost?: string;\n localPort?: string;\n nonce?: string;\n}\n\n\nexport const loadTernUIScript = async (options?: LoadTernUISCriptOptions) => {\n const existingScript = document.querySelector<HTMLScriptElement>('script[data-ternui-script]');\n console.log('[TernSecure-shared] Existing script:', existingScript);\n\n if (existingScript) {\n return new Promise((resolve, reject) => {\n existingScript.addEventListener('load', () => {\n resolve(existingScript);\n });\n\n existingScript.addEventListener('error', (error) => {\n reject(error);\n });\n });\n }\n\n if (!options?.customDomain) {\n throw new Error('TernUI script requires a custom domain or proxy URL to be specified in options.');\n }\n \n return loadScript(ternUIgetScriptUrl(options), {\n async: true,\n //crossOrigin: undefined,\n beforeLoad: beforeLoadWithOptions(options)\n }).catch((error) => {\n console.error('[TernSecure] Failed to load TernUI script:', error);\n throw new Error('Failed to load TernUI script');\n });\n }\n\nexport const ternUIgetScriptUrl = (options: LoadTernUISCriptOptions) => {\n const { ternUIVersion, isTernSecureDev } = options\n const version = resolveVersion(ternUIVersion)\n \n if ( isTernSecureDev) {\n const localHost = process.env.TERN_UI_HOST || 'localhost';\n const localPort = options?.localPort || process.env.TERN_UI_PORT || '4000';\n return `http://${localHost}:${localPort}/ternsecure.browser.js`;\n //return `http://cdn.lifesprintcare.ca/dist/ternsecure.browser.js`\n }\n //return `https://cdn.lifesprintcare.ca/dist/ternsecure.browser.js`\n return `https://cdn.jsdelivr.net/npm/@tern-secure/ui@${version}/dist/ternsecure.browser.js`\n\n //const ternsecureCDN = options?.customDomain || \n //(options?.proxyUrl && new URL(options.proxyUrl).host) || 'cdn.tern-secure.com';\n //return `${ternsecureCDN}/ternsecure.browser.js`;\n //return `https://${ternsecureCDN}/npm/@ternsecure/tern-ui@${version}/dist/ternsecure.browser.js`;\n\n}\n\n \nconst beforeLoadWithOptions = (options?: LoadTernUISCriptOptions) => (script: HTMLScriptElement) => {\n const attributes = constructScriptAttributes(options);\n Object.entries(attributes).forEach(([key, value]) => {\n if (value) script.setAttribute(key, String(value));\n });\n console.log('[TernSecure-shared] Script attributes set:', attributes);\n};\n\nexport const constructScriptAttributes = (options?: LoadTernUISCriptOptions) => {\n return {\n 'data-domain': options?.customDomain || '',\n 'data-apikey': options?.apiKey || '',\n 'data-proxyUrl': options?.proxyUrl || '',\n ...(options?.nonce ? { nonce: options.nonce } : {})\n };\n};"," import { retry } from './retry'\n\n type LoadScriptOptions = {\n async?: boolean;\n defer?: boolean;\n crossOrigin?: 'anonymous' | 'use-credentials';\n nonce?: string;\n beforeLoad?: (script: HTMLScriptElement) => void;\n };\n\n export async function loadScript(src ='', options: LoadScriptOptions): Promise<HTMLScriptElement> {\n const { async, defer, crossOrigin, nonce, beforeLoad } = options;\n\n const load = () => {\n return new Promise<HTMLScriptElement>((resolve, reject) => {\n if (!src) {\n reject(new Error('Script src is required'));\n }\n\n if (!document || !document.body) {\n reject(new Error('Document body is not available'));\n }\n\n const script = document.createElement('script');\n\n if (crossOrigin) script.setAttribute('crossorigin', crossOrigin);\n script.async = async || false;\n script.defer = defer || false;\n\n let resolved = false;\n let timeoutId: NodeJS.Timeout | null = null;\n\n const cleanup = () => {\n script.removeEventListener('load', handleLoad);\n script.removeEventListener('error', handleError);\n if (timeoutId) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n };\n \n const handleLoad = () => {\n if (resolved) return;\n console.log(`[loadScript] Script loaded successfully: ${src}`);\n\n resolved = true;\n cleanup();\n resolve(script);\n };\n \n const handleError = (error: ErrorEvent) => {\n if (resolved) return;\n resolved = true;\n cleanup();\n script.remove();\n console.error(`[loadScript] Failed to load script: ${src}`, error);\n reject(new Error(`Failed to load script: ${src}, Error: ${error.message || error}`));\n };\n \n script.addEventListener('load', handleLoad);\n script.addEventListener('error', handleError);\n\n script.src = src;\n script.nonce = nonce;\n beforeLoad?.(script);\n\n console.log(`[loadScript] Appending script to document body: ${src}`);\n document.body.appendChild(script)\n });\n };\n\n return load()\n\n //return retry(load, { shouldRetry: (_, iterations) => iterations <=5 });\n }","\nexport const resolveVersion = (ternUIVersion: string | undefined, packageVersion = TERN_UI_VERSION) => {\n if (ternUIVersion) {\n return ternUIVersion\n }\n\n return packageVersion;\n}"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/loadTernUIScript.ts","../src/loadScript.ts","../src/resolveVersion.ts"],"sourcesContent":["import type { TernSecureInstanceTreeOptions, TernSecureSDK } from '@tern-secure/types';\n\nimport { loadScript } from './loadScript';\nimport { resolveVersion } from './resolveVersion';\n\nexport type LoadTernUISCriptOptions = TernSecureInstanceTreeOptions & {\n apiKey?: string;\n customDomain?: string;\n proxyUrl?: string;\n ternUIVersion?: string;\n sdkMetadata?: TernSecureSDK;\n scriptHost?: string;\n localPort?: string;\n nonce?: string;\n};\n\nexport const loadTernUIScript = async (options?: LoadTernUISCriptOptions) => {\n const existingScript = document.querySelector<HTMLScriptElement>('script[data-ternui-script]');\n console.log('[TernSecure-shared] Existing script:', existingScript);\n\n if (existingScript) {\n return new Promise((resolve, reject) => {\n existingScript.addEventListener('load', () => {\n resolve(existingScript);\n });\n\n existingScript.addEventListener('error', error => {\n reject(error);\n });\n });\n }\n\n if (!options?.customDomain) {\n throw new Error(\n 'TernUI script requires a custom domain or proxy URL to be specified in options.',\n );\n }\n\n return loadScript(ternUIgetScriptUrl(options), {\n async: true,\n //crossOrigin: undefined,\n beforeLoad: beforeLoadWithOptions(options),\n }).catch(error => {\n console.error('[TernSecure] Failed to load TernUI script:', error);\n throw new Error('Failed to load TernUI script');\n });\n};\n\nexport const ternUIgetScriptUrl = (options: LoadTernUISCriptOptions) => {\n const { ternUIVersion, isTernSecureDev } = options;\n const version = resolveVersion(ternUIVersion);\n\n if (isTernSecureDev) {\n const localHost = process.env.TERN_UI_HOST || 'localhost';\n const localPort = options?.localPort || process.env.TERN_UI_PORT || '4000';\n return `http://${localHost}:${localPort}/ternsecure.browser.js`;\n //return `http://cdn.lifesprintcare.ca/dist/ternsecure.browser.js`\n }\n //return `https://cdn.lifesprintcare.ca/dist/ternsecure.browser.js`\n return `https://cdn.jsdelivr.net/npm/@tern-secure/ui@${version}/dist/ternsecure.browser.js`;\n\n //const ternsecureCDN = options?.customDomain ||\n //(options?.proxyUrl && new URL(options.proxyUrl).host) || 'cdn.tern-secure.com';\n //return `${ternsecureCDN}/ternsecure.browser.js`;\n //return `https://${ternsecureCDN}/npm/@ternsecure/tern-ui@${version}/dist/ternsecure.browser.js`;\n};\n\nconst beforeLoadWithOptions =\n (options?: LoadTernUISCriptOptions) => (script: HTMLScriptElement) => {\n const attributes = constructScriptAttributes(options);\n Object.entries(attributes).forEach(([key, value]) => {\n if (value) script.setAttribute(key, String(value));\n });\n console.log('[TernSecure-shared] Script attributes set:', attributes);\n };\n\nexport const constructScriptAttributes = (options?: LoadTernUISCriptOptions) => {\n return {\n 'data-domain': options?.customDomain || '',\n 'data-apikey': options?.apiKey || '',\n 'data-proxyUrl': options?.proxyUrl || '',\n ...(options?.nonce ? { nonce: options.nonce } : {}),\n };\n};\n","type LoadScriptOptions = {\n async?: boolean;\n defer?: boolean;\n crossOrigin?: 'anonymous' | 'use-credentials';\n nonce?: string;\n beforeLoad?: (script: HTMLScriptElement) => void;\n };\n\n export async function loadScript(src ='', options: LoadScriptOptions): Promise<HTMLScriptElement> {\n const { async, defer, crossOrigin, nonce, beforeLoad } = options;\n\n const load = () => {\n return new Promise<HTMLScriptElement>((resolve, reject) => {\n if (!src) {\n reject(new Error('Script src is required'));\n }\n\n if (!document || !document.body) {\n reject(new Error('Document body is not available'));\n }\n\n const script = document.createElement('script');\n\n if (crossOrigin) script.setAttribute('crossorigin', crossOrigin);\n script.async = async || false;\n script.defer = defer || false;\n\n let resolved = false;\n let timeoutId: NodeJS.Timeout | null = null;\n\n const cleanup = () => {\n script.removeEventListener('load', handleLoad);\n script.removeEventListener('error', handleError);\n if (timeoutId) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n };\n \n const handleLoad = () => {\n if (resolved) return;\n console.log(`[loadScript] Script loaded successfully: ${src}`);\n\n resolved = true;\n cleanup();\n resolve(script);\n };\n \n const handleError = (error: ErrorEvent) => {\n if (resolved) return;\n resolved = true;\n cleanup();\n script.remove();\n console.error(`[loadScript] Failed to load script: ${src}`, error);\n reject(new Error(`Failed to load script: ${src}, Error: ${error.message}`));\n };\n \n script.addEventListener('load', handleLoad);\n script.addEventListener('error', handleError);\n\n script.src = src;\n script.nonce = nonce;\n beforeLoad?.(script);\n\n console.log(`[loadScript] Appending script to document body: ${src}`);\n document.body.appendChild(script)\n });\n };\n\n return load()\n\n //return retry(load, { shouldRetry: (_, iterations) => iterations <=5 });\n }","\nexport const resolveVersion = (ternUIVersion: string | undefined, packageVersion = TERN_UI_VERSION) => {\n if (ternUIVersion) {\n return ternUIVersion\n }\n\n return packageVersion;\n}"],"mappings":"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","names":[]}
@@ -1,9 +1,9 @@
1
- import {
2
- loadScript
3
- } from "./chunk-HATJQ74R.mjs";
4
1
  import {
5
2
  resolveVersion
6
- } from "./chunk-XCVOYULH.mjs";
3
+ } from "./chunk-PHCVLVZY.mjs";
4
+ import {
5
+ loadScript
6
+ } from "./chunk-33U3M4YY.mjs";
7
7
 
8
8
  // src/loadTernUIScript.ts
9
9
  var loadTernUIScript = async (options) => {
@@ -20,7 +20,9 @@ var loadTernUIScript = async (options) => {
20
20
  });
21
21
  }
22
22
  if (!(options == null ? void 0 : options.customDomain)) {
23
- throw new Error("TernUI script requires a custom domain or proxy URL to be specified in options.");
23
+ throw new Error(
24
+ "TernUI script requires a custom domain or proxy URL to be specified in options."
25
+ );
24
26
  }
25
27
  return loadScript(ternUIgetScriptUrl(options), {
26
28
  async: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/loadTernUIScript.ts"],"sourcesContent":["import type { TernSecureInstanceTreeOptions, TernSecureSDK } from \"@tern-secure/types\";\nimport { loadScript } from \"./loadScript\";\nimport { resolveVersion } from \"./resolveVersion\";\n\n\nexport type LoadTernUISCriptOptions = TernSecureInstanceTreeOptions & {\n apiKey?: string;\n customDomain?: string;\n proxyUrl?: string;\n ternUIVersion?: string;\n sdkMetadata?: TernSecureSDK;\n scriptHost?: string;\n localPort?: string;\n nonce?: string;\n}\n\n\nexport const loadTernUIScript = async (options?: LoadTernUISCriptOptions) => {\n const existingScript = document.querySelector<HTMLScriptElement>('script[data-ternui-script]');\n console.log('[TernSecure-shared] Existing script:', existingScript);\n\n if (existingScript) {\n return new Promise((resolve, reject) => {\n existingScript.addEventListener('load', () => {\n resolve(existingScript);\n });\n\n existingScript.addEventListener('error', (error) => {\n reject(error);\n });\n });\n }\n\n if (!options?.customDomain) {\n throw new Error('TernUI script requires a custom domain or proxy URL to be specified in options.');\n }\n \n return loadScript(ternUIgetScriptUrl(options), {\n async: true,\n //crossOrigin: undefined,\n beforeLoad: beforeLoadWithOptions(options)\n }).catch((error) => {\n console.error('[TernSecure] Failed to load TernUI script:', error);\n throw new Error('Failed to load TernUI script');\n });\n }\n\nexport const ternUIgetScriptUrl = (options: LoadTernUISCriptOptions) => {\n const { ternUIVersion, isTernSecureDev } = options\n const version = resolveVersion(ternUIVersion)\n \n if ( isTernSecureDev) {\n const localHost = process.env.TERN_UI_HOST || 'localhost';\n const localPort = options?.localPort || process.env.TERN_UI_PORT || '4000';\n return `http://${localHost}:${localPort}/ternsecure.browser.js`;\n //return `http://cdn.lifesprintcare.ca/dist/ternsecure.browser.js`\n }\n //return `https://cdn.lifesprintcare.ca/dist/ternsecure.browser.js`\n return `https://cdn.jsdelivr.net/npm/@tern-secure/ui@${version}/dist/ternsecure.browser.js`\n\n //const ternsecureCDN = options?.customDomain || \n //(options?.proxyUrl && new URL(options.proxyUrl).host) || 'cdn.tern-secure.com';\n //return `${ternsecureCDN}/ternsecure.browser.js`;\n //return `https://${ternsecureCDN}/npm/@ternsecure/tern-ui@${version}/dist/ternsecure.browser.js`;\n\n}\n\n \nconst beforeLoadWithOptions = (options?: LoadTernUISCriptOptions) => (script: HTMLScriptElement) => {\n const attributes = constructScriptAttributes(options);\n Object.entries(attributes).forEach(([key, value]) => {\n if (value) script.setAttribute(key, String(value));\n });\n console.log('[TernSecure-shared] Script attributes set:', attributes);\n};\n\nexport const constructScriptAttributes = (options?: LoadTernUISCriptOptions) => {\n return {\n 'data-domain': options?.customDomain || '',\n 'data-apikey': options?.apiKey || '',\n 'data-proxyUrl': options?.proxyUrl || '',\n ...(options?.nonce ? { nonce: options.nonce } : {})\n };\n};"],"mappings":";;;;;;;;AAiBO,IAAM,mBAAmB,OAAO,YAAsC;AAC3E,QAAM,iBAAkB,SAAS,cAAiC,4BAA4B;AAC9F,UAAQ,IAAI,wCAAwC,cAAc;AAElE,MAAI,gBAAgB;AAClB,WAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,qBAAe,iBAAiB,QAAQ,MAAM;AAC5C,gBAAQ,cAAc;AAAA,MACxB,CAAC;AAED,qBAAe,iBAAiB,SAAS,CAAC,UAAU;AAClD,eAAO,KAAK;AAAA,MACd,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAEA,MAAI,EAAC,mCAAS,eAAc;AAC1B,UAAM,IAAI,MAAM,iFAAiF;AAAA,EACnG;AAEA,SAAO,WAAW,mBAAmB,OAAO,GAAG;AAAA,IAC7C,OAAO;AAAA;AAAA,IAEN,YAAY,sBAAsB,OAAO;AAAA,EAC1C,CAAC,EAAE,MAAM,CAAC,UAAU;AAClB,YAAQ,MAAM,8CAA8C,KAAK;AACjE,UAAM,IAAI,MAAM,8BAA8B;AAAA,EAChD,CAAC;AACH;AAEK,IAAM,qBAAqB,CAAC,YAAqC;AACtE,QAAM,EAAE,eAAe,gBAAgB,IAAI;AAC3C,QAAM,UAAU,eAAe,aAAa;AAE5C,MAAK,iBAAiB;AACpB,UAAM,YAAY,QAAQ,IAAI,gBAAgB;AAC9C,UAAM,aAAY,mCAAS,cAAa,QAAQ,IAAI,gBAAgB;AACpE,WAAO,UAAU,SAAS,IAAI,SAAS;AAAA,EAEvC;AAEA,SAAO,gDAAgD,OAAO;AAOlE;AAGA,IAAM,wBAAwB,CAAC,YAAsC,CAAC,WAA8B;AAClG,QAAM,aAAa,0BAA0B,OAAO;AACpD,SAAO,QAAQ,UAAU,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AACnD,QAAI,MAAO,QAAO,aAAa,KAAK,OAAO,KAAK,CAAC;AAAA,EACnD,CAAC;AACD,UAAQ,IAAI,8CAA8C,UAAU;AACtE;AAEO,IAAM,4BAA4B,CAAC,YAAsC;AAC9E,SAAO;AAAA,IACL,gBAAe,mCAAS,iBAAgB;AAAA,IACxC,gBAAe,mCAAS,WAAU;AAAA,IAClC,kBAAiB,mCAAS,aAAY;AAAA,IACtC,IAAI,mCAAS,SAAQ,EAAE,OAAO,QAAQ,MAAM,IAAI,CAAC;AAAA,EACnD;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/loadTernUIScript.ts"],"sourcesContent":["import type { TernSecureInstanceTreeOptions, TernSecureSDK } from '@tern-secure/types';\n\nimport { loadScript } from './loadScript';\nimport { resolveVersion } from './resolveVersion';\n\nexport type LoadTernUISCriptOptions = TernSecureInstanceTreeOptions & {\n apiKey?: string;\n customDomain?: string;\n proxyUrl?: string;\n ternUIVersion?: string;\n sdkMetadata?: TernSecureSDK;\n scriptHost?: string;\n localPort?: string;\n nonce?: string;\n};\n\nexport const loadTernUIScript = async (options?: LoadTernUISCriptOptions) => {\n const existingScript = document.querySelector<HTMLScriptElement>('script[data-ternui-script]');\n console.log('[TernSecure-shared] Existing script:', existingScript);\n\n if (existingScript) {\n return new Promise((resolve, reject) => {\n existingScript.addEventListener('load', () => {\n resolve(existingScript);\n });\n\n existingScript.addEventListener('error', error => {\n reject(error);\n });\n });\n }\n\n if (!options?.customDomain) {\n throw new Error(\n 'TernUI script requires a custom domain or proxy URL to be specified in options.',\n );\n }\n\n return loadScript(ternUIgetScriptUrl(options), {\n async: true,\n //crossOrigin: undefined,\n beforeLoad: beforeLoadWithOptions(options),\n }).catch(error => {\n console.error('[TernSecure] Failed to load TernUI script:', error);\n throw new Error('Failed to load TernUI script');\n });\n};\n\nexport const ternUIgetScriptUrl = (options: LoadTernUISCriptOptions) => {\n const { ternUIVersion, isTernSecureDev } = options;\n const version = resolveVersion(ternUIVersion);\n\n if (isTernSecureDev) {\n const localHost = process.env.TERN_UI_HOST || 'localhost';\n const localPort = options?.localPort || process.env.TERN_UI_PORT || '4000';\n return `http://${localHost}:${localPort}/ternsecure.browser.js`;\n //return `http://cdn.lifesprintcare.ca/dist/ternsecure.browser.js`\n }\n //return `https://cdn.lifesprintcare.ca/dist/ternsecure.browser.js`\n return `https://cdn.jsdelivr.net/npm/@tern-secure/ui@${version}/dist/ternsecure.browser.js`;\n\n //const ternsecureCDN = options?.customDomain ||\n //(options?.proxyUrl && new URL(options.proxyUrl).host) || 'cdn.tern-secure.com';\n //return `${ternsecureCDN}/ternsecure.browser.js`;\n //return `https://${ternsecureCDN}/npm/@ternsecure/tern-ui@${version}/dist/ternsecure.browser.js`;\n};\n\nconst beforeLoadWithOptions =\n (options?: LoadTernUISCriptOptions) => (script: HTMLScriptElement) => {\n const attributes = constructScriptAttributes(options);\n Object.entries(attributes).forEach(([key, value]) => {\n if (value) script.setAttribute(key, String(value));\n });\n console.log('[TernSecure-shared] Script attributes set:', attributes);\n };\n\nexport const constructScriptAttributes = (options?: LoadTernUISCriptOptions) => {\n return {\n 'data-domain': options?.customDomain || '',\n 'data-apikey': options?.apiKey || '',\n 'data-proxyUrl': options?.proxyUrl || '',\n ...(options?.nonce ? { nonce: options.nonce } : {}),\n };\n};\n"],"mappings":";;;;;;;;AAgBO,IAAM,mBAAmB,OAAO,YAAsC;AAC3E,QAAM,iBAAiB,SAAS,cAAiC,4BAA4B;AAC7F,UAAQ,IAAI,wCAAwC,cAAc;AAElE,MAAI,gBAAgB;AAClB,WAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,qBAAe,iBAAiB,QAAQ,MAAM;AAC5C,gBAAQ,cAAc;AAAA,MACxB,CAAC;AAED,qBAAe,iBAAiB,SAAS,WAAS;AAChD,eAAO,KAAK;AAAA,MACd,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAEA,MAAI,EAAC,mCAAS,eAAc;AAC1B,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,SAAO,WAAW,mBAAmB,OAAO,GAAG;AAAA,IAC7C,OAAO;AAAA;AAAA,IAEP,YAAY,sBAAsB,OAAO;AAAA,EAC3C,CAAC,EAAE,MAAM,WAAS;AAChB,YAAQ,MAAM,8CAA8C,KAAK;AACjE,UAAM,IAAI,MAAM,8BAA8B;AAAA,EAChD,CAAC;AACH;AAEO,IAAM,qBAAqB,CAAC,YAAqC;AACtE,QAAM,EAAE,eAAe,gBAAgB,IAAI;AAC3C,QAAM,UAAU,eAAe,aAAa;AAE5C,MAAI,iBAAiB;AACnB,UAAM,YAAY,QAAQ,IAAI,gBAAgB;AAC9C,UAAM,aAAY,mCAAS,cAAa,QAAQ,IAAI,gBAAgB;AACpE,WAAO,UAAU,SAAS,IAAI,SAAS;AAAA,EAEzC;AAEA,SAAO,gDAAgD,OAAO;AAMhE;AAEA,IAAM,wBACJ,CAAC,YAAsC,CAAC,WAA8B;AACpE,QAAM,aAAa,0BAA0B,OAAO;AACpD,SAAO,QAAQ,UAAU,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AACnD,QAAI,MAAO,QAAO,aAAa,KAAK,OAAO,KAAK,CAAC;AAAA,EACnD,CAAC;AACD,UAAQ,IAAI,8CAA8C,UAAU;AACtE;AAEK,IAAM,4BAA4B,CAAC,YAAsC;AAC9E,SAAO;AAAA,IACL,gBAAe,mCAAS,iBAAgB;AAAA,IACxC,gBAAe,mCAAS,WAAU;AAAA,IAClC,kBAAiB,mCAAS,aAAY;AAAA,IACtC,IAAI,mCAAS,SAAQ,EAAE,OAAO,QAAQ,MAAM,IAAI,CAAC;AAAA,EACnD;AACF;","names":[]}
@@ -0,0 +1,14 @@
1
+ import { Autocomplete } from '@tern-secure/types';
2
+
3
+ type WithPathPatternWildcard<T = string> = `${T & string}(.*)`;
4
+ type PathPattern = Autocomplete<WithPathPatternWildcard>;
5
+ type PathMatcherParam = Array<RegExp | PathPattern> | RegExp | PathPattern;
6
+ /**
7
+ * Creates a function that matches paths against a set of patterns.
8
+ *
9
+ * @param patterns - A string, RegExp, or array of patterns to match against
10
+ * @returns A function that takes a pathname and returns true if it matches any of the patterns
11
+ */
12
+ declare const createPathMatcher: (patterns: PathMatcherParam) => (pathname: string) => boolean;
13
+
14
+ export { type PathMatcherParam, type PathPattern, type WithPathPatternWildcard, createPathMatcher };
@@ -0,0 +1,14 @@
1
+ import { Autocomplete } from '@tern-secure/types';
2
+
3
+ type WithPathPatternWildcard<T = string> = `${T & string}(.*)`;
4
+ type PathPattern = Autocomplete<WithPathPatternWildcard>;
5
+ type PathMatcherParam = Array<RegExp | PathPattern> | RegExp | PathPattern;
6
+ /**
7
+ * Creates a function that matches paths against a set of patterns.
8
+ *
9
+ * @param patterns - A string, RegExp, or array of patterns to match against
10
+ * @returns A function that takes a pathname and returns true if it matches any of the patterns
11
+ */
12
+ declare const createPathMatcher: (patterns: PathMatcherParam) => (pathname: string) => boolean;
13
+
14
+ export { type PathMatcherParam, type PathPattern, type WithPathPatternWildcard, createPathMatcher };
@@ -0,0 +1,263 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/pathMatcher.ts
21
+ var pathMatcher_exports = {};
22
+ __export(pathMatcher_exports, {
23
+ createPathMatcher: () => createPathMatcher
24
+ });
25
+ module.exports = __toCommonJS(pathMatcher_exports);
26
+
27
+ // src/compiled/path-to-regexp/index.js
28
+ function _(r) {
29
+ for (var n = [], e = 0; e < r.length; ) {
30
+ var a = r[e];
31
+ if (a === "*" || a === "+" || a === "?") {
32
+ n.push({
33
+ type: "MODIFIER",
34
+ index: e,
35
+ value: r[e++]
36
+ });
37
+ continue;
38
+ }
39
+ if (a === "\\") {
40
+ n.push({
41
+ type: "ESCAPED_CHAR",
42
+ index: e++,
43
+ value: r[e++]
44
+ });
45
+ continue;
46
+ }
47
+ if (a === "{") {
48
+ n.push({
49
+ type: "OPEN",
50
+ index: e,
51
+ value: r[e++]
52
+ });
53
+ continue;
54
+ }
55
+ if (a === "}") {
56
+ n.push({
57
+ type: "CLOSE",
58
+ index: e,
59
+ value: r[e++]
60
+ });
61
+ continue;
62
+ }
63
+ if (a === ":") {
64
+ for (var u = "", t = e + 1; t < r.length; ) {
65
+ var c = r.charCodeAt(t);
66
+ if (c >= 48 && c <= 57 || c >= 65 && c <= 90 || c >= 97 && c <= 122 || c === 95) {
67
+ u += r[t++];
68
+ continue;
69
+ }
70
+ break;
71
+ }
72
+ if (!u) throw new TypeError("Missing parameter name at ".concat(e));
73
+ n.push({
74
+ type: "NAME",
75
+ index: e,
76
+ value: u
77
+ }), e = t;
78
+ continue;
79
+ }
80
+ if (a === "(") {
81
+ var o = 1, m = "", t = e + 1;
82
+ if (r[t] === "?") throw new TypeError('Pattern cannot start with "?" at '.concat(t));
83
+ for (; t < r.length; ) {
84
+ if (r[t] === "\\") {
85
+ m += r[t++] + r[t++];
86
+ continue;
87
+ }
88
+ if (r[t] === ")") {
89
+ if (o--, o === 0) {
90
+ t++;
91
+ break;
92
+ }
93
+ } else if (r[t] === "(" && (o++, r[t + 1] !== "?"))
94
+ throw new TypeError("Capturing groups are not allowed at ".concat(t));
95
+ m += r[t++];
96
+ }
97
+ if (o) throw new TypeError("Unbalanced pattern at ".concat(e));
98
+ if (!m) throw new TypeError("Missing pattern at ".concat(e));
99
+ n.push({
100
+ type: "PATTERN",
101
+ index: e,
102
+ value: m
103
+ }), e = t;
104
+ continue;
105
+ }
106
+ n.push({
107
+ type: "CHAR",
108
+ index: e,
109
+ value: r[e++]
110
+ });
111
+ }
112
+ return n.push({
113
+ type: "END",
114
+ index: e,
115
+ value: ""
116
+ }), n;
117
+ }
118
+ function F(r, n) {
119
+ n === void 0 && (n = {});
120
+ for (var e = _(r), a = n.prefixes, u = a === void 0 ? "./" : a, t = n.delimiter, c = t === void 0 ? "/#?" : t, o = [], m = 0, h = 0, p = "", f = function(l) {
121
+ if (h < e.length && e[h].type === l) return e[h++].value;
122
+ }, w = function(l) {
123
+ var v = f(l);
124
+ if (v !== void 0) return v;
125
+ var E = e[h], N = E.type, S = E.index;
126
+ throw new TypeError("Unexpected ".concat(N, " at ").concat(S, ", expected ").concat(l));
127
+ }, d = function() {
128
+ for (var l = "", v; v = f("CHAR") || f("ESCAPED_CHAR"); ) l += v;
129
+ return l;
130
+ }, M = function(l) {
131
+ for (var v = 0, E = c; v < E.length; v++) {
132
+ var N = E[v];
133
+ if (l.indexOf(N) > -1) return true;
134
+ }
135
+ return false;
136
+ }, A = function(l) {
137
+ var v = o[o.length - 1], E = l || (v && typeof v == "string" ? v : "");
138
+ if (v && !E)
139
+ throw new TypeError('Must have text between two parameters, missing text after "'.concat(v.name, '"'));
140
+ return !E || M(E) ? "[^".concat(s(c), "]+?") : "(?:(?!".concat(s(E), ")[^").concat(s(c), "])+?");
141
+ }; h < e.length; ) {
142
+ var T = f("CHAR"), x = f("NAME"), C = f("PATTERN");
143
+ if (x || C) {
144
+ var g = T || "";
145
+ u.indexOf(g) === -1 && (p += g, g = ""), p && (o.push(p), p = ""), o.push({
146
+ name: x || m++,
147
+ prefix: g,
148
+ suffix: "",
149
+ pattern: C || A(g),
150
+ modifier: f("MODIFIER") || ""
151
+ });
152
+ continue;
153
+ }
154
+ var i = T || f("ESCAPED_CHAR");
155
+ if (i) {
156
+ p += i;
157
+ continue;
158
+ }
159
+ p && (o.push(p), p = "");
160
+ var R = f("OPEN");
161
+ if (R) {
162
+ var g = d(), y = f("NAME") || "", O = f("PATTERN") || "", b = d();
163
+ w("CLOSE"), o.push({
164
+ name: y || (O ? m++ : ""),
165
+ pattern: y && !O ? A(g) : O,
166
+ prefix: g,
167
+ suffix: b,
168
+ modifier: f("MODIFIER") || ""
169
+ });
170
+ continue;
171
+ }
172
+ w("END");
173
+ }
174
+ return o;
175
+ }
176
+ function s(r) {
177
+ return r.replace(/([.+*?=^!:${}()[\]|/\\])/g, "\\$1");
178
+ }
179
+ function D(r) {
180
+ return r && r.sensitive ? "" : "i";
181
+ }
182
+ function $(r, n) {
183
+ if (!n) return r;
184
+ for (var e = /\((?:\?<(.*?)>)?(?!\?)/g, a = 0, u = e.exec(r.source); u; )
185
+ n.push({
186
+ name: u[1] || a++,
187
+ prefix: "",
188
+ suffix: "",
189
+ modifier: "",
190
+ pattern: ""
191
+ }), u = e.exec(r.source);
192
+ return r;
193
+ }
194
+ function W(r, n, e) {
195
+ var a = r.map(function(u) {
196
+ return P(u, n, e).source;
197
+ });
198
+ return new RegExp("(?:".concat(a.join("|"), ")"), D(e));
199
+ }
200
+ function L(r, n, e) {
201
+ return U(F(r, e), n, e);
202
+ }
203
+ function U(r, n, e) {
204
+ e === void 0 && (e = {});
205
+ for (var a = e.strict, u = a === void 0 ? false : a, t = e.start, c = t === void 0 ? true : t, o = e.end, m = o === void 0 ? true : o, h = e.encode, p = h === void 0 ? function(v) {
206
+ return v;
207
+ } : h, f = e.delimiter, w = f === void 0 ? "/#?" : f, d = e.endsWith, M = d === void 0 ? "" : d, A = "[".concat(s(M), "]|$"), T = "[".concat(s(w), "]"), x = c ? "^" : "", C = 0, g = r; C < g.length; C++) {
208
+ var i = g[C];
209
+ if (typeof i == "string") x += s(p(i));
210
+ else {
211
+ var R = s(p(i.prefix)), y = s(p(i.suffix));
212
+ if (i.pattern)
213
+ if (n && n.push(i), R || y)
214
+ if (i.modifier === "+" || i.modifier === "*") {
215
+ var O = i.modifier === "*" ? "?" : "";
216
+ x += "(?:".concat(R, "((?:").concat(i.pattern, ")(?:").concat(y).concat(R, "(?:").concat(i.pattern, "))*)").concat(y, ")").concat(O);
217
+ } else x += "(?:".concat(R, "(").concat(i.pattern, ")").concat(y, ")").concat(i.modifier);
218
+ else {
219
+ if (i.modifier === "+" || i.modifier === "*")
220
+ throw new TypeError('Can not repeat "'.concat(i.name, '" without a prefix and suffix'));
221
+ x += "(".concat(i.pattern, ")").concat(i.modifier);
222
+ }
223
+ else x += "(?:".concat(R).concat(y, ")").concat(i.modifier);
224
+ }
225
+ }
226
+ if (m) u || (x += "".concat(T, "?")), x += e.endsWith ? "(?=".concat(A, ")") : "$";
227
+ else {
228
+ var b = r[r.length - 1], l = typeof b == "string" ? T.indexOf(b[b.length - 1]) > -1 : b === void 0;
229
+ u || (x += "(?:".concat(T, "(?=").concat(A, "))?")), l || (x += "(?=".concat(T, "|").concat(A, ")"));
230
+ }
231
+ return new RegExp(x, D(e));
232
+ }
233
+ function P(r, n, e) {
234
+ return r instanceof RegExp ? $(r, n) : Array.isArray(r) ? W(r, n, e) : L(r, n, e);
235
+ }
236
+
237
+ // src/pathToRegexp.ts
238
+ var pathToRegexp = (path) => {
239
+ try {
240
+ return P(path);
241
+ } catch (e) {
242
+ throw new Error(
243
+ `Invalid path: ${path}.
244
+ Consult the documentation of path-to-regexp here: https://github.com/pillarjs/path-to-regexp/tree/6.x
245
+ ${e.message}`
246
+ );
247
+ }
248
+ };
249
+
250
+ // src/pathMatcher.ts
251
+ var precomputePathRegex = (patterns) => {
252
+ return patterns.map((pattern) => pattern instanceof RegExp ? pattern : pathToRegexp(pattern));
253
+ };
254
+ var createPathMatcher = (patterns) => {
255
+ const routePatterns = [patterns || ""].flat().filter(Boolean);
256
+ const matchers = precomputePathRegex(routePatterns);
257
+ return (pathname) => matchers.some((matcher) => matcher.test(pathname));
258
+ };
259
+ // Annotate the CommonJS export names for ESM import in node:
260
+ 0 && (module.exports = {
261
+ createPathMatcher
262
+ });
263
+ //# sourceMappingURL=pathMatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/pathMatcher.ts","../src/compiled/path-to-regexp/index.js","../src/pathToRegexp.ts"],"sourcesContent":["import type { Autocomplete } from '@tern-secure/types';\n\nimport { pathToRegexp } from './pathToRegexp';\n\nexport type WithPathPatternWildcard<T = string> = `${T & string}(.*)`;\nexport type PathPattern = Autocomplete<WithPathPatternWildcard>;\nexport type PathMatcherParam = Array<RegExp | PathPattern> | RegExp | PathPattern;\n\nconst precomputePathRegex = (patterns: Array<string | RegExp>) => {\n return patterns.map(pattern => (pattern instanceof RegExp ? pattern : pathToRegexp(pattern)));\n};\n\n/**\n * Creates a function that matches paths against a set of patterns.\n *\n * @param patterns - A string, RegExp, or array of patterns to match against\n * @returns A function that takes a pathname and returns true if it matches any of the patterns\n */\nexport const createPathMatcher = (patterns: PathMatcherParam) => {\n const routePatterns = [patterns || ''].flat().filter(Boolean);\n const matchers = precomputePathRegex(routePatterns);\n return (pathname: string) => matchers.some(matcher => matcher.test(pathname));\n};\n","/* eslint-disable no-redeclare, curly */\n\nfunction _(r) {\n for (var n = [], e = 0; e < r.length; ) {\n var a = r[e];\n if (a === '*' || a === '+' || a === '?') {\n n.push({\n type: 'MODIFIER',\n index: e,\n value: r[e++],\n });\n continue;\n }\n if (a === '\\\\') {\n n.push({\n type: 'ESCAPED_CHAR',\n index: e++,\n value: r[e++],\n });\n continue;\n }\n if (a === '{') {\n n.push({\n type: 'OPEN',\n index: e,\n value: r[e++],\n });\n continue;\n }\n if (a === '}') {\n n.push({\n type: 'CLOSE',\n index: e,\n value: r[e++],\n });\n continue;\n }\n if (a === ':') {\n for (var u = '', t = e + 1; t < r.length; ) {\n var c = r.charCodeAt(t);\n if ((c >= 48 && c <= 57) || (c >= 65 && c <= 90) || (c >= 97 && c <= 122) || c === 95) {\n u += r[t++];\n continue;\n }\n break;\n }\n if (!u) throw new TypeError('Missing parameter name at '.concat(e));\n n.push({\n type: 'NAME',\n index: e,\n value: u,\n }),\n (e = t);\n continue;\n }\n if (a === '(') {\n var o = 1,\n m = '',\n t = e + 1;\n if (r[t] === '?') throw new TypeError('Pattern cannot start with \"?\" at '.concat(t));\n for (; t < r.length; ) {\n if (r[t] === '\\\\') {\n m += r[t++] + r[t++];\n continue;\n }\n if (r[t] === ')') {\n if ((o--, o === 0)) {\n t++;\n break;\n }\n } else if (r[t] === '(' && (o++, r[t + 1] !== '?'))\n throw new TypeError('Capturing groups are not allowed at '.concat(t));\n m += r[t++];\n }\n if (o) throw new TypeError('Unbalanced pattern at '.concat(e));\n if (!m) throw new TypeError('Missing pattern at '.concat(e));\n n.push({\n type: 'PATTERN',\n index: e,\n value: m,\n }),\n (e = t);\n continue;\n }\n n.push({\n type: 'CHAR',\n index: e,\n value: r[e++],\n });\n }\n return (\n n.push({\n type: 'END',\n index: e,\n value: '',\n }),\n n\n );\n}\n\nfunction F(r, n) {\n n === void 0 && (n = {});\n for (\n var e = _(r),\n a = n.prefixes,\n u = a === void 0 ? './' : a,\n t = n.delimiter,\n c = t === void 0 ? '/#?' : t,\n o = [],\n m = 0,\n h = 0,\n p = '',\n f = function (l) {\n if (h < e.length && e[h].type === l) return e[h++].value;\n },\n w = function (l) {\n var v = f(l);\n if (v !== void 0) return v;\n var E = e[h],\n N = E.type,\n S = E.index;\n throw new TypeError('Unexpected '.concat(N, ' at ').concat(S, ', expected ').concat(l));\n },\n d = function () {\n for (var l = '', v; (v = f('CHAR') || f('ESCAPED_CHAR')); ) l += v;\n return l;\n },\n M = function (l) {\n for (var v = 0, E = c; v < E.length; v++) {\n var N = E[v];\n if (l.indexOf(N) > -1) return !0;\n }\n return !1;\n },\n A = function (l) {\n var v = o[o.length - 1],\n E = l || (v && typeof v == 'string' ? v : '');\n if (v && !E)\n throw new TypeError('Must have text between two parameters, missing text after \"'.concat(v.name, '\"'));\n return !E || M(E) ? '[^'.concat(s(c), ']+?') : '(?:(?!'.concat(s(E), ')[^').concat(s(c), '])+?');\n };\n h < e.length;\n\n ) {\n var T = f('CHAR'),\n x = f('NAME'),\n C = f('PATTERN');\n if (x || C) {\n var g = T || '';\n u.indexOf(g) === -1 && ((p += g), (g = '')),\n p && (o.push(p), (p = '')),\n o.push({\n name: x || m++,\n prefix: g,\n suffix: '',\n pattern: C || A(g),\n modifier: f('MODIFIER') || '',\n });\n continue;\n }\n var i = T || f('ESCAPED_CHAR');\n if (i) {\n p += i;\n continue;\n }\n p && (o.push(p), (p = ''));\n var R = f('OPEN');\n if (R) {\n var g = d(),\n y = f('NAME') || '',\n O = f('PATTERN') || '',\n b = d();\n w('CLOSE'),\n o.push({\n name: y || (O ? m++ : ''),\n pattern: y && !O ? A(g) : O,\n prefix: g,\n suffix: b,\n modifier: f('MODIFIER') || '',\n });\n continue;\n }\n w('END');\n }\n return o;\n}\n\nfunction H(r, n) {\n var e = [],\n a = P(r, e, n);\n return I(a, e, n);\n}\n\nfunction I(r, n, e) {\n e === void 0 && (e = {});\n var a = e.decode,\n u =\n a === void 0\n ? function (t) {\n return t;\n }\n : a;\n return function (t) {\n var c = r.exec(t);\n if (!c) return !1;\n for (\n var o = c[0],\n m = c.index,\n h = Object.create(null),\n p = function (w) {\n if (c[w] === void 0) return 'continue';\n var d = n[w - 1];\n d.modifier === '*' || d.modifier === '+'\n ? (h[d.name] = c[w].split(d.prefix + d.suffix).map(function (M) {\n return u(M, d);\n }))\n : (h[d.name] = u(c[w], d));\n },\n f = 1;\n f < c.length;\n f++\n )\n p(f);\n return {\n path: o,\n index: m,\n params: h,\n };\n };\n}\n\nfunction s(r) {\n return r.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, '\\\\$1');\n}\n\nfunction D(r) {\n return r && r.sensitive ? '' : 'i';\n}\n\nfunction $(r, n) {\n if (!n) return r;\n for (var e = /\\((?:\\?<(.*?)>)?(?!\\?)/g, a = 0, u = e.exec(r.source); u; )\n n.push({\n name: u[1] || a++,\n prefix: '',\n suffix: '',\n modifier: '',\n pattern: '',\n }),\n (u = e.exec(r.source));\n return r;\n}\n\nfunction W(r, n, e) {\n var a = r.map(function (u) {\n return P(u, n, e).source;\n });\n return new RegExp('(?:'.concat(a.join('|'), ')'), D(e));\n}\n\nfunction L(r, n, e) {\n return U(F(r, e), n, e);\n}\n\nfunction U(r, n, e) {\n e === void 0 && (e = {});\n for (\n var a = e.strict,\n u = a === void 0 ? !1 : a,\n t = e.start,\n c = t === void 0 ? !0 : t,\n o = e.end,\n m = o === void 0 ? !0 : o,\n h = e.encode,\n p =\n h === void 0\n ? function (v) {\n return v;\n }\n : h,\n f = e.delimiter,\n w = f === void 0 ? '/#?' : f,\n d = e.endsWith,\n M = d === void 0 ? '' : d,\n A = '['.concat(s(M), ']|$'),\n T = '['.concat(s(w), ']'),\n x = c ? '^' : '',\n C = 0,\n g = r;\n C < g.length;\n C++\n ) {\n var i = g[C];\n if (typeof i == 'string') x += s(p(i));\n else {\n var R = s(p(i.prefix)),\n y = s(p(i.suffix));\n if (i.pattern)\n if ((n && n.push(i), R || y))\n if (i.modifier === '+' || i.modifier === '*') {\n var O = i.modifier === '*' ? '?' : '';\n x += '(?:'\n .concat(R, '((?:')\n .concat(i.pattern, ')(?:')\n .concat(y)\n .concat(R, '(?:')\n .concat(i.pattern, '))*)')\n .concat(y, ')')\n .concat(O);\n } else x += '(?:'.concat(R, '(').concat(i.pattern, ')').concat(y, ')').concat(i.modifier);\n else {\n if (i.modifier === '+' || i.modifier === '*')\n throw new TypeError('Can not repeat \"'.concat(i.name, '\" without a prefix and suffix'));\n x += '('.concat(i.pattern, ')').concat(i.modifier);\n }\n else x += '(?:'.concat(R).concat(y, ')').concat(i.modifier);\n }\n }\n if (m) u || (x += ''.concat(T, '?')), (x += e.endsWith ? '(?='.concat(A, ')') : '$');\n else {\n var b = r[r.length - 1],\n l = typeof b == 'string' ? T.indexOf(b[b.length - 1]) > -1 : b === void 0;\n u || (x += '(?:'.concat(T, '(?=').concat(A, '))?')), l || (x += '(?='.concat(T, '|').concat(A, ')'));\n }\n return new RegExp(x, D(e));\n}\n\nfunction P(r, n, e) {\n return r instanceof RegExp ? $(r, n) : Array.isArray(r) ? W(r, n, e) : L(r, n, e);\n}\nexport { H as match, P as pathToRegexp };","import type {\n Match,\n MatchFunction,\n ParseOptions,\n Path,\n RegexpToFunctionOptions,\n TokensToRegexpOptions,\n} from './compiled/path-to-regexp';\nimport { match as matchBase, pathToRegexp as pathToRegexpBase } from './compiled/path-to-regexp';\n\nexport const pathToRegexp = (path: string) => {\n try {\n // @ts-ignore no types exists for the pre-compiled package\n return pathToRegexpBase(path);\n } catch (e: any) {\n throw new Error(\n `Invalid path: ${path}.\\nConsult the documentation of path-to-regexp here: https://github.com/pillarjs/path-to-regexp/tree/6.x\\n${e.message}`,\n );\n }\n};\n\nexport function match<P extends object = object>(\n str: Path,\n options?: ParseOptions & TokensToRegexpOptions & RegexpToFunctionOptions,\n): MatchFunction<P> {\n try {\n // @ts-ignore no types exists for the pre-compiled package\n return matchBase(str, options);\n } catch (e: any) {\n throw new Error(\n `Invalid path and options: Consult the documentation of path-to-regexp here: https://github.com/pillarjs/path-to-regexp/tree/6.x\\n${e.message}`,\n );\n }\n}\n\nexport { type Match, type MatchFunction };\n"],"mappings":"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","names":[]}