@ricsam/formula-engine 0.1.0 → 0.2.0
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/cjs/core/schema/schema.cjs +3 -3
- package/dist/cjs/core/schema/schema.cjs.map +2 -2
- package/dist/cjs/lib.cjs +2 -1
- package/dist/cjs/lib.cjs.map +3 -3
- package/dist/cjs/package.json +1 -1
- package/dist/mjs/core/schema/schema.mjs +3 -3
- package/dist/mjs/core/schema/schema.mjs.map +2 -2
- package/dist/mjs/lib.mjs +3 -2
- package/dist/mjs/lib.mjs.map +2 -2
- package/dist/mjs/package.json +1 -1
- package/dist/types/core/schema/schema.d.ts +1 -1
- package/dist/types/lib.d.ts +1 -1
- package/package.json +1 -1
|
@@ -30,7 +30,7 @@ var __export = (target, all) => {
|
|
|
30
30
|
var exports_schema = {};
|
|
31
31
|
__export(exports_schema, {
|
|
32
32
|
defineSchema: () => defineSchema,
|
|
33
|
-
|
|
33
|
+
defineHeader: () => defineHeader
|
|
34
34
|
});
|
|
35
35
|
module.exports = __toCommonJS(exports_schema);
|
|
36
36
|
function defineSchema() {
|
|
@@ -70,7 +70,7 @@ function defineSchema() {
|
|
|
70
70
|
};
|
|
71
71
|
return builder;
|
|
72
72
|
}
|
|
73
|
-
var
|
|
73
|
+
var defineHeader = (index, parse, write) => {
|
|
74
74
|
return {
|
|
75
75
|
parse,
|
|
76
76
|
write: write ?? ((value) => ({ value })),
|
|
@@ -78,4 +78,4 @@ var createHeader = (index, parse, write) => {
|
|
|
78
78
|
};
|
|
79
79
|
};
|
|
80
80
|
|
|
81
|
-
//# debugId=
|
|
81
|
+
//# debugId=EE77C44315A3788C64756E2164756E21
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/core/schema/schema.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import type {\n CellAddress,\n FiniteSpreadsheetRange,\n SerializedCellValue,\n} from \"../types.cjs\";\n\n/**\n * Define a schema for the FormulaEngine.\n *\n * The returned object contains:\n * - `declaration`: The schema definitions for tables and cells\n * - `schema`: A type-only placeholder (undefined at runtime) for TypeScript inference\n *\n * The actual working schema is only available through `engine.schema` after\n * attaching the definition to a FormulaEngine instance.\n *\n * @example\n * ```typescript\n * const mySchema = defineSchema<CellMetadata>()\n * .addTableSchema(\"users\", { workbookName: \"wb1\", tableName: \"users\" }, headers)\n * .addCellSchema(\"config\", cellAddress, parse);\n *\n * const engine = new FormulaEngine(mySchema);\n * engine.schema.users.findWhere({ id: 1 }); // Works!\n * engine.schema.config.read(); // Works!\n * mySchema.schema.users.findWhere({ id: 1 }); // Error: schema is undefined at runtime\n * ```\n */\nexport function defineSchema<\n TCellMetadata = unknown,\n TCurrentSchema extends Record<string, object> = Record<string, object>,\n TCurrentDeclaration extends Record<\n string,\n TableSchemaDefinition | CellSchemaDefinition | GridSchemaDefinition\n > = Record<\n string,\n TableSchemaDefinition | CellSchemaDefinition | GridSchemaDefinition\n >\n>(): CreateSchema<TCellMetadata, TCurrentSchema, TCurrentDeclaration> {\n const declaration: Record<\n string,\n TableSchemaDefinition | CellSchemaDefinition | GridSchemaDefinition\n > = {};\n\n const builder: CreateSchema<\n TCellMetadata,\n TCurrentSchema,\n TCurrentDeclaration\n > = {\n addTableSchema(namespace, address, headers) {\n declaration[namespace] = {\n type: \"table\",\n tableName: address.tableName,\n workbookName: address.workbookName,\n headers: headers as any,\n };\n return builder as any;\n },\n\n addCellSchema(\n namespace: string,\n cellAddress: CellAddress,\n parse: any,\n write?: any\n ) {\n declaration[namespace] = {\n type: \"cell\",\n cellAddress,\n parse,\n write: write ?? ((value: unknown) => ({ value: value as SerializedCellValue })),\n };\n return builder as any;\n },\n\n addGridSchema(\n namespace: string,\n address: { workbookName: string; sheetName: string },\n range: FiniteSpreadsheetRange,\n parse: any,\n write?: any\n ) {\n declaration[namespace] = {\n type: \"grid\",\n workbookName: address.workbookName,\n sheetName: address.sheetName,\n range,\n parse,\n write: write ?? ((value: unknown) => ({ value: value as SerializedCellValue })),\n };\n return builder as any;\n },\n\n // schema is undefined at runtime - it only exists for TypeScript type inference\n // The actual working schema is built by the FormulaEngine constructor\n schema: undefined as any as TCurrentSchema,\n\n declaration: declaration as TCurrentDeclaration,\n };\n\n return builder;\n}\n\nexport interface TableSchemaDefinition {\n type: \"table\";\n headers: Headers<unknown>;\n tableName: string;\n workbookName: string;\n}\n\nexport interface CellSchemaDefinition {\n type: \"cell\";\n cellAddress: CellAddress;\n parse: (value: unknown, metadata: unknown) => unknown;\n write: (value: unknown) => {\n value: SerializedCellValue;\n metadata?: unknown;\n };\n}\n\nexport interface GridSchemaDefinition {\n type: \"grid\";\n workbookName: string;\n sheetName: string;\n range: FiniteSpreadsheetRange;\n parse: (value: unknown, metadata: unknown) => unknown;\n write: (value: unknown) => {\n value: SerializedCellValue;\n metadata?: unknown;\n };\n}\n\ntype Headers<TCellMetadata> = Record<\n string,\n {\n parse: (value: SerializedCellValue, metadata: TCellMetadata) => unknown;\n write: (value: any) => {\n value: SerializedCellValue;\n metadata?: TCellMetadata;\n };\n index: number;\n }\n>;\n\n/**\n * Type representing the TableOrm methods exposed on the schema\n */\nexport type TableOrmSchema<TItem extends Record<string, unknown>> = {\n findWhere(filter: Partial<TItem>): TItem | undefined;\n findAllWhere(filter: Partial<TItem>): TItem[];\n append(item: TItem): TItem;\n updateWhere(filter: Partial<TItem>, update: Partial<TItem>): number;\n removeWhere(filter: Partial<TItem>): number;\n count(): number;\n};\n\n/**\n * Type representing the CellOrm methods exposed on the schema\n */\nexport type CellOrmSchema<TValue> = {\n read(): TValue;\n write(value: TValue): void;\n getAddress(): CellAddress;\n};\n\n/**\n * Type representing the GridOrm methods exposed on the schema\n */\nexport type GridOrmSchema<TValue> = {\n columns: readonly TValue[][];\n rows: readonly TValue[][];\n setValue(value: TValue, position: { col: number; row: number }): void;\n getValue(position: { col: number; row: number }): TValue;\n};\n\nexport type SchemaDeclaration = Record<\n string,\n TableSchemaDefinition | CellSchemaDefinition | GridSchemaDefinition\n>;\nexport type Schema = Record<string, object>;\n\n/**\n * Write function type for converting parsed values back to serializable form\n */\ntype WriteFunction<TValue, TCellMetadata> = (value: TValue) => {\n value: SerializedCellValue;\n metadata?: TCellMetadata;\n};\n\n/**\n * Helper type to create the return type for addCellSchema/addGridSchema\n */\ntype AddCellSchemaResult<\n TCellMetadata,\n TCurrentSchema extends Schema,\n TCurrentDeclaration extends SchemaDeclaration,\n T extends string,\n TValue\n> = CreateSchema<\n TCellMetadata,\n TCurrentSchema & {\n [K in T]: CellOrmSchema<TValue>;\n },\n TCurrentDeclaration & {\n [K in T]: {\n type: \"cell\";\n cellAddress: CellAddress;\n parse: (value: unknown, metadata: unknown) => unknown;\n };\n }\n>;\n\ntype AddGridSchemaResult<\n TCellMetadata,\n TCurrentSchema extends Schema,\n TCurrentDeclaration extends SchemaDeclaration,\n T extends string,\n TValue\n> = CreateSchema<\n TCellMetadata,\n TCurrentSchema & {\n [K in T]: GridOrmSchema<TValue>;\n },\n TCurrentDeclaration & {\n [K in T]: {\n type: \"grid\";\n workbookName: string;\n sheetName: string;\n range: FiniteSpreadsheetRange;\n parse: (value: unknown, metadata: unknown) => unknown;\n };\n }\n>;\n\nexport type CreateSchema<\n TCellMetadata,\n TCurrentSchema extends Schema,\n TCurrentDeclaration extends SchemaDeclaration\n> = {\n addTableSchema<T extends string, THeaders extends Headers<TCellMetadata>>(\n namespace: T,\n address: { workbookName: string; tableName: string },\n headers: THeaders\n ): CreateSchema<\n TCellMetadata,\n TCurrentSchema & {\n [K in T]: TableOrmSchema<{\n [H in keyof THeaders]: ReturnType<THeaders[H][\"parse\"]>;\n }>;\n },\n TCurrentDeclaration & {\n [K in T]: {\n type: \"table\";\n tableName: string;\n workbookName: string;\n headers: THeaders;\n };\n }\n >;\n\n // Overload 1: TValue is any type - write is required\n addCellSchema<T extends string, TValue>(\n namespace: T,\n cellAddress: CellAddress,\n parse: (value: unknown, metadata: TCellMetadata) => TValue,\n write: WriteFunction<TValue, TCellMetadata>\n ): AddCellSchemaResult<TCellMetadata, TCurrentSchema, TCurrentDeclaration, T, TValue>;\n\n // Overload 2: TValue extends SerializedCellValue - write is optional\n addCellSchema<T extends string, TValue extends SerializedCellValue>(\n namespace: T,\n cellAddress: CellAddress,\n parse: (value: unknown, metadata: TCellMetadata) => TValue,\n write?: WriteFunction<TValue, TCellMetadata>\n ): AddCellSchemaResult<TCellMetadata, TCurrentSchema, TCurrentDeclaration, T, TValue>;\n\n // Overload 1: TValue is any type - write is required\n addGridSchema<T extends string, TValue>(\n namespace: T,\n address: { workbookName: string; sheetName: string },\n range: FiniteSpreadsheetRange,\n parse: (value: unknown, metadata: TCellMetadata) => TValue,\n write: WriteFunction<TValue, TCellMetadata>\n ): AddGridSchemaResult<TCellMetadata, TCurrentSchema, TCurrentDeclaration, T, TValue>;\n\n // Overload 2: TValue extends SerializedCellValue - write is optional\n addGridSchema<T extends string, TValue extends SerializedCellValue>(\n namespace: T,\n address: { workbookName: string; sheetName: string },\n range: FiniteSpreadsheetRange,\n parse: (value: unknown, metadata: TCellMetadata) => TValue,\n write?: WriteFunction<TValue, TCellMetadata>\n ): AddGridSchemaResult<TCellMetadata, TCurrentSchema, TCurrentDeclaration, T, TValue>;\n\n schema: TCurrentSchema;\n declaration: TCurrentDeclaration;\n};\n\nexport const
|
|
5
|
+
"import type {\n CellAddress,\n FiniteSpreadsheetRange,\n SerializedCellValue,\n} from \"../types.cjs\";\n\n/**\n * Define a schema for the FormulaEngine.\n *\n * The returned object contains:\n * - `declaration`: The schema definitions for tables and cells\n * - `schema`: A type-only placeholder (undefined at runtime) for TypeScript inference\n *\n * The actual working schema is only available through `engine.schema` after\n * attaching the definition to a FormulaEngine instance.\n *\n * @example\n * ```typescript\n * const mySchema = defineSchema<CellMetadata>()\n * .addTableSchema(\"users\", { workbookName: \"wb1\", tableName: \"users\" }, headers)\n * .addCellSchema(\"config\", cellAddress, parse);\n *\n * const engine = new FormulaEngine(mySchema);\n * engine.schema.users.findWhere({ id: 1 }); // Works!\n * engine.schema.config.read(); // Works!\n * mySchema.schema.users.findWhere({ id: 1 }); // Error: schema is undefined at runtime\n * ```\n */\nexport function defineSchema<\n TCellMetadata = unknown,\n TCurrentSchema extends Record<string, object> = Record<string, object>,\n TCurrentDeclaration extends Record<\n string,\n TableSchemaDefinition | CellSchemaDefinition | GridSchemaDefinition\n > = Record<\n string,\n TableSchemaDefinition | CellSchemaDefinition | GridSchemaDefinition\n >\n>(): CreateSchema<TCellMetadata, TCurrentSchema, TCurrentDeclaration> {\n const declaration: Record<\n string,\n TableSchemaDefinition | CellSchemaDefinition | GridSchemaDefinition\n > = {};\n\n const builder: CreateSchema<\n TCellMetadata,\n TCurrentSchema,\n TCurrentDeclaration\n > = {\n addTableSchema(namespace, address, headers) {\n declaration[namespace] = {\n type: \"table\",\n tableName: address.tableName,\n workbookName: address.workbookName,\n headers: headers as any,\n };\n return builder as any;\n },\n\n addCellSchema(\n namespace: string,\n cellAddress: CellAddress,\n parse: any,\n write?: any\n ) {\n declaration[namespace] = {\n type: \"cell\",\n cellAddress,\n parse,\n write: write ?? ((value: unknown) => ({ value: value as SerializedCellValue })),\n };\n return builder as any;\n },\n\n addGridSchema(\n namespace: string,\n address: { workbookName: string; sheetName: string },\n range: FiniteSpreadsheetRange,\n parse: any,\n write?: any\n ) {\n declaration[namespace] = {\n type: \"grid\",\n workbookName: address.workbookName,\n sheetName: address.sheetName,\n range,\n parse,\n write: write ?? ((value: unknown) => ({ value: value as SerializedCellValue })),\n };\n return builder as any;\n },\n\n // schema is undefined at runtime - it only exists for TypeScript type inference\n // The actual working schema is built by the FormulaEngine constructor\n schema: undefined as any as TCurrentSchema,\n\n declaration: declaration as TCurrentDeclaration,\n };\n\n return builder;\n}\n\nexport interface TableSchemaDefinition {\n type: \"table\";\n headers: Headers<unknown>;\n tableName: string;\n workbookName: string;\n}\n\nexport interface CellSchemaDefinition {\n type: \"cell\";\n cellAddress: CellAddress;\n parse: (value: unknown, metadata: unknown) => unknown;\n write: (value: unknown) => {\n value: SerializedCellValue;\n metadata?: unknown;\n };\n}\n\nexport interface GridSchemaDefinition {\n type: \"grid\";\n workbookName: string;\n sheetName: string;\n range: FiniteSpreadsheetRange;\n parse: (value: unknown, metadata: unknown) => unknown;\n write: (value: unknown) => {\n value: SerializedCellValue;\n metadata?: unknown;\n };\n}\n\ntype Headers<TCellMetadata> = Record<\n string,\n {\n parse: (value: SerializedCellValue, metadata: TCellMetadata) => unknown;\n write: (value: any) => {\n value: SerializedCellValue;\n metadata?: TCellMetadata;\n };\n index: number;\n }\n>;\n\n/**\n * Type representing the TableOrm methods exposed on the schema\n */\nexport type TableOrmSchema<TItem extends Record<string, unknown>> = {\n findWhere(filter: Partial<TItem>): TItem | undefined;\n findAllWhere(filter: Partial<TItem>): TItem[];\n append(item: TItem): TItem;\n updateWhere(filter: Partial<TItem>, update: Partial<TItem>): number;\n removeWhere(filter: Partial<TItem>): number;\n count(): number;\n};\n\n/**\n * Type representing the CellOrm methods exposed on the schema\n */\nexport type CellOrmSchema<TValue> = {\n read(): TValue;\n write(value: TValue): void;\n getAddress(): CellAddress;\n};\n\n/**\n * Type representing the GridOrm methods exposed on the schema\n */\nexport type GridOrmSchema<TValue> = {\n columns: readonly TValue[][];\n rows: readonly TValue[][];\n setValue(value: TValue, position: { col: number; row: number }): void;\n getValue(position: { col: number; row: number }): TValue;\n};\n\nexport type SchemaDeclaration = Record<\n string,\n TableSchemaDefinition | CellSchemaDefinition | GridSchemaDefinition\n>;\nexport type Schema = Record<string, object>;\n\n/**\n * Write function type for converting parsed values back to serializable form\n */\ntype WriteFunction<TValue, TCellMetadata> = (value: TValue) => {\n value: SerializedCellValue;\n metadata?: TCellMetadata;\n};\n\n/**\n * Helper type to create the return type for addCellSchema/addGridSchema\n */\ntype AddCellSchemaResult<\n TCellMetadata,\n TCurrentSchema extends Schema,\n TCurrentDeclaration extends SchemaDeclaration,\n T extends string,\n TValue\n> = CreateSchema<\n TCellMetadata,\n TCurrentSchema & {\n [K in T]: CellOrmSchema<TValue>;\n },\n TCurrentDeclaration & {\n [K in T]: {\n type: \"cell\";\n cellAddress: CellAddress;\n parse: (value: unknown, metadata: unknown) => unknown;\n };\n }\n>;\n\ntype AddGridSchemaResult<\n TCellMetadata,\n TCurrentSchema extends Schema,\n TCurrentDeclaration extends SchemaDeclaration,\n T extends string,\n TValue\n> = CreateSchema<\n TCellMetadata,\n TCurrentSchema & {\n [K in T]: GridOrmSchema<TValue>;\n },\n TCurrentDeclaration & {\n [K in T]: {\n type: \"grid\";\n workbookName: string;\n sheetName: string;\n range: FiniteSpreadsheetRange;\n parse: (value: unknown, metadata: unknown) => unknown;\n };\n }\n>;\n\nexport type CreateSchema<\n TCellMetadata,\n TCurrentSchema extends Schema,\n TCurrentDeclaration extends SchemaDeclaration\n> = {\n addTableSchema<T extends string, THeaders extends Headers<TCellMetadata>>(\n namespace: T,\n address: { workbookName: string; tableName: string },\n headers: THeaders\n ): CreateSchema<\n TCellMetadata,\n TCurrentSchema & {\n [K in T]: TableOrmSchema<{\n [H in keyof THeaders]: ReturnType<THeaders[H][\"parse\"]>;\n }>;\n },\n TCurrentDeclaration & {\n [K in T]: {\n type: \"table\";\n tableName: string;\n workbookName: string;\n headers: THeaders;\n };\n }\n >;\n\n // Overload 1: TValue is any type - write is required\n addCellSchema<T extends string, TValue>(\n namespace: T,\n cellAddress: CellAddress,\n parse: (value: unknown, metadata: TCellMetadata) => TValue,\n write: WriteFunction<TValue, TCellMetadata>\n ): AddCellSchemaResult<TCellMetadata, TCurrentSchema, TCurrentDeclaration, T, TValue>;\n\n // Overload 2: TValue extends SerializedCellValue - write is optional\n addCellSchema<T extends string, TValue extends SerializedCellValue>(\n namespace: T,\n cellAddress: CellAddress,\n parse: (value: unknown, metadata: TCellMetadata) => TValue,\n write?: WriteFunction<TValue, TCellMetadata>\n ): AddCellSchemaResult<TCellMetadata, TCurrentSchema, TCurrentDeclaration, T, TValue>;\n\n // Overload 1: TValue is any type - write is required\n addGridSchema<T extends string, TValue>(\n namespace: T,\n address: { workbookName: string; sheetName: string },\n range: FiniteSpreadsheetRange,\n parse: (value: unknown, metadata: TCellMetadata) => TValue,\n write: WriteFunction<TValue, TCellMetadata>\n ): AddGridSchemaResult<TCellMetadata, TCurrentSchema, TCurrentDeclaration, T, TValue>;\n\n // Overload 2: TValue extends SerializedCellValue - write is optional\n addGridSchema<T extends string, TValue extends SerializedCellValue>(\n namespace: T,\n address: { workbookName: string; sheetName: string },\n range: FiniteSpreadsheetRange,\n parse: (value: unknown, metadata: TCellMetadata) => TValue,\n write?: WriteFunction<TValue, TCellMetadata>\n ): AddGridSchemaResult<TCellMetadata, TCurrentSchema, TCurrentDeclaration, T, TValue>;\n\n schema: TCurrentSchema;\n declaration: TCurrentDeclaration;\n};\n\nexport const defineHeader = <TValue, TMetadata>(\n index: number,\n parse: (value: SerializedCellValue, metadata: TMetadata) => TValue,\n write?: (value: TValue) => {\n value: SerializedCellValue;\n metadata?: TMetadata;\n }\n) => {\n return {\n parse,\n write: write ?? ((value) => ({ value })),\n index,\n };\n};\n"
|
|
6
6
|
],
|
|
7
7
|
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BO,SAAS,YAUf,GAAqE;AAAA,EACpE,MAAM,cAGF,CAAC;AAAA,EAEL,MAAM,UAIF;AAAA,IACF,cAAc,CAAC,WAAW,SAAS,SAAS;AAAA,MAC1C,YAAY,aAAa;AAAA,QACvB,MAAM;AAAA,QACN,WAAW,QAAQ;AAAA,QACnB,cAAc,QAAQ;AAAA,QACtB;AAAA,MACF;AAAA,MACA,OAAO;AAAA;AAAA,IAGT,aAAa,CACX,WACA,aACA,OACA,OACA;AAAA,MACA,YAAY,aAAa;AAAA,QACvB,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA,OAAO,UAAU,CAAC,WAAoB,EAAE,MAAoC;AAAA,MAC9E;AAAA,MACA,OAAO;AAAA;AAAA,IAGT,aAAa,CACX,WACA,SACA,OACA,OACA,OACA;AAAA,MACA,YAAY,aAAa;AAAA,QACvB,MAAM;AAAA,QACN,cAAc,QAAQ;AAAA,QACtB,WAAW,QAAQ;AAAA,QACnB;AAAA,QACA;AAAA,QACA,OAAO,UAAU,CAAC,WAAoB,EAAE,MAAoC;AAAA,MAC9E;AAAA,MACA,OAAO;AAAA;AAAA,IAKT,QAAQ;AAAA,IAER;AAAA,EACF;AAAA,EAEA,OAAO;AAAA;AAsMF,IAAM,eAAe,CAC1B,OACA,OACA,UAIG;AAAA,EACH,OAAO;AAAA,IACL;AAAA,IACA,OAAO,UAAU,CAAC,WAAW,EAAE,MAAM;AAAA,IACrC;AAAA,EACF;AAAA;",
|
|
8
|
-
"debugId": "
|
|
8
|
+
"debugId": "EE77C44315A3788C64756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
package/dist/cjs/lib.cjs
CHANGED
|
@@ -47,6 +47,7 @@ var __export = (target, all) => {
|
|
|
47
47
|
var exports_lib = {};
|
|
48
48
|
__export(exports_lib, {
|
|
49
49
|
defineSchema: () => import_schema.defineSchema,
|
|
50
|
+
defineHeader: () => import_schema.defineHeader,
|
|
50
51
|
TableOrm: () => import_table_orm.TableOrm,
|
|
51
52
|
SchemaValidationError: () => import_schema_manager.SchemaValidationError,
|
|
52
53
|
SchemaIntegrityError: () => import_command_executor.SchemaIntegrityError,
|
|
@@ -64,4 +65,4 @@ var import_cell_orm = require("./core/schema/cell-orm.cjs");
|
|
|
64
65
|
var import_schema_manager = require("./core/managers/schema-manager.cjs");
|
|
65
66
|
var import_command_executor = require("./core/commands/command-executor.cjs");
|
|
66
67
|
|
|
67
|
-
//# debugId=
|
|
68
|
+
//# debugId=7606169475E9CE8764756E2164756E21
|
package/dist/cjs/lib.cjs.map
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/lib.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"export { FormulaEngine } from \"./core/engine.cjs\";\nexport * from \"./core/types.cjs\";\nexport * from \"./core/utils.cjs\";\nexport * from \"./core/utils/color-utils.cjs\";\n\n// Schema exports\nexport { defineSchema } from \"./core/schema/schema.cjs\";\nexport type { CreateSchema, SchemaDeclaration, Schema, TableSchemaDefinition, CellSchemaDefinition, TableOrmSchema, CellOrmSchema } from \"./core/schema/schema.cjs\";\nexport { TableOrm } from \"./core/schema/table-orm.cjs\";\nexport { CellOrm } from \"./core/schema/cell-orm.cjs\";\nexport { SchemaValidationError } from \"./core/managers/schema-manager.cjs\";\nexport type { ValidationResult } from \"./core/managers/schema-manager.cjs\";\n\n// Command Pattern exports\nexport { SchemaIntegrityError } from \"./core/commands/command-executor.cjs\";\nexport type { EngineAction, EngineCommand } from \"./core/commands/types.cjs\";\n"
|
|
5
|
+
"export { FormulaEngine } from \"./core/engine.cjs\";\nexport * from \"./core/types.cjs\";\nexport * from \"./core/utils.cjs\";\nexport * from \"./core/utils/color-utils.cjs\";\n\n// Schema exports\nexport { defineSchema, defineHeader } from \"./core/schema/schema.cjs\";\nexport type { CreateSchema, SchemaDeclaration, Schema, TableSchemaDefinition, CellSchemaDefinition, TableOrmSchema, CellOrmSchema } from \"./core/schema/schema.cjs\";\nexport { TableOrm } from \"./core/schema/table-orm.cjs\";\nexport { CellOrm } from \"./core/schema/cell-orm.cjs\";\nexport { SchemaValidationError } from \"./core/managers/schema-manager.cjs\";\nexport type { ValidationResult } from \"./core/managers/schema-manager.cjs\";\n\n// Command Pattern exports\nexport { SchemaIntegrityError } from \"./core/commands/command-executor.cjs\";\nexport type { EngineAction, EngineCommand } from \"./core/commands/types.cjs\";\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": "
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAA8B,IAA9B;AACA;AACA;AACA;AAG2C,IAA3C;AAEyB,IAAzB;AACwB,IAAxB;AACsC,IAAtC;AAIqC,IAArC;",
|
|
8
|
+
"debugId": "7606169475E9CE8764756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
package/dist/cjs/package.json
CHANGED
|
@@ -36,7 +36,7 @@ function defineSchema() {
|
|
|
36
36
|
};
|
|
37
37
|
return builder;
|
|
38
38
|
}
|
|
39
|
-
var
|
|
39
|
+
var defineHeader = (index, parse, write) => {
|
|
40
40
|
return {
|
|
41
41
|
parse,
|
|
42
42
|
write: write ?? ((value) => ({ value })),
|
|
@@ -45,7 +45,7 @@ var createHeader = (index, parse, write) => {
|
|
|
45
45
|
};
|
|
46
46
|
export {
|
|
47
47
|
defineSchema,
|
|
48
|
-
|
|
48
|
+
defineHeader
|
|
49
49
|
};
|
|
50
50
|
|
|
51
|
-
//# debugId=
|
|
51
|
+
//# debugId=5C9087F143083A7464756E2164756E21
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/core/schema/schema.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import type {\n CellAddress,\n FiniteSpreadsheetRange,\n SerializedCellValue,\n} from \"../types.mjs\";\n\n/**\n * Define a schema for the FormulaEngine.\n *\n * The returned object contains:\n * - `declaration`: The schema definitions for tables and cells\n * - `schema`: A type-only placeholder (undefined at runtime) for TypeScript inference\n *\n * The actual working schema is only available through `engine.schema` after\n * attaching the definition to a FormulaEngine instance.\n *\n * @example\n * ```typescript\n * const mySchema = defineSchema<CellMetadata>()\n * .addTableSchema(\"users\", { workbookName: \"wb1\", tableName: \"users\" }, headers)\n * .addCellSchema(\"config\", cellAddress, parse);\n *\n * const engine = new FormulaEngine(mySchema);\n * engine.schema.users.findWhere({ id: 1 }); // Works!\n * engine.schema.config.read(); // Works!\n * mySchema.schema.users.findWhere({ id: 1 }); // Error: schema is undefined at runtime\n * ```\n */\nexport function defineSchema<\n TCellMetadata = unknown,\n TCurrentSchema extends Record<string, object> = Record<string, object>,\n TCurrentDeclaration extends Record<\n string,\n TableSchemaDefinition | CellSchemaDefinition | GridSchemaDefinition\n > = Record<\n string,\n TableSchemaDefinition | CellSchemaDefinition | GridSchemaDefinition\n >\n>(): CreateSchema<TCellMetadata, TCurrentSchema, TCurrentDeclaration> {\n const declaration: Record<\n string,\n TableSchemaDefinition | CellSchemaDefinition | GridSchemaDefinition\n > = {};\n\n const builder: CreateSchema<\n TCellMetadata,\n TCurrentSchema,\n TCurrentDeclaration\n > = {\n addTableSchema(namespace, address, headers) {\n declaration[namespace] = {\n type: \"table\",\n tableName: address.tableName,\n workbookName: address.workbookName,\n headers: headers as any,\n };\n return builder as any;\n },\n\n addCellSchema(\n namespace: string,\n cellAddress: CellAddress,\n parse: any,\n write?: any\n ) {\n declaration[namespace] = {\n type: \"cell\",\n cellAddress,\n parse,\n write: write ?? ((value: unknown) => ({ value: value as SerializedCellValue })),\n };\n return builder as any;\n },\n\n addGridSchema(\n namespace: string,\n address: { workbookName: string; sheetName: string },\n range: FiniteSpreadsheetRange,\n parse: any,\n write?: any\n ) {\n declaration[namespace] = {\n type: \"grid\",\n workbookName: address.workbookName,\n sheetName: address.sheetName,\n range,\n parse,\n write: write ?? ((value: unknown) => ({ value: value as SerializedCellValue })),\n };\n return builder as any;\n },\n\n // schema is undefined at runtime - it only exists for TypeScript type inference\n // The actual working schema is built by the FormulaEngine constructor\n schema: undefined as any as TCurrentSchema,\n\n declaration: declaration as TCurrentDeclaration,\n };\n\n return builder;\n}\n\nexport interface TableSchemaDefinition {\n type: \"table\";\n headers: Headers<unknown>;\n tableName: string;\n workbookName: string;\n}\n\nexport interface CellSchemaDefinition {\n type: \"cell\";\n cellAddress: CellAddress;\n parse: (value: unknown, metadata: unknown) => unknown;\n write: (value: unknown) => {\n value: SerializedCellValue;\n metadata?: unknown;\n };\n}\n\nexport interface GridSchemaDefinition {\n type: \"grid\";\n workbookName: string;\n sheetName: string;\n range: FiniteSpreadsheetRange;\n parse: (value: unknown, metadata: unknown) => unknown;\n write: (value: unknown) => {\n value: SerializedCellValue;\n metadata?: unknown;\n };\n}\n\ntype Headers<TCellMetadata> = Record<\n string,\n {\n parse: (value: SerializedCellValue, metadata: TCellMetadata) => unknown;\n write: (value: any) => {\n value: SerializedCellValue;\n metadata?: TCellMetadata;\n };\n index: number;\n }\n>;\n\n/**\n * Type representing the TableOrm methods exposed on the schema\n */\nexport type TableOrmSchema<TItem extends Record<string, unknown>> = {\n findWhere(filter: Partial<TItem>): TItem | undefined;\n findAllWhere(filter: Partial<TItem>): TItem[];\n append(item: TItem): TItem;\n updateWhere(filter: Partial<TItem>, update: Partial<TItem>): number;\n removeWhere(filter: Partial<TItem>): number;\n count(): number;\n};\n\n/**\n * Type representing the CellOrm methods exposed on the schema\n */\nexport type CellOrmSchema<TValue> = {\n read(): TValue;\n write(value: TValue): void;\n getAddress(): CellAddress;\n};\n\n/**\n * Type representing the GridOrm methods exposed on the schema\n */\nexport type GridOrmSchema<TValue> = {\n columns: readonly TValue[][];\n rows: readonly TValue[][];\n setValue(value: TValue, position: { col: number; row: number }): void;\n getValue(position: { col: number; row: number }): TValue;\n};\n\nexport type SchemaDeclaration = Record<\n string,\n TableSchemaDefinition | CellSchemaDefinition | GridSchemaDefinition\n>;\nexport type Schema = Record<string, object>;\n\n/**\n * Write function type for converting parsed values back to serializable form\n */\ntype WriteFunction<TValue, TCellMetadata> = (value: TValue) => {\n value: SerializedCellValue;\n metadata?: TCellMetadata;\n};\n\n/**\n * Helper type to create the return type for addCellSchema/addGridSchema\n */\ntype AddCellSchemaResult<\n TCellMetadata,\n TCurrentSchema extends Schema,\n TCurrentDeclaration extends SchemaDeclaration,\n T extends string,\n TValue\n> = CreateSchema<\n TCellMetadata,\n TCurrentSchema & {\n [K in T]: CellOrmSchema<TValue>;\n },\n TCurrentDeclaration & {\n [K in T]: {\n type: \"cell\";\n cellAddress: CellAddress;\n parse: (value: unknown, metadata: unknown) => unknown;\n };\n }\n>;\n\ntype AddGridSchemaResult<\n TCellMetadata,\n TCurrentSchema extends Schema,\n TCurrentDeclaration extends SchemaDeclaration,\n T extends string,\n TValue\n> = CreateSchema<\n TCellMetadata,\n TCurrentSchema & {\n [K in T]: GridOrmSchema<TValue>;\n },\n TCurrentDeclaration & {\n [K in T]: {\n type: \"grid\";\n workbookName: string;\n sheetName: string;\n range: FiniteSpreadsheetRange;\n parse: (value: unknown, metadata: unknown) => unknown;\n };\n }\n>;\n\nexport type CreateSchema<\n TCellMetadata,\n TCurrentSchema extends Schema,\n TCurrentDeclaration extends SchemaDeclaration\n> = {\n addTableSchema<T extends string, THeaders extends Headers<TCellMetadata>>(\n namespace: T,\n address: { workbookName: string; tableName: string },\n headers: THeaders\n ): CreateSchema<\n TCellMetadata,\n TCurrentSchema & {\n [K in T]: TableOrmSchema<{\n [H in keyof THeaders]: ReturnType<THeaders[H][\"parse\"]>;\n }>;\n },\n TCurrentDeclaration & {\n [K in T]: {\n type: \"table\";\n tableName: string;\n workbookName: string;\n headers: THeaders;\n };\n }\n >;\n\n // Overload 1: TValue is any type - write is required\n addCellSchema<T extends string, TValue>(\n namespace: T,\n cellAddress: CellAddress,\n parse: (value: unknown, metadata: TCellMetadata) => TValue,\n write: WriteFunction<TValue, TCellMetadata>\n ): AddCellSchemaResult<TCellMetadata, TCurrentSchema, TCurrentDeclaration, T, TValue>;\n\n // Overload 2: TValue extends SerializedCellValue - write is optional\n addCellSchema<T extends string, TValue extends SerializedCellValue>(\n namespace: T,\n cellAddress: CellAddress,\n parse: (value: unknown, metadata: TCellMetadata) => TValue,\n write?: WriteFunction<TValue, TCellMetadata>\n ): AddCellSchemaResult<TCellMetadata, TCurrentSchema, TCurrentDeclaration, T, TValue>;\n\n // Overload 1: TValue is any type - write is required\n addGridSchema<T extends string, TValue>(\n namespace: T,\n address: { workbookName: string; sheetName: string },\n range: FiniteSpreadsheetRange,\n parse: (value: unknown, metadata: TCellMetadata) => TValue,\n write: WriteFunction<TValue, TCellMetadata>\n ): AddGridSchemaResult<TCellMetadata, TCurrentSchema, TCurrentDeclaration, T, TValue>;\n\n // Overload 2: TValue extends SerializedCellValue - write is optional\n addGridSchema<T extends string, TValue extends SerializedCellValue>(\n namespace: T,\n address: { workbookName: string; sheetName: string },\n range: FiniteSpreadsheetRange,\n parse: (value: unknown, metadata: TCellMetadata) => TValue,\n write?: WriteFunction<TValue, TCellMetadata>\n ): AddGridSchemaResult<TCellMetadata, TCurrentSchema, TCurrentDeclaration, T, TValue>;\n\n schema: TCurrentSchema;\n declaration: TCurrentDeclaration;\n};\n\nexport const
|
|
5
|
+
"import type {\n CellAddress,\n FiniteSpreadsheetRange,\n SerializedCellValue,\n} from \"../types.mjs\";\n\n/**\n * Define a schema for the FormulaEngine.\n *\n * The returned object contains:\n * - `declaration`: The schema definitions for tables and cells\n * - `schema`: A type-only placeholder (undefined at runtime) for TypeScript inference\n *\n * The actual working schema is only available through `engine.schema` after\n * attaching the definition to a FormulaEngine instance.\n *\n * @example\n * ```typescript\n * const mySchema = defineSchema<CellMetadata>()\n * .addTableSchema(\"users\", { workbookName: \"wb1\", tableName: \"users\" }, headers)\n * .addCellSchema(\"config\", cellAddress, parse);\n *\n * const engine = new FormulaEngine(mySchema);\n * engine.schema.users.findWhere({ id: 1 }); // Works!\n * engine.schema.config.read(); // Works!\n * mySchema.schema.users.findWhere({ id: 1 }); // Error: schema is undefined at runtime\n * ```\n */\nexport function defineSchema<\n TCellMetadata = unknown,\n TCurrentSchema extends Record<string, object> = Record<string, object>,\n TCurrentDeclaration extends Record<\n string,\n TableSchemaDefinition | CellSchemaDefinition | GridSchemaDefinition\n > = Record<\n string,\n TableSchemaDefinition | CellSchemaDefinition | GridSchemaDefinition\n >\n>(): CreateSchema<TCellMetadata, TCurrentSchema, TCurrentDeclaration> {\n const declaration: Record<\n string,\n TableSchemaDefinition | CellSchemaDefinition | GridSchemaDefinition\n > = {};\n\n const builder: CreateSchema<\n TCellMetadata,\n TCurrentSchema,\n TCurrentDeclaration\n > = {\n addTableSchema(namespace, address, headers) {\n declaration[namespace] = {\n type: \"table\",\n tableName: address.tableName,\n workbookName: address.workbookName,\n headers: headers as any,\n };\n return builder as any;\n },\n\n addCellSchema(\n namespace: string,\n cellAddress: CellAddress,\n parse: any,\n write?: any\n ) {\n declaration[namespace] = {\n type: \"cell\",\n cellAddress,\n parse,\n write: write ?? ((value: unknown) => ({ value: value as SerializedCellValue })),\n };\n return builder as any;\n },\n\n addGridSchema(\n namespace: string,\n address: { workbookName: string; sheetName: string },\n range: FiniteSpreadsheetRange,\n parse: any,\n write?: any\n ) {\n declaration[namespace] = {\n type: \"grid\",\n workbookName: address.workbookName,\n sheetName: address.sheetName,\n range,\n parse,\n write: write ?? ((value: unknown) => ({ value: value as SerializedCellValue })),\n };\n return builder as any;\n },\n\n // schema is undefined at runtime - it only exists for TypeScript type inference\n // The actual working schema is built by the FormulaEngine constructor\n schema: undefined as any as TCurrentSchema,\n\n declaration: declaration as TCurrentDeclaration,\n };\n\n return builder;\n}\n\nexport interface TableSchemaDefinition {\n type: \"table\";\n headers: Headers<unknown>;\n tableName: string;\n workbookName: string;\n}\n\nexport interface CellSchemaDefinition {\n type: \"cell\";\n cellAddress: CellAddress;\n parse: (value: unknown, metadata: unknown) => unknown;\n write: (value: unknown) => {\n value: SerializedCellValue;\n metadata?: unknown;\n };\n}\n\nexport interface GridSchemaDefinition {\n type: \"grid\";\n workbookName: string;\n sheetName: string;\n range: FiniteSpreadsheetRange;\n parse: (value: unknown, metadata: unknown) => unknown;\n write: (value: unknown) => {\n value: SerializedCellValue;\n metadata?: unknown;\n };\n}\n\ntype Headers<TCellMetadata> = Record<\n string,\n {\n parse: (value: SerializedCellValue, metadata: TCellMetadata) => unknown;\n write: (value: any) => {\n value: SerializedCellValue;\n metadata?: TCellMetadata;\n };\n index: number;\n }\n>;\n\n/**\n * Type representing the TableOrm methods exposed on the schema\n */\nexport type TableOrmSchema<TItem extends Record<string, unknown>> = {\n findWhere(filter: Partial<TItem>): TItem | undefined;\n findAllWhere(filter: Partial<TItem>): TItem[];\n append(item: TItem): TItem;\n updateWhere(filter: Partial<TItem>, update: Partial<TItem>): number;\n removeWhere(filter: Partial<TItem>): number;\n count(): number;\n};\n\n/**\n * Type representing the CellOrm methods exposed on the schema\n */\nexport type CellOrmSchema<TValue> = {\n read(): TValue;\n write(value: TValue): void;\n getAddress(): CellAddress;\n};\n\n/**\n * Type representing the GridOrm methods exposed on the schema\n */\nexport type GridOrmSchema<TValue> = {\n columns: readonly TValue[][];\n rows: readonly TValue[][];\n setValue(value: TValue, position: { col: number; row: number }): void;\n getValue(position: { col: number; row: number }): TValue;\n};\n\nexport type SchemaDeclaration = Record<\n string,\n TableSchemaDefinition | CellSchemaDefinition | GridSchemaDefinition\n>;\nexport type Schema = Record<string, object>;\n\n/**\n * Write function type for converting parsed values back to serializable form\n */\ntype WriteFunction<TValue, TCellMetadata> = (value: TValue) => {\n value: SerializedCellValue;\n metadata?: TCellMetadata;\n};\n\n/**\n * Helper type to create the return type for addCellSchema/addGridSchema\n */\ntype AddCellSchemaResult<\n TCellMetadata,\n TCurrentSchema extends Schema,\n TCurrentDeclaration extends SchemaDeclaration,\n T extends string,\n TValue\n> = CreateSchema<\n TCellMetadata,\n TCurrentSchema & {\n [K in T]: CellOrmSchema<TValue>;\n },\n TCurrentDeclaration & {\n [K in T]: {\n type: \"cell\";\n cellAddress: CellAddress;\n parse: (value: unknown, metadata: unknown) => unknown;\n };\n }\n>;\n\ntype AddGridSchemaResult<\n TCellMetadata,\n TCurrentSchema extends Schema,\n TCurrentDeclaration extends SchemaDeclaration,\n T extends string,\n TValue\n> = CreateSchema<\n TCellMetadata,\n TCurrentSchema & {\n [K in T]: GridOrmSchema<TValue>;\n },\n TCurrentDeclaration & {\n [K in T]: {\n type: \"grid\";\n workbookName: string;\n sheetName: string;\n range: FiniteSpreadsheetRange;\n parse: (value: unknown, metadata: unknown) => unknown;\n };\n }\n>;\n\nexport type CreateSchema<\n TCellMetadata,\n TCurrentSchema extends Schema,\n TCurrentDeclaration extends SchemaDeclaration\n> = {\n addTableSchema<T extends string, THeaders extends Headers<TCellMetadata>>(\n namespace: T,\n address: { workbookName: string; tableName: string },\n headers: THeaders\n ): CreateSchema<\n TCellMetadata,\n TCurrentSchema & {\n [K in T]: TableOrmSchema<{\n [H in keyof THeaders]: ReturnType<THeaders[H][\"parse\"]>;\n }>;\n },\n TCurrentDeclaration & {\n [K in T]: {\n type: \"table\";\n tableName: string;\n workbookName: string;\n headers: THeaders;\n };\n }\n >;\n\n // Overload 1: TValue is any type - write is required\n addCellSchema<T extends string, TValue>(\n namespace: T,\n cellAddress: CellAddress,\n parse: (value: unknown, metadata: TCellMetadata) => TValue,\n write: WriteFunction<TValue, TCellMetadata>\n ): AddCellSchemaResult<TCellMetadata, TCurrentSchema, TCurrentDeclaration, T, TValue>;\n\n // Overload 2: TValue extends SerializedCellValue - write is optional\n addCellSchema<T extends string, TValue extends SerializedCellValue>(\n namespace: T,\n cellAddress: CellAddress,\n parse: (value: unknown, metadata: TCellMetadata) => TValue,\n write?: WriteFunction<TValue, TCellMetadata>\n ): AddCellSchemaResult<TCellMetadata, TCurrentSchema, TCurrentDeclaration, T, TValue>;\n\n // Overload 1: TValue is any type - write is required\n addGridSchema<T extends string, TValue>(\n namespace: T,\n address: { workbookName: string; sheetName: string },\n range: FiniteSpreadsheetRange,\n parse: (value: unknown, metadata: TCellMetadata) => TValue,\n write: WriteFunction<TValue, TCellMetadata>\n ): AddGridSchemaResult<TCellMetadata, TCurrentSchema, TCurrentDeclaration, T, TValue>;\n\n // Overload 2: TValue extends SerializedCellValue - write is optional\n addGridSchema<T extends string, TValue extends SerializedCellValue>(\n namespace: T,\n address: { workbookName: string; sheetName: string },\n range: FiniteSpreadsheetRange,\n parse: (value: unknown, metadata: TCellMetadata) => TValue,\n write?: WriteFunction<TValue, TCellMetadata>\n ): AddGridSchemaResult<TCellMetadata, TCurrentSchema, TCurrentDeclaration, T, TValue>;\n\n schema: TCurrentSchema;\n declaration: TCurrentDeclaration;\n};\n\nexport const defineHeader = <TValue, TMetadata>(\n index: number,\n parse: (value: SerializedCellValue, metadata: TMetadata) => TValue,\n write?: (value: TValue) => {\n value: SerializedCellValue;\n metadata?: TMetadata;\n }\n) => {\n return {\n parse,\n write: write ?? ((value) => ({ value })),\n index,\n };\n};\n"
|
|
6
6
|
],
|
|
7
7
|
"mappings": ";AA4BO,SAAS,YAUf,GAAqE;AAAA,EACpE,MAAM,cAGF,CAAC;AAAA,EAEL,MAAM,UAIF;AAAA,IACF,cAAc,CAAC,WAAW,SAAS,SAAS;AAAA,MAC1C,YAAY,aAAa;AAAA,QACvB,MAAM;AAAA,QACN,WAAW,QAAQ;AAAA,QACnB,cAAc,QAAQ;AAAA,QACtB;AAAA,MACF;AAAA,MACA,OAAO;AAAA;AAAA,IAGT,aAAa,CACX,WACA,aACA,OACA,OACA;AAAA,MACA,YAAY,aAAa;AAAA,QACvB,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA,OAAO,UAAU,CAAC,WAAoB,EAAE,MAAoC;AAAA,MAC9E;AAAA,MACA,OAAO;AAAA;AAAA,IAGT,aAAa,CACX,WACA,SACA,OACA,OACA,OACA;AAAA,MACA,YAAY,aAAa;AAAA,QACvB,MAAM;AAAA,QACN,cAAc,QAAQ;AAAA,QACtB,WAAW,QAAQ;AAAA,QACnB;AAAA,QACA;AAAA,QACA,OAAO,UAAU,CAAC,WAAoB,EAAE,MAAoC;AAAA,MAC9E;AAAA,MACA,OAAO;AAAA;AAAA,IAKT,QAAQ;AAAA,IAER;AAAA,EACF;AAAA,EAEA,OAAO;AAAA;AAsMF,IAAM,eAAe,CAC1B,OACA,OACA,UAIG;AAAA,EACH,OAAO;AAAA,IACL;AAAA,IACA,OAAO,UAAU,CAAC,WAAW,EAAE,MAAM;AAAA,IACrC;AAAA,EACF;AAAA;",
|
|
8
|
-
"debugId": "
|
|
8
|
+
"debugId": "5C9087F143083A7464756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
package/dist/mjs/lib.mjs
CHANGED
|
@@ -4,13 +4,14 @@ import { FormulaEngine } from "./core/engine.mjs";
|
|
|
4
4
|
export * from "./core/types.mjs";
|
|
5
5
|
export * from "./core/utils.mjs";
|
|
6
6
|
export * from "./core/utils/color-utils.mjs";
|
|
7
|
-
import { defineSchema } from "./core/schema/schema.mjs";
|
|
7
|
+
import { defineSchema, defineHeader } from "./core/schema/schema.mjs";
|
|
8
8
|
import { TableOrm } from "./core/schema/table-orm.mjs";
|
|
9
9
|
import { CellOrm } from "./core/schema/cell-orm.mjs";
|
|
10
10
|
import { SchemaValidationError } from "./core/managers/schema-manager.mjs";
|
|
11
11
|
import { SchemaIntegrityError } from "./core/commands/command-executor.mjs";
|
|
12
12
|
export {
|
|
13
13
|
defineSchema,
|
|
14
|
+
defineHeader,
|
|
14
15
|
TableOrm,
|
|
15
16
|
SchemaValidationError,
|
|
16
17
|
SchemaIntegrityError,
|
|
@@ -18,4 +19,4 @@ export {
|
|
|
18
19
|
CellOrm
|
|
19
20
|
};
|
|
20
21
|
|
|
21
|
-
//# debugId=
|
|
22
|
+
//# debugId=D42F2BBEF074B4FE64756E2164756E21
|
package/dist/mjs/lib.mjs.map
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/lib.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"export { FormulaEngine } from \"./core/engine.mjs\";\nexport * from \"./core/types.mjs\";\nexport * from \"./core/utils.mjs\";\nexport * from \"./core/utils/color-utils.mjs\";\n\n// Schema exports\nexport { defineSchema } from \"./core/schema/schema.mjs\";\nexport type { CreateSchema, SchemaDeclaration, Schema, TableSchemaDefinition, CellSchemaDefinition, TableOrmSchema, CellOrmSchema } from \"./core/schema/schema.mjs\";\nexport { TableOrm } from \"./core/schema/table-orm.mjs\";\nexport { CellOrm } from \"./core/schema/cell-orm.mjs\";\nexport { SchemaValidationError } from \"./core/managers/schema-manager.mjs\";\nexport type { ValidationResult } from \"./core/managers/schema-manager.mjs\";\n\n// Command Pattern exports\nexport { SchemaIntegrityError } from \"./core/commands/command-executor.mjs\";\nexport type { EngineAction, EngineCommand } from \"./core/commands/types.mjs\";\n"
|
|
5
|
+
"export { FormulaEngine } from \"./core/engine.mjs\";\nexport * from \"./core/types.mjs\";\nexport * from \"./core/utils.mjs\";\nexport * from \"./core/utils/color-utils.mjs\";\n\n// Schema exports\nexport { defineSchema, defineHeader } from \"./core/schema/schema.mjs\";\nexport type { CreateSchema, SchemaDeclaration, Schema, TableSchemaDefinition, CellSchemaDefinition, TableOrmSchema, CellOrmSchema } from \"./core/schema/schema.mjs\";\nexport { TableOrm } from \"./core/schema/table-orm.mjs\";\nexport { CellOrm } from \"./core/schema/cell-orm.mjs\";\nexport { SchemaValidationError } from \"./core/managers/schema-manager.mjs\";\nexport type { ValidationResult } from \"./core/managers/schema-manager.mjs\";\n\n// Command Pattern exports\nexport { SchemaIntegrityError } from \"./core/commands/command-executor.mjs\";\nexport type { EngineAction, EngineCommand } from \"./core/commands/types.mjs\";\n"
|
|
6
6
|
],
|
|
7
7
|
"mappings": ";AAAA;AAAA;AACA;AACA;AACA;AAGA;AAEA;AACA;AACA;AAIA;",
|
|
8
|
-
"debugId": "
|
|
8
|
+
"debugId": "D42F2BBEF074B4FE64756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
package/dist/mjs/package.json
CHANGED
|
@@ -151,7 +151,7 @@ export type CreateSchema<TCellMetadata, TCurrentSchema extends Schema, TCurrentD
|
|
|
151
151
|
schema: TCurrentSchema;
|
|
152
152
|
declaration: TCurrentDeclaration;
|
|
153
153
|
};
|
|
154
|
-
export declare const
|
|
154
|
+
export declare const defineHeader: <TValue, TMetadata>(index: number, parse: (value: SerializedCellValue, metadata: TMetadata) => TValue, write?: (value: TValue) => {
|
|
155
155
|
value: SerializedCellValue;
|
|
156
156
|
metadata?: TMetadata;
|
|
157
157
|
}) => {
|
package/dist/types/lib.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export { FormulaEngine } from "./core/engine";
|
|
|
2
2
|
export * from "./core/types";
|
|
3
3
|
export * from "./core/utils";
|
|
4
4
|
export * from "./core/utils/color-utils";
|
|
5
|
-
export { defineSchema } from "./core/schema/schema";
|
|
5
|
+
export { defineSchema, defineHeader } from "./core/schema/schema";
|
|
6
6
|
export type { CreateSchema, SchemaDeclaration, Schema, TableSchemaDefinition, CellSchemaDefinition, TableOrmSchema, CellOrmSchema } from "./core/schema/schema";
|
|
7
7
|
export { TableOrm } from "./core/schema/table-orm";
|
|
8
8
|
export { CellOrm } from "./core/schema/cell-orm";
|