@indigoai-us/hq-cloud 6.15.2 → 6.15.4
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/bin/sync-mutation.d.ts +1 -3
- package/dist/bin/sync-mutation.d.ts.map +1 -1
- package/dist/bin/sync-mutation.js +5 -5
- package/dist/bin/sync-mutation.js.map +1 -1
- package/dist/bin/sync-mutation.test.js +36 -137
- package/dist/bin/sync-mutation.test.js.map +1 -1
- package/dist/bin/sync-runner-company.d.ts.map +1 -1
- package/dist/bin/sync-runner-company.js +15 -0
- package/dist/bin/sync-runner-company.js.map +1 -1
- package/dist/bin/sync-runner-company.test.js +71 -0
- package/dist/bin/sync-runner-company.test.js.map +1 -1
- package/dist/bin/sync-runner-events.test.js +21 -0
- package/dist/bin/sync-runner-events.test.js.map +1 -1
- package/dist/bin/sync-runner.d.ts +5 -0
- package/dist/bin/sync-runner.d.ts.map +1 -1
- package/dist/bin/sync-runner.js.map +1 -1
- package/dist/cli/share.d.ts.map +1 -1
- package/dist/cli/share.js +23 -6
- package/dist/cli/share.js.map +1 -1
- package/dist/cli/share.test.js +54 -1
- package/dist/cli/share.test.js.map +1 -1
- package/dist/cli/sync.d.ts +31 -6
- package/dist/cli/sync.d.ts.map +1 -1
- package/dist/cli/sync.js +58 -38
- package/dist/cli/sync.js.map +1 -1
- package/dist/cli/sync.test.js +180 -47
- package/dist/cli/sync.test.js.map +1 -1
- package/dist/s3.d.ts +36 -0
- package/dist/s3.d.ts.map +1 -1
- package/dist/s3.js +61 -1
- package/dist/s3.js.map +1 -1
- package/dist/s3.symlink-materialize.test.js +161 -1
- package/dist/s3.symlink-materialize.test.js.map +1 -1
- package/dist/sync/base-version-resolver.d.ts +11 -0
- package/dist/sync/base-version-resolver.d.ts.map +1 -0
- package/dist/sync/base-version-resolver.js +48 -0
- package/dist/sync/base-version-resolver.js.map +1 -0
- package/dist/sync/base-version-resolver.test.d.ts +2 -0
- package/dist/sync/base-version-resolver.test.d.ts.map +1 -0
- package/dist/sync/base-version-resolver.test.js +24 -0
- package/dist/sync/base-version-resolver.test.js.map +1 -0
- package/dist/sync/lease-client.d.ts +17 -0
- package/dist/sync/lease-client.d.ts.map +1 -1
- package/dist/sync/lease-client.js +46 -1
- package/dist/sync/lease-client.js.map +1 -1
- package/dist/sync/mutation-client.d.ts +2 -0
- package/dist/sync/mutation-client.d.ts.map +1 -1
- package/dist/sync/mutation-client.js +2 -0
- package/dist/sync/mutation-client.js.map +1 -1
- package/dist/sync/mutation-session.d.ts +49 -0
- package/dist/sync/mutation-session.d.ts.map +1 -0
- package/dist/sync/mutation-session.js +282 -0
- package/dist/sync/mutation-session.js.map +1 -0
- package/dist/sync/mutation-session.test.d.ts +2 -0
- package/dist/sync/mutation-session.test.d.ts.map +1 -0
- package/dist/sync/mutation-session.test.js +190 -0
- package/dist/sync/mutation-session.test.js.map +1 -0
- package/dist/sync/uploader-finalization.d.ts +20 -0
- package/dist/sync/uploader-finalization.d.ts.map +1 -1
- package/dist/sync/uploader-finalization.js +48 -0
- package/dist/sync/uploader-finalization.js.map +1 -1
- package/dist/sync/uploader-finalization.test.js +15 -0
- package/dist/sync/uploader-finalization.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-version-resolver.test.d.ts","sourceRoot":"","sources":["../../src/sync/base-version-resolver.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as fs from "node:fs";
|
|
2
|
+
import * as os from "node:os";
|
|
3
|
+
import * as path from "node:path";
|
|
4
|
+
import { afterEach, describe, expect, it } from "vitest";
|
|
5
|
+
import { AuthoritativeBaseVersionUnavailableError, resolveAuthoritativeBaseVersion } from "./base-version-resolver.js";
|
|
6
|
+
import { DurableApplyEngine } from "./durable-apply.js";
|
|
7
|
+
import { SnapshotClient } from "./snapshot-client.js";
|
|
8
|
+
const roots = [];
|
|
9
|
+
function root() { const value = fs.mkdtempSync(path.join(os.tmpdir(), "hq-base-version-")); roots.push(value); return value; }
|
|
10
|
+
afterEach(() => { for (const value of roots.splice(0))
|
|
11
|
+
fs.rmSync(value, { recursive: true, force: true }); });
|
|
12
|
+
describe("resolveAuthoritativeBaseVersion", () => {
|
|
13
|
+
it("never treats a missing projection as an absent remote path", () => {
|
|
14
|
+
expect(() => resolveAuthoritativeBaseVersion({ apiUrl: "https://api.example.test", hqRoot: root(), scopeUid: "scope_1" }, "notes/a.md")).toThrow(AuthoritativeBaseVersionUnavailableError);
|
|
15
|
+
});
|
|
16
|
+
it("uses only a snapshot-proven complete V2 projection", () => {
|
|
17
|
+
const hqRoot = root();
|
|
18
|
+
const stateRootDir = path.join(hqRoot, ".hq", "realtime-sync-state");
|
|
19
|
+
new DurableApplyEngine({ rootDir: path.join(hqRoot, ".hq", "realtime-sync-projection", "scope_1"), stateRootDir, scopeId: "scope_1", initialCursor: "cursor_1" });
|
|
20
|
+
new SnapshotClient({ apiUrl: "https://api.example.test", stateRootDir, scopeId: "scope_1" });
|
|
21
|
+
expect(() => resolveAuthoritativeBaseVersion({ apiUrl: "https://api.example.test", hqRoot, scopeUid: "scope_1" }, "notes/a.md")).toThrow("authoritative V2 base is unavailable");
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
//# sourceMappingURL=base-version-resolver.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-version-resolver.test.js","sourceRoot":"","sources":["../../src/sync/base-version-resolver.test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEzD,OAAO,EAAE,wCAAwC,EAAE,+BAA+B,EAAE,MAAM,4BAA4B,CAAC;AACvH,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,KAAK,GAAa,EAAE,CAAC;AAC3B,SAAS,IAAI,KAAa,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC;AACtI,SAAS,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE9G,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,CAAC,GAAG,EAAE,CAAC,+BAA+B,CAAC,EAAE,MAAM,EAAE,0BAA0B,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAC7L,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,MAAM,GAAG,IAAI,EAAE,CAAC;QACtB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC;QACrE,IAAI,kBAAkB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,0BAA0B,EAAE,SAAS,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC;QAClK,IAAI,cAAc,CAAC,EAAE,MAAM,EAAE,0BAA0B,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7F,MAAM,CAAC,GAAG,EAAE,CAAC,+BAA+B,CAAC,EAAE,MAAM,EAAE,0BAA0B,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;IACnL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -8,6 +8,13 @@ export interface RealtimeLease {
|
|
|
8
8
|
expiresAt: string;
|
|
9
9
|
authorizationEpoch: string;
|
|
10
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* The lease is server-signed and opaque for authorization purposes, but its
|
|
13
|
+
* payload includes the membership revision that a V2 mutation must echo in
|
|
14
|
+
* its prepare body. This is deliberately only a local hint: the server still
|
|
15
|
+
* validates the signature and every bound field before accepting I/O.
|
|
16
|
+
*/
|
|
17
|
+
export declare function membershipRevisionFromLease(lease: RealtimeLease): string;
|
|
11
18
|
export interface RealtimeLeaseRequest {
|
|
12
19
|
bearer: string;
|
|
13
20
|
deviceId: string;
|
|
@@ -49,6 +56,10 @@ export interface RealtimePassRequest {
|
|
|
49
56
|
scopeFingerprint: string;
|
|
50
57
|
scopeUids: readonly string[];
|
|
51
58
|
}
|
|
59
|
+
/** A server inventory result that deliberately does not enroll this client. */
|
|
60
|
+
export declare class RealtimeEnrollmentUnavailableError extends Error {
|
|
61
|
+
constructor();
|
|
62
|
+
}
|
|
52
63
|
/**
|
|
53
64
|
* The only pre-I/O admission seam for later V2 work. It intentionally has no
|
|
54
65
|
* V1 fallback: malformed, stale, revoked, or non-ready inventory never gives
|
|
@@ -62,6 +73,12 @@ export declare class RealtimePassAuthorizer {
|
|
|
62
73
|
private readonly leaseClient;
|
|
63
74
|
constructor(authToken: AuthTokenSource, inventoryClient: RealtimeRolloutClient, leaseClient: RealtimeLeaseClient);
|
|
64
75
|
authorize(request: RealtimePassRequest): Promise<RealtimePassAuthorization>;
|
|
76
|
+
/**
|
|
77
|
+
* Authorize a caller that already resolved the bearer for a related local
|
|
78
|
+
* lookup. This keeps scope discovery and lease issuance on one principal;
|
|
79
|
+
* it does not cache or otherwise extend the bearer lifetime.
|
|
80
|
+
*/
|
|
81
|
+
authorizeWithBearer(bearer: string, request: RealtimePassRequest): Promise<RealtimePassAuthorization>;
|
|
65
82
|
runBeforeIo<T>(request: RealtimePassRequest, operation: (authorization: RealtimePassAuthorization) => Promise<T>): Promise<T>;
|
|
66
83
|
}
|
|
67
84
|
//# sourceMappingURL=lease-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lease-client.d.ts","sourceRoot":"","sources":["../../src/sync/lease-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAGL,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAE3B,KAAK,qBAAqB,EAE3B,MAAM,uBAAuB,CAAC;AAE/B,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAC5C,eAAO,MAAM,gCAAgC,OAAQ,CAAC;AAEtD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,wBAAwB,CAAC;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAmCD,+EAA+E;AAC/E,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAS;gBAEpC,OAAO,EAAE,0BAA0B;IAW/C,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAOlC,KAAK,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC;CAwCnE;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,sBAAsB,GAAG;QAAE,KAAK,EAAE,UAAU,CAAA;KAAE,CAAC;IACtD,KAAK,EAAE,aAAa,CAAC;CACtB;AAED,MAAM,WAAW,yBAAyB;IACxC,uFAAuF;IACvF,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,0BAA0B,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,wBAAwB,CAAC;IAC3C,wBAAwB,EAAE,MAAM,CAAC;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,qBAAa,sBAAsB;IAE/B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAFX,SAAS,EAAE,eAAe,EAC1B,eAAe,EAAE,qBAAqB,EACtC,WAAW,EAAE,mBAAmB;IAG7C,SAAS,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"lease-client.d.ts","sourceRoot":"","sources":["../../src/sync/lease-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAGL,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAE3B,KAAK,qBAAqB,EAE3B,MAAM,uBAAuB,CAAC;AAE/B,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAC5C,eAAO,MAAM,gCAAgC,OAAQ,CAAC;AAEtD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAmBxE;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,wBAAwB,CAAC;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAmCD,+EAA+E;AAC/E,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAS;gBAEpC,OAAO,EAAE,0BAA0B;IAW/C,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAOlC,KAAK,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC;CAwCnE;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,sBAAsB,GAAG;QAAE,KAAK,EAAE,UAAU,CAAA;KAAE,CAAC;IACtD,KAAK,EAAE,aAAa,CAAC;CACtB;AAED,MAAM,WAAW,yBAAyB;IACxC,uFAAuF;IACvF,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,0BAA0B,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,wBAAwB,CAAC;IAC3C,wBAAwB,EAAE,MAAM,CAAC;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B;AAED,+EAA+E;AAC/E,qBAAa,kCAAmC,SAAQ,KAAK;;CAK5D;AAED;;;;;;GAMG;AACH,qBAAa,sBAAsB;IAE/B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAFX,SAAS,EAAE,eAAe,EAC1B,eAAe,EAAE,qBAAqB,EACtC,WAAW,EAAE,mBAAmB;IAG7C,SAAS,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAKjF;;;;OAIG;IACG,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAoCrG,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,CAAC,aAAa,EAAE,yBAAyB,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAGpI"}
|
|
@@ -1,6 +1,33 @@
|
|
|
1
1
|
import { DEFAULT_REALTIME_AUTHORIZATION_TIMEOUT_MS, REALTIME_SYNC_CONTRACT_VERSION, resolveRealtimeBearer, } from "./realtime-rollout.js";
|
|
2
2
|
export const MAX_REALTIME_LEASE_MS = 60_000;
|
|
3
3
|
export const MAX_REALTIME_LEASE_CLOCK_SKEW_MS = 5_000;
|
|
4
|
+
/**
|
|
5
|
+
* The lease is server-signed and opaque for authorization purposes, but its
|
|
6
|
+
* payload includes the membership revision that a V2 mutation must echo in
|
|
7
|
+
* its prepare body. This is deliberately only a local hint: the server still
|
|
8
|
+
* validates the signature and every bound field before accepting I/O.
|
|
9
|
+
*/
|
|
10
|
+
export function membershipRevisionFromLease(lease) {
|
|
11
|
+
const [encoded, signature, extra] = lease.lease.split(".");
|
|
12
|
+
if (!encoded || !signature || extra !== undefined || !/^[A-Za-z0-9_-]+$/.test(encoded)) {
|
|
13
|
+
throw new Error("realtime lease: membership revision is unavailable");
|
|
14
|
+
}
|
|
15
|
+
let payload;
|
|
16
|
+
try {
|
|
17
|
+
payload = JSON.parse(Buffer.from(encoded, "base64url").toString("utf8"));
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
throw new Error("realtime lease: membership revision is unavailable");
|
|
21
|
+
}
|
|
22
|
+
if (!payload || typeof payload !== "object" || Array.isArray(payload)) {
|
|
23
|
+
throw new Error("realtime lease: membership revision is unavailable");
|
|
24
|
+
}
|
|
25
|
+
const revision = payload.membershipRevision;
|
|
26
|
+
if (typeof revision !== "string" || revision.trim() === "") {
|
|
27
|
+
throw new Error("realtime lease: membership revision is unavailable");
|
|
28
|
+
}
|
|
29
|
+
return revision;
|
|
30
|
+
}
|
|
4
31
|
function asNonEmptyString(value, field) {
|
|
5
32
|
if (typeof value !== "string" || value.trim() === "")
|
|
6
33
|
throw new Error(`realtime lease: ${field} must be a non-empty string`);
|
|
@@ -100,6 +127,13 @@ export class RealtimeLeaseClient {
|
|
|
100
127
|
return parseLease(parsed, this.now());
|
|
101
128
|
}
|
|
102
129
|
}
|
|
130
|
+
/** A server inventory result that deliberately does not enroll this client. */
|
|
131
|
+
export class RealtimeEnrollmentUnavailableError extends Error {
|
|
132
|
+
constructor() {
|
|
133
|
+
super("realtime authorization: inventory does not authorize every requested scope");
|
|
134
|
+
this.name = "RealtimeEnrollmentUnavailableError";
|
|
135
|
+
}
|
|
136
|
+
}
|
|
103
137
|
/**
|
|
104
138
|
* The only pre-I/O admission seam for later V2 work. It intentionally has no
|
|
105
139
|
* V1 fallback: malformed, stale, revoked, or non-ready inventory never gives
|
|
@@ -118,6 +152,17 @@ export class RealtimePassAuthorizer {
|
|
|
118
152
|
}
|
|
119
153
|
async authorize(request) {
|
|
120
154
|
const bearer = await resolveRealtimeBearer(this.authToken);
|
|
155
|
+
return this.authorizeWithBearer(bearer, request);
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Authorize a caller that already resolved the bearer for a related local
|
|
159
|
+
* lookup. This keeps scope discovery and lease issuance on one principal;
|
|
160
|
+
* it does not cache or otherwise extend the bearer lifetime.
|
|
161
|
+
*/
|
|
162
|
+
async authorizeWithBearer(bearer, request) {
|
|
163
|
+
if (typeof bearer !== "string" || bearer.trim() === "") {
|
|
164
|
+
throw new Error("realtime authorization: access token is empty");
|
|
165
|
+
}
|
|
121
166
|
const inventoryRequest = {
|
|
122
167
|
bearer,
|
|
123
168
|
deviceId: request.deviceId,
|
|
@@ -131,7 +176,7 @@ export class RealtimePassAuthorizer {
|
|
|
131
176
|
throw new Error("realtime authorization: guarded pass has no scopes");
|
|
132
177
|
const grants = inventory.scopes.filter((grant) => requested.has(grant.scopeUid));
|
|
133
178
|
if (grants.length !== requested.size || grants.some((grant) => grant.state !== "v2-ready")) {
|
|
134
|
-
throw new
|
|
179
|
+
throw new RealtimeEnrollmentUnavailableError();
|
|
135
180
|
}
|
|
136
181
|
const scopes = await Promise.all(grants.map(async (grant) => ({
|
|
137
182
|
grant: grant,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lease-client.js","sourceRoot":"","sources":["../../src/sync/lease-client.ts"],"names":[],"mappings":"AACA,OAAO,EACL,yCAAyC,EACzC,8BAA8B,EAK9B,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAC5C,MAAM,CAAC,MAAM,gCAAgC,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"lease-client.js","sourceRoot":"","sources":["../../src/sync/lease-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,6 +58,8 @@ export interface SubmitMutationInput {
|
|
|
58
58
|
spoolDirectory?: string;
|
|
59
59
|
/** Lets a caller detect source edits before multipart transfer. */
|
|
60
60
|
sourceChecksum?: () => Promise<`sha256:${string}`>;
|
|
61
|
+
/** Persist the server-assigned attempt before bytes or a delete commit run. */
|
|
62
|
+
onPrepared?: (attemptId: string) => void | Promise<void>;
|
|
61
63
|
}
|
|
62
64
|
export interface MutationSubmission {
|
|
63
65
|
requestDigest: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutation-client.d.ts","sourceRoot":"","sources":["../../src/sync/mutation-client.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,iBAAiB,EAEjB,KAAK,cAAc,EAEnB,KAAK,+BAA+B,EACrC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAKjF,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AACpD,MAAM,MAAM,kBAAkB,GAC1B,UAAU,GAAG,WAAW,GAAG,iBAAiB,GAAG,OAAO,GAAG,UAAU,GACnE,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,MAAM,EAAE,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,iFAAiF;AACjF,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,CAAC,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,iBAAiB,GAAG,OAAO,GAAG,UAAU,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAClG;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACrF;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,mBAAmB,GAAG,gBAAgB,CAAA;CAAE,GACvF;IAAE,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAExE,MAAM,MAAM,qBAAqB,GAAG,+BAA+B,CAAC;AAEpE,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,iBAAiB,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;IAC3D,iBAAiB,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,qBAAqB,CAAC;IACrC,OAAO,EAAE,eAAe,CAAC;IACzB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,mFAAmF;IACnF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"mutation-client.d.ts","sourceRoot":"","sources":["../../src/sync/mutation-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -136,6 +136,8 @@ export class MutationClient {
|
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
138
|
const status = await this.prepare(input.authorization, input.request);
|
|
139
|
+
if (!isTerminal(status))
|
|
140
|
+
await input.onPrepared?.(status.attemptId);
|
|
139
141
|
if (isTerminal(status) || input.request.operation === "delete") {
|
|
140
142
|
return { requestDigest: digest, status: input.request.operation === "delete" && !isTerminal(status) ? await this.commit(input.authorization, status.attemptId, digest, "delete", null) : status };
|
|
141
143
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutation-client.js","sourceRoot":"","sources":["../../src/sync/mutation-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,OAAO,EACL,iBAAiB,EACjB,yBAAyB,GAI1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjF,MAAM,MAAM,GAAG,uBAAuB,CAAC;AACvC,MAAM,SAAS,GAAG,0BAA0B,CAAC;AA+D7C,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc,EAAE,KAAa;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,cAAc,CAAC,CAAC;IACjH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,SAAS,CAAC,KAA8B,EAAE,IAAuB,EAAE,KAAa;IACvF,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,4BAA4B,CAAC,CAAC;AACtI,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAClC,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAChE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAC3G,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAC3E,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;QAC1E,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5E,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAC1F,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,qBAAqB,CAAC,OAAwB;IAC5D,eAAe,CAAC,OAAO,CAAC,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC;IAC7C,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;QAC/C,GAAG,aAAa;QAChB,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;KAC5C,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,eAAe,CAAC,OAAwB;IAC/C,SAAS,CAAC,OAA6C,EAAE,CAAC,iBAAiB,EAAE,UAAU,EAAE,kBAAkB,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,QAAQ,CAAC,EAAE,iBAAiB,CAAC,CAAC;IAC/O,IAAI,OAAO,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,IAAI,IAAI,OAAO,OAAO,CAAC,aAAa,KAAK,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACpnB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5G,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACtM,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACpI,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;QACrB,KAAK,UAAU,CAAC;QAAC,KAAK,WAAW,CAAC;QAAC,KAAK,iBAAiB,CAAC;QAAC,KAAK,OAAO,CAAC;QAAC,KAAK,UAAU;YACtF,SAAS,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,kBAAkB,CAAC,CAAC;YAC9D,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;QAC9D,KAAK,WAAW;YACd,SAAS,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,kBAAkB,CAAC,CAAC;YACtF,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,IAAI,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YAChM,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QACjH,KAAK,UAAU;YACb,SAAS,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,iBAAiB,CAAC,CAAC;YACrE,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB;gBAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;YAC5I,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QAC9E,KAAK,UAAU,CAAC;QAAC,KAAK,SAAS;YAC7B,SAAS,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,iBAAiB,CAAC,CAAC;YACrE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC;QACzG;YACE,MAAM,IAAI,KAAK,CAAC,qCAAqC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzE,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,MAAsB;IACxC,OAAO,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC;AACtI,CAAC;AAED,MAAM,OAAO,cAAc;IACR,MAAM,CAAS;IACf,SAAS,CAAiB;IAC1B,GAAG,CAAe;IAClB,SAAS,CAAS;IAClB,SAAS,CAAyC;IAClD,SAAS,CAAoC;IAE9D,YAAY,OAA8B;QACxC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QACrF,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAK,UAAU,CAAC,KAAmC,CAAC;QACtF,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,sBAAsB,IAAI,MAAM,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAC/I,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,iBAAiB,IAAI,IAAI,iBAAiB,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,sBAAsB,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC/K,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,iBAAiB,IAAI,IAAI,iBAAiB,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,sBAAsB,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACjL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAA0B;QACrC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,wEAAwE;QACxE,sEAAsE;QACtE,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACzC,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;YAClF,IAAI,KAAK,CAAC,OAAO,CAAC,MAAO,CAAC,IAAI,KAAK,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,MAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxG,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;YAC3F,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACtE,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACpM,CAAC;QACD,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QAClF,IAAI,kBAA0B,CAAC;QAC/B,IAAI,YAA6C,CAAC;QAClD,IAAI,KAAK,CAAC,UAAU,IAAI,yBAAyB,EAAE,CAAC;YAClD,kBAAkB,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC;QACzJ,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACpG,IAAI,CAAC,KAAK,CAAC,KAAK;gBAAE,YAAY,GAAG,KAAK,CAAC;YACvC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1H,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;YACjG,CAAC;YACD,kBAAkB,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;gBAChD,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,KAAK;gBACL,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACtE,CAAC,CAAC,CAAC,kBAAkB,CAAC;QACzB,CAAC;QACD,MAAM,MAAM,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,CAAC,EAAE,CAAC;QACjJ,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC;gBAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,8DAA8D,CAAC,CAAC;QACxH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,OAAO,CAAC,aAAoC,EAAE,SAAiB;QACnE,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE,sBAAsB,kBAAkB,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC1I,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,aAAoC,EAAE,OAAwB;QAClF,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,4BAA4B,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAC/F,CAAC;IAEO,kBAAkB,CAAC,SAA6B,EAAE,SAAiB,EAAE,KAAiB;QAC5F,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC9C,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC7D,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,mBAAmB,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACjE,CAAC;IAEO,KAAK,CAAC,MAAM,CAAC,aAAoC,EAAE,SAAiB,EAAE,aAAqB,EAAE,SAA4B,EAAE,kBAAiC;QAClK,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,sBAAsB,kBAAkB,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,kBAAkB,EAAE,EAAE,QAAQ,CAAC,CAAC;IACjP,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,aAAoC,EAAE,MAAsB,EAAE,WAAmB,EAAE,IAAa,EAAE,KAAa;QACnI,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QACxC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACnE,IAAI,QAAgC,CAAC;QACrC,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,WAAW,EAAE,EAAE;gBAC9D,MAAM;gBACN,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;oBACnE,MAAM,EAAE,kBAAkB;oBAC1B,oBAAoB,EAAE,GAAG;oBACzB,gBAAgB,EAAE,QAAQ,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC;oBAC9D,oBAAoB,EAAE,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,CAAC;oBACzF,sBAAsB,EAAE,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,mBAAmB,CAAC;oBAC/F,iBAAiB,EAAE,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC;oBAC/D,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACrE;gBACD,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5D,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,yCAAyC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChJ,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YAC1D,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,8CAA8C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACrJ,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,YAAY,QAAQ,CAAC,MAAM,2BAA2B,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACzI,IAAI,CAAC;YAAC,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,2CAA2C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAAC,CAAC;IAClN,CAAC;IAEO,mBAAmB,CAAC,aAAoC,EAAE,OAAyB;QACzF,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACpI,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,aAAa,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IAC/I,CAAC;CACF;AAED,SAAS,QAAQ,CAAC,KAAiB;IACjC,OAAO,UAAU,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAwB,CAAC;AAC5F,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACrC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACvF,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
1
|
+
{"version":3,"file":"mutation-client.js","sourceRoot":"","sources":["../../src/sync/mutation-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,OAAO,EACL,iBAAiB,EACjB,yBAAyB,GAI1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjF,MAAM,MAAM,GAAG,uBAAuB,CAAC;AACvC,MAAM,SAAS,GAAG,0BAA0B,CAAC;AAiE7C,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc,EAAE,KAAa;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,cAAc,CAAC,CAAC;IACjH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,SAAS,CAAC,KAA8B,EAAE,IAAuB,EAAE,KAAa;IACvF,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,4BAA4B,CAAC,CAAC;AACtI,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAClC,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAChE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAC3G,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAC3E,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;QAC1E,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5E,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAC1F,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,qBAAqB,CAAC,OAAwB;IAC5D,eAAe,CAAC,OAAO,CAAC,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC;IAC7C,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;QAC/C,GAAG,aAAa;QAChB,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;KAC5C,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,eAAe,CAAC,OAAwB;IAC/C,SAAS,CAAC,OAA6C,EAAE,CAAC,iBAAiB,EAAE,UAAU,EAAE,kBAAkB,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,QAAQ,CAAC,EAAE,iBAAiB,CAAC,CAAC;IAC/O,IAAI,OAAO,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,IAAI,IAAI,OAAO,OAAO,CAAC,aAAa,KAAK,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACpnB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5G,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACtM,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACpI,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;QACrB,KAAK,UAAU,CAAC;QAAC,KAAK,WAAW,CAAC;QAAC,KAAK,iBAAiB,CAAC;QAAC,KAAK,OAAO,CAAC;QAAC,KAAK,UAAU;YACtF,SAAS,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,kBAAkB,CAAC,CAAC;YAC9D,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;QAC9D,KAAK,WAAW;YACd,SAAS,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,kBAAkB,CAAC,CAAC;YACtF,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,IAAI,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YAChM,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QACjH,KAAK,UAAU;YACb,SAAS,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,iBAAiB,CAAC,CAAC;YACrE,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB;gBAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;YAC5I,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QAC9E,KAAK,UAAU,CAAC;QAAC,KAAK,SAAS;YAC7B,SAAS,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,iBAAiB,CAAC,CAAC;YACrE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC;QACzG;YACE,MAAM,IAAI,KAAK,CAAC,qCAAqC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzE,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,MAAsB;IACxC,OAAO,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC;AACtI,CAAC;AAED,MAAM,OAAO,cAAc;IACR,MAAM,CAAS;IACf,SAAS,CAAiB;IAC1B,GAAG,CAAe;IAClB,SAAS,CAAS;IAClB,SAAS,CAAyC;IAClD,SAAS,CAAoC;IAE9D,YAAY,OAA8B;QACxC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QACrF,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAK,UAAU,CAAC,KAAmC,CAAC;QACtF,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,sBAAsB,IAAI,MAAM,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAC/I,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,iBAAiB,IAAI,IAAI,iBAAiB,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,sBAAsB,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC/K,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,iBAAiB,IAAI,IAAI,iBAAiB,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,sBAAsB,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACjL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAA0B;QACrC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,wEAAwE;QACxE,sEAAsE;QACtE,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACzC,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;YAClF,IAAI,KAAK,CAAC,OAAO,CAAC,MAAO,CAAC,IAAI,KAAK,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,MAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxG,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;YAC3F,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACtE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACpE,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACpM,CAAC;QACD,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QAClF,IAAI,kBAA0B,CAAC;QAC/B,IAAI,YAA6C,CAAC;QAClD,IAAI,KAAK,CAAC,UAAU,IAAI,yBAAyB,EAAE,CAAC;YAClD,kBAAkB,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC;QACzJ,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACpG,IAAI,CAAC,KAAK,CAAC,KAAK;gBAAE,YAAY,GAAG,KAAK,CAAC;YACvC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1H,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;YACjG,CAAC;YACD,kBAAkB,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;gBAChD,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,KAAK;gBACL,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACtE,CAAC,CAAC,CAAC,kBAAkB,CAAC;QACzB,CAAC;QACD,MAAM,MAAM,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,CAAC,EAAE,CAAC;QACjJ,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC;gBAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,8DAA8D,CAAC,CAAC;QACxH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,OAAO,CAAC,aAAoC,EAAE,SAAiB;QACnE,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE,sBAAsB,kBAAkB,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC1I,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,aAAoC,EAAE,OAAwB;QAClF,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,4BAA4B,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAC/F,CAAC;IAEO,kBAAkB,CAAC,SAA6B,EAAE,SAAiB,EAAE,KAAiB;QAC5F,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC9C,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC7D,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,mBAAmB,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACjE,CAAC;IAEO,KAAK,CAAC,MAAM,CAAC,aAAoC,EAAE,SAAiB,EAAE,aAAqB,EAAE,SAA4B,EAAE,kBAAiC;QAClK,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,sBAAsB,kBAAkB,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,kBAAkB,EAAE,EAAE,QAAQ,CAAC,CAAC;IACjP,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,aAAoC,EAAE,MAAsB,EAAE,WAAmB,EAAE,IAAa,EAAE,KAAa;QACnI,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QACxC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACnE,IAAI,QAAgC,CAAC;QACrC,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,WAAW,EAAE,EAAE;gBAC9D,MAAM;gBACN,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;oBACnE,MAAM,EAAE,kBAAkB;oBAC1B,oBAAoB,EAAE,GAAG;oBACzB,gBAAgB,EAAE,QAAQ,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC;oBAC9D,oBAAoB,EAAE,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,CAAC;oBACzF,sBAAsB,EAAE,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,mBAAmB,CAAC;oBAC/F,iBAAiB,EAAE,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC;oBAC/D,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACrE;gBACD,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5D,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,yCAAyC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChJ,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YAC1D,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,8CAA8C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACrJ,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,YAAY,QAAQ,CAAC,MAAM,2BAA2B,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACzI,IAAI,CAAC;YAAC,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,2CAA2C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAAC,CAAC;IAClN,CAAC;IAEO,mBAAmB,CAAC,aAAoC,EAAE,OAAyB;QACzF,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACpI,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,aAAa,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IAC/I,CAAC;CACF;AAED,SAAS,QAAQ,CAAC,KAAiB;IACjC,OAAO,UAAU,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAwB,CAAC;AAC5F,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACrC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACvF,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { RealtimePassAuthorizer } from "./lease-client.js";
|
|
2
|
+
import { MutationClient, type MutationOperation, type MutationSubmission } from "./mutation-client.js";
|
|
3
|
+
import { type RealtimeCapabilityVector } from "./realtime-rollout.js";
|
|
4
|
+
export declare const SYNC_MUTATION_NOT_ENROLLED_EXIT = 3;
|
|
5
|
+
export declare class SyncMutationNotEnrolledError extends Error {
|
|
6
|
+
constructor();
|
|
7
|
+
}
|
|
8
|
+
export interface LocalMutationChange {
|
|
9
|
+
canonicalPath: string;
|
|
10
|
+
op: MutationOperation;
|
|
11
|
+
bytes?: Uint8Array;
|
|
12
|
+
}
|
|
13
|
+
export interface LocalMutationSessionDeps {
|
|
14
|
+
apiUrl?: string;
|
|
15
|
+
hqRoot?: string;
|
|
16
|
+
getAccessToken?: () => Promise<string>;
|
|
17
|
+
resolvePersonalScopeUid?: (bearer: string) => Promise<string>;
|
|
18
|
+
createMutationClient?: (apiUrl: string) => Pick<MutationClient, "submit">;
|
|
19
|
+
authorizer?: Pick<RealtimePassAuthorizer, "authorizeWithBearer">;
|
|
20
|
+
resolveBaseVersion?: (input: {
|
|
21
|
+
apiUrl: string;
|
|
22
|
+
hqRoot: string;
|
|
23
|
+
scopeUid: string;
|
|
24
|
+
canonicalPath: string;
|
|
25
|
+
}) => string | null;
|
|
26
|
+
deviceId?: string;
|
|
27
|
+
capabilityVector?: RealtimeCapabilityVector;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Builds complete V2 requests from one local enrolled session. A fresh lease
|
|
31
|
+
* is issued for every submission; stale/revoked inventory never falls back to
|
|
32
|
+
* a legacy path.
|
|
33
|
+
*/
|
|
34
|
+
export declare class LocalEnrolledMutationSession {
|
|
35
|
+
private readonly apiUrl;
|
|
36
|
+
private readonly hqRoot;
|
|
37
|
+
private readonly getAccessToken;
|
|
38
|
+
private readonly resolvePersonalScopeUid;
|
|
39
|
+
private readonly mutationClient;
|
|
40
|
+
private readonly authorizer;
|
|
41
|
+
private readonly deviceId;
|
|
42
|
+
private readonly capabilityVector;
|
|
43
|
+
private readonly resolveBaseVersion;
|
|
44
|
+
constructor(deps?: LocalMutationSessionDeps);
|
|
45
|
+
submit(change: LocalMutationChange): Promise<MutationSubmission>;
|
|
46
|
+
private resumePlan;
|
|
47
|
+
private submitPlan;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=mutation-session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutation-session.d.ts","sourceRoot":"","sources":["../../src/sync/mutation-session.ts"],"names":[],"mappings":"AAiBA,OAAO,EAGL,sBAAsB,EAEvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,KAAK,iBAAiB,EAAwB,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE7H,OAAO,EAAyB,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAO7F,eAAO,MAAM,+BAA+B,IAAI,CAAC;AAEjD,qBAAa,4BAA6B,SAAQ,KAAK;;CAKtD;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,EAAE,EAAE,iBAAiB,CAAC;IACtB,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,uBAAuB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9D,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IAC1E,UAAU,CAAC,EAAE,IAAI,CAAC,sBAAsB,EAAE,qBAAqB,CAAC,CAAC;IACjE,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,GAAG,IAAI,CAAC;IAC3H,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;CAC7C;AAuBD;;;;GAIG;AACH,qBAAa,4BAA4B;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;IACvD,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAsC;IAC9E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiC;IAChE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsD;IACjF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA2B;IAC5D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA8D;gBAErF,IAAI,GAAE,wBAA6B;IA2BzC,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;YAmExD,UAAU;YAaV,UAAU;CAoCzB"}
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local, enrolled V2 mutation session for the desktop sidecar boundary.
|
|
3
|
+
*
|
|
4
|
+
* This intentionally obtains fresh inventory + lease authority through the
|
|
5
|
+
* same RealtimePassAuthorizer used by the sync machinery. The caller gives
|
|
6
|
+
* us only a change; bearer, lease, device binding, revisions, and generation
|
|
7
|
+
* remain local to hq-cloud and never cross stdin.
|
|
8
|
+
*/
|
|
9
|
+
import { createHash, randomUUID } from "node:crypto";
|
|
10
|
+
import * as fs from "node:fs";
|
|
11
|
+
import * as os from "node:os";
|
|
12
|
+
import * as path from "node:path";
|
|
13
|
+
import { CognitoAuthError, CognitoRefreshError, getValidAccessToken, VaultClient } from "../index.js";
|
|
14
|
+
import { pickCanonicalPersonEntity } from "../vault-client.js";
|
|
15
|
+
import { HQ_CLOUD_VERSION } from "../version.js";
|
|
16
|
+
import { getOrCreateMachineId } from "../lib/machine-id.js";
|
|
17
|
+
import { RealtimeEnrollmentUnavailableError, RealtimeLeaseClient, RealtimePassAuthorizer, membershipRevisionFromLease, } from "./lease-client.js";
|
|
18
|
+
import { MutationClient } from "./mutation-client.js";
|
|
19
|
+
import { DurableAttemptSpool } from "./multipart-uploader.js";
|
|
20
|
+
import { RealtimeRolloutClient } from "./realtime-rollout.js";
|
|
21
|
+
import { resolveAuthoritativeBaseVersion } from "./base-version-resolver.js";
|
|
22
|
+
import { UploaderFinalizer, openUploaderFinalizationStore } from "./uploader-finalization.js";
|
|
23
|
+
const DEFAULT_API_URL = process.env.HQ_VAULT_API_URL ?? "https://hqapi.hq.computer";
|
|
24
|
+
const EMPTY_SHA256 = `sha256:${createHash("sha256").update("").digest("hex")}`;
|
|
25
|
+
export const SYNC_MUTATION_NOT_ENROLLED_EXIT = 3;
|
|
26
|
+
export class SyncMutationNotEnrolledError extends Error {
|
|
27
|
+
constructor() {
|
|
28
|
+
super("local hq-cloud session is not enrolled for realtime V2 mutations");
|
|
29
|
+
this.name = "SyncMutationNotEnrolledError";
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function defaultHqRoot() {
|
|
33
|
+
return process.env.HQ_HOME ?? process.env.HQ_ROOT ?? path.join(os.homedir(), "hq");
|
|
34
|
+
}
|
|
35
|
+
function defaultCognitoConfig() {
|
|
36
|
+
return {
|
|
37
|
+
region: process.env.AWS_REGION ?? "us-east-1",
|
|
38
|
+
userPoolDomain: process.env.HQ_COGNITO_DOMAIN ?? "vault-indigo-hq-prod",
|
|
39
|
+
clientId: process.env.HQ_COGNITO_CLIENT_ID ?? "7acei2c8v870enheptb1j5foln",
|
|
40
|
+
port: process.env.HQ_COGNITO_CALLBACK_PORT ? Number(process.env.HQ_COGNITO_CALLBACK_PORT) : 8765,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
function fingerprint(value) {
|
|
44
|
+
return createHash("sha256").update(JSON.stringify(value)).digest("hex");
|
|
45
|
+
}
|
|
46
|
+
function sourceDigest(bytes) {
|
|
47
|
+
return `sha256:${createHash("sha256").update(bytes).digest("hex")}`;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Builds complete V2 requests from one local enrolled session. A fresh lease
|
|
51
|
+
* is issued for every submission; stale/revoked inventory never falls back to
|
|
52
|
+
* a legacy path.
|
|
53
|
+
*/
|
|
54
|
+
export class LocalEnrolledMutationSession {
|
|
55
|
+
apiUrl;
|
|
56
|
+
hqRoot;
|
|
57
|
+
getAccessToken;
|
|
58
|
+
resolvePersonalScopeUid;
|
|
59
|
+
mutationClient;
|
|
60
|
+
authorizer;
|
|
61
|
+
deviceId;
|
|
62
|
+
capabilityVector;
|
|
63
|
+
resolveBaseVersion;
|
|
64
|
+
constructor(deps = {}) {
|
|
65
|
+
this.apiUrl = (deps.apiUrl ?? DEFAULT_API_URL).replace(/\/+$/, "");
|
|
66
|
+
this.hqRoot = deps.hqRoot ?? defaultHqRoot();
|
|
67
|
+
this.getAccessToken = deps.getAccessToken ?? (() => getValidAccessToken(defaultCognitoConfig(), { interactive: false }));
|
|
68
|
+
this.resolvePersonalScopeUid = deps.resolvePersonalScopeUid ?? (async (bearer) => {
|
|
69
|
+
const client = new VaultClient({ apiUrl: this.apiUrl, authToken: bearer, region: process.env.AWS_REGION ?? "us-east-1" });
|
|
70
|
+
const person = pickCanonicalPersonEntity(await client.entity.listByType("person"));
|
|
71
|
+
if (!person?.uid)
|
|
72
|
+
throw new SyncMutationNotEnrolledError();
|
|
73
|
+
return person.uid;
|
|
74
|
+
});
|
|
75
|
+
this.mutationClient = deps.createMutationClient?.(this.apiUrl) ?? new MutationClient({ apiUrl: this.apiUrl });
|
|
76
|
+
this.deviceId = deps.deviceId ?? getOrCreateMachineId(this.hqRoot);
|
|
77
|
+
this.capabilityVector = deps.capabilityVector ?? {
|
|
78
|
+
hqCloud: HQ_CLOUD_VERSION,
|
|
79
|
+
hqDesktop: process.env.HQ_INSTALLER_VERSION ?? "none",
|
|
80
|
+
protocol: 2,
|
|
81
|
+
journal: 3,
|
|
82
|
+
durableApply: 2,
|
|
83
|
+
};
|
|
84
|
+
this.resolveBaseVersion = deps.resolveBaseVersion ?? ((input) => resolveAuthoritativeBaseVersion(input, input.canonicalPath));
|
|
85
|
+
this.authorizer = deps.authorizer ?? new RealtimePassAuthorizer(this.getAccessToken, new RealtimeRolloutClient({ apiUrl: this.apiUrl }), new RealtimeLeaseClient({ apiUrl: this.apiUrl }));
|
|
86
|
+
}
|
|
87
|
+
async submit(change) {
|
|
88
|
+
let bearer;
|
|
89
|
+
try {
|
|
90
|
+
bearer = await this.getAccessToken();
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
if (error instanceof CognitoAuthError && !(error instanceof CognitoRefreshError && !error.requiresReauth)) {
|
|
94
|
+
throw new SyncMutationNotEnrolledError();
|
|
95
|
+
}
|
|
96
|
+
throw error;
|
|
97
|
+
}
|
|
98
|
+
const scopeUid = await this.resolvePersonalScopeUid(bearer);
|
|
99
|
+
let authorized;
|
|
100
|
+
try {
|
|
101
|
+
authorized = await this.authorizer.authorizeWithBearer(bearer, {
|
|
102
|
+
deviceId: this.deviceId,
|
|
103
|
+
capabilityVector: this.capabilityVector,
|
|
104
|
+
configurationFingerprint: fingerprint(this.capabilityVector),
|
|
105
|
+
scopeFingerprint: fingerprint([scopeUid]),
|
|
106
|
+
scopeUids: [scopeUid],
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
if (error instanceof RealtimeEnrollmentUnavailableError)
|
|
111
|
+
throw new SyncMutationNotEnrolledError();
|
|
112
|
+
throw error;
|
|
113
|
+
}
|
|
114
|
+
const scope = authorized.scopes[0];
|
|
115
|
+
if (!scope)
|
|
116
|
+
throw new SyncMutationNotEnrolledError();
|
|
117
|
+
if (Date.parse(scope.lease.expiresAt) <= Date.now()) {
|
|
118
|
+
throw new Error("realtime mutation: lease expired before local submission");
|
|
119
|
+
}
|
|
120
|
+
const membershipRevision = membershipRevisionFromLease(scope.lease);
|
|
121
|
+
const stateRoot = path.join(this.hqRoot, ".hq", "realtime-mutation-state");
|
|
122
|
+
const releasePathLock = await acquireMutationPathLock(stateRoot, scopeUid, change.canonicalPath);
|
|
123
|
+
try {
|
|
124
|
+
const finalizer = new UploaderFinalizer(openUploaderFinalizationStore({
|
|
125
|
+
rootDir: stateRoot,
|
|
126
|
+
scopeId: `${scopeUid}:uploader`,
|
|
127
|
+
}));
|
|
128
|
+
const authorization = {
|
|
129
|
+
bearer: authorized.bearer,
|
|
130
|
+
deviceId: this.deviceId,
|
|
131
|
+
capabilityVector: this.capabilityVector,
|
|
132
|
+
lease: scope.lease,
|
|
133
|
+
};
|
|
134
|
+
const existing = finalizer.getState().paths[change.canonicalPath];
|
|
135
|
+
const planned = existing?.plannedMutation;
|
|
136
|
+
if (planned) {
|
|
137
|
+
const recovered = await this.resumePlan(finalizer, planned, authorization, membershipRevision, scope.grant.scopeRevision);
|
|
138
|
+
if (recovered.status.status !== "committed" || isSameChange(planned, change))
|
|
139
|
+
return recovered;
|
|
140
|
+
}
|
|
141
|
+
const previous = finalizer.getState().paths[change.canonicalPath];
|
|
142
|
+
const source = change.op === "upsert" ? requireBytes(change) : undefined;
|
|
143
|
+
const sha256 = source ? sourceDigest(source) : previous?.sha256 ?? EMPTY_SHA256;
|
|
144
|
+
const generation = (previous?.generation ?? -1) + 1;
|
|
145
|
+
const baseVersionId = previous?.synchronizedVersionId ?? this.resolveBaseVersion({ apiUrl: this.apiUrl, hqRoot: this.hqRoot, scopeUid, canonicalPath: change.canonicalPath });
|
|
146
|
+
finalizer.recordDirty({ path: change.canonicalPath, generation, sha256, baseVersionId });
|
|
147
|
+
const plan = {
|
|
148
|
+
path: change.canonicalPath, generation, sha256, baseVersionId,
|
|
149
|
+
clientMutationId: randomUUID(), operation: change.op, membershipRevision, scopeRevision: scope.grant.scopeRevision,
|
|
150
|
+
...(source ? { bytes: persistBytes(path.join(stateRoot, "pending-by-client-id"), randomUUID(), source, sourceModeFor(this.hqRoot, change.canonicalPath)) } : {}),
|
|
151
|
+
};
|
|
152
|
+
finalizer.recordMutationPlan(plan);
|
|
153
|
+
return this.submitPlan(finalizer, plan, authorization);
|
|
154
|
+
}
|
|
155
|
+
finally {
|
|
156
|
+
releasePathLock();
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
async resumePlan(finalizer, plan, authorization, membershipRevision, scopeRevision) {
|
|
160
|
+
if (plan.membershipRevision !== membershipRevision || plan.scopeRevision !== scopeRevision) {
|
|
161
|
+
throw new Error("realtime mutation: pending attempt authorization changed; recover only after V2 reset");
|
|
162
|
+
}
|
|
163
|
+
return this.submitPlan(finalizer, plan, authorization);
|
|
164
|
+
}
|
|
165
|
+
async submitPlan(finalizer, plan, authorization) {
|
|
166
|
+
const bytes = plan.operation === "upsert" ? readPersistedBytes(plan) : undefined;
|
|
167
|
+
const request = {
|
|
168
|
+
contractVersion: 2,
|
|
169
|
+
deviceId: this.deviceId,
|
|
170
|
+
clientMutationId: plan.clientMutationId,
|
|
171
|
+
canonicalPath: plan.path,
|
|
172
|
+
operation: plan.operation,
|
|
173
|
+
baseVersionId: plan.baseVersionId,
|
|
174
|
+
generation: plan.generation,
|
|
175
|
+
membershipRevision: plan.membershipRevision,
|
|
176
|
+
scopeRevision: plan.scopeRevision,
|
|
177
|
+
...(plan.operation === "upsert" ? { source: { kind: "regular", mode: plan.bytes.mode, sha256: plan.sha256, size: bytes.byteLength } } : {}),
|
|
178
|
+
};
|
|
179
|
+
const result = await this.mutationClient.submit({
|
|
180
|
+
authorization, request, ...(bytes ? { bytes, spoolDirectory: path.dirname(plan.bytes.filePath) } : {}),
|
|
181
|
+
onPrepared: (attemptId) => finalizer.recordAttempt({ attemptId, path: plan.path, generation: plan.generation, sha256: plan.sha256, baseVersionId: plan.baseVersionId }),
|
|
182
|
+
});
|
|
183
|
+
if (result.status.status === "committed") {
|
|
184
|
+
// A lost prepare/commit response can leave the server terminal before a
|
|
185
|
+
// process had a chance to append onPrepared. Reconstruct the immutable
|
|
186
|
+
// attempt from the pre-prepare plan before finalization consumes it.
|
|
187
|
+
if (!finalizer.getState().paths[plan.path]?.attempts[result.status.attemptId]) {
|
|
188
|
+
finalizer.recordAttempt({ attemptId: result.status.attemptId, path: plan.path, generation: plan.generation, sha256: plan.sha256, baseVersionId: plan.baseVersionId });
|
|
189
|
+
}
|
|
190
|
+
finalizer.finalize({ attemptId: result.status.attemptId, path: plan.path, generation: plan.generation, sha256: plan.sha256, versionId: result.status.versionId, deltaId: result.status.deltaId });
|
|
191
|
+
if (plan.bytes) {
|
|
192
|
+
try {
|
|
193
|
+
fs.unlinkSync(plan.bytes.filePath);
|
|
194
|
+
}
|
|
195
|
+
catch { /* a retained committed spool is harmless recovery evidence */ }
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
return result;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
function requireBytes(change) {
|
|
202
|
+
if (!change.bytes)
|
|
203
|
+
throw new Error("sync mutation: upsert requires contentBase64");
|
|
204
|
+
return change.bytes;
|
|
205
|
+
}
|
|
206
|
+
function persistBytes(directory, spoolId, bytes, mode) {
|
|
207
|
+
const spool = DurableAttemptSpool.create(directory, spoolId, bytes);
|
|
208
|
+
return { filePath: spool.filePath, size: spool.size, sha256: spool.sha256, mode };
|
|
209
|
+
}
|
|
210
|
+
function sourceModeFor(hqRoot, canonicalPath) {
|
|
211
|
+
const root = path.resolve(hqRoot);
|
|
212
|
+
const localPath = path.resolve(root, canonicalPath);
|
|
213
|
+
const relative = path.relative(root, localPath);
|
|
214
|
+
if (!relative || relative.startsWith(`..${path.sep}`) || path.isAbsolute(relative)) {
|
|
215
|
+
throw new Error("realtime mutation: canonical path escapes the local HQ root");
|
|
216
|
+
}
|
|
217
|
+
const stat = fs.statSync(localPath);
|
|
218
|
+
if (!stat.isFile())
|
|
219
|
+
throw new Error("realtime mutation: upsert source is not a regular file");
|
|
220
|
+
return stat.mode & 0o777;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Cross-process, stale-owner-recovering serialization for one scope/path.
|
|
224
|
+
* It covers generation allocation through commit, so concurrent sidecars cannot
|
|
225
|
+
* both reserve the same durable generation. The async poll deliberately keeps
|
|
226
|
+
* this process's event loop free while another local submission is in flight.
|
|
227
|
+
*/
|
|
228
|
+
async function acquireMutationPathLock(stateRoot, scopeUid, canonicalPath) {
|
|
229
|
+
const directory = path.join(stateRoot, "submission-locks");
|
|
230
|
+
fs.mkdirSync(directory, { recursive: true, mode: 0o700 });
|
|
231
|
+
const owner = `${process.pid}\n`;
|
|
232
|
+
const lockPath = path.join(directory, createHash("sha256").update(`${scopeUid}\0${canonicalPath}`).digest("hex") + ".lock");
|
|
233
|
+
for (;;) {
|
|
234
|
+
try {
|
|
235
|
+
const fd = fs.openSync(lockPath, "wx", 0o600);
|
|
236
|
+
try {
|
|
237
|
+
fs.writeFileSync(fd, owner);
|
|
238
|
+
fs.fsyncSync(fd);
|
|
239
|
+
}
|
|
240
|
+
finally {
|
|
241
|
+
fs.closeSync(fd);
|
|
242
|
+
}
|
|
243
|
+
return () => {
|
|
244
|
+
try {
|
|
245
|
+
if (fs.readFileSync(lockPath, "utf8") === owner)
|
|
246
|
+
fs.unlinkSync(lockPath);
|
|
247
|
+
}
|
|
248
|
+
catch {
|
|
249
|
+
// A stale owner can be reclaimed by a later process.
|
|
250
|
+
}
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
catch (error) {
|
|
254
|
+
if (error.code !== "EEXIST")
|
|
255
|
+
throw error;
|
|
256
|
+
try {
|
|
257
|
+
const ownerPid = Number(fs.readFileSync(lockPath, "utf8"));
|
|
258
|
+
try {
|
|
259
|
+
process.kill(ownerPid, 0);
|
|
260
|
+
}
|
|
261
|
+
catch (probeError) {
|
|
262
|
+
if (probeError.code === "ESRCH")
|
|
263
|
+
fs.unlinkSync(lockPath);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
catch (readError) {
|
|
267
|
+
if (readError.code === "ENOENT")
|
|
268
|
+
continue;
|
|
269
|
+
}
|
|
270
|
+
await new Promise((resolve) => setTimeout(resolve, 20));
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
function readPersistedBytes(plan) {
|
|
275
|
+
if (!plan.bytes)
|
|
276
|
+
throw new Error("realtime mutation: durable recovery bytes are unavailable");
|
|
277
|
+
return Uint8Array.from(fs.readFileSync(plan.bytes.filePath));
|
|
278
|
+
}
|
|
279
|
+
function isSameChange(plan, change) {
|
|
280
|
+
return plan.operation === change.op && (change.op === "delete" || plan.sha256 === sourceDigest(requireBytes(change)));
|
|
281
|
+
}
|
|
282
|
+
//# sourceMappingURL=mutation-session.js.map
|