@alter-ai/connect 0.9.2 → 0.11.0
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/README.md +106 -66
- package/dist/alter-connect.cjs.js +1 -1
- package/dist/alter-connect.cjs.js.map +1 -1
- package/dist/alter-connect.esm.js +1 -1
- package/dist/alter-connect.esm.js.map +1 -1
- package/dist/alter-connect.umd.js +1 -1
- package/dist/alter-connect.umd.js.map +1 -1
- package/dist/types/core/alter-connect.d.ts +4 -3
- package/dist/types/core/alter-connect.d.ts.map +1 -1
- package/dist/types/core/config.d.ts +2 -2
- package/dist/types/core/config.d.ts.map +1 -1
- package/dist/types/core/events.d.ts +2 -3
- package/dist/types/core/events.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/oauth/handler.d.ts +3 -3
- package/dist/types/oauth/handler.d.ts.map +1 -1
- package/dist/types/state/manager.d.ts +1 -1
- package/dist/types/types/index.d.ts +16 -6
- package/dist/types/types/index.d.ts.map +1 -1
- package/dist/types/utils/mobile.d.ts +1 -1
- package/dist/types/utils/mobile.d.ts.map +1 -1
- package/package.json +8 -2
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { AlterConnectConfig, OpenOptions } from
|
|
1
|
+
import type { AlterConnectConfig, OpenOptions } from "../types";
|
|
2
|
+
import { type EventHandler } from "./events";
|
|
2
3
|
export declare class AlterConnect {
|
|
3
4
|
private config;
|
|
4
5
|
private eventEmitter;
|
|
@@ -13,8 +14,8 @@ export declare class AlterConnect {
|
|
|
13
14
|
open(options: OpenOptions): Promise<void>;
|
|
14
15
|
close(): void;
|
|
15
16
|
destroy(): void;
|
|
16
|
-
on(event: string, handler:
|
|
17
|
-
off(event: string, handler:
|
|
17
|
+
on(event: string, handler: EventHandler): () => void;
|
|
18
|
+
off(event: string, handler: EventHandler): void;
|
|
18
19
|
isOpen(): boolean;
|
|
19
20
|
getVersion(): string;
|
|
20
21
|
private cleanupHandler;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alter-connect.d.ts","sourceRoot":"","sources":["../../../src/core/alter-connect.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"alter-connect.d.ts","sourceRoot":"","sources":["../../../src/core/alter-connect.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,kBAAkB,EAClB,WAAW,EAIZ,MAAM,UAAU,CAAC;AAQlB,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAmB3D,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,gBAAgB,CAAyB;IAKjD,OAAO;IA2CP,OAAO,CAAC,mBAAmB;IA6B3B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,YAAY;IA4BlD,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAoF/C,KAAK,IAAI,IAAI;IA8Bb,OAAO,IAAI,IAAI;IA4Bf,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,MAAM,IAAI;IAepD,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAe/C,MAAM,IAAI,OAAO;IAejB,UAAU,IAAI,MAAM;IASpB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,qBAAqB;IAkD7B,OAAO,CAAC,WAAW;CAapB"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { AlterConnectConfig } from
|
|
1
|
+
import type { AlterConnectConfig } from "../types";
|
|
2
2
|
export declare const DEFAULT_ALTER_HOST = "https://backend.alterauth.com";
|
|
3
3
|
interface FullConfig {
|
|
4
4
|
debug: boolean;
|
|
5
5
|
}
|
|
6
6
|
export declare function validateConfig(config: AlterConnectConfig): void;
|
|
7
7
|
export declare function mergeConfig(config: AlterConnectConfig): FullConfig;
|
|
8
|
-
export declare function debugLog(config: FullConfig, ...args:
|
|
8
|
+
export declare function debugLog(config: FullConfig, ...args: unknown[]): void;
|
|
9
9
|
export type { FullConfig };
|
|
10
10
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/core/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAUnD,eAAO,MAAM,kBAAkB,kCAAkC,CAAC;AAKlE,UAAU,UAAU;IAClB,KAAK,EAAE,OAAO,CAAC;CAChB;AAcD,wBAAgB,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/core/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAUnD,eAAO,MAAM,kBAAkB,kCAAkC,CAAC;AAKlE,UAAU,UAAU;IAClB,KAAK,EAAE,OAAO,CAAC;CAChB;AAcD,wBAAgB,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAqF/D;AAKD,wBAAgB,WAAW,CAAC,MAAM,EAAE,kBAAkB,GAAG,UAAU,CAIlE;AAKD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAOrE;AAKD,YAAY,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
type EventHandler = (...args:
|
|
1
|
+
export type EventHandler = (...args: never[]) => void;
|
|
2
2
|
export declare class EventEmitter {
|
|
3
3
|
private events;
|
|
4
4
|
constructor();
|
|
5
5
|
on(event: string, handler: EventHandler): () => void;
|
|
6
6
|
off(event: string, handler: EventHandler): void;
|
|
7
|
-
emit(event: string, ...args:
|
|
7
|
+
emit(event: string, ...args: unknown[]): void;
|
|
8
8
|
removeAllListeners(event?: string): void;
|
|
9
9
|
}
|
|
10
|
-
export {};
|
|
11
10
|
//# sourceMappingURL=events.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/core/events.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/core/events.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;AAKtD,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAiC;;IAU/C,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,MAAM,IAAI;IAcpD,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAU/C,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAmB7C,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;CAOzC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { AlterConnect as default } from
|
|
2
|
-
export type { AlterConnectConfig, OpenOptions, Provider, Grant, AlterError, } from
|
|
1
|
+
export { AlterConnect as default } from "./core/alter-connect";
|
|
2
|
+
export type { AlterConnectConfig, OpenOptions, Provider, Grant, AlterError, ConnectCompletion, ConnectFailedGrant, } from "./types";
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,YAAY,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/D,YAAY,EACV,kBAAkB,EAClB,WAAW,EACX,QAAQ,EACR,KAAK,EACL,UAAU,EACV,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,SAAS,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { Grant, AlterError } from
|
|
1
|
+
import type { Grant, AlterError, ConnectCompletion } from "../types";
|
|
2
2
|
interface OAuthHandlerOptions {
|
|
3
3
|
baseURL: string;
|
|
4
|
-
onSuccess: (grants: Grant[]) => void;
|
|
4
|
+
onSuccess: (grants: Grant[], completion: ConnectCompletion) => void;
|
|
5
5
|
onError: (error: AlterError) => void;
|
|
6
6
|
onCancel: () => void;
|
|
7
7
|
popupWidth?: number;
|
|
@@ -19,7 +19,7 @@ export declare class OAuthHandler {
|
|
|
19
19
|
constructor(options: OAuthHandlerOptions);
|
|
20
20
|
startOAuth(url: string): void;
|
|
21
21
|
private startRedirectFlow;
|
|
22
|
-
static checkOAuthReturn(onSuccess: (grants: Grant[]) => void, onError: (error: AlterError) => void): boolean;
|
|
22
|
+
static checkOAuthReturn(onSuccess: (grants: Grant[], completion: ConnectCompletion) => void, onError: (error: AlterError) => void): boolean;
|
|
23
23
|
openPopup(url: string): void;
|
|
24
24
|
close(): void;
|
|
25
25
|
private startPolling;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/oauth/handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/oauth/handler.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,KAAK,EACL,UAAU,EACV,iBAAiB,EAElB,MAAM,UAAU,CAAC;AAIlB,UAAU,mBAAmB;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACpE,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACrC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAyHD,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,eAAe,CAAgD;IACvE,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,OAAO,CAAkB;gBAErB,OAAO,EAAE,mBAAmB;IAyBxC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAgC7B,OAAO,CAAC,iBAAiB;IA+BzB,MAAM,CAAC,gBAAgB,CACrB,SAAS,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,iBAAiB,KAAK,IAAI,EACnE,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GACnC,OAAO;IA8EV,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAuC5B,KAAK,IAAI,IAAI;IAyBb,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,oBAAoB;IA2F5B,OAAO,CAAC,GAAG;CAQZ"}
|
|
@@ -11,19 +11,29 @@ export interface Grant {
|
|
|
11
11
|
provider_name: string;
|
|
12
12
|
account_identifier: string;
|
|
13
13
|
timestamp: string;
|
|
14
|
-
operation:
|
|
14
|
+
operation: "creation" | "reauth";
|
|
15
15
|
scopes: string[];
|
|
16
|
-
status:
|
|
16
|
+
status: "active" | "pending" | "error";
|
|
17
17
|
metadata?: {
|
|
18
18
|
account_display_name?: string;
|
|
19
19
|
account_email?: string;
|
|
20
|
-
[key: string]:
|
|
20
|
+
[key: string]: unknown;
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
23
|
export interface AlterError {
|
|
24
24
|
code: string;
|
|
25
25
|
message: string;
|
|
26
|
-
details?: Record<string,
|
|
26
|
+
details?: Record<string, unknown>;
|
|
27
|
+
failedGrants?: ConnectFailedGrant[];
|
|
28
|
+
}
|
|
29
|
+
export interface ConnectFailedGrant {
|
|
30
|
+
providerId: string;
|
|
31
|
+
reason: string;
|
|
32
|
+
message: string;
|
|
33
|
+
}
|
|
34
|
+
export interface ConnectCompletion {
|
|
35
|
+
grants: Grant[];
|
|
36
|
+
failedGrants: ConnectFailedGrant[];
|
|
27
37
|
}
|
|
28
38
|
export interface AlterConnectConfig {
|
|
29
39
|
debug?: boolean;
|
|
@@ -31,9 +41,9 @@ export interface AlterConnectConfig {
|
|
|
31
41
|
}
|
|
32
42
|
export interface OpenOptions {
|
|
33
43
|
token: string;
|
|
34
|
-
onSuccess: (grants: Grant[]) => void;
|
|
44
|
+
onSuccess: (grants: Grant[], completion: ConnectCompletion) => void;
|
|
35
45
|
onExit?: () => void;
|
|
36
46
|
onError?: (error: AlterError) => void;
|
|
37
|
-
onEvent?: (eventName: string, metadata:
|
|
47
|
+
onEvent?: (eventName: string, metadata: Record<string, unknown>) => void;
|
|
38
48
|
}
|
|
39
49
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAKD,MAAM,WAAW,KAAK;IAKpB,QAAQ,EAAE,MAAM,CAAC;IAMjB,QAAQ,EAAE,MAAM,CAAC;IAMjB,aAAa,EAAE,MAAM,CAAC;IAMtB,kBAAkB,EAAE,MAAM,CAAC;IAK3B,SAAS,EAAE,MAAM,CAAC;IAOlB,SAAS,EAAE,UAAU,GAAG,QAAQ,CAAC;IAMjC,MAAM,EAAE,MAAM,EAAE,CAAC;IAKjB,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;IAKvC,QAAQ,CAAC,EAAE;QACT,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,CAAC,GAAG,EAAE,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAKD,MAAM,WAAW,KAAK;IAKpB,QAAQ,EAAE,MAAM,CAAC;IAMjB,QAAQ,EAAE,MAAM,CAAC;IAMjB,aAAa,EAAE,MAAM,CAAC;IAMtB,kBAAkB,EAAE,MAAM,CAAC;IAK3B,SAAS,EAAE,MAAM,CAAC;IAOlB,SAAS,EAAE,UAAU,GAAG,QAAQ,CAAC;IAMjC,MAAM,EAAE,MAAM,EAAE,CAAC;IAKjB,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;IAKvC,QAAQ,CAAC,EAAE;QACT,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH;AAKD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAKlC,YAAY,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACrC;AAMD,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAQD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,YAAY,EAAE,kBAAkB,EAAE,CAAC;CACpC;AAKD,MAAM,WAAW,kBAAkB;IAIjC,KAAK,CAAC,EAAE,OAAO,CAAC;IAWhB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAKD,MAAM,WAAW,WAAW;IAK1B,KAAK,EAAE,MAAM,CAAC;IAOd,SAAS,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAKpE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAOpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAMtC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAC1E"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare function isMobileDevice(): boolean;
|
|
2
2
|
export declare function isPhoneDevice(): boolean;
|
|
3
3
|
export declare function isTabletDevice(): boolean;
|
|
4
|
-
export declare function getDeviceType():
|
|
4
|
+
export declare function getDeviceType(): "desktop" | "tablet" | "phone";
|
|
5
5
|
export declare function shouldUseRedirectFlow(): boolean;
|
|
6
6
|
//# sourceMappingURL=mobile.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mobile.d.ts","sourceRoot":"","sources":["../../../src/utils/mobile.ts"],"names":[],"mappings":"AAOA,wBAAgB,cAAc,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"mobile.d.ts","sourceRoot":"","sources":["../../../src/utils/mobile.ts"],"names":[],"mappings":"AAOA,wBAAgB,cAAc,IAAI,OAAO,CA0BxC;AAKD,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAKD,wBAAgB,cAAc,IAAI,OAAO,CAIxC;AAKD,wBAAgB,aAAa,IAAI,SAAS,GAAG,QAAQ,GAAG,OAAO,CAI9D;AAUD,wBAAgB,qBAAqB,IAAI,OAAO,CAa/C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alter-ai/connect",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"description": "JavaScript SDK for Alter Connect - Secure OAuth integration UI",
|
|
5
5
|
"main": "dist/alter-connect.cjs.js",
|
|
6
6
|
"module": "dist/alter-connect.esm.js",
|
|
@@ -51,6 +51,7 @@
|
|
|
51
51
|
"node": ">=20.19.0"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
+
"@eslint/js": "^9.39.4",
|
|
54
55
|
"@rollup/plugin-commonjs": "^28.0.0",
|
|
55
56
|
"@rollup/plugin-node-resolve": "^15.2.3",
|
|
56
57
|
"@rollup/plugin-terser": "^1.0.0",
|
|
@@ -58,12 +59,17 @@
|
|
|
58
59
|
"@typescript-eslint/eslint-plugin": "^8.53.0",
|
|
59
60
|
"@typescript-eslint/parser": "^8.53.0",
|
|
60
61
|
"@vitest/ui": "^4.1.8",
|
|
61
|
-
"eslint": "^9.
|
|
62
|
+
"eslint": "^9.39.4",
|
|
63
|
+
"eslint-plugin-no-unsanitized": "^4.1.5",
|
|
64
|
+
"eslint-plugin-security": "^4.0.1",
|
|
62
65
|
"jsdom": "^29.1.1",
|
|
63
66
|
"rollup": "^4.60.4",
|
|
64
67
|
"tslib": "^2.6.2",
|
|
65
68
|
"typescript": "^5.3.3",
|
|
66
69
|
"typescript-eslint": "^8.53.0",
|
|
67
70
|
"vitest": "^4.1.8"
|
|
71
|
+
},
|
|
72
|
+
"dependencies": {
|
|
73
|
+
"zod": "^4.4.3"
|
|
68
74
|
}
|
|
69
75
|
}
|