@objectql/core 4.0.1 → 4.0.3
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/.turbo/turbo-build.log +4 -0
- package/CHANGELOG.md +32 -0
- package/README.md +14 -12
- package/dist/app.d.ts +9 -6
- package/dist/app.js +151 -29
- package/dist/app.js.map +1 -1
- package/dist/index.d.ts +6 -9
- package/dist/index.js +2 -5
- package/dist/index.js.map +1 -1
- package/dist/optimizations/CompiledHookManager.d.ts +55 -0
- package/dist/optimizations/CompiledHookManager.js +164 -0
- package/dist/optimizations/CompiledHookManager.js.map +1 -0
- package/dist/optimizations/DependencyGraph.d.ts +82 -0
- package/dist/optimizations/DependencyGraph.js +211 -0
- package/dist/optimizations/DependencyGraph.js.map +1 -0
- package/dist/optimizations/GlobalConnectionPool.d.ts +89 -0
- package/dist/optimizations/GlobalConnectionPool.js +193 -0
- package/dist/optimizations/GlobalConnectionPool.js.map +1 -0
- package/dist/optimizations/LazyMetadataLoader.d.ts +75 -0
- package/dist/optimizations/LazyMetadataLoader.js +149 -0
- package/dist/optimizations/LazyMetadataLoader.js.map +1 -0
- package/dist/optimizations/OptimizedMetadataRegistry.d.ts +26 -0
- package/dist/optimizations/OptimizedMetadataRegistry.js +117 -0
- package/dist/optimizations/OptimizedMetadataRegistry.js.map +1 -0
- package/dist/optimizations/OptimizedValidationEngine.d.ts +73 -0
- package/dist/optimizations/OptimizedValidationEngine.js +141 -0
- package/dist/optimizations/OptimizedValidationEngine.js.map +1 -0
- package/dist/optimizations/QueryCompiler.d.ts +51 -0
- package/dist/optimizations/QueryCompiler.js +216 -0
- package/dist/optimizations/QueryCompiler.js.map +1 -0
- package/dist/optimizations/SQLQueryOptimizer.d.ts +96 -0
- package/dist/optimizations/SQLQueryOptimizer.js +265 -0
- package/dist/optimizations/SQLQueryOptimizer.js.map +1 -0
- package/dist/optimizations/index.d.ts +32 -0
- package/dist/optimizations/index.js +44 -0
- package/dist/optimizations/index.js.map +1 -0
- package/dist/plugin.d.ts +6 -7
- package/dist/plugin.js +39 -22
- package/dist/plugin.js.map +1 -1
- package/dist/query/filter-translator.d.ts +6 -18
- package/dist/query/filter-translator.js +6 -103
- package/dist/query/filter-translator.js.map +1 -1
- package/dist/query/query-analyzer.js +24 -25
- package/dist/query/query-analyzer.js.map +1 -1
- package/dist/query/query-builder.d.ts +9 -3
- package/dist/query/query-builder.js +25 -35
- package/dist/query/query-builder.js.map +1 -1
- package/dist/query/query-service.d.ts +2 -2
- package/dist/query/query-service.js +5 -5
- package/dist/query/query-service.js.map +1 -1
- package/dist/repository.d.ts +2 -0
- package/dist/repository.js +24 -17
- package/dist/repository.js.map +1 -1
- package/jest.config.js +3 -3
- package/package.json +8 -5
- package/src/app.ts +173 -47
- package/src/index.ts +7 -8
- package/src/optimizations/CompiledHookManager.ts +185 -0
- package/src/optimizations/DependencyGraph.ts +255 -0
- package/src/optimizations/GlobalConnectionPool.ts +251 -0
- package/src/optimizations/LazyMetadataLoader.ts +180 -0
- package/src/optimizations/OptimizedMetadataRegistry.ts +132 -0
- package/src/optimizations/OptimizedValidationEngine.ts +172 -0
- package/src/optimizations/QueryCompiler.ts +242 -0
- package/src/optimizations/SQLQueryOptimizer.ts +329 -0
- package/src/optimizations/index.ts +34 -0
- package/src/plugin.ts +51 -28
- package/src/query/filter-translator.ts +8 -115
- package/src/query/query-analyzer.ts +25 -29
- package/src/query/query-builder.ts +26 -43
- package/src/query/query-service.ts +6 -6
- package/src/repository.ts +35 -22
- package/test/__mocks__/@objectstack/runtime.ts +8 -8
- package/test/app.test.ts +11 -8
- package/test/optimizations.test.ts +440 -0
- package/test/plugin-integration.test.ts +30 -19
- package/tsconfig.json +4 -6
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/ai-agent.d.ts +0 -176
- package/dist/ai-agent.js +0 -722
- package/dist/ai-agent.js.map +0 -1
- package/dist/formula-engine.d.ts +0 -102
- package/dist/formula-engine.js +0 -433
- package/dist/formula-engine.js.map +0 -1
- package/dist/formula-plugin.d.ts +0 -52
- package/dist/formula-plugin.js +0 -107
- package/dist/formula-plugin.js.map +0 -1
- package/dist/validator-plugin.d.ts +0 -56
- package/dist/validator-plugin.js +0 -106
- package/dist/validator-plugin.js.map +0 -1
- package/dist/validator.d.ts +0 -80
- package/dist/validator.js +0 -625
- package/dist/validator.js.map +0 -1
- package/src/ai-agent.ts +0 -868
- package/src/formula-engine.ts +0 -572
- package/src/formula-plugin.ts +0 -141
- package/src/validator-plugin.ts +0 -140
- package/src/validator.ts +0 -743
- package/test/formula-engine.test.ts +0 -725
- package/test/formula-integration.test.ts +0 -286
- package/test/formula-plugin.test.ts +0 -197
- package/test/validator-plugin.test.ts +0 -126
- package/test/validator.test.ts +0 -440
package/dist/repository.js
CHANGED
|
@@ -9,9 +9,10 @@
|
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.ObjectRepository = void 0;
|
|
11
11
|
const types_1 = require("@objectql/types");
|
|
12
|
-
const
|
|
13
|
-
const
|
|
12
|
+
const plugin_validator_1 = require("@objectql/plugin-validator");
|
|
13
|
+
const plugin_formula_1 = require("@objectql/plugin-formula");
|
|
14
14
|
const query_1 = require("./query");
|
|
15
|
+
const QueryCompiler_1 = require("./optimizations/QueryCompiler");
|
|
15
16
|
class ObjectRepository {
|
|
16
17
|
constructor(objectName, context, app) {
|
|
17
18
|
this.objectName = objectName;
|
|
@@ -29,7 +30,7 @@ class ObjectRepository {
|
|
|
29
30
|
return kernel.validator;
|
|
30
31
|
}
|
|
31
32
|
// Fallback for backward compatibility
|
|
32
|
-
return new
|
|
33
|
+
return new plugin_validator_1.Validator();
|
|
33
34
|
}
|
|
34
35
|
/**
|
|
35
36
|
* Get formula engine instance from kernel (via plugin)
|
|
@@ -41,7 +42,7 @@ class ObjectRepository {
|
|
|
41
42
|
return kernel.formulaEngine;
|
|
42
43
|
}
|
|
43
44
|
// Fallback for backward compatibility
|
|
44
|
-
return new
|
|
45
|
+
return new plugin_formula_1.FormulaEngine();
|
|
45
46
|
}
|
|
46
47
|
getDriver() {
|
|
47
48
|
const obj = this.getSchema();
|
|
@@ -59,9 +60,13 @@ class ObjectRepository {
|
|
|
59
60
|
}
|
|
60
61
|
/**
|
|
61
62
|
* Translates ObjectQL UnifiedQuery to ObjectStack QueryAST format
|
|
63
|
+
* Uses query compiler for caching and optimization
|
|
62
64
|
*/
|
|
63
65
|
buildQueryAST(query) {
|
|
64
|
-
|
|
66
|
+
const ast = this.queryBuilder.build(this.objectName, query);
|
|
67
|
+
// Use query compiler to cache and optimize the AST
|
|
68
|
+
const compiled = ObjectRepository.queryCompiler.compile(this.objectName, ast);
|
|
69
|
+
return compiled.ast;
|
|
65
70
|
}
|
|
66
71
|
getSchema() {
|
|
67
72
|
const obj = this.app.getObject(this.objectName);
|
|
@@ -182,8 +187,9 @@ class ObjectRepository {
|
|
|
182
187
|
};
|
|
183
188
|
// Evaluate each formula field
|
|
184
189
|
for (const [fieldName, fieldConfig] of Object.entries(schema.fields)) {
|
|
185
|
-
|
|
186
|
-
|
|
190
|
+
const formulaExpression = fieldConfig.expression;
|
|
191
|
+
if (fieldConfig.type === 'formula' && formulaExpression) {
|
|
192
|
+
const result = this.getFormulaEngine().evaluate(formulaExpression, formulaContext, fieldConfig.data_type || 'text', { strict: true });
|
|
187
193
|
if (result.success) {
|
|
188
194
|
record[fieldName] = result.value;
|
|
189
195
|
}
|
|
@@ -192,12 +198,11 @@ class ObjectRepository {
|
|
|
192
198
|
record[fieldName] = null;
|
|
193
199
|
// Formula evaluation should not throw here, but we need observability
|
|
194
200
|
// This logging is intentionally minimal and side-effect free
|
|
195
|
-
// eslint-disable-next-line no-console
|
|
196
201
|
console.error('[ObjectQL][FormulaEngine] Formula evaluation failed', {
|
|
197
202
|
objectName: this.objectName,
|
|
198
203
|
fieldName,
|
|
199
204
|
recordId: formulaContext.record_id,
|
|
200
|
-
|
|
205
|
+
expression: formulaExpression,
|
|
201
206
|
error: result.error,
|
|
202
207
|
stack: result.stack,
|
|
203
208
|
});
|
|
@@ -258,15 +263,15 @@ class ObjectRepository {
|
|
|
258
263
|
// If filters is already a UnifiedQuery (has UnifiedQuery-specific properties), use it as-is
|
|
259
264
|
let query;
|
|
260
265
|
if (Array.isArray(filters)) {
|
|
261
|
-
query = { filters };
|
|
266
|
+
query = { where: filters };
|
|
262
267
|
}
|
|
263
|
-
else if (filters && typeof filters === 'object' && (filters.fields || filters.
|
|
268
|
+
else if (filters && typeof filters === 'object' && (filters.fields || filters.orderBy || filters.limit !== undefined || filters.offset !== undefined)) {
|
|
264
269
|
// It's already a UnifiedQuery object
|
|
265
270
|
query = filters;
|
|
266
271
|
}
|
|
267
272
|
else if (filters) {
|
|
268
273
|
// It's a raw filter object, wrap it
|
|
269
|
-
query = { filters };
|
|
274
|
+
query = { where: filters };
|
|
270
275
|
}
|
|
271
276
|
else {
|
|
272
277
|
query = {};
|
|
@@ -308,7 +313,7 @@ class ObjectRepository {
|
|
|
308
313
|
// Validate the record before creating
|
|
309
314
|
await this.validateRecord('create', finalDoc);
|
|
310
315
|
// Execute via kernel
|
|
311
|
-
const result = await this.getKernel().create(this.objectName, finalDoc);
|
|
316
|
+
const result = await this.getKernel().create(this.objectName, finalDoc, this.getOptions());
|
|
312
317
|
hookCtx.result = result;
|
|
313
318
|
await this.app.triggerHook('afterCreate', this.objectName, hookCtx);
|
|
314
319
|
return hookCtx.result;
|
|
@@ -331,7 +336,7 @@ class ObjectRepository {
|
|
|
331
336
|
// Validate the update
|
|
332
337
|
await this.validateRecord('update', hookCtx.data, previousData);
|
|
333
338
|
// Execute via kernel
|
|
334
|
-
const result = await this.getKernel().update(this.objectName, String(id), hookCtx.data);
|
|
339
|
+
const result = await this.getKernel().update(this.objectName, String(id), hookCtx.data, this.getOptions());
|
|
335
340
|
hookCtx.result = result;
|
|
336
341
|
await this.app.triggerHook('afterUpdate', this.objectName, hookCtx);
|
|
337
342
|
return hookCtx.result;
|
|
@@ -350,7 +355,7 @@ class ObjectRepository {
|
|
|
350
355
|
};
|
|
351
356
|
await this.app.triggerHook('beforeDelete', this.objectName, hookCtx);
|
|
352
357
|
// Execute via kernel
|
|
353
|
-
const result = await this.getKernel().delete(this.objectName, String(id));
|
|
358
|
+
const result = await this.getKernel().delete(this.objectName, String(id), this.getOptions());
|
|
354
359
|
hookCtx.result = result;
|
|
355
360
|
await this.app.triggerHook('afterDelete', this.objectName, hookCtx);
|
|
356
361
|
return hookCtx.result;
|
|
@@ -387,7 +392,7 @@ class ObjectRepository {
|
|
|
387
392
|
async updateMany(filters, data) {
|
|
388
393
|
// Find all matching records and update them individually
|
|
389
394
|
// to ensure validation and hooks are executed
|
|
390
|
-
const records = await this.find({ filters });
|
|
395
|
+
const records = await this.find({ where: filters });
|
|
391
396
|
let count = 0;
|
|
392
397
|
for (const record of records) {
|
|
393
398
|
if (record && record._id) {
|
|
@@ -400,7 +405,7 @@ class ObjectRepository {
|
|
|
400
405
|
async deleteMany(filters) {
|
|
401
406
|
// Find all matching records and delete them individually
|
|
402
407
|
// to ensure hooks are executed
|
|
403
|
-
const records = await this.find({ filters });
|
|
408
|
+
const records = await this.find({ where: filters });
|
|
404
409
|
let count = 0;
|
|
405
410
|
for (const record of records) {
|
|
406
411
|
if (record && record._id) {
|
|
@@ -432,4 +437,6 @@ class ObjectRepository {
|
|
|
432
437
|
}
|
|
433
438
|
}
|
|
434
439
|
exports.ObjectRepository = ObjectRepository;
|
|
440
|
+
// Shared query compiler for caching compiled queries
|
|
441
|
+
ObjectRepository.queryCompiler = new QueryCompiler_1.QueryCompiler(1000);
|
|
435
442
|
//# sourceMappingURL=repository.js.map
|
package/dist/repository.js.map
CHANGED
|
@@ -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/jest.config.js
CHANGED
|
@@ -11,19 +11,19 @@ module.exports = {
|
|
|
11
11
|
testEnvironment: 'node',
|
|
12
12
|
testMatch: ['**/test/**/*.test.ts'],
|
|
13
13
|
moduleNameMapper: {
|
|
14
|
-
'^@objectql/runtime$': '<rootDir>/../../objectstack/runtime/src',
|
|
15
14
|
'^@objectql/(.*)$': '<rootDir>/../$1/src',
|
|
16
15
|
},
|
|
17
16
|
transform: {
|
|
18
|
-
'^.+\\.
|
|
17
|
+
'^.+\\.(t|j)sx?$': ['ts-jest', {
|
|
19
18
|
isolatedModules: true,
|
|
20
19
|
tsconfig: {
|
|
21
20
|
esModuleInterop: true,
|
|
22
21
|
allowSyntheticDefaultImports: true,
|
|
22
|
+
allowJs: true,
|
|
23
23
|
}
|
|
24
24
|
}],
|
|
25
25
|
},
|
|
26
26
|
transformIgnorePatterns: [
|
|
27
|
-
|
|
27
|
+
"/node_modules/(?!(@objectstack|.pnpm))"
|
|
28
28
|
],
|
|
29
29
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@objectql/core",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.3",
|
|
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,11 +18,14 @@
|
|
|
18
18
|
"main": "dist/index.js",
|
|
19
19
|
"types": "dist/index.d.ts",
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@objectstack/spec": "^0.
|
|
21
|
+
"@objectstack/spec": "^0.8.0",
|
|
22
|
+
"@objectstack/runtime": "^0.8.0",
|
|
23
|
+
"@objectstack/objectql": "^0.8.0",
|
|
24
|
+
"@objectstack/core": "^0.8.0",
|
|
22
25
|
"js-yaml": "^4.1.0",
|
|
23
|
-
"
|
|
24
|
-
"@objectql/
|
|
25
|
-
"@objectql/
|
|
26
|
+
"@objectql/types": "4.0.3",
|
|
27
|
+
"@objectql/plugin-formula": "4.0.3",
|
|
28
|
+
"@objectql/plugin-validator": "4.0.3"
|
|
26
29
|
},
|
|
27
30
|
"devDependencies": {
|
|
28
31
|
"@types/js-yaml": "^4.0.5",
|
package/src/app.ts
CHANGED
|
@@ -22,29 +22,35 @@ import {
|
|
|
22
22
|
ActionContext,
|
|
23
23
|
LoaderPlugin
|
|
24
24
|
} from '@objectql/types';
|
|
25
|
-
import {
|
|
25
|
+
import { ObjectKernel, type Plugin } from '@objectstack/core';
|
|
26
|
+
import { ObjectQL as RuntimeObjectQL, SchemaRegistry } from '@objectstack/objectql';
|
|
26
27
|
import { ObjectRepository } from './repository';
|
|
27
|
-
import { ObjectQLPlugin } from './plugin';
|
|
28
28
|
import { convertIntrospectedSchemaToObjects } from './util';
|
|
29
|
+
import { CompiledHookManager } from './optimizations/CompiledHookManager';
|
|
29
30
|
|
|
30
31
|
/**
|
|
31
32
|
* ObjectQL
|
|
32
33
|
*
|
|
33
|
-
* ObjectQL implementation that wraps
|
|
34
|
+
* ObjectQL implementation that wraps ObjectKernel
|
|
34
35
|
* to provide the plugin architecture.
|
|
35
36
|
*/
|
|
36
37
|
export class ObjectQL implements IObjectQL {
|
|
37
38
|
// Delegate to kernel for metadata, hooks, and actions
|
|
38
39
|
public get metadata(): MetadataRegistry {
|
|
39
|
-
return this.kernel.metadata;
|
|
40
|
+
return (this.kernel as any).metadata;
|
|
40
41
|
}
|
|
41
42
|
|
|
42
43
|
private datasources: Record<string, Driver> = {};
|
|
43
44
|
private remotes: string[] = [];
|
|
44
45
|
|
|
45
46
|
// ObjectStack Kernel Integration
|
|
46
|
-
private kernel!:
|
|
47
|
-
private
|
|
47
|
+
private kernel!: ObjectKernel & Record<string, any>;
|
|
48
|
+
private ql: any;
|
|
49
|
+
private kernelPlugins: any[] = [];
|
|
50
|
+
|
|
51
|
+
// Optimized managers
|
|
52
|
+
private hookManager = new CompiledHookManager();
|
|
53
|
+
private localActions = new Map<string, any>();
|
|
48
54
|
|
|
49
55
|
// Store config for lazy loading in init()
|
|
50
56
|
private config: ObjectQLConfig;
|
|
@@ -57,10 +63,12 @@ export class ObjectQL implements IObjectQL {
|
|
|
57
63
|
throw new Error("Connection strings are not supported in core directly. Use @objectql/platform-node's createDriverFromConnection or pass a driver instance to 'datasources'.");
|
|
58
64
|
}
|
|
59
65
|
|
|
60
|
-
//
|
|
61
|
-
this.
|
|
62
|
-
|
|
63
|
-
|
|
66
|
+
// Use the imported RuntimeObjectQL, assuming it works as intended
|
|
67
|
+
this.ql = new RuntimeObjectQL();
|
|
68
|
+
|
|
69
|
+
// Note: ObjectQLPlugin removed as it now uses RuntimePlugin interface
|
|
70
|
+
// which is incompatible with the legacy Plugin interface from @objectstack/core
|
|
71
|
+
// For new code, use the microkernel pattern with RuntimePlugin directly
|
|
64
72
|
|
|
65
73
|
// Add runtime plugins from config
|
|
66
74
|
if (config.plugins) {
|
|
@@ -68,13 +76,103 @@ export class ObjectQL implements IObjectQL {
|
|
|
68
76
|
if (typeof plugin === 'string') {
|
|
69
77
|
throw new Error("String plugins are not supported in core. Use @objectql/platform-node or pass plugin instance.");
|
|
70
78
|
} else {
|
|
71
|
-
this.use(plugin);
|
|
79
|
+
this.use(plugin as any);
|
|
72
80
|
}
|
|
73
81
|
}
|
|
74
82
|
}
|
|
75
83
|
|
|
76
|
-
// Create the kernel
|
|
77
|
-
this.kernel = new
|
|
84
|
+
// Create the kernel with registered plugins
|
|
85
|
+
this.kernel = new (ObjectKernel as any)();
|
|
86
|
+
for (const plugin of this.kernelPlugins) {
|
|
87
|
+
if ((this.kernel as any).use) {
|
|
88
|
+
(this.kernel as any).use(plugin);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// Helper to unwrap content property (matching MetadataRegistry behavior)
|
|
93
|
+
const unwrapContent = (item: any) => {
|
|
94
|
+
if (item && item.content) {
|
|
95
|
+
return item.content;
|
|
96
|
+
}
|
|
97
|
+
return item;
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
// Stub legacy accessors
|
|
101
|
+
(this.kernel as any).metadata = {
|
|
102
|
+
register: (type: string, item: any) => SchemaRegistry.registerItem(type, item, item.id ? 'id' : 'name'),
|
|
103
|
+
get: (type: string, name: string) => {
|
|
104
|
+
const item = SchemaRegistry.getItem(type, name) as any;
|
|
105
|
+
return unwrapContent(item);
|
|
106
|
+
},
|
|
107
|
+
getEntry: (type: string, name: string) => SchemaRegistry.getItem(type, name),
|
|
108
|
+
list: (type: string) => {
|
|
109
|
+
const items = SchemaRegistry.listItems(type);
|
|
110
|
+
return items.map(unwrapContent);
|
|
111
|
+
},
|
|
112
|
+
unregister: (type: string, name: string) => {
|
|
113
|
+
// Access private static storage using any cast
|
|
114
|
+
const metadata = (SchemaRegistry as any).metadata;
|
|
115
|
+
if (metadata instanceof Map) {
|
|
116
|
+
const collection = metadata.get(type);
|
|
117
|
+
if (collection instanceof Map) {
|
|
118
|
+
collection.delete(name);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
unregisterPackage: (packageName: string) => {
|
|
123
|
+
const metadata = (SchemaRegistry as any).metadata;
|
|
124
|
+
if (metadata instanceof Map) {
|
|
125
|
+
for (const [type, collection] of metadata.entries()) {
|
|
126
|
+
if (collection instanceof Map) {
|
|
127
|
+
for (const [key, item] of collection.entries()) {
|
|
128
|
+
// console.log(`[App] Check ${type} ${key} pkg=${(item as any).package}`);
|
|
129
|
+
if ((item as any).package === packageName) {
|
|
130
|
+
collection.delete(key);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
} else {
|
|
136
|
+
console.warn('Metadata is not a Map');
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
const kernelHooks = (this.kernel as any).hooks || {};
|
|
141
|
+
Object.assign(kernelHooks, {
|
|
142
|
+
register: (event: string, objectName: string, handler: any, packageName?: string) => {
|
|
143
|
+
this.hookManager.registerHook(event, objectName, handler, packageName);
|
|
144
|
+
},
|
|
145
|
+
removePackage: (packageName: string) => {
|
|
146
|
+
this.hookManager.removePackage(packageName);
|
|
147
|
+
},
|
|
148
|
+
trigger: async (event: string, objectName: string, ctx: any) => {
|
|
149
|
+
await this.hookManager.runHooks(event, objectName, ctx);
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
if (!(this.kernel as any).hooks) {
|
|
153
|
+
(this.kernel as any).hooks = kernelHooks;
|
|
154
|
+
}
|
|
155
|
+
(this.kernel as any).actions = {
|
|
156
|
+
register: (objectName: string, actionName: string, handler: any, packageName?: string) => {
|
|
157
|
+
const key = `${objectName}:${actionName}`;
|
|
158
|
+
(handler as any)._package = packageName;
|
|
159
|
+
this.localActions.set(key, handler);
|
|
160
|
+
},
|
|
161
|
+
removePackage: (packageName: string) => {
|
|
162
|
+
for (const [key, handler] of this.localActions.entries()) {
|
|
163
|
+
if ((handler as any)._package === packageName) {
|
|
164
|
+
this.localActions.delete(key);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
execute: async (objectName: string, actionName: string, ctx: any) => {
|
|
169
|
+
const handler = this.localActions.get(`${objectName}:${actionName}`);
|
|
170
|
+
if (handler) {
|
|
171
|
+
return handler(ctx);
|
|
172
|
+
}
|
|
173
|
+
throw new Error(`Action '${actionName}' on object '${objectName}' not found`);
|
|
174
|
+
}
|
|
175
|
+
};
|
|
78
176
|
|
|
79
177
|
// Register initial metadata if provided
|
|
80
178
|
if (config.registry) {
|
|
@@ -87,7 +185,7 @@ export class ObjectQL implements IObjectQL {
|
|
|
87
185
|
? (item as { name?: string; id?: string }).name || (item as { name?: string; id?: string }).id || 'unknown'
|
|
88
186
|
: 'unknown';
|
|
89
187
|
|
|
90
|
-
this.kernel.metadata.register(type, {
|
|
188
|
+
(this.kernel as any).metadata.register(type, {
|
|
91
189
|
type,
|
|
92
190
|
id: itemId,
|
|
93
191
|
content: item
|
|
@@ -97,43 +195,46 @@ export class ObjectQL implements IObjectQL {
|
|
|
97
195
|
}
|
|
98
196
|
}
|
|
99
197
|
|
|
100
|
-
use(plugin:
|
|
198
|
+
use(plugin: Plugin) {
|
|
101
199
|
this.kernelPlugins.push(plugin);
|
|
200
|
+
if (this.kernel && (this.kernel as any).use) {
|
|
201
|
+
(this.kernel as any).use(plugin);
|
|
202
|
+
}
|
|
102
203
|
}
|
|
103
204
|
|
|
104
205
|
removePackage(name: string) {
|
|
105
206
|
// Delegate to kernel managers
|
|
106
|
-
this.kernel.metadata.unregisterPackage(name);
|
|
107
|
-
this.kernel.hooks.removePackage(name);
|
|
108
|
-
this.kernel.actions.removePackage(name);
|
|
207
|
+
(this.kernel as any).metadata.unregisterPackage(name);
|
|
208
|
+
(this.kernel as any).hooks.removePackage(name);
|
|
209
|
+
(this.kernel as any).actions.removePackage(name);
|
|
109
210
|
}
|
|
110
211
|
|
|
111
212
|
on(event: HookName, objectName: string, handler: HookHandler, packageName?: string) {
|
|
112
213
|
// Delegate to kernel hook manager
|
|
113
214
|
// We wrap the handler to bridge ObjectQL's rich context types with runtime's base types
|
|
114
215
|
// The runtime HookContext supports all fields via index signature, so this is safe
|
|
115
|
-
const wrappedHandler = handler as unknown as
|
|
116
|
-
this.kernel.hooks.register(event, objectName, wrappedHandler, packageName);
|
|
216
|
+
const wrappedHandler = handler as unknown as any;
|
|
217
|
+
(this.kernel as any).hooks.register(event, objectName, wrappedHandler, packageName);
|
|
117
218
|
}
|
|
118
219
|
|
|
119
220
|
async triggerHook(event: HookName, objectName: string, ctx: HookContext) {
|
|
120
221
|
// Delegate to kernel hook manager
|
|
121
222
|
// Runtime HookContext supports ObjectQL-specific fields via index signature
|
|
122
|
-
await this.kernel.hooks.trigger(event, objectName, ctx);
|
|
223
|
+
await (this.kernel as any).hooks.trigger(event, objectName, ctx);
|
|
123
224
|
}
|
|
124
225
|
|
|
125
226
|
registerAction(objectName: string, actionName: string, handler: ActionHandler, packageName?: string) {
|
|
126
227
|
// Delegate to kernel action manager
|
|
127
228
|
// We wrap the handler to bridge ObjectQL's rich context types with runtime's base types
|
|
128
229
|
// The runtime ActionContext supports all fields via index signature, so this is safe
|
|
129
|
-
const wrappedHandler = handler as unknown as
|
|
130
|
-
this.kernel.actions.register(objectName, actionName, wrappedHandler, packageName);
|
|
230
|
+
const wrappedHandler = handler as unknown as any;
|
|
231
|
+
(this.kernel as any).actions.register(objectName, actionName, wrappedHandler, packageName);
|
|
131
232
|
}
|
|
132
233
|
|
|
133
234
|
async executeAction(objectName: string, actionName: string, ctx: ActionContext) {
|
|
134
235
|
// Delegate to kernel action manager
|
|
135
236
|
// Runtime ActionContext supports ObjectQL-specific fields via index signature
|
|
136
|
-
return await this.kernel.actions.execute(objectName, actionName, ctx);
|
|
237
|
+
return await (this.kernel as any).actions.execute(objectName, actionName, ctx);
|
|
137
238
|
}
|
|
138
239
|
|
|
139
240
|
createContext(options: ObjectQLContextOptions): ObjectQLContext {
|
|
@@ -181,15 +282,15 @@ export class ObjectQL implements IObjectQL {
|
|
|
181
282
|
}
|
|
182
283
|
|
|
183
284
|
/**
|
|
184
|
-
* Get the underlying
|
|
285
|
+
* Get the underlying ObjectKernel instance
|
|
185
286
|
*
|
|
186
287
|
* This provides access to the kernel for advanced usage scenarios
|
|
187
288
|
* where you need direct access to the plugin architecture.
|
|
188
289
|
*
|
|
189
|
-
* @returns The
|
|
290
|
+
* @returns The ObjectKernel instance
|
|
190
291
|
* @throws Error if called before init()
|
|
191
292
|
*/
|
|
192
|
-
getKernel():
|
|
293
|
+
getKernel(): ObjectKernel {
|
|
193
294
|
if (!this.kernel) {
|
|
194
295
|
throw new Error('Kernel not initialized. Call init() first.');
|
|
195
296
|
}
|
|
@@ -205,26 +306,26 @@ export class ObjectQL implements IObjectQL {
|
|
|
205
306
|
}
|
|
206
307
|
}
|
|
207
308
|
}
|
|
208
|
-
this.kernel.metadata.register('object',
|
|
209
|
-
type: 'object',
|
|
210
|
-
id: object.name,
|
|
211
|
-
content: object
|
|
212
|
-
});
|
|
309
|
+
(this.kernel as any).metadata.register('object', object);
|
|
213
310
|
}
|
|
214
311
|
|
|
215
312
|
unregisterObject(name: string) {
|
|
216
|
-
this.kernel.metadata.unregister('object', name);
|
|
313
|
+
(this.kernel as any).metadata.unregister('object', name);
|
|
217
314
|
}
|
|
218
315
|
|
|
219
316
|
getObject(name: string): ObjectConfig | undefined {
|
|
220
|
-
|
|
317
|
+
const item = (this.kernel as any).metadata.get('object', name);
|
|
318
|
+
return item?.content || item;
|
|
221
319
|
}
|
|
222
320
|
|
|
223
321
|
getConfigs(): Record<string, ObjectConfig> {
|
|
224
322
|
const result: Record<string, ObjectConfig> = {};
|
|
225
|
-
const items = this.kernel.metadata.list
|
|
323
|
+
const items = (this.kernel as any).metadata.list('object') || [];
|
|
226
324
|
for (const item of items) {
|
|
227
|
-
|
|
325
|
+
const config = item.content || item;
|
|
326
|
+
if (config?.name) {
|
|
327
|
+
result[config.name] = config;
|
|
328
|
+
}
|
|
228
329
|
}
|
|
229
330
|
return result;
|
|
230
331
|
}
|
|
@@ -285,20 +386,41 @@ export class ObjectQL implements IObjectQL {
|
|
|
285
386
|
}
|
|
286
387
|
|
|
287
388
|
async init() {
|
|
288
|
-
console.log('[ObjectQL] Initializing with
|
|
389
|
+
console.log('[ObjectQL] Initializing with ObjectKernel...');
|
|
289
390
|
|
|
290
391
|
// Start the kernel - this will install and start all plugins
|
|
291
|
-
|
|
392
|
+
if ((this.kernel as any).start) {
|
|
393
|
+
await (this.kernel as any).start();
|
|
394
|
+
} else if ((this.kernel as any).bootstrap) {
|
|
395
|
+
await (this.kernel as any).bootstrap();
|
|
396
|
+
} else {
|
|
397
|
+
console.warn('ObjectKernel does not have start() or bootstrap() method');
|
|
398
|
+
}
|
|
292
399
|
|
|
293
400
|
// TEMPORARY: Set driver for backward compatibility during migration
|
|
294
401
|
// This allows the kernel mock to delegate to the driver
|
|
402
|
+
const defaultDriver = this.datasources['default'];
|
|
295
403
|
if (typeof (this.kernel as any).setDriver === 'function') {
|
|
296
|
-
const defaultDriver = this.datasources['default'];
|
|
297
404
|
if (defaultDriver) {
|
|
298
405
|
(this.kernel as any).setDriver(defaultDriver);
|
|
299
406
|
}
|
|
300
407
|
}
|
|
301
408
|
|
|
409
|
+
// TEMPORARY: Patch kernel with CRUD methods dynamically if missing
|
|
410
|
+
// This ensures the repository can delegate to the kernel even if using the new @objectstack/core kernel
|
|
411
|
+
if (typeof (this.kernel as any).create !== 'function' && defaultDriver) {
|
|
412
|
+
(this.kernel as any).create = (object: string, doc: any, options: any) => defaultDriver.create(object, doc, options);
|
|
413
|
+
(this.kernel as any).update = (object: string, id: any, doc: any, options: any) => defaultDriver.update(object, id, doc, options);
|
|
414
|
+
(this.kernel as any).delete = (object: string, id: any, options: any) => defaultDriver.delete(object, id, options);
|
|
415
|
+
(this.kernel as any).find = async (object: string, query: any, options: any) => {
|
|
416
|
+
const res = await defaultDriver.find(object, query, options);
|
|
417
|
+
return { value: res || [], count: (res || []).length };
|
|
418
|
+
};
|
|
419
|
+
(this.kernel as any).findOne = (object: string, id: any, options: any) => defaultDriver.findOne(object, id, options);
|
|
420
|
+
(this.kernel as any).get = (object: string, id: any) => defaultDriver.findOne(object, id);
|
|
421
|
+
(this.kernel as any).count = (object: string, query: any, options: any) => defaultDriver.count(object, query, options);
|
|
422
|
+
}
|
|
423
|
+
|
|
302
424
|
// Load In-Memory Objects (Dynamic Layer)
|
|
303
425
|
if (this.config.objects) {
|
|
304
426
|
for (const [key, obj] of Object.entries(this.config.objects)) {
|
|
@@ -306,7 +428,8 @@ export class ObjectQL implements IObjectQL {
|
|
|
306
428
|
}
|
|
307
429
|
}
|
|
308
430
|
|
|
309
|
-
const
|
|
431
|
+
const registryItems = (this.kernel as any).metadata.list('object');
|
|
432
|
+
const objects = (registryItems || []).map((item: any) => item.content || item) as ObjectConfig[];
|
|
310
433
|
|
|
311
434
|
// Init Datasources
|
|
312
435
|
// Let's pass all objects to all configured drivers.
|
|
@@ -324,7 +447,7 @@ export class ObjectQL implements IObjectQL {
|
|
|
324
447
|
}
|
|
325
448
|
|
|
326
449
|
private async processInitialData() {
|
|
327
|
-
const dataEntries = this.kernel.metadata.list
|
|
450
|
+
const dataEntries = (this.kernel as any).metadata.list('data');
|
|
328
451
|
if (dataEntries.length === 0) return;
|
|
329
452
|
|
|
330
453
|
console.log(`Processing ${dataEntries.length} initial data files...`);
|
|
@@ -333,17 +456,20 @@ export class ObjectQL implements IObjectQL {
|
|
|
333
456
|
const ctx = this.createContext({ isSystem: true });
|
|
334
457
|
|
|
335
458
|
for (const entry of dataEntries) {
|
|
459
|
+
// Unwrapping metadata content if present
|
|
460
|
+
const dataContent = (entry as any).content || entry;
|
|
461
|
+
|
|
336
462
|
// Expected format:
|
|
337
463
|
// 1. { object: 'User', records: [...] }
|
|
338
464
|
// 2. [ record1, record2 ] (with name property added by loader inferred from filename)
|
|
339
465
|
|
|
340
|
-
let objectName =
|
|
341
|
-
let records =
|
|
466
|
+
let objectName = dataContent.object;
|
|
467
|
+
let records = dataContent.records;
|
|
342
468
|
|
|
343
|
-
if (Array.isArray(
|
|
344
|
-
records =
|
|
345
|
-
if (!objectName && (
|
|
346
|
-
objectName = (
|
|
469
|
+
if (Array.isArray(dataContent)) {
|
|
470
|
+
records = dataContent;
|
|
471
|
+
if (!objectName && (dataContent as any).name) {
|
|
472
|
+
objectName = (dataContent as any).name;
|
|
347
473
|
}
|
|
348
474
|
}
|
|
349
475
|
|