@bilig/protocol 0.16.4 → 0.16.10
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/guards.js +55 -7
- package/dist/guards.js.map +1 -1
- package/package.json +2 -2
package/dist/guards.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import { ValueTag } from './enums.js';
|
|
1
|
+
import { ErrorCode, ValueTag } from './enums.js';
|
|
2
2
|
function isRecord(value) {
|
|
3
3
|
return typeof value === 'object' && value !== null;
|
|
4
4
|
}
|
|
5
|
+
function isSafeNonNegativeInteger(value) {
|
|
6
|
+
return typeof value === 'number' && Number.isSafeInteger(value) && value >= 0;
|
|
7
|
+
}
|
|
5
8
|
function isCellValueTag(value) {
|
|
6
9
|
return (value === ValueTag.Empty ||
|
|
7
10
|
value === ValueTag.Number ||
|
|
@@ -9,8 +12,53 @@ function isCellValueTag(value) {
|
|
|
9
12
|
value === ValueTag.String ||
|
|
10
13
|
value === ValueTag.Error);
|
|
11
14
|
}
|
|
15
|
+
function isErrorCode(value) {
|
|
16
|
+
return (value === ErrorCode.None ||
|
|
17
|
+
value === ErrorCode.Div0 ||
|
|
18
|
+
value === ErrorCode.Ref ||
|
|
19
|
+
value === ErrorCode.Value ||
|
|
20
|
+
value === ErrorCode.Name ||
|
|
21
|
+
value === ErrorCode.NA ||
|
|
22
|
+
value === ErrorCode.Cycle ||
|
|
23
|
+
value === ErrorCode.Spill ||
|
|
24
|
+
value === ErrorCode.Blocked);
|
|
25
|
+
}
|
|
26
|
+
function isCellValue(value) {
|
|
27
|
+
if (!isRecord(value) || !isCellValueTag(value['tag'])) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
switch (value['tag']) {
|
|
31
|
+
case ValueTag.Empty:
|
|
32
|
+
return true;
|
|
33
|
+
case ValueTag.Number:
|
|
34
|
+
return typeof value['value'] === 'number' && Number.isFinite(value['value']);
|
|
35
|
+
case ValueTag.Boolean:
|
|
36
|
+
return typeof value['value'] === 'boolean';
|
|
37
|
+
case ValueTag.String:
|
|
38
|
+
return typeof value['value'] === 'string' && isSafeNonNegativeInteger(value['stringId']);
|
|
39
|
+
case ValueTag.Error:
|
|
40
|
+
return isErrorCode(value['code']);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
function isWorkbookSnapshotCell(value) {
|
|
44
|
+
return (isRecord(value) &&
|
|
45
|
+
typeof value['address'] === 'string' &&
|
|
46
|
+
(value['row'] === undefined || isSafeNonNegativeInteger(value['row'])) &&
|
|
47
|
+
(value['col'] === undefined || isSafeNonNegativeInteger(value['col'])) &&
|
|
48
|
+
(value['value'] === undefined || isLiteralInput(value['value'])) &&
|
|
49
|
+
(value['formula'] === undefined || typeof value['formula'] === 'string') &&
|
|
50
|
+
(value['format'] === undefined || typeof value['format'] === 'string'));
|
|
51
|
+
}
|
|
52
|
+
function isWorkbookSnapshotSheet(value) {
|
|
53
|
+
return (isRecord(value) &&
|
|
54
|
+
(value['id'] === undefined || isSafeNonNegativeInteger(value['id'])) &&
|
|
55
|
+
typeof value['name'] === 'string' &&
|
|
56
|
+
isSafeNonNegativeInteger(value['order']) &&
|
|
57
|
+
Array.isArray(value['cells']) &&
|
|
58
|
+
value['cells'].every((cell) => isWorkbookSnapshotCell(cell)));
|
|
59
|
+
}
|
|
12
60
|
export function isLiteralInput(value) {
|
|
13
|
-
return value === null || typeof value === 'boolean' || typeof value === '
|
|
61
|
+
return value === null || typeof value === 'boolean' || typeof value === 'string' || (typeof value === 'number' && Number.isFinite(value));
|
|
14
62
|
}
|
|
15
63
|
export function isCellRangeRef(value) {
|
|
16
64
|
return (isRecord(value) &&
|
|
@@ -23,15 +71,15 @@ export function isWorkbookSnapshot(value) {
|
|
|
23
71
|
value['version'] === 1 &&
|
|
24
72
|
isRecord(value['workbook']) &&
|
|
25
73
|
typeof value['workbook']['name'] === 'string' &&
|
|
26
|
-
Array.isArray(value['sheets'])
|
|
74
|
+
Array.isArray(value['sheets']) &&
|
|
75
|
+
value['sheets'].every((sheet) => isWorkbookSnapshotSheet(sheet)));
|
|
27
76
|
}
|
|
28
77
|
export function isCellSnapshot(value) {
|
|
29
78
|
return (isRecord(value) &&
|
|
30
79
|
typeof value['sheetName'] === 'string' &&
|
|
31
80
|
typeof value['address'] === 'string' &&
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
isCellValueTag(value['value']['tag']));
|
|
81
|
+
isSafeNonNegativeInteger(value['flags']) &&
|
|
82
|
+
isSafeNonNegativeInteger(value['version']) &&
|
|
83
|
+
isCellValue(value['value']));
|
|
36
84
|
}
|
|
37
85
|
//# sourceMappingURL=guards.js.map
|
package/dist/guards.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guards.js","sourceRoot":"","sources":["../src/guards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"guards.js","sourceRoot":"","sources":["../src/guards.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bilig/protocol",
|
|
3
|
-
"version": "0.16.
|
|
3
|
+
"version": "0.16.10",
|
|
4
4
|
"description": "Shared protocol types, enums, opcodes, and spreadsheet limits for bilig.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"bilig",
|
|
@@ -40,6 +40,6 @@
|
|
|
40
40
|
"build": "tsc -p tsconfig.json"
|
|
41
41
|
},
|
|
42
42
|
"engines": {
|
|
43
|
-
"node": ">=
|
|
43
|
+
"node": ">=22.0.0"
|
|
44
44
|
}
|
|
45
45
|
}
|