@modularizer/plat 0.9.0 → 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/dist/client/css-transport-plugin.d.ts +2 -1
- package/dist/client/css-transport-plugin.d.ts.map +1 -1
- package/dist/client/css-transport-plugin.js +2 -2
- package/dist/client/css-transport-plugin.js.map +1 -1
- package/dist/client-entry.d.ts +2 -0
- package/dist/client-entry.d.ts.map +1 -1
- package/dist/client-entry.js +2 -0
- package/dist/client-entry.js.map +1 -1
- package/dist/client-server-entry.d.ts +1 -0
- package/dist/client-server-entry.d.ts.map +1 -1
- package/dist/client-server-entry.js +1 -0
- package/dist/client-server-entry.js.map +1 -1
- package/dist/client-side-python/runtime.d.ts.map +1 -1
- package/dist/client-side-python/runtime.js +8 -0
- package/dist/client-side-python/runtime.js.map +1 -1
- package/dist/client-side-server/channel.d.ts.map +1 -1
- package/dist/client-side-server/channel.js +93 -29
- package/dist/client-side-server/channel.js.map +1 -1
- package/dist/client-side-server/identity.d.ts +80 -17
- package/dist/client-side-server/identity.d.ts.map +1 -1
- package/dist/client-side-server/identity.js +212 -31
- package/dist/client-side-server/identity.js.map +1 -1
- package/dist/client-side-server/mqtt-webrtc.d.ts +43 -6
- package/dist/client-side-server/mqtt-webrtc.d.ts.map +1 -1
- package/dist/client-side-server/mqtt-webrtc.js +853 -68
- package/dist/client-side-server/mqtt-webrtc.js.map +1 -1
- package/dist/client-side-server/plat-fetch.d.ts.map +1 -1
- package/dist/client-side-server/plat-fetch.js +10 -0
- package/dist/client-side-server/plat-fetch.js.map +1 -1
- package/dist/client-side-server/plat-service-worker.js +1 -36
- package/dist/client-side-server/plat-service-worker.js.map +1 -1
- package/dist/client-side-server/protocol.d.ts +68 -3
- package/dist/client-side-server/protocol.d.ts.map +1 -1
- package/dist/client-side-server/protocol.js +110 -0
- package/dist/client-side-server/protocol.js.map +1 -1
- package/dist/client-side-server/runtime.d.ts.map +1 -1
- package/dist/client-side-server/runtime.js +7 -0
- package/dist/client-side-server/runtime.js.map +1 -1
- package/dist/client-side-server/secure-crypto.d.ts +35 -0
- package/dist/client-side-server/secure-crypto.d.ts.map +1 -0
- package/dist/client-side-server/secure-crypto.js +171 -0
- package/dist/client-side-server/secure-crypto.js.map +1 -0
- package/dist/client-side-server/server.d.ts.map +1 -1
- package/dist/client-side-server/server.js +57 -5
- package/dist/client-side-server/server.js.map +1 -1
- package/dist/client-side-server/signaling.d.ts +5 -0
- package/dist/client-side-server/signaling.d.ts.map +1 -1
- package/dist/client-side-server/signaling.js +12 -0
- package/dist/client-side-server/signaling.js.map +1 -1
- package/dist/server/auth/jwt.d.ts.map +1 -1
- package/dist/server/auth/jwt.js +1 -2
- package/dist/server/auth/jwt.js.map +1 -1
- package/dist/server/authority-server.d.ts +4 -4
- package/dist/server/authority-server.d.ts.map +1 -1
- package/dist/server/authority-server.js +23 -21
- package/dist/server/authority-server.js.map +1 -1
- package/dist/server/index.d.ts +1 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +1 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/rpc-protocol-plugin.d.ts.map +1 -1
- package/dist/server/rpc-protocol-plugin.js +11 -1
- package/dist/server/rpc-protocol-plugin.js.map +1 -1
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +4 -2
- package/dist/server/server.js.map +1 -1
- package/dist/server/websocket-plugin.d.ts +14 -0
- package/dist/server/websocket-plugin.d.ts.map +1 -0
- package/dist/server/websocket-plugin.js +93 -0
- package/dist/server/websocket-plugin.js.map +1 -0
- package/package.json +1 -1
|
@@ -17,6 +17,24 @@ export interface ClientSideServerPublicIdentity {
|
|
|
17
17
|
fingerprint: string;
|
|
18
18
|
createdAt?: number;
|
|
19
19
|
}
|
|
20
|
+
export interface ClientSideServerEncryptionKeyPair {
|
|
21
|
+
algorithm: 'X25519';
|
|
22
|
+
publicKeyJwk: JsonWebKey;
|
|
23
|
+
privateKeyJwk: JsonWebKey;
|
|
24
|
+
keyId: string;
|
|
25
|
+
createdAt: number;
|
|
26
|
+
}
|
|
27
|
+
export interface ClientSideServerEncryptionPublicIdentity {
|
|
28
|
+
algorithm: 'X25519';
|
|
29
|
+
publicKeyJwk: JsonWebKey;
|
|
30
|
+
keyId: string;
|
|
31
|
+
fingerprint: string;
|
|
32
|
+
createdAt?: number;
|
|
33
|
+
}
|
|
34
|
+
export interface ClientSideServerResolvedIdentityBundle {
|
|
35
|
+
signing: ClientSideServerPublicIdentity;
|
|
36
|
+
encryption: ClientSideServerEncryptionPublicIdentity;
|
|
37
|
+
}
|
|
20
38
|
export interface ClientSideServerTrustedServerRecord {
|
|
21
39
|
serverName: string;
|
|
22
40
|
publicKeyJwk: JsonWebKey;
|
|
@@ -25,6 +43,18 @@ export interface ClientSideServerTrustedServerRecord {
|
|
|
25
43
|
trustedAt: number;
|
|
26
44
|
source: 'first-use' | 'authority' | 'manual';
|
|
27
45
|
}
|
|
46
|
+
export interface ClientSideServerTrustedServerRecordV2 {
|
|
47
|
+
serverName: string;
|
|
48
|
+
signingPublicKeyJwk: JsonWebKey;
|
|
49
|
+
encryptionPublicKeyJwk: JsonWebKey;
|
|
50
|
+
signingKeyId?: string;
|
|
51
|
+
encryptionKeyId?: string;
|
|
52
|
+
signingFingerprint: string;
|
|
53
|
+
encryptionFingerprint: string;
|
|
54
|
+
trustedAt: number;
|
|
55
|
+
source: 'first-use' | 'authority' | 'manual';
|
|
56
|
+
}
|
|
57
|
+
export type ClientSideServerAnyTrustedServerRecord = ClientSideServerTrustedServerRecord | ClientSideServerTrustedServerRecordV2;
|
|
28
58
|
export interface ClientSideServerSignedAuthorityRecord {
|
|
29
59
|
protocol: 'plat-css-authority-v1';
|
|
30
60
|
serverName: string;
|
|
@@ -34,6 +64,18 @@ export interface ClientSideServerSignedAuthorityRecord {
|
|
|
34
64
|
issuedAt: number;
|
|
35
65
|
signature: string;
|
|
36
66
|
}
|
|
67
|
+
export interface ClientSideServerSignedAuthorityRecordV2 {
|
|
68
|
+
protocol: 'plat-css-authority-v2';
|
|
69
|
+
serverName: string;
|
|
70
|
+
signingPublicKeyJwk: JsonWebKey;
|
|
71
|
+
encryptionPublicKeyJwk: JsonWebKey;
|
|
72
|
+
signingKeyId?: string;
|
|
73
|
+
encryptionKeyId?: string;
|
|
74
|
+
authorityName?: string;
|
|
75
|
+
issuedAt: number;
|
|
76
|
+
signature: string;
|
|
77
|
+
}
|
|
78
|
+
export type ClientSideServerAnyAuthorityRecord = ClientSideServerSignedAuthorityRecord | ClientSideServerSignedAuthorityRecordV2;
|
|
37
79
|
export interface GenerateClientSideServerKeyPairOptions {
|
|
38
80
|
keyId?: string;
|
|
39
81
|
}
|
|
@@ -57,12 +99,12 @@ export interface ClientSideServerAuthorityResolverOptions extends ClientSideServ
|
|
|
57
99
|
export interface ClientSideServerAuthorityServer {
|
|
58
100
|
authorityName?: string;
|
|
59
101
|
publicKeyJwk: JsonWebKey;
|
|
60
|
-
resolve(serverName: string): Promise<
|
|
102
|
+
resolve(serverName: string): Promise<ClientSideServerAnyAuthorityRecord | null>;
|
|
61
103
|
}
|
|
62
104
|
export interface StaticClientSideServerAuthorityRegistryOptions {
|
|
63
105
|
authorityKeyPair: ClientSideServerExportedKeyPair;
|
|
64
106
|
authorityName?: string;
|
|
65
|
-
records?: Record<string, JsonWebKey | ClientSideServerPublicIdentity | ClientSideServerTrustedServerRecord>;
|
|
107
|
+
records?: Record<string, JsonWebKey | ClientSideServerPublicIdentity | ClientSideServerTrustedServerRecord | ClientSideServerTrustedServerRecordV2 | ClientSideServerResolvedIdentityBundle>;
|
|
66
108
|
}
|
|
67
109
|
export interface FetchClientSideServerAuthorityServerOptions {
|
|
68
110
|
baseUrl: string;
|
|
@@ -72,13 +114,16 @@ export interface FetchClientSideServerAuthorityServerOptions {
|
|
|
72
114
|
fetchImpl?: typeof fetch;
|
|
73
115
|
}
|
|
74
116
|
export declare function createInMemoryClientSideServerStorage(initial?: Record<string, string>): ClientSideServerStorageLike;
|
|
75
|
-
export declare function saveTrustedClientSideServerRecordToMap(knownHosts: Record<string,
|
|
76
|
-
export declare function loadTrustedClientSideServerRecordFromMap(knownHosts: Record<string,
|
|
77
|
-
export declare function loadAllTrustedClientSideServerRecordsForName(knownHosts: Record<string,
|
|
78
|
-
export declare function isTrustedPublicKeyForServer(knownHosts: Record<string,
|
|
117
|
+
export declare function saveTrustedClientSideServerRecordToMap(knownHosts: Record<string, ClientSideServerAnyTrustedServerRecord | ClientSideServerAnyTrustedServerRecord[]>, record: ClientSideServerAnyTrustedServerRecord): void;
|
|
118
|
+
export declare function loadTrustedClientSideServerRecordFromMap(knownHosts: Record<string, ClientSideServerAnyTrustedServerRecord | ClientSideServerAnyTrustedServerRecord[]> | undefined, serverName: string): ClientSideServerAnyTrustedServerRecord | null;
|
|
119
|
+
export declare function loadAllTrustedClientSideServerRecordsForName(knownHosts: Record<string, ClientSideServerAnyTrustedServerRecord | ClientSideServerAnyTrustedServerRecord[]> | undefined, serverName: string): ClientSideServerAnyTrustedServerRecord[];
|
|
120
|
+
export declare function isTrustedPublicKeyForServer(knownHosts: Record<string, ClientSideServerAnyTrustedServerRecord | ClientSideServerAnyTrustedServerRecord[]> | undefined, serverName: string, publicKeyJwk: JsonWebKey): boolean;
|
|
79
121
|
export declare function generateClientSideServerIdentityKeyPair(options?: GenerateClientSideServerKeyPairOptions): Promise<ClientSideServerExportedKeyPair>;
|
|
80
122
|
export declare function createClientSideServerKeyId(publicKeyJwk: JsonWebKey): Promise<string>;
|
|
123
|
+
export declare function generateClientSideServerEncryptionKeyPair(options?: GenerateClientSideServerKeyPairOptions): Promise<ClientSideServerEncryptionKeyPair>;
|
|
124
|
+
export declare function createClientSideServerEncryptionKeyId(publicKeyJwk: JsonWebKey): Promise<string>;
|
|
81
125
|
export declare function getClientSideServerPublicKeyFingerprint(publicKeyJwk: JsonWebKey): Promise<string>;
|
|
126
|
+
export declare function getClientSideServerEncryptionPublicKeyFingerprint(publicKeyJwk: JsonWebKey): Promise<string>;
|
|
82
127
|
export declare function signClientSideServerChallenge(keyPair: ClientSideServerExportedKeyPair, challenge: string): Promise<string>;
|
|
83
128
|
export declare function verifyClientSideServerChallenge(publicKeyJwk: JsonWebKey, challenge: string, signature: string): Promise<boolean>;
|
|
84
129
|
export declare function buildClientSideServerIdentityChallenge(input: {
|
|
@@ -94,25 +139,43 @@ export declare function createSignedClientSideServerAuthorityRecord(authorityKey
|
|
|
94
139
|
issuedAt?: number;
|
|
95
140
|
}): Promise<ClientSideServerSignedAuthorityRecord>;
|
|
96
141
|
export declare function verifySignedClientSideServerAuthorityRecord(record: ClientSideServerSignedAuthorityRecord, authorityPublicKeyJwk: JsonWebKey): Promise<boolean>;
|
|
142
|
+
export declare function createSignedClientSideServerAuthorityRecordV2(authorityKeyPair: ClientSideServerExportedKeyPair, input: {
|
|
143
|
+
serverName: string;
|
|
144
|
+
signingPublicKeyJwk: JsonWebKey;
|
|
145
|
+
encryptionPublicKeyJwk: JsonWebKey;
|
|
146
|
+
signingKeyId?: string;
|
|
147
|
+
encryptionKeyId?: string;
|
|
148
|
+
authorityName?: string;
|
|
149
|
+
issuedAt?: number;
|
|
150
|
+
}): Promise<ClientSideServerSignedAuthorityRecordV2>;
|
|
151
|
+
export declare function verifySignedClientSideServerAuthorityRecordV2(record: ClientSideServerSignedAuthorityRecordV2, authorityPublicKeyJwk: JsonWebKey): Promise<boolean>;
|
|
152
|
+
export declare function verifyAnySignedClientSideServerAuthorityRecord(record: ClientSideServerAnyAuthorityRecord, authorityPublicKeyJwk: JsonWebKey): Promise<boolean>;
|
|
97
153
|
export declare function toClientSideServerPublicIdentity(keyPair: ClientSideServerExportedKeyPair): Promise<ClientSideServerPublicIdentity>;
|
|
154
|
+
export declare function toClientSideServerEncryptionPublicIdentity(keyPair: ClientSideServerEncryptionKeyPair): Promise<ClientSideServerEncryptionPublicIdentity>;
|
|
98
155
|
export declare function saveClientSideServerIdentityKeyPair(keyPair: ClientSideServerExportedKeyPair, options?: ClientSideServerKeyPairStoreOptions): void;
|
|
99
156
|
export declare function loadClientSideServerIdentityKeyPair(options?: ClientSideServerKeyPairStoreOptions): ClientSideServerExportedKeyPair | null;
|
|
100
157
|
export declare function getOrCreateClientSideServerIdentityKeyPair(options?: ClientSideServerKeyPairStoreOptions & GenerateClientSideServerKeyPairOptions): Promise<ClientSideServerExportedKeyPair>;
|
|
101
|
-
export declare function
|
|
102
|
-
export declare function
|
|
103
|
-
export declare function
|
|
104
|
-
export declare function
|
|
105
|
-
export declare function
|
|
106
|
-
export declare function
|
|
158
|
+
export declare function saveClientSideServerEncryptionKeyPair(keyPair: ClientSideServerEncryptionKeyPair, options?: ClientSideServerKeyPairStoreOptions): void;
|
|
159
|
+
export declare function loadClientSideServerEncryptionKeyPair(options?: ClientSideServerKeyPairStoreOptions): ClientSideServerEncryptionKeyPair | null;
|
|
160
|
+
export declare function getOrCreateClientSideServerEncryptionKeyPair(options?: ClientSideServerKeyPairStoreOptions & GenerateClientSideServerKeyPairOptions): Promise<ClientSideServerEncryptionKeyPair>;
|
|
161
|
+
export declare function saveTrustedClientSideServerRecord(record: ClientSideServerAnyTrustedServerRecord, options?: ClientSideServerKnownHostsStoreOptions): void;
|
|
162
|
+
export declare function loadTrustedClientSideServerRecord(serverName: string, options?: ClientSideServerKnownHostsStoreOptions): ClientSideServerAnyTrustedServerRecord | null;
|
|
163
|
+
export declare function loadAllTrustedClientSideServerRecords(options?: ClientSideServerKnownHostsStoreOptions): Record<string, ClientSideServerAnyTrustedServerRecord>;
|
|
164
|
+
export declare function saveClientSideServerAuthorityRecord(record: ClientSideServerAnyAuthorityRecord, options?: ClientSideServerAuthorityStoreOptions): void;
|
|
165
|
+
export declare function loadClientSideServerAuthorityRecord(serverName: string, options?: ClientSideServerAuthorityStoreOptions): ClientSideServerAnyAuthorityRecord | null;
|
|
166
|
+
export declare function loadAllClientSideServerAuthorityRecords(options?: ClientSideServerAuthorityStoreOptions): Record<string, ClientSideServerAnyAuthorityRecord>;
|
|
107
167
|
export declare function trustClientSideServerOnFirstUse(serverName: string, identity: ClientSideServerPublicIdentity, options?: ClientSideServerKnownHostsStoreOptions): Promise<ClientSideServerTrustedServerRecord>;
|
|
108
|
-
export declare function trustClientSideServerFromAuthorityRecord(record:
|
|
109
|
-
export declare function createClientSideServerAuthorityResolver(options: ClientSideServerAuthorityResolverOptions): (serverName: string) => Promise<
|
|
168
|
+
export declare function trustClientSideServerFromAuthorityRecord(record: ClientSideServerAnyAuthorityRecord, authorityPublicKeyJwk: JsonWebKey, options?: ClientSideServerKnownHostsStoreOptions): Promise<ClientSideServerAnyTrustedServerRecord>;
|
|
169
|
+
export declare function createClientSideServerAuthorityResolver(options: ClientSideServerAuthorityResolverOptions): (serverName: string) => Promise<ClientSideServerAnyTrustedServerRecord | null>;
|
|
110
170
|
export declare function createStaticClientSideServerAuthorityRegistry(options: StaticClientSideServerAuthorityRegistryOptions): {
|
|
111
|
-
register(serverName: string, value: JsonWebKey | ClientSideServerPublicIdentity | ClientSideServerTrustedServerRecord): void;
|
|
112
|
-
resolve(serverName: string): Promise<
|
|
171
|
+
register(serverName: string, value: JsonWebKey | ClientSideServerPublicIdentity | ClientSideServerTrustedServerRecord | ClientSideServerTrustedServerRecordV2 | ClientSideServerResolvedIdentityBundle): void;
|
|
172
|
+
resolve(serverName: string): Promise<ClientSideServerAnyAuthorityRecord | null>;
|
|
113
173
|
createServer(): ClientSideServerAuthorityServer;
|
|
114
174
|
};
|
|
115
175
|
export declare function createFetchClientSideServerAuthorityServer(options: FetchClientSideServerAuthorityServerOptions): ClientSideServerAuthorityServer;
|
|
116
|
-
export declare function resolveTrustedClientSideServerFromAuthorities(serverName: string, authorityServers: ClientSideServerAuthorityServer[], options?: ClientSideServerKnownHostsStoreOptions): Promise<
|
|
176
|
+
export declare function resolveTrustedClientSideServerFromAuthorities(serverName: string, authorityServers: ClientSideServerAuthorityServer[], options?: ClientSideServerKnownHostsStoreOptions): Promise<ClientSideServerAnyTrustedServerRecord | null>;
|
|
117
177
|
export declare function clientSideServerPublicKeysEqual(a: JsonWebKey, b: JsonWebKey): boolean;
|
|
178
|
+
export declare function isClientSideServerTrustedServerRecordV2(value: ClientSideServerAnyTrustedServerRecord | unknown): value is ClientSideServerTrustedServerRecordV2;
|
|
179
|
+
export declare function isClientSideServerSignedAuthorityRecordV2(value: ClientSideServerAnyAuthorityRecord | unknown): value is ClientSideServerSignedAuthorityRecordV2;
|
|
180
|
+
export declare function trustedClientSideServerRecordToResolvedIdentityBundle(record: ClientSideServerAnyTrustedServerRecord): Promise<ClientSideServerResolvedIdentityBundle | null>;
|
|
118
181
|
//# sourceMappingURL=identity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/client-side-server/identity.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,2BAA2B;IAC1C,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IACnC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACzC,UAAU,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAC/B;AAED,MAAM,WAAW,+BAA+B;IAC9C,SAAS,EAAE,YAAY,CAAA;IACvB,YAAY,EAAE,UAAU,CAAA;IACxB,aAAa,EAAE,UAAU,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,YAAY,CAAA;IACvB,YAAY,EAAE,UAAU,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,mCAAmC;IAClD,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,UAAU,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAA;CAC7C;AAED,MAAM,WAAW,qCAAqC;IACpD,QAAQ,EAAE,uBAAuB,CAAA;IACjC,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,UAAU,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,sCAAsC;IACrD,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,sCAAsC;IACrD,OAAO,CAAC,EAAE,2BAA2B,CAAA;IACrC,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,mCAAmC;IAClD,OAAO,CAAC,EAAE,2BAA2B,CAAA;IACrC,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,qCAAqC;IACpD,OAAO,CAAC,EAAE,2BAA2B,CAAA;IACrC,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,wCAAyC,SAAQ,qCAAqC;IACrG,qBAAqB,EAAE,UAAU,CAAA;IACjC,iBAAiB,CAAC,EAAE,2BAA2B,CAAA;IAC/C,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAC9B;AAED,MAAM,WAAW,+BAA+B;IAC9C,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,UAAU,CAAA;IACxB,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/client-side-server/identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,7 @@ export function saveTrustedClientSideServerRecordToMap(knownHosts, record) {
|
|
|
19
19
|
return;
|
|
20
20
|
}
|
|
21
21
|
const list = Array.isArray(existing) ? existing : [existing];
|
|
22
|
-
const idx = list.findIndex((r) => clientSideServerPublicKeysEqual(r
|
|
22
|
+
const idx = list.findIndex((r) => clientSideServerPublicKeysEqual(getSigningPublicKeyJwk(r), getSigningPublicKeyJwk(record)));
|
|
23
23
|
if (idx >= 0) {
|
|
24
24
|
list[idx] = record;
|
|
25
25
|
}
|
|
@@ -46,7 +46,7 @@ export function loadAllTrustedClientSideServerRecordsForName(knownHosts, serverN
|
|
|
46
46
|
}
|
|
47
47
|
export function isTrustedPublicKeyForServer(knownHosts, serverName, publicKeyJwk) {
|
|
48
48
|
const records = loadAllTrustedClientSideServerRecordsForName(knownHosts, serverName);
|
|
49
|
-
return records.some((r) => clientSideServerPublicKeysEqual(r
|
|
49
|
+
return records.some((r) => clientSideServerPublicKeysEqual(getSigningPublicKeyJwk(r), publicKeyJwk));
|
|
50
50
|
}
|
|
51
51
|
export async function generateClientSideServerIdentityKeyPair(options = {}) {
|
|
52
52
|
const subtle = await resolveSubtle();
|
|
@@ -68,11 +68,35 @@ export async function createClientSideServerKeyId(publicKeyJwk) {
|
|
|
68
68
|
const fingerprint = await getClientSideServerPublicKeyFingerprint(publicKeyJwk);
|
|
69
69
|
return `cssk-${fingerprint.slice(0, 16)}`;
|
|
70
70
|
}
|
|
71
|
+
export async function generateClientSideServerEncryptionKeyPair(options = {}) {
|
|
72
|
+
const subtle = await resolveSubtle();
|
|
73
|
+
const keyPair = await subtle.generateKey({
|
|
74
|
+
name: 'X25519',
|
|
75
|
+
}, true, ['deriveKey', 'deriveBits']);
|
|
76
|
+
const publicKeyJwk = await subtle.exportKey('jwk', keyPair.publicKey);
|
|
77
|
+
const privateKeyJwk = await subtle.exportKey('jwk', keyPair.privateKey);
|
|
78
|
+
return {
|
|
79
|
+
algorithm: 'X25519',
|
|
80
|
+
publicKeyJwk,
|
|
81
|
+
privateKeyJwk,
|
|
82
|
+
keyId: options.keyId ?? await createClientSideServerEncryptionKeyId(publicKeyJwk),
|
|
83
|
+
createdAt: Date.now(),
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
export async function createClientSideServerEncryptionKeyId(publicKeyJwk) {
|
|
87
|
+
const fingerprint = await getClientSideServerEncryptionPublicKeyFingerprint(publicKeyJwk);
|
|
88
|
+
return `csse-${fingerprint.slice(0, 16)}`;
|
|
89
|
+
}
|
|
71
90
|
export async function getClientSideServerPublicKeyFingerprint(publicKeyJwk) {
|
|
72
91
|
const subtle = await resolveSubtle();
|
|
73
92
|
const digest = await subtle.digest('SHA-256', toBufferSource(encodeUtf8(stableStringify(publicKeyJwk))));
|
|
74
93
|
return base64UrlEncode(new Uint8Array(digest));
|
|
75
94
|
}
|
|
95
|
+
export async function getClientSideServerEncryptionPublicKeyFingerprint(publicKeyJwk) {
|
|
96
|
+
const subtle = await resolveSubtle();
|
|
97
|
+
const digest = await subtle.digest('SHA-256', toBufferSource(encodeUtf8(stableStringify(publicKeyJwk))));
|
|
98
|
+
return base64UrlEncode(new Uint8Array(digest));
|
|
99
|
+
}
|
|
76
100
|
export async function signClientSideServerChallenge(keyPair, challenge) {
|
|
77
101
|
const subtle = await resolveSubtle();
|
|
78
102
|
const privateKey = await subtle.importKey('jwk', keyPair.privateKeyJwk, {
|
|
@@ -120,6 +144,34 @@ export async function verifySignedClientSideServerAuthorityRecord(record, author
|
|
|
120
144
|
return false;
|
|
121
145
|
return verifyClientSideServerChallenge(authorityPublicKeyJwk, stableStringify(payload), signature);
|
|
122
146
|
}
|
|
147
|
+
export async function createSignedClientSideServerAuthorityRecordV2(authorityKeyPair, input) {
|
|
148
|
+
const payload = {
|
|
149
|
+
protocol: 'plat-css-authority-v2',
|
|
150
|
+
serverName: input.serverName,
|
|
151
|
+
signingPublicKeyJwk: input.signingPublicKeyJwk,
|
|
152
|
+
encryptionPublicKeyJwk: input.encryptionPublicKeyJwk,
|
|
153
|
+
signingKeyId: input.signingKeyId,
|
|
154
|
+
encryptionKeyId: input.encryptionKeyId,
|
|
155
|
+
authorityName: input.authorityName,
|
|
156
|
+
issuedAt: input.issuedAt ?? Date.now(),
|
|
157
|
+
};
|
|
158
|
+
const signature = await signClientSideServerChallenge(authorityKeyPair, stableStringify(payload));
|
|
159
|
+
return {
|
|
160
|
+
...payload,
|
|
161
|
+
signature,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
export async function verifySignedClientSideServerAuthorityRecordV2(record, authorityPublicKeyJwk) {
|
|
165
|
+
const { signature, ...payload } = record;
|
|
166
|
+
if (payload.protocol !== 'plat-css-authority-v2')
|
|
167
|
+
return false;
|
|
168
|
+
return verifyClientSideServerChallenge(authorityPublicKeyJwk, stableStringify(payload), signature);
|
|
169
|
+
}
|
|
170
|
+
export async function verifyAnySignedClientSideServerAuthorityRecord(record, authorityPublicKeyJwk) {
|
|
171
|
+
return isClientSideServerSignedAuthorityRecordV2(record)
|
|
172
|
+
? verifySignedClientSideServerAuthorityRecordV2(record, authorityPublicKeyJwk)
|
|
173
|
+
: verifySignedClientSideServerAuthorityRecord(record, authorityPublicKeyJwk);
|
|
174
|
+
}
|
|
123
175
|
export async function toClientSideServerPublicIdentity(keyPair) {
|
|
124
176
|
return {
|
|
125
177
|
algorithm: keyPair.algorithm,
|
|
@@ -129,6 +181,15 @@ export async function toClientSideServerPublicIdentity(keyPair) {
|
|
|
129
181
|
fingerprint: await getClientSideServerPublicKeyFingerprint(keyPair.publicKeyJwk),
|
|
130
182
|
};
|
|
131
183
|
}
|
|
184
|
+
export async function toClientSideServerEncryptionPublicIdentity(keyPair) {
|
|
185
|
+
return {
|
|
186
|
+
algorithm: keyPair.algorithm,
|
|
187
|
+
publicKeyJwk: keyPair.publicKeyJwk,
|
|
188
|
+
keyId: keyPair.keyId,
|
|
189
|
+
createdAt: keyPair.createdAt,
|
|
190
|
+
fingerprint: await getClientSideServerEncryptionPublicKeyFingerprint(keyPair.publicKeyJwk),
|
|
191
|
+
};
|
|
192
|
+
}
|
|
132
193
|
export function saveClientSideServerIdentityKeyPair(keyPair, options = {}) {
|
|
133
194
|
const storage = resolveStorage(options.storage);
|
|
134
195
|
if (!storage)
|
|
@@ -155,6 +216,32 @@ export async function getOrCreateClientSideServerIdentityKeyPair(options = {}) {
|
|
|
155
216
|
}
|
|
156
217
|
return created;
|
|
157
218
|
}
|
|
219
|
+
export function saveClientSideServerEncryptionKeyPair(keyPair, options = {}) {
|
|
220
|
+
const storage = resolveStorage(options.storage);
|
|
221
|
+
if (!storage)
|
|
222
|
+
throw new Error('No storage available to save a client-side server encryption key pair');
|
|
223
|
+
storage.setItem(options.storageKey ?? 'plat-css:enc-keypair', JSON.stringify(keyPair));
|
|
224
|
+
}
|
|
225
|
+
export function loadClientSideServerEncryptionKeyPair(options = {}) {
|
|
226
|
+
const storage = resolveStorage(options.storage);
|
|
227
|
+
if (!storage)
|
|
228
|
+
return null;
|
|
229
|
+
const raw = storage.getItem(options.storageKey ?? 'plat-css:enc-keypair');
|
|
230
|
+
if (!raw)
|
|
231
|
+
return null;
|
|
232
|
+
return JSON.parse(raw);
|
|
233
|
+
}
|
|
234
|
+
export async function getOrCreateClientSideServerEncryptionKeyPair(options = {}) {
|
|
235
|
+
const existing = loadClientSideServerEncryptionKeyPair(options);
|
|
236
|
+
if (existing)
|
|
237
|
+
return existing;
|
|
238
|
+
const created = await generateClientSideServerEncryptionKeyPair(options);
|
|
239
|
+
const storage = resolveStorage(options.storage);
|
|
240
|
+
if (storage) {
|
|
241
|
+
storage.setItem(options.storageKey ?? 'plat-css:enc-keypair', JSON.stringify(created));
|
|
242
|
+
}
|
|
243
|
+
return created;
|
|
244
|
+
}
|
|
158
245
|
export function saveTrustedClientSideServerRecord(record, options = {}) {
|
|
159
246
|
const storage = resolveStorage(options.storage);
|
|
160
247
|
if (!storage)
|
|
@@ -210,18 +297,30 @@ export async function trustClientSideServerOnFirstUse(serverName, identity, opti
|
|
|
210
297
|
return record;
|
|
211
298
|
}
|
|
212
299
|
export async function trustClientSideServerFromAuthorityRecord(record, authorityPublicKeyJwk, options = {}) {
|
|
213
|
-
const valid = await
|
|
300
|
+
const valid = await verifyAnySignedClientSideServerAuthorityRecord(record, authorityPublicKeyJwk);
|
|
214
301
|
if (!valid) {
|
|
215
302
|
throw new Error(`Authority record for ${record.serverName} failed signature verification`);
|
|
216
303
|
}
|
|
217
|
-
const trusted =
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
304
|
+
const trusted = isClientSideServerSignedAuthorityRecordV2(record)
|
|
305
|
+
? {
|
|
306
|
+
serverName: record.serverName,
|
|
307
|
+
signingPublicKeyJwk: record.signingPublicKeyJwk,
|
|
308
|
+
encryptionPublicKeyJwk: record.encryptionPublicKeyJwk,
|
|
309
|
+
signingKeyId: record.signingKeyId,
|
|
310
|
+
encryptionKeyId: record.encryptionKeyId,
|
|
311
|
+
signingFingerprint: await getClientSideServerPublicKeyFingerprint(record.signingPublicKeyJwk),
|
|
312
|
+
encryptionFingerprint: await getClientSideServerEncryptionPublicKeyFingerprint(record.encryptionPublicKeyJwk),
|
|
313
|
+
trustedAt: Date.now(),
|
|
314
|
+
source: 'authority',
|
|
315
|
+
}
|
|
316
|
+
: {
|
|
317
|
+
serverName: record.serverName,
|
|
318
|
+
publicKeyJwk: record.publicKeyJwk,
|
|
319
|
+
keyId: record.keyId,
|
|
320
|
+
fingerprint: await getClientSideServerPublicKeyFingerprint(record.publicKeyJwk),
|
|
321
|
+
trustedAt: Date.now(),
|
|
322
|
+
source: 'authority',
|
|
323
|
+
};
|
|
225
324
|
saveTrustedClientSideServerRecord(trusted, options);
|
|
226
325
|
return trusted;
|
|
227
326
|
}
|
|
@@ -239,35 +338,55 @@ export function createClientSideServerAuthorityResolver(options) {
|
|
|
239
338
|
export function createStaticClientSideServerAuthorityRegistry(options) {
|
|
240
339
|
const records = new Map();
|
|
241
340
|
for (const [serverName, value] of Object.entries(options.records ?? {})) {
|
|
242
|
-
records.set(serverName,
|
|
341
|
+
records.set(serverName, normalizeAuthorityIdentity(value));
|
|
243
342
|
}
|
|
244
343
|
return {
|
|
245
344
|
register(serverName, value) {
|
|
246
|
-
records.set(serverName,
|
|
345
|
+
records.set(serverName, normalizeAuthorityIdentity(value));
|
|
247
346
|
},
|
|
248
347
|
async resolve(serverName) {
|
|
249
|
-
const
|
|
250
|
-
if (!
|
|
348
|
+
const record = records.get(serverName);
|
|
349
|
+
if (!record)
|
|
251
350
|
return null;
|
|
252
|
-
return
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
351
|
+
return record.encryptionPublicKeyJwk
|
|
352
|
+
? createSignedClientSideServerAuthorityRecordV2(options.authorityKeyPair, {
|
|
353
|
+
serverName,
|
|
354
|
+
signingPublicKeyJwk: record.signingPublicKeyJwk,
|
|
355
|
+
encryptionPublicKeyJwk: record.encryptionPublicKeyJwk,
|
|
356
|
+
signingKeyId: record.signingKeyId,
|
|
357
|
+
encryptionKeyId: record.encryptionKeyId,
|
|
358
|
+
authorityName: options.authorityName,
|
|
359
|
+
})
|
|
360
|
+
: createSignedClientSideServerAuthorityRecord(options.authorityKeyPair, {
|
|
361
|
+
serverName,
|
|
362
|
+
publicKeyJwk: record.signingPublicKeyJwk,
|
|
363
|
+
keyId: record.signingKeyId,
|
|
364
|
+
authorityName: options.authorityName,
|
|
365
|
+
});
|
|
257
366
|
},
|
|
258
367
|
createServer() {
|
|
259
368
|
return {
|
|
260
369
|
authorityName: options.authorityName,
|
|
261
370
|
publicKeyJwk: options.authorityKeyPair.publicKeyJwk,
|
|
262
371
|
resolve: async (serverName) => {
|
|
263
|
-
const
|
|
264
|
-
if (!
|
|
372
|
+
const record = records.get(serverName);
|
|
373
|
+
if (!record)
|
|
265
374
|
return null;
|
|
266
|
-
return
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
375
|
+
return record.encryptionPublicKeyJwk
|
|
376
|
+
? createSignedClientSideServerAuthorityRecordV2(options.authorityKeyPair, {
|
|
377
|
+
serverName,
|
|
378
|
+
signingPublicKeyJwk: record.signingPublicKeyJwk,
|
|
379
|
+
encryptionPublicKeyJwk: record.encryptionPublicKeyJwk,
|
|
380
|
+
signingKeyId: record.signingKeyId,
|
|
381
|
+
encryptionKeyId: record.encryptionKeyId,
|
|
382
|
+
authorityName: options.authorityName,
|
|
383
|
+
})
|
|
384
|
+
: createSignedClientSideServerAuthorityRecord(options.authorityKeyPair, {
|
|
385
|
+
serverName,
|
|
386
|
+
publicKeyJwk: record.signingPublicKeyJwk,
|
|
387
|
+
keyId: record.signingKeyId,
|
|
388
|
+
authorityName: options.authorityName,
|
|
389
|
+
});
|
|
271
390
|
},
|
|
272
391
|
};
|
|
273
392
|
},
|
|
@@ -316,6 +435,37 @@ export async function resolveTrustedClientSideServerFromAuthorities(serverName,
|
|
|
316
435
|
export function clientSideServerPublicKeysEqual(a, b) {
|
|
317
436
|
return stableStringify(a) === stableStringify(b);
|
|
318
437
|
}
|
|
438
|
+
export function isClientSideServerTrustedServerRecordV2(value) {
|
|
439
|
+
return Boolean(value
|
|
440
|
+
&& typeof value === 'object'
|
|
441
|
+
&& 'signingPublicKeyJwk' in value
|
|
442
|
+
&& 'encryptionPublicKeyJwk' in value);
|
|
443
|
+
}
|
|
444
|
+
export function isClientSideServerSignedAuthorityRecordV2(value) {
|
|
445
|
+
return Boolean(value
|
|
446
|
+
&& typeof value === 'object'
|
|
447
|
+
&& value.protocol === 'plat-css-authority-v2'
|
|
448
|
+
&& 'signingPublicKeyJwk' in value
|
|
449
|
+
&& 'encryptionPublicKeyJwk' in value);
|
|
450
|
+
}
|
|
451
|
+
export async function trustedClientSideServerRecordToResolvedIdentityBundle(record) {
|
|
452
|
+
if (!isClientSideServerTrustedServerRecordV2(record))
|
|
453
|
+
return null;
|
|
454
|
+
return {
|
|
455
|
+
signing: {
|
|
456
|
+
algorithm: 'ECDSA-P256',
|
|
457
|
+
publicKeyJwk: record.signingPublicKeyJwk,
|
|
458
|
+
keyId: record.signingKeyId ?? await createClientSideServerKeyId(record.signingPublicKeyJwk),
|
|
459
|
+
fingerprint: record.signingFingerprint,
|
|
460
|
+
},
|
|
461
|
+
encryption: {
|
|
462
|
+
algorithm: 'X25519',
|
|
463
|
+
publicKeyJwk: record.encryptionPublicKeyJwk,
|
|
464
|
+
keyId: record.encryptionKeyId ?? await createClientSideServerEncryptionKeyId(record.encryptionPublicKeyJwk),
|
|
465
|
+
fingerprint: record.encryptionFingerprint,
|
|
466
|
+
},
|
|
467
|
+
};
|
|
468
|
+
}
|
|
319
469
|
function resolveStorage(storage) {
|
|
320
470
|
if (storage)
|
|
321
471
|
return storage;
|
|
@@ -323,10 +473,41 @@ function resolveStorage(storage) {
|
|
|
323
473
|
return localStorage;
|
|
324
474
|
return null;
|
|
325
475
|
}
|
|
326
|
-
function
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
476
|
+
function getSigningPublicKeyJwk(record) {
|
|
477
|
+
return isClientSideServerTrustedServerRecordV2(record) ? record.signingPublicKeyJwk : record.publicKeyJwk;
|
|
478
|
+
}
|
|
479
|
+
function normalizeAuthorityIdentity(value) {
|
|
480
|
+
if (isResolvedIdentityBundle(value)) {
|
|
481
|
+
return {
|
|
482
|
+
signingPublicKeyJwk: value.signing.publicKeyJwk,
|
|
483
|
+
encryptionPublicKeyJwk: value.encryption.publicKeyJwk,
|
|
484
|
+
signingKeyId: value.signing.keyId,
|
|
485
|
+
encryptionKeyId: value.encryption.keyId,
|
|
486
|
+
};
|
|
487
|
+
}
|
|
488
|
+
if (isClientSideServerTrustedServerRecordV2(value)) {
|
|
489
|
+
return {
|
|
490
|
+
signingPublicKeyJwk: value.signingPublicKeyJwk,
|
|
491
|
+
encryptionPublicKeyJwk: value.encryptionPublicKeyJwk,
|
|
492
|
+
signingKeyId: value.signingKeyId,
|
|
493
|
+
encryptionKeyId: value.encryptionKeyId,
|
|
494
|
+
};
|
|
495
|
+
}
|
|
496
|
+
if ('publicKeyJwk' in value) {
|
|
497
|
+
return {
|
|
498
|
+
signingPublicKeyJwk: value.publicKeyJwk,
|
|
499
|
+
signingKeyId: 'keyId' in value ? value.keyId : undefined,
|
|
500
|
+
};
|
|
501
|
+
}
|
|
502
|
+
return {
|
|
503
|
+
signingPublicKeyJwk: value,
|
|
504
|
+
};
|
|
505
|
+
}
|
|
506
|
+
function isResolvedIdentityBundle(value) {
|
|
507
|
+
return Boolean(value
|
|
508
|
+
&& typeof value === 'object'
|
|
509
|
+
&& 'signing' in value
|
|
510
|
+
&& 'encryption' in value);
|
|
330
511
|
}
|
|
331
512
|
function stableStringify(value) {
|
|
332
513
|
return JSON.stringify(sortValue(value));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/client-side-server/identity.ts"],"names":[],"mappings":"AAsFA,MAAM,UAAU,qCAAqC,CACnD,UAAkC,EAAE;IAEpC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;IAC9C,OAAO;QACL,OAAO,CAAC,GAAG;YACT,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QAChD,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,KAAK;YAChB,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACvB,CAAC;QACD,UAAU,CAAC,GAAG;YACZ,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACnB,CAAC;KACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,sCAAsC,CACpD,UAAuG,EACvG,MAA2C;IAE3C,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAA;QACtC,OAAM;IACR,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;IAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,+BAA+B,CAAC,CAAC,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAA;IACvG,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QACb,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAA;IACpB,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACnB,CAAC;IACD,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AACrE,CAAC;AAED,MAAM,UAAU,wCAAwC,CACtD,UAAmH,EACnH,UAAkB;IAElB,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAA;IAC5B,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;IACpC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IACvB,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA;AACxD,CAAC;AAED,MAAM,UAAU,4CAA4C,CAC1D,UAAmH,EACnH,UAAkB;IAElB,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAA;IAC1B,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;IACpC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAA;IACrB,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AAC/C,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,UAAmH,EACnH,UAAkB,EAClB,YAAwB;IAExB,MAAM,OAAO,GAAG,4CAA4C,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;IACpF,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,+BAA+B,CAAC,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAA;AAC3F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uCAAuC,CAC3D,UAAkD,EAAE;IAEpD,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAA;IACpC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,WAAW,CACtC;QACE,IAAI,EAAE,OAAO;QACb,UAAU,EAAE,OAAO;KACpB,EACD,IAAI,EACJ,CAAC,MAAM,EAAE,QAAQ,CAAC,CACnB,CAAA;IACD,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IACrE,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IACvE,OAAO;QACL,SAAS,EAAE,YAAY;QACvB,YAAY;QACZ,aAAa;QACb,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,MAAM,2BAA2B,CAAC,YAAY,CAAC;QACvE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,YAAwB;IACxE,MAAM,WAAW,GAAG,MAAM,uCAAuC,CAAC,YAAY,CAAC,CAAA;IAC/E,OAAO,QAAQ,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAA;AAC3C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uCAAuC,CAAC,YAAwB;IACpF,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,UAAU,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;IACxG,OAAO,eAAe,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,OAAwC,EACxC,SAAiB;IAEjB,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAA;IACpC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,SAAS,CACvC,KAAK,EACL,OAAO,CAAC,aAAa,EACrB;QACE,IAAI,EAAE,OAAO;QACb,UAAU,EAAE,OAAO;KACpB,EACD,KAAK,EACL,CAAC,MAAM,CAAC,CACT,CAAA;IACD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,IAAI,CACjC;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,SAAS;KAChB,EACD,UAAU,EACV,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CACtC,CAAA;IACD,OAAO,eAAe,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAA;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,YAAwB,EACxB,SAAiB,EACjB,SAAiB;IAEjB,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAA;IACpC,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,SAAS,CACtC,KAAK,EACL,YAAY,EACZ;QACE,IAAI,EAAE,OAAO;QACb,UAAU,EAAE,OAAO;KACpB,EACD,KAAK,EACL,CAAC,QAAQ,CAAC,CACX,CAAA;IACD,OAAO,MAAM,CAAC,MAAM,CAClB;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,SAAS;KAChB,EACD,SAAS,EACT,eAAe,CAAC,SAAS,CAAC,EAC1B,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CACtC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,sCAAsC,CAAC,KAItD;IACC,OAAO,wBAAwB,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,cAAc,EAAE,CAAA;AACjG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2CAA2C,CAC/D,gBAAiD,EACjD,KAMC;IAED,MAAM,OAAO,GAAG;QACd,QAAQ,EAAE,uBAAgC;QAC1C,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,EAAE;KACvC,CAAA;IACD,MAAM,SAAS,GAAG,MAAM,6BAA6B,CAAC,gBAAgB,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAA;IACjG,OAAO;QACL,GAAG,OAAO;QACV,SAAS;KACV,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2CAA2C,CAC/D,MAA6C,EAC7C,qBAAiC;IAEjC,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,CAAA;IACxC,IAAI,OAAO,CAAC,QAAQ,KAAK,uBAAuB;QAAE,OAAO,KAAK,CAAA;IAC9D,OAAO,+BAA+B,CAAC,qBAAqB,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAA;AACpG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,OAAwC;IAExC,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,WAAW,EAAE,MAAM,uCAAuC,CAAC,OAAO,CAAC,YAAY,CAAC;KACjF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,OAAwC,EACxC,UAA+C,EAAE;IAEjD,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/C,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAA;IAC3F,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,IAAI,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;AACpF,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,UAA+C,EAAE;IAEjD,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/C,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IACzB,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,IAAI,kBAAkB,CAAC,CAAA;IACrE,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAA;IACrB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAoC,CAAA;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0CAA0C,CAC9D,UAAwF,EAAE;IAE1F,MAAM,QAAQ,GAAG,mCAAmC,CAAC,OAAO,CAAC,CAAA;IAC7D,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAC7B,MAAM,OAAO,GAAG,MAAM,uCAAuC,CAAC,OAAO,CAAC,CAAA;IACtE,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,IAAI,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;IACpF,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,MAA2C,EAC3C,UAAkD,EAAE;IAEpD,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/C,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAA;IACjG,MAAM,GAAG,GAAG,qCAAqC,CAAC,OAAO,CAAC,CAAA;IAC1D,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAA;IAC/B,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,IAAI,sBAAsB,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;AACpF,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,UAAkB,EAClB,UAAkD,EAAE;IAEpD,MAAM,GAAG,GAAG,qCAAqC,CAAC,OAAO,CAAC,CAAA;IAC1D,OAAO,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,qCAAqC,CACnD,UAAkD,EAAE;IAEpD,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/C,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAA;IACvB,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,IAAI,sBAAsB,CAAC,CAAA;IACzE,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAA;IACnB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAwD,CAAA;AAC/E,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,MAA6C,EAC7C,UAAiD,EAAE;IAEnD,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/C,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAA;IACnG,MAAM,GAAG,GAAG,uCAAuC,CAAC,OAAO,CAAC,CAAA;IAC5D,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAA;IAC/B,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,IAAI,4BAA4B,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;AAC1F,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,UAAkB,EAClB,UAAiD,EAAE;IAEnD,MAAM,GAAG,GAAG,uCAAuC,CAAC,OAAO,CAAC,CAAA;IAC5D,OAAO,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,uCAAuC,CACrD,UAAiD,EAAE;IAEnD,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/C,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAA;IACvB,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,IAAI,4BAA4B,CAAC,CAAA;IAC/E,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAA;IACnB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAA0D,CAAA;AACjF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,UAAkB,EAClB,QAAwC,EACxC,UAAkD,EAAE;IAEpD,MAAM,MAAM,GAAwC;QAClD,UAAU;QACV,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,MAAM,EAAE,WAAW;KACpB,CAAA;IACD,iCAAiC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wCAAwC,CAC5D,MAA6C,EAC7C,qBAAiC,EACjC,UAAkD,EAAE;IAEpD,MAAM,KAAK,GAAG,MAAM,2CAA2C,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAA;IAC9F,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,CAAC,UAAU,gCAAgC,CAAC,CAAA;IAC5F,CAAC;IACD,MAAM,OAAO,GAAwC;QACnD,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,WAAW,EAAE,MAAM,uCAAuC,CAAC,MAAM,CAAC,YAAY,CAAC;QAC/E,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,MAAM,EAAE,WAAW;KACpB,CAAA;IACD,iCAAiC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACnD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,UAAU,uCAAuC,CACrD,OAAiD;IAEjD,OAAO,KAAK,EAAE,UAAkB,EAAE,EAAE;QAClC,MAAM,MAAM,GAAG,mCAAmC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QACvE,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAA;QACxB,OAAO,wCAAwC,CAC7C,MAAM,EACN,OAAO,CAAC,qBAAqB,EAC7B;YACE,OAAO,EAAE,OAAO,CAAC,iBAAiB;YAClC,UAAU,EAAE,OAAO,CAAC,oBAAoB;SACzC,CACF,CAAA;IACH,CAAC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,6CAA6C,CAC3D,OAAuD;IAMvD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAA;IAC7C,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAA;IACpD,CAAC;IACD,OAAO;QACL,QAAQ,CAAC,UAAU,EAAE,KAAK;YACxB,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAA;QACpD,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,UAAU;YACtB,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YAC5C,IAAI,CAAC,YAAY;gBAAE,OAAO,IAAI,CAAA;YAC9B,OAAO,2CAA2C,CAAC,OAAO,CAAC,gBAAgB,EAAE;gBAC3E,UAAU;gBACV,YAAY;gBACZ,aAAa,EAAE,OAAO,CAAC,aAAa;aACrC,CAAC,CAAA;QACJ,CAAC;QACD,YAAY;YACV,OAAO;gBACL,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,YAAY,EAAE,OAAO,CAAC,gBAAgB,CAAC,YAAY;gBACnD,OAAO,EAAE,KAAK,EAAE,UAAkB,EAAE,EAAE;oBACpC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;oBAC5C,IAAI,CAAC,YAAY;wBAAE,OAAO,IAAI,CAAA;oBAC9B,OAAO,2CAA2C,CAAC,OAAO,CAAC,gBAAgB,EAAE;wBAC3E,UAAU;wBACV,YAAY;wBACZ,aAAa,EAAE,OAAO,CAAC,aAAa;qBACrC,CAAC,CAAA;gBACJ,CAAC;aACF,CAAA;QACH,CAAC;KACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,0CAA0C,CACxD,OAAoD;IAEpD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,KAAK,CAAA;IAC5C,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAA;IACjG,CAAC;IACD,OAAO;QACL,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,KAAK,CAAC,OAAO,CAAC,UAAkB;YAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;YACnD,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,uBAAuB,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;YAC9F,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,OAAO,GAAG,WAAW,EAAE,CAAC,CAAA;YAC/C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;YAC9C,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;gBAC/C,OAAO,EAAE;oBACP,MAAM,EAAE,kBAAkB;iBAC3B;aACF,CAAC,CAAA;YACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,aAAa,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;YACnG,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAkD,CAAA;YACpF,OAAO,MAAM,CAAA;QACf,CAAC;KACF,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,6CAA6C,CACjE,UAAkB,EAClB,gBAAmD,EACnD,UAAkD,EAAE;IAEpD,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;YACxD,IAAI,CAAC,MAAM;gBAAE,SAAQ;YACrB,OAAO,MAAM,wCAAwC,CAAC,MAAM,EAAE,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QACtG,CAAC;QAAC,MAAM,CAAC;YACP,SAAQ;QACV,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,CAAa,EAAE,CAAa;IAC1E,OAAO,eAAe,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC,CAAC,CAAA;AAClD,CAAC;AAED,SAAS,cAAc,CAAC,OAAqC;IAC3D,IAAI,OAAO;QAAE,OAAO,OAAO,CAAA;IAC3B,IAAI,OAAO,YAAY,KAAK,WAAW;QAAE,OAAO,YAAY,CAAA;IAC5D,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAwF;IAExF,IAAI,cAAc,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC,YAAY,CAAA;IACtD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;AACzC,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACrD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC;aAC7C,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aACtC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAClD,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACxC,CAAC;AAED,SAAS,eAAe,CAAC,KAAiB;IACxC,MAAM,MAAM,GAAG,OAAO,MAAM,KAAK,WAAW;QAC1C,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACvC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IACxB,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AAC3E,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;IACvG,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;IACtD,CAAC;IACD,OAAO,aAAa,CAAC,MAAM,CAAC,CAAA;AAC9B,CAAC;AAED,KAAK,UAAU,aAAa;IAC1B,IAAI,UAAU,CAAC,MAAM,EAAE,MAAM;QAAE,OAAO,UAAU,CAAC,MAAM,CAAC,MAAM,CAAA;IAC9D,MAAM,aAAa,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAgC,CAAA;IAC1F,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,aAAa,CAAC,CAAA;IACvD,IAAI,YAAY,CAAC,SAAS,EAAE,MAAM;QAAE,OAAO,YAAY,CAAC,SAAS,CAAC,MAAM,CAAA;IACxE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAA;AAC/E,CAAC;AAED,SAAS,aAAa,CAAC,KAAiB;IACtC,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;IAC7D,OAAO,IAAI,CAAC,MAAM,CAAC,CAAA;AACrB,CAAC;AAED,SAAS,aAAa,CAAC,MAAc;IACnC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;IAC3B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC3C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACtD,KAAK,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;IACzC,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,cAAc,CAAC,KAAiB;IACvC,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAgB,CAAA;AACjG,CAAC"}
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/client-side-server/identity.ts"],"names":[],"mappings":"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"}
|