@objectql/core 4.0.1 → 4.0.2

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.
@@ -182,8 +182,9 @@ class ObjectRepository {
182
182
  };
183
183
  // Evaluate each formula field
184
184
  for (const [fieldName, fieldConfig] of Object.entries(schema.fields)) {
185
- if (fieldConfig.type === 'formula' && fieldConfig.formula) {
186
- const result = this.getFormulaEngine().evaluate(fieldConfig.formula, formulaContext, fieldConfig.data_type || 'text', { strict: true });
185
+ const formulaExpression = fieldConfig.expression;
186
+ if (fieldConfig.type === 'formula' && formulaExpression) {
187
+ const result = this.getFormulaEngine().evaluate(formulaExpression, formulaContext, fieldConfig.data_type || 'text', { strict: true });
187
188
  if (result.success) {
188
189
  record[fieldName] = result.value;
189
190
  }
@@ -197,7 +198,7 @@ class ObjectRepository {
197
198
  objectName: this.objectName,
198
199
  fieldName,
199
200
  recordId: formulaContext.record_id,
200
- formula: fieldConfig.formula,
201
+ expression: formulaExpression,
201
202
  error: result.error,
202
203
  stack: result.stack,
203
204
  });
@@ -258,15 +259,15 @@ class ObjectRepository {
258
259
  // If filters is already a UnifiedQuery (has UnifiedQuery-specific properties), use it as-is
259
260
  let query;
260
261
  if (Array.isArray(filters)) {
261
- query = { filters };
262
+ query = { where: filters };
262
263
  }
263
- else if (filters && typeof filters === 'object' && (filters.fields || filters.sort || filters.limit !== undefined || filters.skip !== undefined)) {
264
+ else if (filters && typeof filters === 'object' && (filters.fields || filters.orderBy || filters.limit !== undefined || filters.offset !== undefined)) {
264
265
  // It's already a UnifiedQuery object
265
266
  query = filters;
266
267
  }
267
268
  else if (filters) {
268
269
  // It's a raw filter object, wrap it
269
- query = { filters };
270
+ query = { where: filters };
270
271
  }
271
272
  else {
272
273
  query = {};
@@ -387,7 +388,7 @@ class ObjectRepository {
387
388
  async updateMany(filters, data) {
388
389
  // Find all matching records and update them individually
389
390
  // to ensure validation and hooks are executed
390
- const records = await this.find({ filters });
391
+ const records = await this.find({ where: filters });
391
392
  let count = 0;
392
393
  for (const record of records) {
393
394
  if (record && record._id) {
@@ -400,7 +401,7 @@ class ObjectRepository {
400
401
  async deleteMany(filters) {
401
402
  // Find all matching records and delete them individually
402
403
  // to ensure hooks are executed
403
- const records = await this.find({ filters });
404
+ const records = await this.find({ where: filters });
404
405
  let count = 0;
405
406
  for (const record of records) {
406
407
  if (record && record._id) {
@@ -1 +1 @@
1
- {"version":3,"file":"repository.js","sourceRoot":"","sources":["../src/repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repository.js","sourceRoot":"","sources":["../src/repository.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@objectql/core",
3
- "version": "4.0.1",
3
+ "version": "4.0.2",
4
4
  "description": "Universal runtime engine for ObjectQL - AI-native metadata-driven ORM with validation, repository pattern, and driver orchestration",
5
5
  "keywords": [
6
6
  "objectql",
@@ -18,10 +18,10 @@
18
18
  "main": "dist/index.js",
19
19
  "types": "dist/index.d.ts",
20
20
  "dependencies": {
21
- "@objectstack/spec": "^0.3.1",
21
+ "@objectstack/spec": "^0.3.3",
22
22
  "js-yaml": "^4.1.0",
23
23
  "openai": "^4.28.0",
24
- "@objectql/types": "4.0.1",
24
+ "@objectql/types": "4.0.2",
25
25
  "@objectql/runtime": "0.2.0"
26
26
  },
27
27
  "devDependencies": {
package/src/index.ts CHANGED
@@ -13,10 +13,10 @@ export type { ObjectStackKernel, ObjectStackRuntimeProtocol } from '@objectql/ru
13
13
  // export type { ObjectQL as ObjectQLEngine, SchemaRegistry } from '@objectstack/objectql';
14
14
 
15
15
  // Export ObjectStack spec types for driver development
16
- import { Data, System } from '@objectstack/spec';
16
+ import { Data, Driver } from '@objectstack/spec';
17
17
  export type QueryAST = Data.QueryAST;
18
- export type DriverInterface = System.DriverInterface;
19
- export type DriverOptions = System.DriverOptions;
18
+ export type DriverInterface = Driver.DriverInterface;
19
+ export type DriverOptions = Driver.DriverOptions;
20
20
 
21
21
  // Export our enhanced runtime components (actual implementations)
22
22
  export * from './repository';
@@ -8,141 +8,34 @@
8
8
 
9
9
  import type { Filter } from '@objectql/types';
10
10
  import { Data } from '@objectstack/spec';
11
- type FilterNode = Data.FilterNode;
11
+ type FilterCondition = Data.FilterCondition;
12
12
  import { ObjectQLError } from '@objectql/types';
13
13
 
14
14
  /**
15
15
  * Filter Translator
16
16
  *
17
- * Translates ObjectQL Filter (FilterCondition) to ObjectStack FilterNode format.
18
- * Converts modern object-based syntax to legacy array-based syntax for backward compatibility.
17
+ * Translates ObjectQL Filter to ObjectStack FilterCondition format.
18
+ * Since both now use the same format, this is mostly a pass-through.
19
19
  *
20
20
  * @example
21
21
  * Input: { age: { $gte: 18 }, $or: [{ status: "active" }, { role: "admin" }] }
22
- * Output: [["age", ">=", 18], "or", [["status", "=", "active"], "or", ["role", "=", "admin"]]]
22
+ * Output: { age: { $gte: 18 }, $or: [{ status: "active" }, { role: "admin" }] }
23
23
  */
24
24
  export class FilterTranslator {
25
25
  /**
26
- * Translate filters from ObjectQL format to ObjectStack FilterNode format
26
+ * Translate filters from ObjectQL format to ObjectStack FilterCondition format
27
27
  */
28
- translate(filters?: Filter): FilterNode | undefined {
28
+ translate(filters?: Filter): FilterCondition | undefined {
29
29
  if (!filters) {
30
30
  return undefined;
31
31
  }
32
32
 
33
- // Backward compatibility: if it's already an array (old format), pass through
34
- if (Array.isArray(filters)) {
35
- return filters as unknown as FilterNode;
36
- }
37
-
38
33
  // If it's an empty object, return undefined
39
34
  if (typeof filters === 'object' && Object.keys(filters).length === 0) {
40
35
  return undefined;
41
36
  }
42
37
 
43
- return this.convertToNode(filters);
44
- }
45
-
46
- /**
47
- * Recursively converts FilterCondition to FilterNode array format
48
- */
49
- private convertToNode(filter: Filter): FilterNode {
50
- const nodes: any[] = [];
51
-
52
- // Process logical operators first
53
- if (filter.$and) {
54
- const andNodes = filter.$and.map((f: Filter) => this.convertToNode(f));
55
- nodes.push(...this.interleaveWithOperator(andNodes, 'and'));
56
- }
57
-
58
- if (filter.$or) {
59
- const orNodes = filter.$or.map((f: Filter) => this.convertToNode(f));
60
- if (nodes.length > 0) {
61
- nodes.push('and');
62
- }
63
- nodes.push(...this.interleaveWithOperator(orNodes, 'or'));
64
- }
65
-
66
- // Note: $not operator is not currently supported in the legacy FilterNode format
67
- if (filter.$not) {
68
- throw new ObjectQLError({
69
- code: 'UNSUPPORTED_OPERATOR',
70
- message: '$not operator is not supported. Use $ne for field negation instead.'
71
- });
72
- }
73
-
74
- // Process field conditions
75
- for (const [field, value] of Object.entries(filter)) {
76
- if (field.startsWith('$')) {
77
- continue; // Skip logical operators (already processed)
78
- }
79
-
80
- if (nodes.length > 0) {
81
- nodes.push('and');
82
- }
83
-
84
- // Handle field value
85
- if (value === null || value === undefined) {
86
- nodes.push([field, '=', value]);
87
- } else if (typeof value === 'object' && !Array.isArray(value) && !(value instanceof Date)) {
88
- // Explicit operators - multiple operators on same field are AND-ed together
89
- const entries = Object.entries(value);
90
- for (let i = 0; i < entries.length; i++) {
91
- const [op, opValue] = entries[i];
92
-
93
- // Add 'and' before each operator (except the very first node)
94
- if (nodes.length > 0 || i > 0) {
95
- nodes.push('and');
96
- }
97
-
98
- const legacyOp = this.mapOperatorToLegacy(op);
99
- nodes.push([field, legacyOp, opValue]);
100
- }
101
- } else {
102
- // Implicit equality
103
- nodes.push([field, '=', value]);
104
- }
105
- }
106
-
107
- // Return as FilterNode (type assertion for backward compatibility)
108
- return (nodes.length === 1 ? nodes[0] : nodes) as unknown as FilterNode;
109
- }
110
-
111
- /**
112
- * Interleaves filter nodes with a logical operator
113
- */
114
- private interleaveWithOperator(nodes: FilterNode[], operator: string): any[] {
115
- if (nodes.length === 0) return [];
116
- if (nodes.length === 1) return [nodes[0]];
117
-
118
- const result: any[] = [nodes[0]];
119
- for (let i = 1; i < nodes.length; i++) {
120
- result.push(operator, nodes[i]);
121
- }
122
- return result;
123
- }
124
-
125
- /**
126
- * Maps modern $-prefixed operators to legacy format
127
- */
128
- private mapOperatorToLegacy(operator: string): string {
129
- const mapping: Record<string, string> = {
130
- '$eq': '=',
131
- '$ne': '!=',
132
- '$gt': '>',
133
- '$gte': '>=',
134
- '$lt': '<',
135
- '$lte': '<=',
136
- '$in': 'in',
137
- '$nin': 'nin',
138
- '$contains': 'contains',
139
- '$startsWith': 'startswith',
140
- '$endsWith': 'endswith',
141
- '$null': 'is_null',
142
- '$exist': 'is_not_null',
143
- '$between': 'between',
144
- };
145
-
146
- return mapping[operator] || operator.replace('$', '');
38
+ // Both ObjectQL Filter and ObjectStack FilterCondition use the same format now
39
+ return filters as unknown as FilterCondition;
147
40
  }
148
41
  }
@@ -9,7 +9,6 @@
9
9
  import type { UnifiedQuery, ObjectConfig, MetadataRegistry } from '@objectql/types';
10
10
  import { Data } from '@objectstack/spec';
11
11
  type QueryAST = Data.QueryAST;
12
- type FilterNode = Data.FilterNode;
13
12
  import { QueryService, QueryOptions } from './query-service';
14
13
 
15
14
  /**
@@ -167,10 +166,10 @@ export class QueryAnalyzer {
167
166
  // Build the QueryAST (without executing)
168
167
  const ast: QueryAST = {
169
168
  object: objectName,
170
- filters: query.filters as any, // FilterCondition is compatible with FilterNode
171
- sort: query.sort as any, // Will be converted to SortNode[] format
172
- top: query.limit, // Changed from limit to top (QueryAST uses 'top')
173
- skip: query.skip,
169
+ where: query.where as any, // FilterCondition format
170
+ orderBy: query.orderBy as any, // Will be converted to SortNode[] format
171
+ limit: query.limit,
172
+ offset: query.offset,
174
173
  fields: query.fields
175
174
  };
176
175
 
@@ -287,7 +286,7 @@ export class QueryAnalyzer {
287
286
  private findApplicableIndexes(schema: ObjectConfig, query: UnifiedQuery): string[] {
288
287
  const indexes: string[] = [];
289
288
 
290
- if (!schema.indexes || !query.filters) {
289
+ if (!schema.indexes || !query.where) {
291
290
  return indexes;
292
291
  }
293
292
 
@@ -316,7 +315,7 @@ export class QueryAnalyzer {
316
315
  }
317
316
  };
318
317
 
319
- extractFieldsFromFilter(query.filters);
318
+ extractFieldsFromFilter(query.where);
320
319
 
321
320
  // Check which indexes could be used
322
321
  const indexesArray = Array.isArray(schema.indexes) ? schema.indexes : Object.values(schema.indexes || {});
@@ -343,7 +342,7 @@ export class QueryAnalyzer {
343
342
  const warnings: string[] = [];
344
343
 
345
344
  // Warning: No filters (full table scan)
346
- if (!query.filters || query.filters.length === 0) {
345
+ if (!query.where || Object.keys(query.where).length === 0) {
347
346
  warnings.push('No filters specified - this will scan all records');
348
347
  }
349
348
 
@@ -361,7 +360,7 @@ export class QueryAnalyzer {
361
360
  }
362
361
 
363
362
  // Warning: Complex filters without indexes
364
- if (query.filters && query.filters.length > 5) {
363
+ if (query.where && Object.keys(query.where).length > 5) {
365
364
  const indexes = this.findApplicableIndexes(schema, query);
366
365
  if (indexes.length === 0) {
367
366
  warnings.push('Complex filters without matching indexes - consider adding indexes');
@@ -388,10 +387,8 @@ export class QueryAnalyzer {
388
387
  }
389
388
 
390
389
  // Suggest adding indexes
391
- if (query.filters && query.filters.length > 0 && indexes.length === 0) {
392
- const filterFields = query.filters
393
- .filter((f: any) => Array.isArray(f) && f.length >= 1)
394
- .map((f: any) => String(f[0]));
390
+ if (query.where && Object.keys(query.where).length > 0 && indexes.length === 0) {
391
+ const filterFields = Object.keys(query.where).filter(k => !k.startsWith('$'));
395
392
 
396
393
  if (filterFields.length > 0) {
397
394
  suggestions.push(`Consider adding an index on: ${filterFields.join(', ')}`);
@@ -404,10 +401,9 @@ export class QueryAnalyzer {
404
401
  }
405
402
 
406
403
  // Suggest composite index for multiple filters
407
- if (query.filters && query.filters.length > 1 && indexes.length < 2) {
408
- const filterFields = query.filters
409
- .filter((f: any) => Array.isArray(f) && f.length >= 1)
410
- .map((f: any) => String(f[0]))
404
+ if (query.where && Object.keys(query.where).length > 1 && indexes.length < 2) {
405
+ const filterFields = Object.keys(query.where)
406
+ .filter(k => !k.startsWith('$'))
411
407
  .slice(0, 3); // Top 3 fields
412
408
 
413
409
  if (filterFields.length > 1) {
@@ -429,21 +425,20 @@ export class QueryAnalyzer {
429
425
  complexity += 10;
430
426
 
431
427
  // Filters add complexity
432
- if (query.filters) {
433
- complexity += query.filters.length * 5;
428
+ if (query.where) {
429
+ const filterCount = Object.keys(query.where).length;
430
+ complexity += filterCount * 5;
434
431
 
435
- // Nested filters (OR conditions) add more
436
- const hasNestedFilters = query.filters.some((f: any) =>
437
- Array.isArray(f) && Array.isArray(f[0])
438
- );
439
- if (hasNestedFilters) {
432
+ // Nested filters (OR/AND conditions) add more
433
+ const hasLogicalOps = query.where.$and || query.where.$or;
434
+ if (hasLogicalOps) {
440
435
  complexity += 15;
441
436
  }
442
437
  }
443
438
 
444
439
  // Sorting adds complexity
445
- if (query.sort && query.sort.length > 0) {
446
- complexity += query.sort.length * 3;
440
+ if (query.orderBy && query.orderBy.length > 0) {
441
+ complexity += query.orderBy.length * 3;
447
442
  }
448
443
 
449
444
  // Field selection reduces complexity slightly
@@ -469,13 +464,14 @@ export class QueryAnalyzer {
469
464
  // from the database (row count, index selectivity, etc.)
470
465
 
471
466
  // Default to unknown
472
- if (!query.filters || query.filters.length === 0) {
467
+ if (!query.where || Object.keys(query.where).length === 0) {
473
468
  return -1; // Unknown, full scan
474
469
  }
475
470
 
476
471
  // Very rough estimate based on filter count
477
472
  const baseEstimate = 1000;
478
- const filterReduction = Math.pow(0.5, query.filters.length);
473
+ const filterCount = Object.keys(query.where).length;
474
+ const filterReduction = Math.pow(0.5, filterCount);
479
475
  const estimated = Math.floor(baseEstimate * filterReduction);
480
476
 
481
477
  // Apply limit if present
@@ -15,7 +15,8 @@ import { FilterTranslator } from './filter-translator';
15
15
  * Query Builder
16
16
  *
17
17
  * Builds ObjectStack QueryAST from ObjectQL UnifiedQuery.
18
- * This is the central query construction module for ObjectQL.
18
+ * Since UnifiedQuery now uses the standard protocol format directly,
19
+ * this is now a simple pass-through with object name injection.
19
20
  */
20
21
  export class QueryBuilder {
21
22
  private filterTranslator: FilterTranslator;
@@ -28,52 +29,20 @@ export class QueryBuilder {
28
29
  * Build a QueryAST from a UnifiedQuery
29
30
  *
30
31
  * @param objectName - Target object name
31
- * @param query - ObjectQL UnifiedQuery
32
+ * @param query - ObjectQL UnifiedQuery (now in standard QueryAST format)
32
33
  * @returns ObjectStack QueryAST
33
34
  */
34
35
  build(objectName: string, query: UnifiedQuery): QueryAST {
36
+ // UnifiedQuery now uses the same format as QueryAST
37
+ // Just add the object name and pass through
35
38
  const ast: QueryAST = {
36
39
  object: objectName,
40
+ ...query
37
41
  };
38
42
 
39
- // Map fields
40
- if (query.fields) {
41
- ast.fields = query.fields;
42
- }
43
-
44
- // Map filters using FilterTranslator
45
- if (query.filters) {
46
- ast.filters = this.filterTranslator.translate(query.filters);
47
- }
48
-
49
- // Map sort
50
- if (query.sort) {
51
- ast.sort = query.sort.map(([field, order]) => ({
52
- field,
53
- order: order as 'asc' | 'desc'
54
- }));
55
- }
56
-
57
- // Map pagination
58
- if (query.limit !== undefined) {
59
- ast.top = query.limit;
60
- }
61
- if (query.skip !== undefined) {
62
- ast.skip = query.skip;
63
- }
64
-
65
- // Map groupBy
66
- if (query.groupBy) {
67
- ast.groupBy = query.groupBy;
68
- }
69
-
70
- // Map aggregations
71
- if (query.aggregate) {
72
- ast.aggregations = query.aggregate.map(agg => ({
73
- function: agg.func as any,
74
- field: agg.field,
75
- alias: agg.alias || `${agg.func}_${agg.field}`
76
- }));
43
+ // Ensure where is properly formatted
44
+ if (query.where) {
45
+ ast.where = this.filterTranslator.translate(query.where);
77
46
  }
78
47
 
79
48
  return ast;
@@ -232,7 +232,7 @@ export class QueryService {
232
232
  } else if (driver.executeQuery) {
233
233
  // Fallback to query with ID filter
234
234
  const query: UnifiedQuery = {
235
- filters: [['_id', '=', id]]
235
+ where: { _id: id }
236
236
  };
237
237
  const ast = this.buildQueryAST(objectName, query);
238
238
  const queryResult = await driver.executeQuery(ast, driverOptions);
@@ -256,19 +256,19 @@ export class QueryService {
256
256
  * Execute a count query
257
257
  *
258
258
  * @param objectName - The object to query
259
- * @param filters - Optional filters
259
+ * @param where - Optional filter condition
260
260
  * @param options - Query execution options
261
261
  * @returns Count of matching records
262
262
  */
263
263
  async count(
264
264
  objectName: string,
265
- filters?: Filter[],
265
+ where?: Filter,
266
266
  options: QueryOptions = {}
267
267
  ): Promise<QueryResult<number>> {
268
268
  const driver = this.getDriver(objectName);
269
269
  const startTime = options.profile ? Date.now() : 0;
270
270
 
271
- const query: UnifiedQuery = filters ? { filters } : {};
271
+ const query: UnifiedQuery = where ? { where } : {};
272
272
  const ast = this.buildQueryAST(objectName, query);
273
273
 
274
274
  const driverOptions = {
@@ -280,7 +280,7 @@ export class QueryService {
280
280
 
281
281
  if (driver.count) {
282
282
  // Legacy driver interface
283
- count = await driver.count(objectName, filters || [], driverOptions);
283
+ count = await driver.count(objectName, where || {}, driverOptions);
284
284
  } else if (driver.executeQuery) {
285
285
  // Use executeQuery and count results
286
286
  // Note: This is inefficient for large datasets
package/src/repository.ts CHANGED
@@ -10,7 +10,6 @@ import { ObjectQLContext, IObjectQL, ObjectConfig, Driver, UnifiedQuery, ActionC
10
10
  import type { ObjectStackKernel } from '@objectql/runtime';
11
11
  import { Data } from '@objectstack/spec';
12
12
  type QueryAST = Data.QueryAST;
13
- type FilterNode = Data.FilterNode;
14
13
  type SortNode = Data.SortNode;
15
14
  import { Validator } from './validator';
16
15
  import { FormulaEngine } from './formula-engine';
@@ -225,9 +224,11 @@ export class ObjectRepository {
225
224
 
226
225
  // Evaluate each formula field
227
226
  for (const [fieldName, fieldConfig] of Object.entries(schema.fields)) {
228
- if (fieldConfig.type === 'formula' && fieldConfig.formula) {
227
+ const formulaExpression = fieldConfig.expression;
228
+
229
+ if (fieldConfig.type === 'formula' && formulaExpression) {
229
230
  const result = this.getFormulaEngine().evaluate(
230
- fieldConfig.formula,
231
+ formulaExpression,
231
232
  formulaContext,
232
233
  fieldConfig.data_type || 'text',
233
234
  { strict: true }
@@ -247,7 +248,7 @@ export class ObjectRepository {
247
248
  objectName: this.objectName,
248
249
  fieldName,
249
250
  recordId: formulaContext.record_id,
250
- formula: fieldConfig.formula,
251
+ expression: formulaExpression,
251
252
  error: result.error,
252
253
  stack: result.stack,
253
254
  }
@@ -319,13 +320,13 @@ export class ObjectRepository {
319
320
  // If filters is already a UnifiedQuery (has UnifiedQuery-specific properties), use it as-is
320
321
  let query: UnifiedQuery;
321
322
  if (Array.isArray(filters)) {
322
- query = { filters };
323
- } else if (filters && typeof filters === 'object' && (filters.fields || filters.sort || filters.limit !== undefined || filters.skip !== undefined)) {
323
+ query = { where: filters };
324
+ } else if (filters && typeof filters === 'object' && (filters.fields || filters.orderBy || filters.limit !== undefined || filters.offset !== undefined)) {
324
325
  // It's already a UnifiedQuery object
325
326
  query = filters;
326
327
  } else if (filters) {
327
328
  // It's a raw filter object, wrap it
328
- query = { filters };
329
+ query = { where: filters };
329
330
  } else {
330
331
  query = {};
331
332
  }
@@ -463,7 +464,7 @@ export class ObjectRepository {
463
464
  async updateMany(filters: any, data: any): Promise<any> {
464
465
  // Find all matching records and update them individually
465
466
  // to ensure validation and hooks are executed
466
- const records = await this.find({ filters });
467
+ const records = await this.find({ where: filters });
467
468
  let count = 0;
468
469
  for (const record of records) {
469
470
  if (record && record._id) {
@@ -477,7 +478,7 @@ export class ObjectRepository {
477
478
  async deleteMany(filters: any): Promise<any> {
478
479
  // Find all matching records and delete them individually
479
480
  // to ensure hooks are executed
480
- const records = await this.find({ filters });
481
+ const records = await this.find({ where: filters });
481
482
  let count = 0;
482
483
  for (const record of records) {
483
484
  if (record && record._id) {
package/test/app.test.ts CHANGED
@@ -9,7 +9,8 @@
9
9
  import { ObjectQL } from '../src/app';
10
10
  import { MockDriver } from './mock-driver';
11
11
  import { ObjectConfig, HookContext, ActionContext, Metadata } from '@objectql/types';
12
- import type { PluginDefinition } from '@objectstack/spec';
12
+ import type { Kernel } from '@objectstack/spec';
13
+ type PluginDefinition = Kernel.PluginDefinition;
13
14
 
14
15
  const todoObject: ObjectConfig = {
15
16
  name: 'todo',