@objectstack/objectql 3.2.2 → 3.2.4

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@objectstack/objectql",
3
- "version": "3.2.2",
3
+ "version": "3.2.4",
4
4
  "license": "Apache-2.0",
5
5
  "description": "Isomorphic ObjectQL Engine for ObjectStack",
6
6
  "main": "dist/index.js",
@@ -13,9 +13,9 @@
13
13
  }
14
14
  },
15
15
  "dependencies": {
16
- "@objectstack/core": "3.2.2",
17
- "@objectstack/spec": "3.2.2",
18
- "@objectstack/types": "3.2.2"
16
+ "@objectstack/core": "3.2.4",
17
+ "@objectstack/spec": "3.2.4",
18
+ "@objectstack/types": "3.2.4"
19
19
  },
20
20
  "devDependencies": {
21
21
  "typescript": "^5.0.0",
@@ -16,7 +16,7 @@ describe('ObjectQLPlugin - Metadata Service Integration', () => {
16
16
  it('should register ObjectQL as metadata service provider', async () => {
17
17
  // Arrange
18
18
  const plugin = new ObjectQLPlugin();
19
- kernel.use(plugin);
19
+ await kernel.use(plugin);
20
20
 
21
21
  // Act
22
22
  await kernel.bootstrap();
@@ -24,16 +24,19 @@ describe('ObjectQLPlugin - Metadata Service Integration', () => {
24
24
  // Assert
25
25
  const metadataService = kernel.getService('metadata');
26
26
  expect(metadataService).toBeDefined();
27
-
28
- // Should be the ObjectQL instance
27
+
28
+ // ObjectQL registers a MetadataFacade as the metadata service;
29
+ // it is separate from (but backed by the same registry as) the objectql service.
29
30
  const objectql = kernel.getService('objectql');
30
- expect(metadataService).toBe(objectql);
31
+ expect(objectql).toBeDefined();
32
+ // metadata and objectql are distinct service instances
33
+ expect(metadataService).not.toBe(objectql);
31
34
  });
32
35
 
33
36
  it('should serve in-memory metadata definitions', async () => {
34
37
  // Arrange
35
38
  const plugin = new ObjectQLPlugin();
36
- kernel.use(plugin);
39
+ await kernel.use(plugin);
37
40
  await kernel.bootstrap();
38
41
 
39
42
  const objectql = kernel.getService('objectql') as any;
@@ -49,17 +52,13 @@ describe('ObjectQLPlugin - Metadata Service Integration', () => {
49
52
  }
50
53
  };
51
54
 
52
- // Act - Register object programmatically
53
- objectql.registry.registerObject({
54
- packageId: 'test',
55
- namespace: 'test',
56
- ownership: 'own',
57
- object: testObject
58
- });
55
+ // Act - Register object programmatically via the SchemaRegistry API
56
+ objectql.registry.registerObject(testObject, 'test', 'test');
59
57
 
60
- // Assert - Should be retrievable via registry
61
- const objects = objectql.registry.listObjects();
62
- expect(objects).toContain('test__test_object');
58
+ // Assert - Should be retrievable via registry (getAllObjects returns ServiceObject[])
59
+ const objects = objectql.registry.getAllObjects();
60
+ const fqns = objects.map((o: any) => o.name);
61
+ expect(fqns).toContain('test__test_object');
63
62
  });
64
63
  });
65
64
 
@@ -67,7 +66,7 @@ describe('ObjectQLPlugin - Metadata Service Integration', () => {
67
66
  it('should register objectql, data, and protocol services', async () => {
68
67
  // Arrange
69
68
  const plugin = new ObjectQLPlugin();
70
- kernel.use(plugin);
69
+ await kernel.use(plugin);
71
70
 
72
71
  // Act
73
72
  await kernel.bootstrap();
@@ -88,7 +87,7 @@ describe('ObjectQLPlugin - Metadata Service Integration', () => {
88
87
  list: async () => []
89
88
  };
90
89
 
91
- kernel.use({
90
+ await kernel.use({
92
91
  name: 'mock-metadata',
93
92
  type: 'test',
94
93
  version: '1.0.0',
@@ -98,7 +97,7 @@ describe('ObjectQLPlugin - Metadata Service Integration', () => {
98
97
  });
99
98
 
100
99
  const plugin = new ObjectQLPlugin();
101
- kernel.use(plugin);
100
+ await kernel.use(plugin);
102
101
 
103
102
  // Act
104
103
  await kernel.bootstrap();
@@ -125,7 +124,7 @@ describe('ObjectQLPlugin - Metadata Service Integration', () => {
125
124
  delete: async () => ({ count: 1 })
126
125
  };
127
126
 
128
- kernel.use({
127
+ await kernel.use({
129
128
  name: 'mock-driver-plugin',
130
129
  type: 'driver',
131
130
  version: '1.0.0',
@@ -135,7 +134,7 @@ describe('ObjectQLPlugin - Metadata Service Integration', () => {
135
134
  });
136
135
 
137
136
  const plugin = new ObjectQLPlugin();
138
- kernel.use(plugin);
137
+ await kernel.use(plugin);
139
138
 
140
139
  // Act
141
140
  await kernel.bootstrap();
@@ -156,7 +155,7 @@ describe('ObjectQLPlugin - Metadata Service Integration', () => {
156
155
  }
157
156
  };
158
157
 
159
- kernel.use({
158
+ await kernel.use({
160
159
  name: 'mock-app-plugin',
161
160
  type: 'app',
162
161
  version: '1.0.0',
@@ -166,7 +165,7 @@ describe('ObjectQLPlugin - Metadata Service Integration', () => {
166
165
  });
167
166
 
168
167
  const plugin = new ObjectQLPlugin();
169
- kernel.use(plugin);
168
+ await kernel.use(plugin);
170
169
 
171
170
  // Act
172
171
  await kernel.bootstrap();
@@ -212,7 +211,7 @@ describe('ObjectQLPlugin - Metadata Service Integration', () => {
212
211
  };
213
212
 
214
213
  // Register mock metadata service BEFORE ObjectQL
215
- kernel.use({
214
+ await kernel.use({
216
215
  name: 'mock-metadata',
217
216
  type: 'metadata',
218
217
  version: '1.0.0',
@@ -222,7 +221,7 @@ describe('ObjectQLPlugin - Metadata Service Integration', () => {
222
221
  });
223
222
 
224
223
  const plugin = new ObjectQLPlugin();
225
- kernel.use(plugin);
224
+ await kernel.use(plugin);
226
225
 
227
226
  // Act
228
227
  await kernel.bootstrap();
package/src/plugin.ts CHANGED
@@ -116,6 +116,9 @@ export class ObjectQLPlugin implements Plugin {
116
116
  }
117
117
  }
118
118
 
119
+ // Initialize drivers (calls driver.connect() which sets up persistence)
120
+ await this.ql?.init();
121
+
119
122
  // Register built-in audit hooks
120
123
  this.registerAuditHooks(ctx);
121
124