@objectql/core 4.0.2 → 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 +18 -0
- package/README.md +4 -4
- 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/query-analyzer.js.map +1 -1
- package/dist/query/query-builder.d.ts +6 -1
- package/dist/query/query-builder.js +21 -5
- package/dist/query/query-builder.js.map +1 -1
- package/dist/query/query-service.js.map +1 -1
- package/dist/repository.d.ts +2 -0
- package/dist/repository.js +15 -9
- 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 +8 -9
- 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/query-analyzer.ts +1 -1
- package/src/query/query-builder.ts +21 -7
- package/src/query/query-service.ts +1 -1
- package/src/repository.ts +25 -13
- package/test/__mocks__/@objectstack/runtime.ts +8 -8
- package/test/app.test.ts +9 -7
- 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/formula-spec-compliance.test.ts +0 -258
- package/test/validation-spec-compliance.test.ts +0 -440
- package/test/validator-plugin.test.ts +0 -126
- package/test/validator.test.ts +0 -440
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @objectql/core
|
|
2
2
|
|
|
3
|
+
## 4.0.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- **Patch Release v4.0.3**
|
|
8
|
+
|
|
9
|
+
This patch release includes infrastructure improvements and development experience enhancements:
|
|
10
|
+
- Refactored dev server setup for improved configuration handling
|
|
11
|
+
- Enhanced example scripts and development workflow
|
|
12
|
+
- Updated build and test infrastructure
|
|
13
|
+
- Improved documentation and developer tools
|
|
14
|
+
- Bug fixes and stability improvements
|
|
15
|
+
|
|
16
|
+
- Updated dependencies
|
|
17
|
+
- @objectql/plugin-formula@4.0.3
|
|
18
|
+
- @objectql/plugin-validator@4.0.3
|
|
19
|
+
- @objectql/types@4.0.3
|
|
20
|
+
|
|
3
21
|
## 4.0.2
|
|
4
22
|
|
|
5
23
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
> **Implementation Status**: ✅ **Production Ready** - All core features fully implemented and tested. See [Implementation Status](https://github.com/objectstack-ai/objectql/blob/main/IMPLEMENTATION_STATUS.md) for complete details.
|
|
4
4
|
|
|
5
|
-
The core ORM and runtime engine for ObjectQL. This package handles object querying, CRUD operations, database driver coordination, transaction management, and **metadata-driven validation**. As of version 4.0.0, it wraps the **
|
|
5
|
+
The core ORM and runtime engine for ObjectQL. This package handles object querying, CRUD operations, database driver coordination, transaction management, and **metadata-driven validation**. As of version 4.0.0, it wraps the **ObjectKernel** for plugin architecture and lifecycle management.
|
|
6
6
|
|
|
7
7
|
## Features
|
|
8
8
|
|
|
9
|
-
- ✅ **Plugin Architecture**: Built on top of `@
|
|
9
|
+
- ✅ **Plugin Architecture**: Built on top of `@objectstack/runtime` with kernel-based plugin system
|
|
10
10
|
- ✅ **Unified Query Language**: A generic way to query data across different databases (SQL, Mongo, etc.)
|
|
11
11
|
- ✅ **Repository Pattern**: `ObjectRepository` for managing object records
|
|
12
12
|
- ✅ **Driver Agnostic**: Abstraction layer for database drivers
|
|
@@ -19,12 +19,12 @@ The core ORM and runtime engine for ObjectQL. This package handles object queryi
|
|
|
19
19
|
## Installation
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
|
-
npm install @objectql/core @objectql/types @
|
|
22
|
+
npm install @objectql/core @objectql/types @objectstack/runtime @objectstack/spec
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
## Architecture
|
|
26
26
|
|
|
27
|
-
ObjectQL now wraps the `
|
|
27
|
+
ObjectQL now wraps the `ObjectKernel` from `@objectstack/runtime`, providing:
|
|
28
28
|
|
|
29
29
|
- **Kernel-based lifecycle management**: Initialization, startup, and shutdown
|
|
30
30
|
- **Plugin system**: Extensible architecture with `ObjectQLPlugin`
|
package/dist/app.d.ts
CHANGED
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
* LICENSE file in the root directory of this source tree.
|
|
7
7
|
*/
|
|
8
8
|
import { MetadataRegistry, Driver, ObjectConfig, ObjectQLContext, ObjectQLContextOptions, IObjectQL, ObjectQLConfig, HookName, HookHandler, HookContext, ActionHandler, ActionContext } from '@objectql/types';
|
|
9
|
-
import {
|
|
9
|
+
import { ObjectKernel, type Plugin } from '@objectstack/core';
|
|
10
10
|
/**
|
|
11
11
|
* ObjectQL
|
|
12
12
|
*
|
|
13
|
-
* ObjectQL implementation that wraps
|
|
13
|
+
* ObjectQL implementation that wraps ObjectKernel
|
|
14
14
|
* to provide the plugin architecture.
|
|
15
15
|
*/
|
|
16
16
|
export declare class ObjectQL implements IObjectQL {
|
|
@@ -18,10 +18,13 @@ export declare class ObjectQL implements IObjectQL {
|
|
|
18
18
|
private datasources;
|
|
19
19
|
private remotes;
|
|
20
20
|
private kernel;
|
|
21
|
+
private ql;
|
|
21
22
|
private kernelPlugins;
|
|
23
|
+
private hookManager;
|
|
24
|
+
private localActions;
|
|
22
25
|
private config;
|
|
23
26
|
constructor(config: ObjectQLConfig);
|
|
24
|
-
use(plugin:
|
|
27
|
+
use(plugin: Plugin): void;
|
|
25
28
|
removePackage(name: string): void;
|
|
26
29
|
on(event: HookName, objectName: string, handler: HookHandler, packageName?: string): void;
|
|
27
30
|
triggerHook(event: HookName, objectName: string, ctx: HookContext): Promise<void>;
|
|
@@ -29,15 +32,15 @@ export declare class ObjectQL implements IObjectQL {
|
|
|
29
32
|
executeAction(objectName: string, actionName: string, ctx: ActionContext): Promise<any>;
|
|
30
33
|
createContext(options: ObjectQLContextOptions): ObjectQLContext;
|
|
31
34
|
/**
|
|
32
|
-
* Get the underlying
|
|
35
|
+
* Get the underlying ObjectKernel instance
|
|
33
36
|
*
|
|
34
37
|
* This provides access to the kernel for advanced usage scenarios
|
|
35
38
|
* where you need direct access to the plugin architecture.
|
|
36
39
|
*
|
|
37
|
-
* @returns The
|
|
40
|
+
* @returns The ObjectKernel instance
|
|
38
41
|
* @throws Error if called before init()
|
|
39
42
|
*/
|
|
40
|
-
getKernel():
|
|
43
|
+
getKernel(): ObjectKernel;
|
|
41
44
|
registerObject(object: ObjectConfig): void;
|
|
42
45
|
unregisterObject(name: string): void;
|
|
43
46
|
getObject(name: string): ObjectConfig | undefined;
|
package/dist/app.js
CHANGED
|
@@ -8,14 +8,15 @@
|
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.ObjectQL = void 0;
|
|
11
|
-
const
|
|
11
|
+
const core_1 = require("@objectstack/core");
|
|
12
|
+
const objectql_1 = require("@objectstack/objectql");
|
|
12
13
|
const repository_1 = require("./repository");
|
|
13
|
-
const plugin_1 = require("./plugin");
|
|
14
14
|
const util_1 = require("./util");
|
|
15
|
+
const CompiledHookManager_1 = require("./optimizations/CompiledHookManager");
|
|
15
16
|
/**
|
|
16
17
|
* ObjectQL
|
|
17
18
|
*
|
|
18
|
-
* ObjectQL implementation that wraps
|
|
19
|
+
* ObjectQL implementation that wraps ObjectKernel
|
|
19
20
|
* to provide the plugin architecture.
|
|
20
21
|
*/
|
|
21
22
|
class ObjectQL {
|
|
@@ -27,15 +28,19 @@ class ObjectQL {
|
|
|
27
28
|
this.datasources = {};
|
|
28
29
|
this.remotes = [];
|
|
29
30
|
this.kernelPlugins = [];
|
|
31
|
+
// Optimized managers
|
|
32
|
+
this.hookManager = new CompiledHookManager_1.CompiledHookManager();
|
|
33
|
+
this.localActions = new Map();
|
|
30
34
|
this.config = config;
|
|
31
35
|
this.datasources = config.datasources || {};
|
|
32
36
|
if (config.connection) {
|
|
33
37
|
throw new Error("Connection strings are not supported in core directly. Use @objectql/platform-node's createDriverFromConnection or pass a driver instance to 'datasources'.");
|
|
34
38
|
}
|
|
35
|
-
//
|
|
36
|
-
this.
|
|
37
|
-
|
|
38
|
-
|
|
39
|
+
// Use the imported RuntimeObjectQL, assuming it works as intended
|
|
40
|
+
this.ql = new objectql_1.ObjectQL();
|
|
41
|
+
// Note: ObjectQLPlugin removed as it now uses RuntimePlugin interface
|
|
42
|
+
// which is incompatible with the legacy Plugin interface from @objectstack/core
|
|
43
|
+
// For new code, use the microkernel pattern with RuntimePlugin directly
|
|
39
44
|
// Add runtime plugins from config
|
|
40
45
|
if (config.plugins) {
|
|
41
46
|
for (const plugin of config.plugins) {
|
|
@@ -47,8 +52,97 @@ class ObjectQL {
|
|
|
47
52
|
}
|
|
48
53
|
}
|
|
49
54
|
}
|
|
50
|
-
// Create the kernel
|
|
51
|
-
this.kernel = new
|
|
55
|
+
// Create the kernel with registered plugins
|
|
56
|
+
this.kernel = new core_1.ObjectKernel();
|
|
57
|
+
for (const plugin of this.kernelPlugins) {
|
|
58
|
+
if (this.kernel.use) {
|
|
59
|
+
this.kernel.use(plugin);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// Helper to unwrap content property (matching MetadataRegistry behavior)
|
|
63
|
+
const unwrapContent = (item) => {
|
|
64
|
+
if (item && item.content) {
|
|
65
|
+
return item.content;
|
|
66
|
+
}
|
|
67
|
+
return item;
|
|
68
|
+
};
|
|
69
|
+
// Stub legacy accessors
|
|
70
|
+
this.kernel.metadata = {
|
|
71
|
+
register: (type, item) => objectql_1.SchemaRegistry.registerItem(type, item, item.id ? 'id' : 'name'),
|
|
72
|
+
get: (type, name) => {
|
|
73
|
+
const item = objectql_1.SchemaRegistry.getItem(type, name);
|
|
74
|
+
return unwrapContent(item);
|
|
75
|
+
},
|
|
76
|
+
getEntry: (type, name) => objectql_1.SchemaRegistry.getItem(type, name),
|
|
77
|
+
list: (type) => {
|
|
78
|
+
const items = objectql_1.SchemaRegistry.listItems(type);
|
|
79
|
+
return items.map(unwrapContent);
|
|
80
|
+
},
|
|
81
|
+
unregister: (type, name) => {
|
|
82
|
+
// Access private static storage using any cast
|
|
83
|
+
const metadata = objectql_1.SchemaRegistry.metadata;
|
|
84
|
+
if (metadata instanceof Map) {
|
|
85
|
+
const collection = metadata.get(type);
|
|
86
|
+
if (collection instanceof Map) {
|
|
87
|
+
collection.delete(name);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
unregisterPackage: (packageName) => {
|
|
92
|
+
const metadata = objectql_1.SchemaRegistry.metadata;
|
|
93
|
+
if (metadata instanceof Map) {
|
|
94
|
+
for (const [type, collection] of metadata.entries()) {
|
|
95
|
+
if (collection instanceof Map) {
|
|
96
|
+
for (const [key, item] of collection.entries()) {
|
|
97
|
+
// console.log(`[App] Check ${type} ${key} pkg=${(item as any).package}`);
|
|
98
|
+
if (item.package === packageName) {
|
|
99
|
+
collection.delete(key);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
console.warn('Metadata is not a Map');
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
const kernelHooks = this.kernel.hooks || {};
|
|
111
|
+
Object.assign(kernelHooks, {
|
|
112
|
+
register: (event, objectName, handler, packageName) => {
|
|
113
|
+
this.hookManager.registerHook(event, objectName, handler, packageName);
|
|
114
|
+
},
|
|
115
|
+
removePackage: (packageName) => {
|
|
116
|
+
this.hookManager.removePackage(packageName);
|
|
117
|
+
},
|
|
118
|
+
trigger: async (event, objectName, ctx) => {
|
|
119
|
+
await this.hookManager.runHooks(event, objectName, ctx);
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
if (!this.kernel.hooks) {
|
|
123
|
+
this.kernel.hooks = kernelHooks;
|
|
124
|
+
}
|
|
125
|
+
this.kernel.actions = {
|
|
126
|
+
register: (objectName, actionName, handler, packageName) => {
|
|
127
|
+
const key = `${objectName}:${actionName}`;
|
|
128
|
+
handler._package = packageName;
|
|
129
|
+
this.localActions.set(key, handler);
|
|
130
|
+
},
|
|
131
|
+
removePackage: (packageName) => {
|
|
132
|
+
for (const [key, handler] of this.localActions.entries()) {
|
|
133
|
+
if (handler._package === packageName) {
|
|
134
|
+
this.localActions.delete(key);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
execute: async (objectName, actionName, ctx) => {
|
|
139
|
+
const handler = this.localActions.get(`${objectName}:${actionName}`);
|
|
140
|
+
if (handler) {
|
|
141
|
+
return handler(ctx);
|
|
142
|
+
}
|
|
143
|
+
throw new Error(`Action '${actionName}' on object '${objectName}' not found`);
|
|
144
|
+
}
|
|
145
|
+
};
|
|
52
146
|
// Register initial metadata if provided
|
|
53
147
|
if (config.registry) {
|
|
54
148
|
// Copy metadata from provided registry to kernel's registry
|
|
@@ -70,6 +164,9 @@ class ObjectQL {
|
|
|
70
164
|
}
|
|
71
165
|
use(plugin) {
|
|
72
166
|
this.kernelPlugins.push(plugin);
|
|
167
|
+
if (this.kernel && this.kernel.use) {
|
|
168
|
+
this.kernel.use(plugin);
|
|
169
|
+
}
|
|
73
170
|
}
|
|
74
171
|
removePackage(name) {
|
|
75
172
|
// Delegate to kernel managers
|
|
@@ -146,12 +243,12 @@ class ObjectQL {
|
|
|
146
243
|
return ctx;
|
|
147
244
|
}
|
|
148
245
|
/**
|
|
149
|
-
* Get the underlying
|
|
246
|
+
* Get the underlying ObjectKernel instance
|
|
150
247
|
*
|
|
151
248
|
* This provides access to the kernel for advanced usage scenarios
|
|
152
249
|
* where you need direct access to the plugin architecture.
|
|
153
250
|
*
|
|
154
|
-
* @returns The
|
|
251
|
+
* @returns The ObjectKernel instance
|
|
155
252
|
* @throws Error if called before init()
|
|
156
253
|
*/
|
|
157
254
|
getKernel() {
|
|
@@ -169,23 +266,23 @@ class ObjectQL {
|
|
|
169
266
|
}
|
|
170
267
|
}
|
|
171
268
|
}
|
|
172
|
-
this.kernel.metadata.register('object',
|
|
173
|
-
type: 'object',
|
|
174
|
-
id: object.name,
|
|
175
|
-
content: object
|
|
176
|
-
});
|
|
269
|
+
this.kernel.metadata.register('object', object);
|
|
177
270
|
}
|
|
178
271
|
unregisterObject(name) {
|
|
179
272
|
this.kernel.metadata.unregister('object', name);
|
|
180
273
|
}
|
|
181
274
|
getObject(name) {
|
|
182
|
-
|
|
275
|
+
const item = this.kernel.metadata.get('object', name);
|
|
276
|
+
return (item === null || item === void 0 ? void 0 : item.content) || item;
|
|
183
277
|
}
|
|
184
278
|
getConfigs() {
|
|
185
279
|
const result = {};
|
|
186
|
-
const items = this.kernel.metadata.list('object');
|
|
280
|
+
const items = this.kernel.metadata.list('object') || [];
|
|
187
281
|
for (const item of items) {
|
|
188
|
-
|
|
282
|
+
const config = item.content || item;
|
|
283
|
+
if (config === null || config === void 0 ? void 0 : config.name) {
|
|
284
|
+
result[config.name] = config;
|
|
285
|
+
}
|
|
189
286
|
}
|
|
190
287
|
return result;
|
|
191
288
|
}
|
|
@@ -229,24 +326,47 @@ class ObjectQL {
|
|
|
229
326
|
}
|
|
230
327
|
}
|
|
231
328
|
async init() {
|
|
232
|
-
console.log('[ObjectQL] Initializing with
|
|
329
|
+
console.log('[ObjectQL] Initializing with ObjectKernel...');
|
|
233
330
|
// Start the kernel - this will install and start all plugins
|
|
234
|
-
|
|
331
|
+
if (this.kernel.start) {
|
|
332
|
+
await this.kernel.start();
|
|
333
|
+
}
|
|
334
|
+
else if (this.kernel.bootstrap) {
|
|
335
|
+
await this.kernel.bootstrap();
|
|
336
|
+
}
|
|
337
|
+
else {
|
|
338
|
+
console.warn('ObjectKernel does not have start() or bootstrap() method');
|
|
339
|
+
}
|
|
235
340
|
// TEMPORARY: Set driver for backward compatibility during migration
|
|
236
341
|
// This allows the kernel mock to delegate to the driver
|
|
342
|
+
const defaultDriver = this.datasources['default'];
|
|
237
343
|
if (typeof this.kernel.setDriver === 'function') {
|
|
238
|
-
const defaultDriver = this.datasources['default'];
|
|
239
344
|
if (defaultDriver) {
|
|
240
345
|
this.kernel.setDriver(defaultDriver);
|
|
241
346
|
}
|
|
242
347
|
}
|
|
348
|
+
// TEMPORARY: Patch kernel with CRUD methods dynamically if missing
|
|
349
|
+
// This ensures the repository can delegate to the kernel even if using the new @objectstack/core kernel
|
|
350
|
+
if (typeof this.kernel.create !== 'function' && defaultDriver) {
|
|
351
|
+
this.kernel.create = (object, doc, options) => defaultDriver.create(object, doc, options);
|
|
352
|
+
this.kernel.update = (object, id, doc, options) => defaultDriver.update(object, id, doc, options);
|
|
353
|
+
this.kernel.delete = (object, id, options) => defaultDriver.delete(object, id, options);
|
|
354
|
+
this.kernel.find = async (object, query, options) => {
|
|
355
|
+
const res = await defaultDriver.find(object, query, options);
|
|
356
|
+
return { value: res || [], count: (res || []).length };
|
|
357
|
+
};
|
|
358
|
+
this.kernel.findOne = (object, id, options) => defaultDriver.findOne(object, id, options);
|
|
359
|
+
this.kernel.get = (object, id) => defaultDriver.findOne(object, id);
|
|
360
|
+
this.kernel.count = (object, query, options) => defaultDriver.count(object, query, options);
|
|
361
|
+
}
|
|
243
362
|
// Load In-Memory Objects (Dynamic Layer)
|
|
244
363
|
if (this.config.objects) {
|
|
245
364
|
for (const [key, obj] of Object.entries(this.config.objects)) {
|
|
246
365
|
this.registerObject(obj);
|
|
247
366
|
}
|
|
248
367
|
}
|
|
249
|
-
const
|
|
368
|
+
const registryItems = this.kernel.metadata.list('object');
|
|
369
|
+
const objects = (registryItems || []).map((item) => item.content || item);
|
|
250
370
|
// Init Datasources
|
|
251
371
|
// Let's pass all objects to all configured drivers.
|
|
252
372
|
for (const [name, driver] of Object.entries(this.datasources)) {
|
|
@@ -267,15 +387,17 @@ class ObjectQL {
|
|
|
267
387
|
// We need a system context to write data
|
|
268
388
|
const ctx = this.createContext({ isSystem: true });
|
|
269
389
|
for (const entry of dataEntries) {
|
|
390
|
+
// Unwrapping metadata content if present
|
|
391
|
+
const dataContent = entry.content || entry;
|
|
270
392
|
// Expected format:
|
|
271
393
|
// 1. { object: 'User', records: [...] }
|
|
272
394
|
// 2. [ record1, record2 ] (with name property added by loader inferred from filename)
|
|
273
|
-
let objectName =
|
|
274
|
-
let records =
|
|
275
|
-
if (Array.isArray(
|
|
276
|
-
records =
|
|
277
|
-
if (!objectName &&
|
|
278
|
-
objectName =
|
|
395
|
+
let objectName = dataContent.object;
|
|
396
|
+
let records = dataContent.records;
|
|
397
|
+
if (Array.isArray(dataContent)) {
|
|
398
|
+
records = dataContent;
|
|
399
|
+
if (!objectName && dataContent.name) {
|
|
400
|
+
objectName = dataContent.name;
|
|
279
401
|
}
|
|
280
402
|
}
|
|
281
403
|
if (!objectName || !records || !Array.isArray(records)) {
|
package/dist/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,18 +5,15 @@
|
|
|
5
5
|
* This source code is licensed under the MIT license found in the
|
|
6
6
|
* LICENSE file in the root directory of this source tree.
|
|
7
7
|
*/
|
|
8
|
-
export type {
|
|
9
|
-
|
|
8
|
+
export type { ObjectKernel } from '@objectstack/runtime';
|
|
9
|
+
export type { ObjectStackProtocolImplementation } from '@objectstack/objectql';
|
|
10
|
+
import { Data } from '@objectstack/spec';
|
|
10
11
|
export type QueryAST = Data.QueryAST;
|
|
11
|
-
export type DriverInterface =
|
|
12
|
-
export type DriverOptions =
|
|
12
|
+
export type DriverInterface = Data.DriverInterface;
|
|
13
|
+
export type DriverOptions = Data.DriverOptions;
|
|
13
14
|
export * from './repository';
|
|
14
15
|
export * from './app';
|
|
15
16
|
export * from './plugin';
|
|
16
|
-
export * from './validator-plugin';
|
|
17
|
-
export * from './formula-plugin';
|
|
18
17
|
export * from './query';
|
|
19
|
-
export * from './validator';
|
|
20
18
|
export * from './util';
|
|
21
|
-
export * from './
|
|
22
|
-
export * from './formula-engine';
|
|
19
|
+
export * from './optimizations';
|
package/dist/index.js
CHANGED
|
@@ -25,13 +25,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
25
25
|
__exportStar(require("./repository"), exports);
|
|
26
26
|
__exportStar(require("./app"), exports);
|
|
27
27
|
__exportStar(require("./plugin"), exports);
|
|
28
|
-
__exportStar(require("./validator-plugin"), exports);
|
|
29
|
-
__exportStar(require("./formula-plugin"), exports);
|
|
30
28
|
// Export query-specific modules (ObjectQL core competency)
|
|
31
29
|
__exportStar(require("./query"), exports);
|
|
32
30
|
// Export utilities
|
|
33
|
-
__exportStar(require("./validator"), exports);
|
|
34
31
|
__exportStar(require("./util"), exports);
|
|
35
|
-
|
|
36
|
-
__exportStar(require("./
|
|
32
|
+
// Export kernel optimizations
|
|
33
|
+
__exportStar(require("./optimizations"), exports);
|
|
37
34
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;AAeH,kEAAkE;AAClE,+CAA6B;AAC7B,wCAAsB;AACtB,2CAAyB;AAEzB,2DAA2D;AAC3D,0CAAwB;AAExB,mBAAmB;AACnB,yCAAuB;AAEvB,8BAA8B;AAC9B,kDAAgC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ObjectQL
|
|
3
|
+
* Copyright (c) 2026-present ObjectStack Inc.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Hook definition
|
|
10
|
+
*/
|
|
11
|
+
export interface Hook {
|
|
12
|
+
pattern: string;
|
|
13
|
+
handler: (context: any) => Promise<void> | void;
|
|
14
|
+
packageName?: string;
|
|
15
|
+
priority?: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Compiled Hook Manager
|
|
19
|
+
*
|
|
20
|
+
* Improvement: Pre-compiles hook pipelines by event pattern at registration time.
|
|
21
|
+
* No runtime pattern matching required.
|
|
22
|
+
*
|
|
23
|
+
* Expected: 5x faster hook execution, parallel async support
|
|
24
|
+
*/
|
|
25
|
+
export declare class CompiledHookManager {
|
|
26
|
+
private pipelines;
|
|
27
|
+
private allHooks;
|
|
28
|
+
/**
|
|
29
|
+
* Expand a pattern like "before*" to all matching events
|
|
30
|
+
*/
|
|
31
|
+
private expandPattern;
|
|
32
|
+
/**
|
|
33
|
+
* Register a hook - pre-groups by event pattern
|
|
34
|
+
*/
|
|
35
|
+
registerHook(event: string, objectName: string, handler: any, packageName?: string): void;
|
|
36
|
+
/**
|
|
37
|
+
* Run hooks for an event - direct lookup, no pattern matching
|
|
38
|
+
*/
|
|
39
|
+
runHooks(event: string, objectName: string, context: any): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Remove all hooks from a package
|
|
42
|
+
*/
|
|
43
|
+
removePackage(packageName: string): void;
|
|
44
|
+
/**
|
|
45
|
+
* Clear all hooks
|
|
46
|
+
*/
|
|
47
|
+
clear(): void;
|
|
48
|
+
/**
|
|
49
|
+
* Get statistics about registered hooks
|
|
50
|
+
*/
|
|
51
|
+
getStats(): {
|
|
52
|
+
totalHooks: number;
|
|
53
|
+
totalPipelines: number;
|
|
54
|
+
};
|
|
55
|
+
}
|