hikoutei 0.8.57 → 0.8.58
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/application/sync/outbound/SheetsEffectDispatcher.d.ts +1 -0
- package/dist/application/sync/outbound/SheetsEffectDispatcher.d.ts.map +1 -1
- package/dist/application/sync/outbound/SheetsEffectDispatcher.js +3 -0
- package/dist/application/sync/outbound/SheetsEffectDispatcher.js.map +1 -1
- package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.d.ts.map +1 -1
- package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.js +39 -5
- package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.js.map +1 -1
- package/dist/application/sync/outbound/reconciliation/diff.d.ts +19 -1
- package/dist/application/sync/outbound/reconciliation/diff.d.ts.map +1 -1
- package/dist/application/sync/outbound/reconciliation/diff.js +60 -17
- package/dist/application/sync/outbound/reconciliation/diff.js.map +1 -1
- package/dist/application/sync/outbound/reconciliation/repair.d.ts +34 -3
- package/dist/application/sync/outbound/reconciliation/repair.d.ts.map +1 -1
- package/dist/application/sync/outbound/reconciliation/repair.js +120 -47
- package/dist/application/sync/outbound/reconciliation/repair.js.map +1 -1
- package/dist/application/sync/outbound/reconciliation/shared.d.ts +20 -0
- package/dist/application/sync/outbound/reconciliation/shared.d.ts.map +1 -1
- package/dist/application/sync/outbound/reconciliation/shared.js +35 -0
- package/dist/application/sync/outbound/reconciliation/shared.js.map +1 -1
- package/package.json +1 -1
|
@@ -73,6 +73,7 @@ export declare class SheetsEffectDispatcher implements Dispatcher {
|
|
|
73
73
|
});
|
|
74
74
|
routeKeyFor(effect: PendingEffect): string;
|
|
75
75
|
isFastAppendCandidate(effect: PendingEffect): boolean;
|
|
76
|
+
dispatchPriorityFor(effect: PendingEffect): number;
|
|
76
77
|
payloadValidationError(effect: PendingEffect): Presence<string>;
|
|
77
78
|
/** Dispatches append-only rows through the idempotent provider batch operation. */
|
|
78
79
|
fastAppend(request: DispatchRequest): Promise<FastAppendOutcome>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SheetsEffectDispatcher.d.ts","sourceRoot":"","sources":["../../../../src/application/sync/outbound/SheetsEffectDispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,QAAQ,EACT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,eAAe,EAEpB,KAAK,iBAAiB,EAEtB,KAAK,oBAAoB,EAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAqBvF,OAAO,EAOL,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC9B,MAAM,iCAAiC,CAAC;AAgBzC;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB;IACnC,yEAAyE;;IAEzE,2EAA2E;;IAE3E,yEAAyE;;IAEzE,8EAA8E;;CAEtE,CAAC;AAEX;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAuBvE;
|
|
1
|
+
{"version":3,"file":"SheetsEffectDispatcher.d.ts","sourceRoot":"","sources":["../../../../src/application/sync/outbound/SheetsEffectDispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,QAAQ,EACT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,eAAe,EAEpB,KAAK,iBAAiB,EAEtB,KAAK,oBAAoB,EAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAqBvF,OAAO,EAOL,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC9B,MAAM,iCAAiC,CAAC;AAgBzC;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB;IACnC,yEAAyE;;IAEzE,2EAA2E;;IAE3E,yEAAyE;;IAEzE,8EAA8E;;CAEtE,CAAC;AAEX;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAuBvE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAS/D;AAED,yEAAyE;AACzE,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAOpF;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAM1E;AAED,iFAAiF;AACjF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAcxE;AAED;;;;;GAKG;AACH,qBAAa,sBAAuB,YAAW,UAAU;IACvD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2B;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;gBAEzB,OAAO,EAAE;QAC1B,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC;QAC5C,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;KACrC;IAKM,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM;IAI1C,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO;IAIrD,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM;IAIlD,sBAAsB,CAAC,MAAM,EAAE,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC;IAItE,mFAAmF;IACtE,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAiD7E,gEAAgE;IACnD,KAAK,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC;IA8BnE,6EAA6E;IAChE,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAiCxF;;;;OAIG;IACU,IAAI,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAoChF,qEAAqE;IACxD,eAAe,CAC1B,KAAK,EAAE,cAAc,EACrB,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC;IASnB;;;;;;;;;;OAUG;YACW,oBAAoB;CAoBnC"}
|
|
@@ -140,6 +140,9 @@ export class SheetsEffectDispatcher {
|
|
|
140
140
|
isFastAppendCandidate(effect) {
|
|
141
141
|
return isSheetsFastAppendCandidate(effect);
|
|
142
142
|
}
|
|
143
|
+
dispatchPriorityFor(effect) {
|
|
144
|
+
return sheetsDispatchPriorityFor(effect);
|
|
145
|
+
}
|
|
143
146
|
payloadValidationError(effect) {
|
|
144
147
|
return sheetsPayloadValidationError(effect);
|
|
145
148
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SheetsEffectDispatcher.js","sourceRoot":"","sources":["../../../../src/application/sync/outbound/SheetsEffectDispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,iCAAiC,GAClC,MAAM,8BAA8B,CAAC;AAMtC,OAAO,EACL,sBAAsB,GAWvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,GACpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,WAAW,EACX,YAAY,GACb,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AACtE,OAAO,EACL,kCAAkC,GACnC,MAAM,kEAAkE,CAAC;AAC1E,OAAO,EACL,qCAAqC,GACtC,MAAM,qEAAqE,CAAC;AAC7E,OAAO,EACL,6BAA6B,EAC7B,gCAAgC,GACjC,MAAM,oEAAoE,CAAC;AAC5E,OAAO,EACL,gCAAgC,GAQjC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,+BAA+B,EAC/B,wBAAwB,EACxB,2BAA2B,EAC3B,gBAAgB,GACjB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,oDAAoD,CAAC;AAGrF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,yEAAyE;IACzE,wBAAwB,EAAE,CAAC;IAC3B,2EAA2E;IAC3E,oBAAoB,EAAE,CAAC;IACvB,yEAAyE;IACzE,0BAA0B,EAAE,CAAC;IAC7B,8EAA8E;IAC9E,aAAa,EAAE,CAAC;CACR,CAAC;AAEX;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAqB;IAC7D,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC3C,IACE,SAAS,CAAC,UAAU,KAAK,YAAY,CAAC,iBAAiB;YACvD,SAAS,CAAC,UAAU,KAAK,gBAAgB,CAAC,YAAY,EACtD,CAAC;YACD,OAAO,kBAAkB,CAAC,SAAS,CAAC;gBAClC,CAAC,CAAC,wBAAwB,CAAC,wBAAwB;gBACnD,CAAC,CAAC,wBAAwB,CAAC,oBAAoB,CAAC;QACpD,CAAC;QACD,IACE,SAAS,CAAC,UAAU,KAAK,YAAY,CAAC,qBAAqB;YAC3D,SAAS,CAAC,UAAU,KAAK,gBAAgB,CAAC,cAAc;YACxD,kBAAkB,CAAC,SAAS,CAAC,EAC7B,CAAC;YACD,OAAO,wBAAwB,CAAC,0BAA0B,CAAC;QAC7D,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,8DAA8D;QAC9D,kEAAkE;IACpE,CAAC;IACD,OAAO,wBAAwB,CAAC,aAAa,CAAC;AAChD,CAAC;AAGD;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAqB;IACrD,MAAM,OAAO,GAAG,gCAAgC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACtE,OAAO;QACL,MAAM,CAAC,iBAAiB;QACxB,OAAO,CAAC,SAAS;QACjB,OAAO,CAAC,eAAe;QACvB,MAAM,CAAC,UAAU;QACjB,OAAO,CAAC,aAAa;KACtB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACnB,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,4BAA4B,CAAC,MAAqB;IAChE,IAAI,CAAC;QACH,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzB,OAAO,WAAW,EAAE,CAAC;IACvB,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,OAAO,YAAY,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B,CAAC,MAAqB;IAC/D,IAAI,CAAC;QACH,OAAO,kBAAkB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,kBAAkB,CAAC,MAA4B;IAC7D,MAAM,oBAAoB,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe;QACzD,MAAM,CAAC,uBAAuB,KAAK,iCAAiC;QACpE,MAAM,CAAC,mBAAmB,KAAK,EAAE,CAAC;IACpC,IAAI,CAAC,oBAAoB;QAAE,OAAO,KAAK,CAAC;IACxC,OAAO,CACL,MAAM,CAAC,UAAU,KAAK,YAAY,CAAC,iBAAiB;QAClD,MAAM,CAAC,UAAU,KAAK,gBAAgB,CAAC,YAAY;QACnD,MAAM,CAAC,UAAU,KAAK,mBAAmB,CAAC,MAAM,CACnD,IAAI,CACH,MAAM,CAAC,UAAU,KAAK,YAAY,CAAC,qBAAqB;QACtD,MAAM,CAAC,UAAU,KAAK,gBAAgB,CAAC,cAAc;QACrD,MAAM,CAAC,UAAU,KAAK,mBAAmB,CAAC,QAAQ,CACrD,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,sBAAsB;IAChB,QAAQ,CAA2B;IACnC,OAAO,CAAoB;IAE5C,YAAmB,OAGlB;QACC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACjC,CAAC;IAEM,WAAW,CAAC,MAAqB;QACtC,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAEM,qBAAqB,CAAC,MAAqB;QAChD,OAAO,2BAA2B,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAEM,sBAAsB,CAAC,MAAqB;QACjD,OAAO,4BAA4B,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,mFAAmF;IAC5E,KAAK,CAAC,UAAU,CAAC,OAAwB;QAC9C,MAAM,eAAe,GAAG,0BAA0B,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACpE,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,iBAAiB,CAAC;QAC9D,IAAI,QAAyE,CAAC;QAC9E,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CACxC,eAAe,EACf,gBAAgB,EAChB,OAAO,CAAC,oBAAoB,EAC5B,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,CACvD,CAAC;QACJ,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,wBAAwB,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAC5D,CAAC;QACF,MAAM,OAAO,GAA6B,EAAE,CAAC;QAC7C,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,OAAO,KAAK,SAAS;gBAAE,SAAS;YACpC,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACzC,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,OAAO,CAAC,IAAI,CAAC;oBACX,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,MAAM,EAAE,oBAAoB;oBAC5B,MAAM,EAAE,YAAY,CAAC,6DAA6D,CAAC;iBACpF,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,IAAI,QAAQ,CAAC,WAAW,KAAK,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;gBAC9D,qEAAqE;gBACrE,kEAAkE;gBAClE,qDAAqD;gBACrD,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC,CAAC;gBAC/E,SAAS;YACX,CAAC;YACD,OAAO,CAAC,IAAI,CAAC;gBACX,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,MAAM,EAAE,SAAS;gBACjB,eAAe,EAAE,QAAQ,CAAC,eAAe;gBACzC,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,WAAW,EAAE,cAAc,CAAC,MAAM,CAAC;aACpC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;IACvH,CAAC;IAED,gEAAgE;IACzD,KAAK,CAAC,KAAK,CAAC,OAAwB;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5E,MAAM,eAAe,GAA4B;YAC/C,eAAe,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,eAAe;YAC5C,SAAS,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,SAAS;YACxC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,eAAe;YACpD,UAAU,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,UAAU;YAClC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,aAAa;YAChD,iBAAiB,EAAE,wBAAwB,CAAC,QAAQ;YACpD,OAAO;SACR,CAAC;QACF,IAAI,QAAuE,CAAC;QAC5E,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CACxC,OAAO,CAAC,CAAC,CAAE,CAAC,eAAe,EAC3B,cAAc,EACd,OAAO,CAAC,oBAAoB,EAC5B,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,eAAe,CAAC,CACrD,CAAC;QACJ,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,wBAAwB,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;IACvH,CAAC;IAED,6EAA6E;IACtE,KAAK,CAAC,kBAAkB,CAAC,OAAwB;QACtD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5E,MAAM,eAAe,GAAwC;YAC3D,eAAe,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,eAAe;YAC5C,SAAS,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,SAAS;YACxC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,eAAe;YACpD,UAAU,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,UAAU;YAClC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,aAAa;YAChD,OAAO;SACR,CAAC;QACF,IAAI,QAAmF,CAAC;QACxF,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CACxC,OAAO,CAAC,CAAC,CAAE,CAAC,eAAe,EAC3B,0BAA0B,EAC1B,OAAO,CAAC,oBAAoB,EAC5B,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC,eAAe,CAAC,CACjE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,wBAAwB,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACxC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,aAAa,EAAE,sBAAsB,CACnC,MAAM,CAAC,aAAa,EACpB,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAC9B;SACF,CAAC,CAAC,CAAC;QACJ,OAAO,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,IAAI,CAAC,KAA+B;QAC/C,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,MAA4B,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACrC,SAAS;YACX,CAAC;YACD,IAAI,CAAC,oCAAoC,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACrC,SAAS;YACX,CAAC;YACD,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC;YACvC,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAClC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACrC,SAAS;YACX,CAAC;YACD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACtD,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAC7D,kCAAkC,CAAC,GAAG,EAAE;gBACtC,eAAe,EAAE,MAAM,CAAC,eAAe;gBACvC,UAAU,EAAE,gBAAgB,CAAC,UAAU;gBACvC,YAAY,EAAE,UAAU,CAAC,KAAK;gBAC9B,UAAU;gBACV,kBAAkB,EAAE,iBAAiB,CAAC,IAAI;gBAC1C,qBAAqB,EAAE,iBAAiB,CAAC,YAAY;aACtD,CAAC,CAAC,CAAC;YACN,IAAI,kBAAkB;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;;gBACxD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED,qEAAqE;IAC9D,KAAK,CAAC,eAAe,CAC1B,KAAqB,EACrB,eAAuB,EACvB,OAAe;QAEf,MAAM,MAAM,GAAG,MAAM,qCAAqC,CAAC,IAAI,CAAC,OAAO,EAAE;YACvE,GAAG,KAAK;YACR,eAAe;YACf,OAAO;SACR,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC;IACnC,CAAC;IAED;;;;;;;;;;OAUG;IACK,KAAK,CAAC,oBAAoB,CAChC,eAAuB,EACvB,SAAiB,EACjB,oBAA0D,EAC1D,MAA0D;QAE1D,IAAI,oBAAoB,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrE,IAAI,6BAA6B,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CACrC,eAAe,EACf,SAAS,EACT,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EACxB,oBAAoB,CACrB,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,oBAAoB,EAAE,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,gCAAgC,EAAE,CAAC;QAC/C,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;CACF;AAED,SAAS,0BAA0B,CACjC,OAAiC;IAEjC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;IAC5B,OAAO;QACL,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;QAClC,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,eAAe;QAC9C,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa;QAC1C,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY;YACnC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;SAC9B,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,MAAwB,EACxB,MAAwC;IAExC,MAAM,IAAI,GAAG;QACX,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC;IACF,IACE,CAAC,MAAM,CAAC,MAAM,KAAK,2BAA2B,CAAC,OAAO;QACpD,MAAM,CAAC,MAAM,KAAK,2BAA2B,CAAC,eAAe,CAAC,EAChE,CAAC;QACD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACzD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO;gBACL,GAAG,IAAI;gBACP,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,eAAe,EAAE,QAAQ,CAAC,eAAe;gBACzC,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,WAAW,EAAE,QAAQ,CAAC,WAAW;aAClC,CAAC;QACJ,CAAC;QACD,yEAAyE;QACzE,wEAAwE;QACxE,oBAAoB;QACpB,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,oBAAoB;YAC5B,MAAM,EAAE,YAAY,CAAC,0EAA0E,CAAC;SACjG,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,2BAA2B,CAAC,UAAU,EAAE,CAAC;QAC7D,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IAClE,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,2BAA2B,CAAC,cAAc,EAAE,CAAC;QACjE,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IACtE,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,2BAA2B,CAAC,gBAAgB,EAAE,CAAC;QACnE,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IACxE,CAAC;IACD,OAAO;QACL,GAAG,IAAI;QACP,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,2BAA2B,CAAC,YAAY;YAChE,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,iBAAiB;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,aAAsC,EACtC,MAAwC;IAExC,IACE,aAAa,CAAC,WAAW,KAAK,+BAA+B,CAAC,OAAO;QACrE,aAAa,CAAC,eAAe,CAAC,IAAI,KAAK,SAAS;QAChD,aAAa,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS;QAC5C,MAAM,KAAK,SAAS;QACpB,aAAa,CAAC,WAAW,CAAC,KAAK,KAAK,MAAM,CAAC,OAAO,CAAC,iBAAiB,EACpE,CAAC;QACD,OAAO;YACL,WAAW,EAAE,SAAS;YACtB,eAAe,EAAE,aAAa,CAAC,eAAe,CAAC,KAAK;YACpD,WAAW,EAAE,aAAa,CAAC,WAAW,CAAC,KAAK;YAC5C,WAAW,EAAE,cAAc,CAAC,MAAM,CAAC;SACpC,CAAC;IACJ,CAAC;IACD,IAAI,aAAa,CAAC,WAAW,KAAK,+BAA+B,CAAC,OAAO,EAAE,CAAC;QAC1E,IACE,MAAM,KAAK,SAAS;YACpB,aAAa,CAAC,eAAe,CAAC,IAAI,KAAK,SAAS;YAChD,aAAa,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS,EAC5C,CAAC;YACD,OAAO,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC;QACpD,CAAC;QACD,OAAO,EAAE,WAAW,EAAE,+BAA+B,EAAE,CAAC;IAC1D,CAAC;IACD,IAAI,aAAa,CAAC,WAAW,KAAK,+BAA+B,CAAC,OAAO,EAAE,CAAC;QAC1E,OAAO;YACL,WAAW,EAAE,SAAS;YACtB,GAAG,CAAC,aAAa,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC;SAChF,CAAC;IACJ,CAAC;IACD,IAAI,aAAa,CAAC,WAAW,KAAK,+BAA+B,CAAC,SAAS,EAAE,CAAC;QAC5E,OAAO;YACL,WAAW,EAAE,WAAW;YACxB,GAAG,CAAC,aAAa,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC;SAChF,CAAC;IACJ,CAAC;IACD,OAAO;QACL,WAAW,EAAE,aAAa;QAC1B,GAAG,CAAC,aAAa,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC;KAChF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,uBAAuB,CAC9B,MAAwB,EACxB,MAAwC;IAMxC,IACE,MAAM,CAAC,aAAa,KAAK,2BAA2B,CAAC,QAAQ;QAC7D,MAAM,CAAC,aAAa,KAAK,2BAA2B,CAAC,YAAY,EACjE,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IACE,MAAM,CAAC,eAAe,CAAC,IAAI,KAAK,SAAS;QACzC,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS,EACrC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IACE,MAAM,KAAK,SAAS;QACpB,MAAM,CAAC,WAAW,CAAC,KAAK,KAAK,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAC7D,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO;QACL,eAAe,EAAE,MAAM,CAAC,eAAe,CAAC,KAAK;QAC7C,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK;QACrC,WAAW,EAAE,cAAc,CAAC,MAAM,CAAC;KACpC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,MAA0F;IAE1F,IACE,MAAM,CAAC,MAAM,KAAK,yBAAyB,CAAC,OAAO;QACnD,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ;QAC1C,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,eAAe,CAAC;QAC7C,MAAM,CAAC,eAAe,GAAG,CAAC;QAC1B,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ;QACtC,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAC/B,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;AACtF,CAAC;AAED,SAAS,cAAc,CAAC,MAA4B;IAClD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SAClC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAC/D,CAAC;AACJ,CAAC;AAED,SAAS,oCAAoC,CAAC,MAA4B;IACxE,OAAO,MAAM,CAAC,UAAU,KAAK,YAAY,CAAC,mBAAmB;QAC3D,MAAM,CAAC,UAAU,KAAK,YAAY,CAAC,iBAAiB,CAAC;AACzD,CAAC;AAED,4EAA4E;AAC5E,SAAS,gBAAgB,CAAC,MAAqB;IAC7C,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IAChF,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,SAAS;QAC1B,WAAW,EAAE,MAAM,CAAC,YAAY;QAChC,UAAU,EAAE,MAAM,CAAC,WAAW;QAC9B,eAAe,EAAE,MAAM,CAAC,iBAAiB;QACzC,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,UAAU,EAAE,MAAM,CAAC,WAAW;QAC9B,QAAQ,EAAE,MAAM,CAAC,SAAS;QAC1B,YAAY,EAAE,eAAe,CAAC,MAAM,CAAC,cAAc,CAAC;QACpD,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC;QAC/C,uBAAuB,EAAE,MAAM,CAAC,yBAAyB;QACzD,mBAAmB,EAAE,MAAM,CAAC,qBAAqB;QACjD,eAAe,EAAE,eAAe,CAAC,MAAM,CAAC,iBAAiB,CAAC;QAC1D,OAAO,EAAE,gCAAgC,CAAC,MAAM,CAAC,YAAY,CAAC;KAC/D,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACrC,OAAO,KAAK,KAAK,YAAY,CAAC,iBAAiB;QAC7C,KAAK,KAAK,YAAY,CAAC,mBAAmB;QAC1C,KAAK,KAAK,YAAY,CAAC,aAAa;QACpC,KAAK,KAAK,YAAY,CAAC,qBAAqB;QAC5C,KAAK,KAAK,YAAY,CAAC,iBAAiB;QACxC,KAAK,KAAK,YAAY,CAAC,iBAAiB,CAAC;AAC7C,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACrC,OAAO,KAAK,KAAK,gBAAgB,CAAC,UAAU;QAC1C,KAAK,KAAK,gBAAgB,CAAC,YAAY;QACvC,KAAK,KAAK,gBAAgB,CAAC,cAAc,CAAC;AAC9C,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO,KAAK,KAAK,mBAAmB,CAAC,MAAM;QACzC,KAAK,KAAK,mBAAmB,CAAC,WAAW;QACzC,KAAK,KAAK,mBAAmB,CAAC,cAAc;QAC5C,KAAK,KAAK,mBAAmB,CAAC,QAAQ,CAAC;AAC3C,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc;IAC9C,IAAI,KAAK,YAAY,gCAAgC,EAAE,CAAC;QACtD,wEAAwE;QACxE,yEAAyE;QACzE,mEAAmE;QACnE,+DAA+D;QAC/D,OAAO,IAAI,sBAAsB,CAAC,oBAAoB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAChD,OAAO,IAAI,sBAAsB,CAC/B,OAAO,CAAC,IAAI,KAAK,uBAAuB,CAAC,uBAAuB;QAC9D,CAAC,CAAC,yBAAyB;QAC3B,CAAC,CAAC,oBAAoB,EACxB,OAAO,CAAC,OAAO,CAChB,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc;IAC9C,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,+BAA+B,CAAC;AAChG,CAAC"}
|
|
1
|
+
{"version":3,"file":"SheetsEffectDispatcher.js","sourceRoot":"","sources":["../../../../src/application/sync/outbound/SheetsEffectDispatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReconciliationScanner.d.ts","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/reconciliation/ReconciliationScanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAeH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,oCAAoC,CAAC;AAK5C,OAAO,
|
|
1
|
+
{"version":3,"file":"ReconciliationScanner.d.ts","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/reconciliation/ReconciliationScanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAeH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,oCAAoC,CAAC;AAK5C,OAAO,EAOL,KAAK,uBAAuB,EAE7B,MAAM,aAAa,CAAC;AAkBrB,YAAY,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAE3D,6DAA6D;AAC7D,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,qEAAqE;IACrE,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,uDAAuD;IACvD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,wEAAwE;IACxE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,kCAAkC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,8DAA8D;IAC9D,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IAC5C,sDAAsD;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,IAAI,CAAC;CAChE;AAED,qDAAqD;AACrD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,wBAAwB,CAAC,CAkCnC;AAqSD,eAAO,MAAM,uBAAuB;;;;CAI1B,CAAC"}
|
|
@@ -25,10 +25,10 @@ import { requireRegisteredSyncSheetWithAdapter, } from "../../../../infrastructu
|
|
|
25
25
|
import { STORAGE_ERROR_CODES, StorageError } from "../../../../infrastructure/storage/errors.js";
|
|
26
26
|
import { observeSyncSnapshot, } from "../../sheetsContract/syncSheets.js";
|
|
27
27
|
import { SYNC_PROJECTIONS, SYNC_SNAPSHOT_READ_MODES, } from "../../sheetsContract/constants.js";
|
|
28
|
-
import { DEFAULT_RECONCILIATION_LEASE_MS, DEFAULT_RECONCILIATION_ROLE, DEFAULT_SYSTEM_TOMBSTONE_FIELD, readDesiredSystemState, } from "./shared.js";
|
|
29
|
-
import { computeDrifts, countExtraRows, countMatchedRows, } from "./diff.js";
|
|
28
|
+
import { DEFAULT_RECONCILIATION_LEASE_MS, DEFAULT_RECONCILIATION_ROLE, DEFAULT_SYSTEM_TOMBSTONE_FIELD, readDesiredSystemState, readTerminalFailedHeads, } from "./shared.js";
|
|
29
|
+
import { computeDrifts, countExtraRows, countMatchedRows, findObservedRows, } from "./diff.js";
|
|
30
30
|
import { appendEffectsWithSupersedes, } from "./enqueue.js";
|
|
31
|
-
import { buildCorrectionEffects, } from "./repair.js";
|
|
31
|
+
import { buildCorrectionEffects, buildFailedHeadRepairPlan, } from "./repair.js";
|
|
32
32
|
/**
|
|
33
33
|
* Runs one reconciliation scan and enqueues correction effects for drift.
|
|
34
34
|
*
|
|
@@ -91,7 +91,12 @@ async function scanAndEnqueue(context) {
|
|
|
91
91
|
systemFields: context.systemFields,
|
|
92
92
|
sheet,
|
|
93
93
|
});
|
|
94
|
-
|
|
94
|
+
// A terminal failed head on a stream whose Sheet row already matches
|
|
95
|
+
// canonical is invisible to the drift detector, yet it still blocks every
|
|
96
|
+
// follower through the durable predecessor guard. Detect those heads
|
|
97
|
+
// BEFORE the no-drift return so a matching Sheet recovers its stream.
|
|
98
|
+
const wedgedTargets = await findWedgedStreamTargets(context, sheet, snapshot, desired, drifts);
|
|
99
|
+
if (drifts.length === 0 && wedgedTargets.length === 0) {
|
|
95
100
|
return freezeReport(context.physicalSheetId, snapshot, desired, {
|
|
96
101
|
matched: countMatchedRows(snapshot, desired, sheet.businessKeyField),
|
|
97
102
|
drifted: 0,
|
|
@@ -112,7 +117,15 @@ async function scanAndEnqueue(context) {
|
|
|
112
117
|
fenceClaimed: false,
|
|
113
118
|
});
|
|
114
119
|
}
|
|
115
|
-
const
|
|
120
|
+
const driftPlans = await buildCorrectionEffects(context, sheet, drifts);
|
|
121
|
+
const commitId = "reconciliation:" + context.createId();
|
|
122
|
+
const wedgeRepairPlans = [];
|
|
123
|
+
for (const target of wedgedTargets) {
|
|
124
|
+
const plan = await buildFailedHeadRepairPlan(context, sheet, target, commitId);
|
|
125
|
+
if (plan !== null)
|
|
126
|
+
wedgeRepairPlans.push(plan);
|
|
127
|
+
}
|
|
128
|
+
const plans = [...driftPlans, ...wedgeRepairPlans];
|
|
116
129
|
if (plans.length === 0) {
|
|
117
130
|
return freezeReport(context.physicalSheetId, snapshot, desired, {
|
|
118
131
|
matched: countMatchedRows(snapshot, desired, sheet.businessKeyField),
|
|
@@ -143,6 +156,27 @@ async function scanAndEnqueue(context) {
|
|
|
143
156
|
fenceClaimed: true,
|
|
144
157
|
});
|
|
145
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* Desired rows whose stream is wedged behind a terminal failed head and
|
|
161
|
+
* whose Sheet state already matches canonical (no drift) plus each row's
|
|
162
|
+
* observed snapshot evidence.
|
|
163
|
+
*
|
|
164
|
+
* Drift plans already supersede the failed head of their own stream, so
|
|
165
|
+
* only drift-free rows need a dedicated repair here. The observed row is
|
|
166
|
+
* attached so the repair baseline can guard on the row's current visible
|
|
167
|
+
* hash even when no confirmed visible state exists. Returns an empty list
|
|
168
|
+
* when there is nothing to scan or every desired row already drifted.
|
|
169
|
+
*/
|
|
170
|
+
async function findWedgedStreamTargets(context, sheet, snapshot, desired, drifts) {
|
|
171
|
+
if (desired.length === 0)
|
|
172
|
+
return [];
|
|
173
|
+
const driftedEntityIds = new Set(drifts.map((drift) => drift.desired.entityId));
|
|
174
|
+
const terminalFailedHeads = await readTerminalFailedHeads(context);
|
|
175
|
+
const observedRows = findObservedRows(snapshot, desired, sheet.businessKeyField);
|
|
176
|
+
return desired
|
|
177
|
+
.filter((row) => !driftedEntityIds.has(row.entityId) && terminalFailedHeads.has(row.entityId))
|
|
178
|
+
.map((row) => ({ desired: row, observed: observedRows.get(row.entityId) }));
|
|
179
|
+
}
|
|
146
180
|
/**
|
|
147
181
|
* Enqueues planned corrections under the reconciler fence.
|
|
148
182
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReconciliationScanner.js","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/reconciliation/ReconciliationScanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAEL,2BAA2B,EAC3B,0BAA0B,EAC1B,+BAA+B,GAEhC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,qCAAqC,GACtC,MAAM,gEAAgE,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAEjG,OAAO,EACL,mBAAmB,GAGpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,EAC3B,8BAA8B,EAC9B,sBAAsB,
|
|
1
|
+
{"version":3,"file":"ReconciliationScanner.js","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/reconciliation/ReconciliationScanner.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,12 +8,20 @@
|
|
|
8
8
|
* never prove ownership of a row.
|
|
9
9
|
*/
|
|
10
10
|
import type { NormalizedCell } from "../../../../shared/encoding/types.js";
|
|
11
|
-
import { type SyncSheetsSnapshot } from "../../sheetsContract/syncSheets.js";
|
|
11
|
+
import { type SyncSheetsSnapshot, type SyncSnapshotRow } from "../../sheetsContract/syncSheets.js";
|
|
12
12
|
import type { DesiredRow } from "./shared.js";
|
|
13
13
|
export type DriftKind = "drifted" | "missing";
|
|
14
14
|
export interface DriftTarget {
|
|
15
15
|
readonly kind: DriftKind;
|
|
16
16
|
readonly desired: DesiredRow;
|
|
17
|
+
/**
|
|
18
|
+
* The observed snapshot row behind a drifted drift, so a repair planned
|
|
19
|
+
* for an existing row can guard on the row's CURRENT visible hash
|
|
20
|
+
* (computed from the exact System_State fields) instead of assuming an
|
|
21
|
+
* insert when no confirmed visible evidence exists. `undefined` for
|
|
22
|
+
* missing drifts, where the row is not observable.
|
|
23
|
+
*/
|
|
24
|
+
readonly observed: SyncSnapshotRow | undefined;
|
|
17
25
|
}
|
|
18
26
|
export declare function computeDrifts(args: {
|
|
19
27
|
readonly snapshot: SyncSheetsSnapshot;
|
|
@@ -24,6 +32,16 @@ export declare function computeDrifts(args: {
|
|
|
24
32
|
readonly businessKeyField: string;
|
|
25
33
|
};
|
|
26
34
|
}): readonly DriftTarget[];
|
|
35
|
+
/**
|
|
36
|
+
* Returns the observed snapshot row owned by each desired row.
|
|
37
|
+
*
|
|
38
|
+
* Honors the same duplication quarantine as drift detection: an ambiguous
|
|
39
|
+
* anchor or duplicated business key never resolves to a row. The failed-head
|
|
40
|
+
* repair path uses this to pass FRESH verified snapshot evidence into a
|
|
41
|
+
* repair baseline for a clean (already matching) row, so a repair never
|
|
42
|
+
* falls back to an unguarded insert for an existing Sheet row.
|
|
43
|
+
*/
|
|
44
|
+
export declare function findObservedRows(snapshot: SyncSheetsSnapshot, desired: readonly DesiredRow[], businessKeyField: string): ReadonlyMap<string, SyncSnapshotRow>;
|
|
27
45
|
/** Reads a business-key value from a snapshot row for unanchored fast appends. */
|
|
28
46
|
export declare function snapshotIdentity(row: SyncSheetsSnapshot["rows"][number], identityField: string): string | undefined;
|
|
29
47
|
/** Reads the same visible business-key value from canonical desired state. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/reconciliation/diff.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAG3E,OAAO,EAEL,KAAK,kBAAkB,
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/reconciliation/diff.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAG3E,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACrB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAE9C,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,SAAS,CAAC;CAChD;AA8ED,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAClC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC;IACxC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,CAAC;CACzF,GAAG,SAAS,WAAW,EAAE,CAiBzB;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,SAAS,UAAU,EAAE,EAC9B,gBAAgB,EAAE,MAAM,GACvB,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,CAQtC;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EACvC,aAAa,EAAE,MAAM,GACpB,MAAM,GAAG,SAAS,CAEpB;AAED,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE7F;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAY3F;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EACvC,YAAY,EAAE,SAAS,MAAM,EAAE,GAC9B,MAAM,CAOR;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,SAAS,UAAU,EAAE,EAC9B,aAAa,EAAE,MAAM,GACpB,MAAM,CAqCR;AAED,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,SAAS,UAAU,EAAE,EAC9B,aAAa,EAAE,MAAM,GACpB,MAAM,CAkDR"}
|
|
@@ -11,12 +11,19 @@ import { EMPTY_STRING_LENGTH_ZERO, } from "../../../../shared/constants.js";
|
|
|
11
11
|
import { PRESENCE_KINDS } from "../../../../shared/state/index.js";
|
|
12
12
|
import { NORMALIZED_CELL_KINDS } from "../../../../shared/encoding/constants.js";
|
|
13
13
|
import { computeSyncVisibleHash, } from "../../sheetsContract/syncSheets.js";
|
|
14
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Builds the deduplicated anchor/identity index for one snapshot.
|
|
16
|
+
*
|
|
17
|
+
* A duplicated physical anchor or business key is an anomaly, never a row
|
|
18
|
+
* choice: the affected locators are dropped from the index so neither the
|
|
19
|
+
* drift classifier nor the failed-head matcher can silently pick one row.
|
|
20
|
+
*/
|
|
21
|
+
function buildObservedRowIndex(snapshot, businessKeyField) {
|
|
15
22
|
const rowsByAnchor = new Map();
|
|
16
23
|
const ambiguousAnchors = new Set();
|
|
17
24
|
const rowsByIdentity = new Map();
|
|
18
25
|
const ambiguousIdentities = new Set();
|
|
19
|
-
for (const row of
|
|
26
|
+
for (const row of snapshot.rows) {
|
|
20
27
|
if (row.physicalAnchor.kind === PRESENCE_KINDS.PRESENT) {
|
|
21
28
|
// A duplicated physical anchor is an anomaly, never a row choice: drop
|
|
22
29
|
// the anchor index entry instead of letting the last row win silently.
|
|
@@ -30,7 +37,7 @@ export function computeDrifts(args) {
|
|
|
30
37
|
rowsByAnchor.set(row.physicalAnchor.value, row);
|
|
31
38
|
}
|
|
32
39
|
}
|
|
33
|
-
const identity = snapshotIdentity(row,
|
|
40
|
+
const identity = snapshotIdentity(row, businessKeyField);
|
|
34
41
|
if (identity === undefined || ambiguousIdentities.has(identity))
|
|
35
42
|
continue;
|
|
36
43
|
if (rowsByIdentity.has(identity)) {
|
|
@@ -41,32 +48,68 @@ export function computeDrifts(args) {
|
|
|
41
48
|
rowsByIdentity.set(identity, row);
|
|
42
49
|
}
|
|
43
50
|
}
|
|
51
|
+
return { rowsByAnchor, ambiguousAnchors, rowsByIdentity, ambiguousIdentities };
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Resolves the observed snapshot row owned by one desired row.
|
|
55
|
+
*
|
|
56
|
+
* The primary locator's ambiguity is fatal: when the desired anchor is
|
|
57
|
+
* duplicated, identity fallback would silently pick one of the rows that the
|
|
58
|
+
* corrupted anchor cannot distinguish, so the binding stays unmatched. The
|
|
59
|
+
* same quarantine applies when the desired identity appears in the snapshot's
|
|
60
|
+
* duplicate set. Returns undefined when no row can prove ownership of this
|
|
61
|
+
* binding.
|
|
62
|
+
*/
|
|
63
|
+
function resolveObservedRow(index, desiredRow, businessKeyField) {
|
|
64
|
+
const identity = desiredRowIdentity(desiredRow, businessKeyField);
|
|
65
|
+
// The primary locator's ambiguity is fatal: when the desired anchor is
|
|
66
|
+
// duplicated, identity fallback would silently pick one of the rows that
|
|
67
|
+
// the corrupted anchor cannot distinguish, so the binding is unmatched.
|
|
68
|
+
// The same quarantine applies to a desired identity that appears in the
|
|
69
|
+
// snapshot's duplicate set: the duplicated business key cannot prove that
|
|
70
|
+
// this binding owns even its unique anchor, so neither locator may match.
|
|
71
|
+
const identityAmbiguous = identity !== undefined && index.ambiguousIdentities.has(identity);
|
|
72
|
+
return index.ambiguousAnchors.has(desiredRow.anchorReference) || identityAmbiguous
|
|
73
|
+
? undefined
|
|
74
|
+
: index.rowsByAnchor.get(desiredRow.anchorReference) ??
|
|
75
|
+
(identity === undefined ? undefined : index.rowsByIdentity.get(identity));
|
|
76
|
+
}
|
|
77
|
+
export function computeDrifts(args) {
|
|
78
|
+
const index = buildObservedRowIndex(args.snapshot, args.sheet.businessKeyField);
|
|
44
79
|
const drifts = [];
|
|
45
80
|
for (const desiredRow of args.desired) {
|
|
46
|
-
const
|
|
47
|
-
// The primary locator's ambiguity is fatal: when the desired anchor is
|
|
48
|
-
// duplicated, identity fallback would silently pick one of the rows that
|
|
49
|
-
// the corrupted anchor cannot distinguish, so the binding is unmatched.
|
|
50
|
-
// The same quarantine applies to a desired identity that appears in the
|
|
51
|
-
// snapshot's duplicate set: the duplicated business key cannot prove that
|
|
52
|
-
// this binding owns even its unique anchor, so neither locator may match.
|
|
53
|
-
const identityAmbiguous = identity !== undefined && ambiguousIdentities.has(identity);
|
|
54
|
-
const observed = ambiguousAnchors.has(desiredRow.anchorReference) || identityAmbiguous
|
|
55
|
-
? undefined
|
|
56
|
-
: rowsByAnchor.get(desiredRow.anchorReference) ??
|
|
57
|
-
(identity === undefined ? undefined : rowsByIdentity.get(identity));
|
|
81
|
+
const observed = resolveObservedRow(index, desiredRow, args.sheet.businessKeyField);
|
|
58
82
|
if (observed === undefined) {
|
|
59
|
-
drifts.push({ kind: "missing", desired: desiredRow });
|
|
83
|
+
drifts.push({ kind: "missing", desired: desiredRow, observed: undefined });
|
|
60
84
|
continue;
|
|
61
85
|
}
|
|
62
86
|
const observedHash = computeObservedHash(observed, args.systemFields);
|
|
63
87
|
const desiredHash = computeSyncVisibleHash(desiredRow.fields);
|
|
64
88
|
if (observedHash !== desiredHash) {
|
|
65
|
-
drifts.push({ kind: "drifted", desired: desiredRow });
|
|
89
|
+
drifts.push({ kind: "drifted", desired: desiredRow, observed });
|
|
66
90
|
}
|
|
67
91
|
}
|
|
68
92
|
return drifts;
|
|
69
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* Returns the observed snapshot row owned by each desired row.
|
|
96
|
+
*
|
|
97
|
+
* Honors the same duplication quarantine as drift detection: an ambiguous
|
|
98
|
+
* anchor or duplicated business key never resolves to a row. The failed-head
|
|
99
|
+
* repair path uses this to pass FRESH verified snapshot evidence into a
|
|
100
|
+
* repair baseline for a clean (already matching) row, so a repair never
|
|
101
|
+
* falls back to an unguarded insert for an existing Sheet row.
|
|
102
|
+
*/
|
|
103
|
+
export function findObservedRows(snapshot, desired, businessKeyField) {
|
|
104
|
+
const index = buildObservedRowIndex(snapshot, businessKeyField);
|
|
105
|
+
const matched = new Map();
|
|
106
|
+
for (const desiredRow of desired) {
|
|
107
|
+
const observed = resolveObservedRow(index, desiredRow, businessKeyField);
|
|
108
|
+
if (observed !== undefined)
|
|
109
|
+
matched.set(desiredRow.entityId, observed);
|
|
110
|
+
}
|
|
111
|
+
return matched;
|
|
112
|
+
}
|
|
70
113
|
/** Reads a business-key value from a snapshot row for unanchored fast appends. */
|
|
71
114
|
export function snapshotIdentity(row, identityField) {
|
|
72
115
|
return normalizedCellIdentity(row.cells[identityField]?.normalizedCell);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/reconciliation/diff.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,wBAAwB,GACzB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EACL,sBAAsB,
|
|
1
|
+
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/reconciliation/diff.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,12 +10,43 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import type { NewEffect } from "@hikoutei/ikisaki";
|
|
12
12
|
import type { SqlExecutor } from "../../../../adapter/persistence/contracts/sql.js";
|
|
13
|
+
import type { SyncSnapshotRow } from "../../sheetsContract/syncSheets.js";
|
|
13
14
|
import { type DesiredRow, type LatestVisibleSqlShape, type ScanContext } from "./shared.js";
|
|
14
15
|
import type { DriftTarget } from "./diff.js";
|
|
15
16
|
export declare function buildCorrectionEffects(context: ScanContext, sheet: {
|
|
16
17
|
readonly tabName: string;
|
|
17
18
|
readonly registeredRange: string;
|
|
18
19
|
}, drifts: readonly DriftTarget[]): Promise<readonly CorrectionPlan[]>;
|
|
20
|
+
/**
|
|
21
|
+
* One desired row awaiting a failed-head repair plus its observed snapshot
|
|
22
|
+
* evidence (a clean row whose Sheet state already matches canonical).
|
|
23
|
+
*/
|
|
24
|
+
export interface FailedHeadRepairTarget {
|
|
25
|
+
readonly desired: DesiredRow;
|
|
26
|
+
/**
|
|
27
|
+
* The observed snapshot row for a clean (already matching) row, so the
|
|
28
|
+
* repair plan can guard on the row's current visible hash even when no
|
|
29
|
+
* confirmed visible evidence exists. `undefined` when the row was not
|
|
30
|
+
* observable in the snapshot.
|
|
31
|
+
*/
|
|
32
|
+
readonly observed: SyncSnapshotRow | undefined;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Plans the stream repair for one desired row whose Sheet state already
|
|
36
|
+
* matches canonical but whose stream is wedged behind a terminal failed head.
|
|
37
|
+
*
|
|
38
|
+
* The failed head blocks every follower through the durable predecessor
|
|
39
|
+
* guard while the drift path never plans a repair for a row that already
|
|
40
|
+
* matches, so this replans the same correction contract without a drift: an
|
|
41
|
+
* equivalent correction already in flight behind the head produces a
|
|
42
|
+
* supersede-only plan; otherwise a fresh correction effect is returned that
|
|
43
|
+
* supersedes the head when it is appended. Returns null when a concurrent
|
|
44
|
+
* pass already superseded the head.
|
|
45
|
+
*/
|
|
46
|
+
export declare function buildFailedHeadRepairPlan(context: ScanContext, sheet: {
|
|
47
|
+
readonly tabName: string;
|
|
48
|
+
readonly registeredRange: string;
|
|
49
|
+
}, target: FailedHeadRepairTarget, commitId: string): Promise<CorrectionPlan | null>;
|
|
19
50
|
/**
|
|
20
51
|
* One reconciliation correction and the durable transition it requires.
|
|
21
52
|
*
|
|
@@ -58,8 +89,8 @@ export interface CorrectionBaseline {
|
|
|
58
89
|
*/
|
|
59
90
|
readonly supersedeByEffectId: string | null;
|
|
60
91
|
}
|
|
61
|
-
export declare function resolveCorrectionBaseline(context: ScanContext, desired: DesiredRow): Promise<CorrectionBaseline>;
|
|
62
|
-
export declare function resolveCorrectionBaselineWithSql(sql: SqlExecutor, context: ScanContext, desired: DesiredRow): Promise<CorrectionBaseline>;
|
|
63
|
-
export declare function baselineFromVisible(visible: LatestVisibleSqlShape | undefined, streamSequence: number): CorrectionBaseline;
|
|
92
|
+
export declare function resolveCorrectionBaseline(context: ScanContext, desired: DesiredRow, observed: SyncSnapshotRow | undefined): Promise<CorrectionBaseline>;
|
|
93
|
+
export declare function resolveCorrectionBaselineWithSql(sql: SqlExecutor, context: ScanContext, desired: DesiredRow, observed: SyncSnapshotRow | undefined): Promise<CorrectionBaseline>;
|
|
94
|
+
export declare function baselineFromVisible(visible: LatestVisibleSqlShape | undefined, streamSequence: number, observed: SyncSnapshotRow | undefined, systemFields: readonly string[] | undefined): CorrectionBaseline;
|
|
64
95
|
export declare function extractTargetVisibleHash(payloadJson: string): string;
|
|
65
96
|
//# sourceMappingURL=repair.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repair.d.ts","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/reconciliation/repair.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAInD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC;
|
|
1
|
+
{"version":3,"file":"repair.d.ts","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/reconciliation/repair.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAInD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC;AAEpF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAI1E,OAAO,EAIL,KAAK,UAAU,EAGf,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;CAAE,EACrE,MAAM,EAAE,SAAS,WAAW,EAAE,GAC7B,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC,CAgDpC;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,SAAS,CAAC;CAChD;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;CAAE,EACrE,MAAM,EAAE,sBAAsB,EAC9B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAehC;AAyCD;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChD,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC;;;;;;;OAOG;IACH,QAAQ,CAAC,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChD;;;;;;OAMG;IACH,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C;AAED,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,eAAe,GAAG,SAAS,GACpC,OAAO,CAAC,kBAAkB,CAAC,CAI7B;AAED,wBAAsB,gCAAgC,CACpD,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,eAAe,GAAG,SAAS,GACpC,OAAO,CAAC,kBAAkB,CAAC,CAyF7B;AA4BD,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,qBAAqB,GAAG,SAAS,EAC1C,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,eAAe,GAAG,SAAS,EACrC,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAC1C,kBAAkB,CA8DpB;AAED,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAQpE"}
|
|
@@ -15,12 +15,13 @@ import { isRecoverableEffectErrorCode, } from "@hikoutei/ikisaki";
|
|
|
15
15
|
import { computeSyncVisibleHash } from "../../sheetsContract/syncSheets.js";
|
|
16
16
|
import { SYNC_PROJECTIONS } from "../../sheetsContract/constants.js";
|
|
17
17
|
import { createSystemProjectionEffect } from "../projection/ProjectionEffectFactory.js";
|
|
18
|
+
import { computeObservedHash } from "./diff.js";
|
|
18
19
|
import { READ_FAILED_HEAD_SQL, READ_LATEST_EFFECT_SQL, READ_LATEST_VISIBLE_STATE_SQL, } from "./shared.js";
|
|
19
20
|
export async function buildCorrectionEffects(context, sheet, drifts) {
|
|
20
21
|
const effects = [];
|
|
21
22
|
const commitId = "reconciliation:" + context.createId();
|
|
22
23
|
for (const drift of drifts) {
|
|
23
|
-
const baseline = await resolveCorrectionBaseline(context, drift.desired);
|
|
24
|
+
const baseline = await resolveCorrectionBaseline(context, drift.desired, drift.observed);
|
|
24
25
|
if (baseline.skip) {
|
|
25
26
|
// An equivalent correction is already in flight behind a terminal
|
|
26
27
|
// failed head that blocks the stream. No new effect is appended; the
|
|
@@ -48,37 +49,13 @@ export async function buildCorrectionEffects(context, sheet, drifts) {
|
|
|
48
49
|
const expectedVisibleHash = drift.kind === "missing"
|
|
49
50
|
? ""
|
|
50
51
|
: baseline.expectedVisibleHash;
|
|
51
|
-
const effect = createSystemProjectionEffect({
|
|
52
|
-
effectId: "effect:" + context.createId(),
|
|
53
|
-
commitId,
|
|
54
|
-
logicalSheetId: context.logicalSheetId,
|
|
55
|
-
physicalSheetId: context.physicalSheetId,
|
|
56
|
-
sheetName: sheet.tabName,
|
|
57
|
-
registeredRange: sheet.registeredRange,
|
|
58
|
-
projection: SYNC_PROJECTIONS.SYSTEM_STATE,
|
|
59
|
-
schemaVersion: context.schemaVersion,
|
|
60
|
-
targetKind: "entity",
|
|
61
|
-
targetId: drift.desired.entityId,
|
|
62
|
-
rowBindingId: { kind: PRESENCE_KINDS.PRESENT, value: drift.desired.rowBindingId },
|
|
63
|
-
conflictId: { kind: PRESENCE_KINDS.ABSENT },
|
|
64
|
-
targetAnchor: drift.desired.anchorReference,
|
|
65
|
-
fields: drift.desired.fields,
|
|
66
|
-
createIfMissing,
|
|
67
|
-
expectedVisibleRevision,
|
|
68
|
-
expectedVisibleHash,
|
|
69
|
-
targetEntityRevision: {
|
|
70
|
-
kind: APPLICABILITY_KINDS.APPLICABLE,
|
|
71
|
-
value: drift.desired.entityRevision,
|
|
72
|
-
},
|
|
73
|
-
targetFieldRevisionHash: {
|
|
74
|
-
kind: APPLICABILITY_KINDS.APPLICABLE,
|
|
75
|
-
value: drift.desired.fieldRevisionHash,
|
|
76
|
-
},
|
|
77
|
-
targetCanonicalCommitId: { kind: APPLICABILITY_KINDS.APPLICABLE, value: commitId },
|
|
78
|
-
streamSequence: baseline.streamSequence,
|
|
79
|
-
});
|
|
80
52
|
effects.push({
|
|
81
|
-
effect,
|
|
53
|
+
effect: createRepairEffect(context, sheet, drift.desired, commitId, {
|
|
54
|
+
...baseline,
|
|
55
|
+
createIfMissing,
|
|
56
|
+
expectedVisibleRevision,
|
|
57
|
+
expectedVisibleHash,
|
|
58
|
+
}),
|
|
82
59
|
// When the stream head is a terminal failed effect, the repair must
|
|
83
60
|
// supersede that head so it can become the new claimable stream head;
|
|
84
61
|
// otherwise the durable predecessor guard would block it forever.
|
|
@@ -88,10 +65,71 @@ export async function buildCorrectionEffects(context, sheet, drifts) {
|
|
|
88
65
|
}
|
|
89
66
|
return effects;
|
|
90
67
|
}
|
|
91
|
-
|
|
92
|
-
|
|
68
|
+
/**
|
|
69
|
+
* Plans the stream repair for one desired row whose Sheet state already
|
|
70
|
+
* matches canonical but whose stream is wedged behind a terminal failed head.
|
|
71
|
+
*
|
|
72
|
+
* The failed head blocks every follower through the durable predecessor
|
|
73
|
+
* guard while the drift path never plans a repair for a row that already
|
|
74
|
+
* matches, so this replans the same correction contract without a drift: an
|
|
75
|
+
* equivalent correction already in flight behind the head produces a
|
|
76
|
+
* supersede-only plan; otherwise a fresh correction effect is returned that
|
|
77
|
+
* supersedes the head when it is appended. Returns null when a concurrent
|
|
78
|
+
* pass already superseded the head.
|
|
79
|
+
*/
|
|
80
|
+
export async function buildFailedHeadRepairPlan(context, sheet, target, commitId) {
|
|
81
|
+
const baseline = await resolveCorrectionBaseline(context, target.desired, target.observed);
|
|
82
|
+
if (baseline.supersedeFailedEffectId === null)
|
|
83
|
+
return null;
|
|
84
|
+
if (baseline.skip) {
|
|
85
|
+
return {
|
|
86
|
+
effect: null,
|
|
87
|
+
supersedeFailedEffectId: baseline.supersedeFailedEffectId,
|
|
88
|
+
supersedeByEffectId: baseline.supersedeByEffectId,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
effect: createRepairEffect(context, sheet, target.desired, commitId, baseline),
|
|
93
|
+
supersedeFailedEffectId: baseline.supersedeFailedEffectId,
|
|
94
|
+
supersedeByEffectId: baseline.supersedeByEffectId,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
/** Builds one system_projection correction effect from a resolved baseline. */
|
|
98
|
+
function createRepairEffect(context, sheet, desired, commitId, baseline) {
|
|
99
|
+
return createSystemProjectionEffect({
|
|
100
|
+
effectId: "effect:" + context.createId(),
|
|
101
|
+
commitId,
|
|
102
|
+
logicalSheetId: context.logicalSheetId,
|
|
103
|
+
physicalSheetId: context.physicalSheetId,
|
|
104
|
+
sheetName: sheet.tabName,
|
|
105
|
+
registeredRange: sheet.registeredRange,
|
|
106
|
+
projection: SYNC_PROJECTIONS.SYSTEM_STATE,
|
|
107
|
+
schemaVersion: context.schemaVersion,
|
|
108
|
+
targetKind: "entity",
|
|
109
|
+
targetId: desired.entityId,
|
|
110
|
+
rowBindingId: { kind: PRESENCE_KINDS.PRESENT, value: desired.rowBindingId },
|
|
111
|
+
conflictId: { kind: PRESENCE_KINDS.ABSENT },
|
|
112
|
+
targetAnchor: desired.anchorReference,
|
|
113
|
+
fields: desired.fields,
|
|
114
|
+
createIfMissing: baseline.createIfMissing,
|
|
115
|
+
expectedVisibleRevision: baseline.expectedVisibleRevision,
|
|
116
|
+
expectedVisibleHash: baseline.expectedVisibleHash,
|
|
117
|
+
targetEntityRevision: {
|
|
118
|
+
kind: APPLICABILITY_KINDS.APPLICABLE,
|
|
119
|
+
value: desired.entityRevision,
|
|
120
|
+
},
|
|
121
|
+
targetFieldRevisionHash: {
|
|
122
|
+
kind: APPLICABILITY_KINDS.APPLICABLE,
|
|
123
|
+
value: desired.fieldRevisionHash,
|
|
124
|
+
},
|
|
125
|
+
targetCanonicalCommitId: { kind: APPLICABILITY_KINDS.APPLICABLE, value: commitId },
|
|
126
|
+
streamSequence: baseline.streamSequence,
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
export async function resolveCorrectionBaseline(context, desired, observed) {
|
|
130
|
+
return context.storage.read(({ sql }) => resolveCorrectionBaselineWithSql(sql, context, desired, observed));
|
|
93
131
|
}
|
|
94
|
-
export async function resolveCorrectionBaselineWithSql(sql, context, desired) {
|
|
132
|
+
export async function resolveCorrectionBaselineWithSql(sql, context, desired, observed) {
|
|
95
133
|
const latestEffect = await sql.get(READ_LATEST_EFFECT_SQL, [
|
|
96
134
|
context.logicalSheetId,
|
|
97
135
|
desired.entityId,
|
|
@@ -161,13 +199,13 @@ export async function resolveCorrectionBaselineWithSql(sql, context, desired) {
|
|
|
161
199
|
context.physicalSheetId,
|
|
162
200
|
desired.rowBindingId,
|
|
163
201
|
]);
|
|
164
|
-
return withSupersede(baselineFromVisible(visible, streamSequence), failedHead);
|
|
202
|
+
return withSupersede(baselineFromVisible(visible, streamSequence, observed, context.systemFields), failedHead);
|
|
165
203
|
}
|
|
166
204
|
const visible = await sql.get(READ_LATEST_VISIBLE_STATE_SQL, [
|
|
167
205
|
context.physicalSheetId,
|
|
168
206
|
desired.rowBindingId,
|
|
169
207
|
]);
|
|
170
|
-
return withSupersede(baselineFromVisible(visible, POSITIVE_SAFE_INTEGER_MINIMUM), failedHead);
|
|
208
|
+
return withSupersede(baselineFromVisible(visible, POSITIVE_SAFE_INTEGER_MINIMUM, observed, context.systemFields), failedHead);
|
|
171
209
|
}
|
|
172
210
|
/**
|
|
173
211
|
* Returns the terminal failed head id for one target stream, or null.
|
|
@@ -188,26 +226,61 @@ function withSupersede(baseline, failedHead) {
|
|
|
188
226
|
return baseline;
|
|
189
227
|
return { ...baseline, supersedeFailedEffectId: failedHead };
|
|
190
228
|
}
|
|
191
|
-
export function baselineFromVisible(visible, streamSequence) {
|
|
192
|
-
if (visible
|
|
193
|
-
visible.confirmed_visible_revision
|
|
194
|
-
visible.confirmed_snapshot_hash
|
|
195
|
-
visible.confirmed_snapshot_hash.length
|
|
229
|
+
export function baselineFromVisible(visible, streamSequence, observed, systemFields) {
|
|
230
|
+
if (visible !== undefined &&
|
|
231
|
+
visible.confirmed_visible_revision !== null &&
|
|
232
|
+
visible.confirmed_snapshot_hash !== null &&
|
|
233
|
+
visible.confirmed_snapshot_hash.length > 0) {
|
|
234
|
+
// The confirmed revision is the receipt baseline so the confirmation
|
|
235
|
+
// upsert never regresses. The expected hash, however, comes from the
|
|
236
|
+
// FRESH observed row whenever one is available: the provider write CAS
|
|
237
|
+
// is hash-only, so only the row's CURRENT visible hash can pass the
|
|
238
|
+
// guard. Using the stale confirmed hash as the guard would make a repair
|
|
239
|
+
// of an edited/drifted row fail on `visible_guard_mismatch` forever.
|
|
240
|
+
const observedHash = observed !== undefined && systemFields !== undefined
|
|
241
|
+
? computeObservedHash(observed, systemFields)
|
|
242
|
+
: undefined;
|
|
196
243
|
return {
|
|
197
244
|
skip: false,
|
|
198
|
-
expectedVisibleRevision:
|
|
199
|
-
expectedVisibleHash:
|
|
200
|
-
|
|
245
|
+
expectedVisibleRevision: visible.confirmed_visible_revision,
|
|
246
|
+
expectedVisibleHash: observedHash !== undefined && observedHash.length > 0
|
|
247
|
+
? observedHash
|
|
248
|
+
: visible.confirmed_snapshot_hash,
|
|
249
|
+
createIfMissing: false,
|
|
201
250
|
streamSequence,
|
|
202
251
|
supersedeFailedEffectId: null,
|
|
203
252
|
supersedeByEffectId: null,
|
|
204
253
|
};
|
|
205
254
|
}
|
|
255
|
+
// No confirmed visible evidence exists (for example a response-loss
|
|
256
|
+
// restart where the local confirmation was never recorded). If the row is
|
|
257
|
+
// observable in the snapshot, build a guarded regular repair from its
|
|
258
|
+
// CURRENT visible hash instead of the old insert baseline: the row already
|
|
259
|
+
// exists, so a createIfMissing repair would be rejected as an identity/insert
|
|
260
|
+
// failure and repeat forever. Revision 0 is the receipt baseline only — the
|
|
261
|
+
// provider write CAS is hash-only, so the observed hash is the guard that
|
|
262
|
+
// prevents an unguarded overwrite.
|
|
263
|
+
if (observed !== undefined && systemFields !== undefined) {
|
|
264
|
+
const observedHash = computeObservedHash(observed, systemFields);
|
|
265
|
+
if (observedHash.length > 0) {
|
|
266
|
+
return {
|
|
267
|
+
skip: false,
|
|
268
|
+
expectedVisibleRevision: 0,
|
|
269
|
+
expectedVisibleHash: observedHash,
|
|
270
|
+
createIfMissing: false,
|
|
271
|
+
streamSequence,
|
|
272
|
+
supersedeFailedEffectId: null,
|
|
273
|
+
supersedeByEffectId: null,
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
// The safe missing-row path: no observed row and no confirmed evidence, so
|
|
278
|
+
// the repair must create the row from the empty visible baseline.
|
|
206
279
|
return {
|
|
207
280
|
skip: false,
|
|
208
|
-
expectedVisibleRevision:
|
|
209
|
-
expectedVisibleHash:
|
|
210
|
-
createIfMissing:
|
|
281
|
+
expectedVisibleRevision: 0,
|
|
282
|
+
expectedVisibleHash: "",
|
|
283
|
+
createIfMissing: true,
|
|
211
284
|
streamSequence,
|
|
212
285
|
supersedeFailedEffectId: null,
|
|
213
286
|
supersedeByEffectId: null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repair.js","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/reconciliation/repair.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EACL,mBAAmB,EACnB,cAAc,GACf,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,2CAA2C,CAAC;AAErE,OAAO,EACL,4BAA4B,GAC7B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"repair.js","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/reconciliation/repair.ts"],"names":[],"mappings":"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"}
|
|
@@ -62,6 +62,26 @@ export interface FailedHeadSqlShape {
|
|
|
62
62
|
readonly effect_id: string;
|
|
63
63
|
readonly last_error_code: string | null;
|
|
64
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Reads every active `failed` effect of one logical sheet, newest stream
|
|
67
|
+
* first, so the scanner can detect terminal heads on streams whose Sheet row
|
|
68
|
+
* already matches canonical (drift-free rows never reach per-drift repair
|
|
69
|
+
* planning).
|
|
70
|
+
*/
|
|
71
|
+
export declare const READ_FAILED_HEADS_SQL = "\n SELECT effect_id, target_id, last_error_code\n FROM sheet_effect_outbox\n WHERE logical_sheet_id = ? AND target_kind = 'entity' AND status = 'failed'\n ORDER BY stream_sequence DESC\n";
|
|
72
|
+
export interface FailedHeadsSqlShape {
|
|
73
|
+
readonly effect_id: string;
|
|
74
|
+
readonly target_id: string;
|
|
75
|
+
readonly last_error_code: string | null;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Returns the terminal (non-recoverable) failed head effect id per target
|
|
79
|
+
* stream for one logical sheet.
|
|
80
|
+
*
|
|
81
|
+
* Recoverable failed heads stay on the worker retry path and are never
|
|
82
|
+
* superseded by reconciliation, mirroring `readTerminalFailedHeadWithSql`.
|
|
83
|
+
*/
|
|
84
|
+
export declare function readTerminalFailedHeads(context: ScanContext): Promise<ReadonlyMap<string, string>>;
|
|
65
85
|
export interface ScanContext {
|
|
66
86
|
readonly storage: SqlStorageAdapter;
|
|
67
87
|
readonly provider: SyncSheetsProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/reconciliation/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/reconciliation/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* modules can import from one place without importing each other.
|
|
10
10
|
*/
|
|
11
11
|
import { stableHash } from "../../../../shared/encoding/stableEncode.js";
|
|
12
|
+
import { isRecoverableEffectErrorCode, } from "@hikoutei/ikisaki";
|
|
12
13
|
import { NORMALIZED_CELL_KINDS } from "../../../../shared/encoding/constants.js";
|
|
13
14
|
import { isNormalizedCell } from "../../../../shared/encoding/normalizedCell.js";
|
|
14
15
|
import { STORAGE_ERROR_CODES, StorageError } from "../../../../infrastructure/storage/errors.js";
|
|
@@ -61,6 +62,40 @@ export const READ_FAILED_HEAD_SQL = `
|
|
|
61
62
|
ORDER BY stream_sequence DESC
|
|
62
63
|
LIMIT 1
|
|
63
64
|
`;
|
|
65
|
+
/**
|
|
66
|
+
* Reads every active `failed` effect of one logical sheet, newest stream
|
|
67
|
+
* first, so the scanner can detect terminal heads on streams whose Sheet row
|
|
68
|
+
* already matches canonical (drift-free rows never reach per-drift repair
|
|
69
|
+
* planning).
|
|
70
|
+
*/
|
|
71
|
+
export const READ_FAILED_HEADS_SQL = `
|
|
72
|
+
SELECT effect_id, target_id, last_error_code
|
|
73
|
+
FROM sheet_effect_outbox
|
|
74
|
+
WHERE logical_sheet_id = ? AND target_kind = 'entity' AND status = 'failed'
|
|
75
|
+
ORDER BY stream_sequence DESC
|
|
76
|
+
`;
|
|
77
|
+
/**
|
|
78
|
+
* Returns the terminal (non-recoverable) failed head effect id per target
|
|
79
|
+
* stream for one logical sheet.
|
|
80
|
+
*
|
|
81
|
+
* Recoverable failed heads stay on the worker retry path and are never
|
|
82
|
+
* superseded by reconciliation, mirroring `readTerminalFailedHeadWithSql`.
|
|
83
|
+
*/
|
|
84
|
+
export async function readTerminalFailedHeads(context) {
|
|
85
|
+
return context.storage.read(async ({ sql }) => {
|
|
86
|
+
const rows = await sql.all(READ_FAILED_HEADS_SQL, [
|
|
87
|
+
context.logicalSheetId,
|
|
88
|
+
]);
|
|
89
|
+
const byTarget = new Map();
|
|
90
|
+
for (const row of rows) {
|
|
91
|
+
if (isRecoverableEffectErrorCode(row.last_error_code))
|
|
92
|
+
continue;
|
|
93
|
+
if (!byTarget.has(row.target_id))
|
|
94
|
+
byTarget.set(row.target_id, row.effect_id);
|
|
95
|
+
}
|
|
96
|
+
return byTarget;
|
|
97
|
+
});
|
|
98
|
+
}
|
|
64
99
|
export async function readDesiredSystemState(context) {
|
|
65
100
|
return context.storage.read(({ sql }) => readDesiredSystemStateWithSql(sql, context));
|
|
66
101
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/reconciliation/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAC;
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/reconciliation/shared.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hikoutei",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.58",
|
|
4
4
|
"description": "Typed repository and safe write layer for Google Sheets-backed MVPs. SQLite-authoritative entity lifecycle with asynchronous Google Sheets projection.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|