@sheetxl/primitives 0.7.21 → 0.7.23-beta.1

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 (45) hide show
  1. package/browser/cjs/index.cjs +1 -6
  2. package/browser/esm/index.mjs +683 -307
  3. package/node/esm/index.mjs +684 -307
  4. package/package.json +1 -1
  5. package/types/index.d.ts +2 -1622
  6. package/types/src/ErrorPolicy.d.ts +78 -0
  7. package/types/src/ErrorPolicy.d.ts.map +1 -0
  8. package/types/src/Flatten.d.ts +34 -0
  9. package/types/src/Flatten.d.ts.map +1 -0
  10. package/types/src/FormulaContext.d.ts +227 -0
  11. package/types/src/FormulaContext.d.ts.map +1 -0
  12. package/types/src/FormulaError.d.ts +328 -0
  13. package/types/src/FormulaError.d.ts.map +1 -0
  14. package/types/src/IFormulaContext.d.ts +533 -0
  15. package/types/src/IFormulaContext.d.ts.map +1 -0
  16. package/types/src/IFunction.d.ts +608 -0
  17. package/types/src/IFunction.d.ts.map +1 -0
  18. package/types/src/IRange.d.ts +1091 -0
  19. package/types/src/IRange.d.ts.map +1 -0
  20. package/types/src/IRangeStats.d.ts +478 -0
  21. package/types/src/IRangeStats.d.ts.map +1 -0
  22. package/types/src/IReferenceRange.d.ts +22 -0
  23. package/types/src/IReferenceRange.d.ts.map +1 -0
  24. package/types/src/IRichData.d.ts +37 -0
  25. package/types/src/IRichData.d.ts.map +1 -0
  26. package/types/src/IRuntime.d.ts +65 -0
  27. package/types/src/IRuntime.d.ts.map +1 -0
  28. package/types/src/Lambda.d.ts +17 -0
  29. package/types/src/Lambda.d.ts.map +1 -0
  30. package/types/src/LocaleProfile.d.ts +79 -0
  31. package/types/src/LocaleProfile.d.ts.map +1 -0
  32. package/types/src/Observable.d.ts +46 -0
  33. package/types/src/Observable.d.ts.map +1 -0
  34. package/types/src/Omittable.d.ts +50 -0
  35. package/types/src/Omittable.d.ts.map +1 -0
  36. package/types/src/Repeating.d.ts +66 -0
  37. package/types/src/Repeating.d.ts.map +1 -0
  38. package/types/src/Scalar.d.ts +67 -0
  39. package/types/src/Scalar.d.ts.map +1 -0
  40. package/types/src/ScalarType.d.ts +109 -0
  41. package/types/src/ScalarType.d.ts.map +1 -0
  42. package/types/src/WildCard.d.ts +26 -0
  43. package/types/src/WildCard.d.ts.map +1 -0
  44. package/types/src/index.d.ts +20 -0
  45. package/types/src/index.d.ts.map +1 -0
@@ -0,0 +1,328 @@
1
+ import { IRange } from './IRange';
2
+ import { IReferenceRange } from './IReferenceRange';
3
+ /**
4
+ * An error returned from a formula calculation.
5
+ *
6
+ * Standard Error Codes
7
+ * 0. #PARSE! If the formula contains a syntax error. (Not part of the OOXML spec.)
8
+ * 1. #NULL! Intersection of two ranges that don't intersect.
9
+ * 2. #DIV/0! Division by zero.
10
+ * 3. #VALUE! Wrong type of argument or operand.
11
+ * 4. #REF! Invalid cell reference.
12
+ * 5. #NAME? Unrecognized name (function, named range, etc.).
13
+ * 6. #NUM! Invalid numeric value.
14
+ * 7. #N/A Value not available.
15
+ * # Office 365
16
+ * 8. #GETTING_DATA This is raised for long running calculations that are not yet complete.
17
+ *
18
+ * (Saves as #N/A to disk)
19
+ * 9. #SPILL! Formula's output range is blocked.
20
+ *
21
+ * SpillErrorScalarSubType | "Unknown" | "Collision" | "IndeterminateSize" | "WorksheetEdge" | "OutOfMemoryWhileCalc" | "Table" | "MergedCell"
22
+ * # Office 2023
23
+ * 10. #CONNECT! This occurs when a data type is used that is not currently supported in this version of Excel.
24
+ * 11. #BLOCKED! Indicates that an action or feature is blocked, possibly due to security settings, protected view, or other restrictions. Often related to online features, external links, or macros.
25
+ * 12. #UNKNOWN! May be returned in the case of a protected workbook.
26
+ * 13. #FIELD! Invalid field name for a data type.
27
+ * 14. #CALC! Calculation error (often with LET or LAMBDA or a splitted array).
28
+ * 15.
29
+ * 16. #BUSY! When waiting on an external data source to return data.
30
+ * 17.
31
+ * 18.
32
+ * 19. #PYTHON! The Python interpreter returned the following error: Unexpected failure.
33
+ * 20. #TIMEOUT! Indicates that the operation took too long to complete.
34
+ */
35
+ export declare namespace FormulaError {
36
+ /**
37
+ * Standardized error codes for error types.
38
+ */
39
+ const Code: {
40
+ readonly Parse: 0;
41
+ readonly Null: 1;
42
+ readonly Div0: 2;
43
+ readonly Value: 3;
44
+ readonly Ref: 4;
45
+ readonly Name: 5;
46
+ readonly Num: 6;
47
+ readonly NA: 7;
48
+ readonly GettingData: 8;
49
+ readonly Spill: 9;
50
+ readonly Connect: 10;
51
+ readonly Blocked: 11;
52
+ readonly Unknown: 12;
53
+ readonly Field: 13;
54
+ readonly Calc: 14;
55
+ readonly Busy: 16;
56
+ readonly Python: 19;
57
+ readonly Timeout: 20;
58
+ };
59
+ /**
60
+ * Standardized error labels for error types.
61
+ */
62
+ const Label: {
63
+ readonly Parse: "#PARSE!";
64
+ readonly Null: "#NULL!";
65
+ readonly Div0: "#DIV/0!";
66
+ readonly Value: "#VALUE!";
67
+ readonly Ref: "#REF!";
68
+ readonly Name: "#NAME?";
69
+ readonly Num: "#NUM!";
70
+ readonly NA: "#N/A";
71
+ readonly GettingData: "#GETTING_DATA";
72
+ readonly Spill: "#SPILL!";
73
+ readonly Connect: "#CONNECT!";
74
+ readonly Blocked: "#BLOCKED!";
75
+ readonly Unknown: "#UNKNOWN!";
76
+ readonly Field: "#FIELD!";
77
+ readonly Calc: "#CALC!";
78
+ readonly Busy: "#BUSY!";
79
+ readonly Python: "#PYTHON!";
80
+ readonly Timeout: "#TIMEOUT!";
81
+ };
82
+ class Known extends Error {
83
+ protected _label: string;
84
+ protected _code: number;
85
+ protected details: any;
86
+ constructor(code: number, label: string, message?: string, details?: ErrorOptions);
87
+ static code: number;
88
+ get isFormulaError(): true;
89
+ getLabel(): string;
90
+ getCode(): number;
91
+ /**
92
+ * Return true if two errors are same.
93
+ *
94
+ * @param other any object to compare.
95
+ * @returns if two errors are the same type.
96
+ */
97
+ equals(other: any): boolean;
98
+ get [Symbol.toStringTag](): string;
99
+ /**
100
+ * The canonical spreadsheet spelling — `#VALUE!`, `#N/A`.
101
+ *
102
+ * @remarks
103
+ * Localization is a display concern and belongs to the layer that has a language pack
104
+ * (`localizeErrorLabel`); this stays canonical.
105
+ */
106
+ toString(): string;
107
+ }
108
+ /**
109
+ * #Parse!
110
+ *
111
+ * @remarks
112
+ * Not part of the OOXML spec.
113
+ */
114
+ class Parse extends Known {
115
+ constructor(message?: string, details?: ErrorOptions & {
116
+ line?: number;
117
+ column?: number;
118
+ offset?: number;
119
+ length?: number;
120
+ });
121
+ static code: number;
122
+ getDetails(): {
123
+ line: number;
124
+ column: number;
125
+ offset: number;
126
+ length: number;
127
+ };
128
+ }
129
+ /**
130
+ * When a reference is provided that doesn't exist. Usually an invalid range specification.
131
+ * =SUM(G5 G23)
132
+ */
133
+ class Null extends Known {
134
+ constructor(message?: string, details?: ErrorOptions);
135
+ static code: number;
136
+ }
137
+ /**
138
+ * Divide by Zero.
139
+ * * ex: The formula or function used is divided by zero.
140
+ */
141
+ class Div0 extends Known {
142
+ constructor(message?: string, details?: ErrorOptions);
143
+ static code: number;
144
+ }
145
+ /**
146
+ * Wrong argument in the formula. For example a string was given but a number was
147
+ * * ex: The row index number is too small. Specify a number great than or equal to 1.
148
+ */
149
+ class Value extends Known {
150
+ constructor(message?: string, details?: ErrorOptions);
151
+ static code: number;
152
+ }
153
+ /**
154
+ * Reference was remove due to a move or delete of cells.
155
+ * * ex: Moving or deleting cells caused an invalid cell reference, or function is returning reference error.
156
+ */
157
+ class Ref extends Known {
158
+ constructor(message?: string, details?: ErrorOptions);
159
+ static code: number;
160
+ }
161
+ /**
162
+ * A formula has references that can not be resolved or may contain parsing errors.
163
+ * * ex: The formula contains unrecognized text.
164
+ */
165
+ class Name extends Known {
166
+ constructor(message?: string, details?: ErrorOptions);
167
+ static code: number;
168
+ }
169
+ /**
170
+ * Invalid number.
171
+ */
172
+ class Num extends Known {
173
+ constructor(message?: string, details?: ErrorOptions);
174
+ static code: number;
175
+ }
176
+ /**
177
+ * Not available.
178
+ *
179
+ * @remarks
180
+ * Indicates the data needed is not available.
181
+ */
182
+ class NA extends Known {
183
+ constructor(message?: string, details?: ErrorOptions);
184
+ static code: number;
185
+ }
186
+ /**
187
+ * Getting Data.
188
+ */
189
+ class GettingData extends Known {
190
+ constructor(message?: string, details?: ErrorOptions);
191
+ static code: number;
192
+ }
193
+ /**
194
+ * Spill.
195
+ */
196
+ class Spill extends Known {
197
+ constructor(message?: string, details?: ErrorOptions);
198
+ static code: number;
199
+ }
200
+ /**
201
+ * Connect.
202
+ */
203
+ class Connect extends Known {
204
+ constructor(message?: string, details?: ErrorOptions);
205
+ static code: number;
206
+ }
207
+ /**
208
+ * Blocked.
209
+ */
210
+ class Blocked extends Known {
211
+ constructor(message?: string, details?: ErrorOptions);
212
+ static code: number;
213
+ }
214
+ /**
215
+ * Unknown.
216
+ */
217
+ class Unknown extends Known {
218
+ constructor(message?: string, details?: ErrorOptions);
219
+ static code: number;
220
+ }
221
+ /**
222
+ * Field does not exist.
223
+ *
224
+ * @remarks
225
+ * Indicates a field or property being access is not available.
226
+ */
227
+ class Field extends Known {
228
+ constructor(message?: string, details?: ErrorOptions);
229
+ static code: number;
230
+ }
231
+ /**
232
+ * Calc.
233
+ */
234
+ class Calc extends Known {
235
+ constructor(message?: string, details?: ErrorOptions);
236
+ static code: number;
237
+ }
238
+ /**
239
+ * Busy.
240
+ */
241
+ class Busy extends Known {
242
+ constructor(message?: string, details?: ErrorOptions);
243
+ static code: number;
244
+ }
245
+ /**
246
+ * Python.
247
+ */
248
+ class Python extends Known {
249
+ constructor(message?: string, details?: ErrorOptions);
250
+ static code: number;
251
+ }
252
+ /**
253
+ * Unknown.
254
+ */
255
+ class Timeout extends Known {
256
+ constructor(message?: string, details?: ErrorOptions);
257
+ static code: number;
258
+ }
259
+ }
260
+ export declare namespace FormulaError {
261
+ /**
262
+ * Returns a built-in error instance based on the error code.
263
+ *
264
+ * @param code The error code corresponding to a built-in error type.
265
+ * @returns A built-in error instance.
266
+ */
267
+ const getBuiltInByCode: (code: number) => FormulaError.Known | undefined;
268
+ /**
269
+ * Built-in errors instances for easy reference and comparison.
270
+ */
271
+ const BuiltIn: {
272
+ readonly Parse: FormulaError.Known;
273
+ readonly Null: FormulaError.Known;
274
+ readonly Div0: FormulaError.Known;
275
+ readonly Value: FormulaError.Known;
276
+ readonly Ref: FormulaError.Known;
277
+ readonly Name: FormulaError.Known;
278
+ readonly Num: FormulaError.Known;
279
+ readonly NA: FormulaError.Known;
280
+ readonly GettingData: FormulaError.Known;
281
+ readonly Spill: FormulaError.Known;
282
+ readonly Connect: FormulaError.Known;
283
+ readonly Blocked: FormulaError.Known;
284
+ readonly Unknown: FormulaError.Known;
285
+ readonly Field: FormulaError.Known;
286
+ readonly Calc: FormulaError.Known;
287
+ readonly Busy: FormulaError.Known;
288
+ readonly Python: FormulaError.Known;
289
+ readonly Timeout: FormulaError.Known;
290
+ };
291
+ /**
292
+ * Creates a new error instance based on the provided label or code.
293
+ *
294
+ * @param label The error label or code corresponding to a built-in error type.
295
+ * @param message Optional custom error message.
296
+ * @param details Optional additional error details.
297
+ * @returns A new instance of the specified error type, or an Unknown error if the label/code is not recognized.
298
+ *
299
+ * @remarks
300
+ * * Useful when wanting to convey details beyond the standard error code.
301
+ * * This should be used sparingly as creating new objects can have a performance impact.
302
+ */
303
+ const newTypedError: (label: string | number, message?: string, details?: ErrorOptions) => FormulaError.Known;
304
+ /**
305
+ * Returns a built-in error instance based on the error label.
306
+ *
307
+ * @param label The error label corresponding to a built-in error type.
308
+ * @returns A built-in error instance.
309
+ */
310
+ const getBuiltInByLabel: (label: string) => FormulaError.Known | undefined;
311
+ /**
312
+ * Used to determine if a value is a FormulaError.Known.
313
+ *
314
+ * @param v The value to check.
315
+ * @param code If provided, also checks that the error code matches.
316
+ * @returns a boolean.
317
+ */
318
+ function isError(v: unknown, code?: number): v is FormulaError.Known;
319
+ interface Known extends IRange {
320
+ }
321
+ interface Known extends IReferenceRange {
322
+ }
323
+ }
324
+ /**
325
+ * Indicates that the value can either be a valid value of type T or a FormulaError.Known.
326
+ */
327
+ export type MaybeError<T> = T | FormulaError.Known;
328
+ //# sourceMappingURL=FormulaError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormulaError.d.ts","sourceRoot":"","sources":["../../../src/FormulaError.ts"],"names":[],"mappings":"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"}