hikoutei 0.5.3 → 0.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapter/sheets/providers/google-sheets-api/constants.d.ts +26 -7
- package/dist/adapter/sheets/providers/google-sheets-api/constants.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/constants.js +26 -7
- package/dist/adapter/sheets/providers/google-sheets-api/constants.js.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/model/batchBuilder.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/model/batchBuilder.js +19 -13
- package/dist/adapter/sheets/providers/google-sheets-api/model/batchBuilder.js.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/model/observation.d.ts +15 -8
- package/dist/adapter/sheets/providers/google-sheets-api/model/observation.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/model/observation.js +40 -14
- package/dist/adapter/sheets/providers/google-sheets-api/model/observation.js.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/model/planner.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/model/planner.js +5 -1
- package/dist/adapter/sheets/providers/google-sheets-api/model/planner.js.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/model/postcondition.js +3 -1
- package/dist/adapter/sheets/providers/google-sheets-api/model/postcondition.js.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/model/preflight.d.ts +9 -6
- package/dist/adapter/sheets/providers/google-sheets-api/model/preflight.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/model/preflight.js +8 -5
- package/dist/adapter/sheets/providers/google-sheets-api/model/preflight.js.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/model/preflightContext.d.ts +7 -7
- package/dist/adapter/sheets/providers/google-sheets-api/model/preflightContext.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/model/preflightContext.js +10 -5
- package/dist/adapter/sheets/providers/google-sheets-api/model/preflightContext.js.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/model/preflightFields.d.ts +7 -7
- package/dist/adapter/sheets/providers/google-sheets-api/model/preflightFields.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/model/preflightFields.js +7 -10
- package/dist/adapter/sheets/providers/google-sheets-api/model/preflightFields.js.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/model/preflightHeaders.d.ts +12 -3
- package/dist/adapter/sheets/providers/google-sheets-api/model/preflightHeaders.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/model/preflightHeaders.js +41 -10
- package/dist/adapter/sheets/providers/google-sheets-api/model/preflightHeaders.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 +1 -39
- package/dist/adapter/sheets/providers/google-sheets-api/model/preflightParsing.js.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/model/preflightRows.d.ts +26 -11
- package/dist/adapter/sheets/providers/google-sheets-api/model/preflightRows.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/model/preflightRows.js +77 -31
- package/dist/adapter/sheets/providers/google-sheets-api/model/preflightRows.js.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/model/tableRead.d.ts +5 -2
- package/dist/adapter/sheets/providers/google-sheets-api/model/tableRead.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/model/tableRead.js +9 -4
- package/dist/adapter/sheets/providers/google-sheets-api/model/tableRead.js.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/operations/anchors.d.ts +12 -9
- package/dist/adapter/sheets/providers/google-sheets-api/operations/anchors.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/operations/anchors.js +23 -15
- package/dist/adapter/sheets/providers/google-sheets-api/operations/anchors.js.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/operations/preflightOp.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/operations/preflightOp.js +3 -0
- package/dist/adapter/sheets/providers/google-sheets-api/operations/preflightOp.js.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/operations/provisioning.d.ts +6 -4
- package/dist/adapter/sheets/providers/google-sheets-api/operations/provisioning.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/operations/provisioning.js +61 -19
- package/dist/adapter/sheets/providers/google-sheets-api/operations/provisioning.js.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/operations/readRows.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/operations/readRows.js +13 -6
- package/dist/adapter/sheets/providers/google-sheets-api/operations/readRows.js.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.d.ts +0 -7
- 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 +0 -21
- package/dist/adapter/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.js.map +1 -1
- package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.d.ts.map +1 -1
- package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.js +2 -1
- package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.js.map +1 -1
- package/dist/application/sync/service/syncAutoStart.d.ts +4 -3
- package/dist/application/sync/service/syncAutoStart.d.ts.map +1 -1
- package/dist/application/sync/service/syncAutoStart.js +6 -4
- package/dist/application/sync/service/syncAutoStart.js.map +1 -1
- package/package.json +1 -1
|
@@ -4,11 +4,14 @@
|
|
|
4
4
|
*
|
|
5
5
|
* The provider first enumerates every tab (no ranges, so hidden sheets are
|
|
6
6
|
* returned), then reads the target grid (values, date formats, row-level
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
7
|
+
* anchors) and the hidden receipt tab through the narrow transport. Every
|
|
8
|
+
* untrusted SDK payload is validated with runtime guards and promoted into
|
|
9
|
+
* a typed context the planner can mutate. Any drift — header changes,
|
|
10
|
+
* duplicate identities, malformed receipts, invalid cells — fails closed
|
|
11
|
+
* before a single mutation request is built. Duplicated row anchors do not
|
|
12
|
+
* fail the preflight: the anchor index keeps the first row per value and
|
|
13
|
+
* duplicated rows fall back to identity lookup (the duplicate stays
|
|
14
|
+
* reported as observation evidence).
|
|
12
15
|
*
|
|
13
16
|
* The enumeration and the data read are separate functions so the provider
|
|
14
17
|
* can pace and report each transport request individually; the composite
|
|
@@ -27,7 +30,7 @@
|
|
|
27
30
|
* sheet/grid lookup) are intentionally not re-exported here.
|
|
28
31
|
*/
|
|
29
32
|
export { GOOGLE_SHEETS_API_PREFLIGHT_FIELDS, GOOGLE_SHEETS_API_ENUMERATION_FIELDS, GOOGLE_SHEETS_API_PROVISION_ENUMERATION_FIELDS, GOOGLE_SHEETS_API_PROVISION_FIELDS, GOOGLE_SHEETS_API_VALUES_FIELDS, GOOGLE_SHEETS_API_OBSERVATION_FIELDS, GOOGLE_SHEETS_API_LIGHTWEIGHT_OBSERVATION_FIELDS, } from "./preflightFields.js";
|
|
30
|
-
export type { ParsedMergedCell, PreflightReceipt, PreflightRow, PreflightContext, PreflightRouteOptions, ParsedSheet, ParsedGridData, ParsedRowData,
|
|
33
|
+
export type { ParsedMergedCell, PreflightReceipt, PreflightRow, PreflightContext, PreflightRouteOptions, ParsedSheet, ParsedGridData, ParsedRowData, ParsedCellNumberFormat, } from "./preflightContext.js";
|
|
31
34
|
export { enumerateSheetProperties, readPreflightContext, readPreflightData, readReceipts, } from "./preflightContext.js";
|
|
32
35
|
export { parseSpreadsheetDocument, parseSheetPropertiesDocument, } from "./preflightParsing.js";
|
|
33
36
|
export { requireGridDataByTitle, readAnchorIndex, gridRowCells, apiCellNumberFormat, } from "./preflightRows.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preflight.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/preflight.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"preflight.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/preflight.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EACL,kCAAkC,EAClC,oCAAoC,EACpC,8CAA8C,EAC9C,kCAAkC,EAClC,+BAA+B,EAC/B,oCAAoC,EACpC,gDAAgD,GACjD,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,WAAW,EACX,cAAc,EACd,aAAa,EACb,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAC/B,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"}
|
|
@@ -4,11 +4,14 @@
|
|
|
4
4
|
*
|
|
5
5
|
* The provider first enumerates every tab (no ranges, so hidden sheets are
|
|
6
6
|
* returned), then reads the target grid (values, date formats, row-level
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
7
|
+
* anchors) and the hidden receipt tab through the narrow transport. Every
|
|
8
|
+
* untrusted SDK payload is validated with runtime guards and promoted into
|
|
9
|
+
* a typed context the planner can mutate. Any drift — header changes,
|
|
10
|
+
* duplicate identities, malformed receipts, invalid cells — fails closed
|
|
11
|
+
* before a single mutation request is built. Duplicated row anchors do not
|
|
12
|
+
* fail the preflight: the anchor index keeps the first row per value and
|
|
13
|
+
* duplicated rows fall back to identity lookup (the duplicate stays
|
|
14
|
+
* reported as observation evidence).
|
|
12
15
|
*
|
|
13
16
|
* The enumeration and the data read are separate functions so the provider
|
|
14
17
|
* can pace and report each transport request individually; the composite
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/preflight.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/preflight.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EACL,kCAAkC,EAClC,oCAAoC,EACpC,8CAA8C,EAC9C,kCAAkC,EAClC,+BAA+B,EAC/B,oCAAoC,EACpC,gDAAgD,GACjD,MAAM,sBAAsB,CAAC;AAY9B,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"}
|
|
@@ -49,6 +49,11 @@ export interface PreflightContext {
|
|
|
49
49
|
readonly nextAppendRow: number;
|
|
50
50
|
readonly identityField: Presence<string>;
|
|
51
51
|
readonly checkboxHeaders: readonly string[];
|
|
52
|
+
/**
|
|
53
|
+
* 1-based absolute column of the User_Input system row-id column; undefined
|
|
54
|
+
* for projections without one (system_state, sync_conflicts).
|
|
55
|
+
*/
|
|
56
|
+
readonly anchorColumn: number | undefined;
|
|
52
57
|
readonly receiptSheetId: Presence<number>;
|
|
53
58
|
/** Receipt tab last content row; 0 when the tab is absent. */
|
|
54
59
|
readonly receiptLastRow: number;
|
|
@@ -64,6 +69,8 @@ export interface PreflightRouteOptions {
|
|
|
64
69
|
readonly headers: readonly string[];
|
|
65
70
|
readonly identityField: Presence<string>;
|
|
66
71
|
readonly checkboxHeaders: readonly string[];
|
|
72
|
+
/** Registered projection kind; user_input routes carry the system row-id column. */
|
|
73
|
+
readonly projection: string;
|
|
67
74
|
}
|
|
68
75
|
export interface ParsedSheet {
|
|
69
76
|
readonly sheetId: number;
|
|
@@ -81,17 +88,10 @@ export interface ParsedGridData {
|
|
|
81
88
|
readonly startRow: number;
|
|
82
89
|
readonly startColumn: number;
|
|
83
90
|
readonly rowData: readonly ParsedRowData[];
|
|
84
|
-
readonly rowMetadata: readonly ParsedRowMetadata[];
|
|
85
91
|
}
|
|
86
92
|
export interface ParsedRowData {
|
|
87
93
|
readonly values: readonly unknown[];
|
|
88
94
|
}
|
|
89
|
-
export interface ParsedRowMetadata {
|
|
90
|
-
readonly developerMetadata: readonly {
|
|
91
|
-
readonly metadataKey: string;
|
|
92
|
-
readonly metadataValue: string;
|
|
93
|
-
}[];
|
|
94
|
-
}
|
|
95
95
|
/** One validated REST `CellFormat.numberFormat` object from an SDK cell. */
|
|
96
96
|
export interface ParsedCellNumberFormat {
|
|
97
97
|
readonly type: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preflightContext.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/preflightContext.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;
|
|
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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"}
|
|
@@ -8,12 +8,12 @@
|
|
|
8
8
|
* the typed context the planner can mutate.
|
|
9
9
|
*/
|
|
10
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";
|
|
11
|
+
import { GOOGLE_SHEETS_API_RECEIPT_HEADERS, GOOGLE_SHEETS_API_RECEIPT_SHEET_NAME, GOOGLE_SHEETS_API_ROW_ID_HEADER, } from "../constants.js";
|
|
12
12
|
import { GOOGLE_SHEETS_API_ENUMERATION_FIELDS, GOOGLE_SHEETS_API_PREFLIGHT_FIELDS, } from "./preflightFields.js";
|
|
13
13
|
import { invalidProviderState } from "../errors.js";
|
|
14
14
|
import { columnLetters, parseRegisteredRange, quoteA1SheetName, } from "./valueNormalization.js";
|
|
15
15
|
import { apiNumberValue, apiStringValue, parseSheetPropertiesDocument, parseSpreadsheetDocument, } from "./preflightParsing.js";
|
|
16
|
-
import { findSheetByTitle, gridRowCells, indexRows, readRows, requireGridDataForSheet, requireSheetByTitle, } from "./preflightRows.js";
|
|
16
|
+
import { anchorColumnFor, findSheetByTitle, gridRowCells, indexRows, readRows, requireGridDataForSheet, requireSheetByTitle, } from "./preflightRows.js";
|
|
17
17
|
import { readRegisteredHeaders, validateCheckboxHeaders, } from "./preflightHeaders.js";
|
|
18
18
|
/**
|
|
19
19
|
* Enumerates every tab of the spreadsheet (no ranges, so hidden tabs are
|
|
@@ -66,12 +66,16 @@ export async function readPreflightData(transport, route, sheets, timeoutMs) {
|
|
|
66
66
|
const dataRaw = await transport.getSpreadsheet(dataRequest);
|
|
67
67
|
const dataDocument = parseSpreadsheetDocument(dataRaw, "grid data");
|
|
68
68
|
const targetData = requireGridDataForSheet(dataDocument, targetSheet.sheetId);
|
|
69
|
-
|
|
69
|
+
// user_input tabs carry the row anchor as the LAST column cell value; the
|
|
70
|
+
// system column is validated as part of the header row (fail-closed on
|
|
71
|
+
// legacy tabs provisioned without it).
|
|
72
|
+
const anchorColumn = anchorColumnFor(route.registeredRange, route.projection);
|
|
73
|
+
const headers = readRegisteredHeaders(targetData, parsedRange, route.headers, anchorColumn === undefined ? undefined : GOOGLE_SHEETS_API_ROW_ID_HEADER);
|
|
70
74
|
const positions = new Map();
|
|
71
75
|
headers.forEach((header, index) => positions.set(header, index));
|
|
72
76
|
const identityField = route.identityField;
|
|
73
|
-
const rows = readRows(targetData, parsedRange, headers, identityField);
|
|
74
|
-
const { byAnchor, byIdentity, nextAppendRow } = indexRows(rows
|
|
77
|
+
const rows = readRows(targetData, parsedRange, headers, identityField, anchorColumn);
|
|
78
|
+
const { byAnchor, byIdentity, nextAppendRow } = indexRows(rows);
|
|
75
79
|
const checkboxHeaders = validateCheckboxHeaders(route.checkboxHeaders, headers);
|
|
76
80
|
let receipts = new Map();
|
|
77
81
|
let receiptLastRow = 0;
|
|
@@ -95,6 +99,7 @@ export async function readPreflightData(transport, route, sheets, timeoutMs) {
|
|
|
95
99
|
nextAppendRow,
|
|
96
100
|
identityField,
|
|
97
101
|
checkboxHeaders,
|
|
102
|
+
anchorColumn,
|
|
98
103
|
receiptSheetId,
|
|
99
104
|
receiptLastRow,
|
|
100
105
|
receipts,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preflightContext.js","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/preflightContext.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,EACL,iCAAiC,EACjC,oCAAoC,
|
|
1
|
+
{"version":3,"file":"preflightContext.js","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/preflightContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,11 +4,12 @@
|
|
|
4
4
|
* Each mask selects exactly the response fields one read path needs; keeping
|
|
5
5
|
* the masks narrow bounds response size and parse cost. GridData has no
|
|
6
6
|
* `sheetId` of its own; the parent sheet's `sheets.properties.sheetId`
|
|
7
|
-
* identifies the grid
|
|
8
|
-
*
|
|
7
|
+
* identifies the grid. Row anchors are no longer developer metadata: they
|
|
8
|
+
* live as cell values in the User_Input tab's last system column, so no mask
|
|
9
|
+
* requests `rowMetadata.developerMetadata` anymore.
|
|
9
10
|
*/
|
|
10
11
|
/**
|
|
11
|
-
* Preflight field mask: sheet identity plus grid values
|
|
12
|
+
* Preflight field mask: sheet identity plus grid values and formats.
|
|
12
13
|
*/
|
|
13
14
|
export declare const GOOGLE_SHEETS_API_PREFLIGHT_FIELDS: string;
|
|
14
15
|
/**
|
|
@@ -45,13 +46,12 @@ export declare const GOOGLE_SHEETS_API_PROVISION_FIELDS: string;
|
|
|
45
46
|
*/
|
|
46
47
|
export declare const GOOGLE_SHEETS_API_VALUES_FIELDS: string;
|
|
47
48
|
/**
|
|
48
|
-
* Full observation mask: values, computed values, merged ranges
|
|
49
|
+
* Full observation mask: values, computed values, merged ranges.
|
|
49
50
|
*
|
|
50
51
|
* This is the metadata-preserving read used by snapshots and anchor
|
|
51
52
|
* assignment. Merged regions live on the SHEET object as `sheets.merges`
|
|
52
|
-
* (GridRange entries), NOT on GridData
|
|
53
|
-
*
|
|
54
|
-
* `metadataValue` names.
|
|
53
|
+
* (GridRange entries), NOT on GridData. Row anchors are cell values in the
|
|
54
|
+
* User_Input tab's last column, so they arrive with `rowData.values`.
|
|
55
55
|
*/
|
|
56
56
|
export declare const GOOGLE_SHEETS_API_OBSERVATION_FIELDS: string;
|
|
57
57
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preflightFields.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/preflightFields.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"preflightFields.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/preflightFields.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;GAEG;AACH,eAAO,MAAM,kCAAkC,QAIrC,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;;;;;;;GAOG;AACH,eAAO,MAAM,oCAAoC,QAMvC,CAAC;AAEX;;;;;;;;GAQG;AACH,eAAO,MAAM,gDAAgD,QAKnD,CAAC"}
|
|
@@ -4,16 +4,16 @@
|
|
|
4
4
|
* Each mask selects exactly the response fields one read path needs; keeping
|
|
5
5
|
* the masks narrow bounds response size and parse cost. GridData has no
|
|
6
6
|
* `sheetId` of its own; the parent sheet's `sheets.properties.sheetId`
|
|
7
|
-
* identifies the grid
|
|
8
|
-
*
|
|
7
|
+
* identifies the grid. Row anchors are no longer developer metadata: they
|
|
8
|
+
* live as cell values in the User_Input tab's last system column, so no mask
|
|
9
|
+
* requests `rowMetadata.developerMetadata` anymore.
|
|
9
10
|
*/
|
|
10
11
|
/**
|
|
11
|
-
* Preflight field mask: sheet identity plus grid values
|
|
12
|
+
* Preflight field mask: sheet identity plus grid values and formats.
|
|
12
13
|
*/
|
|
13
14
|
export const GOOGLE_SHEETS_API_PREFLIGHT_FIELDS = [
|
|
14
15
|
"sheets.properties(sheetId,title,hidden),",
|
|
15
16
|
"sheets.data(startRow,startColumn,",
|
|
16
|
-
"rowMetadata.developerMetadata(metadataId,metadataKey,metadataValue),",
|
|
17
17
|
"rowData.values(userEnteredValue,userEnteredFormat.numberFormat,effectiveFormat.numberFormat))",
|
|
18
18
|
].join("");
|
|
19
19
|
/**
|
|
@@ -59,19 +59,17 @@ export const GOOGLE_SHEETS_API_VALUES_FIELDS = [
|
|
|
59
59
|
"userEnteredFormat.numberFormat,effectiveFormat.numberFormat,dataValidation))",
|
|
60
60
|
].join("");
|
|
61
61
|
/**
|
|
62
|
-
* Full observation mask: values, computed values, merged ranges
|
|
62
|
+
* Full observation mask: values, computed values, merged ranges.
|
|
63
63
|
*
|
|
64
64
|
* This is the metadata-preserving read used by snapshots and anchor
|
|
65
65
|
* assignment. Merged regions live on the SHEET object as `sheets.merges`
|
|
66
|
-
* (GridRange entries), NOT on GridData
|
|
67
|
-
*
|
|
68
|
-
* `metadataValue` names.
|
|
66
|
+
* (GridRange entries), NOT on GridData. Row anchors are cell values in the
|
|
67
|
+
* User_Input tab's last column, so they arrive with `rowData.values`.
|
|
69
68
|
*/
|
|
70
69
|
export const GOOGLE_SHEETS_API_OBSERVATION_FIELDS = [
|
|
71
70
|
"sheets.properties(sheetId,title,hidden),",
|
|
72
71
|
"sheets.merges,",
|
|
73
72
|
"sheets.data(startRow,startColumn,",
|
|
74
|
-
"rowMetadata.developerMetadata(metadataId,metadataKey,metadataValue),",
|
|
75
73
|
"rowData.values(userEnteredValue,effectiveValue,formattedValue,",
|
|
76
74
|
"userEnteredFormat.numberFormat,effectiveFormat.numberFormat,dataValidation))",
|
|
77
75
|
].join("");
|
|
@@ -87,7 +85,6 @@ export const GOOGLE_SHEETS_API_OBSERVATION_FIELDS = [
|
|
|
87
85
|
export const GOOGLE_SHEETS_API_LIGHTWEIGHT_OBSERVATION_FIELDS = [
|
|
88
86
|
"sheets.properties(sheetId,title,hidden),",
|
|
89
87
|
"sheets.data(startRow,startColumn,",
|
|
90
|
-
"rowMetadata.developerMetadata(metadataId,metadataKey,metadataValue),",
|
|
91
88
|
"rowData.values(userEnteredValue,effectiveValue,formattedValue,",
|
|
92
89
|
"userEnteredFormat.numberFormat,effectiveFormat.numberFormat))",
|
|
93
90
|
].join("");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preflightFields.js","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/preflightFields.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"preflightFields.js","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/preflightFields.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;GAEG;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,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;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG;IAClD,0CAA0C;IAC1C,gBAAgB;IAChB,mCAAmC;IACnC,gEAAgE;IAChE,8EAA8E;CAC/E,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEX;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gDAAgD,GAAG;IAC9D,0CAA0C;IAC1C,mCAAmC;IACnC,gEAAgE;IAChE,+DAA+D;CAChE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC"}
|
|
@@ -3,18 +3,27 @@
|
|
|
3
3
|
*
|
|
4
4
|
* The header row of the target tab must match the registered definition and
|
|
5
5
|
* layout exactly: every cell a non-empty string, no duplicates, exact order
|
|
6
|
-
* and width. Checkbox headers must be registered headers.
|
|
6
|
+
* and width. Checkbox headers must be registered headers. user_input tabs
|
|
7
|
+
* additionally carry the reserved `__hikoutei_row_id` system column as the
|
|
8
|
+
* LAST header: a user property with that name fails closed, and a tab
|
|
9
|
+
* provisioned without the system column (legacy format) fails closed with a
|
|
10
|
+
* re-provision message instead of being silently read or repaired.
|
|
7
11
|
*/
|
|
8
12
|
import type { ParsedGridData } from "./preflightContext.js";
|
|
13
|
+
/** Message used when a user_input tab lacks the system row-id column. */
|
|
14
|
+
export declare const SYSTEM_COLUMN_REPROVISION_MESSAGE = "user input tab is missing the __hikoutei_row_id system column; re-provision the route";
|
|
9
15
|
/**
|
|
10
16
|
* Validates the header row against the registered definition and layout:
|
|
11
17
|
* every cell must be a non-empty string, duplicates fail closed, and the
|
|
12
|
-
* row must match the expected headers exactly.
|
|
18
|
+
* row must match the expected headers exactly. When `systemColumnHeader` is
|
|
19
|
+
* provided the LAST column of the range must carry exactly that header
|
|
20
|
+
* (fail-closed on legacy tabs and on a user property named like the system
|
|
21
|
+
* column).
|
|
13
22
|
*/
|
|
14
23
|
export declare function readRegisteredHeaders(data: ParsedGridData, range: {
|
|
15
24
|
readonly startColumn: number;
|
|
16
25
|
readonly columnCount: number;
|
|
17
|
-
}, expectedHeaders: readonly string[]): readonly string[];
|
|
26
|
+
}, expectedHeaders: readonly string[], systemColumnHeader?: string): readonly string[];
|
|
18
27
|
/** Returns the header cells of one grid as raw API values (no validation). */
|
|
19
28
|
export declare function gridHeaderCells(data: ParsedGridData, range: {
|
|
20
29
|
readonly startColumn: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preflightHeaders.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/preflightHeaders.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"preflightHeaders.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/preflightHeaders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,yEAAyE;AACzE,eAAO,MAAM,iCAAiC,0FAC4D,CAAC;AAE3G;;;;;;;GAOG;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,EAClC,kBAAkB,CAAC,EAAE,MAAM,GAC1B,SAAS,MAAM,EAAE,CA6CnB;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"}
|
|
@@ -3,36 +3,67 @@
|
|
|
3
3
|
*
|
|
4
4
|
* The header row of the target tab must match the registered definition and
|
|
5
5
|
* layout exactly: every cell a non-empty string, no duplicates, exact order
|
|
6
|
-
* and width. Checkbox headers must be registered headers.
|
|
6
|
+
* and width. Checkbox headers must be registered headers. user_input tabs
|
|
7
|
+
* additionally carry the reserved `__hikoutei_row_id` system column as the
|
|
8
|
+
* LAST header: a user property with that name fails closed, and a tab
|
|
9
|
+
* provisioned without the system column (legacy format) fails closed with a
|
|
10
|
+
* re-provision message instead of being silently read or repaired.
|
|
7
11
|
*/
|
|
12
|
+
import { GOOGLE_SHEETS_API_ROW_ID_HEADER } from "../constants.js";
|
|
8
13
|
import { invalidProviderState } from "../errors.js";
|
|
9
14
|
import { apiStringValue } from "./preflightParsing.js";
|
|
10
15
|
import { gridRowCells } from "./preflightRows.js";
|
|
16
|
+
/** Message used when a user_input tab lacks the system row-id column. */
|
|
17
|
+
export const SYSTEM_COLUMN_REPROVISION_MESSAGE = `user input tab is missing the ${GOOGLE_SHEETS_API_ROW_ID_HEADER} system column; re-provision the route`;
|
|
11
18
|
/**
|
|
12
19
|
* Validates the header row against the registered definition and layout:
|
|
13
20
|
* every cell must be a non-empty string, duplicates fail closed, and the
|
|
14
|
-
* row must match the expected headers exactly.
|
|
21
|
+
* row must match the expected headers exactly. When `systemColumnHeader` is
|
|
22
|
+
* provided the LAST column of the range must carry exactly that header
|
|
23
|
+
* (fail-closed on legacy tabs and on a user property named like the system
|
|
24
|
+
* column).
|
|
15
25
|
*/
|
|
16
|
-
export function readRegisteredHeaders(data, range, expectedHeaders) {
|
|
26
|
+
export function readRegisteredHeaders(data, range, expectedHeaders, systemColumnHeader) {
|
|
27
|
+
if (systemColumnHeader !== undefined &&
|
|
28
|
+
expectedHeaders.includes(systemColumnHeader)) {
|
|
29
|
+
invalidProviderState(`registered header ${systemColumnHeader} collides with the system row-id column`);
|
|
30
|
+
}
|
|
17
31
|
const headerValues = gridRowCells(data, 1, range.startColumn, range.columnCount);
|
|
18
|
-
const
|
|
32
|
+
const userFieldCount = expectedHeaders.length;
|
|
33
|
+
const actual = [];
|
|
34
|
+
for (let index = 0; index < headerValues.length; index += 1) {
|
|
35
|
+
const isSystemPosition = systemColumnHeader !== undefined &&
|
|
36
|
+
index === userFieldCount;
|
|
37
|
+
const value = headerValues[index];
|
|
19
38
|
if (value === null) {
|
|
39
|
+
if (isSystemPosition)
|
|
40
|
+
invalidProviderState(SYSTEM_COLUMN_REPROVISION_MESSAGE);
|
|
20
41
|
invalidProviderState(`registered header is missing at column ${index + 1}`);
|
|
21
42
|
}
|
|
22
43
|
const raw = apiStringValue(value);
|
|
23
44
|
if (typeof raw !== "string" || raw.trim() === "") {
|
|
45
|
+
if (isSystemPosition)
|
|
46
|
+
invalidProviderState(SYSTEM_COLUMN_REPROVISION_MESSAGE);
|
|
24
47
|
invalidProviderState(`registered header is invalid at column ${index + 1}`);
|
|
25
48
|
}
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
|
|
49
|
+
actual.push(raw);
|
|
50
|
+
}
|
|
51
|
+
const userHeaders = actual.slice(0, userFieldCount);
|
|
52
|
+
if (new Set(userHeaders).size !== userHeaders.length) {
|
|
29
53
|
invalidProviderState("registered headers contain a duplicate");
|
|
30
54
|
}
|
|
31
|
-
|
|
32
|
-
|
|
55
|
+
const expectedCount = userFieldCount + (systemColumnHeader === undefined ? 0 : 1);
|
|
56
|
+
if (actual.length !== expectedCount ||
|
|
57
|
+
userHeaders.some((header, index) => header !== expectedHeaders[index])) {
|
|
33
58
|
invalidProviderState("registered headers do not match the projected schema");
|
|
34
59
|
}
|
|
35
|
-
|
|
60
|
+
if (systemColumnHeader !== undefined) {
|
|
61
|
+
const systemHeader = actual[userFieldCount];
|
|
62
|
+
if (systemHeader !== systemColumnHeader) {
|
|
63
|
+
invalidProviderState(SYSTEM_COLUMN_REPROVISION_MESSAGE);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return userHeaders;
|
|
36
67
|
}
|
|
37
68
|
/** Returns the header cells of one grid as raw API values (no validation). */
|
|
38
69
|
export function gridHeaderCells(data, range) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preflightHeaders.js","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/preflightHeaders.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"preflightHeaders.js","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/preflightHeaders.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preflightParsing.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/preflightParsing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"preflightParsing.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/preflightParsing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAIV,WAAW,EACX,yBAAyB,EAC1B,MAAM,uBAAuB,CAAC;AAE/B,yEAAyE;AACzE,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,GACZ,yBAAyB,CA0B3B;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,GACZ,SAAS,WAAW,EAAE,CAWxB;AA2JD,0EAA0E;AAC1E,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAOjE;AAED,0EAA0E;AAC1E,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAOjE"}
|
|
@@ -115,8 +115,7 @@ function parseGridDataArray(value, sheetId, label, grids) {
|
|
|
115
115
|
const startRow = optionalNonNegativeInteger(data.startRow, `${label}[${index}].startRow`);
|
|
116
116
|
const startColumn = optionalNonNegativeInteger(data.startColumn, `${label}[${index}].startColumn`);
|
|
117
117
|
const rowData = parseRowData(data.rowData, `${label}[${index}].rowData`);
|
|
118
|
-
|
|
119
|
-
grids.set(sheetId, { startRow, startColumn, rowData, rowMetadata });
|
|
118
|
+
grids.set(sheetId, { startRow, startColumn, rowData });
|
|
120
119
|
});
|
|
121
120
|
}
|
|
122
121
|
/** Parses one sheet-level `merges` GridRange array with runtime guards. */
|
|
@@ -169,43 +168,6 @@ function parseRowData(value, label) {
|
|
|
169
168
|
return { values: row.values };
|
|
170
169
|
});
|
|
171
170
|
}
|
|
172
|
-
function parseRowMetadata(value, label) {
|
|
173
|
-
if (value === undefined)
|
|
174
|
-
return [];
|
|
175
|
-
if (!Array.isArray(value))
|
|
176
|
-
invalidProviderState(`${label} must be an array`);
|
|
177
|
-
return value.map((entry, index) => {
|
|
178
|
-
if (entry === null || typeof entry !== "object" || Array.isArray(entry)) {
|
|
179
|
-
invalidProviderState(`${label}[${index}] must be an object`);
|
|
180
|
-
}
|
|
181
|
-
const metadata = entry;
|
|
182
|
-
if (metadata.developerMetadata === undefined)
|
|
183
|
-
return { developerMetadata: [] };
|
|
184
|
-
if (!Array.isArray(metadata.developerMetadata)) {
|
|
185
|
-
invalidProviderState(`${label}[${index}].developerMetadata must be an array`);
|
|
186
|
-
}
|
|
187
|
-
return {
|
|
188
|
-
developerMetadata: metadata.developerMetadata.map((item, itemIndex) => {
|
|
189
|
-
if (item === null || typeof item !== "object" || Array.isArray(item)) {
|
|
190
|
-
invalidProviderState(`${label}[${index}].developerMetadata[${itemIndex}] must be an object`);
|
|
191
|
-
}
|
|
192
|
-
const itemRecord = item;
|
|
193
|
-
if (typeof itemRecord.metadataKey !== "string" ||
|
|
194
|
-
itemRecord.metadataKey.length === 0) {
|
|
195
|
-
invalidProviderState(`${label}[${index}].developerMetadata[${itemIndex}].metadataKey is invalid`);
|
|
196
|
-
}
|
|
197
|
-
if (itemRecord.metadataValue !== undefined &&
|
|
198
|
-
typeof itemRecord.metadataValue !== "string") {
|
|
199
|
-
invalidProviderState(`${label}[${index}].developerMetadata[${itemIndex}].metadataValue is invalid`);
|
|
200
|
-
}
|
|
201
|
-
return {
|
|
202
|
-
metadataKey: itemRecord.metadataKey,
|
|
203
|
-
metadataValue: itemRecord.metadataValue === undefined ? "" : itemRecord.metadataValue,
|
|
204
|
-
};
|
|
205
|
-
}),
|
|
206
|
-
};
|
|
207
|
-
});
|
|
208
|
-
}
|
|
209
171
|
function optionalNonNegativeInteger(value, label) {
|
|
210
172
|
if (value === undefined)
|
|
211
173
|
return 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preflightParsing.js","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/preflightParsing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"preflightParsing.js","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/preflightParsing.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,12 @@
|
|
|
2
2
|
* Preflight row normalization, indexes, and sheet/grid lookup.
|
|
3
3
|
*
|
|
4
4
|
* Nonblank target rows are normalized into typed `PreflightRow` values with
|
|
5
|
-
* their anchor evidence and visible identity; the
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* their anchor evidence and visible identity; the identity index fails closed
|
|
6
|
+
* on duplicates while the anchor index keeps only the FIRST row per anchor
|
|
7
|
+
* value (duplicated anchors are evidence, never rewritten), and both derive
|
|
8
|
+
* the next append row. Sheet and grid lookup helpers resolve titles to
|
|
9
|
+
* validated grids for the preflight data read and the observation/
|
|
10
|
+
* provisioning readers.
|
|
9
11
|
*/
|
|
10
12
|
import type { Presence } from "../../../../../shared/state/index.js";
|
|
11
13
|
import type { ParsedCellNumberFormat, ParsedGridData, ParsedSheet, ParsedSpreadsheetDocument, PreflightRow } from "./preflightContext.js";
|
|
@@ -21,16 +23,29 @@ export declare function requireGridDataByTitle(document: ParsedSpreadsheetDocume
|
|
|
21
23
|
export declare function readRows(data: ParsedGridData, range: {
|
|
22
24
|
readonly startColumn: number;
|
|
23
25
|
readonly columnCount: number;
|
|
24
|
-
}, headers: readonly string[], identityField: Presence<string
|
|
26
|
+
}, headers: readonly string[], identityField: Presence<string>, anchorColumn: number | undefined): readonly PreflightRow[];
|
|
25
27
|
/**
|
|
26
|
-
* Builds the row -> anchor-list index from
|
|
28
|
+
* Builds the row -> anchor-list index from the system row-id column.
|
|
27
29
|
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
30
|
+
* The anchor is the LAST column cell value of the user_input registered
|
|
31
|
+
* range: any non-empty string value counts as the row's anchor (the column
|
|
32
|
+
* position is the identity proof; the `sync-anchor:` prefix is the format of
|
|
33
|
+
* observation- and append-assigned anchors, but flush-derived anchors keep
|
|
34
|
+
* the mapping's deterministic format such as `entity:<id>`). The header row
|
|
35
|
+
* is skipped so the `__hikoutei_row_id` header cell never becomes a
|
|
36
|
+
* pseudo-anchor. Blank cells, whitespace-only cells, empty strings, and
|
|
37
|
+
* non-string values are not anchors and are treated as missing by the
|
|
38
|
+
* caller. `anchorColumn` is 1-based; projections without a system column
|
|
39
|
+
* pass `undefined` and yield no anchors.
|
|
31
40
|
*/
|
|
32
|
-
export declare function readAnchorIndex(data: ParsedGridData): ReadonlyMap<number, readonly string[]>;
|
|
33
|
-
|
|
41
|
+
export declare function readAnchorIndex(data: ParsedGridData, anchorColumn: number | undefined): ReadonlyMap<number, readonly string[]>;
|
|
42
|
+
/**
|
|
43
|
+
* Returns the 1-based system row-id column of one registered range, or
|
|
44
|
+
* `undefined` for projections without a system column (only user_input tabs
|
|
45
|
+
* carry one, always as the LAST column of the registered range).
|
|
46
|
+
*/
|
|
47
|
+
export declare function anchorColumnFor(registeredRange: string, projection: string): number | undefined;
|
|
48
|
+
export declare function indexRows(rows: readonly PreflightRow[]): {
|
|
34
49
|
readonly byAnchor: ReadonlyMap<string, PreflightRow>;
|
|
35
50
|
readonly byIdentity: ReadonlyMap<string, PreflightRow>;
|
|
36
51
|
readonly nextAppendRow: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preflightRows.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/preflightRows.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"preflightRows.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/model/preflightRows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAcrE,OAAO,KAAK,EACV,sBAAsB,EACtB,cAAc,EACd,WAAW,EACX,yBAAyB,EACzB,YAAY,EACb,MAAM,uBAAuB,CAAC;AAE/B,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAM9F;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,SAAS,WAAW,EAAE,EAC9B,KAAK,EAAE,MAAM,GACZ,WAAW,GAAG,SAAS,CAEzB;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,yBAAyB,EACnC,OAAO,EAAE,MAAM,GACd,cAAc,CAMhB;AAED,kFAAkF;AAClF,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,yBAAyB,EACnC,MAAM,EAAE,SAAS,WAAW,EAAE,EAC9B,KAAK,EAAE,MAAM,GACZ;IAAE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;CAAE,CAUhE;AAED,+DAA+D;AAC/D,wBAAgB,QAAQ,CACtB,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE;IAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,EACrE,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,EAC/B,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,SAAS,YAAY,EAAE,CAkDzB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,cAAc,EACpB,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAWxC;AAWD;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,GACjB,MAAM,GAAG,SAAS,CAIpB;AAED,wBAAgB,SAAS,CACvB,IAAI,EAAE,SAAS,YAAY,EAAE,GAC5B;IACD,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACrD,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACvD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC,CAqCA;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,cAAc,EACpB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,SAAS,OAAO,EAAE,CAcpB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,GAAG,SAAS,CAkBtF"}
|