@opendatalabs/personal-server-ts-lite 0.0.1-canary.13a6a48
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/bridge.d.ts +23 -0
- package/dist/bridge.d.ts.map +1 -0
- package/dist/bridge.js +53 -0
- package/dist/bridge.js.map +1 -0
- package/dist/browser-runtime.d.ts +30 -0
- package/dist/browser-runtime.d.ts.map +1 -0
- package/dist/browser-runtime.js +98 -0
- package/dist/browser-runtime.js.map +1 -0
- package/dist/browser-tls-rustls/browser_tls_rustls.d.ts +49 -0
- package/dist/browser-tls-rustls/browser_tls_rustls.js +401 -0
- package/dist/browser-tls-rustls/browser_tls_rustls_bg.wasm +0 -0
- package/dist/client.d.ts +22 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +309 -0
- package/dist/client.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/relay-tls.d.ts +19 -0
- package/dist/relay-tls.d.ts.map +1 -0
- package/dist/relay-tls.js +226 -0
- package/dist/relay-tls.js.map +1 -0
- package/dist/relay.d.ts +68 -0
- package/dist/relay.d.ts.map +1 -0
- package/dist/relay.js +361 -0
- package/dist/relay.js.map +1 -0
- package/dist/runtime.d.ts +79 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +473 -0
- package/dist/runtime.js.map +1 -0
- package/dist/state.d.ts +62 -0
- package/dist/state.d.ts.map +1 -0
- package/dist/state.js +296 -0
- package/dist/state.js.map +1 -0
- package/dist/storage-utils.d.ts +7 -0
- package/dist/storage-utils.d.ts.map +1 -0
- package/dist/storage-utils.js +66 -0
- package/dist/storage-utils.js.map +1 -0
- package/dist/storage.d.ts +37 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +282 -0
- package/dist/storage.js.map +1 -0
- package/dist/sync.d.ts +25 -0
- package/dist/sync.d.ts.map +1 -0
- package/dist/sync.js +83 -0
- package/dist/sync.js.map +1 -0
- package/package.json +40 -0
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type PersonalServerHandle, type PersonalServerStatus } from "@opendatalabs/personal-server-ts-core/client";
|
|
2
|
+
import { type GatewayClient } from "@opendatalabs/vana-sdk/browser";
|
|
3
|
+
import { type IndexedDbPsLiteRuntimeOptions } from "./browser-runtime.js";
|
|
4
|
+
import { type PsLiteRelayClientOptions } from "./relay.js";
|
|
5
|
+
import type { PsLiteRuntime } from "./runtime.js";
|
|
6
|
+
import { type PsLiteStateStore } from "./state.js";
|
|
7
|
+
export interface StartPersonalServerLiteRelayOptions extends Omit<PsLiteRelayClientOptions, "runtime" | "onStatus" | "sessionId"> {
|
|
8
|
+
sessionId?: string;
|
|
9
|
+
onStatus?: PsLiteRelayClientOptions["onStatus"];
|
|
10
|
+
}
|
|
11
|
+
export interface StartPersonalServerLiteOptions extends Omit<IndexedDbPsLiteRuntimeOptions, "ownerSignature" | "active"> {
|
|
12
|
+
ownerSignature?: `0x${string}`;
|
|
13
|
+
active?: boolean;
|
|
14
|
+
runtime?: PsLiteRuntime;
|
|
15
|
+
localOrigin?: string;
|
|
16
|
+
relay?: false | StartPersonalServerLiteRelayOptions;
|
|
17
|
+
relayStateStore?: PsLiteStateStore;
|
|
18
|
+
gateway?: GatewayClient;
|
|
19
|
+
onStatus?: (status: PersonalServerStatus) => void;
|
|
20
|
+
}
|
|
21
|
+
export declare function startPersonalServer(options: StartPersonalServerLiteOptions): Promise<PersonalServerHandle>;
|
|
22
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAWL,KAAK,oBAAoB,EAYzB,KAAK,oBAAoB,EAG1B,MAAM,8CAA8C,CAAC;AAEtD,OAAO,EAGL,KAAK,aAAa,EAEnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAGL,KAAK,6BAA6B,EACnC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAIL,KAAK,wBAAwB,EAE9B,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAKL,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,mCAAoC,SAAQ,IAAI,CAC/D,wBAAwB,EACxB,SAAS,GAAG,UAAU,GAAG,WAAW,CACrC;IACC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,wBAAwB,CAAC,UAAU,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,8BAA+B,SAAQ,IAAI,CAC1D,6BAA6B,EAC7B,gBAAgB,GAAG,QAAQ,CAC5B;IACC,cAAc,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,KAAK,GAAG,mCAAmC,CAAC;IACpD,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACnD;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,8BAA8B,GACtC,OAAO,CAAC,oBAAoB,CAAC,CA6T/B"}
|
package/dist/client.js
ADDED
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
import { createOwnerSignedPersonalServerRequest, createPersonalServerInfoFromHealth, createPersonalServerRegistrationRequest, dataListPath, dataReadPath, dataVersionsPath, parsePersonalServerJsonResponse, requestPath, submitPersonalServerRegistration, } from "@opendatalabs/personal-server-ts-core/client";
|
|
2
|
+
import { createGatewayClient, } from "@opendatalabs/vana-sdk/browser";
|
|
3
|
+
import { createIndexedDbPsLiteRuntime, } from "./browser-runtime.js";
|
|
4
|
+
import { psLiteRelayPublicUrl, startPsLiteRelayClient, } from "./relay.js";
|
|
5
|
+
import { createIndexedDbPsLiteStateStore, loadPsLiteRelayState, savePsLiteRelayState, } from "./state.js";
|
|
6
|
+
const DEFAULT_LITE_ORIGIN = "https://ps-lite.local";
|
|
7
|
+
export async function startPersonalServer(options) {
|
|
8
|
+
const localOrigin = options.localOrigin ?? DEFAULT_LITE_ORIGIN;
|
|
9
|
+
const relayOptions = options.relay || undefined;
|
|
10
|
+
const relayStateStore = relayOptions
|
|
11
|
+
? (options.relayStateStore ??
|
|
12
|
+
(options.runtime
|
|
13
|
+
? undefined
|
|
14
|
+
: createIndexedDbPsLiteStateStore({
|
|
15
|
+
dbName: options.dbName ?? "personal-server-lite",
|
|
16
|
+
storeName: options.stateStoreName ?? "state",
|
|
17
|
+
})))
|
|
18
|
+
: undefined;
|
|
19
|
+
const savedRelayState = relayStateStore
|
|
20
|
+
? await loadPsLiteRelayState(relayStateStore).catch(() => null)
|
|
21
|
+
: null;
|
|
22
|
+
const resolvedRelayOptions = relayOptions
|
|
23
|
+
? {
|
|
24
|
+
...relayOptions,
|
|
25
|
+
sessionId: relayOptions.sessionId ??
|
|
26
|
+
savedRelaySessionId(savedRelayState, relayOptions) ??
|
|
27
|
+
randomSessionId(),
|
|
28
|
+
}
|
|
29
|
+
: undefined;
|
|
30
|
+
const initialPublicUrl = resolvedRelayOptions
|
|
31
|
+
? psLiteRelayPublicUrl(resolvedRelayOptions.sessionId, resolvedRelayOptions.publicSuffix)
|
|
32
|
+
: null;
|
|
33
|
+
const runtimeOrigin = initialPublicUrl ?? localOrigin;
|
|
34
|
+
const runtimeBundle = options.runtime
|
|
35
|
+
? null
|
|
36
|
+
: await createIndexedDbPsLiteRuntime({
|
|
37
|
+
...options,
|
|
38
|
+
ownerSignature: requiredOwnerSignature(options.ownerSignature),
|
|
39
|
+
active: options.active ?? true,
|
|
40
|
+
runtimeOrigin,
|
|
41
|
+
configDefaults: configDefaultsWithOrigin(options.configDefaults, runtimeOrigin),
|
|
42
|
+
});
|
|
43
|
+
const runtime = options.runtime ?? runtimeBundle.runtime;
|
|
44
|
+
if (options.active ?? true) {
|
|
45
|
+
runtime.activate();
|
|
46
|
+
}
|
|
47
|
+
let status = "ready";
|
|
48
|
+
let relayStatus = "closed";
|
|
49
|
+
let relayClient;
|
|
50
|
+
let publicUrl = null;
|
|
51
|
+
let lastInfo = null;
|
|
52
|
+
const gateway = options.gateway;
|
|
53
|
+
const setStatus = (nextStatus) => {
|
|
54
|
+
status = nextStatus;
|
|
55
|
+
options.onStatus?.(nextStatus);
|
|
56
|
+
};
|
|
57
|
+
if (resolvedRelayOptions) {
|
|
58
|
+
relayStatus = "connecting";
|
|
59
|
+
publicUrl = initialPublicUrl;
|
|
60
|
+
relayClient = startPsLiteRelayClient({
|
|
61
|
+
...resolvedRelayOptions,
|
|
62
|
+
runtime,
|
|
63
|
+
origin: runtimeOrigin,
|
|
64
|
+
onStatus(nextRelayStatus) {
|
|
65
|
+
relayStatus = nextRelayStatus;
|
|
66
|
+
if (nextRelayStatus === "error")
|
|
67
|
+
setStatus("error");
|
|
68
|
+
resolvedRelayOptions.onStatus?.(nextRelayStatus);
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
async function info() {
|
|
73
|
+
if (status === "stopped" && lastInfo) {
|
|
74
|
+
return { ...lastInfo, status: "stopped" };
|
|
75
|
+
}
|
|
76
|
+
const response = await runtime.fetch(new Request(`${localOrigin}/health`));
|
|
77
|
+
const body = await response.json();
|
|
78
|
+
lastInfo = createPersonalServerInfoFromHealth({
|
|
79
|
+
kind: "lite",
|
|
80
|
+
status,
|
|
81
|
+
health: {
|
|
82
|
+
...body,
|
|
83
|
+
relay: { status: relayStatus, publicUrl },
|
|
84
|
+
},
|
|
85
|
+
localUrl: localOrigin,
|
|
86
|
+
publicUrl,
|
|
87
|
+
});
|
|
88
|
+
return lastInfo;
|
|
89
|
+
}
|
|
90
|
+
async function prepareRegistration(prepareOptions = {}) {
|
|
91
|
+
const current = await info();
|
|
92
|
+
const serverUrl = prepareOptions.serverUrl ?? current.urls.registration;
|
|
93
|
+
if (!current.ownerAddress || !current.server || !serverUrl) {
|
|
94
|
+
throw new Error("Personal Server identity and URL are required");
|
|
95
|
+
}
|
|
96
|
+
if (!current.gatewayConfig) {
|
|
97
|
+
throw new Error("Personal Server gateway config is required");
|
|
98
|
+
}
|
|
99
|
+
return createPersonalServerRegistrationRequest({
|
|
100
|
+
gatewayConfig: current.gatewayConfig,
|
|
101
|
+
ownerAddress: current.ownerAddress,
|
|
102
|
+
serverAddress: current.server.address,
|
|
103
|
+
publicKey: current.server.publicKey,
|
|
104
|
+
serverUrl,
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
async function submitRegistration(submitOptions) {
|
|
108
|
+
const request = await prepareRegistration();
|
|
109
|
+
const gatewayClient = gateway ?? createGatewayClient(requiredGatewayUrl(await info()));
|
|
110
|
+
return submitPersonalServerRegistration({
|
|
111
|
+
gateway: gatewayClient,
|
|
112
|
+
request,
|
|
113
|
+
signature: submitOptions.signature,
|
|
114
|
+
}).then(async (result) => {
|
|
115
|
+
await rememberRegisteredRelay(request.candidate.serverUrl);
|
|
116
|
+
return result;
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
async function callFetch(input, init) {
|
|
120
|
+
const origin = (await info()).urls.apiOrigin ?? localOrigin;
|
|
121
|
+
return runtime.fetch(toRuntimeRequest(input, origin, init));
|
|
122
|
+
}
|
|
123
|
+
async function postData(scope, body, postOptions) {
|
|
124
|
+
const current = await info();
|
|
125
|
+
const origin = requiredApiOrigin(current);
|
|
126
|
+
const path = `/v1/data/${encodeURIComponent(scope)}`;
|
|
127
|
+
const request = await createOwnerRequest({
|
|
128
|
+
origin,
|
|
129
|
+
path,
|
|
130
|
+
method: "POST",
|
|
131
|
+
body,
|
|
132
|
+
authOptions: postOptions,
|
|
133
|
+
headers: {
|
|
134
|
+
"Content-Type": "application/json",
|
|
135
|
+
...postOptions.headers,
|
|
136
|
+
},
|
|
137
|
+
});
|
|
138
|
+
return parsePersonalServerJsonResponse(await callFetch(request), "data write");
|
|
139
|
+
}
|
|
140
|
+
async function listData(listOptions = {}) {
|
|
141
|
+
const current = await info();
|
|
142
|
+
const request = await createOwnerRequest({
|
|
143
|
+
origin: requiredApiOrigin(current),
|
|
144
|
+
path: dataListPath(listOptions),
|
|
145
|
+
method: "GET",
|
|
146
|
+
authOptions: listOptions,
|
|
147
|
+
headers: listOptions.headers,
|
|
148
|
+
});
|
|
149
|
+
return parsePersonalServerJsonResponse(await callFetch(request), "data list");
|
|
150
|
+
}
|
|
151
|
+
async function listVersions(scope, versionOptions = {}) {
|
|
152
|
+
const current = await info();
|
|
153
|
+
const request = await createOwnerRequest({
|
|
154
|
+
origin: requiredApiOrigin(current),
|
|
155
|
+
path: dataVersionsPath(scope, versionOptions),
|
|
156
|
+
method: "GET",
|
|
157
|
+
authOptions: versionOptions,
|
|
158
|
+
headers: versionOptions.headers,
|
|
159
|
+
});
|
|
160
|
+
return parsePersonalServerJsonResponse(await callFetch(request), "data versions list");
|
|
161
|
+
}
|
|
162
|
+
async function readData(scope, readOptions = {}) {
|
|
163
|
+
const current = await info();
|
|
164
|
+
const request = await createOwnerRequest({
|
|
165
|
+
origin: requiredApiOrigin(current),
|
|
166
|
+
path: dataReadPath(scope, readOptions),
|
|
167
|
+
method: "GET",
|
|
168
|
+
authOptions: readOptions,
|
|
169
|
+
headers: readOptions.headers,
|
|
170
|
+
});
|
|
171
|
+
return parsePersonalServerJsonResponse(await callFetch(request), "data read");
|
|
172
|
+
}
|
|
173
|
+
async function syncStatus(syncOptions = {}) {
|
|
174
|
+
const current = await info();
|
|
175
|
+
const request = await createOwnerRequest({
|
|
176
|
+
origin: requiredApiOrigin(current),
|
|
177
|
+
path: "/v1/sync/status",
|
|
178
|
+
method: "GET",
|
|
179
|
+
authOptions: syncOptions,
|
|
180
|
+
headers: syncOptions.headers,
|
|
181
|
+
});
|
|
182
|
+
return parsePersonalServerJsonResponse(await callFetch(request), "sync status");
|
|
183
|
+
}
|
|
184
|
+
async function syncNow(syncOptions = {}) {
|
|
185
|
+
const current = await info();
|
|
186
|
+
const request = await createOwnerRequest({
|
|
187
|
+
origin: requiredApiOrigin(current),
|
|
188
|
+
path: "/v1/sync/trigger",
|
|
189
|
+
method: "POST",
|
|
190
|
+
authOptions: syncOptions,
|
|
191
|
+
headers: syncOptions.headers,
|
|
192
|
+
});
|
|
193
|
+
return parsePersonalServerJsonResponse(await callFetch(request), "sync trigger");
|
|
194
|
+
}
|
|
195
|
+
async function rememberRegisteredRelay(serverUrl) {
|
|
196
|
+
if (!resolvedRelayOptions || !relayStateStore)
|
|
197
|
+
return;
|
|
198
|
+
await savePsLiteRelayState(relayStateStore, {
|
|
199
|
+
sessionId: resolvedRelayOptions.sessionId,
|
|
200
|
+
controlUrl: resolvedRelayOptions.controlUrl,
|
|
201
|
+
publicSuffix: resolvedRelayOptions.publicSuffix,
|
|
202
|
+
publicUrl: serverUrl,
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
async function createOwnerRequest(params) {
|
|
206
|
+
const encoded = params.body === undefined
|
|
207
|
+
? undefined
|
|
208
|
+
: new TextEncoder().encode(JSON.stringify(params.body));
|
|
209
|
+
const auth = authFromOptions(params.authOptions);
|
|
210
|
+
if (auth) {
|
|
211
|
+
return createOwnerSignedPersonalServerRequest({
|
|
212
|
+
origin: params.origin,
|
|
213
|
+
path: params.path,
|
|
214
|
+
method: params.method,
|
|
215
|
+
body: encoded,
|
|
216
|
+
auth,
|
|
217
|
+
headers: params.headers,
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
return new Request(`${params.origin}${params.path}`, {
|
|
221
|
+
method: params.method,
|
|
222
|
+
body: encoded,
|
|
223
|
+
headers: params.headers,
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
async function stop() {
|
|
227
|
+
if (status === "stopped")
|
|
228
|
+
return;
|
|
229
|
+
relayClient?.close("personal-server-stop");
|
|
230
|
+
relayClient = undefined;
|
|
231
|
+
runtime.deactivate();
|
|
232
|
+
await runtimeBundle?.syncManager?.stop?.();
|
|
233
|
+
setStatus("stopped");
|
|
234
|
+
}
|
|
235
|
+
return {
|
|
236
|
+
kind: "lite",
|
|
237
|
+
ready: (_options) => info(),
|
|
238
|
+
info,
|
|
239
|
+
prepareRegistration,
|
|
240
|
+
submitRegistration,
|
|
241
|
+
fetch: callFetch,
|
|
242
|
+
postData,
|
|
243
|
+
listData,
|
|
244
|
+
listVersions,
|
|
245
|
+
readData,
|
|
246
|
+
syncStatus,
|
|
247
|
+
syncNow,
|
|
248
|
+
stop,
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
function savedRelaySessionId(state, options) {
|
|
252
|
+
if (!state?.sessionId)
|
|
253
|
+
return null;
|
|
254
|
+
if (options.controlUrl && state.controlUrl !== options.controlUrl)
|
|
255
|
+
return null;
|
|
256
|
+
if (options.publicSuffix && state.publicSuffix !== options.publicSuffix) {
|
|
257
|
+
return null;
|
|
258
|
+
}
|
|
259
|
+
return state.sessionId;
|
|
260
|
+
}
|
|
261
|
+
function randomSessionId() {
|
|
262
|
+
const bytes = crypto.getRandomValues(new Uint8Array(12));
|
|
263
|
+
return Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join("");
|
|
264
|
+
}
|
|
265
|
+
function authFromOptions(options) {
|
|
266
|
+
if ("auth" in options && options.auth)
|
|
267
|
+
return options.auth;
|
|
268
|
+
if ("signMessage" in options)
|
|
269
|
+
return { signMessage: options.signMessage };
|
|
270
|
+
if ("bearerToken" in options)
|
|
271
|
+
return { bearerToken: options.bearerToken };
|
|
272
|
+
return undefined;
|
|
273
|
+
}
|
|
274
|
+
function requiredOwnerSignature(ownerSignature) {
|
|
275
|
+
if (!ownerSignature) {
|
|
276
|
+
throw new Error("ownerSignature is required to start PS Lite");
|
|
277
|
+
}
|
|
278
|
+
return ownerSignature;
|
|
279
|
+
}
|
|
280
|
+
function configDefaultsWithOrigin(defaults, origin) {
|
|
281
|
+
return {
|
|
282
|
+
...defaults,
|
|
283
|
+
server: {
|
|
284
|
+
...defaults?.server,
|
|
285
|
+
origin,
|
|
286
|
+
},
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
function requiredGatewayUrl(info) {
|
|
290
|
+
if (!info.gatewayUrl) {
|
|
291
|
+
throw new Error("Personal Server gateway URL is required");
|
|
292
|
+
}
|
|
293
|
+
return info.gatewayUrl;
|
|
294
|
+
}
|
|
295
|
+
function requiredApiOrigin(info) {
|
|
296
|
+
if (!info.urls.apiOrigin) {
|
|
297
|
+
throw new Error("Personal Server API origin is required");
|
|
298
|
+
}
|
|
299
|
+
return info.urls.apiOrigin;
|
|
300
|
+
}
|
|
301
|
+
function toRuntimeRequest(input, origin, init) {
|
|
302
|
+
const url = `${origin}${requestPath(input)}`;
|
|
303
|
+
if (input instanceof Request) {
|
|
304
|
+
const base = new Request(url, input);
|
|
305
|
+
return init ? new Request(base, init) : base;
|
|
306
|
+
}
|
|
307
|
+
return new Request(url, init);
|
|
308
|
+
}
|
|
309
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sCAAsC,EACtC,kCAAkC,EAClC,uCAAuC,EACvC,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,+BAA+B,EAC/B,WAAW,EACX,gCAAgC,GAiBjC,MAAM,8CAA8C,CAAC;AAEtD,OAAO,EACL,mBAAmB,GAIpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,4BAA4B,GAG7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,oBAAoB,EACpB,sBAAsB,GAIvB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,+BAA+B,EAC/B,oBAAoB,EACpB,oBAAoB,GAGrB,MAAM,YAAY,CAAC;AAEpB,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AAwBpD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAuC;IAEvC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,mBAAmB,CAAC;IAC/D,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,IAAI,SAAS,CAAC;IAChD,MAAM,eAAe,GAAG,YAAY;QAClC,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe;YACxB,CAAC,OAAO,CAAC,OAAO;gBACd,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,+BAA+B,CAAC;oBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,sBAAsB;oBAChD,SAAS,EAAE,OAAO,CAAC,cAAc,IAAI,OAAO;iBAC7C,CAAC,CAAC,CAAC;QACV,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,eAAe,GAAG,eAAe;QACrC,CAAC,CAAC,MAAM,oBAAoB,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;QAC/D,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,oBAAoB,GAAG,YAAY;QACvC,CAAC,CAAC;YACE,GAAG,YAAY;YACf,SAAS,EACP,YAAY,CAAC,SAAS;gBACtB,mBAAmB,CAAC,eAAe,EAAE,YAAY,CAAC;gBAClD,eAAe,EAAE;SACpB;QACH,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,gBAAgB,GAAG,oBAAoB;QAC3C,CAAC,CAAC,oBAAoB,CAClB,oBAAoB,CAAC,SAAS,EAC9B,oBAAoB,CAAC,YAAY,CAClC;QACH,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,aAAa,GAAG,gBAAgB,IAAI,WAAW,CAAC;IACtD,MAAM,aAAa,GAAkC,OAAO,CAAC,OAAO;QAClE,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,MAAM,4BAA4B,CAAC;YACjC,GAAG,OAAO;YACV,cAAc,EAAE,sBAAsB,CAAC,OAAO,CAAC,cAAc,CAAC;YAC9D,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI;YAC9B,aAAa;YACb,cAAc,EAAE,wBAAwB,CACtC,OAAO,CAAC,cAAc,EACtB,aAAa,CACd;SACF,CAAC,CAAC;IACP,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,aAAc,CAAC,OAAO,CAAC;IAE1D,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;QAC3B,OAAO,CAAC,QAAQ,EAAE,CAAC;IACrB,CAAC;IAED,IAAI,MAAM,GAAyB,OAAO,CAAC;IAC3C,IAAI,WAAW,GAAsB,QAAQ,CAAC;IAC9C,IAAI,WAA0C,CAAC;IAC/C,IAAI,SAAS,GAAkB,IAAI,CAAC;IACpC,IAAI,QAAQ,GAA8B,IAAI,CAAC;IAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAEhC,MAAM,SAAS,GAAG,CAAC,UAAgC,EAAQ,EAAE;QAC3D,MAAM,GAAG,UAAU,CAAC;QACpB,OAAO,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC,CAAC;IAEF,IAAI,oBAAoB,EAAE,CAAC;QACzB,WAAW,GAAG,YAAY,CAAC;QAC3B,SAAS,GAAG,gBAAgB,CAAC;QAC7B,WAAW,GAAG,sBAAsB,CAAC;YACnC,GAAG,oBAAoB;YACvB,OAAO;YACP,MAAM,EAAE,aAAa;YACrB,QAAQ,CAAC,eAAe;gBACtB,WAAW,GAAG,eAAe,CAAC;gBAC9B,IAAI,eAAe,KAAK,OAAO;oBAAE,SAAS,CAAC,OAAO,CAAC,CAAC;gBACpD,oBAAoB,CAAC,QAAQ,EAAE,CAAC,eAAe,CAAC,CAAC;YACnD,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,IAAI;QACjB,IAAI,MAAM,KAAK,SAAS,IAAI,QAAQ,EAAE,CAAC;YACrC,OAAO,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAC5C,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,WAAW,SAAS,CAAC,CAAC,CAAC;QAC3E,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,QAAQ,GAAG,kCAAkC,CAAC;YAC5C,IAAI,EAAE,MAAM;YACZ,MAAM;YACN,MAAM,EAAE;gBACN,GAAI,IAAgC;gBACpC,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE;aAC1C;YACD,QAAQ,EAAE,WAAW;YACrB,SAAS;SACV,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,UAAU,mBAAmB,CAChC,iBAA2D,EAAE;QAE7D,MAAM,OAAO,GAAG,MAAM,IAAI,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;QACxE,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,uCAAuC,CAAC;YAC7C,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;YACrC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS;YACnC,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,kBAAkB,CAC/B,aAAsD;QAEtD,MAAM,OAAO,GAAG,MAAM,mBAAmB,EAAE,CAAC;QAC5C,MAAM,aAAa,GACjB,OAAO,IAAI,mBAAmB,CAAC,kBAAkB,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;QACnE,OAAO,gCAAgC,CAAC;YACtC,OAAO,EAAE,aAAa;YACtB,OAAO;YACP,SAAS,EAAE,aAAa,CAAC,SAAS;SACnC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACvB,MAAM,uBAAuB,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC3D,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,SAAS,CACtB,KAA6B,EAC7B,IAAkB;QAElB,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,WAAW,CAAC;QAC5D,OAAO,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,UAAU,QAAQ,CACrB,KAAa,EACb,IAAa,EACb,WAA0C;QAE1C,MAAM,OAAO,GAAG,MAAM,IAAI,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,YAAY,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC;YACvC,MAAM;YACN,IAAI;YACJ,MAAM,EAAE,MAAM;YACd,IAAI;YACJ,WAAW,EAAE,WAAW;YACxB,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,GAAG,WAAW,CAAC,OAAO;aACvB;SACF,CAAC,CAAC;QACH,OAAO,+BAA+B,CACpC,MAAM,SAAS,CAAC,OAAO,CAAC,EACxB,YAAY,CACb,CAAC;IACJ,CAAC;IAED,KAAK,UAAU,QAAQ,CACrB,cAA6C,EAAE;QAE/C,MAAM,OAAO,GAAG,MAAM,IAAI,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC;YACvC,MAAM,EAAE,iBAAiB,CAAC,OAAO,CAAC;YAClC,IAAI,EAAE,YAAY,CAAC,WAAW,CAAC;YAC/B,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,WAAW;YACxB,OAAO,EAAE,WAAW,CAAC,OAAO;SAC7B,CAAC,CAAC;QACH,OAAO,+BAA+B,CACpC,MAAM,SAAS,CAAC,OAAO,CAAC,EACxB,WAAW,CACZ,CAAC;IACJ,CAAC;IAED,KAAK,UAAU,YAAY,CACzB,KAAa,EACb,iBAAoD,EAAE;QAEtD,MAAM,OAAO,GAAG,MAAM,IAAI,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC;YACvC,MAAM,EAAE,iBAAiB,CAAC,OAAO,CAAC;YAClC,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAE,cAAc,CAAC;YAC7C,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,cAAc;YAC3B,OAAO,EAAE,cAAc,CAAC,OAAO;SAChC,CAAC,CAAC;QACH,OAAO,+BAA+B,CACpC,MAAM,SAAS,CAAC,OAAO,CAAC,EACxB,oBAAoB,CACrB,CAAC;IACJ,CAAC;IAED,KAAK,UAAU,QAAQ,CACrB,KAAa,EACb,cAA6C,EAAE;QAE/C,MAAM,OAAO,GAAG,MAAM,IAAI,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC;YACvC,MAAM,EAAE,iBAAiB,CAAC,OAAO,CAAC;YAClC,IAAI,EAAE,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC;YACtC,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,WAAW;YACxB,OAAO,EAAE,WAAW,CAAC,OAAO;SAC7B,CAAC,CAAC;QACH,OAAO,+BAA+B,CACpC,MAAM,SAAS,CAAC,OAAO,CAAC,EACxB,WAAW,CACZ,CAAC;IACJ,CAAC;IAED,KAAK,UAAU,UAAU,CACvB,cAAgD,EAAE;QAElD,MAAM,OAAO,GAAG,MAAM,IAAI,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC;YACvC,MAAM,EAAE,iBAAiB,CAAC,OAAO,CAAC;YAClC,IAAI,EAAE,iBAAiB;YACvB,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,WAAW;YACxB,OAAO,EAAE,WAAW,CAAC,OAAO;SAC7B,CAAC,CAAC;QACH,OAAO,+BAA+B,CACpC,MAAM,SAAS,CAAC,OAAO,CAAC,EACxB,aAAa,CACd,CAAC;IACJ,CAAC;IAED,KAAK,UAAU,OAAO,CACpB,cAAgD,EAAE;QAElD,MAAM,OAAO,GAAG,MAAM,IAAI,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC;YACvC,MAAM,EAAE,iBAAiB,CAAC,OAAO,CAAC;YAClC,IAAI,EAAE,kBAAkB;YACxB,MAAM,EAAE,MAAM;YACd,WAAW,EAAE,WAAW;YACxB,OAAO,EAAE,WAAW,CAAC,OAAO;SAC7B,CAAC,CAAC;QACH,OAAO,+BAA+B,CACpC,MAAM,SAAS,CAAC,OAAO,CAAC,EACxB,cAAc,CACf,CAAC;IACJ,CAAC;IAED,KAAK,UAAU,uBAAuB,CAAC,SAAiB;QACtD,IAAI,CAAC,oBAAoB,IAAI,CAAC,eAAe;YAAE,OAAO;QACtD,MAAM,oBAAoB,CAAC,eAAe,EAAE;YAC1C,SAAS,EAAE,oBAAoB,CAAC,SAAS;YACzC,UAAU,EAAE,oBAAoB,CAAC,UAAU;YAC3C,YAAY,EAAE,oBAAoB,CAAC,YAAY;YAC/C,SAAS,EAAE,SAAS;SACrB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,kBAAkB,CAAC,MASjC;QACC,MAAM,OAAO,GACX,MAAM,CAAC,IAAI,KAAK,SAAS;YACvB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACjD,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,sCAAsC,CAAC;gBAC5C,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,IAAI,EAAE,OAAO;gBACb,IAAI;gBACJ,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE;YACnD,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,IAAI;QACjB,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO;QACjC,WAAW,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC3C,WAAW,GAAG,SAAS,CAAC;QACxB,OAAO,CAAC,UAAU,EAAE,CAAC;QACrB,MAAM,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC;QAC3C,SAAS,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IAED,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,CAAC,QAAqC,EAAE,EAAE,CAAC,IAAI,EAAE;QACxD,IAAI;QACJ,mBAAmB;QACnB,kBAAkB;QAClB,KAAK,EAAE,SAAS;QAChB,QAAQ;QACR,QAAQ;QACR,YAAY;QACZ,QAAQ;QACR,UAAU;QACV,OAAO;QACP,IAAI;KACL,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,KAA8B,EAC9B,OAA4C;IAE5C,IAAI,CAAC,KAAK,EAAE,SAAS;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU;QAC/D,OAAO,IAAI,CAAC;IACd,IAAI,OAAO,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,KAAK,OAAO,CAAC,YAAY,EAAE,CAAC;QACxE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC,SAAS,CAAC;AACzB,CAAC;AAED,SAAS,eAAe;IACtB,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IACzD,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CACzE,EAAE,CACH,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,OAAyE;IAEzE,IAAI,MAAM,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI;QAAE,OAAO,OAAO,CAAC,IAAI,CAAC;IAC3D,IAAI,aAAa,IAAI,OAAO;QAAE,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;IAC1E,IAAI,aAAa,IAAI,OAAO;QAAE,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;IAC1E,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,sBAAsB,CAC7B,cAAyC;IAEzC,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,SAAS,wBAAwB,CAC/B,QAA0D,EAC1D,MAAc;IAEd,OAAO;QACL,GAAG,QAAQ;QACX,MAAM,EAAE;YACN,GAAG,QAAQ,EAAE,MAAM;YACnB,MAAM;SACP;KACkD,CAAC;AACxD,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAwB;IAClD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,IAAI,CAAC,UAAU,CAAC;AACzB,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAwB;IACjD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AAC7B,CAAC;AAED,SAAS,gBAAgB,CACvB,KAA6B,EAC7B,MAAc,EACd,IAAkB;IAElB,MAAM,GAAG,GAAG,GAAG,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;IAC7C,IAAI,KAAK,YAAY,OAAO,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/C,CAAC;IACD,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAChC,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { createIndexedDbPsLiteRuntime, type IndexedDbPsLiteRuntime, type IndexedDbPsLiteRuntimeOptions, } from "./browser-runtime.js";
|
|
2
|
+
export { startPersonalServer, type StartPersonalServerLiteOptions, type StartPersonalServerLiteRelayOptions, } from "./client.js";
|
|
3
|
+
export type { PersonalServerHandle, PersonalServerClientErrorBody, PersonalServerDataVersion, PersonalServerHealthRegistration, PersonalServerIdentity, PersonalServerInfo, PersonalServerAuthRequestOptions, PersonalServerListDataOptions, PersonalServerListDataResult, PersonalServerListVersionsOptions, PersonalServerListVersionsResult, PersonalServerReadDataOptions, PersonalServerRegistrationRequest, PersonalServerStatus, PersonalServerSyncTriggerResult, PersonalServerUrls, } from "@opendatalabs/personal-server-ts-core/client";
|
|
4
|
+
export { PersonalServerClientError, dataListPath, dataReadPath, dataVersionsPath, parsePersonalServerJsonResponse, } from "@opendatalabs/personal-server-ts-core/client";
|
|
5
|
+
export { handlePsLiteBridgeRequest, type PsLiteBridgeRequest, type PsLiteBridgeResponse, } from "./bridge.js";
|
|
6
|
+
export { createIndexedDbPsLitePersistence, createOpfsPsLiteDataFileStore, createPersistentPsLiteStorage, isOpfsAvailable, type IndexedDbPsLitePersistenceOptions, type PsLiteDataFileStore, type PsLiteFileStorageKind, type PsLitePersistedStorageState, type PsLitePersistenceAdapter, } from "./storage.js";
|
|
7
|
+
export { createIndexedDbPsLiteAccessLogStore, createIndexedDbPsLiteStateStore, createIndexedDbPsLiteTokenStore, loadOrCreatePsLiteConfig, loadOrCreatePsLiteServerIdentity, loadPsLiteRelayState, savePsLiteConfig, savePsLiteRelayState, type IndexedDbPsLiteAccessLogStoreOptions, type IndexedDbPsLiteStateStoreOptions, type IndexedDbPsLiteTokenStoreOptions, type PsLiteEncryptedPrivateKey, type PsLiteEncryptedServerIdentity, type PsLiteRelayState, type PsLiteStateKey, type PsLiteStateStore, type PsLiteUnlockedServerIdentity, } from "./state.js";
|
|
8
|
+
export { createPsLiteSyncCursor, createPsLiteSyncManager, type PsLiteSyncOptions, } from "./sync.js";
|
|
9
|
+
export { createBearerTokenPsLiteAuth, createPsLiteRuntime, createWeb3SignedPsLiteAuth, type BearerTokenPsLiteAuthOptions, type PsLiteAuthAdapter, type PsLiteReadAuthInput, type PsLiteRuntime, type PsLiteRuntimeOptions, type PsLiteStorageAdapter, type PsLiteTokenStore, type Web3SignedPsLiteAuthOptions, } from "./runtime.js";
|
|
10
|
+
export { decodeDataFrame, encodeDataFrame, psLiteRelayControlUrl, psLiteRelayPublicUrl, startPsLiteRelayClient, type PsLiteRelayClient, type PsLiteRelayClientOptions, type PsLiteRelayStatus, type PsLiteRelayTlsFactory, type PsLiteRelayTlsPrepareInput, type PsLiteRelayTlsStep, type PsLiteRelayTlsStream, type PsLiteRelayTlsStreamInput, type PsLiteRelayWebSocket, type PsLiteRelayWebSocketFactory, } from "./relay.js";
|
|
11
|
+
export { createRustlsPsLiteRelayTlsFactory, psLiteRelayPublicHost, psLiteRelayPublicUrl as psLiteRelayTlsPublicUrl, type PsLiteRelayTlsIdentity, type RustlsPsLiteRelayTlsOptions, } from "./relay-tls.js";
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,6BAA6B,GACnC,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,mBAAmB,EACnB,KAAK,8BAA8B,EACnC,KAAK,mCAAmC,GACzC,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,oBAAoB,EACpB,6BAA6B,EAC7B,yBAAyB,EACzB,gCAAgC,EAChC,sBAAsB,EACtB,kBAAkB,EAClB,gCAAgC,EAChC,6BAA6B,EAC7B,4BAA4B,EAC5B,iCAAiC,EACjC,gCAAgC,EAChC,6BAA6B,EAC7B,iCAAiC,EACjC,oBAAoB,EACpB,+BAA+B,EAC/B,kBAAkB,GACnB,MAAM,8CAA8C,CAAC;AACtD,OAAO,EACL,yBAAyB,EACzB,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,+BAA+B,GAChC,MAAM,8CAA8C,CAAC;AAEtD,OAAO,EACL,yBAAyB,EACzB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,gCAAgC,EAChC,6BAA6B,EAC7B,6BAA6B,EAC7B,eAAe,EACf,KAAK,iCAAiC,EACtC,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,GAC9B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,mCAAmC,EACnC,+BAA+B,EAC/B,+BAA+B,EAC/B,wBAAwB,EACxB,gCAAgC,EAChC,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,oCAAoC,EACzC,KAAK,gCAAgC,EACrC,KAAK,gCAAgC,EACrC,KAAK,yBAAyB,EAC9B,KAAK,6BAA6B,EAClC,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,4BAA4B,GAClC,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,KAAK,iBAAiB,GACvB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,0BAA0B,EAC1B,KAAK,4BAA4B,EACjC,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,2BAA2B,GACjC,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,GACjC,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,iCAAiC,EACjC,qBAAqB,EACrB,oBAAoB,IAAI,uBAAuB,EAC/C,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,GACjC,MAAM,gBAAgB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { createIndexedDbPsLiteRuntime, } from "./browser-runtime.js";
|
|
2
|
+
export { startPersonalServer, } from "./client.js";
|
|
3
|
+
export { PersonalServerClientError, dataListPath, dataReadPath, dataVersionsPath, parsePersonalServerJsonResponse, } from "@opendatalabs/personal-server-ts-core/client";
|
|
4
|
+
export { handlePsLiteBridgeRequest, } from "./bridge.js";
|
|
5
|
+
export { createIndexedDbPsLitePersistence, createOpfsPsLiteDataFileStore, createPersistentPsLiteStorage, isOpfsAvailable, } from "./storage.js";
|
|
6
|
+
export { createIndexedDbPsLiteAccessLogStore, createIndexedDbPsLiteStateStore, createIndexedDbPsLiteTokenStore, loadOrCreatePsLiteConfig, loadOrCreatePsLiteServerIdentity, loadPsLiteRelayState, savePsLiteConfig, savePsLiteRelayState, } from "./state.js";
|
|
7
|
+
export { createPsLiteSyncCursor, createPsLiteSyncManager, } from "./sync.js";
|
|
8
|
+
export { createBearerTokenPsLiteAuth, createPsLiteRuntime, createWeb3SignedPsLiteAuth, } from "./runtime.js";
|
|
9
|
+
export { decodeDataFrame, encodeDataFrame, psLiteRelayControlUrl, psLiteRelayPublicUrl, startPsLiteRelayClient, } from "./relay.js";
|
|
10
|
+
export { createRustlsPsLiteRelayTlsFactory, psLiteRelayPublicHost, psLiteRelayPublicUrl as psLiteRelayTlsPublicUrl, } from "./relay-tls.js";
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,GAG7B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,mBAAmB,GAGpB,MAAM,aAAa,CAAC;AAmBrB,OAAO,EACL,yBAAyB,EACzB,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,+BAA+B,GAChC,MAAM,8CAA8C,CAAC;AAEtD,OAAO,EACL,yBAAyB,GAG1B,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,gCAAgC,EAChC,6BAA6B,EAC7B,6BAA6B,EAC7B,eAAe,GAMhB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,mCAAmC,EACnC,+BAA+B,EAC/B,+BAA+B,EAC/B,wBAAwB,EACxB,gCAAgC,EAChC,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,GAUrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GAExB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,0BAA0B,GAS3B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,GAWvB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,iCAAiC,EACjC,qBAAqB,EACrB,oBAAoB,IAAI,uBAAuB,GAGhD,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { PsLiteRelayTlsFactory } from "./relay.js";
|
|
2
|
+
export interface RustlsPsLiteRelayTlsOptions {
|
|
3
|
+
controlUrl: string;
|
|
4
|
+
publicSuffix?: string;
|
|
5
|
+
certIssuerUrl?: string;
|
|
6
|
+
storage?: Storage;
|
|
7
|
+
logger?: (line: string) => void;
|
|
8
|
+
}
|
|
9
|
+
export interface PsLiteRelayTlsIdentity {
|
|
10
|
+
certPem: string;
|
|
11
|
+
keyPem: string;
|
|
12
|
+
hostname: string;
|
|
13
|
+
source: "acme" | "self-signed" | "cached-acme";
|
|
14
|
+
trusted: boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare function createRustlsPsLiteRelayTlsFactory(options: RustlsPsLiteRelayTlsOptions): PsLiteRelayTlsFactory;
|
|
17
|
+
export declare function psLiteRelayPublicHost(sessionId: string, publicSuffix?: string): string;
|
|
18
|
+
export declare function psLiteRelayPublicUrl(sessionId: string, publicSuffix?: string): string;
|
|
19
|
+
//# sourceMappingURL=relay-tls.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relay-tls.d.ts","sourceRoot":"","sources":["../src/relay-tls.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,qBAAqB,EAKtB,MAAM,YAAY,CAAC;AAKpB,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,aAAa,CAAC;IAC/C,OAAO,EAAE,OAAO,CAAC;CAClB;AAID,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,2BAA2B,GACnC,qBAAqB,CAgBvB;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,YAAY,SAAwB,GACnC,MAAM,CAER;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,YAAY,SAAwB,GACnC,MAAM,CAER"}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
import forge from "node-forge";
|
|
2
|
+
import initRustls, { TlsServer as RustlsServer, } from "./browser-tls-rustls/browser_tls_rustls.js";
|
|
3
|
+
const TLS_IDENTITY_CACHE_KEY = "personal-server-lite-tls-identity-v1";
|
|
4
|
+
const DEFAULT_PUBLIC_SUFFIX = "34.16.49.200.sslip.io";
|
|
5
|
+
let rustlsInitPromise;
|
|
6
|
+
export function createRustlsPsLiteRelayTlsFactory(options) {
|
|
7
|
+
let identityPromise;
|
|
8
|
+
return {
|
|
9
|
+
async prepare(input) {
|
|
10
|
+
identityPromise ??= createTlsIdentity(input, options);
|
|
11
|
+
await identityPromise;
|
|
12
|
+
},
|
|
13
|
+
async createStream(input) {
|
|
14
|
+
await ensureRustls();
|
|
15
|
+
identityPromise ??= createTlsIdentity(input, options);
|
|
16
|
+
const identity = await identityPromise;
|
|
17
|
+
const tls = new RustlsServer(identity.certPem, identity.keyPem);
|
|
18
|
+
return createRustlsStream(tls);
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export function psLiteRelayPublicHost(sessionId, publicSuffix = DEFAULT_PUBLIC_SUFFIX) {
|
|
23
|
+
return `${sessionId}.${publicSuffix.replace(/^\./, "")}`;
|
|
24
|
+
}
|
|
25
|
+
export function psLiteRelayPublicUrl(sessionId, publicSuffix = DEFAULT_PUBLIC_SUFFIX) {
|
|
26
|
+
return `https://${psLiteRelayPublicHost(sessionId, publicSuffix)}`;
|
|
27
|
+
}
|
|
28
|
+
function createRustlsStream(tls) {
|
|
29
|
+
return {
|
|
30
|
+
processTls(payload) {
|
|
31
|
+
return normalizeTlsStep(tls.process_tls(payload));
|
|
32
|
+
},
|
|
33
|
+
writePlaintext(payload, endStream) {
|
|
34
|
+
return normalizeTlsStep(tls.write_plaintext(payload, endStream));
|
|
35
|
+
},
|
|
36
|
+
close() {
|
|
37
|
+
tls.free();
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
function ensureRustls() {
|
|
42
|
+
rustlsInitPromise ??= initRustls();
|
|
43
|
+
return rustlsInitPromise;
|
|
44
|
+
}
|
|
45
|
+
function normalizeTlsStep(value) {
|
|
46
|
+
const step = value;
|
|
47
|
+
return {
|
|
48
|
+
plaintext: step.plaintext instanceof Uint8Array ? step.plaintext : new Uint8Array(),
|
|
49
|
+
tls: step.tls instanceof Uint8Array ? step.tls : new Uint8Array(),
|
|
50
|
+
handshaking: Boolean(step.handshaking),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
async function createTlsIdentity(input, options) {
|
|
54
|
+
const hostname = psLiteRelayPublicHost(input.sessionId, options.publicSuffix);
|
|
55
|
+
const cached = readCachedTlsIdentity(hostname, options.storage);
|
|
56
|
+
if (cached) {
|
|
57
|
+
return cached;
|
|
58
|
+
}
|
|
59
|
+
const keys = await generateKeyPair();
|
|
60
|
+
const keyPem = forge.pki.privateKeyToPem(keys.privateKey);
|
|
61
|
+
const csrPem = createCsrPem(hostname, keys);
|
|
62
|
+
const issued = await requestAcmeCertificate({
|
|
63
|
+
issuerUrl: resolveCertIssuerUrl(options),
|
|
64
|
+
sessionId: input.sessionId,
|
|
65
|
+
csrPem,
|
|
66
|
+
keyPem,
|
|
67
|
+
issueToken: input.issueToken ?? "",
|
|
68
|
+
hostname,
|
|
69
|
+
storage: options.storage,
|
|
70
|
+
logger: options.logger,
|
|
71
|
+
});
|
|
72
|
+
if (issued) {
|
|
73
|
+
return issued;
|
|
74
|
+
}
|
|
75
|
+
return createSelfSignedIdentity(hostname, keyPem, keys);
|
|
76
|
+
}
|
|
77
|
+
function generateKeyPair() {
|
|
78
|
+
return new Promise((resolve, reject) => {
|
|
79
|
+
forge.pki.rsa.generateKeyPair({ bits: 2048, workers: -1 }, (error, keyPair) => {
|
|
80
|
+
if (error || !keyPair) {
|
|
81
|
+
reject(error ?? new Error("failed to generate keypair"));
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
resolve(keyPair);
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
function createCsrPem(hostname, keys) {
|
|
89
|
+
const csr = forge.pki.createCertificationRequest();
|
|
90
|
+
csr.publicKey = keys.publicKey;
|
|
91
|
+
csr.setSubject([{ name: "commonName", value: hostname }]);
|
|
92
|
+
csr.setAttributes([
|
|
93
|
+
{
|
|
94
|
+
name: "extensionRequest",
|
|
95
|
+
extensions: [
|
|
96
|
+
{
|
|
97
|
+
name: "subjectAltName",
|
|
98
|
+
altNames: [{ type: 2, value: hostname }],
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
},
|
|
102
|
+
]);
|
|
103
|
+
csr.sign(keys.privateKey, forge.md.sha256.create());
|
|
104
|
+
return forge.pki.certificationRequestToPem(csr);
|
|
105
|
+
}
|
|
106
|
+
function createSelfSignedIdentity(hostname, keyPem, keys) {
|
|
107
|
+
const cert = forge.pki.createCertificate();
|
|
108
|
+
cert.publicKey = keys.publicKey;
|
|
109
|
+
cert.serialNumber = Array.from(crypto.getRandomValues(new Uint8Array(12)), (byte) => byte.toString(16).padStart(2, "0")).join("");
|
|
110
|
+
cert.validity.notBefore = new Date(Date.now() - 60_000);
|
|
111
|
+
cert.validity.notAfter = new Date(Date.now() + 24 * 60 * 60 * 1000);
|
|
112
|
+
const attrs = [{ name: "commonName", value: hostname }];
|
|
113
|
+
cert.setSubject(attrs);
|
|
114
|
+
cert.setIssuer(attrs);
|
|
115
|
+
cert.setExtensions([
|
|
116
|
+
{ name: "basicConstraints", cA: false },
|
|
117
|
+
{ name: "keyUsage", digitalSignature: true, keyEncipherment: true },
|
|
118
|
+
{ name: "extKeyUsage", serverAuth: true },
|
|
119
|
+
{
|
|
120
|
+
name: "subjectAltName",
|
|
121
|
+
altNames: [{ type: 2, value: hostname }],
|
|
122
|
+
},
|
|
123
|
+
]);
|
|
124
|
+
cert.sign(keys.privateKey, forge.md.sha256.create());
|
|
125
|
+
return {
|
|
126
|
+
certPem: forge.pki.certificateToPem(cert),
|
|
127
|
+
keyPem,
|
|
128
|
+
hostname,
|
|
129
|
+
source: "self-signed",
|
|
130
|
+
trusted: false,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
async function requestAcmeCertificate(input) {
|
|
134
|
+
if (!input.issueToken) {
|
|
135
|
+
input.logger?.("ACME issuer token unavailable; using self-signed certificate");
|
|
136
|
+
return undefined;
|
|
137
|
+
}
|
|
138
|
+
try {
|
|
139
|
+
const response = await fetch(input.issuerUrl, {
|
|
140
|
+
method: "POST",
|
|
141
|
+
headers: { "content-type": "application/json" },
|
|
142
|
+
body: JSON.stringify({
|
|
143
|
+
sessionId: input.sessionId,
|
|
144
|
+
csrPem: input.csrPem,
|
|
145
|
+
issueToken: input.issueToken,
|
|
146
|
+
}),
|
|
147
|
+
});
|
|
148
|
+
if (!response.ok) {
|
|
149
|
+
const detail = await response.text();
|
|
150
|
+
input.logger?.(`ACME issuer unavailable (${response.status}); using self-signed certificate`);
|
|
151
|
+
input.logger?.(detail.slice(0, 240));
|
|
152
|
+
return undefined;
|
|
153
|
+
}
|
|
154
|
+
const payload = (await response.json());
|
|
155
|
+
if (!payload.certPem) {
|
|
156
|
+
input.logger?.("ACME issuer returned no certificate; using self-signed certificate");
|
|
157
|
+
return undefined;
|
|
158
|
+
}
|
|
159
|
+
const identity = {
|
|
160
|
+
certPem: payload.certPem,
|
|
161
|
+
keyPem: input.keyPem,
|
|
162
|
+
hostname: input.hostname,
|
|
163
|
+
source: "acme",
|
|
164
|
+
trusted: true,
|
|
165
|
+
};
|
|
166
|
+
cacheTlsIdentity(identity, input.storage);
|
|
167
|
+
return identity;
|
|
168
|
+
}
|
|
169
|
+
catch (error) {
|
|
170
|
+
input.logger?.(error instanceof Error ? error.message : String(error));
|
|
171
|
+
input.logger?.("ACME certificate request failed; using self-signed certificate");
|
|
172
|
+
return undefined;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
function resolveCertIssuerUrl(options) {
|
|
176
|
+
if (options.certIssuerUrl) {
|
|
177
|
+
return options.certIssuerUrl.replace(/\/+$/, "");
|
|
178
|
+
}
|
|
179
|
+
const url = new URL(options.controlUrl);
|
|
180
|
+
url.protocol = url.protocol === "wss:" ? "https:" : "http:";
|
|
181
|
+
url.pathname = "/issue-cert";
|
|
182
|
+
url.search = "";
|
|
183
|
+
url.hash = "";
|
|
184
|
+
return url.toString();
|
|
185
|
+
}
|
|
186
|
+
function readCachedTlsIdentity(hostname, storage = globalThis.localStorage) {
|
|
187
|
+
try {
|
|
188
|
+
const raw = storage.getItem(`${TLS_IDENTITY_CACHE_KEY}:${hostname}`);
|
|
189
|
+
if (!raw) {
|
|
190
|
+
return undefined;
|
|
191
|
+
}
|
|
192
|
+
const identity = JSON.parse(raw);
|
|
193
|
+
if (identity.hostname !== hostname ||
|
|
194
|
+
!identity.certPem ||
|
|
195
|
+
!identity.keyPem ||
|
|
196
|
+
identity.source !== "acme") {
|
|
197
|
+
return undefined;
|
|
198
|
+
}
|
|
199
|
+
const notAfter = firstCertificateNotAfter(identity.certPem);
|
|
200
|
+
if (notAfter.getTime() - Date.now() < 24 * 60 * 60 * 1000) {
|
|
201
|
+
return undefined;
|
|
202
|
+
}
|
|
203
|
+
return {
|
|
204
|
+
...identity,
|
|
205
|
+
source: "cached-acme",
|
|
206
|
+
trusted: true,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
catch {
|
|
210
|
+
return undefined;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
function cacheTlsIdentity(identity, storage = globalThis.localStorage) {
|
|
214
|
+
if (identity.source !== "acme") {
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
storage.setItem(`${TLS_IDENTITY_CACHE_KEY}:${identity.hostname}`, JSON.stringify(identity));
|
|
218
|
+
}
|
|
219
|
+
function firstCertificateNotAfter(certPem) {
|
|
220
|
+
const match = certPem.match(/-----BEGIN CERTIFICATE-----[\s\S]+?-----END CERTIFICATE-----/);
|
|
221
|
+
if (!match) {
|
|
222
|
+
return new Date(0);
|
|
223
|
+
}
|
|
224
|
+
return forge.pki.certificateFromPem(match[0]).validity.notAfter;
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=relay-tls.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relay-tls.js","sourceRoot":"","sources":["../src/relay-tls.ts"],"names":[],"mappings":"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"}
|