@objectstack/plugin-msw 1.0.0 → 1.0.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # @objectstack/plugin-msw
2
2
 
3
+ ## 1.0.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies
8
+ - @objectstack/runtime@1.0.1
9
+ - @objectstack/spec@1.0.1
10
+ - @objectstack/types@1.0.1
11
+ - @objectstack/objectql@1.0.1
12
+
3
13
  ## 1.0.0
4
14
 
5
15
  ### Major Changes
@@ -218,6 +218,18 @@ export declare class ObjectStackServer {
218
218
  error: string;
219
219
  };
220
220
  }>;
221
+ static saveMetaItem(type: string, name: string, item: any): Promise<{
222
+ status: number;
223
+ data: {
224
+ success: boolean;
225
+ message?: string | undefined;
226
+ };
227
+ } | {
228
+ status: number;
229
+ data: {
230
+ error: string;
231
+ };
232
+ }>;
221
233
  }
222
234
  /**
223
235
  * MSW Plugin for ObjectStack
@@ -251,6 +251,32 @@ export class ObjectStackServer {
251
251
  static async createUser(data) {
252
252
  return this.createData('user', data);
253
253
  }
254
+ static async saveMetaItem(type, name, item) {
255
+ if (!this.protocol) {
256
+ throw new Error('ObjectStackServer not initialized. Call ObjectStackServer.init() first.');
257
+ }
258
+ this.logger?.debug?.('MSW: Saving metadata', { type, name });
259
+ try {
260
+ // Check if protocol supports saveMetaItem (it might be added recently)
261
+ if (!this.protocol.saveMetaItem) {
262
+ throw new Error('Protocol does not support saveMetaItem');
263
+ }
264
+ const result = await this.protocol.saveMetaItem({ type, name, item });
265
+ this.logger?.info?.('MSW: Metadata saved', { type, name });
266
+ return {
267
+ status: 200,
268
+ data: result
269
+ };
270
+ }
271
+ catch (error) {
272
+ this.logger?.error?.('MSW: Save metadata failed', error, { type, name });
273
+ const message = error instanceof Error ? error.message : 'Unknown error';
274
+ return {
275
+ status: 400,
276
+ data: { error: message }
277
+ };
278
+ }
279
+ }
254
280
  }
255
281
  ObjectStackServer.protocol = null;
256
282
  ObjectStackServer.logger = null;
@@ -397,6 +423,18 @@ export class MSWPlugin {
397
423
  return HttpResponse.json({ error: message }, { status: 404 });
398
424
  }
399
425
  }),
426
+ // Save Metadata
427
+ http.put(`${baseUrl}/meta/:type/:name`, async ({ params, request }) => {
428
+ try {
429
+ const body = await request.json();
430
+ const result = await ObjectStackServer.saveMetaItem(params.type, params.name, body);
431
+ return HttpResponse.json(result.data, { status: result.status });
432
+ }
433
+ catch (error) {
434
+ const message = error instanceof Error ? error.message : 'Unknown error';
435
+ return HttpResponse.json({ error: message }, { status: 400 });
436
+ }
437
+ }),
400
438
  // Data endpoints
401
439
  http.get(`${baseUrl}/data/:object`, async ({ params, request }) => {
402
440
  try {
package/package.json CHANGED
@@ -1,24 +1,24 @@
1
1
  {
2
2
  "name": "@objectstack/plugin-msw",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "MSW (Mock Service Worker) Plugin for ObjectStack Runtime",
5
5
  "license": "Apache-2.0",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
8
8
  "peerDependencies": {
9
- "@objectstack/runtime": "^1.0.0"
9
+ "@objectstack/runtime": "^1.0.1"
10
10
  },
11
11
  "dependencies": {
12
12
  "msw": "^2.0.0",
13
- "@objectstack/spec": "1.0.0",
14
- "@objectstack/types": "1.0.0",
15
- "@objectstack/objectql": "1.0.0"
13
+ "@objectstack/spec": "1.0.1",
14
+ "@objectstack/types": "1.0.1",
15
+ "@objectstack/objectql": "1.0.1"
16
16
  },
17
17
  "devDependencies": {
18
18
  "@types/node": "^25.1.0",
19
19
  "typescript": "^5.0.0",
20
20
  "vitest": "^4.0.18",
21
- "@objectstack/runtime": "1.0.0"
21
+ "@objectstack/runtime": "1.0.1"
22
22
  },
23
23
  "scripts": {
24
24
  "build": "tsc",
package/src/msw-plugin.ts CHANGED
@@ -303,6 +303,33 @@ export class ObjectStackServer {
303
303
  static async createUser(data: any) {
304
304
  return this.createData('user', data);
305
305
  }
306
+ static async saveMetaItem(type: string, name: string, item: any) {
307
+ if (!this.protocol) {
308
+ throw new Error('ObjectStackServer not initialized. Call ObjectStackServer.init() first.');
309
+ }
310
+
311
+ this.logger?.debug?.('MSW: Saving metadata', { type, name });
312
+ try {
313
+ // Check if protocol supports saveMetaItem (it might be added recently)
314
+ if (!this.protocol.saveMetaItem) {
315
+ throw new Error('Protocol does not support saveMetaItem');
316
+ }
317
+
318
+ const result = await this.protocol.saveMetaItem({ type, name, item });
319
+ this.logger?.info?.('MSW: Metadata saved', { type, name });
320
+ return {
321
+ status: 200,
322
+ data: result
323
+ };
324
+ } catch (error) {
325
+ this.logger?.error?.('MSW: Save metadata failed', error, { type, name });
326
+ const message = error instanceof Error ? error.message : 'Unknown error';
327
+ return {
328
+ status: 400,
329
+ data: { error: message }
330
+ };
331
+ }
332
+ }
306
333
  }
307
334
 
308
335
  /**
@@ -471,6 +498,22 @@ export class MSWPlugin implements Plugin {
471
498
  }
472
499
  }),
473
500
 
501
+ // Save Metadata
502
+ http.put(`${baseUrl}/meta/:type/:name`, async ({ params, request }) => {
503
+ try {
504
+ const body = await request.json();
505
+ const result = await ObjectStackServer.saveMetaItem(
506
+ params.type as string,
507
+ params.name as string,
508
+ body
509
+ );
510
+ return HttpResponse.json(result.data, { status: result.status });
511
+ } catch (error) {
512
+ const message = error instanceof Error ? error.message : 'Unknown error';
513
+ return HttpResponse.json({ error: message }, { status: 400 });
514
+ }
515
+ }),
516
+
474
517
  // Data endpoints
475
518
  http.get(`${baseUrl}/data/:object`, async ({ params, request }) => {
476
519
  try {