@aetherwing/fcp-core 0.1.3 → 0.1.5
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/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/tokenizer.d.ts +15 -1
- package/dist/tokenizer.d.ts.map +1 -1
- package/dist/tokenizer.js +52 -1
- package/dist/tokenizer.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { tokenize, isKeyValue, parseKeyValue, parseKeyValueWithMeta, isArrow, isSelector, } from "./tokenizer.js";
|
|
1
|
+
export { tokenize, isKeyValue, isCellRange, parseKeyValue, parseKeyValueWithMeta, isArrow, isSelector, } from "./tokenizer.js";
|
|
2
2
|
export { parseOp, isParseError, type ParsedOp, type ParseError, } from "./parsed-op.js";
|
|
3
3
|
export { EventLog } from "./event-log.js";
|
|
4
4
|
export { VerbRegistry, type VerbSpec } from "./verb-registry.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,OAAO,EACP,UAAU,GACX,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,OAAO,EACP,YAAY,EACZ,KAAK,QAAQ,EACb,KAAK,UAAU,GAChB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,OAAO,EAAE,YAAY,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGjE,OAAO,EACL,iBAAiB,EACjB,KAAK,YAAY,GAClB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAGvD,OAAO,EACL,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACb,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,UAAU,EACV,WAAW,EACX,aAAa,EACb,qBAAqB,EACrB,OAAO,EACP,UAAU,GACX,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,OAAO,EACP,YAAY,EACZ,KAAK,QAAQ,EACb,KAAK,UAAU,GAChB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,OAAO,EAAE,YAAY,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGjE,OAAO,EACL,iBAAiB,EACjB,KAAK,YAAY,GAClB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAGvD,OAAO,EACL,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACb,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Tokenizer
|
|
2
|
-
export { tokenize, isKeyValue, parseKeyValue, parseKeyValueWithMeta, isArrow, isSelector, } from "./tokenizer.js";
|
|
2
|
+
export { tokenize, isKeyValue, isCellRange, parseKeyValue, parseKeyValueWithMeta, isArrow, isSelector, } from "./tokenizer.js";
|
|
3
3
|
// Parsed operation
|
|
4
4
|
export { parseOp, isParseError, } from "./parsed-op.js";
|
|
5
5
|
// Event log
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY;AACZ,OAAO,EACL,QAAQ,EACR,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,OAAO,EACP,UAAU,GACX,MAAM,gBAAgB,CAAC;AAExB,mBAAmB;AACnB,OAAO,EACL,OAAO,EACP,YAAY,GAGb,MAAM,gBAAgB,CAAC;AAExB,YAAY;AACZ,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAiB,MAAM,oBAAoB,CAAC;AAEjE,UAAU;AACV,OAAO,EACL,iBAAiB,GAElB,MAAM,cAAc,CAAC;AAEtB,YAAY;AACZ,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEvD,SAAS;AACT,OAAO,EACL,eAAe,GAKhB,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY;AACZ,OAAO,EACL,QAAQ,EACR,UAAU,EACV,WAAW,EACX,aAAa,EACb,qBAAqB,EACrB,OAAO,EACP,UAAU,GACX,MAAM,gBAAgB,CAAC;AAExB,mBAAmB;AACnB,OAAO,EACL,OAAO,EACP,YAAY,GAGb,MAAM,gBAAgB,CAAC;AAExB,YAAY;AACZ,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAiB,MAAM,oBAAoB,CAAC;AAEjE,UAAU;AACV,OAAO,EACL,iBAAiB,GAElB,MAAM,cAAc,CAAC;AAEtB,YAAY;AACZ,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEvD,SAAS;AACT,OAAO,EACL,eAAe,GAKhB,MAAM,aAAa,CAAC"}
|
package/dist/tokenizer.d.ts
CHANGED
|
@@ -3,9 +3,23 @@
|
|
|
3
3
|
* "add svc \"Auth Service\" theme:blue" -> ["add", "svc", "Auth Service", "theme:blue"]
|
|
4
4
|
*/
|
|
5
5
|
export declare function tokenize(input: string): string[];
|
|
6
|
+
/**
|
|
7
|
+
* Check if a token looks like a spreadsheet cell range.
|
|
8
|
+
*
|
|
9
|
+
* Recognized patterns (with optional Sheet! prefix):
|
|
10
|
+
* A1:F1 — cell range (letters+digits : letters+digits)
|
|
11
|
+
* 3:3 — row range (digits : digits)
|
|
12
|
+
* 1:5 — row range
|
|
13
|
+
* Sheet2!A1:B10 — cross-sheet cell range
|
|
14
|
+
*
|
|
15
|
+
* NOT recognized (ambiguous with key:value):
|
|
16
|
+
* A:E — column range (use A-E instead, or handle at domain level)
|
|
17
|
+
*/
|
|
18
|
+
export declare function isCellRange(token: string): boolean;
|
|
6
19
|
/**
|
|
7
20
|
* Check if a token is a key:value pair.
|
|
8
|
-
* Must contain ":" but not start with "@" (selectors)
|
|
21
|
+
* Must contain ":" but not start with "@" (selectors), not be an arrow,
|
|
22
|
+
* not be a formula (starts with "="), and not be a cell range (e.g. A1:F1).
|
|
9
23
|
*/
|
|
10
24
|
export declare function isKeyValue(token: string): boolean;
|
|
11
25
|
/**
|
package/dist/tokenizer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenizer.d.ts","sourceRoot":"","sources":["../src/tokenizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAuEhD;AAED
|
|
1
|
+
{"version":3,"file":"tokenizer.d.ts","sourceRoot":"","sources":["../src/tokenizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAuEhD;AAeD;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAoBlD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CASjD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAW3E;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAavG;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE9C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEjD"}
|
package/dist/tokenizer.js
CHANGED
|
@@ -80,15 +80,66 @@ export function tokenize(input) {
|
|
|
80
80
|
}
|
|
81
81
|
return tokens;
|
|
82
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Regex patterns for cell range detection (spreadsheet A1 notation).
|
|
85
|
+
* Cell ref: 1-3 letters followed by digits (A1, BB23, XFD1048576)
|
|
86
|
+
* Row ref: digits only (1, 23)
|
|
87
|
+
*
|
|
88
|
+
* Note: Pure column ranges (A:E, B:B) are intentionally NOT detected here
|
|
89
|
+
* because they are ambiguous with key:value pairs like "theme:blue" or
|
|
90
|
+
* "vel:mf". Column-only ranges should use hyphen syntax (A-E) or be
|
|
91
|
+
* handled at the domain level.
|
|
92
|
+
*/
|
|
93
|
+
const CELL_REF_RE = /^[A-Za-z]{1,3}\d+$/;
|
|
94
|
+
const ROW_REF_RE = /^[0-9]+$/;
|
|
95
|
+
/**
|
|
96
|
+
* Check if a token looks like a spreadsheet cell range.
|
|
97
|
+
*
|
|
98
|
+
* Recognized patterns (with optional Sheet! prefix):
|
|
99
|
+
* A1:F1 — cell range (letters+digits : letters+digits)
|
|
100
|
+
* 3:3 — row range (digits : digits)
|
|
101
|
+
* 1:5 — row range
|
|
102
|
+
* Sheet2!A1:B10 — cross-sheet cell range
|
|
103
|
+
*
|
|
104
|
+
* NOT recognized (ambiguous with key:value):
|
|
105
|
+
* A:E — column range (use A-E instead, or handle at domain level)
|
|
106
|
+
*/
|
|
107
|
+
export function isCellRange(token) {
|
|
108
|
+
let ref = token;
|
|
109
|
+
// Strip optional sheet prefix (Sheet2!A1:B10 → A1:B10)
|
|
110
|
+
const bangIdx = ref.indexOf("!");
|
|
111
|
+
if (bangIdx >= 0) {
|
|
112
|
+
ref = ref.slice(bangIdx + 1);
|
|
113
|
+
}
|
|
114
|
+
const colonIdx = ref.indexOf(":");
|
|
115
|
+
if (colonIdx <= 0 || colonIdx >= ref.length - 1)
|
|
116
|
+
return false;
|
|
117
|
+
const left = ref.slice(0, colonIdx);
|
|
118
|
+
const right = ref.slice(colonIdx + 1);
|
|
119
|
+
// Cell range: A1:F1 (most common spreadsheet range pattern)
|
|
120
|
+
if (CELL_REF_RE.test(left) && CELL_REF_RE.test(right))
|
|
121
|
+
return true;
|
|
122
|
+
// Row range: 1:5 or 3:3 (no FCP key is ever a pure number)
|
|
123
|
+
if (ROW_REF_RE.test(left) && ROW_REF_RE.test(right))
|
|
124
|
+
return true;
|
|
125
|
+
return false;
|
|
126
|
+
}
|
|
83
127
|
/**
|
|
84
128
|
* Check if a token is a key:value pair.
|
|
85
|
-
* Must contain ":" but not start with "@" (selectors)
|
|
129
|
+
* Must contain ":" but not start with "@" (selectors), not be an arrow,
|
|
130
|
+
* not be a formula (starts with "="), and not be a cell range (e.g. A1:F1).
|
|
86
131
|
*/
|
|
87
132
|
export function isKeyValue(token) {
|
|
88
133
|
if (token.startsWith("@"))
|
|
89
134
|
return false;
|
|
90
135
|
if (isArrow(token))
|
|
91
136
|
return false;
|
|
137
|
+
// Formulas (=SUM(A1:B2)) are values, not key:value pairs
|
|
138
|
+
if (token.startsWith("="))
|
|
139
|
+
return false;
|
|
140
|
+
// Spreadsheet cell ranges (A1:F1, B:B, 3:3) are positional args
|
|
141
|
+
if (isCellRange(token))
|
|
142
|
+
return false;
|
|
92
143
|
const colonIdx = token.indexOf(":");
|
|
93
144
|
return colonIdx > 0 && colonIdx < token.length - 1;
|
|
94
145
|
}
|
package/dist/tokenizer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenizer.js","sourceRoot":"","sources":["../src/tokenizer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tokenizer.js","sourceRoot":"","sources":["../src/tokenizer.ts"],"names":[],"mappings":"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"}
|