@objectql/core 4.1.0 → 4.2.1

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.
Files changed (107) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +42 -0
  3. package/dist/app.d.ts +61 -51
  4. package/dist/app.js +101 -431
  5. package/dist/app.js.map +1 -1
  6. package/dist/index.d.ts +4 -11
  7. package/dist/index.js +13 -9
  8. package/dist/index.js.map +1 -1
  9. package/dist/kernel-factory.d.ts +38 -0
  10. package/dist/kernel-factory.js +38 -0
  11. package/dist/kernel-factory.js.map +1 -0
  12. package/dist/plugin.d.ts +10 -16
  13. package/dist/plugin.js +104 -58
  14. package/dist/plugin.js.map +1 -1
  15. package/dist/repository.d.ts +4 -31
  16. package/dist/repository.js +7 -275
  17. package/dist/repository.js.map +1 -1
  18. package/dist/util.js +4 -2
  19. package/dist/util.js.map +1 -1
  20. package/package.json +19 -11
  21. package/src/app.ts +157 -531
  22. package/src/index.ts +8 -23
  23. package/src/kernel-factory.ts +47 -0
  24. package/src/plugin.ts +116 -94
  25. package/src/repository.ts +4 -313
  26. package/src/util.ts +5 -3
  27. package/test/__mocks__/@objectstack/core.ts +250 -1
  28. package/test/__mocks__/@objectstack/objectql.ts +127 -0
  29. package/test/__mocks__/@objectstack/runtime.ts +14 -5
  30. package/test/introspection.test.ts +1 -1
  31. package/test/mock-driver.ts +5 -5
  32. package/test/optimizations.test.ts +2 -2
  33. package/test/plugin-integration.test.ts +4 -5
  34. package/test/utils.ts +6 -6
  35. package/tsconfig.json +3 -1
  36. package/tsconfig.tsbuildinfo +1 -1
  37. package/dist/gateway.d.ts +0 -36
  38. package/dist/gateway.js +0 -89
  39. package/dist/gateway.js.map +0 -1
  40. package/dist/optimizations/CompiledHookManager.d.ts +0 -55
  41. package/dist/optimizations/CompiledHookManager.js +0 -164
  42. package/dist/optimizations/CompiledHookManager.js.map +0 -1
  43. package/dist/optimizations/DependencyGraph.d.ts +0 -82
  44. package/dist/optimizations/DependencyGraph.js +0 -211
  45. package/dist/optimizations/DependencyGraph.js.map +0 -1
  46. package/dist/optimizations/GlobalConnectionPool.d.ts +0 -89
  47. package/dist/optimizations/GlobalConnectionPool.js +0 -193
  48. package/dist/optimizations/GlobalConnectionPool.js.map +0 -1
  49. package/dist/optimizations/LazyMetadataLoader.d.ts +0 -75
  50. package/dist/optimizations/LazyMetadataLoader.js +0 -149
  51. package/dist/optimizations/LazyMetadataLoader.js.map +0 -1
  52. package/dist/optimizations/OptimizedMetadataRegistry.d.ts +0 -26
  53. package/dist/optimizations/OptimizedMetadataRegistry.js +0 -117
  54. package/dist/optimizations/OptimizedMetadataRegistry.js.map +0 -1
  55. package/dist/optimizations/OptimizedValidationEngine.d.ts +0 -73
  56. package/dist/optimizations/OptimizedValidationEngine.js +0 -141
  57. package/dist/optimizations/OptimizedValidationEngine.js.map +0 -1
  58. package/dist/optimizations/QueryCompiler.d.ts +0 -51
  59. package/dist/optimizations/QueryCompiler.js +0 -216
  60. package/dist/optimizations/QueryCompiler.js.map +0 -1
  61. package/dist/optimizations/SQLQueryOptimizer.d.ts +0 -96
  62. package/dist/optimizations/SQLQueryOptimizer.js +0 -265
  63. package/dist/optimizations/SQLQueryOptimizer.js.map +0 -1
  64. package/dist/optimizations/index.d.ts +0 -32
  65. package/dist/optimizations/index.js +0 -44
  66. package/dist/optimizations/index.js.map +0 -1
  67. package/dist/protocol.d.ts +0 -180
  68. package/dist/protocol.js +0 -260
  69. package/dist/protocol.js.map +0 -1
  70. package/dist/query/filter-translator.d.ts +0 -27
  71. package/dist/query/filter-translator.js +0 -38
  72. package/dist/query/filter-translator.js.map +0 -1
  73. package/dist/query/index.d.ts +0 -22
  74. package/dist/query/index.js +0 -39
  75. package/dist/query/index.js.map +0 -1
  76. package/dist/query/query-analyzer.d.ts +0 -188
  77. package/dist/query/query-analyzer.js +0 -348
  78. package/dist/query/query-analyzer.js.map +0 -1
  79. package/dist/query/query-builder.d.ts +0 -35
  80. package/dist/query/query-builder.js +0 -61
  81. package/dist/query/query-builder.js.map +0 -1
  82. package/dist/query/query-service.d.ts +0 -153
  83. package/dist/query/query-service.js +0 -272
  84. package/dist/query/query-service.js.map +0 -1
  85. package/jest.config.js +0 -29
  86. package/src/gateway.ts +0 -101
  87. package/src/optimizations/CompiledHookManager.ts +0 -185
  88. package/src/optimizations/DependencyGraph.ts +0 -255
  89. package/src/optimizations/GlobalConnectionPool.ts +0 -251
  90. package/src/optimizations/LazyMetadataLoader.ts +0 -180
  91. package/src/optimizations/OptimizedMetadataRegistry.ts +0 -132
  92. package/src/optimizations/OptimizedValidationEngine.ts +0 -172
  93. package/src/optimizations/QueryCompiler.ts +0 -242
  94. package/src/optimizations/SQLQueryOptimizer.ts +0 -329
  95. package/src/optimizations/index.ts +0 -34
  96. package/src/protocol.ts +0 -291
  97. package/src/query/filter-translator.ts +0 -41
  98. package/src/query/index.ts +0 -24
  99. package/src/query/query-analyzer.ts +0 -533
  100. package/src/query/query-builder.ts +0 -64
  101. package/src/query/query-service.ts +0 -398
  102. package/test/app.test.ts +0 -578
  103. package/test/filter-syntax.test.ts +0 -233
  104. package/test/gateway.test.ts +0 -88
  105. package/test/protocol.test.ts +0 -143
  106. package/test/repository-validation.test.ts +0 -351
  107. package/test/repository.test.ts +0 -151
package/dist/app.js CHANGED
@@ -1,467 +1,137 @@
1
1
  "use strict";
2
2
  /**
3
- * ObjectQL
3
+ * ObjectQL Bridge Class
4
4
  * Copyright (c) 2026-present ObjectStack Inc.
5
5
  *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE file in the root directory of this source tree.
6
+ * Extends the upstream @objectstack/objectql.ObjectQL engine with:
7
+ * - Legacy constructor config (datasources map)
8
+ * - MetadataRegistry integration (for ObjectLoader filesystem loading)
9
+ *
10
+ * This allows existing consumers to keep using:
11
+ * const app = new ObjectQL({ datasources: { default: driver } });
12
+ * const loader = new ObjectLoader(app.metadata);
13
+ * await loader.load(dir);
14
+ * await app.init();
8
15
  */
9
16
  Object.defineProperty(exports, "__esModule", { value: true });
10
17
  exports.ObjectQL = void 0;
11
- const runtime_1 = require("@objectstack/runtime");
12
18
  const objectql_1 = require("@objectstack/objectql");
13
- const plugin_validator_1 = require("@objectql/plugin-validator");
14
- const plugin_formula_1 = require("@objectql/plugin-formula");
15
- const repository_1 = require("./repository");
16
- const util_1 = require("./util");
17
- const CompiledHookManager_1 = require("./optimizations/CompiledHookManager");
19
+ const types_1 = require("@objectql/types");
18
20
  /**
19
- * ObjectQL
20
- *
21
- * ObjectQL implementation that wraps ObjectKernel
22
- * to provide the plugin architecture.
21
+ * ObjectQL — drop-in replacement that bridges the upstream engine
22
+ * with the @objectql/types MetadataRegistry used by ObjectLoader.
23
23
  */
24
- class ObjectQL {
25
- // Delegate to kernel for metadata, hooks, and actions
26
- get metadata() {
27
- return this.kernel.metadata;
28
- }
29
- constructor(config) {
30
- this.datasources = {};
31
- this.remotes = [];
32
- this.kernelPlugins = [];
33
- // Optimized managers
34
- this.hookManager = new CompiledHookManager_1.CompiledHookManager();
35
- this.localActions = new Map();
36
- this.config = config;
37
- this.datasources = config.datasources || {};
38
- if (config.connection) {
39
- throw new Error("Connection strings are not supported in core directly. Use @objectql/platform-node's createDriverFromConnection or pass a driver instance to 'datasources'.");
40
- }
41
- // Use the imported RuntimeObjectQL, assuming it works as intended
42
- this.ql = new objectql_1.ObjectQL();
43
- // Note: ObjectQLPlugin removed as it now uses RuntimePlugin interface
44
- // which is incompatible with the legacy Plugin interface from @objectstack/core
45
- // For new code, use the microkernel pattern with RuntimePlugin directly
46
- // Add runtime plugins from config
47
- if (config.plugins) {
48
- for (const plugin of config.plugins) {
49
- if (typeof plugin === 'string') {
50
- throw new Error("String plugins are not supported in core. Use @objectql/platform-node or pass plugin instance.");
51
- }
52
- else {
53
- this.use(plugin);
54
- }
24
+ class ObjectQL extends objectql_1.ObjectQL {
25
+ /** Typed self-reference for compat methods */
26
+ get compat() { return this; }
27
+ constructor(config = {}) {
28
+ // Upstream constructor only accepts hostContext
29
+ super();
30
+ /**
31
+ * Filesystem metadata registry populated by ObjectLoader.
32
+ * After calling loader.load(), call app.init() to sync these
33
+ * entries into the upstream SchemaRegistry & driver layer.
34
+ */
35
+ this.metadata = new types_1.MetadataRegistry();
36
+ this.pendingDrivers = [];
37
+ // Store drivers for registration during init()
38
+ if (config.datasources) {
39
+ for (const [name, driver] of Object.entries(config.datasources)) {
40
+ if (!driver.name) {
41
+ driver.name = name;
42
+ }
43
+ // Cast: local Driver interface is structurally compatible with upstream DriverInterface
44
+ this.pendingDrivers.push({
45
+ name,
46
+ driver: driver,
47
+ isDefault: name === 'default'
48
+ });
55
49
  }
56
50
  }
57
- // Ensure default plugins are present
58
- if (!this.kernelPlugins.some(p => p.name === 'validator')) {
59
- this.use(new plugin_validator_1.ValidatorPlugin());
60
- }
61
- if (!this.kernelPlugins.some(p => p.name === 'formula')) {
62
- this.use(new plugin_formula_1.FormulaPlugin());
63
- }
64
- // Create the kernel with registered plugins
65
- this.kernel = new runtime_1.ObjectKernel(this.kernelPlugins);
66
- for (const plugin of this.kernelPlugins) {
67
- // Fallback for kernels that support .use() but maybe didn't take them in constructor or if we need to support both
68
- // NOTE: Modern ObjectKernel takes plugins in constructor.
69
- if (this.kernel.use) {
70
- // Try to avoid double registration if the kernel is smart, but since we don't know the kernel logic perfectly:
71
- // Ideally check if already added. But for now, we leave this for backward compat
72
- // if ObjectKernel DOESN't take constructor args but HAS use().
73
- // However, we just instantiated it.
74
- // Let's assume constructor is the way if available.
75
- // But we keep this check for .use() just in case the constructor signature is different (e.g. empty)
76
- this.kernel.use(plugin);
77
- }
51
+ }
52
+ /**
53
+ * Initialize the engine.
54
+ *
55
+ * Before calling the upstream init (which connects drivers and syncs schemas),
56
+ * bridge all objects loaded via ObjectLoader into the upstream SchemaRegistry.
57
+ */
58
+ async init() {
59
+ // Register any pending drivers from the constructor config
60
+ for (const { driver, isDefault } of this.pendingDrivers) {
61
+ this.registerDriver(driver, isDefault);
78
62
  }
79
- // Helper to unwrap content property (matching MetadataRegistry behavior)
80
- const unwrapContent = (item) => {
81
- if (item && item.content) {
82
- return item.content;
83
- }
84
- return item;
85
- };
86
- // Stub legacy accessors
87
- this.kernel.metadata = {
88
- register: (type, item) => objectql_1.SchemaRegistry.registerItem(type, item, item.id ? 'id' : 'name'),
89
- get: (type, name) => {
90
- const item = objectql_1.SchemaRegistry.getItem(type, name);
91
- return unwrapContent(item);
92
- },
93
- getEntry: (type, name) => objectql_1.SchemaRegistry.getItem(type, name),
94
- list: (type) => {
95
- const items = objectql_1.SchemaRegistry.listItems(type);
96
- return items.map(unwrapContent);
97
- },
98
- unregister: (type, name) => {
99
- // Use the official unregisterItem API when available (added in @objectstack/objectql v0.9.2)
100
- // Fallback to direct metadata access for older versions or test mocks
101
- if (typeof objectql_1.SchemaRegistry.unregisterItem === 'function') {
102
- objectql_1.SchemaRegistry.unregisterItem(type, name);
103
- }
104
- else {
105
- // Fallback: try to access metadata Map directly
106
- const metadata = objectql_1.SchemaRegistry.metadata;
107
- if (metadata && metadata instanceof Map) {
108
- const collection = metadata.get(type);
109
- if (collection && collection instanceof Map) {
110
- collection.delete(name);
111
- }
112
- }
113
- }
114
- },
115
- unregisterPackage: (packageName) => {
116
- const metadata = objectql_1.SchemaRegistry.metadata;
117
- if (metadata && metadata instanceof Map) {
118
- for (const [type, collection] of metadata.entries()) {
119
- if (collection instanceof Map) {
120
- for (const [key, item] of collection.entries()) {
121
- // console.log(`[App] Check ${type} ${key} pkg=${(item as any).package}`);
122
- if (item.package === packageName) {
123
- collection.delete(key);
124
- }
125
- }
126
- }
127
- }
128
- }
129
- else {
130
- console.warn('Metadata is not a Map');
63
+ this.pendingDrivers = [];
64
+ this.syncMetadataToRegistry();
65
+ return super.init();
66
+ }
67
+ /**
68
+ * Sync all filesystem-loaded metadata into the upstream SchemaRegistry.
69
+ * Called automatically by init(), but can also be called manually.
70
+ */
71
+ syncMetadataToRegistry() {
72
+ // Bridge filesystem-loaded objects upstream SchemaRegistry
73
+ const objects = this.metadata.list('object');
74
+ for (const obj of objects) {
75
+ if (obj && obj.name) {
76
+ // Only register if not already in SchemaRegistry
77
+ if (!objectql_1.SchemaRegistry.getObject(obj.name)) {
78
+ super.registerObject(obj, '__filesystem__');
131
79
  }
132
80
  }
133
- };
134
- const kernelHooks = this.kernel.hooks || {};
135
- Object.assign(kernelHooks, {
136
- register: (event, objectName, handler, packageName) => {
137
- this.hookManager.registerHook(event, objectName, handler, packageName);
138
- },
139
- removePackage: (packageName) => {
140
- this.hookManager.removePackage(packageName);
141
- },
142
- trigger: async (event, objectName, ctx) => {
143
- await this.hookManager.runHooks(event, objectName, ctx);
144
- }
145
- });
146
- if (!this.kernel.hooks) {
147
- this.kernel.hooks = kernelHooks;
148
81
  }
149
- this.kernel.actions = {
150
- register: (objectName, actionName, handler, packageName) => {
151
- const key = `${objectName}:${actionName}`;
152
- handler._package = packageName;
153
- this.localActions.set(key, handler);
154
- },
155
- removePackage: (packageName) => {
156
- for (const [key, handler] of this.localActions.entries()) {
157
- if (handler._package === packageName) {
158
- this.localActions.delete(key);
82
+ // Bridge filesystem-loaded hooks → upstream hook system
83
+ const hooks = this.metadata.list('hook');
84
+ for (const hookEntry of hooks) {
85
+ if (hookEntry && typeof hookEntry === 'object') {
86
+ const objectName = hookEntry.id || hookEntry.objectName;
87
+ for (const [event, handler] of Object.entries(hookEntry)) {
88
+ if (typeof handler === 'function' && event !== 'id' && event !== 'objectName') {
89
+ this.registerHook(event, handler, { object: objectName });
159
90
  }
160
91
  }
161
- },
162
- execute: async (objectName, actionName, ctx) => {
163
- const handler = this.localActions.get(`${objectName}:${actionName}`);
164
- if (handler) {
165
- return handler(ctx);
166
- }
167
- throw new Error(`Action '${actionName}' on object '${objectName}' not found`);
168
- }
169
- };
170
- // Register initial metadata if provided
171
- if (config.registry) {
172
- // Copy metadata from provided registry to kernel's registry
173
- for (const type of config.registry.getTypes()) {
174
- const items = config.registry.list(type);
175
- for (const item of items) {
176
- // Safely extract the item's id/name
177
- const itemId = typeof item === 'object' && item !== null
178
- ? item.name || item.id || 'unknown'
179
- : 'unknown';
180
- this.kernel.metadata.register(type, {
181
- type,
182
- id: itemId,
183
- content: item
184
- });
185
- }
186
92
  }
187
93
  }
188
94
  }
189
- use(plugin) {
190
- this.kernelPlugins.push(plugin);
191
- if (this.kernel && this.kernel.use) {
192
- this.kernel.use(plugin);
193
- }
194
- }
195
- removePackage(name) {
196
- // Delegate to kernel managers
197
- this.kernel.metadata.unregisterPackage(name);
198
- this.kernel.hooks.removePackage(name);
199
- this.kernel.actions.removePackage(name);
200
- }
201
- on(event, objectName, handler, packageName) {
202
- // Delegate to kernel hook manager
203
- // We wrap the handler to bridge ObjectQL's rich context types with runtime's base types
204
- // The runtime HookContext supports all fields via index signature, so this is safe
205
- const wrappedHandler = handler;
206
- this.kernel.hooks.register(event, objectName, wrappedHandler, packageName);
207
- }
208
- async triggerHook(event, objectName, ctx) {
209
- // Delegate to kernel hook manager
210
- // Runtime HookContext supports ObjectQL-specific fields via index signature
211
- await this.kernel.hooks.trigger(event, objectName, ctx);
212
- }
213
- registerAction(objectName, actionName, handler, packageName) {
214
- // Delegate to kernel action manager
215
- // We wrap the handler to bridge ObjectQL's rich context types with runtime's base types
216
- // The runtime ActionContext supports all fields via index signature, so this is safe
217
- const wrappedHandler = handler;
218
- this.kernel.actions.register(objectName, actionName, wrappedHandler, packageName);
219
- }
220
- async executeAction(objectName, actionName, ctx) {
221
- // Delegate to kernel action manager
222
- // Runtime ActionContext supports ObjectQL-specific fields via index signature
223
- return await this.kernel.actions.execute(objectName, actionName, ctx);
224
- }
225
- createContext(options) {
226
- const ctx = {
227
- userId: options.userId,
228
- spaceId: options.spaceId,
229
- roles: options.roles || [],
230
- isSystem: options.isSystem,
231
- object: (name) => {
232
- return new repository_1.ObjectRepository(name, ctx, this);
233
- },
234
- transaction: async (callback) => {
235
- const driver = this.datasources['default'];
236
- if (!driver || !driver.beginTransaction) {
237
- return callback(ctx);
238
- }
239
- let trx;
240
- try {
241
- trx = await driver.beginTransaction();
242
- }
243
- catch (e) {
244
- throw e;
245
- }
246
- const trxCtx = {
247
- ...ctx,
248
- transactionHandle: trx,
249
- transaction: async (cb) => cb(trxCtx)
250
- };
251
- try {
252
- const result = await callback(trxCtx);
253
- if (driver.commitTransaction)
254
- await driver.commitTransaction(trx);
255
- return result;
256
- }
257
- catch (error) {
258
- if (driver.rollbackTransaction)
259
- await driver.rollbackTransaction(trx);
260
- throw error;
261
- }
262
- },
263
- sudo: () => {
264
- return this.createContext({ ...options, isSystem: true });
265
- }
266
- };
267
- return ctx;
268
- }
269
95
  /**
270
- * Get the underlying ObjectKernel instance
96
+ * Get an object definition by name.
271
97
  *
272
- * This provides access to the kernel for advanced usage scenarios
273
- * where you need direct access to the plugin architecture.
274
- *
275
- * @returns The ObjectKernel instance
276
- * @throws Error if called before init()
98
+ * Checks the upstream SchemaRegistry first, then falls back to the
99
+ * local MetadataRegistry for objects loaded via ObjectLoader but
100
+ * not yet synced (i.e., init() hasn't been called yet).
277
101
  */
278
- getKernel() {
279
- if (!this.kernel) {
280
- throw new Error('Kernel not initialized. Call init() first.');
281
- }
282
- return this.kernel;
283
- }
284
- registerObject(object) {
285
- // Normalize fields
286
- if (object.fields) {
287
- for (const [key, field] of Object.entries(object.fields)) {
288
- if (field && !field.name) {
289
- field.name = key;
290
- }
291
- }
292
- }
293
- this.kernel.metadata.register('object', object);
294
- }
295
- unregisterObject(name) {
296
- this.kernel.metadata.unregister('object', name);
297
- }
298
102
  getObject(name) {
299
- const item = this.kernel.metadata.get('object', name);
300
- return (item === null || item === void 0 ? void 0 : item.content) || item;
103
+ // Check upstream SchemaRegistry first (call parent)
104
+ const upstream = super.getObject(name);
105
+ if (upstream)
106
+ return upstream;
107
+ // Fallback: check local MetadataRegistry (pre-init)
108
+ return this.metadata.get('object', name);
301
109
  }
110
+ /**
111
+ * Get all registered object configs as a name→config map.
112
+ *
113
+ * Merges results from the upstream SchemaRegistry with the
114
+ * local MetadataRegistry (for pre-init objects).
115
+ */
302
116
  getConfigs() {
303
- const result = {};
304
- const items = this.kernel.metadata.list('object') || [];
305
- for (const item of items) {
306
- const config = item.content || item;
307
- if (config === null || config === void 0 ? void 0 : config.name) {
308
- result[config.name] = config;
117
+ // Get upstream objects first (call parent)
118
+ const result = super.getConfigs();
119
+ // Merge local MetadataRegistry entries not yet synced upstream
120
+ const localObjects = this.metadata.list('object');
121
+ for (const obj of localObjects) {
122
+ if (obj && obj.name && !result[obj.name]) {
123
+ result[obj.name] = obj;
309
124
  }
310
125
  }
311
126
  return result;
312
127
  }
313
- datasource(name) {
314
- const driver = this.datasources[name];
315
- if (!driver) {
316
- throw new Error(`Datasource '${name}' not found`);
317
- }
318
- return driver;
319
- }
320
128
  /**
321
- * Introspect the database schema and automatically register objects.
322
- * This allows connecting to an existing database without defining metadata.
323
- *
324
- * @param datasourceName - The name of the datasource to introspect (default: 'default')
325
- * @param options - Optional configuration for schema conversion
326
- * @returns Array of registered ObjectConfig
129
+ * Remove all hooks, actions, and objects contributed by a package.
130
+ * Also cleans up the local MetadataRegistry.
327
131
  */
328
- async introspectAndRegister(datasourceName = 'default', options) {
329
- const driver = this.datasource(datasourceName);
330
- if (!driver.introspectSchema) {
331
- throw new Error(`Driver for datasource '${datasourceName}' does not support schema introspection`);
332
- }
333
- console.log(`Introspecting datasource '${datasourceName}'...`);
334
- const introspectedSchema = await driver.introspectSchema();
335
- // Convert introspected schema to ObjectQL objects
336
- const objects = (0, util_1.convertIntrospectedSchemaToObjects)(introspectedSchema, options);
337
- console.log(`Discovered ${objects.length} table(s), registering as objects...`);
338
- // Register each discovered object
339
- for (const obj of objects) {
340
- this.registerObject(obj);
341
- }
342
- return objects;
343
- }
344
- async close() {
345
- for (const [name, driver] of Object.entries(this.datasources)) {
346
- if (driver.disconnect) {
347
- console.log(`Closing driver '${name}'...`);
348
- await driver.disconnect();
349
- }
350
- }
351
- }
352
- async init() {
353
- console.log('[ObjectQL] Initializing with ObjectKernel...');
354
- // Start the kernel - this will install and start all plugins
355
- if (this.kernel.start) {
356
- await this.kernel.start();
357
- }
358
- else if (this.kernel.bootstrap) {
359
- await this.kernel.bootstrap();
360
- }
361
- else {
362
- console.warn('ObjectKernel does not have start() or bootstrap() method');
363
- // Manually initialize plugins if kernel doesn't support lifecycle
364
- for (const plugin of this.kernelPlugins) {
365
- try {
366
- if (typeof plugin.init === 'function') {
367
- await plugin.init(this.kernel);
368
- }
369
- if (typeof plugin.start === 'function') {
370
- await plugin.start(this.kernel);
371
- }
372
- }
373
- catch (error) {
374
- console.error(`Failed to initialize plugin ${plugin.name || 'unknown'}:`, error);
375
- // Continue with other plugins even if one fails
376
- }
377
- }
378
- }
379
- // TEMPORARY: Set driver for backward compatibility during migration
380
- // This allows the kernel mock to delegate to the driver
381
- const defaultDriver = this.datasources['default'];
382
- if (typeof this.kernel.setDriver === 'function') {
383
- if (defaultDriver) {
384
- this.kernel.setDriver(defaultDriver);
385
- }
386
- }
387
- // TEMPORARY: Patch kernel with CRUD methods dynamically if missing
388
- // This ensures the repository can delegate to the kernel even if using the new @objectstack/core kernel
389
- if (typeof this.kernel.create !== 'function' && defaultDriver) {
390
- this.kernel.create = (object, doc, options) => defaultDriver.create(object, doc, options);
391
- this.kernel.update = (object, id, doc, options) => defaultDriver.update(object, id, doc, options);
392
- this.kernel.delete = (object, id, options) => defaultDriver.delete(object, id, options);
393
- this.kernel.find = async (object, query, options) => {
394
- const res = await defaultDriver.find(object, query, options);
395
- return { value: res || [], count: (res || []).length };
396
- };
397
- this.kernel.findOne = (object, id, options) => defaultDriver.findOne(object, id, options);
398
- this.kernel.get = (object, id) => defaultDriver.findOne(object, id);
399
- this.kernel.count = (object, query, options) => defaultDriver.count(object, query, options);
400
- }
401
- // Load In-Memory Objects (Dynamic Layer)
402
- if (this.config.objects) {
403
- for (const [key, obj] of Object.entries(this.config.objects)) {
404
- this.registerObject(obj);
405
- }
406
- }
407
- const registryItems = this.kernel.metadata.list('object');
408
- const objects = (registryItems || []).map((item) => item.content || item);
409
- // Init Datasources
410
- // Let's pass all objects to all configured drivers.
411
- for (const [name, driver] of Object.entries(this.datasources)) {
412
- if (driver.init) {
413
- console.log(`Initializing driver '${name}'...`);
414
- await driver.init(objects);
415
- }
416
- }
417
- // Process Initial Data
418
- await this.processInitialData();
419
- console.log('[ObjectQL] Initialization complete');
420
- }
421
- async processInitialData() {
422
- const dataEntries = this.kernel.metadata.list('data');
423
- if (dataEntries.length === 0)
424
- return;
425
- console.log(`Processing ${dataEntries.length} initial data files...`);
426
- // We need a system context to write data
427
- const ctx = this.createContext({ isSystem: true });
428
- for (const entry of dataEntries) {
429
- // Unwrapping metadata content if present
430
- const dataContent = entry.content || entry;
431
- // Expected format:
432
- // 1. { object: 'User', records: [...] }
433
- // 2. [ record1, record2 ] (with name property added by loader inferred from filename)
434
- let objectName = dataContent.object;
435
- let records = dataContent.records;
436
- if (Array.isArray(dataContent)) {
437
- records = dataContent;
438
- if (!objectName && dataContent.name) {
439
- objectName = dataContent.name;
440
- }
441
- }
442
- if (!objectName || !records || !Array.isArray(records)) {
443
- console.warn(`Skipping invalid data entry:`, entry);
444
- continue;
445
- }
446
- const repo = ctx.object(objectName);
447
- for (const record of records) {
448
- try {
449
- // Check existence if a unique key is provided?
450
- // For now, let's assume if it has an ID, we check it.
451
- // Or we could try to find existing record by some key matching logic.
452
- // Simple approach: create. If it fails (constraint), ignore.
453
- // Actually, a better approach for initial data is "upsert" or "create if not exists".
454
- // But without unique keys defined in data, we can't reliably dedup.
455
- // Let's try to 'create' and catch errors.
456
- await repo.create(record);
457
- console.log(`Initialized record for ${objectName}`);
458
- }
459
- catch (e) {
460
- // Ignore duplicate key errors silently-ish
461
- console.warn(`Failed to insert initial data for ${objectName}: ${e.message}`);
462
- }
463
- }
464
- }
132
+ removePackage(packageId) {
133
+ super.removePackage(packageId);
134
+ this.metadata.unregisterPackage(packageId);
465
135
  }
466
136
  }
467
137
  exports.ObjectQL = ObjectQL;
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":";AAAA;;;;;;;;;;;;;GAaG;;;AAEH,oDAAqF;AAGrF,2CAAmD;AAoBnD;;;GAGG;AACH,MAAa,QAAS,SAAQ,mBAAgB;IAQ5C,8CAA8C;IAC9C,IAAY,MAAM,KAAqB,OAAO,IAAiC,CAAC,CAAC,CAAC;IAOlF,YAAY,SAAyB,EAAE;QACrC,gDAAgD;QAChD,KAAK,EAAE,CAAC;QAjBV;;;;WAIG;QACM,aAAQ,GAAG,IAAI,wBAAgB,EAAE,CAAC;QAKnC,mBAAc,GAAyE,EAAE,CAAC;QAShG,+CAA+C;QAC/C,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;gBAChE,IAAI,CAAE,MAAc,CAAC,IAAI,EAAE,CAAC;oBACzB,MAAc,CAAC,IAAI,GAAG,IAAI,CAAC;gBAC9B,CAAC;gBACD,wFAAwF;gBACxF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;oBACvB,IAAI;oBACJ,MAAM,EAAE,MAAyB;oBACjC,SAAS,EAAE,IAAI,KAAK,SAAS;iBAC9B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,IAAI;QACR,2DAA2D;QAC3D,KAAK,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACvD,IAAY,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QAEzB,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED;;;OAGG;IACK,sBAAsB;QAC5B,6DAA6D;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAM,QAAQ,CAAC,CAAC;QAClD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACpB,iDAAiD;gBACjD,IAAI,CAAC,yBAAc,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxC,KAAK,CAAC,cAAc,CAAC,GAAoB,EAAE,gBAAgB,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;QACH,CAAC;QAED,wDAAwD;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAM,MAAM,CAAC,CAAC;QAC9C,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE,CAAC;YAC9B,IAAI,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAC/C,MAAM,UAAU,GAAI,SAAiB,CAAC,EAAE,IAAK,SAAiB,CAAC,UAAU,CAAC;gBAC1E,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;oBACzD,IAAI,OAAO,OAAO,KAAK,UAAU,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;wBAC9E,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,OAAc,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;oBACnE,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACM,SAAS,CAAC,IAAY;QAC7B,oDAAoD;QACpD,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC9B,oDAAoD;QACpD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAgB,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;OAKG;IACM,UAAU;QACjB,2CAA2C;QAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;QAClC,+DAA+D;QAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAM,QAAQ,CAAC,CAAC;QACvD,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;YACzB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACM,aAAa,CAAC,SAAiB;QACtC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;CACF;AA7HD,4BA6HC"}
package/dist/index.d.ts CHANGED
@@ -5,16 +5,9 @@
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 { ObjectKernel } from '@objectstack/runtime';
9
- export type { ObjectStackProtocolImplementation } from '@objectstack/objectql';
10
- import { Data } from '@objectstack/spec';
11
- export type QueryAST = Data.QueryAST;
12
- export type DriverInterface = Data.DriverInterface;
13
- export type DriverOptions = Data.DriverOptions;
14
- export * from './gateway';
15
- export * from './repository';
16
- export * from './app';
8
+ export { createObjectQLKernel, type ObjectQLKernelOptions } from './kernel-factory';
9
+ export { ObjectQL, type ObjectQLConfig } from './app';
10
+ export { ObjectRepository, ScopedContext, SchemaRegistry } from '@objectstack/objectql';
11
+ export type { HookHandler, HookEntry, OperationContext, EngineMiddleware, ObjectQLHostContext } from '@objectstack/objectql';
17
12
  export * from './plugin';
18
- export * from './query';
19
13
  export * from './util';
20
- export * from './optimizations';