@objectstack/objectql 0.8.1 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @objectstack/objectql
2
2
 
3
+ ## 0.8.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 555e6a7: Refactor: Deprecated View Storage protocol in favor of Metadata Views.
8
+
9
+ - **BREAKING**: Removed `view-storage.zod.ts` and `ViewStorage` related types from `@objectstack/spec`.
10
+ - **BREAKING**: Removed `createView`, `updateView`, `deleteView`, `listViews` from `ObjectStackProtocol` interface.
11
+ - **BREAKING**: Removed in-memory View Storage implementation from `@objectstack/objectql`.
12
+ - **UPDATE**: `@objectstack/plugin-msw` now dynamically loads `@objectstack/objectql` to avoid hard dependencies.
13
+
14
+ - Updated dependencies [555e6a7]
15
+ - @objectstack/spec@0.8.2
16
+ - @objectstack/core@0.8.2
17
+ - @objectstack/types@0.8.2
18
+
3
19
  ## 0.8.1
4
20
 
5
21
  ### Patch Changes
package/dist/engine.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { HookContext } from '@objectstack/spec/data';
2
2
  import { DataEngineQueryOptions, DataEngineInsertOptions, DataEngineUpdateOptions, DataEngineDeleteOptions, DataEngineAggregateOptions, DataEngineCountOptions } from '@objectstack/spec/data';
3
3
  import { DriverInterface, IDataEngine, Logger } from '@objectstack/core';
4
+ import { SchemaRegistry } from './registry.js';
4
5
  export type HookHandler = (context: HookContext) => Promise<void> | void;
5
6
  /**
6
7
  * Host Context provided to plugins (Internal ObjectQL Plugin System)
@@ -22,6 +23,10 @@ export declare class ObjectQL implements IDataEngine {
22
23
  private hooks;
23
24
  private hostContext;
24
25
  constructor(hostContext?: Record<string, any>);
26
+ /**
27
+ * Expose the SchemaRegistry for plugins to register metadata
28
+ */
29
+ get registry(): typeof SchemaRegistry;
25
30
  /**
26
31
  * Load and Register a Plugin
27
32
  */
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
package/dist/engine.js CHANGED
@@ -23,6 +23,12 @@ export class ObjectQL {
23
23
  this.logger = hostContext.logger || createLogger({ level: 'info', format: 'pretty' });
24
24
  this.logger.info('ObjectQL Engine Instance Created');
25
25
  }
26
+ /**
27
+ * Expose the SchemaRegistry for plugins to register metadata
28
+ */
29
+ get registry() {
30
+ return SchemaRegistry;
31
+ }
26
32
  /**
27
33
  * Load and Register a Plugin
28
34
  */
@@ -2,10 +2,8 @@ import { ObjectStackProtocol } from '@objectstack/spec/api';
2
2
  import { IDataEngine } from '@objectstack/core';
3
3
  import type { BatchUpdateRequest, BatchUpdateResponse, UpdateManyDataRequest, DeleteManyDataRequest } from '@objectstack/spec/api';
4
4
  import type { MetadataCacheRequest, MetadataCacheResponse } from '@objectstack/spec/api';
5
- import type { CreateViewRequest, UpdateViewRequest, ListViewsRequest, ViewResponse, ListViewsResponse } from '@objectstack/spec/api';
6
5
  export declare class ObjectStackProtocolImplementation implements ObjectStackProtocol {
7
6
  private engine;
8
- private viewStorage;
9
7
  constructor(engine: IDataEngine);
10
8
  getDiscovery(_request: {}): Promise<{
11
9
  version: string;
@@ -33,11 +31,7 @@ export declare class ObjectStackProtocolImplementation implements ObjectStackPro
33
31
  getUiView(request: {
34
32
  object: string;
35
33
  type: 'list' | 'form';
36
- }): Promise<{
37
- object: string;
38
- type: "list" | "form";
39
- view: any;
40
- }>;
34
+ }): Promise<any>;
41
35
  findData(request: {
42
36
  object: string;
43
37
  query?: any;
@@ -96,18 +90,5 @@ export declare class ObjectStackProtocolImplementation implements ObjectStackPro
96
90
  }): Promise<any>;
97
91
  updateManyData(_request: UpdateManyDataRequest): Promise<any>;
98
92
  deleteManyData(request: DeleteManyDataRequest): Promise<any>;
99
- createView(request: CreateViewRequest): Promise<ViewResponse>;
100
- getView(request: {
101
- id: string;
102
- }): Promise<ViewResponse>;
103
- listViews(request: ListViewsRequest): Promise<ListViewsResponse>;
104
- updateView(request: UpdateViewRequest): Promise<ViewResponse>;
105
- deleteView(request: {
106
- id: string;
107
- }): Promise<{
108
- success: boolean;
109
- object: string;
110
- id: string;
111
- }>;
112
93
  }
113
94
  //# sourceMappingURL=protocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EACR,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACzF,OAAO,KAAK,EACR,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EAEpB,MAAM,uBAAuB,CAAC;AAmB/B,qBAAa,iCAAkC,YAAW,mBAAmB;IACzE,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,WAAW,CAAqC;gBAE5C,MAAM,EAAE,WAAW;IAIzB,YAAY,CAAC,QAAQ,EAAE,EAAE;;;;;;IASzB,YAAY,CAAC,QAAQ,EAAE,EAAE;;;IAMzB,YAAY,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;;;;IAOtC,WAAW,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;;;;;IAQnD,SAAS,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;;;;;IAmC5D,QAAQ,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,GAAG,CAAA;KAAE;;;;;;;IAsBjD,OAAO,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE;;;;;IAc/C,UAAU,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE;;;;;IASjD,UAAU,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE;;;;;IAU7D,UAAU,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE;;;;;IAclD,iBAAiB,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,oBAAoB,CAAA;KAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA4C/H,SAAS,CAAC,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,kBAAkB,CAAA;KAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAQlG,cAAc,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,GAAG,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IASzE,cAAc,CAAC,QAAQ,EAAE,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC;IAK7D,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC;IAY5D,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC;IAgB7D,OAAO,CAAC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAMvD,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAgBhE,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC;IAW7D,UAAU,CAAC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CAKvG"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EACR,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAmBzF,qBAAa,iCAAkC,YAAW,mBAAmB;IACzE,OAAO,CAAC,MAAM,CAAc;gBAEhB,MAAM,EAAE,WAAW;IAIzB,YAAY,CAAC,QAAQ,EAAE,EAAE;;;;;;IASzB,YAAY,CAAC,QAAQ,EAAE,EAAE;;;IAMzB,YAAY,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;;;;IAOtC,WAAW,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;;;;;IAQnD,SAAS,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;IA+B5D,QAAQ,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,GAAG,CAAA;KAAE;;;;;;;IAsBjD,OAAO,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE;;;;;IAc/C,UAAU,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE;;;;;IASjD,UAAU,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE;;;;;IAU7D,UAAU,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE;;;;;IAclD,iBAAiB,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,oBAAoB,CAAA;KAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA4C/H,SAAS,CAAC,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,kBAAkB,CAAA;KAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAQlG,cAAc,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,GAAG,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IASzE,cAAc,CAAC,QAAQ,EAAE,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC;IAK7D,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC;CAQrE"}
package/dist/protocol.js CHANGED
@@ -15,7 +15,6 @@ function simpleHash(str) {
15
15
  }
16
16
  export class ObjectStackProtocolImplementation {
17
17
  constructor(engine) {
18
- this.viewStorage = new Map();
19
18
  this.engine = engine;
20
19
  }
21
20
  async getDiscovery(_request) {
@@ -73,11 +72,7 @@ export class ObjectStackProtocolImplementation {
73
72
  ]
74
73
  };
75
74
  }
76
- return {
77
- object: request.object,
78
- type: request.type,
79
- view
80
- };
75
+ return view;
81
76
  }
82
77
  async findData(request) {
83
78
  // TODO: Normalize query from HTTP Query params (string values) to DataEngineQueryOptions (typed)
@@ -209,57 +204,4 @@ export class ObjectStackProtocolImplementation {
209
204
  ...request.options
210
205
  });
211
206
  }
212
- // ==========================================
213
- // View Storage (Mock Implementation for now)
214
- // ==========================================
215
- async createView(request) {
216
- const id = Math.random().toString(36).substring(7);
217
- // Cast to unknown then SavedView to bypass strict type checks for the mock
218
- const view = {
219
- id,
220
- ...request,
221
- createdAt: new Date().toISOString(),
222
- updatedAt: new Date().toISOString(),
223
- createdBy: 'system',
224
- updatedBy: 'system'
225
- };
226
- this.viewStorage.set(id, view);
227
- return { success: true, data: view };
228
- }
229
- async getView(request) {
230
- const view = this.viewStorage.get(request.id);
231
- if (!view)
232
- throw new Error(`View ${request.id} not found`);
233
- return { success: true, data: view };
234
- }
235
- async listViews(request) {
236
- const views = Array.from(this.viewStorage.values())
237
- .filter(v => !request?.object || v.object === request.object);
238
- return {
239
- success: true,
240
- data: views,
241
- pagination: {
242
- total: views.length,
243
- limit: request.limit || 50,
244
- offset: request.offset || 0,
245
- hasMore: false
246
- }
247
- };
248
- }
249
- async updateView(request) {
250
- const view = this.viewStorage.get(request.id);
251
- if (!view)
252
- throw new Error(`View ${request.id} not found`);
253
- const { id, ...updates } = request;
254
- // Cast to unknown then SavedView to bypass strict type checks for the mock
255
- const updated = { ...view, ...updates, updatedAt: new Date().toISOString() };
256
- this.viewStorage.set(request.id, updated);
257
- return { success: true, data: updated };
258
- }
259
- async deleteView(request) {
260
- const deleted = this.viewStorage.delete(request.id);
261
- if (!deleted)
262
- throw new Error(`View ${request.id} not found`);
263
- return { success: true, object: 'view', id: request.id };
264
- }
265
207
  }
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@objectstack/objectql",
3
- "version": "0.8.1",
3
+ "version": "0.8.2",
4
4
  "description": "Isomorphic ObjectQL Engine for ObjectStack",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "dependencies": {
8
- "@objectstack/core": "0.8.1",
9
- "@objectstack/spec": "0.8.1",
10
- "@objectstack/types": "0.8.1"
8
+ "@objectstack/core": "0.8.2",
9
+ "@objectstack/spec": "0.8.2",
10
+ "@objectstack/types": "0.8.2"
11
11
  },
12
12
  "devDependencies": {
13
13
  "typescript": "^5.0.0",
package/src/engine.ts CHANGED
@@ -50,6 +50,13 @@ export class ObjectQL implements IDataEngine {
50
50
  this.logger.info('ObjectQL Engine Instance Created');
51
51
  }
52
52
 
53
+ /**
54
+ * Expose the SchemaRegistry for plugins to register metadata
55
+ */
56
+ get registry() {
57
+ return SchemaRegistry;
58
+ }
59
+
53
60
  /**
54
61
  * Load and Register a Plugin
55
62
  */
package/src/protocol.ts CHANGED
@@ -7,14 +7,6 @@ import type {
7
7
  DeleteManyDataRequest
8
8
  } from '@objectstack/spec/api';
9
9
  import type { MetadataCacheRequest, MetadataCacheResponse } from '@objectstack/spec/api';
10
- import type {
11
- CreateViewRequest,
12
- UpdateViewRequest,
13
- ListViewsRequest,
14
- ViewResponse,
15
- ListViewsResponse,
16
- SavedView
17
- } from '@objectstack/spec/api';
18
10
 
19
11
  // We import SchemaRegistry directly since this class lives in the same package
20
12
  import { SchemaRegistry } from './registry.js';
@@ -35,7 +27,6 @@ function simpleHash(str: string): string {
35
27
 
36
28
  export class ObjectStackProtocolImplementation implements ObjectStackProtocol {
37
29
  private engine: IDataEngine;
38
- private viewStorage: Map<string, SavedView> = new Map();
39
30
 
40
31
  constructor(engine: IDataEngine) {
41
32
  this.engine = engine;
@@ -99,11 +90,7 @@ export class ObjectStackProtocolImplementation implements ObjectStackProtocol {
99
90
  ]
100
91
  };
101
92
  }
102
- return {
103
- object: request.object,
104
- type: request.type,
105
- view
106
- };
93
+ return view;
107
94
  }
108
95
 
109
96
  async findData(request: { object: string, query?: any }) {
@@ -249,62 +236,4 @@ export class ObjectStackProtocolImplementation implements ObjectStackProtocol {
249
236
  });
250
237
  }
251
238
 
252
- // ==========================================
253
- // View Storage (Mock Implementation for now)
254
- // ==========================================
255
-
256
- async createView(request: CreateViewRequest): Promise<ViewResponse> {
257
- const id = Math.random().toString(36).substring(7);
258
- // Cast to unknown then SavedView to bypass strict type checks for the mock
259
- const view: SavedView = {
260
- id,
261
- ...request,
262
- createdAt: new Date().toISOString(),
263
- updatedAt: new Date().toISOString(),
264
- createdBy: 'system',
265
- updatedBy: 'system'
266
- } as unknown as SavedView;
267
-
268
- this.viewStorage.set(id, view);
269
- return { success: true, data: view };
270
- }
271
-
272
- async getView(request: { id: string }): Promise<ViewResponse> {
273
- const view = this.viewStorage.get(request.id);
274
- if (!view) throw new Error(`View ${request.id} not found`);
275
- return { success: true, data: view };
276
- }
277
-
278
- async listViews(request: ListViewsRequest): Promise<ListViewsResponse> {
279
- const views = Array.from(this.viewStorage.values())
280
- .filter(v => !request?.object || v.object === request.object);
281
-
282
- return {
283
- success: true,
284
- data: views,
285
- pagination: {
286
- total: views.length,
287
- limit: request.limit || 50,
288
- offset: request.offset || 0,
289
- hasMore: false
290
- }
291
- };
292
- }
293
-
294
- async updateView(request: UpdateViewRequest): Promise<ViewResponse> {
295
- const view = this.viewStorage.get(request.id);
296
- if (!view) throw new Error(`View ${request.id} not found`);
297
-
298
- const { id, ...updates } = request;
299
- // Cast to unknown then SavedView to bypass strict type checks for the mock
300
- const updated = { ...view, ...updates, updatedAt: new Date().toISOString() } as unknown as SavedView;
301
- this.viewStorage.set(request.id, updated);
302
- return { success: true, data: updated };
303
- }
304
-
305
- async deleteView(request: { id: string }): Promise<{ success: boolean, object: string, id: string }> {
306
- const deleted = this.viewStorage.delete(request.id);
307
- if (!deleted) throw new Error(`View ${request.id} not found`);
308
- return { success: true, object: 'view', id: request.id };
309
- }
310
239
  }