@bilig/protocol 0.16.5 → 0.16.11
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/cell-style-records.d.ts +2 -0
- package/dist/cell-style-records.js +215 -0
- package/dist/cell-style-records.js.map +1 -0
- package/dist/guards.js +55 -7
- package/dist/guards.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
function isRecord(value) {
|
|
2
|
+
return typeof value === 'object' && value !== null;
|
|
3
|
+
}
|
|
4
|
+
function asString(value) {
|
|
5
|
+
return typeof value === 'string' ? value : undefined;
|
|
6
|
+
}
|
|
7
|
+
function asBoolean(value) {
|
|
8
|
+
return typeof value === 'boolean' ? value : undefined;
|
|
9
|
+
}
|
|
10
|
+
function asFiniteNumber(value) {
|
|
11
|
+
return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
|
|
12
|
+
}
|
|
13
|
+
function asCellHorizontalAlignment(value) {
|
|
14
|
+
switch (value) {
|
|
15
|
+
case 'general':
|
|
16
|
+
case 'left':
|
|
17
|
+
case 'center':
|
|
18
|
+
case 'right':
|
|
19
|
+
case 'fill':
|
|
20
|
+
case 'justify':
|
|
21
|
+
case 'centerContinuous':
|
|
22
|
+
case 'distributed':
|
|
23
|
+
return value;
|
|
24
|
+
default:
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function asCellVerticalAlignment(value) {
|
|
29
|
+
switch (value) {
|
|
30
|
+
case 'top':
|
|
31
|
+
case 'middle':
|
|
32
|
+
case 'bottom':
|
|
33
|
+
case 'justify':
|
|
34
|
+
case 'distributed':
|
|
35
|
+
return value;
|
|
36
|
+
default:
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
function asCellBorderStyle(value) {
|
|
41
|
+
switch (value) {
|
|
42
|
+
case 'solid':
|
|
43
|
+
case 'dashed':
|
|
44
|
+
case 'dotted':
|
|
45
|
+
case 'double':
|
|
46
|
+
return value;
|
|
47
|
+
default:
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
function asCellBorderWeight(value) {
|
|
52
|
+
switch (value) {
|
|
53
|
+
case 'thin':
|
|
54
|
+
case 'medium':
|
|
55
|
+
case 'thick':
|
|
56
|
+
return value;
|
|
57
|
+
default:
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
function sanitizeStyleFill(value) {
|
|
62
|
+
if (!isRecord(value)) {
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
const backgroundColor = asString(value['backgroundColor']);
|
|
66
|
+
return backgroundColor ? { backgroundColor } : undefined;
|
|
67
|
+
}
|
|
68
|
+
function sanitizeStyleFont(value) {
|
|
69
|
+
if (!isRecord(value)) {
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
const font = {};
|
|
73
|
+
const family = asString(value['family']);
|
|
74
|
+
const size = asFiniteNumber(value['size']);
|
|
75
|
+
const bold = asBoolean(value['bold']);
|
|
76
|
+
const italic = asBoolean(value['italic']);
|
|
77
|
+
const underline = asBoolean(value['underline']);
|
|
78
|
+
const color = asString(value['color']);
|
|
79
|
+
if (family) {
|
|
80
|
+
font.family = family;
|
|
81
|
+
}
|
|
82
|
+
if (size !== undefined) {
|
|
83
|
+
font.size = size;
|
|
84
|
+
}
|
|
85
|
+
if (bold !== undefined) {
|
|
86
|
+
font.bold = bold;
|
|
87
|
+
}
|
|
88
|
+
if (italic !== undefined) {
|
|
89
|
+
font.italic = italic;
|
|
90
|
+
}
|
|
91
|
+
if (underline !== undefined) {
|
|
92
|
+
font.underline = underline;
|
|
93
|
+
}
|
|
94
|
+
if (color) {
|
|
95
|
+
font.color = color;
|
|
96
|
+
}
|
|
97
|
+
return Object.keys(font).length > 0 ? font : undefined;
|
|
98
|
+
}
|
|
99
|
+
function sanitizeStyleAlignment(value) {
|
|
100
|
+
if (!isRecord(value)) {
|
|
101
|
+
return undefined;
|
|
102
|
+
}
|
|
103
|
+
const alignment = {};
|
|
104
|
+
const horizontal = asCellHorizontalAlignment(value['horizontal']);
|
|
105
|
+
const vertical = asCellVerticalAlignment(value['vertical']);
|
|
106
|
+
const wrap = asBoolean(value['wrap']);
|
|
107
|
+
const indent = asFiniteNumber(value['indent']);
|
|
108
|
+
const shrinkToFit = asBoolean(value['shrinkToFit']);
|
|
109
|
+
const readingOrder = asFiniteNumber(value['readingOrder']);
|
|
110
|
+
const textRotation = asFiniteNumber(value['textRotation']);
|
|
111
|
+
const justifyLastLine = asBoolean(value['justifyLastLine']);
|
|
112
|
+
if (horizontal) {
|
|
113
|
+
alignment.horizontal = horizontal;
|
|
114
|
+
}
|
|
115
|
+
if (vertical) {
|
|
116
|
+
alignment.vertical = vertical;
|
|
117
|
+
}
|
|
118
|
+
if (wrap !== undefined) {
|
|
119
|
+
alignment.wrap = wrap;
|
|
120
|
+
}
|
|
121
|
+
if (indent !== undefined) {
|
|
122
|
+
alignment.indent = indent;
|
|
123
|
+
}
|
|
124
|
+
if (shrinkToFit !== undefined) {
|
|
125
|
+
alignment.shrinkToFit = shrinkToFit;
|
|
126
|
+
}
|
|
127
|
+
if (readingOrder !== undefined) {
|
|
128
|
+
alignment.readingOrder = readingOrder;
|
|
129
|
+
}
|
|
130
|
+
if (textRotation !== undefined) {
|
|
131
|
+
alignment.textRotation = textRotation;
|
|
132
|
+
}
|
|
133
|
+
if (justifyLastLine !== undefined) {
|
|
134
|
+
alignment.justifyLastLine = justifyLastLine;
|
|
135
|
+
}
|
|
136
|
+
return Object.keys(alignment).length > 0 ? alignment : undefined;
|
|
137
|
+
}
|
|
138
|
+
function sanitizeBorderSide(value) {
|
|
139
|
+
if (!isRecord(value)) {
|
|
140
|
+
return undefined;
|
|
141
|
+
}
|
|
142
|
+
const style = asCellBorderStyle(value['style']);
|
|
143
|
+
const weight = asCellBorderWeight(value['weight']);
|
|
144
|
+
const color = asString(value['color']);
|
|
145
|
+
if (!style || !weight || !color) {
|
|
146
|
+
return undefined;
|
|
147
|
+
}
|
|
148
|
+
return { style, weight, color };
|
|
149
|
+
}
|
|
150
|
+
function sanitizeStyleBorders(value) {
|
|
151
|
+
if (!isRecord(value)) {
|
|
152
|
+
return undefined;
|
|
153
|
+
}
|
|
154
|
+
const borders = {};
|
|
155
|
+
const top = sanitizeBorderSide(value['top']);
|
|
156
|
+
const right = sanitizeBorderSide(value['right']);
|
|
157
|
+
const bottom = sanitizeBorderSide(value['bottom']);
|
|
158
|
+
const left = sanitizeBorderSide(value['left']);
|
|
159
|
+
if (top) {
|
|
160
|
+
borders.top = top;
|
|
161
|
+
}
|
|
162
|
+
if (right) {
|
|
163
|
+
borders.right = right;
|
|
164
|
+
}
|
|
165
|
+
if (bottom) {
|
|
166
|
+
borders.bottom = bottom;
|
|
167
|
+
}
|
|
168
|
+
if (left) {
|
|
169
|
+
borders.left = left;
|
|
170
|
+
}
|
|
171
|
+
return Object.keys(borders).length > 0 ? borders : undefined;
|
|
172
|
+
}
|
|
173
|
+
function sanitizeStyleProtection(value) {
|
|
174
|
+
if (!isRecord(value)) {
|
|
175
|
+
return undefined;
|
|
176
|
+
}
|
|
177
|
+
const protection = {};
|
|
178
|
+
const locked = asBoolean(value['locked']);
|
|
179
|
+
const hidden = asBoolean(value['hidden']);
|
|
180
|
+
if (locked !== undefined) {
|
|
181
|
+
protection.locked = locked;
|
|
182
|
+
}
|
|
183
|
+
if (hidden !== undefined) {
|
|
184
|
+
protection.hidden = hidden;
|
|
185
|
+
}
|
|
186
|
+
return Object.keys(protection).length > 0 ? protection : undefined;
|
|
187
|
+
}
|
|
188
|
+
export function sanitizeCellStyleRecord(id, value) {
|
|
189
|
+
if (!id || !isRecord(value)) {
|
|
190
|
+
return null;
|
|
191
|
+
}
|
|
192
|
+
const style = { id };
|
|
193
|
+
const fill = sanitizeStyleFill(value['fill']);
|
|
194
|
+
const font = sanitizeStyleFont(value['font']);
|
|
195
|
+
const alignment = sanitizeStyleAlignment(value['alignment']);
|
|
196
|
+
const borders = sanitizeStyleBorders(value['borders']);
|
|
197
|
+
const protection = sanitizeStyleProtection(value['protection']);
|
|
198
|
+
if (fill) {
|
|
199
|
+
style.fill = fill;
|
|
200
|
+
}
|
|
201
|
+
if (font) {
|
|
202
|
+
style.font = font;
|
|
203
|
+
}
|
|
204
|
+
if (alignment) {
|
|
205
|
+
style.alignment = alignment;
|
|
206
|
+
}
|
|
207
|
+
if (borders) {
|
|
208
|
+
style.borders = borders;
|
|
209
|
+
}
|
|
210
|
+
if (protection) {
|
|
211
|
+
style.protection = protection;
|
|
212
|
+
}
|
|
213
|
+
return style;
|
|
214
|
+
}
|
|
215
|
+
//# sourceMappingURL=cell-style-records.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cell-style-records.js","sourceRoot":"","sources":["../src/cell-style-records.ts"],"names":[],"mappings":"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"}
|
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/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,4BAA4B,CAAA;AAC1C,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,wBAAwB,CAAA;AACtC,cAAc,YAAY,CAAA;AAC1B,cAAc,sBAAsB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,wBAAwB,CAAA;AACtC,cAAc,YAAY,CAAA;AAC1B,cAAc,sBAAsB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bilig/protocol",
|
|
3
|
-
"version": "0.16.
|
|
3
|
+
"version": "0.16.11",
|
|
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
|
}
|