@bilig/formula 0.1.73 → 0.1.74

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.
@@ -0,0 +1,11 @@
1
+ import { type BuiltinJsStatus, type BuiltinWasmStatus } from "./builtin-capabilities.js";
2
+ export type FormulaRuntimeStatus = "missing" | "placeholder" | "implemented";
3
+ export type FormulaRuntimeJsStatus = BuiltinJsStatus | FormulaRuntimeStatus;
4
+ export declare function normalizeFormulaName(name: string): string;
5
+ export declare function getFormulaRuntimeLookupNames(name: string): string[];
6
+ export declare function isLookupBuiltinRuntime(name: string): boolean;
7
+ export declare function isScalarBuiltinRuntime(name: string): boolean;
8
+ export declare function isPlaceholderBuiltinRuntime(name: string): boolean;
9
+ export declare function getFormulaRuntimeStatus(name: string): FormulaRuntimeStatus;
10
+ export declare function getFormulaRuntimeJsStatus(name: string): FormulaRuntimeJsStatus;
11
+ export declare function getFormulaRuntimeWasmStatus(name: string): BuiltinWasmStatus;
@@ -0,0 +1,50 @@
1
+ import { builtinJsSpecialNames, builtinWasmEnabledNames, } from "./builtin-capabilities.js";
2
+ import { getBuiltin, hasBuiltin } from "./builtins.js";
3
+ import { lookupBuiltins } from "./builtins/lookup.js";
4
+ import { placeholderBuiltinNames } from "./builtins/placeholder.js";
5
+ const lookupBuiltinNameSet = new Set(Object.keys(lookupBuiltins).map(normalizeFormulaName));
6
+ const placeholderBuiltinNameSet = new Set(placeholderBuiltinNames.map(normalizeFormulaName));
7
+ const runtimeAliasByCanonicalName = new Map([
8
+ ["AVERAGE", "AVG"],
9
+ ["USE.THE.COUNTIF", "COUNTIF"],
10
+ ]);
11
+ export function normalizeFormulaName(name) {
12
+ return name.trim().toUpperCase();
13
+ }
14
+ export function getFormulaRuntimeLookupNames(name) {
15
+ const canonical = normalizeFormulaName(name);
16
+ const alias = runtimeAliasByCanonicalName.get(canonical);
17
+ return alias ? [canonical, alias] : [canonical];
18
+ }
19
+ export function isLookupBuiltinRuntime(name) {
20
+ return getFormulaRuntimeLookupNames(name).some((entry) => lookupBuiltinNameSet.has(entry));
21
+ }
22
+ export function isScalarBuiltinRuntime(name) {
23
+ return getFormulaRuntimeLookupNames(name).some((entry) => getBuiltin(entry) !== undefined);
24
+ }
25
+ export function isPlaceholderBuiltinRuntime(name) {
26
+ return getFormulaRuntimeLookupNames(name).some((entry) => placeholderBuiltinNameSet.has(entry));
27
+ }
28
+ export function getFormulaRuntimeStatus(name) {
29
+ if (isPlaceholderBuiltinRuntime(name)) {
30
+ return "placeholder";
31
+ }
32
+ return getFormulaRuntimeLookupNames(name).some((entry) => hasBuiltin(entry))
33
+ ? "implemented"
34
+ : "missing";
35
+ }
36
+ export function getFormulaRuntimeJsStatus(name) {
37
+ const runtimeStatus = getFormulaRuntimeStatus(name);
38
+ if (runtimeStatus !== "implemented") {
39
+ return runtimeStatus;
40
+ }
41
+ return getFormulaRuntimeLookupNames(name).some((entry) => builtinJsSpecialNames.has(entry))
42
+ ? "special-js-only"
43
+ : "implemented";
44
+ }
45
+ export function getFormulaRuntimeWasmStatus(name) {
46
+ return getFormulaRuntimeLookupNames(name).some((entry) => builtinWasmEnabledNames.has(entry))
47
+ ? "production"
48
+ : "not-started";
49
+ }
50
+ //# sourceMappingURL=runtime-inventory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-inventory.js","sourceRoot":"","sources":["../src/runtime-inventory.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bilig/formula",
3
- "version": "0.1.73",
3
+ "version": "0.1.74",
4
4
  "description": "Excel-style formula parsing, binding, compilation, and evaluation for bilig.",
5
5
  "keywords": [
6
6
  "bilig",
@@ -45,7 +45,7 @@
45
45
  "build": "tsc -p tsconfig.json"
46
46
  },
47
47
  "dependencies": {
48
- "@bilig/protocol": "0.1.73"
48
+ "@bilig/protocol": "0.1.74"
49
49
  },
50
50
  "engines": {
51
51
  "node": ">=24.0.0"