@opendatalabs/personal-server-ts-server 1.33.8 → 1.34.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__fixtures__/bound-record-store.d.ts +19 -0
- package/dist/__fixtures__/bound-record-store.d.ts.map +1 -0
- package/dist/__fixtures__/bound-record-store.js +60 -0
- package/dist/__fixtures__/bound-record-store.js.map +1 -0
- package/dist/__fixtures__/cg-pdpp-client/pdpp-authorization-strategy.d.ts +41 -0
- package/dist/__fixtures__/cg-pdpp-client/pdpp-authorization-strategy.d.ts.map +1 -0
- package/dist/__fixtures__/cg-pdpp-client/pdpp-authorization-strategy.js +34 -0
- package/dist/__fixtures__/cg-pdpp-client/pdpp-authorization-strategy.js.map +1 -0
- package/dist/__fixtures__/cg-pdpp-client/pdpp-context-client.d.ts +112 -0
- package/dist/__fixtures__/cg-pdpp-client/pdpp-context-client.d.ts.map +1 -0
- package/dist/__fixtures__/cg-pdpp-client/pdpp-context-client.js +226 -0
- package/dist/__fixtures__/cg-pdpp-client/pdpp-context-client.js.map +1 -0
- package/dist/__fixtures__/cg-pdpp-client/pdpp-types.d.ts +135 -0
- package/dist/__fixtures__/cg-pdpp-client/pdpp-types.d.ts.map +1 -0
- package/dist/__fixtures__/cg-pdpp-client/pdpp-types.js +21 -0
- package/dist/__fixtures__/cg-pdpp-client/pdpp-types.js.map +1 -0
- package/dist/api-auth.d.ts +18 -2
- package/dist/api-auth.d.ts.map +1 -1
- package/dist/api-auth.js +114 -22
- package/dist/api-auth.js.map +1 -1
- package/dist/app.d.ts +60 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +139 -1
- package/dist/app.js.map +1 -1
- package/dist/bootstrap.d.ts +10 -0
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +359 -8
- package/dist/bootstrap.js.map +1 -1
- package/dist/enclave-main.d.ts +4 -0
- package/dist/enclave-main.d.ts.map +1 -1
- package/dist/enclave-main.js +152 -1
- package/dist/enclave-main.js.map +1 -1
- package/dist/middleware/body-limit.d.ts +1 -1
- package/dist/middleware/body-limit.d.ts.map +1 -1
- package/dist/middleware/body-limit.js +8 -3
- package/dist/middleware/body-limit.js.map +1 -1
- package/dist/middleware/cors.d.ts.map +1 -1
- package/dist/middleware/cors.js +1 -0
- package/dist/middleware/cors.js.map +1 -1
- package/dist/package.json +9 -1
- package/dist/pdpp/bootstrap.d.ts +72 -0
- package/dist/pdpp/bootstrap.d.ts.map +1 -0
- package/dist/pdpp/bootstrap.js +270 -0
- package/dist/pdpp/bootstrap.js.map +1 -0
- package/dist/pdpp/chain-enforcement.d.ts +95 -0
- package/dist/pdpp/chain-enforcement.d.ts.map +1 -0
- package/dist/pdpp/chain-enforcement.js +145 -0
- package/dist/pdpp/chain-enforcement.js.map +1 -0
- package/dist/pdpp/client-document-fetch.d.ts +63 -0
- package/dist/pdpp/client-document-fetch.d.ts.map +1 -0
- package/dist/pdpp/client-document-fetch.js +254 -0
- package/dist/pdpp/client-document-fetch.js.map +1 -0
- package/dist/pdpp/declaration-registry.d.ts +83 -0
- package/dist/pdpp/declaration-registry.d.ts.map +1 -0
- package/dist/pdpp/declaration-registry.js +251 -0
- package/dist/pdpp/declaration-registry.js.map +1 -0
- package/dist/pdpp/deployment.d.ts +70 -0
- package/dist/pdpp/deployment.d.ts.map +1 -0
- package/dist/pdpp/deployment.js +104 -0
- package/dist/pdpp/deployment.js.map +1 -0
- package/dist/pdpp/record-schema.d.ts +2 -0
- package/dist/pdpp/record-schema.d.ts.map +1 -0
- package/dist/pdpp/record-schema.js +2 -0
- package/dist/pdpp/record-schema.js.map +1 -0
- package/dist/pdpp/records-bootstrap.d.ts +111 -0
- package/dist/pdpp/records-bootstrap.d.ts.map +1 -0
- package/dist/pdpp/records-bootstrap.js +353 -0
- package/dist/pdpp/records-bootstrap.js.map +1 -0
- package/dist/pdpp/source-id-compat.d.ts +5 -0
- package/dist/pdpp/source-id-compat.d.ts.map +1 -0
- package/dist/pdpp/source-id-compat.js +16 -0
- package/dist/pdpp/source-id-compat.js.map +1 -0
- package/dist/pdpp/test-connections.d.ts +6 -0
- package/dist/pdpp/test-connections.d.ts.map +1 -0
- package/dist/pdpp/test-connections.js +37 -0
- package/dist/pdpp/test-connections.js.map +1 -0
- package/dist/routes/auth-device.d.ts.map +1 -1
- package/dist/routes/auth-device.js +3 -0
- package/dist/routes/auth-device.js.map +1 -1
- package/dist/routes/chunked-scope-import.d.ts +41 -0
- package/dist/routes/chunked-scope-import.d.ts.map +1 -0
- package/dist/routes/chunked-scope-import.js +901 -0
- package/dist/routes/chunked-scope-import.js.map +1 -0
- package/dist/routes/data.d.ts +23 -1
- package/dist/routes/data.d.ts.map +1 -1
- package/dist/routes/data.js +112 -1
- package/dist/routes/data.js.map +1 -1
- package/dist/routes/grants.d.ts.map +1 -1
- package/dist/routes/grants.js +2 -0
- package/dist/routes/grants.js.map +1 -1
- package/dist/routes/mcp.d.ts.map +1 -1
- package/dist/routes/mcp.js +3 -0
- package/dist/routes/mcp.js.map +1 -1
- package/dist/routes/pdpp-auth.d.ts +157 -0
- package/dist/routes/pdpp-auth.d.ts.map +1 -0
- package/dist/routes/pdpp-auth.js +953 -0
- package/dist/routes/pdpp-auth.js.map +1 -0
- package/dist/routes/pdpp-blobs.d.ts +26 -0
- package/dist/routes/pdpp-blobs.d.ts.map +1 -0
- package/dist/routes/pdpp-blobs.js +179 -0
- package/dist/routes/pdpp-blobs.js.map +1 -0
- package/dist/routes/pdpp-connections.d.ts +28 -0
- package/dist/routes/pdpp-connections.d.ts.map +1 -0
- package/dist/routes/pdpp-connections.js +144 -0
- package/dist/routes/pdpp-connections.js.map +1 -0
- package/dist/routes/pdpp-declarations.d.ts +58 -0
- package/dist/routes/pdpp-declarations.d.ts.map +1 -0
- package/dist/routes/pdpp-declarations.js +94 -0
- package/dist/routes/pdpp-declarations.js.map +1 -0
- package/dist/routes/pdpp-instance-bindings.d.ts +26 -0
- package/dist/routes/pdpp-instance-bindings.d.ts.map +1 -0
- package/dist/routes/pdpp-instance-bindings.js +124 -0
- package/dist/routes/pdpp-instance-bindings.js.map +1 -0
- package/dist/routes/pdpp-records.d.ts +158 -0
- package/dist/routes/pdpp-records.d.ts.map +1 -0
- package/dist/routes/pdpp-records.js +1537 -0
- package/dist/routes/pdpp-records.js.map +1 -0
- package/dist/routes/pdpp-well-known.d.ts +13 -0
- package/dist/routes/pdpp-well-known.d.ts.map +1 -0
- package/dist/routes/pdpp-well-known.js +20 -0
- package/dist/routes/pdpp-well-known.js.map +1 -0
- package/dist/storage/declaration-witness.d.ts +56 -0
- package/dist/storage/declaration-witness.d.ts.map +1 -0
- package/dist/storage/declaration-witness.js +273 -0
- package/dist/storage/declaration-witness.js.map +1 -0
- package/dist/storage/hierarchy.d.ts +25 -1
- package/dist/storage/hierarchy.d.ts.map +1 -1
- package/dist/storage/hierarchy.js +210 -16
- package/dist/storage/hierarchy.js.map +1 -1
- package/dist/storage/import-operations.d.ts +11 -0
- package/dist/storage/import-operations.d.ts.map +1 -0
- package/dist/storage/import-operations.js +261 -0
- package/dist/storage/import-operations.js.map +1 -0
- package/dist/storage/index-manager.d.ts +24 -2
- package/dist/storage/index-manager.d.ts.map +1 -1
- package/dist/storage/index-manager.js +279 -30
- package/dist/storage/index-manager.js.map +1 -1
- package/dist/storage/index-schema.d.ts +1 -1
- package/dist/storage/index-schema.d.ts.map +1 -1
- package/dist/storage/index-schema.js +189 -8
- package/dist/storage/index-schema.js.map +1 -1
- package/dist/storage/legacy-scope-authority.d.ts +14 -0
- package/dist/storage/legacy-scope-authority.d.ts.map +1 -0
- package/dist/storage/legacy-scope-authority.js +298 -0
- package/dist/storage/legacy-scope-authority.js.map +1 -0
- package/dist/storage/node-data-storage.d.ts +6 -0
- package/dist/storage/node-data-storage.d.ts.map +1 -1
- package/dist/storage/node-data-storage.js +161 -2
- package/dist/storage/node-data-storage.js.map +1 -1
- package/dist/storage/pdpp-grant-binding-sqlite-store.d.ts +17 -0
- package/dist/storage/pdpp-grant-binding-sqlite-store.d.ts.map +1 -0
- package/dist/storage/pdpp-grant-binding-sqlite-store.js +159 -0
- package/dist/storage/pdpp-grant-binding-sqlite-store.js.map +1 -0
- package/dist/storage/pdpp-records-sqlite-store.d.ts +112 -0
- package/dist/storage/pdpp-records-sqlite-store.d.ts.map +1 -0
- package/dist/storage/pdpp-records-sqlite-store.js +1440 -0
- package/dist/storage/pdpp-records-sqlite-store.js.map +1 -0
- package/dist/storage/pdpp-stream-completion.d.ts +5 -0
- package/dist/storage/pdpp-stream-completion.d.ts.map +1 -0
- package/dist/storage/pdpp-stream-completion.js +10 -0
- package/dist/storage/pdpp-stream-completion.js.map +1 -0
- package/dist/storage/scope-deletion-history.d.ts +8 -0
- package/dist/storage/scope-deletion-history.d.ts.map +1 -0
- package/dist/storage/scope-deletion-history.js +40 -0
- package/dist/storage/scope-deletion-history.js.map +1 -0
- package/dist/ui/ps-lite-debug.js +3981 -1109
- package/package.json +12 -4
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Boot the PDPP Resource Server for a real Personal Server.
|
|
3
|
+
*
|
|
4
|
+
* `createPdppAuthDeps` makes a running server a PDPP *authorization* server.
|
|
5
|
+
* This is its counterpart: without it a real deployment can issue a perfectly
|
|
6
|
+
* valid grant-bound token that has nothing to read, and cannot even publish
|
|
7
|
+
* the RFC 9728 metadata a client needs to discover where to authorize.
|
|
8
|
+
*
|
|
9
|
+
* Two deliberate choices about where things come from:
|
|
10
|
+
*
|
|
11
|
+
* 1. Stream declarations are derived from the SAME retained declaration
|
|
12
|
+
* snapshots the AS resolved grants against — not a second config list.
|
|
13
|
+
* A grant freezes a declaration version at consent time; if the RS read
|
|
14
|
+
* its stream shapes from somewhere else, the two could disagree about
|
|
15
|
+
* what a stream's primary key or required fields are, and enforcement
|
|
16
|
+
* would be measured against a different document than the one the owner
|
|
17
|
+
* consented to. One retained snapshot, one authority.
|
|
18
|
+
*
|
|
19
|
+
* 2. Token resolution is the co-located path: the RS resolves through the
|
|
20
|
+
* AS's own `PdppTokenService` in-process. Core §8 permits this for a
|
|
21
|
+
* co-located AS+RS, and it is the only correct option here because there
|
|
22
|
+
* is exactly one authority — introspecting over HTTP against ourselves
|
|
23
|
+
* would add a network hop and a second code path without adding a second
|
|
24
|
+
* opinion. A separated deployment is a different wiring, not this one.
|
|
25
|
+
*
|
|
26
|
+
* Returns undefined when the AS did not mount, which leaves the resource
|
|
27
|
+
* surface unmounted too. An RS with no authorization server cannot enforce a
|
|
28
|
+
* grant, and a resource server that cannot enforce is worse than absent.
|
|
29
|
+
*/
|
|
30
|
+
import { createHash } from "node:crypto";
|
|
31
|
+
import { createSourceStreamDeclarationRegistry, } from "@opendatalabs/personal-server-ts-core/storage/pdpp-records";
|
|
32
|
+
import { createPdppImporter, } from "@opendatalabs/personal-server-ts-core/sync";
|
|
33
|
+
import { createSqliteRecordStore, PdppBindingError, } from "../storage/pdpp-records-sqlite-store.js";
|
|
34
|
+
/** Restore account-one registry rows for legacy scopes before Desktop reads the registry. */
|
|
35
|
+
export function registerLegacyDataConnections(options) {
|
|
36
|
+
if (!options.serverOwner)
|
|
37
|
+
return;
|
|
38
|
+
const store = createSqliteRecordStore(options.db);
|
|
39
|
+
const scopesWithData = new Set(options.legacyScopes.map((scope) => scope.split(".", 1)[0]?.toLowerCase()));
|
|
40
|
+
const subjectId = options.serverOwner.toLowerCase();
|
|
41
|
+
for (const [sourceId, methods] of options.connectionMethods) {
|
|
42
|
+
const connector = sourceId.split("/").filter(Boolean).at(-1) ?? sourceId;
|
|
43
|
+
if (!scopesWithData.has(connector.toLowerCase()) || methods.length !== 1) {
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
const [method] = methods;
|
|
47
|
+
if (!method || store.listConnections(sourceId).length > 0)
|
|
48
|
+
continue;
|
|
49
|
+
const instance = `${connector}:${subjectId}`;
|
|
50
|
+
const binding = store.getInstanceBinding(instance);
|
|
51
|
+
if (binding.deletedAt !== null ||
|
|
52
|
+
(binding.method !== method &&
|
|
53
|
+
!(binding.method === null &&
|
|
54
|
+
binding.empty &&
|
|
55
|
+
binding.sourceId === null)) ||
|
|
56
|
+
(binding.sourceId !== null && binding.sourceId !== sourceId)) {
|
|
57
|
+
options.logger.warn({ sourceId }, "PDPP legacy-data binding does not match this boot and was left unchanged");
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
try {
|
|
61
|
+
store.registerConnection({ instance, sourceId, method, label: "" });
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
if (!(error instanceof PdppBindingError))
|
|
65
|
+
throw error;
|
|
66
|
+
if (error.reason !== "connection_deleted" &&
|
|
67
|
+
error.reason !== "connection_conflict") {
|
|
68
|
+
throw error;
|
|
69
|
+
}
|
|
70
|
+
options.logger.warn({ sourceId }, "PDPP legacy-data binding changed during startup and was left unchanged");
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
export function createPdppRecordsDeps(options) {
|
|
75
|
+
const { pdppAuth, logger } = options;
|
|
76
|
+
// No authorization server means no authority to enforce against.
|
|
77
|
+
if (!pdppAuth || !options.serverOwner)
|
|
78
|
+
return undefined;
|
|
79
|
+
const subjectId = options.serverOwner.toLowerCase();
|
|
80
|
+
// Declarations define stream shapes. The active connection registry defines
|
|
81
|
+
// which instances exist for each source.
|
|
82
|
+
const sources = [];
|
|
83
|
+
for (const snapshot of options.declarations) {
|
|
84
|
+
const connector = snapshot.source_id.split("/").filter(Boolean).pop() ?? snapshot.source_id;
|
|
85
|
+
const instance = `${connector}:${subjectId}`;
|
|
86
|
+
sources.push({
|
|
87
|
+
sourceId: snapshot.source_id,
|
|
88
|
+
instance,
|
|
89
|
+
streams: toStreamDeclarations(snapshot),
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
const streams = sources.flatMap((source) => source.streams);
|
|
93
|
+
if (streams.length === 0) {
|
|
94
|
+
logger.warn("PDPP retained declarations define no streams — resource server not mounted");
|
|
95
|
+
return undefined;
|
|
96
|
+
}
|
|
97
|
+
const configuredMethods = new Map();
|
|
98
|
+
for (const configured of options.configuredMethods ?? []) {
|
|
99
|
+
const source = sources.find((candidate) => candidate.sourceId === configured.sourceId);
|
|
100
|
+
if (!source)
|
|
101
|
+
continue;
|
|
102
|
+
const methodIds = configuredMethods.get(source.sourceId) ?? [];
|
|
103
|
+
methodIds.push(configured.methodId);
|
|
104
|
+
configuredMethods.set(source.sourceId, methodIds);
|
|
105
|
+
}
|
|
106
|
+
const store = createSqliteRecordStore(options.db);
|
|
107
|
+
// Register account 1 only for an empty source registry. Never add a legacy
|
|
108
|
+
// fallback beside a connection that the owner already registered.
|
|
109
|
+
for (const source of sources) {
|
|
110
|
+
const instance = source.instance;
|
|
111
|
+
if (!instance)
|
|
112
|
+
continue;
|
|
113
|
+
const methods = configuredMethods.get(source.sourceId) ?? [];
|
|
114
|
+
if (methods.length !== 1)
|
|
115
|
+
continue;
|
|
116
|
+
const method = methods[0];
|
|
117
|
+
if (!method)
|
|
118
|
+
continue;
|
|
119
|
+
if (store.listConnections(source.sourceId).length > 0)
|
|
120
|
+
continue;
|
|
121
|
+
const binding = store.getInstanceBinding(instance);
|
|
122
|
+
if (binding.deletedAt !== null ||
|
|
123
|
+
(binding.method !== method &&
|
|
124
|
+
!(binding.method === null &&
|
|
125
|
+
binding.empty &&
|
|
126
|
+
binding.sourceId === null)) ||
|
|
127
|
+
(binding.sourceId !== null && binding.sourceId !== source.sourceId)) {
|
|
128
|
+
logger.warn({ sourceId: source.sourceId }, "PDPP account-one binding does not match this boot and was left unchanged");
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
try {
|
|
132
|
+
store.registerConnection({
|
|
133
|
+
instance,
|
|
134
|
+
sourceId: source.sourceId,
|
|
135
|
+
method,
|
|
136
|
+
label: "",
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
if (!(error instanceof PdppBindingError))
|
|
141
|
+
throw error;
|
|
142
|
+
if (error.reason !== "connection_deleted" &&
|
|
143
|
+
error.reason !== "connection_conflict") {
|
|
144
|
+
throw error;
|
|
145
|
+
}
|
|
146
|
+
logger.warn({ sourceId: source.sourceId }, "PDPP account-one binding changed during startup and was left unchanged");
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
// Rebuild each registered connection's active-method view from the
|
|
150
|
+
// durable binding and this boot's source configuration. New connection
|
|
151
|
+
// ids survive a PS restart; keeping this map legacy-only would leave them
|
|
152
|
+
// registered but unable to write.
|
|
153
|
+
for (const source of sources) {
|
|
154
|
+
const methods = configuredMethods.get(source.sourceId) ?? [];
|
|
155
|
+
for (const connection of store.listConnections(source.sourceId)) {
|
|
156
|
+
if (connection.method && methods.includes(connection.method)) {
|
|
157
|
+
configuredMethods.set(connection.instance, [connection.method]);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
const sourceRegistry = createSourceStreamDeclarationRegistry(sources);
|
|
162
|
+
const declarations = {
|
|
163
|
+
get: (stream, sourceId) => sourceRegistry.get(stream, sourceId),
|
|
164
|
+
forInstance(instance, stream) {
|
|
165
|
+
// Resolve authority from the live connection registry on every read.
|
|
166
|
+
// A deleted or unregistered handle has no source declaration.
|
|
167
|
+
const sourceId = store.getInstanceBinding(instance).sourceId;
|
|
168
|
+
return sourceId ? sourceRegistry.get(stream, sourceId) : undefined;
|
|
169
|
+
},
|
|
170
|
+
declares: (stream) => sourceRegistry.declares(stream),
|
|
171
|
+
list: () => sourceRegistry.list(),
|
|
172
|
+
};
|
|
173
|
+
const connectionInventory = (sourceId) => ({
|
|
174
|
+
eligibleFor: () => store.listConnections(sourceId).map((connection) => connection.instance),
|
|
175
|
+
});
|
|
176
|
+
pdppAuth.inventoryFor = (subject, sourceId) => subject.toLowerCase() === subjectId &&
|
|
177
|
+
sources.some((source) => source.sourceId === sourceId)
|
|
178
|
+
? connectionInventory(sourceId)
|
|
179
|
+
: { eligibleFor: () => [] };
|
|
180
|
+
pdppAuth.connectionState = (instance) => {
|
|
181
|
+
const binding = store.getInstanceBinding(instance);
|
|
182
|
+
return {
|
|
183
|
+
sourceId: binding.sourceId,
|
|
184
|
+
deleted: binding.deletedAt !== null,
|
|
185
|
+
};
|
|
186
|
+
};
|
|
187
|
+
logger.info({ streams: streams.map((s) => s.name), resource: options.resource }, "PDPP Resource Server mounted at /v1");
|
|
188
|
+
return {
|
|
189
|
+
store,
|
|
190
|
+
bindingStore: store,
|
|
191
|
+
configuredMethods,
|
|
192
|
+
auth: coLocatedAuthorizationService(pdppAuth),
|
|
193
|
+
declarations,
|
|
194
|
+
// This deployment has exactly one owner. A subject other than that
|
|
195
|
+
// owner (however it got an "owner"-kind token) owns none of these
|
|
196
|
+
// instances — comparison normalized the same way subjectId is derived
|
|
197
|
+
// above (lowercased address), so casing never causes a false mismatch.
|
|
198
|
+
instancesForSubject: (subject) => subject.toLowerCase() === subjectId
|
|
199
|
+
? Array.from(new Set(sources.flatMap((source) => store
|
|
200
|
+
.listConnections(source.sourceId)
|
|
201
|
+
.map((connection) => connection.instance))))
|
|
202
|
+
: [],
|
|
203
|
+
instancesForSource: (subject, sourceId) => subject.toLowerCase() === subjectId
|
|
204
|
+
? store
|
|
205
|
+
.listConnections(sourceId)
|
|
206
|
+
.map((connection) => connection.instance)
|
|
207
|
+
: [],
|
|
208
|
+
// Real boot wiring for GET /v1/blobs/:blobId: reads the same store the
|
|
209
|
+
// blob was ingested into, so this deployment can only ever serve bytes
|
|
210
|
+
// it verifiably stored -- store.getBlobBytes re-verifies size/sha256
|
|
211
|
+
// against the recorded metadata on every read (fails closed on
|
|
212
|
+
// corruption or metadata-only rows) rather than trusting the disk blindly.
|
|
213
|
+
readBlobBytes: async (blobId) => store.getBlobBytes(blobId),
|
|
214
|
+
resource: options.resource,
|
|
215
|
+
// Co-located: this server is its own authorization server.
|
|
216
|
+
authorizationServers: [options.resource],
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Resolve tokens through the AS in-process.
|
|
221
|
+
*
|
|
222
|
+
* The AS's `resolveToken` is synchronous and marks `tokenKind`/`subjectId`
|
|
223
|
+
* optional, because an inactive token carries neither (RFC 7662 §2.2). The
|
|
224
|
+
* RS port is async and requires them, so this narrows explicitly rather than
|
|
225
|
+
* casting: an inactive result must never yield an undefined subject that
|
|
226
|
+
* flows onward into an authorization decision.
|
|
227
|
+
*/
|
|
228
|
+
export function coLocatedAuthorizationService(pdppAuth) {
|
|
229
|
+
return {
|
|
230
|
+
async resolveToken(accessToken) {
|
|
231
|
+
const context = pdppAuth.tokens.resolveToken(accessToken);
|
|
232
|
+
if (!context.active) {
|
|
233
|
+
return {
|
|
234
|
+
active: false,
|
|
235
|
+
tokenKind: "client",
|
|
236
|
+
subjectId: "",
|
|
237
|
+
inactiveReason: context.inactiveReason,
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
return {
|
|
241
|
+
active: true,
|
|
242
|
+
tokenKind: context.tokenKind ?? "client",
|
|
243
|
+
subjectId: context.subjectId ?? "",
|
|
244
|
+
sourceId: context.sourceId,
|
|
245
|
+
instanceIds: context.instanceIds,
|
|
246
|
+
grant: context.grant,
|
|
247
|
+
clientId: context.clientId,
|
|
248
|
+
expiresAt: context.expiresAt,
|
|
249
|
+
};
|
|
250
|
+
},
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Build the sync importer that maps qualifying DataPipe envelopes into the
|
|
255
|
+
* record store the RS reads from.
|
|
256
|
+
*
|
|
257
|
+
* Built from the SAME retained snapshots and the SAME instance derivation as
|
|
258
|
+
* the RS above, for the same reason given at the top of this file: a record
|
|
259
|
+
* imported under a different stream shape or a different instance handle than
|
|
260
|
+
* the RS enforces against is a record no grant can correctly reach. One
|
|
261
|
+
* retained declaration, one authority — on the write path too.
|
|
262
|
+
*
|
|
263
|
+
* The SQLite store refuses every write from this importer with
|
|
264
|
+
* `method_required`: `$pdpp` metadata names no acquisition method or binding
|
|
265
|
+
* generation, so P8a and P8c cannot be applied to it. The importer reports
|
|
266
|
+
* that as a terminal `method_authority` rejection and does not retry it.
|
|
267
|
+
*
|
|
268
|
+
* Returns undefined when the RS did not mount. Importing into a store nothing
|
|
269
|
+
* can read would be write-only work, and it would do it against declarations
|
|
270
|
+
* this deployment has not accepted.
|
|
271
|
+
*/
|
|
272
|
+
export function createPdppSyncImporter(options) {
|
|
273
|
+
const { records, serverOwner, logger } = options;
|
|
274
|
+
if (!records || !serverOwner)
|
|
275
|
+
return undefined;
|
|
276
|
+
const retained = [];
|
|
277
|
+
for (const snapshot of options.declarations) {
|
|
278
|
+
const document = options.documents.get(snapshot.source_id);
|
|
279
|
+
if (document === undefined) {
|
|
280
|
+
// A snapshot with no retained document cannot have its digest
|
|
281
|
+
// verified, and an unverifiable declaration must not be used as the
|
|
282
|
+
// authority for accepting writes. Skipping it is fail-closed: its
|
|
283
|
+
// envelopes are rejected as `unknown_source` rather than imported on
|
|
284
|
+
// the strength of a check that never ran.
|
|
285
|
+
logger.warn({ sourceId: snapshot.source_id }, "PDPP declaration has no retained document — sync import disabled for this source");
|
|
286
|
+
continue;
|
|
287
|
+
}
|
|
288
|
+
retained.push({
|
|
289
|
+
sourceId: snapshot.source_id,
|
|
290
|
+
version: snapshot.version,
|
|
291
|
+
// Digest the exact retained bytes once, here, because this is the only
|
|
292
|
+
// place they exist and because the importer is bundled for the browser
|
|
293
|
+
// lite runtime where `node:crypto` is unavailable.
|
|
294
|
+
documentDigest: createHash("sha256")
|
|
295
|
+
.update(document, "utf8")
|
|
296
|
+
.digest("hex"),
|
|
297
|
+
streams: toStreamDeclarations(snapshot).map((stream) => ({
|
|
298
|
+
name: stream.name,
|
|
299
|
+
primaryKey: stream.primaryKey,
|
|
300
|
+
semantics: stream.semantics,
|
|
301
|
+
})),
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
if (retained.length === 0)
|
|
305
|
+
return undefined;
|
|
306
|
+
logger.info({ sources: retained.map((d) => d.sourceId) }, "PDPP sync importer enabled for synced DataPipe envelopes");
|
|
307
|
+
return createPdppImporter({
|
|
308
|
+
store: records.store,
|
|
309
|
+
declarations: retained,
|
|
310
|
+
instanceFor: (sourceId) => {
|
|
311
|
+
const connections = records.bindingStore.listConnections(sourceId);
|
|
312
|
+
if (connections.length === 1)
|
|
313
|
+
return connections[0].instance;
|
|
314
|
+
if (connections.length > 1)
|
|
315
|
+
return undefined;
|
|
316
|
+
return undefined;
|
|
317
|
+
},
|
|
318
|
+
logger,
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Project a retained declaration onto the per-stream shapes the RS enforces.
|
|
323
|
+
*
|
|
324
|
+
* `cursorField` falls back to `emitted_at` because that is what both record
|
|
325
|
+
* store backends actually sort by; naming a declared field the store does not
|
|
326
|
+
* order by would produce cursors that resume at the wrong place.
|
|
327
|
+
*/
|
|
328
|
+
function toStreamDeclarations(snapshot) {
|
|
329
|
+
return snapshot.streams.map((stream) => ({
|
|
330
|
+
name: stream.name,
|
|
331
|
+
// From the declaration, defaulting to `mutable_state` when a declaration
|
|
332
|
+
// omits it so documents written before the field existed keep their exact
|
|
333
|
+
// meaning. Previously hardcoded, which silently coerced an `append_only`
|
|
334
|
+
// stream into upsert behavior and left a producer's claim unfalsifiable.
|
|
335
|
+
semantics: stream.semantics ?? "mutable_state",
|
|
336
|
+
primaryKey: stream.primary_key,
|
|
337
|
+
cursorField: "emitted_at",
|
|
338
|
+
consentTimeField: stream.consent_time_field,
|
|
339
|
+
requiredFields: stream.required_fields,
|
|
340
|
+
// The declared member list, carried rather than dropped: it is what makes
|
|
341
|
+
// a v0.2 grant's approved projection checkable against the snapshot the
|
|
342
|
+
// grant was resolved from. Without it the RS would have to treat any
|
|
343
|
+
// granted field as servable and answer from whatever a record happened to
|
|
344
|
+
// carry.
|
|
345
|
+
declaredFields: stream.fields,
|
|
346
|
+
// §8 stream metadata reports both; carried from the retained declaration
|
|
347
|
+
// rather than reconstructed, so what a client is told matches what the
|
|
348
|
+
// owner consented against.
|
|
349
|
+
...(stream.schema && { schema: stream.schema }),
|
|
350
|
+
...(stream.selection && { selection: stream.selection }),
|
|
351
|
+
}));
|
|
352
|
+
}
|
|
353
|
+
//# sourceMappingURL=records-bootstrap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"records-bootstrap.js","sourceRoot":"","sources":["../../src/pdpp/records-bootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** Resolve Desktop's legacy source keys only when their retained source exists. */
|
|
2
|
+
export declare function resolveRetainedSourceId(requested: string, retainedSourceIds: ReadonlySet<string>): string | undefined;
|
|
3
|
+
/** Convert only the two Desktop legacy keys into a canonical-source candidate. */
|
|
4
|
+
export declare function canonicalSourceIdCandidate(requested: string): string | undefined;
|
|
5
|
+
//# sourceMappingURL=source-id-compat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-id-compat.d.ts","sourceRoot":"","sources":["../../src/pdpp/source-id-compat.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,GACrC,MAAM,GAAG,SAAS,CAKpB;AAED,kFAAkF;AAClF,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,SAAS,CASpB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** Resolve Desktop's legacy source keys only when their retained source exists. */
|
|
2
|
+
export function resolveRetainedSourceId(requested, retainedSourceIds) {
|
|
3
|
+
if (retainedSourceIds.has(requested))
|
|
4
|
+
return requested;
|
|
5
|
+
const candidate = canonicalSourceIdCandidate(requested);
|
|
6
|
+
return candidate && retainedSourceIds.has(candidate) ? candidate : undefined;
|
|
7
|
+
}
|
|
8
|
+
/** Convert only the two Desktop legacy keys into a canonical-source candidate. */
|
|
9
|
+
export function canonicalSourceIdCandidate(requested) {
|
|
10
|
+
const publicId = requested.match(/^([a-z0-9_-]+)$/i)?.[1] ??
|
|
11
|
+
requested.match(/^https:\/\/registry\.pdpp\.dev\/connectors\/([a-z0-9_-]+)$/i)?.[1];
|
|
12
|
+
if (!publicId)
|
|
13
|
+
return undefined;
|
|
14
|
+
return `https://registry.pdpp.dev/sources/${publicId}`;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=source-id-compat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-id-compat.js","sourceRoot":"","sources":["../../src/pdpp/source-id-compat.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,MAAM,UAAU,uBAAuB,CACrC,SAAiB,EACjB,iBAAsC;IAEtC,IAAI,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IAEvD,MAAM,SAAS,GAAG,0BAA0B,CAAC,SAAS,CAAC,CAAC;IACxD,OAAO,SAAS,IAAI,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/E,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,0BAA0B,CACxC,SAAiB;IAEjB,MAAM,QAAQ,GACZ,SAAS,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;QACxC,SAAS,CAAC,KAAK,CACb,6DAA6D,CAC9D,EAAE,CAAC,CAAC,CAAC,CAAC;IACT,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAEhC,OAAO,qCAAqC,QAAQ,EAAE,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** Register the existing account-1 handle the way Desktop does at startup. */
|
|
2
|
+
export declare function legacyTestConnectionId(owner: string, sourceId: string): string;
|
|
3
|
+
export declare function registerTestConnection(app: {
|
|
4
|
+
request(path: string, init?: RequestInit): Response | Promise<Response>;
|
|
5
|
+
}, devToken: string, owner: string, sourceId: string, methodId?: string): Promise<string>;
|
|
6
|
+
//# sourceMappingURL=test-connections.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-connections.d.ts","sourceRoot":"","sources":["../../src/pdpp/test-connections.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,MAAM,CAGR;AAED,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE;IAEH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CACzE,EACD,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,QAAQ,SAAyD,GAChE,OAAO,CAAC,MAAM,CAAC,CAmCjB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/** Register the existing account-1 handle the way Desktop does at startup. */
|
|
2
|
+
export function legacyTestConnectionId(owner, sourceId) {
|
|
3
|
+
const connector = sourceId.split("/").filter(Boolean).at(-1) ?? sourceId;
|
|
4
|
+
return `${connector}:${owner.toLowerCase()}`;
|
|
5
|
+
}
|
|
6
|
+
export async function registerTestConnection(app, devToken, owner, sourceId, methodId = sourceId.split("/").filter(Boolean).at(-1) ?? sourceId) {
|
|
7
|
+
const connectionId = legacyTestConnectionId(owner, sourceId);
|
|
8
|
+
const ownerResponse = await app.request("/pdpp/v1/owner/token", {
|
|
9
|
+
method: "POST",
|
|
10
|
+
headers: {
|
|
11
|
+
authorization: `Bearer ${devToken}`,
|
|
12
|
+
"content-type": "application/json",
|
|
13
|
+
},
|
|
14
|
+
body: JSON.stringify({ source_id: sourceId }),
|
|
15
|
+
});
|
|
16
|
+
if (!ownerResponse.ok) {
|
|
17
|
+
throw new Error(`owner token request failed: ${ownerResponse.status}`);
|
|
18
|
+
}
|
|
19
|
+
const { access_token: token } = (await ownerResponse.json());
|
|
20
|
+
const registration = await app.request(`/pdpp/connections/${encodeURIComponent(connectionId)}`, {
|
|
21
|
+
method: "PUT",
|
|
22
|
+
headers: {
|
|
23
|
+
authorization: `Bearer ${token}`,
|
|
24
|
+
"content-type": "application/json",
|
|
25
|
+
},
|
|
26
|
+
body: JSON.stringify({
|
|
27
|
+
source_id: sourceId,
|
|
28
|
+
method_id: methodId,
|
|
29
|
+
label: "Personal",
|
|
30
|
+
}),
|
|
31
|
+
});
|
|
32
|
+
if (!registration.ok) {
|
|
33
|
+
throw new Error(`connection registration failed: ${registration.status}`);
|
|
34
|
+
}
|
|
35
|
+
return token;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=test-connections.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-connections.js","sourceRoot":"","sources":["../../src/pdpp/test-connections.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,MAAM,UAAU,sBAAsB,CACpC,KAAa,EACb,QAAgB;IAEhB,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;IACzE,OAAO,GAAG,SAAS,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,GAGC,EACD,QAAgB,EAChB,KAAa,EACb,QAAgB,EAChB,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ;IAEjE,MAAM,YAAY,GAAG,sBAAsB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC7D,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,sBAAsB,EAAE;QAC9D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,QAAQ,EAAE;YACnC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;KAC9C,CAAC,CAAC;IACH,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,+BAA+B,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,aAAa,CAAC,IAAI,EAAE,CAE1D,CAAC;IACF,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,OAAO,CACpC,qBAAqB,kBAAkB,CAAC,YAAY,CAAC,EAAE,EACvD;QACE,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,KAAK,EAAE;YAChC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,SAAS,EAAE,QAAQ;YACnB,SAAS,EAAE,QAAQ;YACnB,KAAK,EAAE,UAAU;SAClB,CAAC;KACH,CACF,CAAC;IACF,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,mCAAmC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-device.d.ts","sourceRoot":"","sources":["../../src/routes/auth-device.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,oBAAoB,CAAC;AAE5B,OAAO,EAAE,IAAI,EAAE,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAKnC,OAAO,EAGL,uBAAuB,EACvB,qBAAqB,EAKrB,KAAK,kBAAkB,EACxB,MAAM,iDAAiD,CAAC;AAKzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"auth-device.d.ts","sourceRoot":"","sources":["../../src/routes/auth-device.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,oBAAoB,CAAC;AAE5B,OAAO,EAAE,IAAI,EAAE,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAKnC,OAAO,EAGL,uBAAuB,EACvB,qBAAqB,EAKrB,KAAK,kBAAkB,EACxB,MAAM,iDAAiD,CAAC;AAKzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAcpD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IACtC,mBAAmB,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC;IAC1D;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC5B,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,GAAG,SAAS,CAAC;CACvD;AAED,KAAK,6BAA6B,GAAG,kBAAkB,GAAG;IACxD,KAAK,IAAI,IAAI,CAAC;IACd,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC,CAAC;AA0CF,wEAAwE;AACxE,QAAA,MAAM,QAAQ,+BAAwC,CAAC;AAuIvD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAqOxD;AA8LD,OAAO,EACL,QAAQ,EACR,qBAAqB,IAAI,cAAc,EACvC,uBAAuB,IAAI,gBAAgB,GAC5C,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,yBAAyB;iCAER,MAAM;;;;;;uBAWhB,MAAM;EAI5B"}
|
|
@@ -16,6 +16,7 @@ import { approveDeviceSessionContract, createMemoryDeviceSessionStore, DEVICE_PO
|
|
|
16
16
|
import { NotOwnerError, ProtocolError, } from "@opendatalabs/personal-server-ts-core/errors";
|
|
17
17
|
import { createWeb3AuthMiddleware, mapSdkAuthError, } from "../middleware/web3-auth.js";
|
|
18
18
|
import { createOwnerCheckMiddleware } from "../middleware/owner-check.js";
|
|
19
|
+
import { createBodyLimit, DEFAULT_MAX_SIZE } from "../middleware/body-limit.js";
|
|
19
20
|
import { arrivedOnLoopbackListener, isLoopbackIp, isSameOriginLoopbackRequest, } from "../middleware/local-listener.js";
|
|
20
21
|
import { escapeHtml, renderAccountPage } from "../ui/account-page.js";
|
|
21
22
|
function createInspectableDeviceSessionStore() {
|
|
@@ -173,6 +174,8 @@ export function authDeviceRoutes(deps) {
|
|
|
173
174
|
serverOwner: deps.serverOwner,
|
|
174
175
|
});
|
|
175
176
|
const ownerCheck = createOwnerCheckMiddleware(deps.serverOwner);
|
|
177
|
+
app.use("/approve", createBodyLimit(DEFAULT_MAX_SIZE));
|
|
178
|
+
app.use("/token", createBodyLimit(DEFAULT_MAX_SIZE));
|
|
176
179
|
if (allowInteractiveLogin) {
|
|
177
180
|
// POST / — Initiate login flow (no auth required)
|
|
178
181
|
app.post("/", (c) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-device.js","sourceRoot":"","sources":["../../src/routes/auth-device.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,6EAA6E;AAC7E,+DAA+D;AAC/D,OAAO,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAgB,MAAM,MAAM,CAAC;AAE1C,OAAO,EACL,gBAAgB,GAEjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,EAC9B,uBAAuB,EACvB,qBAAqB,EACrB,6BAA6B,EAC7B,yBAAyB,EACzB,4BAA4B,EAC5B,yBAAyB,GAE1B,MAAM,iDAAiD,CAAC;AACzD,OAAO,EACL,aAAa,EACb,aAAa,GACd,MAAM,8CAA8C,CAAC;AAEtD,OAAO,EACL,wBAAwB,EACxB,eAAe,GAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EACL,yBAAyB,EACzB,YAAY,EACZ,2BAA2B,GAC5B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AA4BtE,SAAS,mCAAmC;IAC1C,MAAM,KAAK,GAAG,8BAA8B,EAAE,CAAC;IAC/C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,OAAO;QACL,MAAM,CAAC,KAAK;YACV,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAClC,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,GAAG,CAAC,SAAS;YACX,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC;QACD,eAAe,CAAC,SAAS;YACvB,OAAO,KAAK,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,CAAC,SAAS;YACd,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACxB,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;QACD,YAAY,CAAC,GAAG;YACd,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACxB,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;oBAAE,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QACD,KAAK;YACH,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/C,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;YACD,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;QACD,IAAI,IAAI;YACN,OAAO,UAAU,CAAC,IAAI,CAAC;QACzB,CAAC;QACD,GAAG,CAAC,SAAiB;YACnB,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC;QAC5C,CAAC;KACF,CAAC;AACJ,CAAC;AAED,wEAAwE;AACxE,MAAM,QAAQ,GAAG,mCAAmC,EAAE,CAAC;AAEvD,SAAS,gBAAgB,CAAC,CAAU;IAClC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AACnC,CAAC;AAED,SAAS,cAAc,CAAC,CAAU;IAChC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;AACrC,CAAC;AAED,SAAS,aAAa,CACpB,MAAuD;IAEvD,OAAO,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;AAC1D,CAAC;AAED,SAAS,sBAAsB,CAAC,CAAU;IACxC,iFAAiF;IACjF,8DAA8D;IAC9D,OAAQ,CAAC,CAAC,GAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC;AACzD,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,cAAc,CAAC,CAAU,EAAE,IAAiB;IACnD,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,IAAI,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAC3E,OAAO,YAAY,CAAC,UAAU,CAAC,IAAI,2BAA2B,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,wBAAwB,CAAC,CAAU,EAAE,IAAiB;IAC7D,MAAM,mBAAmB,GAAG,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACpE,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CACL,yBAAyB,CAAC,CAAC,EAAE;QAC3B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,mBAAmB,CAClD,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAClB,CAAU,EACV,IAAY,EACZ,SAA0B,GAAG;IAE7B,CAAC,CAAC,MAAM,CAAC,yBAAyB,EAAE,wBAAwB,CAAC,CAAC;IAC9D,CAAC,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IACpC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED,KAAK,UAAU,yBAAyB,CACtC,CAAU,EACV,WAAsC;IAEtC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,CAAC,CAAC,IAAI,CACX;YACE,KAAK,EAAE;gBACL,IAAI,EAAE,GAAG;gBACT,SAAS,EAAE,uBAAuB;gBAClC,OAAO,EACL,0FAA0F;aAC7F;SACF,EACD,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACjD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,CAAC,IAAI,CACX;YACE,KAAK,EAAE;gBACL,IAAI,EAAE,GAAG;gBACT,OAAO,EACL,wDAAwD;oBACxD,gDAAgD;aACnD;SACF,EACD,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC;YAClC,WAAW,EAAE,UAAU;YACvB,cAAc,EAAE,gBAAgB,CAAC,CAAC,CAAC;YACnC,cAAc,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM;YAC5B,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC;YAC/B,SAAS,EACP,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM;gBAC/C,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC;SAC5D,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;YAC5D,MAAM,GAAG,GAAG,IAAI,aAAa,CAAC;gBAC5B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,WAAW;aACtB,CAAC,CAAC;YACH,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;QACnC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,SAAS;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC,IAAW,CAAC,CAAC;QACxE,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;YACjC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,IAAiB,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAiB;IAChD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,KAAK,KAAK,CAAC;IACnE,MAAM,QAAQ,GAAG,wBAAwB,CAAC;QACxC,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;KAC9B,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,0BAA0B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEhE,IAAI,qBAAqB,EAAE,CAAC;QAC1B,mDAAmD;QACnD,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE;YAClB,MAAM,SAAS,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClD,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,mBAAmB,GAAG,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACpE,mEAAmE;YACnE,sEAAsE;YACtE,sEAAsE;YACtE,sCAAsC;YACtC,EAAE;YACF,mEAAmE;YACnE,8DAA8D;YAC9D,uEAAuE;YACvE,kEAAkE;YAClE,+CAA+C;YAC/C,MAAM,oBAAoB,GACxB,mBAAmB,KAAK,SAAS,IAAI,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAC/D,MAAM,MAAM,GAAG,6BAA6B,CAAC;gBAC3C,YAAY,EAAE,QAAQ;gBACtB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,aAAa;gBACb,cAAc,EACZ,CAAC,oBAAoB,IAAI,mBAAmB,CAAC,IAAI,aAAa;gBAChE,oBAAoB;gBACpB,SAAS;gBACT,SAAS;gBACT,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;aAChB,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,EAAE,SAAS,EAAE,oBAAoB,EAAE,EACnC,sBAAsB,CACvB,CAAC;YACF,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAmB,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,mCAAmC;QACnC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACrB,MAAM,MAAM,GAAG,yBAAyB,CAAC;gBACvC,YAAY,EAAE,QAAQ;gBACtB,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI;gBACvC,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;aAChB,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,IAA2B,CAAC;gBAChD,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EACvB,wCAAwC,CACzC,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAqC,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QAEH,qCAAqC;QACrC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;YACxB,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAElC,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,2BAA2B,CAAC,EAAE,GAAG,CAAC,CAAC;YACrE,CAAC;YAED,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACxC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,4BAA4B,CAAC,EAAE,GAAG,CAAC,CAAC;YACtE,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBAClC,OAAO,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;YACvC,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC;YAC5C,MAAM,4BAA4B,GAChC,OAAO,CAAC,oBAAoB,KAAK,IAAI;gBACrC,wBAAwB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAEpC,OAAO,WAAW,CAChB,CAAC,EACD,WAAW,CACT,OAAO,CAAC,qBAAqB,EAC7B,KAAK,EACL,SAAS,EACT,4BAA4B,CAC7B,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,uCAAuC;QACvC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YAC/B,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAElC,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,CAAC,CAAC,IAAI,CACX,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,2BAA2B,EAAE,EAAE,EAC9D,GAAG,CACJ,CAAC;YACJ,CAAC;YAED,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACxC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,CAAC,IAAI,CACX,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,4BAA4B,EAAE,EAAE,EAC/D,GAAG,CACJ,CAAC;YACJ,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBAClC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAChD,CAAC;YAED,iEAAiE;YACjE,qEAAqE;YACrE,mEAAmE;YACnE,yDAAyD;YACzD,MAAM,UAAU,GACd,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,IAAI,sBAAsB,CAAC,CAAC,CAAC,CAAC;YAC1D,MAAM,kBAAkB,GACtB,OAAO,CAAC,oBAAoB,KAAK,IAAI;gBACrC,wBAAwB,CAAC,CAAC,EAAE,IAAI,CAAC;gBACjC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAE1B,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACxB,MAAM,YAAY,GAAG,MAAM,yBAAyB,CAClD,CAAC,EACD,IAAI,CAAC,WAAW,CACjB,CAAC;gBACF,IAAI,YAAY,YAAY,QAAQ,EAAE,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EACzD,0BAA0B,CAC3B,CAAC;oBACF,OAAO,YAAY,CAAC;gBACtB,CAAC;gBAED,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,EACtD,iDAAiD,CAClD,CAAC;YACJ,CAAC;YAED,MAAM,WAAW,GAAG,WAAW,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACjE,MAAM,MAAM,GAAG,MAAM,4BAA4B,CAAC;gBAChD,YAAY,EAAE,QAAQ;gBACtB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,SAAS;gBACT,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,WAAW;gBACX,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;aAChB,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,uCAAuC,CAAC,CAAC;YACzE,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAA+B,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,2EAA2E;IAC3E,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACnD,IAAI,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,qBAAqB,EAAE,CAAC;YACrD,OAAO,CAAC,CAAC,IAAI,CACX;gBACE,KAAK,EAAE;oBACL,IAAI,EAAE,GAAG;oBACT,OAAO,EACL,wEAAwE;iBAC3E;aACF,EACD,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,IAAI,IAAa,CAAC;QAClB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,CAAC,IAAI,CACX,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,iCAAiC,EAAE,EAAE,EACpE,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,4BAA4B,CAAC;YAChD,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,IAAI;YACJ,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;SAChB,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1B,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAa,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACpD,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,qEAAqE;IACrE,+DAA+D;IAE/D,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC/B,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC;YAC7C,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC;gBAC5C,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrB,CAAC,CAAC,IAAI;SACT,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1B,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAa,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACpD,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC;AAED,uEAAuE;AACvE,yEAAyE;AACzE,oDAAoD;AAEpD,MAAM,WAAW,GAAG,iBAAiB,CAAC;AAEtC,SAAS,WAAW,CAClB,MAAc,EACd,KAAa,EACb,SAAiB,EACjB,4BAAqC;IAErC,OAAO,iBAAiB,CAAC;QACvB,KAAK,EAAE,iCAAiC;QACxC,aAAa,EAAE,WAAW;QAC1B,OAAO,EAAE,eAAe;QACxB,WAAW,EACT,6GAA6G;QAC/G,QAAQ,EAAE;;;gBAGE,UAAU,CAAC,MAAM,CAAC;;mCAEC,UAAU,CAAC,KAAK,CAAC;;;;;;eAMrC;QACX,MAAM,EAAE;yBACa,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;4BACtB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;8CACH,IAAI,CAAC,SAAS,CAAC,4BAA4B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mDA2FvC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqC3D;KACA,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW;IAClB,OAAO,iBAAiB,CAAC;QACvB,KAAK,EAAE,8BAA8B;QACrC,aAAa,EAAE,WAAW;QAC1B,OAAO,EAAE,oBAAoB;QAC7B,WAAW,EAAE,+CAA+C;QAC5D,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;AACL,CAAC;AAED,SAAS,SAAS,CAAC,OAAe;IAChC,OAAO,iBAAiB,CAAC;QACvB,KAAK,EAAE,yBAAyB;QAChC,aAAa,EAAE,WAAW;QAC1B,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,OAAO;QACpB,QAAQ,EAAE;kGACoF;QAC9F,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;AACL,CAAC;AAED,qBAAqB;AACrB,OAAO,EACL,QAAQ,EACR,qBAAqB,IAAI,cAAc,EACvC,uBAAuB,IAAI,gBAAgB,GAC5C,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB;IACvC,OAAO;QACL,gBAAgB,CAAC,UAAkB;YACjC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAClC,MAAM,OAAO,GAAG,QAAQ,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YACrD,IAAI,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC;YAC1B,OAAO;gBACL,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;gBAClD,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,SAAiB;YACvB,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"auth-device.js","sourceRoot":"","sources":["../../src/routes/auth-device.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { IndexManager } from "@opendatalabs/personal-server-ts-core/storage/index";
|
|
2
|
+
import type { HierarchyManagerOptions } from "@opendatalabs/personal-server-ts-core/storage/hierarchy";
|
|
3
|
+
export declare const SCOPE_IMPORT_CHUNK_BYTES: number;
|
|
4
|
+
export declare const SCOPE_IMPORT_MAX_BYTES: number;
|
|
5
|
+
export declare const SCOPE_IMPORT_MAX_CHUNKS = 32;
|
|
6
|
+
export declare const SCOPE_IMPORT_TTL_MS: number;
|
|
7
|
+
export interface ScopeImportDeps {
|
|
8
|
+
hierarchyOptions: HierarchyManagerOptions;
|
|
9
|
+
indexManager: IndexManager;
|
|
10
|
+
serverOwner?: string;
|
|
11
|
+
authorizeOwner(request: Request, scope: string): Promise<void>;
|
|
12
|
+
afterTombstoneVersion?(scope: string): Promise<number | null>;
|
|
13
|
+
onDataWritten?(event: {
|
|
14
|
+
scope: string;
|
|
15
|
+
collectedAt: string;
|
|
16
|
+
}): void;
|
|
17
|
+
syncManager?: {
|
|
18
|
+
notifyNewData?(): void;
|
|
19
|
+
trigger?(): Promise<void>;
|
|
20
|
+
} | null;
|
|
21
|
+
}
|
|
22
|
+
export declare class ScopeImportError extends Error {
|
|
23
|
+
readonly status: number;
|
|
24
|
+
readonly code: string;
|
|
25
|
+
constructor(status: number, code: string, message: string);
|
|
26
|
+
}
|
|
27
|
+
export declare function cleanupExpiredScopeImports(deps: Pick<ScopeImportDeps, "hierarchyOptions" | "indexManager">, now?: number, removeTemps?: boolean): Promise<void>;
|
|
28
|
+
export declare function beginScopeImport(deps: ScopeImportDeps, request: Request, scope: string, body: unknown): Promise<{
|
|
29
|
+
importId: string;
|
|
30
|
+
chunkBytes: number;
|
|
31
|
+
expiresAt: string;
|
|
32
|
+
}>;
|
|
33
|
+
export declare function putScopeImportChunk(deps: ScopeImportDeps, request: Request, scope: string, id: string, index: number): Promise<{
|
|
34
|
+
accepted: true;
|
|
35
|
+
index: number;
|
|
36
|
+
bytes: number;
|
|
37
|
+
sha256: string;
|
|
38
|
+
}>;
|
|
39
|
+
export declare function finalizeScopeImport(deps: ScopeImportDeps, request: Request, scope: string, id: string): Promise<Record<string, unknown>>;
|
|
40
|
+
export declare function abortScopeImport(deps: ScopeImportDeps, request: Request, scope: string, id: string): Promise<Record<string, unknown>>;
|
|
41
|
+
//# sourceMappingURL=chunked-scope-import.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunked-scope-import.d.ts","sourceRoot":"","sources":["../../src/routes/chunked-scope-import.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qDAAqD,CAAC;AACxF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC;AAKvG,eAAO,MAAM,wBAAwB,QAAkB,CAAC;AACxD,eAAO,MAAM,sBAAsB,QAAoB,CAAC;AACxD,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,mBAAmB,QAAsB,CAAC;AA+QvD,MAAM,WAAW,eAAe;IAC9B,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,YAAY,EAAE,YAAY,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,qBAAqB,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9D,aAAa,CAAC,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACpE,WAAW,CAAC,EAAE;QAAE,aAAa,CAAC,IAAI,IAAI,CAAC;QAAC,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;CAC5E;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IAEvC,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM;gBADZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM;CAIlB;AAiID,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,kBAAkB,GAAG,cAAc,CAAC,EAChE,GAAG,SAAa,EAChB,WAAW,UAAQ,GAClB,OAAO,CAAC,IAAI,CAAC,CAyCf;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CA+HtE;AA0BD,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAoI3E;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAsBlC;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA0FlC"}
|