hikoutei 0.8.0 → 0.8.2
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/README.md +4 -0
- package/dist/adapter/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.d.ts +23 -11
- package/dist/adapter/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.js +26 -18
- package/dist/adapter/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.js.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/constants.d.ts +24 -5
- package/dist/adapter/sheets/providers/google-sheets-api/constants.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/constants.js +24 -5
- package/dist/adapter/sheets/providers/google-sheets-api/constants.js.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/errors.d.ts +8 -0
- package/dist/adapter/sheets/providers/google-sheets-api/errors.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/errors.js +20 -0
- package/dist/adapter/sheets/providers/google-sheets-api/errors.js.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/index.d.ts +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/index.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/index.js +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/index.js.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/model/preflightParsing.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/model/preflightParsing.js +11 -29
- package/dist/adapter/sheets/providers/google-sheets-api/model/preflightParsing.js.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/model/rawResponseSchemas.d.ts +20 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/rawResponseSchemas.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/rawResponseSchemas.js +26 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/rawResponseSchemas.js.map +1 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/valueNormalization.d.ts +11 -1
- package/dist/adapter/sheets/providers/google-sheets-api/model/valueNormalization.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/model/valueNormalization.js +12 -2
- package/dist/adapter/sheets/providers/google-sheets-api/model/valueNormalization.js.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/operations/shared.d.ts +19 -6
- package/dist/adapter/sheets/providers/google-sheets-api/operations/shared.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/operations/shared.js +61 -14
- package/dist/adapter/sheets/providers/google-sheets-api/operations/shared.js.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.d.ts +13 -0
- package/dist/adapter/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.js +60 -29
- package/dist/adapter/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.js.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/transport/rateLimiter.d.ts +40 -4
- package/dist/adapter/sheets/providers/google-sheets-api/transport/rateLimiter.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/transport/rateLimiter.js +26 -20
- package/dist/adapter/sheets/providers/google-sheets-api/transport/rateLimiter.js.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/transport/rawErrorSchemas.d.ts +7 -0
- package/dist/adapter/sheets/providers/google-sheets-api/transport/rawErrorSchemas.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/google-sheets-api/transport/rawErrorSchemas.js +24 -0
- package/dist/adapter/sheets/providers/google-sheets-api/transport/rawErrorSchemas.js.map +1 -0
- package/dist/api/Hikoutei.d.ts.map +1 -1
- package/dist/api/Hikoutei.js +244 -30
- package/dist/api/Hikoutei.js.map +1 -1
- package/dist/api/internalEntityManager.d.ts.map +1 -1
- package/dist/api/internalEntityManager.js +152 -53
- package/dist/api/internalEntityManager.js.map +1 -1
- package/dist/application/sync/outbound/SheetsEffectDispatcher.d.ts +41 -0
- package/dist/application/sync/outbound/SheetsEffectDispatcher.d.ts.map +1 -1
- package/dist/application/sync/outbound/SheetsEffectDispatcher.js +85 -3
- 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/dist/application/sync/service/SyncPollingSupervisor.d.ts +16 -0
- package/dist/application/sync/service/SyncPollingSupervisor.d.ts.map +1 -1
- package/dist/application/sync/service/SyncPollingSupervisor.js +24 -0
- package/dist/application/sync/service/SyncPollingSupervisor.js.map +1 -1
- package/dist/application/sync/service/SyncServiceBootstrap.d.ts.map +1 -1
- package/dist/application/sync/service/SyncServiceBootstrap.js +26 -1
- package/dist/application/sync/service/SyncServiceBootstrap.js.map +1 -1
- package/dist/application/sync/service/configSchemas.d.ts +10 -0
- package/dist/application/sync/service/configSchemas.d.ts.map +1 -0
- package/dist/application/sync/service/configSchemas.js +13 -0
- package/dist/application/sync/service/configSchemas.js.map +1 -0
- package/dist/application/sync/service/effectSupervisor.d.ts.map +1 -1
- package/dist/application/sync/service/effectSupervisor.js +114 -9
- package/dist/application/sync/service/effectSupervisor.js.map +1 -1
- package/dist/application/sync/service/pollingSupervisor.d.ts +17 -0
- package/dist/application/sync/service/pollingSupervisor.d.ts.map +1 -1
- package/dist/application/sync/service/pollingSupervisor.js +103 -3
- package/dist/application/sync/service/pollingSupervisor.js.map +1 -1
- package/dist/application/sync/service/serviceOptionSchemas.d.ts +11 -0
- package/dist/application/sync/service/serviceOptionSchemas.d.ts.map +1 -0
- package/dist/application/sync/service/serviceOptionSchemas.js +11 -0
- package/dist/application/sync/service/serviceOptionSchemas.js.map +1 -0
- package/dist/application/sync/service/serviceOptions.d.ts.map +1 -1
- package/dist/application/sync/service/serviceOptions.js +20 -6
- package/dist/application/sync/service/serviceOptions.js.map +1 -1
- package/dist/application/sync/service/shutdown.d.ts.map +1 -1
- package/dist/application/sync/service/shutdown.js +6 -2
- package/dist/application/sync/service/shutdown.js.map +1 -1
- package/dist/application/sync/service/syncAutoStart.d.ts +71 -6
- package/dist/application/sync/service/syncAutoStart.d.ts.map +1 -1
- package/dist/application/sync/service/syncAutoStart.js +175 -12
- package/dist/application/sync/service/syncAutoStart.js.map +1 -1
- package/dist/application/sync/service/systemStateReadiness.d.ts +35 -0
- package/dist/application/sync/service/systemStateReadiness.d.ts.map +1 -0
- package/dist/application/sync/service/systemStateReadiness.js +51 -0
- package/dist/application/sync/service/systemStateReadiness.js.map +1 -0
- package/dist/application/sync/sheetsContract/mutationCoordinator/CoordinatedSheetsProvider.d.ts +37 -1
- package/dist/application/sync/sheetsContract/mutationCoordinator/CoordinatedSheetsProvider.d.ts.map +1 -1
- package/dist/application/sync/sheetsContract/mutationCoordinator/CoordinatedSheetsProvider.js +57 -3
- package/dist/application/sync/sheetsContract/mutationCoordinator/CoordinatedSheetsProvider.js.map +1 -1
- package/dist/application/sync/sheetsContract/payloadSchemas.d.ts +14 -0
- package/dist/application/sync/sheetsContract/payloadSchemas.d.ts.map +1 -0
- package/dist/application/sync/sheetsContract/payloadSchemas.js +18 -0
- package/dist/application/sync/sheetsContract/payloadSchemas.js.map +1 -0
- package/dist/application/sync/sheetsContract/syncSheets.d.ts.map +1 -1
- package/dist/application/sync/sheetsContract/syncSheets.js +12 -31
- package/dist/application/sync/sheetsContract/syncSheets.js.map +1 -1
- package/dist/application/sync/sheetsContract/transportOutcome.d.ts +32 -5
- package/dist/application/sync/sheetsContract/transportOutcome.d.ts.map +1 -1
- package/dist/application/sync/sheetsContract/transportOutcome.js +101 -7
- package/dist/application/sync/sheetsContract/transportOutcome.js.map +1 -1
- package/dist/internal/syncStatus.js +33 -2
- package/dist/internal/syncStatus.js.map +1 -1
- package/dist/shared/observability/index.d.ts +9 -0
- package/dist/shared/observability/index.d.ts.map +1 -0
- package/dist/shared/observability/index.js +9 -0
- package/dist/shared/observability/index.js.map +1 -0
- package/dist/shared/observability/internalLog.d.ts +175 -0
- package/dist/shared/observability/internalLog.d.ts.map +1 -0
- package/dist/shared/observability/internalLog.js +471 -0
- package/dist/shared/observability/internalLog.js.map +1 -0
- package/dist/shared/observability/logEvents.d.ts +96 -0
- package/dist/shared/observability/logEvents.d.ts.map +1 -0
- package/dist/shared/observability/logEvents.js +247 -0
- package/dist/shared/observability/logEvents.js.map +1 -0
- package/dist/shared/validation/zodBoundary.d.ts +10 -0
- package/dist/shared/validation/zodBoundary.d.ts.map +1 -0
- package/dist/shared/validation/zodBoundary.js +24 -0
- package/dist/shared/validation/zodBoundary.js.map +1 -0
- package/package.json +7 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rawResponseSchemas.js","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/rawResponseSchemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD,6EAA6E;AAC7E,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;CAC7B,CAAC,CAAC,WAAW,EAAE,CAAC;AAEjB,0EAA0E;AAC1E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC5B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC,WAAW,EAAE,CAAC;AAEjB,kEAAkE;AAClE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAEvD,yEAAyE;AACzE,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;CAC9B,CAAC,CAAC,WAAW,EAAE,CAAC;AAEjB,iFAAiF;AACjF,MAAM,UAAU,0BAA0B,CACxC,MAAoB,EACpB,KAAc,EACd,OAAe;IAEf,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC"}
|
|
@@ -26,7 +26,17 @@ export declare function quoteA1SheetName(sheetName: string): string;
|
|
|
26
26
|
* the UTC day offset (the same formula the Apps Script batch append uses).
|
|
27
27
|
*/
|
|
28
28
|
export declare function dateSerialFromIso(iso: string): number;
|
|
29
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* Converts a date serial back to the canonical UTC ISO timestamp.
|
|
31
|
+
*
|
|
32
|
+
* The epoch milliseconds are rounded to the nearest integer millisecond so
|
|
33
|
+
* floating-point noise in the serial (or in the serial-to-milliseconds
|
|
34
|
+
* product) cannot shift the rendered millisecond and break field-level
|
|
35
|
+
* compare-and-set hashes; canonical ISO timestamps are always integral
|
|
36
|
+
* milliseconds, so rounding recovers the exact value the serial was derived
|
|
37
|
+
* from. Invalid serials (NaN or non-finite) still fail exactly like the
|
|
38
|
+
* unrounded conversion: `new Date(...).toISOString()` throws a RangeError.
|
|
39
|
+
*/
|
|
30
40
|
export declare function isoFromDateSerial(serial: number): string;
|
|
31
41
|
/**
|
|
32
42
|
* Returns whether a cell number format is the canonical date format.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valueNormalization.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/valueNormalization.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAM9E,+EAA+E;AAC/E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAID,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,qBAAqB,CAazE;AAED,6DAA6D;AAC7D,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMpD;AAED,oFAAoF;AACpF,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CASpD;AAED,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAErD;AAED
|
|
1
|
+
{"version":3,"file":"valueNormalization.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/valueNormalization.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAM9E,+EAA+E;AAC/E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAID,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,qBAAqB,CAazE;AAED,6DAA6D;AAC7D,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMpD;AAED,oFAAoF;AACpF,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CASpD;AAED,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAIxD;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CASpE;AAMD;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,EACd,YAAY,EAAE,OAAO,GACpB,cAAc,CAkChB;AAED;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,OAAO,EACd,YAAY,EAAE,OAAO,GACpB,cAAc,GAAG,SAAS,CA8B5B;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,OAAO,EACd,YAAY,EAAE,OAAO,GACpB,cAAc,CAuDhB;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,GAAG,OAAO,CAkDpF;AA4BD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,cAAc,GAAG;IAC3D,QAAQ,CAAC,gBAAgB,EAAE;QACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;KAC9B,CAAC;CACH,CAYA;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAOrF;AAED,4EAA4E;AAC5E,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAKtD"}
|
|
@@ -55,9 +55,19 @@ export function quoteA1SheetName(sheetName) {
|
|
|
55
55
|
export function dateSerialFromIso(iso) {
|
|
56
56
|
return (Date.parse(iso) - Date.UTC(1899, 11, 30)) / 86_400_000;
|
|
57
57
|
}
|
|
58
|
-
/**
|
|
58
|
+
/**
|
|
59
|
+
* Converts a date serial back to the canonical UTC ISO timestamp.
|
|
60
|
+
*
|
|
61
|
+
* The epoch milliseconds are rounded to the nearest integer millisecond so
|
|
62
|
+
* floating-point noise in the serial (or in the serial-to-milliseconds
|
|
63
|
+
* product) cannot shift the rendered millisecond and break field-level
|
|
64
|
+
* compare-and-set hashes; canonical ISO timestamps are always integral
|
|
65
|
+
* milliseconds, so rounding recovers the exact value the serial was derived
|
|
66
|
+
* from. Invalid serials (NaN or non-finite) still fail exactly like the
|
|
67
|
+
* unrounded conversion: `new Date(...).toISOString()` throws a RangeError.
|
|
68
|
+
*/
|
|
59
69
|
export function isoFromDateSerial(serial) {
|
|
60
|
-
return new Date(Date.UTC(1899, 11, 30) + serial * 86_400_000).toISOString();
|
|
70
|
+
return new Date(Math.round(Date.UTC(1899, 11, 30) + serial * 86_400_000)).toISOString();
|
|
61
71
|
}
|
|
62
72
|
/**
|
|
63
73
|
* Returns whether a cell number format is the canonical date format.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valueNormalization.js","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/valueNormalization.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,oCAAoC,GACrC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAQpD,MAAM,0BAA0B,GAAG,iBAAiB,CAAC;AAErD,8EAA8E;AAC9E,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5C,oBAAoB,CAAC,yDAAyD,CAAC,CAAC;IAClF,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,SAAS,GAAG,WAAW,EAAE,CAAC;QAC5B,oBAAoB,CAAC,oCAAoC,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC;AACnE,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,GAAG,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACnD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,KAAK,GAAG,MAAM,CAAC;IACnB,OAAO,KAAK,GAAG,CAAC,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACnC,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC;QACxD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;AAC9C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC;AACjE,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,GAAG,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;AAC9E,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,2BAA2B,CAAC,MAAe;IACzD,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC1D,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACtE,MAAM,MAAM,GAAG,MAAiC,CAAC;IACjD,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9C,OAAO,gCAAgC,CAAC,OAAO,CAAC;QAC9C,gCAAgC,CAAC,oCAAoC,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,gCAAgC,CAAC,OAAe;IACvD,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAAc,EACd,YAAqB;IAErB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,oBAAoB,CAAC,mCAAmC,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACzE,oBAAoB,CAAC,8CAA8C,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACrC,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC3C,oBAAoB,CAAC,wCAAwC,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;IACxE,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACnC,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1C,oBAAoB,CAAC,uCAAuC,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;IACtD,CAAC;IACD,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACrC,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;YACnF,oBAAoB,CAAC,+CAA+C,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,2BAA2B,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QACxE,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;IACvD,CAAC;IACD,yEAAyE;IACzE,0EAA0E;IAC1E,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAClD,oBAAoB,CAAC,iCAAiC,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,8BAA8B,CAC5C,KAAc,EACd,YAAqB;IAErB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACrC,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC3C,oBAAoB,CAAC,wCAAwC,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;YACpC,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;IACrE,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACnC,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1C,oBAAoB,CAAC,uCAAuC,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;IACtD,CAAC;IACD,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACrC,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;YACnF,oBAAoB,CAAC,+CAA+C,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,2BAA2B,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QACxE,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;IACvD,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAClD,sEAAsE;IACtE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAAc,EACd,YAAqB;IAErB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,oBAAoB,CAAC,mCAAmC,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,MAAM,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC;IACxC,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QAC5E,IAAI,OAAO,aAAa,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YACnD,oBAAoB,CAAC,yCAAyC,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;QACxC,MAAM,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAClC,oBAAoB,CAAC,2CAA2C,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,eAAe,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7C,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,kBAAkB,CAAC,MAAM,EAAE,eAAe,CAAC;aACnD,CAAC;QACJ,CAAC;QACD,IAAI,eAAe,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9C,IAAI,OAAO,eAAe,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;gBACpD,oBAAoB,CAAC,kDAAkD,CAAC,CAAC;YAC3E,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACjF,CAAC;QACD,IAAI,eAAe,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5C,IAAI,OAAO,eAAe,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACnD,oBAAoB,CAAC,iDAAiD,CAAC,CAAC;YAC1E,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,CAAC,SAAS,EAAE,CAAC;QAC/D,CAAC;QACD,IAAI,eAAe,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9C,IAAI,OAAO,eAAe,CAAC,WAAW,KAAK,QAAQ;gBAC/C,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;gBAClD,oBAAoB,CAAC,yDAAyD,CAAC,CAAC;YAClF,CAAC;YACD,IAAI,2BAA2B,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;YACjF,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,CAAC,WAAW,EAAE,CAAC;QAChE,CAAC;QACD,oBAAoB,CAAC,mDAAmD,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAC1E,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,kBAAkB,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC;IAC9E,CAAC;IACD,MAAM,OAAO,GAAG,8BAA8B,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACtE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,oBAAoB,CAAC,iCAAiC,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc,EAAE,cAAuB;IACzE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAClD,MAAM,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC;IACxC,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,+DAA+D;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,aAAa,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;QACxC,MAAM,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,eAAe,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAChD,IAAI,eAAe,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9C,IAAI,OAAO,eAAe,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;gBACpD,oBAAoB,CAAC,kDAAkD,CAAC,CAAC;YAC3E,CAAC;YACD,OAAO,eAAe,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,eAAe,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5C,IAAI,OAAO,eAAe,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACnD,oBAAoB,CAAC,iDAAiD,CAAC,CAAC;YAC1E,CAAC;YACD,OAAO,cAAc,IAAI,eAAe,CAAC,SAAS,KAAK,KAAK,CAAC;QAC/D,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,aAAa,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACzD,IAAI,aAAa,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAC5C,IAAI,OAAO,aAAa,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;YAClD,oBAAoB,CAAC,wCAAwC,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,aAAa,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,aAAa,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAC5C,IAAI,OAAO,aAAa,CAAC,WAAW,KAAK,QAAQ;YAC7C,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;YAChD,oBAAoB,CAAC,+CAA+C,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,aAAa,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAC1C,IAAI,OAAO,aAAa,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACjD,oBAAoB,CAAC,uCAAuC,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,cAAc,IAAI,aAAa,CAAC,SAAS,KAAK,KAAK,CAAC;IAC7D,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;AACjD,CAAC;AAED,6DAA6D;AAC7D,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CACzB,IAA6B,EAC7B,UAAmC;IAEnC,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;IACtC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5E,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC;IACpC,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,WAAW,EAAE,OAAO,CAAC;IACrC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC;IACtE,oBAAoB,CAAC,wCAAwC,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAoB;IAOxD,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC;IACnD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,QAAQ;YACX,OAAO,EAAE,gBAAgB,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;QAC3D,KAAK,QAAQ;YACX,OAAO,EAAE,gBAAgB,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;QAC3D,KAAK,SAAS;YACZ,OAAO,EAAE,gBAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;QACzD,KAAK,MAAM;YACT,OAAO,EAAE,gBAAgB,EAAE,EAAE,WAAW,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;IAChF,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAC,IAA2B;IACpE,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IACvF,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAClE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS,CAAC;AACnF,CAAC"}
|
|
1
|
+
{"version":3,"file":"valueNormalization.js","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/valueNormalization.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,9 +4,10 @@
|
|
|
4
4
|
*
|
|
5
5
|
* The provider class hands one immutable `GoogleSheetsApiProviderDeps` object
|
|
6
6
|
* to every operation function so the class stays a thin facade. Pacing
|
|
7
|
-
* (
|
|
8
|
-
* against the registered definition, and
|
|
9
|
-
* here because every operation shares
|
|
7
|
+
* (ONE request-start limiter shared by reads and writes), redacted
|
|
8
|
+
* telemetry, route validation against the registered definition, and
|
|
9
|
+
* batchUpdate reply validation live here because every operation shares
|
|
10
|
+
* them.
|
|
10
11
|
*/
|
|
11
12
|
import type { RegisteredSyncProjectionDefinition } from "../../../../../application/sync/sheetsContract/sheetsProvisioning.js";
|
|
12
13
|
import { type Presence } from "../../../../../shared/state/index.js";
|
|
@@ -20,8 +21,13 @@ export interface GoogleSheetsApiProviderDeps {
|
|
|
20
21
|
readonly transport: GoogleSheetsApiTransport;
|
|
21
22
|
readonly readTimeoutMs: number;
|
|
22
23
|
readonly maxBatchBytes: number;
|
|
23
|
-
|
|
24
|
-
readonly
|
|
24
|
+
/** ONE limiter shared by reads and writes (combined starts are serialized). */
|
|
25
|
+
readonly requestLimiter: RequestStartLimiter;
|
|
26
|
+
/**
|
|
27
|
+
* Maximum admitted wait for ONE request start (the limiter's interval): a
|
|
28
|
+
* call whose predicted slot is further out is refused before transport.
|
|
29
|
+
*/
|
|
30
|
+
readonly maxRequestStartWaitMs: number;
|
|
25
31
|
readonly now: () => number;
|
|
26
32
|
readonly onRequest: ((event: GoogleSheetsApiRequestEvent) => void) | undefined;
|
|
27
33
|
}
|
|
@@ -29,7 +35,14 @@ export interface GoogleSheetsApiProviderDeps {
|
|
|
29
35
|
export declare function runRead<T>(deps: GoogleSheetsApiProviderDeps, task: () => Promise<T>): Promise<T>;
|
|
30
36
|
/** Paces ONE `batchUpdate` transport call and emits one write event. */
|
|
31
37
|
export declare function runWrite<T>(deps: GoogleSheetsApiProviderDeps, task: () => Promise<T>): Promise<T>;
|
|
32
|
-
/**
|
|
38
|
+
/**
|
|
39
|
+
* Emits one redacted telemetry event; diagnostics must never throw.
|
|
40
|
+
*
|
|
41
|
+
* The code is re-sanitized at the sink as defense in depth: every value
|
|
42
|
+
* reaching `onRequest` is either an allowlisted stable code or the fixed
|
|
43
|
+
* `unknown` category, so a future caller can never forward an arbitrary
|
|
44
|
+
* remote string.
|
|
45
|
+
*/
|
|
33
46
|
export declare function emitRequest(deps: GoogleSheetsApiProviderDeps, operation: "getSpreadsheet" | "batchUpdate", operationCount: number, startedAt: number, ok: boolean, httpStatus: Presence<number>, code: Presence<string>): void;
|
|
34
47
|
/** Resolves the registered projection definition for one physical sheet. */
|
|
35
48
|
export declare function definitionForPhysicalSheet(deps: GoogleSheetsApiProviderDeps, physicalSheetId: string): RegisteredSyncProjectionDefinition;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/operations/shared.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/operations/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,sEAAsE,CAAC;AAM/H,OAAO,EAA6C,KAAK,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAQhH,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AACrF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAQlE,4EAA4E;AAC5E,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,SAAS,kCAAkC,EAAE,CAAC;IACpE,QAAQ,CAAC,SAAS,EAAE,wBAAwB,CAAC;IAC7C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,+EAA+E;IAC/E,QAAQ,CAAC,cAAc,EAAE,mBAAmB,CAAC;IAC7C;;;OAGG;IACH,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,GAAG,EAAE,MAAM,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,2BAA2B,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAChF;AA0CD,0EAA0E;AAC1E,wBAAsB,OAAO,CAAC,CAAC,EAC7B,IAAI,EAAE,2BAA2B,EACjC,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,CAAC,CAAC,CAYZ;AAED,wEAAwE;AACxE,wBAAsB,QAAQ,CAAC,CAAC,EAC9B,IAAI,EAAE,2BAA2B,EACjC,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,CAAC,CAAC,CAYZ;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,2BAA2B,EACjC,SAAS,EAAE,gBAAgB,GAAG,aAAa,EAC3C,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,OAAO,EACX,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,EAC5B,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,GACrB,IAAI,CAgBN;AAED,4EAA4E;AAC5E,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,2BAA2B,EACjC,eAAe,EAAE,MAAM,GACtB,kCAAkC,CAWpC;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE;IACP,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC,EACD,UAAU,EAAE,kCAAkC,GAC7C,IAAI,CAaN;AAED,kFAAkF;AAClF,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,kCAAkC,GAC7C;IACD,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C,CAYA;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAkCvF"}
|
|
@@ -4,17 +4,51 @@
|
|
|
4
4
|
*
|
|
5
5
|
* The provider class hands one immutable `GoogleSheetsApiProviderDeps` object
|
|
6
6
|
* to every operation function so the class stays a thin facade. Pacing
|
|
7
|
-
* (
|
|
8
|
-
* against the registered definition, and
|
|
9
|
-
* here because every operation shares
|
|
7
|
+
* (ONE request-start limiter shared by reads and writes), redacted
|
|
8
|
+
* telemetry, route validation against the registered definition, and
|
|
9
|
+
* batchUpdate reply validation live here because every operation shares
|
|
10
|
+
* them.
|
|
10
11
|
*/
|
|
11
12
|
import { SYNC_SHEETS_ERROR_CODES, SyncSheetsContractError, } from "../../../../../application/sync/sheetsContract/errors.js";
|
|
12
|
-
import { classifyTransportOutcome } from "../../../../../application/sync/sheetsContract/transportOutcome.js";
|
|
13
|
-
import { presentValue, absentValue } from "../../../../../shared/state/index.js";
|
|
14
|
-
import {
|
|
13
|
+
import { classifyTransportOutcome, sanitizeTransportRemoteCode } from "../../../../../application/sync/sheetsContract/transportOutcome.js";
|
|
14
|
+
import { presentValue, absentValue, PRESENCE_KINDS } from "../../../../../shared/state/index.js";
|
|
15
|
+
import { logHikouteiInternalEvent, } from "../../../../../shared/observability/internalLog.js";
|
|
16
|
+
import { HIKOUTEI_LOG_COMPONENTS, HIKOUTEI_LOG_EVENTS, } from "../../../../../shared/observability/logEvents.js";
|
|
17
|
+
import { GOOGLE_SHEETS_API_TRANSPORT_ERROR_CODES, GoogleSheetsApiTransportError, invalidProviderState, } from "../errors.js";
|
|
18
|
+
import { batchUpdateResponseShapeSchema } from "../model/rawResponseSchemas.js";
|
|
19
|
+
/**
|
|
20
|
+
* Static, redacted refusal message. Never embeds effect ids, sheet names,
|
|
21
|
+
* spreadsheet ids, or limiter state: the durable worker only needs the
|
|
22
|
+
* stable code to requeue through the CAS/recovery path.
|
|
23
|
+
*/
|
|
24
|
+
const REQUEST_START_REFUSED_MESSAGE = "Google Sheets API request start refused before transport: the shared pacing queue exceeds the bounded admission wait.";
|
|
25
|
+
/**
|
|
26
|
+
* Acquires one bounded request-start slot, refusing (and logging one
|
|
27
|
+
* redacted event) when the predicted wait exceeds the configured bound.
|
|
28
|
+
* A refusal NEVER advances the limiter horizon and throws the stable
|
|
29
|
+
* delivery-uncertain transport error before any SDK call, so the durable
|
|
30
|
+
* worker requeues instead of firing an unpaced burst.
|
|
31
|
+
*/
|
|
32
|
+
async function admitRequestStart(deps, operation) {
|
|
33
|
+
const admission = await deps.requestLimiter.waitForSlot(deps.maxRequestStartWaitMs);
|
|
34
|
+
if (admission.status !== "refused")
|
|
35
|
+
return;
|
|
36
|
+
// Boundary record for a locally refused start: only the stable code is
|
|
37
|
+
// logged (retryable, like the other delivery-uncertain buckets), never a
|
|
38
|
+
// message, payload, id, or URL.
|
|
39
|
+
logHikouteiInternalEvent({
|
|
40
|
+
event: HIKOUTEI_LOG_EVENTS.TRANSPORT_REQUEST_FAILED,
|
|
41
|
+
level: "warn",
|
|
42
|
+
component: HIKOUTEI_LOG_COMPONENTS.TRANSPORT,
|
|
43
|
+
code: GOOGLE_SHEETS_API_TRANSPORT_ERROR_CODES.REQUEST_START_REFUSED,
|
|
44
|
+
errorClass: "GoogleSheetsApiTransportError",
|
|
45
|
+
retryable: true,
|
|
46
|
+
});
|
|
47
|
+
throw new GoogleSheetsApiTransportError(GOOGLE_SHEETS_API_TRANSPORT_ERROR_CODES.REQUEST_START_REFUSED, REQUEST_START_REFUSED_MESSAGE, absentValue(), absentValue());
|
|
48
|
+
}
|
|
15
49
|
/** Paces ONE `getSpreadsheet` transport call and emits one read event. */
|
|
16
50
|
export async function runRead(deps, task) {
|
|
17
|
-
await deps
|
|
51
|
+
await admitRequestStart(deps, "getSpreadsheet");
|
|
18
52
|
const startedAt = deps.now();
|
|
19
53
|
try {
|
|
20
54
|
const result = await task();
|
|
@@ -29,7 +63,7 @@ export async function runRead(deps, task) {
|
|
|
29
63
|
}
|
|
30
64
|
/** Paces ONE `batchUpdate` transport call and emits one write event. */
|
|
31
65
|
export async function runWrite(deps, task) {
|
|
32
|
-
await deps
|
|
66
|
+
await admitRequestStart(deps, "batchUpdate");
|
|
33
67
|
const startedAt = deps.now();
|
|
34
68
|
try {
|
|
35
69
|
const result = await task();
|
|
@@ -42,7 +76,14 @@ export async function runWrite(deps, task) {
|
|
|
42
76
|
throw error;
|
|
43
77
|
}
|
|
44
78
|
}
|
|
45
|
-
/**
|
|
79
|
+
/**
|
|
80
|
+
* Emits one redacted telemetry event; diagnostics must never throw.
|
|
81
|
+
*
|
|
82
|
+
* The code is re-sanitized at the sink as defense in depth: every value
|
|
83
|
+
* reaching `onRequest` is either an allowlisted stable code or the fixed
|
|
84
|
+
* `unknown` category, so a future caller can never forward an arbitrary
|
|
85
|
+
* remote string.
|
|
86
|
+
*/
|
|
46
87
|
export function emitRequest(deps, operation, operationCount, startedAt, ok, httpStatus, code) {
|
|
47
88
|
try {
|
|
48
89
|
deps.onRequest?.({
|
|
@@ -52,7 +93,9 @@ export function emitRequest(deps, operation, operationCount, startedAt, ok, http
|
|
|
52
93
|
durationMs: Math.max(0, deps.now() - startedAt),
|
|
53
94
|
ok,
|
|
54
95
|
httpStatus,
|
|
55
|
-
code
|
|
96
|
+
code: code.kind === PRESENCE_KINDS.PRESENT
|
|
97
|
+
? presentValue(sanitizeTransportRemoteCode(code.value))
|
|
98
|
+
: code,
|
|
56
99
|
});
|
|
57
100
|
}
|
|
58
101
|
catch {
|
|
@@ -100,11 +143,15 @@ export function effectRouteOptions(definition) {
|
|
|
100
143
|
* not close effects, so this throws a delivery-uncertain state error.
|
|
101
144
|
*/
|
|
102
145
|
export function requireValidBatchUpdateReply(value, requestCount) {
|
|
103
|
-
|
|
104
|
-
|
|
146
|
+
const parsed = batchUpdateResponseShapeSchema.safeParse(value);
|
|
147
|
+
if (!parsed.success) {
|
|
148
|
+
if (value === null || typeof value !== "object" || Array.isArray(value)) {
|
|
149
|
+
invalidProviderState("batchUpdate response must be an object");
|
|
150
|
+
}
|
|
151
|
+
invalidProviderState(`batchUpdate reply count does not match ${requestCount} requests`);
|
|
105
152
|
}
|
|
106
|
-
const record =
|
|
107
|
-
if (
|
|
153
|
+
const record = parsed.data;
|
|
154
|
+
if (record.replies.length !== requestCount) {
|
|
108
155
|
invalidProviderState(`batchUpdate reply count does not match ${requestCount} requests`);
|
|
109
156
|
}
|
|
110
157
|
record.replies.forEach((reply, index) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/operations/shared.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/operations/shared.ts"],"names":[],"mappings":"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"}
|
package/dist/adapter/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.d.ts
CHANGED
|
@@ -143,6 +143,19 @@ export declare class GoogleSheetsApiHttpTransport implements GoogleSheetsApiTran
|
|
|
143
143
|
* never as a proven pre-mutation rejection.
|
|
144
144
|
*/
|
|
145
145
|
export declare function classifyGoogleSheetsApiError(error: unknown): GoogleSheetsApiTransportError;
|
|
146
|
+
/**
|
|
147
|
+
* True when the status kind marks a transient remote condition.
|
|
148
|
+
*
|
|
149
|
+
* Mirrors the shared `isGoogleSheetsApiDeliveryUncertain` boundary: an
|
|
150
|
+
* absent status (timeout/network), HTTP 408 (request timeout — the proxy or
|
|
151
|
+
* API may still have committed the write), HTTP 429, and every 5xx are
|
|
152
|
+
* retryable/uncertain; the proven pre-mutation 4xx rejections (400, 401,
|
|
153
|
+
* 403, 404) are not. This only buckets telemetry — gaxios auto-retry stays
|
|
154
|
+
* disabled (`retry: false`), so a mutating call is never blindly retried
|
|
155
|
+
* here; the durable worker owns retries through the shared outcome
|
|
156
|
+
* classifier.
|
|
157
|
+
*/
|
|
158
|
+
export declare function isRetryableTransportStatus(status: number | undefined): boolean;
|
|
146
159
|
/**
|
|
147
160
|
* Builds the SDK batchUpdate body from provider write requests. The SDK
|
|
148
161
|
* request union is wider than the provider's narrow shapes; this boundary
|
package/dist/adapter/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"googleSheetsApiTransport.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,MAAM,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"googleSheetsApiTransport.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.ts"],"names":[],"mappings":"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"}
|
package/dist/adapter/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.js
CHANGED
|
@@ -10,9 +10,12 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import { GoogleAuth } from "google-auth-library";
|
|
12
12
|
import { sheets } from "@googleapis/sheets";
|
|
13
|
-
import { presentValue, absentValue } from "../../../../../shared/state/index.js";
|
|
13
|
+
import { presentValue, absentValue, PRESENCE_KINDS } from "../../../../../shared/state/index.js";
|
|
14
|
+
import { logHikouteiInternalEvent, } from "../../../../../shared/observability/internalLog.js";
|
|
15
|
+
import { HIKOUTEI_LOG_COMPONENTS, HIKOUTEI_LOG_EVENTS, } from "../../../../../shared/observability/logEvents.js";
|
|
14
16
|
import { GOOGLE_SHEETS_API_SCOPES } from "../constants.js";
|
|
15
17
|
import { GOOGLE_SHEETS_API_TRANSPORT_ERROR_CODES, GoogleSheetsApiTransportError, } from "../errors.js";
|
|
18
|
+
import { parseRawErrorRecord, parseRawErrorText, parseRawHttpStatus, } from "./rawErrorSchemas.js";
|
|
16
19
|
/**
|
|
17
20
|
* Real transport over the Google Sheets REST API.
|
|
18
21
|
*
|
|
@@ -45,7 +48,9 @@ export class GoogleSheetsApiHttpTransport {
|
|
|
45
48
|
return response.data;
|
|
46
49
|
}
|
|
47
50
|
catch (error) {
|
|
48
|
-
|
|
51
|
+
const mapped = classifyGoogleSheetsApiError(error);
|
|
52
|
+
logTransportFailure(mapped);
|
|
53
|
+
throw mapped;
|
|
49
54
|
}
|
|
50
55
|
}
|
|
51
56
|
async batchUpdate(request) {
|
|
@@ -60,7 +65,9 @@ export class GoogleSheetsApiHttpTransport {
|
|
|
60
65
|
return response.data;
|
|
61
66
|
}
|
|
62
67
|
catch (error) {
|
|
63
|
-
|
|
68
|
+
const mapped = classifyGoogleSheetsApiError(error);
|
|
69
|
+
logTransportFailure(mapped);
|
|
70
|
+
throw mapped;
|
|
64
71
|
}
|
|
65
72
|
}
|
|
66
73
|
}
|
|
@@ -90,35 +97,59 @@ export function classifyGoogleSheetsApiError(error) {
|
|
|
90
97
|
? absentValue()
|
|
91
98
|
: presentValue(shape.code));
|
|
92
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* Emits one redacted transport-failure event (fail-open, no message text).
|
|
102
|
+
*
|
|
103
|
+
* Timeout, network, 429, 408, and 5xx failures are classified retryable so
|
|
104
|
+
* log consumers can bucket transient Sheets quota/pacing pressure; proven
|
|
105
|
+
* pre-mutation 4xx status codes (400/401/403/404) are not. The HTTP status
|
|
106
|
+
* is carried as a numeric count only; the spreadsheet ID, URL, and response
|
|
107
|
+
* body never reach the log.
|
|
108
|
+
*/
|
|
109
|
+
function logTransportFailure(error) {
|
|
110
|
+
const status = error.status.kind === PRESENCE_KINDS.PRESENT
|
|
111
|
+
? error.status.value
|
|
112
|
+
: undefined;
|
|
113
|
+
logHikouteiInternalEvent({
|
|
114
|
+
event: HIKOUTEI_LOG_EVENTS.TRANSPORT_REQUEST_FAILED,
|
|
115
|
+
level: "warn",
|
|
116
|
+
component: HIKOUTEI_LOG_COMPONENTS.TRANSPORT,
|
|
117
|
+
code: error.code,
|
|
118
|
+
errorClass: "GoogleSheetsApiTransportError",
|
|
119
|
+
retryable: isRetryableTransportStatus(status),
|
|
120
|
+
...(status === undefined ? {} : { counts: { status } }),
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* True when the status kind marks a transient remote condition.
|
|
125
|
+
*
|
|
126
|
+
* Mirrors the shared `isGoogleSheetsApiDeliveryUncertain` boundary: an
|
|
127
|
+
* absent status (timeout/network), HTTP 408 (request timeout — the proxy or
|
|
128
|
+
* API may still have committed the write), HTTP 429, and every 5xx are
|
|
129
|
+
* retryable/uncertain; the proven pre-mutation 4xx rejections (400, 401,
|
|
130
|
+
* 403, 404) are not. This only buckets telemetry — gaxios auto-retry stays
|
|
131
|
+
* disabled (`retry: false`), so a mutating call is never blindly retried
|
|
132
|
+
* here; the durable worker owns retries through the shared outcome
|
|
133
|
+
* classifier.
|
|
134
|
+
*/
|
|
135
|
+
export function isRetryableTransportStatus(status) {
|
|
136
|
+
if (status === undefined)
|
|
137
|
+
return true;
|
|
138
|
+
if (status === 408 || status === 429)
|
|
139
|
+
return true;
|
|
140
|
+
return status >= 500;
|
|
141
|
+
}
|
|
93
142
|
function extractGaxiosErrorShape(error) {
|
|
94
|
-
|
|
143
|
+
const record = parseRawErrorRecord(error);
|
|
144
|
+
if (record === undefined) {
|
|
95
145
|
return { code: undefined, status: undefined, apiErrorStatus: undefined };
|
|
96
146
|
}
|
|
97
|
-
const
|
|
98
|
-
const
|
|
99
|
-
const
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
const rawStatus = responseRecord?.status;
|
|
104
|
-
const status = typeof rawStatus === "number" && Number.isInteger(rawStatus)
|
|
105
|
-
? rawStatus
|
|
106
|
-
: typeof rawStatus === "string" && /^\d{3}$/.test(rawStatus)
|
|
107
|
-
? Number(rawStatus)
|
|
108
|
-
: undefined;
|
|
109
|
-
let apiErrorStatus;
|
|
110
|
-
const data = responseRecord?.data;
|
|
111
|
-
const dataRecord = data !== null && typeof data === "object"
|
|
112
|
-
? data
|
|
113
|
-
: undefined;
|
|
114
|
-
const errorBody = dataRecord?.error;
|
|
115
|
-
const errorRecord = errorBody !== null && typeof errorBody === "object"
|
|
116
|
-
? errorBody
|
|
117
|
-
: undefined;
|
|
118
|
-
const rawApiStatus = errorRecord?.status;
|
|
119
|
-
if (typeof rawApiStatus === "string" && rawApiStatus.length > 0) {
|
|
120
|
-
apiErrorStatus = rawApiStatus;
|
|
121
|
-
}
|
|
147
|
+
const code = parseRawErrorText(record.code);
|
|
148
|
+
const responseRecord = parseRawErrorRecord(record.response);
|
|
149
|
+
const status = parseRawHttpStatus(responseRecord?.status);
|
|
150
|
+
const dataRecord = parseRawErrorRecord(responseRecord?.data);
|
|
151
|
+
const errorRecord = parseRawErrorRecord(dataRecord?.error);
|
|
152
|
+
const apiErrorStatus = parseRawErrorText(errorRecord?.status);
|
|
122
153
|
return { code, status, apiErrorStatus };
|
|
123
154
|
}
|
|
124
155
|
function isTimeoutError(error, code) {
|
package/dist/adapter/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"googleSheetsApiTransport.js","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAkB,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"googleSheetsApiTransport.js","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,15 @@
|
|
|
2
2
|
* Request-start interval limiter used by the direct Sheets provider.
|
|
3
3
|
*
|
|
4
4
|
* Google Sheets quota windows are per 100 seconds, so bursty request starts
|
|
5
|
-
* can exhaust
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* can exhaust the budget before the worker's own latency/backoff reacts. The
|
|
6
|
+
* provider keeps ONE shared limiter for reads AND writes, so combined
|
|
7
|
+
* read+write request starts are serialized: at most one transport call
|
|
8
|
+
* (getSpreadsheet or batchUpdate) can start per interval no matter how many
|
|
9
|
+
* operations race. An idle provider is never throttled; the limiter only
|
|
10
|
+
* waits the time remaining since the previous request START. Admission is
|
|
11
|
+
* BOUNDED: a caller whose slot lies more than `maxWaitMs` out is refused
|
|
12
|
+
* without reserving anything, so a burst of concurrent callers can never
|
|
13
|
+
* queue an arbitrarily long line of future reservations.
|
|
9
14
|
*/
|
|
10
15
|
export interface RequestStartLimiterOptions {
|
|
11
16
|
/** Minimum interval between two request starts of this limiter class. */
|
|
@@ -15,6 +20,24 @@ export interface RequestStartLimiterOptions {
|
|
|
15
20
|
/** Injectable sleep used while waiting for the next slot. */
|
|
16
21
|
readonly sleep?: (ms: number) => Promise<void>;
|
|
17
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Result of one BOUNDED `waitForSlot(maxWaitMs)` admission attempt.
|
|
25
|
+
*
|
|
26
|
+
* An admitted caller owns the reserved slot and waits `waitedMs`; a refused
|
|
27
|
+
* caller reserved NOTHING (the future slot stays available to later callers)
|
|
28
|
+
* and the limiter's `lastStartAt` is left untouched, so a refusal can never
|
|
29
|
+
* push the pacing horizon forward.
|
|
30
|
+
*/
|
|
31
|
+
export type RequestStartAdmission = {
|
|
32
|
+
readonly status: "admitted";
|
|
33
|
+
readonly waitedMs: number;
|
|
34
|
+
} | {
|
|
35
|
+
readonly status: "refused";
|
|
36
|
+
/** The wait the refused slot WOULD have required. */
|
|
37
|
+
readonly waitedMs: number;
|
|
38
|
+
/** The slot that was NOT reserved; still open to later callers. */
|
|
39
|
+
readonly nextStartAt: number;
|
|
40
|
+
};
|
|
18
41
|
/**
|
|
19
42
|
* Waits only the remaining interval since the previous request start.
|
|
20
43
|
*
|
|
@@ -43,5 +66,18 @@ export declare class RequestStartLimiter {
|
|
|
43
66
|
* has already passed waits zero (its reservation collapses to now).
|
|
44
67
|
*/
|
|
45
68
|
waitForSlot(): Promise<number>;
|
|
69
|
+
/**
|
|
70
|
+
* Bounded admission: waits for the next slot only when the predicted wait
|
|
71
|
+
* is at most `maxWaitMs`, otherwise returns a REFUSED result without
|
|
72
|
+
* reserving or advancing the future slot.
|
|
73
|
+
*
|
|
74
|
+
* The bound keeps an unbounded queue of concurrent callers from each
|
|
75
|
+
* reserving a distant future slot: with `maxWaitMs` equal to `intervalMs`
|
|
76
|
+
* the immediate caller and the one exactly one interval out are admitted
|
|
77
|
+
* and every later reservation is refused up front. A refusal never records
|
|
78
|
+
* a start, so the pacing horizon is unchanged and a later caller can still
|
|
79
|
+
* be admitted once time advances past the reserved slot.
|
|
80
|
+
*/
|
|
81
|
+
waitForSlot(maxWaitMs: number): Promise<RequestStartAdmission>;
|
|
46
82
|
}
|
|
47
83
|
//# sourceMappingURL=rateLimiter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rateLimiter.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/transport/rateLimiter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"rateLimiter.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/transport/rateLimiter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,MAAM,WAAW,0BAA0B;IACzC,yEAAyE;IACzE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,sEAAsE;IACtE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,qBAAqB,GAC7B;IAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC1D;IACA,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,qDAAqD;IACrD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,mEAAmE;IACnE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEJ;;;;;GAKG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgC;IACtD,OAAO,CAAC,WAAW,CAAqB;gBAErB,OAAO,EAAE,0BAA0B;IAStD,gEAAgE;IACzD,SAAS,IAAI,MAAM,GAAG,SAAS;IAItC;;;;;;;;;;;;OAYG;IACI,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IACrC;;;;;;;;;;;OAWG;IACI,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;CA+BtE"}
|