hikoutei 0.9.28 → 0.9.30
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/api/Hikoutei.d.ts +2 -2
- package/dist/api/Hikoutei.d.ts.map +1 -1
- package/dist/api/Hikoutei.js +3 -0
- package/dist/api/Hikoutei.js.map +1 -1
- package/dist/api/index.d.ts +1 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/syncRuntime.d.ts +9 -0
- package/dist/api/syncRuntime.d.ts.map +1 -1
- package/dist/api/syncRuntime.js +3 -0
- package/dist/api/syncRuntime.js.map +1 -1
- package/dist/composition/syncEngine.d.ts.map +1 -1
- package/dist/composition/syncEngine.js +11 -0
- package/dist/composition/syncEngine.js.map +1 -1
- package/dist/contracts/sheets/googleSheetsApi.d.ts +90 -3
- package/dist/contracts/sheets/googleSheetsApi.d.ts.map +1 -1
- package/dist/contracts/sheets/googleSheetsApi.js +46 -0
- package/dist/contracts/sheets/googleSheetsApi.js.map +1 -1
- package/dist/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.d.ts +5 -0
- package/dist/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.d.ts.map +1 -1
- package/dist/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.js +91 -11
- package/dist/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.js.map +1 -1
- package/dist/sheets/providers/google-sheets-api/model/preflightContext.d.ts +3 -1
- package/dist/sheets/providers/google-sheets-api/model/preflightContext.d.ts.map +1 -1
- package/dist/sheets/providers/google-sheets-api/model/preflightContext.js +4 -1
- package/dist/sheets/providers/google-sheets-api/model/preflightContext.js.map +1 -1
- package/dist/sheets/providers/google-sheets-api/operations/anchors.d.ts.map +1 -1
- package/dist/sheets/providers/google-sheets-api/operations/anchors.js +3 -2
- package/dist/sheets/providers/google-sheets-api/operations/anchors.js.map +1 -1
- package/dist/sheets/providers/google-sheets-api/operations/applyEffects.d.ts.map +1 -1
- package/dist/sheets/providers/google-sheets-api/operations/applyEffects.js +44 -85
- package/dist/sheets/providers/google-sheets-api/operations/applyEffects.js.map +1 -1
- package/dist/sheets/providers/google-sheets-api/operations/fastAppend.d.ts.map +1 -1
- package/dist/sheets/providers/google-sheets-api/operations/fastAppend.js +72 -132
- package/dist/sheets/providers/google-sheets-api/operations/fastAppend.js.map +1 -1
- package/dist/sheets/providers/google-sheets-api/operations/preflightOp.d.ts.map +1 -1
- package/dist/sheets/providers/google-sheets-api/operations/preflightOp.js +7 -4
- package/dist/sheets/providers/google-sheets-api/operations/preflightOp.js.map +1 -1
- package/dist/sheets/providers/google-sheets-api/operations/provisioning.d.ts.map +1 -1
- package/dist/sheets/providers/google-sheets-api/operations/provisioning.js +7 -4
- package/dist/sheets/providers/google-sheets-api/operations/provisioning.js.map +1 -1
- package/dist/sheets/providers/google-sheets-api/operations/readEngine.d.ts.map +1 -1
- package/dist/sheets/providers/google-sheets-api/operations/readEngine.js +4 -3
- package/dist/sheets/providers/google-sheets-api/operations/readEngine.js.map +1 -1
- package/dist/sheets/providers/google-sheets-api/operations/readRows.d.ts.map +1 -1
- package/dist/sheets/providers/google-sheets-api/operations/readRows.js +5 -3
- package/dist/sheets/providers/google-sheets-api/operations/readRows.js.map +1 -1
- package/dist/sheets/providers/google-sheets-api/operations/shared.d.ts +83 -3
- package/dist/sheets/providers/google-sheets-api/operations/shared.d.ts.map +1 -1
- package/dist/sheets/providers/google-sheets-api/operations/shared.js +172 -18
- package/dist/sheets/providers/google-sheets-api/operations/shared.js.map +1 -1
- package/dist/sheets/providers/google-sheets-api/operations/writeEngine.d.ts +90 -0
- package/dist/sheets/providers/google-sheets-api/operations/writeEngine.d.ts.map +1 -0
- package/dist/sheets/providers/google-sheets-api/operations/writeEngine.js +112 -0
- package/dist/sheets/providers/google-sheets-api/operations/writeEngine.js.map +1 -0
- package/dist/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.d.ts +39 -2
- package/dist/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.d.ts.map +1 -1
- package/dist/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.js +110 -9
- package/dist/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.js.map +1 -1
- package/dist/sheets/providers/google-sheets-api/transport/quotaGovernor.d.ts +229 -0
- package/dist/sheets/providers/google-sheets-api/transport/quotaGovernor.d.ts.map +1 -0
- package/dist/sheets/providers/google-sheets-api/transport/quotaGovernor.js +299 -0
- package/dist/sheets/providers/google-sheets-api/transport/quotaGovernor.js.map +1 -0
- package/dist/sheets/providers/google-sheets-api/transport/rateLimiter.d.ts +15 -0
- package/dist/sheets/providers/google-sheets-api/transport/rateLimiter.d.ts.map +1 -1
- package/dist/sheets/providers/google-sheets-api/transport/rateLimiter.js +16 -2
- package/dist/sheets/providers/google-sheets-api/transport/rateLimiter.js.map +1 -1
- package/dist/sync-engine/api/hikouteiCore.d.ts +22 -0
- package/dist/sync-engine/api/hikouteiCore.d.ts.map +1 -1
- package/dist/sync-engine/api/hikouteiCore.js +12 -0
- package/dist/sync-engine/api/hikouteiCore.js.map +1 -1
- package/dist/sync-engine/sync/service/syncAutoStart.d.ts +41 -1
- package/dist/sync-engine/sync/service/syncAutoStart.d.ts.map +1 -1
- package/dist/sync-engine/sync/service/syncAutoStart.js +111 -3
- package/dist/sync-engine/sync/service/syncAutoStart.js.map +1 -1
- package/package.json +2 -2
package/dist/api/Hikoutei.d.ts
CHANGED
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
* only the public factory entry and re-exports the internal helpers for the
|
|
14
14
|
* staying root modules and internal deep-import tests.
|
|
15
15
|
*/
|
|
16
|
-
import { resolveDefaultDbPath, validateTypedSheetsOptions, createInternalHikoutei, type CreateTypedSheetsOptions, type Hikoutei } from "../sync-engine/api/hikouteiCore.js";
|
|
16
|
+
import { resolveDefaultDbPath, validateTypedSheetsOptions, createInternalHikoutei, type CreateTypedSheetsOptions, type HikouteiProviderOptions, type Hikoutei } from "../sync-engine/api/hikouteiCore.js";
|
|
17
17
|
import "../composition/index.js";
|
|
18
|
-
export { createInternalHikoutei, resolveDefaultDbPath, validateTypedSheetsOptions, type CreateTypedSheetsOptions, type Hikoutei, };
|
|
18
|
+
export { createInternalHikoutei, resolveDefaultDbPath, validateTypedSheetsOptions, type CreateTypedSheetsOptions, type HikouteiProviderOptions, type Hikoutei, };
|
|
19
19
|
/**
|
|
20
20
|
* Opens the local SQLite runtime for the declared scalar entities.
|
|
21
21
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hikoutei.d.ts","sourceRoot":"","sources":["../../src/api/Hikoutei.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,sBAAsB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,QAAQ,EACd,MAAM,2CAA2C,CAAC;AAMnD,OAAO,gCAAgC,CAAC;AAExC,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,0BAA0B,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,QAAQ,GACd,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"Hikoutei.d.ts","sourceRoot":"","sources":["../../src/api/Hikoutei.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,sBAAsB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,QAAQ,EACd,MAAM,2CAA2C,CAAC;AAMnD,OAAO,gCAAgC,CAAC;AAExC,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,0BAA0B,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,QAAQ,GACd,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,QAAQ,CAAC,CA4CnB"}
|
package/dist/api/Hikoutei.js
CHANGED
|
@@ -58,6 +58,9 @@ export async function createTypedSheets(options = {}) {
|
|
|
58
58
|
dbName,
|
|
59
59
|
entities: [...entities],
|
|
60
60
|
env: process.env,
|
|
61
|
+
...(options.providerOptions === undefined
|
|
62
|
+
? {}
|
|
63
|
+
: { providerOptions: options.providerOptions }),
|
|
61
64
|
});
|
|
62
65
|
// This factory never passes `adopt`, so the `adopt-dry-run` variant is
|
|
63
66
|
// unreachable here; narrow for the type system only.
|
package/dist/api/Hikoutei.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hikoutei.js","sourceRoot":"","sources":["../../src/api/Hikoutei.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,sBAAsB,
|
|
1
|
+
{"version":3,"file":"Hikoutei.js","sourceRoot":"","sources":["../../src/api/Hikoutei.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,sBAAsB,GAIvB,MAAM,2CAA2C,CAAC;AAEnD,6EAA6E;AAC7E,2EAA2E;AAC3E,8EAA8E;AAC9E,6EAA6E;AAC7E,OAAO,gCAAgC,CAAC;AAExC,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,0BAA0B,GAI3B,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,UAAoC,EAAE;IAEtC,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAEpC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,oBAAoB,EAAE,CAAC;IACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,yBAAyB,EAAE,CAAC;IACjE,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,aAAa,CACrB,oBAAoB,CAAC,yBAAyB,EAC9C,iIAAiI,CAClI,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC;IACjE,IAAI,cAAc,KAAK,SAAS,IAAI,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACjE,yEAAyE;QACzE,8CAA8C;QAC9C,MAAM,EAAE,6BAA6B,EAAE,GAAG,MAAM,MAAM,CACpD,uCAAuC,CACxC,CAAC;QACF,OAAO,6BAA6B,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,4EAA4E;IAC5E,4DAA4D;IAC5D,MAAM,EAAE,yBAAyB,EAAE,GAAG,MAAM,MAAM,CAChD,wCAAwC,CACzC,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC;QAC7C,MAAM;QACN,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC;QACvB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,GAAG,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS;YACvC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC;KAClD,CAAC,CAAC;IACH,uEAAuE;IACvE,qDAAqD;IACrD,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QACpC,MAAM,IAAI,aAAa,CACrB,oBAAoB,CAAC,mBAAmB,EACxC,gEAAgE,CACjE,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,QAAQ,CAAC;AACzB,CAAC"}
|
package/dist/api/index.d.ts
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
export { defineTypedSheetsEntity, HIKOUTEI_SCALAR_TYPES, } from "./entity.js";
|
|
12
12
|
export type { HikouteiEntity, HikouteiEntityDescriptorInput, HikouteiPropertyOptions, HikouteiPropertyDescriptorMap, HikouteiScalarType, HikouteiScalarValueType, HikouteiPropertyValueType, HikouteiEntityInstance, } from "./entity.js";
|
|
13
13
|
export { createTypedSheets } from "./Hikoutei.js";
|
|
14
|
-
export type { CreateTypedSheetsOptions, Hikoutei } from "./Hikoutei.js";
|
|
14
|
+
export type { CreateTypedSheetsOptions, HikouteiProviderOptions, Hikoutei } from "./Hikoutei.js";
|
|
15
15
|
export { createTypedSheetsWithSync } from "./syncRuntime.js";
|
|
16
16
|
export type { CreateTypedSheetsWithSyncOptions, AdoptSpec, AdoptEntitySpec, AdoptionRunReport, AdoptionEntityReport, AdoptionColumnBinding, AdoptionProblem, LocalSyncRuntimeResult, RunningSyncServiceResult, AdoptDryRunResult, TypedSheetsWithSyncResult, } from "./syncRuntime.js";
|
|
17
17
|
export type { EntityManager, HikouteiFilter, HikouteiFindOneOptions, HikouteiFindOptions, HikouteiOperatorFilter, HikouteiOrderBy, HikouteiSortDirection, } from "./EntityManager.js";
|
package/dist/api/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,cAAc,EACd,6BAA6B,EAC7B,uBAAuB,EACvB,6BAA6B,EAC7B,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,YAAY,EAAE,wBAAwB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,cAAc,EACd,6BAA6B,EAC7B,uBAAuB,EACvB,6BAA6B,EAC7B,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,YAAY,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACjG,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,YAAY,EACV,gCAAgC,EAChC,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,sBAAsB,EACtB,wBAAwB,EACxB,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAClE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -147,6 +147,15 @@ export interface CreateTypedSheetsWithSyncOptions {
|
|
|
147
147
|
readonly env?: Readonly<Record<string, string | undefined>>;
|
|
148
148
|
readonly onDiagnostic?: (level: "info" | "error", message: string) => void;
|
|
149
149
|
readonly adopt?: AdoptSpec;
|
|
150
|
+
/**
|
|
151
|
+
* Provider telemetry/tuning forwarded to the sync-service provider wiring
|
|
152
|
+
* (real-transport path only; inert in local-only mode). Mirrors the public
|
|
153
|
+
* `CreateTypedSheetsOptions.providerOptions` contract: the internal bridge
|
|
154
|
+
* accepts the full `GoogleSheetsApiProviderOptions`, so this narrower
|
|
155
|
+
* public shape flows through with zero cast, and the wrapper's call site
|
|
156
|
+
* pins the assignability.
|
|
157
|
+
*/
|
|
158
|
+
readonly providerOptions?: import("./Hikoutei.js").HikouteiProviderOptions;
|
|
150
159
|
}
|
|
151
160
|
/**
|
|
152
161
|
* Opens the runtime for the declared entities and starts the internal sync
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncRuntime.d.ts","sourceRoot":"","sources":["../../src/api/syncRuntime.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"syncRuntime.d.ts","sourceRoot":"","sources":["../../src/api/syncRuntime.ts"],"names":[],"mappings":"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"}
|
package/dist/api/syncRuntime.js
CHANGED
|
@@ -50,6 +50,9 @@ export async function createTypedSheetsWithSync(options) {
|
|
|
50
50
|
: { env: options.env }),
|
|
51
51
|
...(options.onDiagnostic === undefined ? {} : { onDiagnostic: options.onDiagnostic }),
|
|
52
52
|
...(options.adopt === undefined ? {} : { adopt: options.adopt }),
|
|
53
|
+
...(options.providerOptions === undefined
|
|
54
|
+
? {}
|
|
55
|
+
: { providerOptions: options.providerOptions }),
|
|
53
56
|
});
|
|
54
57
|
// Drop the internal service handle from the public result: the runtime
|
|
55
58
|
// handle is the application-facing contract.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncRuntime.js","sourceRoot":"","sources":["../../src/api/syncRuntime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;
|
|
1
|
+
{"version":3,"file":"syncRuntime.js","sourceRoot":"","sources":["../../src/api/syncRuntime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AA8IH;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,OAAyC;IAEzC,2EAA2E;IAC3E,qFAAqF;IACrF,MAAM,EAAE,yBAAyB,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CACxD,wCAAwC,CACzC,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;QAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC/B,mEAAmE;QACnE,wEAAwE;QACxE,yEAAyE;QACzE,wEAAwE;QACxE,kEAAkE;QAClE,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS;YAC3B,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAmD,EAAE;YACtE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;QACzB,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC;QACrF,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;QAChE,GAAG,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS;YACvC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC;KAClD,CAAC,CAAC;IACH,uEAAuE;IACvE,6CAA6C;IAC7C,OAAO,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;AACvF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncEngine.d.ts","sourceRoot":"","sources":["../../../../src/syncEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAwBH,OAAO,KAAK,EAEV,0BAA0B,EAE3B,MAAM,wDAAwD,CAAC;
|
|
1
|
+
{"version":3,"file":"syncEngine.d.ts","sourceRoot":"","sources":["../../../../src/syncEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAwBH,OAAO,KAAK,EAEV,0BAA0B,EAE3B,MAAM,wDAAwD,CAAC;AAgGhE;;;;GAIG;AACH,wBAAgB,0BAA0B,IAAI,OAAO,CAAC,0BAA0B,CAAC,CAEhF"}
|
|
@@ -77,7 +77,18 @@ function createSyncEnginePorts() {
|
|
|
77
77
|
});
|
|
78
78
|
},
|
|
79
79
|
createAdoptionReaderTransport(providerOptions) {
|
|
80
|
+
// Adoption is a read-only ONE-SHOT bootstrap path (existing-tab
|
|
81
|
+
// enumeration/values before the worker exists), so it never needs the
|
|
82
|
+
// pool's per-identity pacing/AIMD (those live in the sync provider's
|
|
83
|
+
// transport). But a pool-only deployment has no ADC file: the reader
|
|
84
|
+
// must sign as the FIRST pooled identity — the same principal the
|
|
85
|
+
// startup 403 hint names — or adoption fails with the wrong-principal
|
|
86
|
+
// error. Passing only keyFiles[0] builds a single-client transport:
|
|
87
|
+
// deterministic slot 0, never the fallback round-robin. Without a
|
|
88
|
+
// pool, this stays the historical ADC-only reader.
|
|
89
|
+
const poolKeyFile = providerOptions?.serviceAccountKeyFiles?.[0];
|
|
80
90
|
return new GoogleSheetsApiHttpTransport({
|
|
91
|
+
...(poolKeyFile === undefined ? {} : { serviceAccountKeyFiles: [poolKeyFile] }),
|
|
81
92
|
requestTimeoutMs: providerOptions?.requestTimeoutMs ?? GOOGLE_SHEETS_API_DEFAULTS.REQUEST_TIMEOUT_MS,
|
|
82
93
|
});
|
|
83
94
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncEngine.js","sourceRoot":"","sources":["../../../../src/syncEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EACL,uBAAuB,GAExB,MAAM,mFAAmF,CAAC;AAC3F,OAAO,EACL,2BAA2B,GAE5B,MAAM,mFAAmF,CAAC;AAC3F,OAAO,EAAE,iCAAiC,EAAE,MAAM,4FAA4F,CAAC;AAC/I,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,GAChC,MAAM,2FAA2F,CAAC;AACnG,OAAO,EACL,4BAA4B,GAC7B,MAAM,2FAA2F,CAAC;AACnG,OAAO,EACL,2BAA2B,GAC5B,MAAM,8DAA8D,CAAC;AACtE,OAAO,EACL,4BAA4B,GAC7B,MAAM,0EAA0E,CAAC;AAclF,OAAO,EAAE,0BAA0B,EAAE,MAAM,+CAA+C,CAAC;AAG3F,6EAA6E;AAC7E,SAAS,iBAAiB,CACxB,QAAmC,EACnC,WAAyC;IAEzC,MAAM,SAAS,GAAoC,2BAA2B,CAC5E,QAAQ,EACR,WAAW,CACZ,CAAC;IACF,OAAO;QACL,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,KAAK,CAAC,iBAAiB,CAAC,KAAK;YAC3B,MAAM,iBAAiB,GAAmC;gBACxD,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC;aACrF,CAAC;YACF,MAAM,OAAO,GAAG,MAAM,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;YACjE,OAAO;gBACL,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;gBAC1C,+BAA+B,EAAE,GAAG,EAAE,CACpC,IAAI,iCAAiC,CACnC,OAAO,CAAC,OAAO,EACf,SAAS,CAAC,QAAQ,EAClB,OAAO,CAAC,gBAAgB,CACzB;aACJ,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,oEAAoE;AACpE,SAAS,qBAAqB;IAC5B,OAAO;QACL,iBAAiB;QACjB,0BAA0B,CAAC,KAAK;YAC9B,MAAM,QAAQ,GAAG,IAAI,2BAA2B,CAAC;gBAC/C,GAAG,KAAK,CAAC,eAAe;gBACxB,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,WAAW,EAAE,KAAK,CAAC,WAAW;aAC/B,CAAC,CAAC;YACH,OAAO,EAAE,QAAQ,EAAE,CAAC;QACtB,CAAC;QACD,KAAK,CAAC,mBAAmB,CAAC,KAAK;YAC7B,OAAO,+BAA+B,CAAC;gBACrC,OAAO,EAAE,KAAK,CAAC,OAAgC;gBAC/C,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,IAAI,EAAE,4BAA4B,CAAC,QAAQ;gBAC3C,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,eAAe,EAAE,KAAK,CAAC,eAAe;gBACtC,GAAG,CAAC,KAAK,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC;gBAC7F,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;aACtE,CAAC,CAAC;QACL,CAAC;QACD,6BAA6B,CAC3B,eAA2D;YAE3D,OAAO,IAAI,4BAA4B,CAAC;gBACtC,gBAAgB,EACd,eAAe,EAAE,gBAAgB,IAAI,0BAA0B,CAAC,kBAAkB;aACrF,CAAC,CAAC;QACL,CAAC;QACD,sBAAsB,EAAE,4BAA4B;KACrD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B;IACxC,OAAO,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;AAClD,CAAC"}
|
|
1
|
+
{"version":3,"file":"syncEngine.js","sourceRoot":"","sources":["../../../../src/syncEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -89,6 +89,38 @@ export declare const GOOGLE_SHEETS_API_DEFAULTS: {
|
|
|
89
89
|
readonly MAX_EFFECTS_PER_REQUEST: 1000;
|
|
90
90
|
/** Append row cap per request, matching the worker's bulk claim window. */
|
|
91
91
|
readonly MAX_APPEND_ROWS_PER_REQUEST: 1000;
|
|
92
|
+
/** Sliding window the per-minute budgets enforce over. */
|
|
93
|
+
readonly QUOTA_BUDGET_WINDOW_MS: 60000;
|
|
94
|
+
/**
|
|
95
|
+
* Per-window request-start budget for the READ lane. DISABLED by default
|
|
96
|
+
* (Infinity) for zero behavior change; the RECOMMENDED value below is
|
|
97
|
+
* 45/min (0.75x the measured binding 60/min per-user read quota).
|
|
98
|
+
*/
|
|
99
|
+
readonly QUOTA_READ_BUDGET_PER_WINDOW: number;
|
|
100
|
+
/** Recommended READ budget for a measured 60/min per-user quota (0.75x). */
|
|
101
|
+
readonly RECOMMENDED_QUOTA_READ_BUDGET_PER_WINDOW: 45;
|
|
102
|
+
/**
|
|
103
|
+
* Per-window request-start budget for the WRITE lane. DISABLED by default
|
|
104
|
+
* (Infinity); the RECOMMENDED value below is 10/min, well above the
|
|
105
|
+
* measured 2-5/min write demand.
|
|
106
|
+
*/
|
|
107
|
+
readonly QUOTA_WRITE_BUDGET_PER_WINDOW: number;
|
|
108
|
+
/** Recommended WRITE budget for the measured 2-5/min write demand. */
|
|
109
|
+
readonly RECOMMENDED_QUOTA_WRITE_BUDGET_PER_WINDOW: 10;
|
|
110
|
+
/** HTTP status that marks a quota-limited (AIMD signal) response. */
|
|
111
|
+
readonly QUOTA_LIMIT_HTTP_STATUS: 429;
|
|
112
|
+
/** google.rpc code that marks a quota-limited response when no status is present. */
|
|
113
|
+
readonly QUOTA_LIMIT_REMOTE_CODE: "RESOURCE_EXHAUSTED";
|
|
114
|
+
/** Multiplicative decrease: pacing interval factor per observed 429. */
|
|
115
|
+
readonly QUOTA_BACKOFF_GROWTH_FACTOR: 2;
|
|
116
|
+
/** Ceiling for the AIMD pacing multiplier (interval never exceeds 4x base). */
|
|
117
|
+
readonly QUOTA_BACKOFF_MAX_MULTIPLIER: 4;
|
|
118
|
+
/** Additive increase: pacing multiplier divisor per recovery step. */
|
|
119
|
+
readonly QUOTA_RECOVERY_STEP_FACTOR: 2;
|
|
120
|
+
/** Successful request starts of quiet before one recovery step. */
|
|
121
|
+
readonly QUOTA_RECOVERY_SUCCESS_THRESHOLD: 25;
|
|
122
|
+
/** Milliseconds since the last 429 that alone earns a recovery step. */
|
|
123
|
+
readonly QUOTA_RECOVERY_QUIET_MS: 10000;
|
|
92
124
|
};
|
|
93
125
|
/** REST `CellFormat.numberFormat` object written by the provider. */
|
|
94
126
|
export interface GoogleSheetsApiNumberFormat {
|
|
@@ -182,8 +214,24 @@ export type GoogleSheetsApiWriteRequest = {
|
|
|
182
214
|
readonly kind: "deleteSheet";
|
|
183
215
|
readonly sheetId: number;
|
|
184
216
|
};
|
|
217
|
+
/**
|
|
218
|
+
* Optional pool-identity binding carried by every transport request.
|
|
219
|
+
*
|
|
220
|
+
* When the provider runs with a credential pool (N > 1 service accounts),
|
|
221
|
+
* request-start admission selects the pacing slot index and threads it here
|
|
222
|
+
* so the transport signs the call with the SAME credential the admission
|
|
223
|
+
* paced against — the budget/interval an identity respected and the client
|
|
224
|
+
* that hits the wire can never disagree. Absent means "no pool binding":
|
|
225
|
+
* a single-credential provider (the historical default) never sets it, and
|
|
226
|
+
* the transport then falls back to its own round-robin cursor over the pool
|
|
227
|
+
* (or its single default client).
|
|
228
|
+
*/
|
|
229
|
+
export interface GoogleSheetsApiCredentialBinding {
|
|
230
|
+
/** Zero-based index into the transport's credential pool. */
|
|
231
|
+
readonly credentialIndex?: number;
|
|
232
|
+
}
|
|
185
233
|
/** Request shape of one `spreadsheets.get` call. */
|
|
186
|
-
export interface GoogleSheetsApiGetSpreadsheetRequest {
|
|
234
|
+
export interface GoogleSheetsApiGetSpreadsheetRequest extends GoogleSheetsApiCredentialBinding {
|
|
187
235
|
readonly spreadsheetId: string;
|
|
188
236
|
readonly ranges: readonly string[];
|
|
189
237
|
readonly fields: string;
|
|
@@ -195,12 +243,12 @@ export interface GoogleSheetsApiGetSpreadsheetRequest {
|
|
|
195
243
|
readonly timeoutMs?: number;
|
|
196
244
|
}
|
|
197
245
|
/** Request shape of one `spreadsheets.batchUpdate` call. */
|
|
198
|
-
export interface GoogleSheetsApiBatchUpdateRequest {
|
|
246
|
+
export interface GoogleSheetsApiBatchUpdateRequest extends GoogleSheetsApiCredentialBinding {
|
|
199
247
|
readonly spreadsheetId: string;
|
|
200
248
|
readonly requests: readonly GoogleSheetsApiWriteRequest[];
|
|
201
249
|
}
|
|
202
250
|
/** Request shape of one `spreadsheets.values.get` call. */
|
|
203
|
-
export interface GoogleSheetsApiValuesGetRequest {
|
|
251
|
+
export interface GoogleSheetsApiValuesGetRequest extends GoogleSheetsApiCredentialBinding {
|
|
204
252
|
readonly spreadsheetId: string;
|
|
205
253
|
readonly range: string;
|
|
206
254
|
readonly timeoutMs?: number;
|
|
@@ -237,6 +285,13 @@ export interface GoogleSheetsApiRequestEvent {
|
|
|
237
285
|
readonly code: Presence<string>;
|
|
238
286
|
/** Pacing wait before the request-start slot was granted (0 when none). */
|
|
239
287
|
readonly pacingWaitMs?: number;
|
|
288
|
+
/**
|
|
289
|
+
* Pool identity (zero-based credential index) this request was admitted
|
|
290
|
+
* AND signed with. Absent on the single-credential path, so events stay
|
|
291
|
+
* byte-identical to the pre-pool behavior; only the index is ever
|
|
292
|
+
* reported — never an email, client id, or file path.
|
|
293
|
+
*/
|
|
294
|
+
readonly credentialIndex?: number;
|
|
240
295
|
/** Number of batchUpdate requests in the written batch. */
|
|
241
296
|
readonly requestCount?: number;
|
|
242
297
|
/** Serialized batchUpdate body-size estimate in bytes. */
|
|
@@ -258,6 +313,18 @@ export interface GoogleSheetsApiRequestEvent {
|
|
|
258
313
|
export interface GoogleSheetsApiProviderOptions {
|
|
259
314
|
/** Stub transport for tests; omitted builds the real ADC-backed client. */
|
|
260
315
|
readonly transport?: GoogleSheetsApiTransport;
|
|
316
|
+
/**
|
|
317
|
+
* Service-account key-file pool: each entry is a distinct ADC-format JSON
|
|
318
|
+
* key file and therefore a distinct Google quota principal. When 2+ files
|
|
319
|
+
* are configured, request-start pacing (interval, per-minute budgets, and
|
|
320
|
+
* AIMD feedback) runs per identity and outbound calls round-robin across
|
|
321
|
+
* the pool, multiplying the effective per-user read/write quota by N.
|
|
322
|
+
* One entry (or absent) keeps the single-credential path byte-identical
|
|
323
|
+
* to the pre-pool behavior. The provider validates entry SHAPE only; file
|
|
324
|
+
* readability/structure is validated by the sync auto-start bridge before
|
|
325
|
+
* startup, and by the transport when it builds each client.
|
|
326
|
+
*/
|
|
327
|
+
readonly serviceAccountKeyFiles?: readonly string[];
|
|
261
328
|
/** Per-request timeout; defaults to 60 seconds, bounded 1s..120s. */
|
|
262
329
|
readonly requestTimeoutMs?: number;
|
|
263
330
|
/**
|
|
@@ -282,6 +349,26 @@ export interface GoogleSheetsApiProviderOptions {
|
|
|
282
349
|
* the shared write limiter instead of being refused by the read burst.
|
|
283
350
|
*/
|
|
284
351
|
readonly requestStartMaxWaitMs?: number;
|
|
352
|
+
/**
|
|
353
|
+
* Per-minute request-start budget for the READ lane (sliding window);
|
|
354
|
+
* DISABLED by default (`QUOTA_READ_BUDGET_PER_WINDOW` = Infinity) so the
|
|
355
|
+
* shipped pacing matches the pre-budget behavior exactly. Set it to the
|
|
356
|
+
* documented `RECOMMENDED_QUOTA_READ_BUDGET_PER_WINDOW` (45/min, under the
|
|
357
|
+
* measured binding 60/min per-user read quota) when a per-minute ceiling
|
|
358
|
+
* must be enforced. A start whose budget slot lies more than
|
|
359
|
+
* `requestStartMaxWaitMs` out is refused with the same bounded
|
|
360
|
+
* delivery-uncertain error as interval pacing; the budget and the lane
|
|
361
|
+
* pacing SHARE that one admission bound. `Number.POSITIVE_INFINITY`
|
|
362
|
+
* disables the budget.
|
|
363
|
+
*/
|
|
364
|
+
readonly quotaReadBudgetPerMinute?: number;
|
|
365
|
+
/**
|
|
366
|
+
* Per-minute request-start budget for the WRITE lane; DISABLED by default
|
|
367
|
+
* like the read budget. `RECOMMENDED_QUOTA_WRITE_BUDGET_PER_WINDOW`
|
|
368
|
+
* (10/min) sits well above the measured 2-5/min write demand. Same
|
|
369
|
+
* bounded-admission and disable semantics as the read budget.
|
|
370
|
+
*/
|
|
371
|
+
readonly quotaWriteBudgetPerMinute?: number;
|
|
285
372
|
/** Serialized batchUpdate byte budget; defaults to ~2 MB. */
|
|
286
373
|
readonly maxBatchBytes?: number;
|
|
287
374
|
/** Injectable clock for limiters and telemetry. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"googleSheetsApi.d.ts","sourceRoot":"","sources":["../../src/sheets/googleSheetsApi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,4EAA4E;AAC5E,eAAO,MAAM,wBAAwB,2DAE3B,CAAC;AAEX,wEAAwE;AACxE,eAAO,MAAM,0BAA0B;IACrC,gFAAgF;;;;IAIhF;;;;;;;;;OASG;;IAEH,2EAA2E;;IAE3E;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;;IAEH;;;;;;;;;OASG;;IAEH;;;;;OAKG;;IAEH;;;;;OAKG;;IAEH,2EAA2E;;
|
|
1
|
+
{"version":3,"file":"googleSheetsApi.d.ts","sourceRoot":"","sources":["../../src/sheets/googleSheetsApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -90,6 +90,52 @@ export const GOOGLE_SHEETS_API_DEFAULTS = {
|
|
|
90
90
|
MAX_EFFECTS_PER_REQUEST: 1_000,
|
|
91
91
|
/** Append row cap per request, matching the worker's bulk claim window. */
|
|
92
92
|
MAX_APPEND_ROWS_PER_REQUEST: 1_000,
|
|
93
|
+
// -------------------------------------------------------------------------
|
|
94
|
+
// Adaptive quota governor (transport layer, request-START gating only).
|
|
95
|
+
// The binding quota for the deployed per-user project was measured as 60
|
|
96
|
+
// READs/min: a 30k-effect burst peaked near 69 reads/min, producing 429s
|
|
97
|
+
// on ~4.67% of reads and a delivery-uncertain requeue spiral. Interval
|
|
98
|
+
// pacing alone cannot hold a per-minute ceiling, so a sliding-window
|
|
99
|
+
// budget and 429 AIMD feedback gate request starts on top of it. The
|
|
100
|
+
// budgets are DISABLED by default (Infinity) to keep the shipped defaults
|
|
101
|
+
// behavior-identical to the pre-governor pacing (the 800 ms interval
|
|
102
|
+
// already allows up to 75 starts/min, so any finite per-minute default
|
|
103
|
+
// below that would locally refuse healthy workloads with zero 429s);
|
|
104
|
+
// operators facing a measured per-minute quota ceiling opt in via the
|
|
105
|
+
// RECOMMENDED_* values below.
|
|
106
|
+
// -------------------------------------------------------------------------
|
|
107
|
+
/** Sliding window the per-minute budgets enforce over. */
|
|
108
|
+
QUOTA_BUDGET_WINDOW_MS: 60_000,
|
|
109
|
+
/**
|
|
110
|
+
* Per-window request-start budget for the READ lane. DISABLED by default
|
|
111
|
+
* (Infinity) for zero behavior change; the RECOMMENDED value below is
|
|
112
|
+
* 45/min (0.75x the measured binding 60/min per-user read quota).
|
|
113
|
+
*/
|
|
114
|
+
QUOTA_READ_BUDGET_PER_WINDOW: Number.POSITIVE_INFINITY,
|
|
115
|
+
/** Recommended READ budget for a measured 60/min per-user quota (0.75x). */
|
|
116
|
+
RECOMMENDED_QUOTA_READ_BUDGET_PER_WINDOW: 45,
|
|
117
|
+
/**
|
|
118
|
+
* Per-window request-start budget for the WRITE lane. DISABLED by default
|
|
119
|
+
* (Infinity); the RECOMMENDED value below is 10/min, well above the
|
|
120
|
+
* measured 2-5/min write demand.
|
|
121
|
+
*/
|
|
122
|
+
QUOTA_WRITE_BUDGET_PER_WINDOW: Number.POSITIVE_INFINITY,
|
|
123
|
+
/** Recommended WRITE budget for the measured 2-5/min write demand. */
|
|
124
|
+
RECOMMENDED_QUOTA_WRITE_BUDGET_PER_WINDOW: 10,
|
|
125
|
+
/** HTTP status that marks a quota-limited (AIMD signal) response. */
|
|
126
|
+
QUOTA_LIMIT_HTTP_STATUS: 429,
|
|
127
|
+
/** google.rpc code that marks a quota-limited response when no status is present. */
|
|
128
|
+
QUOTA_LIMIT_REMOTE_CODE: "RESOURCE_EXHAUSTED",
|
|
129
|
+
/** Multiplicative decrease: pacing interval factor per observed 429. */
|
|
130
|
+
QUOTA_BACKOFF_GROWTH_FACTOR: 2,
|
|
131
|
+
/** Ceiling for the AIMD pacing multiplier (interval never exceeds 4x base). */
|
|
132
|
+
QUOTA_BACKOFF_MAX_MULTIPLIER: 4,
|
|
133
|
+
/** Additive increase: pacing multiplier divisor per recovery step. */
|
|
134
|
+
QUOTA_RECOVERY_STEP_FACTOR: 2,
|
|
135
|
+
/** Successful request starts of quiet before one recovery step. */
|
|
136
|
+
QUOTA_RECOVERY_SUCCESS_THRESHOLD: 25,
|
|
137
|
+
/** Milliseconds since the last 429 that alone earns a recovery step. */
|
|
138
|
+
QUOTA_RECOVERY_QUIET_MS: 10_000,
|
|
93
139
|
};
|
|
94
140
|
/** A1-notation helpers shared with the provider's model normalization. */
|
|
95
141
|
/** Converts A1 column letters to a 1-based column number. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"googleSheetsApi.js","sourceRoot":"","sources":["../../src/sheets/googleSheetsApi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,4EAA4E;AAC5E,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,8CAA8C;CACtC,CAAC;AAEX,wEAAwE;AACxE,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,gFAAgF;IAChF,kBAAkB,EAAE,MAAM;IAC1B,sBAAsB,EAAE,KAAK;IAC7B,sBAAsB,EAAE,OAAO;IAC/B;;;;;;;;;OASG;IACH,eAAe,EAAE,MAAM;IACvB,2EAA2E;IAC3E,mBAAmB,EAAE,MAAM;IAC3B;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,yBAAyB,EAAE,GAAG;IAC9B;;;;;;;;;OASG;IACH,mCAAmC,EAAE,KAAK;IAC1C;;;;;OAKG;IACH,uBAAuB,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;IACxC;;;;;OAKG;IACH,uBAAuB,EAAE,KAAK;IAC9B,2EAA2E;IAC3E,2BAA2B,EAAE,KAAK;
|
|
1
|
+
{"version":3,"file":"googleSheetsApi.js","sourceRoot":"","sources":["../../src/sheets/googleSheetsApi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,4EAA4E;AAC5E,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,8CAA8C;CACtC,CAAC;AAEX,wEAAwE;AACxE,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,gFAAgF;IAChF,kBAAkB,EAAE,MAAM;IAC1B,sBAAsB,EAAE,KAAK;IAC7B,sBAAsB,EAAE,OAAO;IAC/B;;;;;;;;;OASG;IACH,eAAe,EAAE,MAAM;IACvB,2EAA2E;IAC3E,mBAAmB,EAAE,MAAM;IAC3B;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,yBAAyB,EAAE,GAAG;IAC9B;;;;;;;;;OASG;IACH,mCAAmC,EAAE,KAAK;IAC1C;;;;;OAKG;IACH,uBAAuB,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;IACxC;;;;;OAKG;IACH,uBAAuB,EAAE,KAAK;IAC9B,2EAA2E;IAC3E,2BAA2B,EAAE,KAAK;IAClC,4EAA4E;IAC5E,wEAAwE;IACxE,yEAAyE;IACzE,yEAAyE;IACzE,uEAAuE;IACvE,qEAAqE;IACrE,qEAAqE;IACrE,0EAA0E;IAC1E,qEAAqE;IACrE,uEAAuE;IACvE,qEAAqE;IACrE,sEAAsE;IACtE,8BAA8B;IAC9B,4EAA4E;IAC5E,0DAA0D;IAC1D,sBAAsB,EAAE,MAAM;IAC9B;;;;OAIG;IACH,4BAA4B,EAAE,MAAM,CAAC,iBAAiB;IACtD,4EAA4E;IAC5E,wCAAwC,EAAE,EAAE;IAC5C;;;;OAIG;IACH,6BAA6B,EAAE,MAAM,CAAC,iBAAiB;IACvD,sEAAsE;IACtE,yCAAyC,EAAE,EAAE;IAC7C,qEAAqE;IACrE,uBAAuB,EAAE,GAAG;IAC5B,qFAAqF;IACrF,uBAAuB,EAAE,oBAAoB;IAC7C,wEAAwE;IACxE,2BAA2B,EAAE,CAAC;IAC9B,+EAA+E;IAC/E,4BAA4B,EAAE,CAAC;IAC/B,sEAAsE;IACtE,0BAA0B,EAAE,CAAC;IAC7B,mEAAmE;IACnE,gCAAgC,EAAE,EAAE;IACpC,wEAAwE;IACxE,uBAAuB,EAAE,MAAM;CACvB,CAAC;AAsRX,0EAA0E;AAE1E,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"}
|
|
@@ -67,11 +67,16 @@ export declare class GoogleSheetsApiSyncProvider implements SyncEffectWorkerProv
|
|
|
67
67
|
private readonly maxBatchBytes;
|
|
68
68
|
private readonly readScheduler;
|
|
69
69
|
private readonly writeLimiter;
|
|
70
|
+
private readonly readBudget;
|
|
71
|
+
private readonly writeBudget;
|
|
72
|
+
private readonly quotaGovernor;
|
|
70
73
|
/** Bounded admission: independent max request-start wait (default 5,000
|
|
71
74
|
* ms), separate from the pacing interval. */
|
|
72
75
|
private readonly maxRequestStartWaitMs;
|
|
73
76
|
private readonly now;
|
|
74
77
|
private readonly onRequest;
|
|
78
|
+
/** Per-identity pacing pool (2+ credentials only); undefined single-slot. */
|
|
79
|
+
private readonly credentialPacing;
|
|
75
80
|
private readonly deps;
|
|
76
81
|
constructor(options: GoogleSheetsApiSyncProviderOptions);
|
|
77
82
|
/** Exposes the configured outbound timeout (used by lease-headroom checks). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoogleSheetsApiSyncProvider.d.ts","sourceRoot":"","sources":["../../../../../../../src/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAGH,OAAO,KAAK,EACV,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,EAC3B,0BAA0B,EAC1B,qBAAqB,EACrB,oBAAoB,EACpB,mCAAmC,EACnC,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,EACxB,oBAAoB,EACpB,uBAAuB,EACvB,6BAA6B,EAE7B,wBAAwB,EACxB,oBAAoB,EACpB,mBAAmB,EACnB,kCAAkC,EAClC,6BAA6B,EAC7B,yBAAyB,EACzB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,0CAA0C,CAAC;AAKlD,OAAO,KAAK,EACV,kCAAkC,EAClC,qBAAqB,EACrB,wBAAwB,EACzB,MAAM,kDAAkD,CAAC;
|
|
1
|
+
{"version":3,"file":"GoogleSheetsApiSyncProvider.d.ts","sourceRoot":"","sources":["../../../../../../../src/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,6 +41,7 @@ import { GoogleSheetsApiHttpTransport, } from "./transport/googleSheetsApiTransp
|
|
|
41
41
|
import { ReceiptReadCursor } from "./model/receiptCursor.js";
|
|
42
42
|
import { createReadCalibration } from "./model/readPlan.js";
|
|
43
43
|
import { RequestStartLimiter, ReadQoSScheduler } from "./transport/rateLimiter.js";
|
|
44
|
+
import { QUOTA_GOVERNOR_LANES, QuotaPacingGovernor, RollingQuotaBudget, } from "./transport/quotaGovernor.js";
|
|
44
45
|
import { PromiseTailLock } from "./operations/shared.js";
|
|
45
46
|
import { fastAppendRows, } from "./operations/fastAppend.js";
|
|
46
47
|
import { applyEffects, applyPreparedEffects as applyPreparedEffectsOp, preflightApplyEffects as preflightApplyEffectsOp, readEffectPostcondition, readEffectPostconditions, } from "./operations/applyEffects.js";
|
|
@@ -73,11 +74,16 @@ export class GoogleSheetsApiSyncProvider {
|
|
|
73
74
|
maxBatchBytes;
|
|
74
75
|
readScheduler;
|
|
75
76
|
writeLimiter;
|
|
77
|
+
readBudget;
|
|
78
|
+
writeBudget;
|
|
79
|
+
quotaGovernor;
|
|
76
80
|
/** Bounded admission: independent max request-start wait (default 5,000
|
|
77
81
|
* ms), separate from the pacing interval. */
|
|
78
82
|
maxRequestStartWaitMs;
|
|
79
83
|
now;
|
|
80
84
|
onRequest;
|
|
85
|
+
/** Per-identity pacing pool (2+ credentials only); undefined single-slot. */
|
|
86
|
+
credentialPacing;
|
|
81
87
|
deps;
|
|
82
88
|
constructor(options) {
|
|
83
89
|
if (options.definitions.length === 0) {
|
|
@@ -107,23 +113,91 @@ export class GoogleSheetsApiSyncProvider {
|
|
|
107
113
|
const intervalMs = options.rateLimitIntervalMs ?? GOOGLE_SHEETS_API_DEFAULTS.REQUEST_START_INTERVAL_MS;
|
|
108
114
|
const maxAdmissionWaitMs = options.requestStartMaxWaitMs
|
|
109
115
|
?? GOOGLE_SHEETS_API_DEFAULTS.REQUEST_START_MAX_ADMISSION_WAIT_MS;
|
|
116
|
+
const readBudgetPerMinute = options.quotaReadBudgetPerMinute
|
|
117
|
+
?? GOOGLE_SHEETS_API_DEFAULTS.QUOTA_READ_BUDGET_PER_WINDOW;
|
|
118
|
+
const writeBudgetPerMinute = options.quotaWriteBudgetPerMinute
|
|
119
|
+
?? GOOGLE_SHEETS_API_DEFAULTS.QUOTA_WRITE_BUDGET_PER_WINDOW;
|
|
120
|
+
for (const budget of [readBudgetPerMinute, writeBudgetPerMinute]) {
|
|
121
|
+
if (budget !== Number.POSITIVE_INFINITY &&
|
|
122
|
+
(!Number.isSafeInteger(budget) || budget < 1)) {
|
|
123
|
+
invalidProviderRequest("Google Sheets API sync provider", "quota budget must be a positive safe integer or Infinity");
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
// Credential-pool shape validation: every entry must be a non-empty
|
|
127
|
+
// path string. File readability/structure is validated by the sync
|
|
128
|
+
// auto-start bridge before startup and by the transport when it builds
|
|
129
|
+
// each client; an injected stub transport never touches the files.
|
|
130
|
+
const serviceAccountKeyFiles = options.serviceAccountKeyFiles ?? [];
|
|
131
|
+
for (const keyFile of serviceAccountKeyFiles) {
|
|
132
|
+
if (typeof keyFile !== "string" || keyFile.trim() === "") {
|
|
133
|
+
invalidProviderRequest("Google Sheets API sync provider", "serviceAccountKeyFiles entries must be non-empty paths");
|
|
134
|
+
}
|
|
135
|
+
}
|
|
110
136
|
this.spreadsheetId = options.spreadsheetId;
|
|
111
137
|
this.definitions = options.definitions;
|
|
112
|
-
this.transport = options.transport ?? new GoogleSheetsApiHttpTransport({
|
|
138
|
+
this.transport = options.transport ?? new GoogleSheetsApiHttpTransport({
|
|
139
|
+
requestTimeoutMs,
|
|
140
|
+
...(serviceAccountKeyFiles.length === 0
|
|
141
|
+
? {}
|
|
142
|
+
: { serviceAccountKeyFiles }),
|
|
143
|
+
});
|
|
113
144
|
this.transportTimeoutMs = requestTimeoutMs;
|
|
114
145
|
this.readTimeoutMs = readTimeoutMs;
|
|
115
146
|
this.maxBatchBytes = maxBatchBytes;
|
|
116
147
|
this.now = options.now ?? Date.now;
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
148
|
+
// One complete admission stack per pooled credential. Google Sheets
|
|
149
|
+
// quota is per principal, so N service accounts pace N independent
|
|
150
|
+
// identities; the round-robin selection in `admitRequestStart` binds
|
|
151
|
+
// each request's pacing AND its signing client to the same index. With
|
|
152
|
+
// one credential (or an unset pool) the flat single-slot wiring below
|
|
153
|
+
// is byte-identical to the pre-pool provider.
|
|
154
|
+
const slotCount = Math.max(serviceAccountKeyFiles.length, 1);
|
|
155
|
+
const slots = [];
|
|
156
|
+
for (let slot = 0; slot < slotCount; slot += 1) {
|
|
157
|
+
// Adaptive quota governor: the AIMD multiplier starts at 1x, so with
|
|
158
|
+
// no 429 ever observed each lane paces exactly as before this wiring
|
|
159
|
+
// existed.
|
|
160
|
+
const quotaGovernor = new QuotaPacingGovernor({
|
|
161
|
+
baseIntervalMs: intervalMs,
|
|
162
|
+
now: this.now,
|
|
163
|
+
});
|
|
164
|
+
slots.push({
|
|
165
|
+
quotaGovernor,
|
|
166
|
+
readBudget: new RollingQuotaBudget({
|
|
167
|
+
maxStartsPerWindow: readBudgetPerMinute,
|
|
168
|
+
windowMs: GOOGLE_SHEETS_API_DEFAULTS.QUOTA_BUDGET_WINDOW_MS,
|
|
169
|
+
now: this.now,
|
|
170
|
+
...(options.sleep === undefined ? {} : { sleep: options.sleep }),
|
|
171
|
+
}),
|
|
172
|
+
writeBudget: new RollingQuotaBudget({
|
|
173
|
+
maxStartsPerWindow: writeBudgetPerMinute,
|
|
174
|
+
windowMs: GOOGLE_SHEETS_API_DEFAULTS.QUOTA_BUDGET_WINDOW_MS,
|
|
175
|
+
now: this.now,
|
|
176
|
+
...(options.sleep === undefined ? {} : { sleep: options.sleep }),
|
|
177
|
+
}),
|
|
178
|
+
readScheduler: new ReadQoSScheduler({
|
|
179
|
+
intervalMs,
|
|
180
|
+
getIntervalMs: () => quotaGovernor.intervalMsFor(QUOTA_GOVERNOR_LANES.READ),
|
|
181
|
+
now: this.now,
|
|
182
|
+
...(options.sleep === undefined ? {} : { sleep: options.sleep }),
|
|
183
|
+
}),
|
|
184
|
+
writeLimiter: new RequestStartLimiter({
|
|
185
|
+
intervalMs,
|
|
186
|
+
getIntervalMs: () => quotaGovernor.intervalMsFor(QUOTA_GOVERNOR_LANES.WRITE),
|
|
187
|
+
now: this.now,
|
|
188
|
+
...(options.sleep === undefined ? {} : { sleep: options.sleep }),
|
|
189
|
+
}),
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
const slot0 = slots[0];
|
|
193
|
+
this.quotaGovernor = slot0.quotaGovernor;
|
|
194
|
+
this.readBudget = slot0.readBudget;
|
|
195
|
+
this.writeBudget = slot0.writeBudget;
|
|
196
|
+
this.readScheduler = slot0.readScheduler;
|
|
197
|
+
this.writeLimiter = slot0.writeLimiter;
|
|
198
|
+
this.credentialPacing = slotCount < 2
|
|
199
|
+
? undefined
|
|
200
|
+
: { slots, nextIndex: 0 };
|
|
127
201
|
// Admission bound is independent of the pacing interval: a postcondition
|
|
128
202
|
// read (paced on the WRITE limiter) is allowed to wait a few intervals for
|
|
129
203
|
// the write slot, while the interval still spaces request STARTS for quota
|
|
@@ -146,7 +220,13 @@ export class GoogleSheetsApiSyncProvider {
|
|
|
146
220
|
maxBatchBytes: this.maxBatchBytes,
|
|
147
221
|
readScheduler: this.readScheduler,
|
|
148
222
|
writeLimiter: this.writeLimiter,
|
|
223
|
+
readBudget: this.readBudget,
|
|
224
|
+
writeBudget: this.writeBudget,
|
|
225
|
+
quotaGovernor: this.quotaGovernor,
|
|
149
226
|
maxRequestStartWaitMs: this.maxRequestStartWaitMs,
|
|
227
|
+
...(this.credentialPacing === undefined
|
|
228
|
+
? {}
|
|
229
|
+
: { credentialPacing: this.credentialPacing }),
|
|
150
230
|
now: this.now,
|
|
151
231
|
onRequest: this.onRequest,
|
|
152
232
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoogleSheetsApiSyncProvider.js","sourceRoot":"","sources":["../../../../../../../src/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AA2BzC,OAAO,EACL,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,sCAAsC,CAAC;AAM9C,OAAO,EACL,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EACL,4BAA4B,GAE7B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"GoogleSheetsApiSyncProvider.js","sourceRoot":"","sources":["../../../../../../../src/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -161,7 +161,9 @@ export interface ParsedSpreadsheetDocument {
|
|
|
161
161
|
export declare function enumerateSheetProperties(transport: GoogleSheetsApiTransport, spreadsheetId: string, timeoutMs?: number,
|
|
162
162
|
/** Receives the RAW transport document before parsing — telemetry measures
|
|
163
163
|
* the true response size from it (the parsed result loses wire detail). */
|
|
164
|
-
onRawResponse?: (raw: unknown) => void
|
|
164
|
+
onRawResponse?: (raw: unknown) => void,
|
|
165
|
+
/** Admitted pool identity to bind this call to (absent = no binding). */
|
|
166
|
+
credentialIndex?: number): Promise<readonly ParsedSheet[]>;
|
|
165
167
|
/**
|
|
166
168
|
* Read-shape options for one steady-state preflight data read.
|
|
167
169
|
*
|