hikoutei 0.5.0 → 0.5.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.
Files changed (73) hide show
  1. package/dist/adapter/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.d.ts +5 -15
  2. package/dist/adapter/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.d.ts.map +1 -1
  3. package/dist/adapter/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.js +33 -945
  4. package/dist/adapter/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.js.map +1 -1
  5. package/dist/adapter/sheets/providers/google-sheets-api/model/planner.d.ts +14 -20
  6. package/dist/adapter/sheets/providers/google-sheets-api/model/planner.d.ts.map +1 -1
  7. package/dist/adapter/sheets/providers/google-sheets-api/model/planner.js +16 -200
  8. package/dist/adapter/sheets/providers/google-sheets-api/model/planner.js.map +1 -1
  9. package/dist/adapter/sheets/providers/google-sheets-api/model/plannerDeletion.d.ts +14 -0
  10. package/dist/adapter/sheets/providers/google-sheets-api/model/plannerDeletion.d.ts.map +1 -0
  11. package/dist/adapter/sheets/providers/google-sheets-api/model/plannerDeletion.js +37 -0
  12. package/dist/adapter/sheets/providers/google-sheets-api/model/plannerDeletion.js.map +1 -0
  13. package/dist/adapter/sheets/providers/google-sheets-api/model/plannerReceipt.d.ts +19 -0
  14. package/dist/adapter/sheets/providers/google-sheets-api/model/plannerReceipt.d.ts.map +1 -0
  15. package/dist/adapter/sheets/providers/google-sheets-api/model/plannerReceipt.js +76 -0
  16. package/dist/adapter/sheets/providers/google-sheets-api/model/plannerReceipt.js.map +1 -0
  17. package/dist/adapter/sheets/providers/google-sheets-api/model/plannerWorkingRow.d.ts +23 -0
  18. package/dist/adapter/sheets/providers/google-sheets-api/model/plannerWorkingRow.d.ts.map +1 -0
  19. package/dist/adapter/sheets/providers/google-sheets-api/model/plannerWorkingRow.js +122 -0
  20. package/dist/adapter/sheets/providers/google-sheets-api/model/plannerWorkingRow.js.map +1 -0
  21. package/dist/adapter/sheets/providers/google-sheets-api/model/preflight.d.ts +15 -222
  22. package/dist/adapter/sheets/providers/google-sheets-api/model/preflight.d.ts.map +1 -1
  23. package/dist/adapter/sheets/providers/google-sheets-api/model/preflight.js +14 -687
  24. package/dist/adapter/sheets/providers/google-sheets-api/model/preflight.js.map +1 -1
  25. package/dist/adapter/sheets/providers/google-sheets-api/model/preflightContext.d.ts +125 -0
  26. package/dist/adapter/sheets/providers/google-sheets-api/model/preflightContext.d.ts.map +1 -0
  27. package/dist/adapter/sheets/providers/google-sheets-api/model/preflightContext.js +161 -0
  28. package/dist/adapter/sheets/providers/google-sheets-api/model/preflightContext.js.map +1 -0
  29. package/dist/adapter/sheets/providers/google-sheets-api/model/preflightFields.d.ts +67 -0
  30. package/dist/adapter/sheets/providers/google-sheets-api/model/preflightFields.d.ts.map +1 -0
  31. package/dist/adapter/sheets/providers/google-sheets-api/model/preflightFields.js +94 -0
  32. package/dist/adapter/sheets/providers/google-sheets-api/model/preflightFields.js.map +1 -0
  33. package/dist/adapter/sheets/providers/google-sheets-api/model/preflightHeaders.d.ts +24 -0
  34. package/dist/adapter/sheets/providers/google-sheets-api/model/preflightHeaders.d.ts.map +1 -0
  35. package/dist/adapter/sheets/providers/google-sheets-api/model/preflightHeaders.js +52 -0
  36. package/dist/adapter/sheets/providers/google-sheets-api/model/preflightHeaders.js.map +1 -0
  37. package/dist/adapter/sheets/providers/google-sheets-api/model/preflightParsing.d.ts +23 -0
  38. package/dist/adapter/sheets/providers/google-sheets-api/model/preflightParsing.d.ts.map +1 -0
  39. package/dist/adapter/sheets/providers/google-sheets-api/model/preflightParsing.js +239 -0
  40. package/dist/adapter/sheets/providers/google-sheets-api/model/preflightParsing.js.map +1 -0
  41. package/dist/adapter/sheets/providers/google-sheets-api/model/preflightRows.d.ts +53 -0
  42. package/dist/adapter/sheets/providers/google-sheets-api/model/preflightRows.d.ts.map +1 -0
  43. package/dist/adapter/sheets/providers/google-sheets-api/model/preflightRows.js +198 -0
  44. package/dist/adapter/sheets/providers/google-sheets-api/model/preflightRows.js.map +1 -0
  45. package/dist/adapter/sheets/providers/google-sheets-api/operations/anchors.d.ts +21 -0
  46. package/dist/adapter/sheets/providers/google-sheets-api/operations/anchors.d.ts.map +1 -0
  47. package/dist/adapter/sheets/providers/google-sheets-api/operations/anchors.js +57 -0
  48. package/dist/adapter/sheets/providers/google-sheets-api/operations/anchors.js.map +1 -0
  49. package/dist/adapter/sheets/providers/google-sheets-api/operations/applyEffects.d.ts +19 -0
  50. package/dist/adapter/sheets/providers/google-sheets-api/operations/applyEffects.d.ts.map +1 -0
  51. package/dist/adapter/sheets/providers/google-sheets-api/operations/applyEffects.js +188 -0
  52. package/dist/adapter/sheets/providers/google-sheets-api/operations/applyEffects.js.map +1 -0
  53. package/dist/adapter/sheets/providers/google-sheets-api/operations/fastAppend.d.ts +13 -0
  54. package/dist/adapter/sheets/providers/google-sheets-api/operations/fastAppend.d.ts.map +1 -0
  55. package/dist/adapter/sheets/providers/google-sheets-api/operations/fastAppend.js +229 -0
  56. package/dist/adapter/sheets/providers/google-sheets-api/operations/fastAppend.js.map +1 -0
  57. package/dist/adapter/sheets/providers/google-sheets-api/operations/preflightOp.d.ts +27 -0
  58. package/dist/adapter/sheets/providers/google-sheets-api/operations/preflightOp.d.ts.map +1 -0
  59. package/dist/adapter/sheets/providers/google-sheets-api/operations/preflightOp.js +54 -0
  60. package/dist/adapter/sheets/providers/google-sheets-api/operations/preflightOp.js.map +1 -0
  61. package/dist/adapter/sheets/providers/google-sheets-api/operations/provisioning.d.ts +28 -0
  62. package/dist/adapter/sheets/providers/google-sheets-api/operations/provisioning.d.ts.map +1 -0
  63. package/dist/adapter/sheets/providers/google-sheets-api/operations/provisioning.js +256 -0
  64. package/dist/adapter/sheets/providers/google-sheets-api/operations/provisioning.js.map +1 -0
  65. package/dist/adapter/sheets/providers/google-sheets-api/operations/readRows.d.ts +40 -0
  66. package/dist/adapter/sheets/providers/google-sheets-api/operations/readRows.d.ts.map +1 -0
  67. package/dist/adapter/sheets/providers/google-sheets-api/operations/readRows.js +186 -0
  68. package/dist/adapter/sheets/providers/google-sheets-api/operations/readRows.js.map +1 -0
  69. package/dist/adapter/sheets/providers/google-sheets-api/operations/shared.d.ts +57 -0
  70. package/dist/adapter/sheets/providers/google-sheets-api/operations/shared.d.ts.map +1 -0
  71. package/dist/adapter/sheets/providers/google-sheets-api/operations/shared.js +130 -0
  72. package/dist/adapter/sheets/providers/google-sheets-api/operations/shared.js.map +1 -0
  73. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/preflight.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/preflight.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EACL,kCAAkC,EAClC,oCAAoC,EACpC,8CAA8C,EAC9C,kCAAkC,EAClC,+BAA+B,EAC/B,oCAAoC,EACpC,gDAAgD,GACjD,MAAM,sBAAsB,CAAC;AAa9B,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,GACb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,YAAY,EACZ,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,qBAAqB,EACrB,eAAe,GAChB,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Preflight context types and context assembly for the bulk preflight.
3
+ *
4
+ * A preflight is a sheet enumeration call plus one bounded data read of the
5
+ * target tab and receipt tab; the composite functions here keep that
6
+ * two-call sequence for non-pacing callers. Every untrusted SDK payload is
7
+ * validated with runtime guards (in `preflightParsing`) and promoted into
8
+ * the typed context the planner can mutate.
9
+ */
10
+ import type { NormalizedCell } from "../../../../../domain/index.js";
11
+ import type { Presence } from "../../../../../shared/state/index.js";
12
+ import type { GoogleSheetsApiTransport } from "../transport/googleSheetsApiTransport.js";
13
+ /** One validated merged-cell region (a GridRange) from a sheet payload. */
14
+ export interface ParsedMergedCell {
15
+ readonly sheetId?: number;
16
+ readonly startRowIndex: number;
17
+ readonly endRowIndex: number;
18
+ readonly startColumnIndex: number;
19
+ readonly endColumnIndex: number;
20
+ }
21
+ /** One validated receipt row read from the hidden receipt tab. */
22
+ export interface PreflightReceipt {
23
+ readonly effectId: string;
24
+ readonly payloadHash: string;
25
+ readonly status: "applied";
26
+ readonly visibleHash: string;
27
+ readonly visibleRevision: number;
28
+ }
29
+ /** One nonblank target row normalized from the grid read. */
30
+ export interface PreflightRow {
31
+ readonly rowNumber: number;
32
+ readonly physicalAnchor: Presence<string>;
33
+ readonly cells: Readonly<Record<string, NormalizedCell>>;
34
+ readonly identity: Presence<string>;
35
+ }
36
+ /** Typed preflight context consumed by the planner and batch builder. */
37
+ export interface PreflightContext {
38
+ readonly sheetId: number;
39
+ readonly title: string;
40
+ /** 1-based absolute start column of the registered range in the grid. */
41
+ readonly startColumn: number;
42
+ readonly headers: readonly string[];
43
+ /** header -> 0-based column offset inside the registered range. */
44
+ readonly positions: ReadonlyMap<string, number>;
45
+ readonly rows: readonly PreflightRow[];
46
+ readonly byAnchor: ReadonlyMap<string, PreflightRow>;
47
+ readonly byIdentity: ReadonlyMap<string, PreflightRow>;
48
+ /** First free row (1-based) for appends: max(lastContentRow + 1, 2). */
49
+ readonly nextAppendRow: number;
50
+ readonly identityField: Presence<string>;
51
+ readonly checkboxHeaders: readonly string[];
52
+ readonly receiptSheetId: Presence<number>;
53
+ /** Receipt tab last content row; 0 when the tab is absent. */
54
+ readonly receiptLastRow: number;
55
+ readonly receipts: ReadonlyMap<string, PreflightReceipt>;
56
+ /** Sheet ids of every tab seen by the enumeration (id allocator input). */
57
+ readonly existingSheetIds: readonly number[];
58
+ }
59
+ /** Route-level inputs every preflight needs from the registered definition. */
60
+ export interface PreflightRouteOptions {
61
+ readonly spreadsheetId: string;
62
+ readonly sheetName: string;
63
+ readonly registeredRange: string;
64
+ readonly headers: readonly string[];
65
+ readonly identityField: Presence<string>;
66
+ readonly checkboxHeaders: readonly string[];
67
+ }
68
+ export interface ParsedSheet {
69
+ readonly sheetId: number;
70
+ readonly title: string;
71
+ readonly hidden: boolean;
72
+ /** Grid dimensions when the requesting mask included gridProperties. */
73
+ readonly gridProperties?: {
74
+ readonly rowCount: number;
75
+ readonly columnCount: number;
76
+ };
77
+ /** Merged ranges when the requesting mask included sheets.merges. */
78
+ readonly merges?: readonly ParsedMergedCell[];
79
+ }
80
+ export interface ParsedGridData {
81
+ readonly startRow: number;
82
+ readonly startColumn: number;
83
+ readonly rowData: readonly ParsedRowData[];
84
+ readonly rowMetadata: readonly ParsedRowMetadata[];
85
+ }
86
+ export interface ParsedRowData {
87
+ readonly values: readonly unknown[];
88
+ }
89
+ export interface ParsedRowMetadata {
90
+ readonly developerMetadata: readonly {
91
+ readonly metadataKey: string;
92
+ readonly metadataValue: string;
93
+ }[];
94
+ }
95
+ /** One validated REST `CellFormat.numberFormat` object from an SDK cell. */
96
+ export interface ParsedCellNumberFormat {
97
+ readonly type: string;
98
+ readonly pattern: string | undefined;
99
+ }
100
+ /** One validated `spreadsheets.get` body: sheet entries plus grid data. */
101
+ export interface ParsedSpreadsheetDocument {
102
+ readonly sheets: readonly ParsedSheet[];
103
+ readonly grids: ReadonlyMap<number, ParsedGridData>;
104
+ }
105
+ /**
106
+ * Enumerates every tab of the spreadsheet (no ranges, so hidden tabs are
107
+ * returned). The enumeration supplies the sheetIds the data call's grid
108
+ * data is keyed by and the receipt tab's presence.
109
+ */
110
+ export declare function enumerateSheetProperties(transport: GoogleSheetsApiTransport, spreadsheetId: string, timeoutMs?: number): Promise<readonly ParsedSheet[]>;
111
+ /** Reads and validates the target and receipt tabs for one route. */
112
+ export declare function readPreflightContext(transport: GoogleSheetsApiTransport, route: PreflightRouteOptions, timeoutMs?: number): Promise<PreflightContext>;
113
+ /**
114
+ * Reads the bounded target/receipt grid data for one route, given the sheet
115
+ * enumeration. The target range starts at A1 and extends to the registered
116
+ * range's end column (whole-column ranges can legitimately exceed ZZ),
117
+ * keeping the 1,048,576-row limit of the grid.
118
+ */
119
+ export declare function readPreflightData(transport: GoogleSheetsApiTransport, route: PreflightRouteOptions, sheets: readonly ParsedSheet[], timeoutMs?: number): Promise<PreflightContext>;
120
+ /** Parses and validates the hidden receipt tab grid. */
121
+ export declare function readReceipts(data: ParsedGridData): {
122
+ readonly receipts: ReadonlyMap<string, PreflightReceipt>;
123
+ readonly lastRow: number;
124
+ };
125
+ //# sourceMappingURL=preflightContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preflightContext.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/preflightContext.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,161 @@
1
+ /**
2
+ * Preflight context types and context assembly for the bulk preflight.
3
+ *
4
+ * A preflight is a sheet enumeration call plus one bounded data read of the
5
+ * target tab and receipt tab; the composite functions here keep that
6
+ * two-call sequence for non-pacing callers. Every untrusted SDK payload is
7
+ * validated with runtime guards (in `preflightParsing`) and promoted into
8
+ * the typed context the planner can mutate.
9
+ */
10
+ import { presentValue, absentValue } from "../../../../../shared/state/index.js";
11
+ import { GOOGLE_SHEETS_API_RECEIPT_HEADERS, GOOGLE_SHEETS_API_RECEIPT_SHEET_NAME, } from "../constants.js";
12
+ import { GOOGLE_SHEETS_API_ENUMERATION_FIELDS, GOOGLE_SHEETS_API_PREFLIGHT_FIELDS, } from "./preflightFields.js";
13
+ import { invalidProviderState } from "../errors.js";
14
+ import { columnLetters, parseRegisteredRange, quoteA1SheetName, } from "./valueNormalization.js";
15
+ import { apiNumberValue, apiStringValue, parseSheetPropertiesDocument, parseSpreadsheetDocument, } from "./preflightParsing.js";
16
+ import { findSheetByTitle, gridRowCells, indexRows, readRows, requireGridDataForSheet, requireSheetByTitle, } from "./preflightRows.js";
17
+ import { readRegisteredHeaders, validateCheckboxHeaders, } from "./preflightHeaders.js";
18
+ /**
19
+ * Enumerates every tab of the spreadsheet (no ranges, so hidden tabs are
20
+ * returned). The enumeration supplies the sheetIds the data call's grid
21
+ * data is keyed by and the receipt tab's presence.
22
+ */
23
+ export async function enumerateSheetProperties(transport, spreadsheetId, timeoutMs) {
24
+ const enumerationRequest = {
25
+ spreadsheetId,
26
+ ranges: [],
27
+ fields: GOOGLE_SHEETS_API_ENUMERATION_FIELDS,
28
+ ...(timeoutMs === undefined ? {} : { timeoutMs }),
29
+ };
30
+ const enumerationRaw = await transport.getSpreadsheet(enumerationRequest);
31
+ return parseSheetPropertiesDocument(enumerationRaw, "sheet enumeration");
32
+ }
33
+ /** Reads and validates the target and receipt tabs for one route. */
34
+ export async function readPreflightContext(transport, route, timeoutMs) {
35
+ const sheets = await enumerateSheetProperties(transport, route.spreadsheetId, timeoutMs);
36
+ return readPreflightData(transport, route, sheets, timeoutMs);
37
+ }
38
+ /**
39
+ * Reads the bounded target/receipt grid data for one route, given the sheet
40
+ * enumeration. The target range starts at A1 and extends to the registered
41
+ * range's end column (whole-column ranges can legitimately exceed ZZ),
42
+ * keeping the 1,048,576-row limit of the grid.
43
+ */
44
+ export async function readPreflightData(transport, route, sheets, timeoutMs) {
45
+ const targetSheet = requireSheetByTitle(sheets, route.sheetName);
46
+ const receiptSheet = findSheetByTitle(sheets, GOOGLE_SHEETS_API_RECEIPT_SHEET_NAME);
47
+ // Call 2: the bounded data read, covering exactly the tabs that exist.
48
+ // The target range starts at A1 and extends to the registered range's end
49
+ // column (whole-column ranges can legitimately exceed ZZ), keeping the
50
+ // 1,048,576-row limit of the grid. The receipt range is requested only
51
+ // when the enumeration found the receipt tab.
52
+ const parsedRange = parseRegisteredRange(route.registeredRange);
53
+ const endColumnLetters = columnLetters(parsedRange.startColumn + parsedRange.columnCount - 1);
54
+ const ranges = [
55
+ `${quoteA1SheetName(route.sheetName)}!A1:${endColumnLetters}1048576`,
56
+ ];
57
+ if (receiptSheet !== undefined) {
58
+ ranges.push(`${quoteA1SheetName(GOOGLE_SHEETS_API_RECEIPT_SHEET_NAME)}!A1:F1048576`);
59
+ }
60
+ const dataRequest = {
61
+ spreadsheetId: route.spreadsheetId,
62
+ ranges,
63
+ fields: GOOGLE_SHEETS_API_PREFLIGHT_FIELDS,
64
+ ...(timeoutMs === undefined ? {} : { timeoutMs }),
65
+ };
66
+ const dataRaw = await transport.getSpreadsheet(dataRequest);
67
+ const dataDocument = parseSpreadsheetDocument(dataRaw, "grid data");
68
+ const targetData = requireGridDataForSheet(dataDocument, targetSheet.sheetId);
69
+ const headers = readRegisteredHeaders(targetData, parsedRange, route.headers);
70
+ const positions = new Map();
71
+ headers.forEach((header, index) => positions.set(header, index));
72
+ const identityField = route.identityField;
73
+ const rows = readRows(targetData, parsedRange, headers, identityField);
74
+ const { byAnchor, byIdentity, nextAppendRow } = indexRows(rows, targetData);
75
+ const checkboxHeaders = validateCheckboxHeaders(route.checkboxHeaders, headers);
76
+ let receipts = new Map();
77
+ let receiptLastRow = 0;
78
+ let receiptSheetId = absentValue();
79
+ if (receiptSheet !== undefined) {
80
+ receiptSheetId = presentValue(receiptSheet.sheetId);
81
+ const receiptData = requireGridDataForSheet(dataDocument, receiptSheet.sheetId);
82
+ const parsedReceipts = readReceipts(receiptData);
83
+ receipts = parsedReceipts.receipts;
84
+ receiptLastRow = parsedReceipts.lastRow;
85
+ }
86
+ return {
87
+ sheetId: targetSheet.sheetId,
88
+ title: targetSheet.title,
89
+ startColumn: parsedRange.startColumn,
90
+ headers,
91
+ positions,
92
+ rows,
93
+ byAnchor,
94
+ byIdentity,
95
+ nextAppendRow,
96
+ identityField,
97
+ checkboxHeaders,
98
+ receiptSheetId,
99
+ receiptLastRow,
100
+ receipts,
101
+ existingSheetIds: sheets.map((sheet) => sheet.sheetId),
102
+ };
103
+ }
104
+ // ---------------------------------------------------------------------------
105
+ // Receipt parsing
106
+ // ---------------------------------------------------------------------------
107
+ /** Parses and validates the hidden receipt tab grid. */
108
+ export function readReceipts(data) {
109
+ const headerValues = gridRowCells(data, 1, 1, GOOGLE_SHEETS_API_RECEIPT_HEADERS.length);
110
+ const actualHeaders = headerValues.map((value) => {
111
+ if (value === null)
112
+ return "";
113
+ const raw = apiStringValue(value);
114
+ return typeof raw === "string" ? raw : "";
115
+ });
116
+ if (actualHeaders.length !== GOOGLE_SHEETS_API_RECEIPT_HEADERS.length ||
117
+ actualHeaders.some((header, index) => header !== GOOGLE_SHEETS_API_RECEIPT_HEADERS[index])) {
118
+ invalidProviderState("receipt sheet headers do not match");
119
+ }
120
+ const receipts = new Map();
121
+ let lastRow = Math.max(1, data.startRow + data.rowData.length);
122
+ for (let rowIndex = 1; rowIndex < data.rowData.length; rowIndex += 1) {
123
+ const rawRow = data.rowData[rowIndex];
124
+ if (rawRow === undefined)
125
+ continue;
126
+ const values = gridRowCells(data, data.startRow + 1 + rowIndex, 1, GOOGLE_SHEETS_API_RECEIPT_HEADERS.length);
127
+ const first = stringCellValue(values[0]);
128
+ if (first === null)
129
+ continue;
130
+ const effectId = first;
131
+ const payloadHash = stringCellValue(values[1]);
132
+ const status = stringCellValue(values[2]);
133
+ const visibleHash = stringCellValue(values[3]);
134
+ const visibleRevision = numberCellValue(values[4]);
135
+ if (payloadHash === null || visibleHash === null || status !== "applied" ||
136
+ visibleRevision === null || !Number.isSafeInteger(visibleRevision) ||
137
+ visibleRevision < 0) {
138
+ invalidProviderState(`receipt sheet contains an invalid receipt for effectId: ${effectId}`);
139
+ }
140
+ if (receipts.has(effectId)) {
141
+ invalidProviderState(`receipt sheet contains duplicate effectId: ${effectId}`);
142
+ }
143
+ receipts.set(effectId, {
144
+ effectId,
145
+ payloadHash,
146
+ status,
147
+ visibleHash,
148
+ visibleRevision,
149
+ });
150
+ }
151
+ return { receipts, lastRow };
152
+ }
153
+ function stringCellValue(value) {
154
+ const raw = apiStringValue(value);
155
+ return raw === undefined ? null : raw;
156
+ }
157
+ function numberCellValue(value) {
158
+ const raw = apiNumberValue(value);
159
+ return raw === undefined ? null : raw;
160
+ }
161
+ //# sourceMappingURL=preflightContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preflightContext.js","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/preflightContext.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * `spreadsheets.get` field masks used by the Google Sheets API provider.
3
+ *
4
+ * Each mask selects exactly the response fields one read path needs; keeping
5
+ * the masks narrow bounds response size and parse cost. GridData has no
6
+ * `sheetId` of its own; the parent sheet's `sheets.properties.sheetId`
7
+ * identifies the grid, and developer metadata uses the REST
8
+ * `metadataKey`/`metadataValue` field names.
9
+ */
10
+ /**
11
+ * Preflight field mask: sheet identity plus grid values, formats, anchors.
12
+ */
13
+ export declare const GOOGLE_SHEETS_API_PREFLIGHT_FIELDS: string;
14
+ /**
15
+ * Enumeration field mask: sheet identity only.
16
+ *
17
+ * The enumeration call requests no ranges because a ranged
18
+ * `spreadsheets.get` response only carries sheets intersecting the requested
19
+ * ranges (hidden tabs included only when no ranges are given); the receipt
20
+ * tab can therefore never be discovered from the ranged data call alone.
21
+ */
22
+ export declare const GOOGLE_SHEETS_API_ENUMERATION_FIELDS = "sheets.properties(sheetId,title,hidden)";
23
+ /**
24
+ * Provisioning enumeration mask: sheet identity plus grid dimensions.
25
+ *
26
+ * The grid dimensions let provisioning request the full used grid of an
27
+ * existing tab (up to the sheet's actual last column) so "truly empty" is
28
+ * judged against the whole tab, not just the registered range.
29
+ */
30
+ export declare const GOOGLE_SHEETS_API_PROVISION_ENUMERATION_FIELDS = "sheets.properties(sheetId,title,hidden,gridProperties(rowCount,columnCount))";
31
+ /**
32
+ * Provisioning data mask: values plus number formats for header checks.
33
+ *
34
+ * Anchors, merged ranges, and computed values are not needed to decide
35
+ * whether an existing tab is empty or whether its header row matches.
36
+ */
37
+ export declare const GOOGLE_SHEETS_API_PROVISION_FIELDS: string;
38
+ /**
39
+ * Values-only table-read mask (getValues semantics).
40
+ *
41
+ * Includes computed values, formatted error strings, number formats, and
42
+ * data-validation rules so formula cells resolve to their computed value,
43
+ * error cells to their display string, and checkbox columns to their
44
+ * blank/false rule.
45
+ */
46
+ export declare const GOOGLE_SHEETS_API_VALUES_FIELDS: string;
47
+ /**
48
+ * Full observation mask: values, computed values, merged ranges, anchors.
49
+ *
50
+ * This is the metadata-preserving read used by snapshots and anchor
51
+ * assignment. Merged regions live on the SHEET object as `sheets.merges`
52
+ * (GridRange entries), NOT on GridData, and `rowMetadata.developerMetadata`
53
+ * returns the row anchor evidence under the REST `metadataKey`/
54
+ * `metadataValue` names.
55
+ */
56
+ export declare const GOOGLE_SHEETS_API_OBSERVATION_FIELDS: string;
57
+ /**
58
+ * Lightweight observation mask: values and computed values only.
59
+ *
60
+ * Used by user_input polling reads, which never consult merged regions (the
61
+ * lightweight branch has no merged map) or data-validation rules (the
62
+ * checkbox-false blank rule comes from the checkboxHeaders config, not from
63
+ * dataValidation). Keeping `sheets.merges` and `dataValidation` out of the
64
+ * request makes the polling read cheaper.
65
+ */
66
+ export declare const GOOGLE_SHEETS_API_LIGHTWEIGHT_OBSERVATION_FIELDS: string;
67
+ //# sourceMappingURL=preflightFields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preflightFields.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/preflightFields.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;GAEG;AACH,eAAO,MAAM,kCAAkC,QAKrC,CAAC;AAEX;;;;;;;GAOG;AACH,eAAO,MAAM,oCAAoC,4CACN,CAAC;AAE5C;;;;;;GAMG;AACH,eAAO,MAAM,8CAA8C,iFACqB,CAAC;AAEjF;;;;;GAKG;AACH,eAAO,MAAM,kCAAkC,QAIrC,CAAC;AAEX;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B,QAKlC,CAAC;AAEX;;;;;;;;GAQG;AACH,eAAO,MAAM,oCAAoC,QAOvC,CAAC;AAEX;;;;;;;;GAQG;AACH,eAAO,MAAM,gDAAgD,QAMnD,CAAC"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * `spreadsheets.get` field masks used by the Google Sheets API provider.
3
+ *
4
+ * Each mask selects exactly the response fields one read path needs; keeping
5
+ * the masks narrow bounds response size and parse cost. GridData has no
6
+ * `sheetId` of its own; the parent sheet's `sheets.properties.sheetId`
7
+ * identifies the grid, and developer metadata uses the REST
8
+ * `metadataKey`/`metadataValue` field names.
9
+ */
10
+ /**
11
+ * Preflight field mask: sheet identity plus grid values, formats, anchors.
12
+ */
13
+ export const GOOGLE_SHEETS_API_PREFLIGHT_FIELDS = [
14
+ "sheets.properties(sheetId,title,hidden),",
15
+ "sheets.data(startRow,startColumn,",
16
+ "rowMetadata.developerMetadata(metadataId,metadataKey,metadataValue),",
17
+ "rowData.values(userEnteredValue,userEnteredFormat.numberFormat,effectiveFormat.numberFormat))",
18
+ ].join("");
19
+ /**
20
+ * Enumeration field mask: sheet identity only.
21
+ *
22
+ * The enumeration call requests no ranges because a ranged
23
+ * `spreadsheets.get` response only carries sheets intersecting the requested
24
+ * ranges (hidden tabs included only when no ranges are given); the receipt
25
+ * tab can therefore never be discovered from the ranged data call alone.
26
+ */
27
+ export const GOOGLE_SHEETS_API_ENUMERATION_FIELDS = "sheets.properties(sheetId,title,hidden)";
28
+ /**
29
+ * Provisioning enumeration mask: sheet identity plus grid dimensions.
30
+ *
31
+ * The grid dimensions let provisioning request the full used grid of an
32
+ * existing tab (up to the sheet's actual last column) so "truly empty" is
33
+ * judged against the whole tab, not just the registered range.
34
+ */
35
+ export const GOOGLE_SHEETS_API_PROVISION_ENUMERATION_FIELDS = "sheets.properties(sheetId,title,hidden,gridProperties(rowCount,columnCount))";
36
+ /**
37
+ * Provisioning data mask: values plus number formats for header checks.
38
+ *
39
+ * Anchors, merged ranges, and computed values are not needed to decide
40
+ * whether an existing tab is empty or whether its header row matches.
41
+ */
42
+ export const GOOGLE_SHEETS_API_PROVISION_FIELDS = [
43
+ "sheets.properties(sheetId,title,hidden),",
44
+ "sheets.data(startRow,startColumn,",
45
+ "rowData.values(userEnteredValue,userEnteredFormat.numberFormat,effectiveFormat.numberFormat))",
46
+ ].join("");
47
+ /**
48
+ * Values-only table-read mask (getValues semantics).
49
+ *
50
+ * Includes computed values, formatted error strings, number formats, and
51
+ * data-validation rules so formula cells resolve to their computed value,
52
+ * error cells to their display string, and checkbox columns to their
53
+ * blank/false rule.
54
+ */
55
+ export const GOOGLE_SHEETS_API_VALUES_FIELDS = [
56
+ "sheets.properties(sheetId,title,hidden),",
57
+ "sheets.data(startRow,startColumn,",
58
+ "rowData.values(userEnteredValue,effectiveValue,formattedValue,",
59
+ "userEnteredFormat.numberFormat,effectiveFormat.numberFormat,dataValidation))",
60
+ ].join("");
61
+ /**
62
+ * Full observation mask: values, computed values, merged ranges, anchors.
63
+ *
64
+ * This is the metadata-preserving read used by snapshots and anchor
65
+ * assignment. Merged regions live on the SHEET object as `sheets.merges`
66
+ * (GridRange entries), NOT on GridData, and `rowMetadata.developerMetadata`
67
+ * returns the row anchor evidence under the REST `metadataKey`/
68
+ * `metadataValue` names.
69
+ */
70
+ export const GOOGLE_SHEETS_API_OBSERVATION_FIELDS = [
71
+ "sheets.properties(sheetId,title,hidden),",
72
+ "sheets.merges,",
73
+ "sheets.data(startRow,startColumn,",
74
+ "rowMetadata.developerMetadata(metadataId,metadataKey,metadataValue),",
75
+ "rowData.values(userEnteredValue,effectiveValue,formattedValue,",
76
+ "userEnteredFormat.numberFormat,effectiveFormat.numberFormat,dataValidation))",
77
+ ].join("");
78
+ /**
79
+ * Lightweight observation mask: values and computed values only.
80
+ *
81
+ * Used by user_input polling reads, which never consult merged regions (the
82
+ * lightweight branch has no merged map) or data-validation rules (the
83
+ * checkbox-false blank rule comes from the checkboxHeaders config, not from
84
+ * dataValidation). Keeping `sheets.merges` and `dataValidation` out of the
85
+ * request makes the polling read cheaper.
86
+ */
87
+ export const GOOGLE_SHEETS_API_LIGHTWEIGHT_OBSERVATION_FIELDS = [
88
+ "sheets.properties(sheetId,title,hidden),",
89
+ "sheets.data(startRow,startColumn,",
90
+ "rowMetadata.developerMetadata(metadataId,metadataKey,metadataValue),",
91
+ "rowData.values(userEnteredValue,effectiveValue,formattedValue,",
92
+ "userEnteredFormat.numberFormat,effectiveFormat.numberFormat))",
93
+ ].join("");
94
+ //# sourceMappingURL=preflightFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preflightFields.js","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/preflightFields.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG;IAChD,0CAA0C;IAC1C,mCAAmC;IACnC,sEAAsE;IACtE,+FAA+F;CAChG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEX;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAC/C,yCAAyC,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,8CAA8C,GACzD,8EAA8E,CAAC;AAEjF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG;IAChD,0CAA0C;IAC1C,mCAAmC;IACnC,+FAA+F;CAChG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEX;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,0CAA0C;IAC1C,mCAAmC;IACnC,gEAAgE;IAChE,8EAA8E;CAC/E,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEX;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG;IAClD,0CAA0C;IAC1C,gBAAgB;IAChB,mCAAmC;IACnC,sEAAsE;IACtE,gEAAgE;IAChE,8EAA8E;CAC/E,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEX;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gDAAgD,GAAG;IAC9D,0CAA0C;IAC1C,mCAAmC;IACnC,sEAAsE;IACtE,gEAAgE;IAChE,+DAA+D;CAChE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Registered header validation for the bulk preflight.
3
+ *
4
+ * The header row of the target tab must match the registered definition and
5
+ * layout exactly: every cell a non-empty string, no duplicates, exact order
6
+ * and width. Checkbox headers must be registered headers.
7
+ */
8
+ import type { ParsedGridData } from "./preflightContext.js";
9
+ /**
10
+ * Validates the header row against the registered definition and layout:
11
+ * every cell must be a non-empty string, duplicates fail closed, and the
12
+ * row must match the expected headers exactly.
13
+ */
14
+ export declare function readRegisteredHeaders(data: ParsedGridData, range: {
15
+ readonly startColumn: number;
16
+ readonly columnCount: number;
17
+ }, expectedHeaders: readonly string[]): readonly string[];
18
+ /** Returns the header cells of one grid as raw API values (no validation). */
19
+ export declare function gridHeaderCells(data: ParsedGridData, range: {
20
+ readonly startColumn: number;
21
+ readonly columnCount: number;
22
+ }): readonly unknown[];
23
+ export declare function validateCheckboxHeaders(checkboxHeaders: readonly string[] | undefined, headers: readonly string[]): readonly string[];
24
+ //# sourceMappingURL=preflightHeaders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preflightHeaders.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/preflightHeaders.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE;IAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,EACrE,eAAe,EAAE,SAAS,MAAM,EAAE,GACjC,SAAS,MAAM,EAAE,CAsBnB;AAED,8EAA8E;AAC9E,wBAAgB,eAAe,CAC7B,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE;IAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACpE,SAAS,OAAO,EAAE,CAEpB;AAED,wBAAgB,uBAAuB,CACrC,eAAe,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,EAC9C,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB,SAAS,MAAM,EAAE,CASnB"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Registered header validation for the bulk preflight.
3
+ *
4
+ * The header row of the target tab must match the registered definition and
5
+ * layout exactly: every cell a non-empty string, no duplicates, exact order
6
+ * and width. Checkbox headers must be registered headers.
7
+ */
8
+ import { invalidProviderState } from "../errors.js";
9
+ import { apiStringValue } from "./preflightParsing.js";
10
+ import { gridRowCells } from "./preflightRows.js";
11
+ /**
12
+ * Validates the header row against the registered definition and layout:
13
+ * every cell must be a non-empty string, duplicates fail closed, and the
14
+ * row must match the expected headers exactly.
15
+ */
16
+ export function readRegisteredHeaders(data, range, expectedHeaders) {
17
+ const headerValues = gridRowCells(data, 1, range.startColumn, range.columnCount);
18
+ const actual = headerValues.map((value, index) => {
19
+ if (value === null) {
20
+ invalidProviderState(`registered header is missing at column ${index + 1}`);
21
+ }
22
+ const raw = apiStringValue(value);
23
+ if (typeof raw !== "string" || raw.trim() === "") {
24
+ invalidProviderState(`registered header is invalid at column ${index + 1}`);
25
+ }
26
+ return raw;
27
+ });
28
+ if (new Set(actual).size !== actual.length) {
29
+ invalidProviderState("registered headers contain a duplicate");
30
+ }
31
+ if (actual.length !== expectedHeaders.length ||
32
+ actual.some((header, index) => header !== expectedHeaders[index])) {
33
+ invalidProviderState("registered headers do not match the projected schema");
34
+ }
35
+ return actual;
36
+ }
37
+ /** Returns the header cells of one grid as raw API values (no validation). */
38
+ export function gridHeaderCells(data, range) {
39
+ return gridRowCells(data, 1, range.startColumn, range.columnCount);
40
+ }
41
+ export function validateCheckboxHeaders(checkboxHeaders, headers) {
42
+ if (checkboxHeaders === undefined || checkboxHeaders.length === 0)
43
+ return [];
44
+ const headerSet = new Set(headers);
45
+ for (const header of checkboxHeaders) {
46
+ if (!headerSet.has(header)) {
47
+ invalidProviderState(`checkbox header is not registered: ${header}`);
48
+ }
49
+ }
50
+ return [...checkboxHeaders];
51
+ }
52
+ //# sourceMappingURL=preflightHeaders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preflightHeaders.js","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/preflightHeaders.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAoB,EACpB,KAAqE,EACrE,eAAkC;IAElC,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IACjF,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC/C,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,oBAAoB,CAAC,0CAA0C,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC;QACD,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACjD,oBAAoB,CAAC,0CAA0C,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;IACH,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;QAC3C,oBAAoB,CAAC,wCAAwC,CAAC,CAAC;IACjE,CAAC;IACD,IACE,MAAM,CAAC,MAAM,KAAK,eAAe,CAAC,MAAM;QACxC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,KAAK,eAAe,CAAC,KAAK,CAAC,CAAC,EACjE,CAAC;QACD,oBAAoB,CAAC,sDAAsD,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,eAAe,CAC7B,IAAoB,EACpB,KAAqE;IAErE,OAAO,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,eAA8C,EAC9C,OAA0B;IAE1B,IAAI,eAAe,KAAK,SAAS,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7E,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IACnC,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,oBAAoB,CAAC,sCAAsC,MAAM,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,eAAe,CAAC,CAAC;AAC9B,CAAC"}