@tern-secure/shared 1.1.2 → 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.
- package/dist/browser.d.mts +28 -0
- package/dist/browser.d.ts +28 -0
- package/dist/browser.js +95 -0
- package/dist/browser.js.map +1 -0
- package/dist/browser.mjs +66 -0
- package/dist/browser.mjs.map +1 -0
- package/dist/chunk-2UQ43P4P.mjs +45 -0
- package/dist/chunk-2UQ43P4P.mjs.map +1 -0
- package/dist/{chunk-HATJQ74R.mjs → chunk-33U3M4YY.mjs} +2 -2
- package/dist/chunk-33U3M4YY.mjs.map +1 -0
- package/dist/chunk-CGGW4CI3.mjs +265 -0
- package/dist/chunk-CGGW4CI3.mjs.map +1 -0
- package/dist/chunk-PHCVLVZY.mjs +12 -0
- package/dist/chunk-PHCVLVZY.mjs.map +1 -0
- package/dist/cookie.d.mts +4 -1
- package/dist/cookie.d.ts +4 -1
- package/dist/cookie.js +35 -2
- package/dist/cookie.js.map +1 -1
- package/dist/cookie.mjs +33 -1
- package/dist/cookie.mjs.map +1 -1
- package/dist/derivedAuthState.d.mts +13 -7
- package/dist/derivedAuthState.d.ts +13 -7
- package/dist/derivedAuthState.js +22 -34
- package/dist/derivedAuthState.js.map +1 -1
- package/dist/derivedAuthState.mjs +22 -33
- package/dist/derivedAuthState.mjs.map +1 -1
- package/dist/errors-api.d.mts +49 -0
- package/dist/errors-api.d.ts +49 -0
- package/dist/errors-api.js +124 -0
- package/dist/errors-api.js.map +1 -0
- package/dist/errors-api.mjs +91 -0
- package/dist/errors-api.mjs.map +1 -0
- package/dist/errors.d.mts +17 -0
- package/dist/errors.d.ts +17 -0
- package/dist/errors.js +139 -0
- package/dist/errors.js.map +1 -0
- package/dist/errors.mjs +111 -0
- package/dist/errors.mjs.map +1 -0
- package/dist/eventBus.d.mts +28 -7
- package/dist/eventBus.d.ts +28 -7
- package/dist/eventBus.js +36 -21
- package/dist/eventBus.js.map +1 -1
- package/dist/eventBus.mjs +4 -26
- package/dist/eventBus.mjs.map +1 -1
- package/dist/{types/eventBus.d.ts → eventEmitter.d.mts} +4 -2
- package/dist/eventEmitter.d.ts +9 -0
- package/dist/eventEmitter.js +57 -0
- package/dist/eventEmitter.js.map +1 -0
- package/dist/eventEmitter.mjs +32 -0
- package/dist/eventEmitter.mjs.map +1 -0
- package/dist/loadScript.js +1 -1
- package/dist/loadScript.js.map +1 -1
- package/dist/loadScript.mjs +1 -1
- package/dist/loadTernUIScript.d.mts +4 -5
- package/dist/loadTernUIScript.d.ts +4 -5
- package/dist/loadTernUIScript.js +15 -7
- package/dist/loadTernUIScript.js.map +1 -1
- package/dist/loadTernUIScript.mjs +10 -7
- package/dist/loadTernUIScript.mjs.map +1 -1
- package/dist/pathMatcher.d.mts +14 -0
- package/dist/pathMatcher.d.ts +14 -0
- package/dist/pathMatcher.js +263 -0
- package/dist/pathMatcher.js.map +1 -0
- package/dist/pathMatcher.mjs +17 -0
- package/dist/pathMatcher.mjs.map +1 -0
- package/dist/pathToRegexp.d.mts +81 -0
- package/dist/pathToRegexp.d.ts +81 -0
- package/dist/pathToRegexp.js +292 -0
- package/dist/pathToRegexp.js.map +1 -0
- package/dist/pathToRegexp.mjs +9 -0
- package/dist/pathToRegexp.mjs.map +1 -0
- package/dist/react/index.d.mts +8 -2
- package/dist/react/index.d.ts +8 -2
- package/dist/react/index.js +28 -2
- package/dist/react/index.js.map +1 -1
- package/dist/react/index.mjs +25 -2
- package/dist/react/index.mjs.map +1 -1
- package/dist/resolveVersion.d.mts +3 -0
- package/dist/resolveVersion.d.ts +3 -0
- package/dist/resolveVersion.js +36 -0
- package/dist/resolveVersion.js.map +1 -0
- package/dist/resolveVersion.mjs +7 -0
- package/dist/resolveVersion.mjs.map +1 -0
- package/dist/serviceWorker.js +1 -1
- package/dist/serviceWorker.js.map +1 -1
- package/dist/serviceWorker.mjs +1 -1
- package/dist/serviceWorker.mjs.map +1 -1
- package/dist/ternStatusEvent.d.mts +15 -0
- package/dist/ternStatusEvent.d.ts +15 -0
- package/dist/ternStatusEvent.js +81 -0
- package/dist/ternStatusEvent.js.map +1 -0
- package/dist/ternStatusEvent.mjs +16 -0
- package/dist/ternStatusEvent.mjs.map +1 -0
- package/dist/url.d.mts +3 -0
- package/dist/url.d.ts +3 -0
- package/dist/url.js +33 -0
- package/dist/url.js.map +1 -0
- package/dist/url.mjs +8 -0
- package/dist/url.mjs.map +1 -0
- package/dist/utils/index.d.mts +5 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/index.js +44 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/index.mjs +17 -0
- package/dist/utils/index.mjs.map +1 -0
- package/package.json +23 -6
- package/dist/chunk-HATJQ74R.mjs.map +0 -1
- package/dist/types/cookie.d.ts +0 -12
- package/dist/types/cookie.d.ts.map +0 -1
- package/dist/types/derivedAuthState.d.ts +0 -7
- package/dist/types/derivedAuthState.d.ts.map +0 -1
- package/dist/types/eventBus.d.ts.map +0 -1
- package/dist/types/loadScript.d.ts +0 -10
- package/dist/types/loadScript.d.ts.map +0 -1
- package/dist/types/loadTernUIScript.d.ts +0 -21
- package/dist/types/loadTernUIScript.d.ts.map +0 -1
- package/dist/types/nextjs/client/auth-actions.d.ts +0 -1
- package/dist/types/nextjs/client/auth-actions.d.ts.map +0 -1
- package/dist/types/react/hooks/index.d.ts +0 -2
- package/dist/types/react/hooks/index.d.ts.map +0 -1
- package/dist/types/react/hooks/useTernSecure.d.ts +0 -3
- package/dist/types/react/hooks/useTernSecure.d.ts.map +0 -1
- package/dist/types/react/index.d.ts +0 -4
- package/dist/types/react/index.d.ts.map +0 -1
- package/dist/types/react/ternsecureCtx.d.ts +0 -26
- package/dist/types/react/ternsecureCtx.d.ts.map +0 -1
- package/dist/types/react/ternsecureProvider.d.ts +0 -20
- package/dist/types/react/ternsecureProvider.d.ts.map +0 -1
- package/dist/types/retry.d.ts +0 -46
- package/dist/types/retry.d.ts.map +0 -1
- package/dist/types/serviceWorker.d.ts +0 -12
- package/dist/types/serviceWorker.d.ts.map +0 -1
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
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":[]}
|
package/dist/loadScript.js
CHANGED
|
@@ -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
|
|
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);
|
package/dist/loadScript.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/loadScript.ts"],"sourcesContent":["
|
|
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":[]}
|
package/dist/loadScript.mjs
CHANGED
|
@@ -1,23 +1,22 @@
|
|
|
1
|
-
import { TernSecureInstanceTreeOptions } from '@tern-secure/types';
|
|
1
|
+
import { TernSecureInstanceTreeOptions, TernSecureSDK } from '@tern-secure/types';
|
|
2
2
|
|
|
3
3
|
type LoadTernUISCriptOptions = TernSecureInstanceTreeOptions & {
|
|
4
4
|
apiKey?: string;
|
|
5
5
|
customDomain?: string;
|
|
6
6
|
proxyUrl?: string;
|
|
7
|
-
|
|
7
|
+
ternUIVersion?: string;
|
|
8
|
+
sdkMetadata?: TernSecureSDK;
|
|
8
9
|
scriptHost?: string;
|
|
9
10
|
localPort?: string;
|
|
10
11
|
nonce?: string;
|
|
11
12
|
};
|
|
12
13
|
declare const loadTernUIScript: (options?: LoadTernUISCriptOptions) => Promise<unknown>;
|
|
13
|
-
declare const ternUIgetScriptUrl: (options
|
|
14
|
+
declare const ternUIgetScriptUrl: (options: LoadTernUISCriptOptions) => string;
|
|
14
15
|
declare const constructScriptAttributes: (options?: LoadTernUISCriptOptions) => {
|
|
15
16
|
nonce?: string | undefined;
|
|
16
17
|
'data-domain': string;
|
|
17
18
|
'data-apikey': string;
|
|
18
|
-
'data-environment': string;
|
|
19
19
|
'data-proxyUrl': string;
|
|
20
|
-
'data-version': string;
|
|
21
20
|
};
|
|
22
21
|
|
|
23
22
|
export { type LoadTernUISCriptOptions, constructScriptAttributes, loadTernUIScript, ternUIgetScriptUrl };
|
|
@@ -1,23 +1,22 @@
|
|
|
1
|
-
import { TernSecureInstanceTreeOptions } from '@tern-secure/types';
|
|
1
|
+
import { TernSecureInstanceTreeOptions, TernSecureSDK } from '@tern-secure/types';
|
|
2
2
|
|
|
3
3
|
type LoadTernUISCriptOptions = TernSecureInstanceTreeOptions & {
|
|
4
4
|
apiKey?: string;
|
|
5
5
|
customDomain?: string;
|
|
6
6
|
proxyUrl?: string;
|
|
7
|
-
|
|
7
|
+
ternUIVersion?: string;
|
|
8
|
+
sdkMetadata?: TernSecureSDK;
|
|
8
9
|
scriptHost?: string;
|
|
9
10
|
localPort?: string;
|
|
10
11
|
nonce?: string;
|
|
11
12
|
};
|
|
12
13
|
declare const loadTernUIScript: (options?: LoadTernUISCriptOptions) => Promise<unknown>;
|
|
13
|
-
declare const ternUIgetScriptUrl: (options
|
|
14
|
+
declare const ternUIgetScriptUrl: (options: LoadTernUISCriptOptions) => string;
|
|
14
15
|
declare const constructScriptAttributes: (options?: LoadTernUISCriptOptions) => {
|
|
15
16
|
nonce?: string | undefined;
|
|
16
17
|
'data-domain': string;
|
|
17
18
|
'data-apikey': string;
|
|
18
|
-
'data-environment': string;
|
|
19
19
|
'data-proxyUrl': string;
|
|
20
|
-
'data-version': string;
|
|
21
20
|
};
|
|
22
21
|
|
|
23
22
|
export { type LoadTernUISCriptOptions, constructScriptAttributes, loadTernUIScript, ternUIgetScriptUrl };
|
package/dist/loadTernUIScript.js
CHANGED
|
@@ -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
|
|
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);
|
|
@@ -78,6 +78,14 @@ async function loadScript(src = "", options) {
|
|
|
78
78
|
return load();
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
+
// src/resolveVersion.ts
|
|
82
|
+
var resolveVersion = (ternUIVersion, packageVersion = TERN_UI_VERSION) => {
|
|
83
|
+
if (ternUIVersion) {
|
|
84
|
+
return ternUIVersion;
|
|
85
|
+
}
|
|
86
|
+
return packageVersion;
|
|
87
|
+
};
|
|
88
|
+
|
|
81
89
|
// src/loadTernUIScript.ts
|
|
82
90
|
var loadTernUIScript = async (options) => {
|
|
83
91
|
const existingScript = document.querySelector("script[data-ternui-script]");
|
|
@@ -93,7 +101,9 @@ var loadTernUIScript = async (options) => {
|
|
|
93
101
|
});
|
|
94
102
|
}
|
|
95
103
|
if (!(options == null ? void 0 : options.customDomain)) {
|
|
96
|
-
throw new Error(
|
|
104
|
+
throw new Error(
|
|
105
|
+
"TernUI script requires a custom domain or proxy URL to be specified in options."
|
|
106
|
+
);
|
|
97
107
|
}
|
|
98
108
|
return loadScript(ternUIgetScriptUrl(options), {
|
|
99
109
|
async: true,
|
|
@@ -105,14 +115,14 @@ var loadTernUIScript = async (options) => {
|
|
|
105
115
|
});
|
|
106
116
|
};
|
|
107
117
|
var ternUIgetScriptUrl = (options) => {
|
|
108
|
-
const
|
|
109
|
-
const version = (
|
|
118
|
+
const { ternUIVersion, isTernSecureDev } = options;
|
|
119
|
+
const version = resolveVersion(ternUIVersion);
|
|
110
120
|
if (isTernSecureDev) {
|
|
111
121
|
const localHost = process.env.TERN_UI_HOST || "localhost";
|
|
112
122
|
const localPort = (options == null ? void 0 : options.localPort) || process.env.TERN_UI_PORT || "4000";
|
|
113
123
|
return `http://${localHost}:${localPort}/ternsecure.browser.js`;
|
|
114
124
|
}
|
|
115
|
-
return `https://cdn.
|
|
125
|
+
return `https://cdn.jsdelivr.net/npm/@tern-secure/ui@${version}/dist/ternsecure.browser.js`;
|
|
116
126
|
};
|
|
117
127
|
var beforeLoadWithOptions = (options) => (script) => {
|
|
118
128
|
const attributes = constructScriptAttributes(options);
|
|
@@ -125,9 +135,7 @@ var constructScriptAttributes = (options) => {
|
|
|
125
135
|
return {
|
|
126
136
|
"data-domain": (options == null ? void 0 : options.customDomain) || "",
|
|
127
137
|
"data-apikey": (options == null ? void 0 : options.apiKey) || "",
|
|
128
|
-
"data-environment": process.env.NODE_ENV || "development",
|
|
129
138
|
"data-proxyUrl": (options == null ? void 0 : options.proxyUrl) || "",
|
|
130
|
-
"data-version": (options == null ? void 0 : options.version) || process.env.TERN_UI_VERSION || "latest",
|
|
131
139
|
...(options == null ? void 0 : options.nonce) ? { nonce: options.nonce } : {}
|
|
132
140
|
};
|
|
133
141
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/loadTernUIScript.ts","../src/loadScript.ts"],"sourcesContent":["import type { TernSecureInstanceTreeOptions } from
|
|
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,6 +1,9 @@
|
|
|
1
|
+
import {
|
|
2
|
+
resolveVersion
|
|
3
|
+
} from "./chunk-PHCVLVZY.mjs";
|
|
1
4
|
import {
|
|
2
5
|
loadScript
|
|
3
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-33U3M4YY.mjs";
|
|
4
7
|
|
|
5
8
|
// src/loadTernUIScript.ts
|
|
6
9
|
var loadTernUIScript = async (options) => {
|
|
@@ -17,7 +20,9 @@ var loadTernUIScript = async (options) => {
|
|
|
17
20
|
});
|
|
18
21
|
}
|
|
19
22
|
if (!(options == null ? void 0 : options.customDomain)) {
|
|
20
|
-
throw new Error(
|
|
23
|
+
throw new Error(
|
|
24
|
+
"TernUI script requires a custom domain or proxy URL to be specified in options."
|
|
25
|
+
);
|
|
21
26
|
}
|
|
22
27
|
return loadScript(ternUIgetScriptUrl(options), {
|
|
23
28
|
async: true,
|
|
@@ -29,14 +34,14 @@ var loadTernUIScript = async (options) => {
|
|
|
29
34
|
});
|
|
30
35
|
};
|
|
31
36
|
var ternUIgetScriptUrl = (options) => {
|
|
32
|
-
const
|
|
33
|
-
const version = (
|
|
37
|
+
const { ternUIVersion, isTernSecureDev } = options;
|
|
38
|
+
const version = resolveVersion(ternUIVersion);
|
|
34
39
|
if (isTernSecureDev) {
|
|
35
40
|
const localHost = process.env.TERN_UI_HOST || "localhost";
|
|
36
41
|
const localPort = (options == null ? void 0 : options.localPort) || process.env.TERN_UI_PORT || "4000";
|
|
37
42
|
return `http://${localHost}:${localPort}/ternsecure.browser.js`;
|
|
38
43
|
}
|
|
39
|
-
return `https://cdn.
|
|
44
|
+
return `https://cdn.jsdelivr.net/npm/@tern-secure/ui@${version}/dist/ternsecure.browser.js`;
|
|
40
45
|
};
|
|
41
46
|
var beforeLoadWithOptions = (options) => (script) => {
|
|
42
47
|
const attributes = constructScriptAttributes(options);
|
|
@@ -49,9 +54,7 @@ var constructScriptAttributes = (options) => {
|
|
|
49
54
|
return {
|
|
50
55
|
"data-domain": (options == null ? void 0 : options.customDomain) || "",
|
|
51
56
|
"data-apikey": (options == null ? void 0 : options.apiKey) || "",
|
|
52
|
-
"data-environment": process.env.NODE_ENV || "development",
|
|
53
57
|
"data-proxyUrl": (options == null ? void 0 : options.proxyUrl) || "",
|
|
54
|
-
"data-version": (options == null ? void 0 : options.version) || process.env.TERN_UI_VERSION || "latest",
|
|
55
58
|
...(options == null ? void 0 : options.nonce) ? { nonce: options.nonce } : {}
|
|
56
59
|
};
|
|
57
60
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/loadTernUIScript.ts"],"sourcesContent":["import type { TernSecureInstanceTreeOptions } from
|
|
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 };
|