temba 0.50.0 → 0.51.0

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/config/index.d.ts CHANGED
@@ -25,6 +25,7 @@ export type Config = {
25
25
  allowDeleteCollection: boolean;
26
26
  etagsEnabled: boolean;
27
27
  openapi: OpenApiConfig;
28
+ webSocket: boolean;
28
29
  isTesting: boolean;
29
30
  implementations: Implementations | null;
30
31
  };
@@ -43,6 +44,7 @@ export type UserConfig = {
43
44
  allowDeleteCollection?: boolean;
44
45
  etags?: boolean;
45
46
  openapi?: OpenApiConfig;
47
+ webSocket?: boolean;
46
48
  isTesting?: boolean;
47
49
  implementations?: Implementations;
48
50
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAA;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEzD,KAAK,YAAY,GAAG,MAAM,CAAA;AAE1B,KAAK,gBAAgB,GAAG;IACtB,YAAY,EAAE,YAAY,CAAA;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,KAAK,SAAS,GAAG,CAAC,YAAY,GAAG,gBAAgB,CAAC,EAAE,CAAA;AAEpD,KAAK,aAAa,GAAG,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEtD,MAAM,MAAM,MAAM,GAAG;IACnB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,SAAS,EAAE,SAAS,CAAA;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,kBAAkB,EAAE,kBAAkB,GAAG,IAAI,CAAA;IAC7C,uBAAuB,EAAE,uBAAuB,GAAG,IAAI,CAAA;IACvD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,gBAAgB,EAAE,OAAO,CAAA;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAA;IACjC,qBAAqB,EAAE,OAAO,CAAA;IAC9B,YAAY,EAAE,OAAO,CAAA;IACrB,OAAO,EAAE,aAAa,CAAA;IAEtB,SAAS,EAAE,OAAO,CAAA;IAClB,eAAe,EAAE,eAAe,GAAG,IAAI,CAAA;CACxC,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,MAAM,CAAA;AAEpC,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IACvC,uBAAuB,CAAC,EAAE,uBAAuB,CAAA;IACjD,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,aAAa,CAAA;IAGvB,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB,eAAe,CAAC,EAAE,eAAe,CAAA;CAClC,CAAA;AAsBD,eAAO,MAAM,UAAU,GAAI,aAAa,UAAU,KAAG,MA8GpD,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,SAAyC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAA;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEzD,KAAK,YAAY,GAAG,MAAM,CAAA;AAE1B,KAAK,gBAAgB,GAAG;IACtB,YAAY,EAAE,YAAY,CAAA;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,KAAK,SAAS,GAAG,CAAC,YAAY,GAAG,gBAAgB,CAAC,EAAE,CAAA;AAEpD,KAAK,aAAa,GAAG,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEtD,MAAM,MAAM,MAAM,GAAG;IACnB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,SAAS,EAAE,SAAS,CAAA;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,kBAAkB,EAAE,kBAAkB,GAAG,IAAI,CAAA;IAC7C,uBAAuB,EAAE,uBAAuB,GAAG,IAAI,CAAA;IACvD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,gBAAgB,EAAE,OAAO,CAAA;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAA;IACjC,qBAAqB,EAAE,OAAO,CAAA;IAC9B,YAAY,EAAE,OAAO,CAAA;IACrB,OAAO,EAAE,aAAa,CAAA;IACtB,SAAS,EAAE,OAAO,CAAA;IAElB,SAAS,EAAE,OAAO,CAAA;IAClB,eAAe,EAAE,eAAe,GAAG,IAAI,CAAA;CACxC,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,MAAM,CAAA;AAEpC,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IACvC,uBAAuB,CAAC,EAAE,uBAAuB,CAAA;IACjD,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,SAAS,CAAC,EAAE,OAAO,CAAA;IAGnB,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB,eAAe,CAAC,EAAE,eAAe,CAAA;CAClC,CAAA;AAuBD,eAAO,MAAM,UAAU,GAAI,aAAa,UAAU,KAAG,MAkHpD,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,SAAyC,CAAA"}
package/config/index.js CHANGED
@@ -13,6 +13,7 @@ const defaultConfig = {
13
13
  allowDeleteCollection: false,
14
14
  etagsEnabled: false,
15
15
  openapi: true,
16
+ webSocket: false,
16
17
  isTesting: false,
17
18
  implementations: null,
18
19
  };
@@ -98,6 +99,9 @@ export const initConfig = (userConfig) => {
98
99
  if (!isUndefined(userConfig.openapi)) {
99
100
  config.openapi = userConfig.openapi;
100
101
  }
102
+ if (!isUndefined(userConfig.webSocket)) {
103
+ config.webSocket = userConfig.webSocket;
104
+ }
101
105
  return config;
102
106
  };
103
107
  export const isUndefined = (value) => typeof value === 'undefined';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"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"}
package/index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAyF3D,eAAO,MAAM,MAAM,GAAI,aAAa,UAAU;;;EAA6B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAqG3D,eAAO,MAAM,MAAM,GAAI,aAAa,UAAU;;;EAA6B,CAAA"}
package/index.js CHANGED
@@ -10,6 +10,7 @@ import { createRootUrlHandler } from './root/root.js';
10
10
  import { sendResponse } from './responseHandler.js';
11
11
  import { createQueries } from './data/queries.js';
12
12
  import { compileSchemas } from './schema/compile.js';
13
+ import { createWebSocketServer } from './websocket/websocket.js';
13
14
  const removePendingAndTrailingSlashes = (url) => (url ? url.replace(/^\/+|\/+$/g, '') : '');
14
15
  const handleOptionsRequest = (res) => sendResponse(res)({
15
16
  statusCode: 204,
@@ -21,9 +22,17 @@ const createServer = async (userConfig) => {
21
22
  const { log, logLevel } = initLogger(process.env.LOG_LEVEL);
22
23
  const queries = createQueries(config.connectionString, log);
23
24
  const schemas = compileSchemas(config.schemas);
24
- const handleResource = await createResourceHandler(queries, schemas, config);
25
25
  const httpLogger = getHttpLogger(logLevel);
26
- const server = httpCreateServer((req, res) => {
26
+ // Create the server first without the request handler
27
+ const server = httpCreateServer();
28
+ // Initialize WebSocket server if enabled (must be after server creation)
29
+ const broadcast = config.webSocket
30
+ ? createWebSocketServer(server)
31
+ : null;
32
+ // Now create the resource handler with the broadcast function
33
+ const handleResource = await createResourceHandler(queries, schemas, config, broadcast);
34
+ // Set up the request handler
35
+ server.on('request', (req, res) => {
27
36
  const implementations = getDefaultImplementations(config);
28
37
  httpLogger(req, res, (err) => {
29
38
  if (err)
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "temba",
3
- "version": "0.50.0",
3
+ "version": "0.51.0",
4
4
  "description": "Create a simple REST API with zero coding in less than 30 seconds (seriously).",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",
@@ -25,6 +25,7 @@
25
25
  "@types/indefinite": "2.3.4",
26
26
  "@types/morgan": "1.9.10",
27
27
  "@types/supertest": "6.0.3",
28
+ "@types/ws": "^8.18.1",
28
29
  "@typescript-eslint/eslint-plugin": "8.46.3",
29
30
  "@typescript-eslint/parser": "8.46.3",
30
31
  "eslint": "9.39.1",
@@ -49,6 +50,7 @@
49
50
  "lowdb": "7.0.1",
50
51
  "mime": "4.1.0",
51
52
  "morgan": "1.10.1",
52
- "openapi3-ts": "4.5.0"
53
+ "openapi3-ts": "4.5.0",
54
+ "ws": "^8.19.0"
53
55
  }
54
56
  }
@@ -1,7 +1,8 @@
1
1
  import type { Queries } from '../data/types.js';
2
2
  import type { RequestInterceptor } from '../requestInterceptor/types.js';
3
3
  import type { DeleteRequest } from './types.js';
4
- export declare const createDeleteRoutes: (queries: Queries, allowDeleteCollection: boolean, requestInterceptor: RequestInterceptor | null, etagsEnabled: boolean) => (req: DeleteRequest) => Promise<{
4
+ import type { BroadcastFunction } from '../websocket/websocket.js';
5
+ export declare const createDeleteRoutes: (queries: Queries, allowDeleteCollection: boolean, requestInterceptor: RequestInterceptor | null, etagsEnabled: boolean, broadcast: BroadcastFunction | null) => (req: DeleteRequest) => Promise<{
5
6
  statusCode: number;
6
7
  body: import("./types.js").Body | undefined;
7
8
  } | {
@@ -1 +1 @@
1
- {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/delete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAG5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C,eAAO,MAAM,kBAAkB,GAC7B,SAAS,OAAO,EAChB,uBAAuB,OAAO,EAC9B,oBAAoB,kBAAkB,GAAG,IAAI,EAC7C,cAAc,OAAO,WAEY,aAAa;;;;;;;;;;;EAgF/C,CAAA"}
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/delete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAG5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE/D,eAAO,MAAM,kBAAkB,GAC7B,SAAS,OAAO,EAChB,uBAAuB,OAAO,EAC9B,oBAAoB,kBAAkB,GAAG,IAAI,EAC7C,cAAc,OAAO,EACrB,WAAW,iBAAiB,GAAG,IAAI,WAEF,aAAa;;;;;;;;;;;EA0F/C,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { etag } from '../etags/etags.js';
2
2
  import { interceptDeleteRequest } from '../requestInterceptor/interceptRequest.js';
3
- export const createDeleteRoutes = (queries, allowDeleteCollection, requestInterceptor, etagsEnabled) => {
3
+ export const createDeleteRoutes = (queries, allowDeleteCollection, requestInterceptor, etagsEnabled, broadcast) => {
4
4
  const handleDelete = async (req) => {
5
5
  const { headers, resource, id } = req;
6
6
  if (requestInterceptor?.delete) {
@@ -36,6 +36,10 @@ export const createDeleteRoutes = (queries, allowDeleteCollection, requestInterc
36
36
  }
37
37
  }
38
38
  await queries.deleteById(resource, id);
39
+ // Broadcast to WebSocket clients if enabled
40
+ if (broadcast) {
41
+ broadcast(resource, 'DELETE', { id });
42
+ }
39
43
  }
40
44
  else {
41
45
  // Even when deleting a non existing item, we still need an etag.
@@ -67,6 +71,10 @@ export const createDeleteRoutes = (queries, allowDeleteCollection, requestInterc
67
71
  }
68
72
  }
69
73
  await queries.deleteAll(resource);
74
+ // Broadcast to WebSocket clients if enabled
75
+ if (broadcast) {
76
+ broadcast(resource, 'DELETE_ALL');
77
+ }
70
78
  }
71
79
  return { statusCode: 204 };
72
80
  };
@@ -1 +1 @@
1
- {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/requestHandlers/delete.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAA;AAI/E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,OAAgB,EAChB,qBAA8B,EAC9B,kBAA6C,EAC7C,YAAqB,EACrB,EAAE;IACF,MAAM,YAAY,GAAG,KAAK,EAAE,GAAkB,EAAE,EAAE;QAChD,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,CAAA;QAErC,IAAI,kBAAkB,EAAE,MAAM,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,eAAe,GAAG,MAAM,sBAAsB,CAClD,kBAAkB,CAAC,MAAM,EACzB,OAAO,EACP,QAAQ,EACR,EAAE,CACH,CAAA;gBAED,gEAAgE;gBAChE,IAAI,eAAe,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACxC,OAAO;wBACL,UAAU,EAAE,eAAe,CAAC,MAAM;wBAClC,IAAI,EAAE,eAAe,CAAC,IAAI;qBAC3B,CAAA;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE;iBAC5C,CAAA;YACH,CAAC;QACH,CAAC;QAED,IAAI,EAAE,EAAE,CAAC;YACP,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;YAChD,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,YAAY,EAAE,CAAC;oBACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;oBAC3C,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBAC1B,OAAO;4BACL,UAAU,EAAE,GAAG;4BACf,IAAI,EAAE;gCACJ,OAAO,EAAE,qBAAqB;6BAC/B;yBACF,CAAA;oBACH,CAAC;gBACH,CAAC;gBAED,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;YACxC,CAAC;iBAAM,CAAC;gBACN,iEAAiE;gBACjE,2FAA2F;gBAC3F,IAAI,YAAY,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;oBAC9B,OAAO;wBACL,UAAU,EAAE,GAAG;wBACf,IAAI,EAAE;4BACJ,OAAO,EAAE,qBAAqB;yBAC/B;qBACF,CAAA;gBACH,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC3B,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,CAAA;YAC5B,CAAC;YAED,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;gBAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;gBAC7C,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBAC3B,OAAO;wBACL,UAAU,EAAE,GAAG;wBACf,IAAI,EAAE;4BACJ,OAAO,EAAE,qBAAqB;yBAC/B;qBACF,CAAA;gBACH,CAAC;YACH,CAAC;YAED,MAAM,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QACnC,CAAC;QAED,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,CAAA;IAC5B,CAAC,CAAA;IAED,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA"}
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/requestHandlers/delete.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import type { Config } from '../config/index.js';
2
2
  import type { CompiledSchemas } from '../schema/types.js';
3
3
  import type { Queries } from '../data/types.js';
4
- export declare const getRequestHandler: (queries: Queries, schemas: CompiledSchemas, config: Config) => Promise<{
4
+ import type { BroadcastFunction } from '../websocket/websocket.js';
5
+ export declare const getRequestHandler: (queries: Queries, schemas: CompiledSchemas, config: Config, broadcast: BroadcastFunction | null) => Promise<{
5
6
  handleGet: (req: import("./types.js").GetRequest) => Promise<{
6
7
  statusCode: number;
7
8
  headers: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAe5C,eAAO,MAAM,iBAAiB,GAC5B,SAAS,OAAO,EAChB,SAAS,eAAe,EACxB,QAAQ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4Df,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAe/D,eAAO,MAAM,iBAAiB,GAC5B,SAAS,OAAO,EAChB,SAAS,eAAe,EACxB,QAAQ,MAAM,EACd,WAAW,iBAAiB,GAAG,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+DpC,CAAA"}
@@ -14,13 +14,13 @@ const withErrorHandling = (handler) => {
14
14
  }
15
15
  };
16
16
  };
17
- export const getRequestHandler = async (queries, schemas, config) => {
17
+ export const getRequestHandler = async (queries, schemas, config, broadcast) => {
18
18
  const { requestInterceptor, responseBodyInterceptor, returnNullFields, allowDeleteCollection, etagsEnabled, } = config;
19
19
  const handleGet = withErrorHandling(createGetRoutes(queries, requestInterceptor, responseBodyInterceptor, returnNullFields, etagsEnabled));
20
- const handlePost = withErrorHandling(createPostRoutes(queries, requestInterceptor, returnNullFields, schemas.post));
21
- const handlePut = withErrorHandling(createPutRoutes(queries, requestInterceptor, returnNullFields, schemas.put, etagsEnabled));
22
- const handlePatch = withErrorHandling(createPatchRoutes(queries, requestInterceptor, returnNullFields, schemas.patch, etagsEnabled));
23
- const handleDelete = withErrorHandling(createDeleteRoutes(queries, allowDeleteCollection, requestInterceptor, etagsEnabled));
20
+ const handlePost = withErrorHandling(createPostRoutes(queries, requestInterceptor, returnNullFields, schemas.post, broadcast));
21
+ const handlePut = withErrorHandling(createPutRoutes(queries, requestInterceptor, returnNullFields, schemas.put, etagsEnabled, broadcast));
22
+ const handlePatch = withErrorHandling(createPatchRoutes(queries, requestInterceptor, returnNullFields, schemas.patch, etagsEnabled, broadcast));
23
+ const handleDelete = withErrorHandling(createDeleteRoutes(queries, allowDeleteCollection, requestInterceptor, etagsEnabled, broadcast));
24
24
  return {
25
25
  handleGet,
26
26
  handlePost,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/requestHandlers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAK7C,oDAAoD;AACpD,MAAM,iBAAiB,GAAG,CACxB,OAA6C,EACL,EAAE;IAC1C,OAAO,KAAK,EAAE,GAAG,IAAW,EAAE,EAAE;QAC9B,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,GAAG,IAAI,CAAC,CAAA;QAC/B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,EAAa,CAAA;QACpF,CAAC;IACH,CAAC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,OAAgB,EAChB,OAAwB,EACxB,MAAc,EACd,EAAE;IACF,MAAM,EACJ,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,GACb,GAAG,MAAM,CAAA;IAEV,MAAM,SAAS,GAAG,iBAAiB,CACjC,eAAe,CACb,OAAO,EACP,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,YAAY,CACb,CACF,CAAA;IAED,MAAM,UAAU,GAAG,iBAAiB,CAClC,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,CAC9E,CAAA;IAED,MAAM,SAAS,GAAG,iBAAiB,CACjC,eAAe,CACb,OAAO,EACP,kBAAkB,EAClB,gBAAgB,EAChB,OAAO,CAAC,GAAG,EACX,YAAY,CACb,CACF,CAAA;IAED,MAAM,WAAW,GAAG,iBAAiB,CACnC,iBAAiB,CACf,OAAO,EACP,kBAAkB,EAClB,gBAAgB,EAChB,OAAO,CAAC,KAAK,EACb,YAAY,CACb,CACF,CAAA;IAED,MAAM,YAAY,GAAG,iBAAiB,CACpC,kBAAkB,CAChB,OAAO,EACP,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,CACb,CACF,CAAA;IAED,OAAO;QACL,SAAS;QACT,UAAU;QACV,SAAS;QACT,WAAW;QACX,YAAY;KACb,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/requestHandlers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAM7C,oDAAoD;AACpD,MAAM,iBAAiB,GAAG,CACxB,OAA6C,EACL,EAAE;IAC1C,OAAO,KAAK,EAAE,GAAG,IAAW,EAAE,EAAE;QAC9B,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,GAAG,IAAI,CAAC,CAAA;QAC/B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,EAAa,CAAA;QACpF,CAAC;IACH,CAAC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,OAAgB,EAChB,OAAwB,EACxB,MAAc,EACd,SAAmC,EACnC,EAAE;IACF,MAAM,EACJ,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,GACb,GAAG,MAAM,CAAA;IAEV,MAAM,SAAS,GAAG,iBAAiB,CACjC,eAAe,CACb,OAAO,EACP,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,YAAY,CACb,CACF,CAAA;IAED,MAAM,UAAU,GAAG,iBAAiB,CAClC,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CACzF,CAAA;IAED,MAAM,SAAS,GAAG,iBAAiB,CACjC,eAAe,CACb,OAAO,EACP,kBAAkB,EAClB,gBAAgB,EAChB,OAAO,CAAC,GAAG,EACX,YAAY,EACZ,SAAS,CACV,CACF,CAAA;IAED,MAAM,WAAW,GAAG,iBAAiB,CACnC,iBAAiB,CACf,OAAO,EACP,kBAAkB,EAClB,gBAAgB,EAChB,OAAO,CAAC,KAAK,EACb,YAAY,EACZ,SAAS,CACV,CACF,CAAA;IAED,MAAM,YAAY,GAAG,iBAAiB,CACpC,kBAAkB,CAChB,OAAO,EACP,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,SAAS,CACV,CACF,CAAA;IAED,OAAO;QACL,SAAS;QACT,UAAU;QACV,SAAS;QACT,WAAW;QACX,YAAY;KACb,CAAA;AACH,CAAC,CAAA"}
@@ -2,7 +2,8 @@ import type { ValidateFunctionPerResource } from '../schema/types.js';
2
2
  import type { PatchRequest } from './types.js';
3
3
  import type { Queries } from '../data/types.js';
4
4
  import type { RequestInterceptor } from '../requestInterceptor/types.js';
5
- export declare const createPatchRoutes: (queries: Queries, requestInterceptor: RequestInterceptor | null, returnNullFields: boolean, schemas: ValidateFunctionPerResource | null, etagsEnabled: boolean) => (req: PatchRequest) => Promise<{
5
+ import type { BroadcastFunction } from '../websocket/websocket.js';
6
+ export declare const createPatchRoutes: (queries: Queries, requestInterceptor: RequestInterceptor | null, returnNullFields: boolean, schemas: ValidateFunctionPerResource | null, etagsEnabled: boolean, broadcast: BroadcastFunction | null) => (req: PatchRequest) => Promise<{
6
7
  statusCode: number;
7
8
  body: {
8
9
  message: string;
@@ -1 +1 @@
1
- {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/patch.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAGrE,eAAO,MAAM,iBAAiB,GAC5B,SAAS,OAAO,EAChB,oBAAoB,kBAAkB,GAAG,IAAI,EAC7C,kBAAkB,OAAO,EACzB,SAAS,2BAA2B,GAAG,IAAI,EAC3C,cAAc,OAAO,WAEW,YAAY;;;;;;;;EAoE7C,CAAA"}
1
+ {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/patch.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAErE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE/D,eAAO,MAAM,iBAAiB,GAC5B,SAAS,OAAO,EAChB,oBAAoB,kBAAkB,GAAG,IAAI,EAC7C,kBAAkB,OAAO,EACzB,SAAS,2BAA2B,GAAG,IAAI,EAC3C,cAAc,OAAO,EACrB,WAAW,iBAAiB,GAAG,IAAI,WAEH,YAAY;;;;;;;;EAyE7C,CAAA"}
@@ -2,7 +2,7 @@ import { interceptPatchRequest } from '../requestInterceptor/interceptRequest.js
2
2
  import { validate } from '../schema/validate.js';
3
3
  import { removeNullFields } from './utils.js';
4
4
  import { etag } from '../etags/etags.js';
5
- export const createPatchRoutes = (queries, requestInterceptor, returnNullFields, schemas, etagsEnabled) => {
5
+ export const createPatchRoutes = (queries, requestInterceptor, returnNullFields, schemas, etagsEnabled, broadcast) => {
6
6
  const handlePatch = async (req) => {
7
7
  const { headers, resource, id } = req;
8
8
  let { body } = req;
@@ -49,6 +49,10 @@ export const createPatchRoutes = (queries, requestInterceptor, returnNullFields,
49
49
  }
50
50
  item = { ...item, ...body, id };
51
51
  const updatedItem = await queries.update(resource, item);
52
+ // Broadcast to WebSocket clients if enabled
53
+ if (broadcast) {
54
+ broadcast(resource, 'UPDATE', updatedItem);
55
+ }
52
56
  return {
53
57
  statusCode: 200,
54
58
  body: returnNullFields ? updatedItem : removeNullFields(updatedItem),
@@ -1 +1 @@
1
- {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../../src/requestHandlers/patch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAA;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAK1C,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAErC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,OAAgB,EAChB,kBAA6C,EAC7C,gBAAyB,EACzB,OAA2C,EAC3C,YAAqB,EACrB,EAAE;IACF,MAAM,WAAW,GAAG,KAAK,EAAE,GAAiB,EAAE,EAAE;QAC9C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,CAAA;QACrC,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,CAAA;QAElB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC5D,IAAI,gBAAgB,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACvC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,YAAY,EAAE,EAAE,CAAA;QAC9E,CAAC;QAED,IAAI,kBAAkB,EAAE,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,eAAe,GAAG,MAAM,qBAAqB,CACjD,kBAAkB,CAAC,KAAK,EACxB,OAAO,EACP,QAAQ,EACR,EAAE,EACF,IAAI,CACL,CAAA;gBAED,IAAI,eAAe,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACxC,OAAO;wBACL,UAAU,EAAE,eAAe,CAAC,MAAM;wBAClC,IAAI,EAAE,eAAe,CAAC,IAAI;qBAC3B,CAAA;gBACH,CAAC;gBAED,IAAI,GAAG,eAAe,CAAC,IAAI,IAAI,IAAI,CAAA;YACrC,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE;iBAC5C,CAAA;YACH,CAAC;QACH,CAAC;QAED,IAAI,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QAE9C,IAAI,CAAC,IAAI;YACP,OAAO;gBACL,UAAU,EAAE,GAAG;gBACf,IAAI,EAAE;oBACJ,OAAO,EAAE,OAAO,EAAE,aAAa;iBAChC;aACF,CAAA;QAEH,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;YAC3C,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC1B,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,IAAI,EAAE;wBACJ,OAAO,EAAE,qBAAqB;qBAC/B;iBACF,CAAA;YACH,CAAC;QACH,CAAC;QAED,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAI,IAAe,EAAE,EAAE,EAAE,CAAA;QAE3C,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAExD,OAAO;YACL,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC;SACrE,CAAA;IACH,CAAC,CAAA;IAED,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA"}
1
+ {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../../src/requestHandlers/patch.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,8 @@ import type { ValidateFunctionPerResource } from '../schema/types.js';
2
2
  import type { PostRequest } from './types.js';
3
3
  import type { Queries } from '../data/types.js';
4
4
  import type { RequestInterceptor } from '../requestInterceptor/types.js';
5
- export declare const createPostRoutes: (queries: Queries, requestInterceptor: RequestInterceptor | null, returnNullFields: boolean, schemas: ValidateFunctionPerResource) => (req: PostRequest) => Promise<{
5
+ import type { BroadcastFunction } from '../websocket/websocket.js';
6
+ export declare const createPostRoutes: (queries: Queries, requestInterceptor: RequestInterceptor | null, returnNullFields: boolean, schemas: ValidateFunctionPerResource, broadcast: BroadcastFunction | null) => (req: PostRequest) => Promise<{
6
7
  statusCode: number;
7
8
  body: {
8
9
  message: string;
@@ -1 +1 @@
1
- {"version":3,"file":"post.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/post.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,KAAK,EAAiB,OAAO,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAErE,eAAO,MAAM,gBAAgB,GAC3B,SAAS,OAAO,EAChB,oBAAoB,kBAAkB,GAAG,IAAI,EAC7C,kBAAkB,OAAO,EACzB,SAAS,2BAA2B,WAEL,WAAW;;;;;;;;;;;;;;;;;;EA+D3C,CAAA"}
1
+ {"version":3,"file":"post.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/post.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,KAAK,EAAiB,OAAO,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE/D,eAAO,MAAM,gBAAgB,GAC3B,SAAS,OAAO,EAChB,oBAAoB,kBAAkB,GAAG,IAAI,EAC7C,kBAAkB,OAAO,EACzB,SAAS,2BAA2B,EACpC,WAAW,iBAAiB,GAAG,IAAI,WAEJ,WAAW;;;;;;;;;;;;;;;;;;EAoE3C,CAAA"}
@@ -2,7 +2,7 @@ import { format } from 'url';
2
2
  import { interceptPostRequest } from '../requestInterceptor/interceptRequest.js';
3
3
  import { removeNullFields } from './utils.js';
4
4
  import { validate } from '../schema/validate.js';
5
- export const createPostRoutes = (queries, requestInterceptor, returnNullFields, schemas) => {
5
+ export const createPostRoutes = (queries, requestInterceptor, returnNullFields, schemas, broadcast) => {
6
6
  const handlePost = async (req) => {
7
7
  const { headers, protocol, host, resource, id } = req;
8
8
  let { body } = req;
@@ -39,6 +39,10 @@ export const createPostRoutes = (queries, requestInterceptor, returnNullFields,
39
39
  };
40
40
  }
41
41
  const newItem = await queries.create(resource, id, body);
42
+ // Broadcast to WebSocket clients if enabled
43
+ if (broadcast) {
44
+ broadcast(resource, 'CREATE', newItem);
45
+ }
42
46
  return {
43
47
  headers: {
44
48
  Location: format({
@@ -1 +1 @@
1
- {"version":3,"file":"post.js","sourceRoot":"","sources":["../../../src/requestHandlers/post.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAM7C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,OAAgB,EAChB,kBAA6C,EAC7C,gBAAyB,EACzB,OAAoC,EACpC,EAAE;IACF,MAAM,UAAU,GAAG,KAAK,EAAE,GAAgB,EAAE,EAAE;QAC5C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,CAAA;QACrD,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,CAAA;QAElB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC1D,IAAI,gBAAgB,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACvC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,YAAY,EAAE,EAAE,CAAA;QAC9E,CAAC;QAED,IAAI,kBAAkB,EAAE,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAChD,kBAAkB,CAAC,IAAI,EACvB,OAAO,EACP,QAAQ,EACR,EAAE,EACF,IAAI,CACL,CAAA;gBAED,IAAI,eAAe,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACxC,OAAO;wBACL,UAAU,EAAE,eAAe,CAAC,MAAM;wBAClC,IAAI,EAAE,eAAe,CAAC,IAAI;qBAC3B,CAAA;gBACH,CAAC;gBAED,IAAI,GAAG,eAAe,CAAC,IAAI,IAAI,IAAI,CAAA;YACrC,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE;iBAC5C,CAAA;YACH,CAAC;QACH,CAAC;QAED,IAAI,EAAE,EAAE,CAAC;YACP,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;YAEhD,IAAI,IAAI;gBACN,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,IAAI,EAAE;wBACJ,OAAO,EAAE,OAAO,EAAE,kBAAkB;qBACrC;iBACF,CAAA;QACL,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAqB,CAAC,CAAA;QAEzE,OAAO;YACL,OAAO,EAAE;gBACP,QAAQ,EAAE,MAAM,CAAC;oBACf,QAAQ,EAAE,QAAQ;oBAClB,IAAI,EAAE,IAAI;oBACV,QAAQ,EAAE,GAAG,QAAQ,IAAI,OAAO,CAAC,EAAE,EAAE;iBACtC,CAAC;aACH;YACD,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC;SAC7D,CAAA;IACH,CAAC,CAAA;IAED,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA"}
1
+ {"version":3,"file":"post.js","sourceRoot":"","sources":["../../../src/requestHandlers/post.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAO7C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,OAAgB,EAChB,kBAA6C,EAC7C,gBAAyB,EACzB,OAAoC,EACpC,SAAmC,EACnC,EAAE;IACF,MAAM,UAAU,GAAG,KAAK,EAAE,GAAgB,EAAE,EAAE;QAC5C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,CAAA;QACrD,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,CAAA;QAElB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC1D,IAAI,gBAAgB,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACvC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,YAAY,EAAE,EAAE,CAAA;QAC9E,CAAC;QAED,IAAI,kBAAkB,EAAE,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAChD,kBAAkB,CAAC,IAAI,EACvB,OAAO,EACP,QAAQ,EACR,EAAE,EACF,IAAI,CACL,CAAA;gBAED,IAAI,eAAe,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACxC,OAAO;wBACL,UAAU,EAAE,eAAe,CAAC,MAAM;wBAClC,IAAI,EAAE,eAAe,CAAC,IAAI;qBAC3B,CAAA;gBACH,CAAC;gBAED,IAAI,GAAG,eAAe,CAAC,IAAI,IAAI,IAAI,CAAA;YACrC,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE;iBAC5C,CAAA;YACH,CAAC;QACH,CAAC;QAED,IAAI,EAAE,EAAE,CAAC;YACP,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;YAEhD,IAAI,IAAI;gBACN,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,IAAI,EAAE;wBACJ,OAAO,EAAE,OAAO,EAAE,kBAAkB;qBACrC;iBACF,CAAA;QACL,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAqB,CAAC,CAAA;QAEzE,4CAA4C;QAC5C,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;QACxC,CAAC;QAED,OAAO;YACL,OAAO,EAAE;gBACP,QAAQ,EAAE,MAAM,CAAC;oBACf,QAAQ,EAAE,QAAQ;oBAClB,IAAI,EAAE,IAAI;oBACV,QAAQ,EAAE,GAAG,QAAQ,IAAI,OAAO,CAAC,EAAE,EAAE;iBACtC,CAAC;aACH;YACD,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC;SAC7D,CAAA;IACH,CAAC,CAAA;IAED,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA"}
@@ -2,7 +2,8 @@ import type { ValidateFunctionPerResource } from '../schema/types.js';
2
2
  import type { PutRequest } from './types.js';
3
3
  import type { Queries } from '../data/types.js';
4
4
  import type { RequestInterceptor } from '../requestInterceptor/types.js';
5
- export declare const createPutRoutes: (queries: Queries, requestInterceptor: RequestInterceptor | null, returnNullFields: boolean, schemas: ValidateFunctionPerResource | null, etagsEnabled: boolean) => (req: PutRequest) => Promise<{
5
+ import type { BroadcastFunction } from '../websocket/websocket.js';
6
+ export declare const createPutRoutes: (queries: Queries, requestInterceptor: RequestInterceptor | null, returnNullFields: boolean, schemas: ValidateFunctionPerResource | null, etagsEnabled: boolean, broadcast: BroadcastFunction | null) => (req: PutRequest) => Promise<{
6
7
  statusCode: number;
7
8
  body: {
8
9
  message: string;
@@ -1 +1 @@
1
- {"version":3,"file":"put.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/put.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAGrE,eAAO,MAAM,eAAe,GAC1B,SAAS,OAAO,EAChB,oBAAoB,kBAAkB,GAAG,IAAI,EAC7C,kBAAkB,OAAO,EACzB,SAAS,2BAA2B,GAAG,IAAI,EAC3C,cAAc,OAAO,WAES,UAAU;;;;;;;;EAoEzC,CAAA"}
1
+ {"version":3,"file":"put.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/put.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAErE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE/D,eAAO,MAAM,eAAe,GAC1B,SAAS,OAAO,EAChB,oBAAoB,kBAAkB,GAAG,IAAI,EAC7C,kBAAkB,OAAO,EACzB,SAAS,2BAA2B,GAAG,IAAI,EAC3C,cAAc,OAAO,EACrB,WAAW,iBAAiB,GAAG,IAAI,WAEL,UAAU;;;;;;;;EAyEzC,CAAA"}
@@ -2,7 +2,7 @@ import { interceptPutRequest } from '../requestInterceptor/interceptRequest.js';
2
2
  import { validate } from '../schema/validate.js';
3
3
  import { removeNullFields } from './utils.js';
4
4
  import { etag } from '../etags/etags.js';
5
- export const createPutRoutes = (queries, requestInterceptor, returnNullFields, schemas, etagsEnabled) => {
5
+ export const createPutRoutes = (queries, requestInterceptor, returnNullFields, schemas, etagsEnabled, broadcast) => {
6
6
  const handlePut = async (req) => {
7
7
  const { headers, resource, id } = req;
8
8
  let { body } = req;
@@ -49,6 +49,10 @@ export const createPutRoutes = (queries, requestInterceptor, returnNullFields, s
49
49
  }
50
50
  item = { ...body, id };
51
51
  const replacedItem = await queries.replace(resource, item);
52
+ // Broadcast to WebSocket clients if enabled
53
+ if (broadcast) {
54
+ broadcast(resource, 'UPDATE', replacedItem);
55
+ }
52
56
  return {
53
57
  statusCode: 200,
54
58
  body: returnNullFields ? replacedItem : removeNullFields(replacedItem),
@@ -1 +1 @@
1
- {"version":3,"file":"put.js","sourceRoot":"","sources":["../../../src/requestHandlers/put.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAK1C,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAErC,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAgB,EAChB,kBAA6C,EAC7C,gBAAyB,EACzB,OAA2C,EAC3C,YAAqB,EACrB,EAAE;IACF,MAAM,SAAS,GAAG,KAAK,EAAE,GAAe,EAAE,EAAE;QAC1C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,CAAA;QACrC,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,CAAA;QAElB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC5D,IAAI,gBAAgB,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACvC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,YAAY,EAAE,EAAE,CAAA;QAC9E,CAAC;QAED,IAAI,kBAAkB,EAAE,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAC/C,kBAAkB,CAAC,GAAG,EACtB,OAAO,EACP,QAAQ,EACR,EAAE,EACF,IAAI,CACL,CAAA;gBAED,IAAI,eAAe,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACxC,OAAO;wBACL,UAAU,EAAE,eAAe,CAAC,MAAM;wBAClC,IAAI,EAAE,eAAe,CAAC,IAAI;qBAC3B,CAAA;gBACH,CAAC;gBAED,IAAI,GAAG,eAAe,CAAC,IAAI,IAAI,IAAI,CAAA;YACrC,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE;iBAC5C,CAAA;YACH,CAAC;QACH,CAAC;QAED,IAAI,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QAE9C,IAAI,CAAC,IAAI;YACP,OAAO;gBACL,UAAU,EAAE,GAAG;gBACf,IAAI,EAAE;oBACJ,OAAO,EAAE,OAAO,EAAE,aAAa;iBAChC;aACF,CAAA;QAEH,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;YAC3C,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC1B,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,IAAI,EAAE;wBACJ,OAAO,EAAE,qBAAqB;qBAC/B;iBACF,CAAA;YACH,CAAC;QACH,CAAC;QAED,IAAI,GAAG,EAAE,GAAI,IAAe,EAAE,EAAE,EAAE,CAAA;QAElC,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAE1D,OAAO;YACL,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC;SACvE,CAAA;IACH,CAAC,CAAA;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA"}
1
+ {"version":3,"file":"put.js","sourceRoot":"","sources":["../../../src/requestHandlers/put.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAK1C,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAGrC,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAgB,EAChB,kBAA6C,EAC7C,gBAAyB,EACzB,OAA2C,EAC3C,YAAqB,EACrB,SAAmC,EACnC,EAAE;IACF,MAAM,SAAS,GAAG,KAAK,EAAE,GAAe,EAAE,EAAE;QAC1C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,CAAA;QACrC,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,CAAA;QAElB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC5D,IAAI,gBAAgB,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACvC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,YAAY,EAAE,EAAE,CAAA;QAC9E,CAAC;QAED,IAAI,kBAAkB,EAAE,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAC/C,kBAAkB,CAAC,GAAG,EACtB,OAAO,EACP,QAAQ,EACR,EAAE,EACF,IAAI,CACL,CAAA;gBAED,IAAI,eAAe,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACxC,OAAO;wBACL,UAAU,EAAE,eAAe,CAAC,MAAM;wBAClC,IAAI,EAAE,eAAe,CAAC,IAAI;qBAC3B,CAAA;gBACH,CAAC;gBAED,IAAI,GAAG,eAAe,CAAC,IAAI,IAAI,IAAI,CAAA;YACrC,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE;iBAC5C,CAAA;YACH,CAAC;QACH,CAAC;QAED,IAAI,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QAE9C,IAAI,CAAC,IAAI;YACP,OAAO;gBACL,UAAU,EAAE,GAAG;gBACf,IAAI,EAAE;oBACJ,OAAO,EAAE,OAAO,EAAE,aAAa;iBAChC;aACF,CAAA;QAEH,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;YAC3C,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC1B,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,IAAI,EAAE;wBACJ,OAAO,EAAE,qBAAqB;qBAC/B;iBACF,CAAA;YACH,CAAC;QACH,CAAC;QAED,IAAI,GAAG,EAAE,GAAI,IAAe,EAAE,EAAE,EAAE,CAAA;QAElC,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAE1D,4CAA4C;QAC5C,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAA;QAC7C,CAAC;QAED,OAAO;YACL,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC;SACvE,CAAA;IACH,CAAC,CAAA;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA"}
@@ -2,5 +2,6 @@ import type { IncomingMessage, ServerResponse } from 'http';
2
2
  import type { Config } from './config/index.js';
3
3
  import type { Queries } from './data/types.js';
4
4
  import type { CompiledSchemas } from './schema/types.js';
5
- export declare const createResourceHandler: (queries: Queries, schemas: CompiledSchemas, config: Config) => Promise<(req: IncomingMessage, res: ServerResponse<IncomingMessage>) => Promise<void> | undefined>;
5
+ import type { BroadcastFunction } from './websocket/websocket.js';
6
+ export declare const createResourceHandler: (queries: Queries, schemas: CompiledSchemas, config: Config, broadcast: BroadcastFunction | null) => Promise<(req: IncomingMessage, res: ServerResponse<IncomingMessage>) => Promise<void> | undefined>;
6
7
  //# sourceMappingURL=resourceHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resourceHandler.d.ts","sourceRoot":"","sources":["../../src/resourceHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAY3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEtC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAuErD,eAAO,MAAM,qBAAqB,GAChC,SAAS,OAAO,EAChB,SAAS,eAAe,EACxB,QAAQ,MAAM,mBAuKD,eAAe,OAAO,cAAc,CAAC,eAAe,CAAC,+BAOnE,CAAA"}
1
+ {"version":3,"file":"resourceHandler.d.ts","sourceRoot":"","sources":["../../src/resourceHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAY3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEtC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAuE9D,eAAO,MAAM,qBAAqB,GAChC,SAAS,OAAO,EAChB,SAAS,eAAe,EACxB,QAAQ,MAAM,EACd,WAAW,iBAAiB,GAAG,IAAI,mBAuKtB,eAAe,OAAO,cAAc,CAAC,eAAe,CAAC,+BAOnE,CAAA"}
@@ -52,7 +52,7 @@ const convertToDeleteRequest = (requestInfo) => {
52
52
  etag: requestInfo.etag ?? null,
53
53
  };
54
54
  };
55
- export const createResourceHandler = async (queries, schemas, config) => {
55
+ export const createResourceHandler = async (queries, schemas, config, broadcast) => {
56
56
  const getUrlInfo = (baseUrl) => {
57
57
  const url = config.apiPrefix ? baseUrl.replace(config.apiPrefix, '') : baseUrl;
58
58
  return parseUrl(url);
@@ -125,7 +125,7 @@ export const createResourceHandler = async (queries, schemas, config) => {
125
125
  const response = await handleRequest(convertedRequest);
126
126
  sendResponse(httpResponse)(response);
127
127
  };
128
- const requestHandler = await getRequestHandler(queries, schemas, config);
128
+ const requestHandler = await getRequestHandler(queries, schemas, config, broadcast);
129
129
  const getHandler = async (httpRequest, httpResponse) => {
130
130
  await handle(httpRequest, httpResponse, validateResource, convertToGetRequest, requestHandler.handleGet);
131
131
  };
@@ -1 +1 @@
1
- {"version":3,"file":"resourceHandler.js","sourceRoot":"","sources":["../../src/resourceHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resourceHandler.js","sourceRoot":"","sources":["../../src/resourceHandler.ts"],"names":[],"mappings":"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"}
package/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const version = 'v0.50.0'
1
+ export const version = 'v0.51.0'
2
2
 
@@ -0,0 +1,17 @@
1
+ import type { Server as HttpServer } from 'http';
2
+ export type BroadcastAction = 'CREATE' | 'UPDATE' | 'DELETE' | 'DELETE_ALL';
3
+ export type BroadcastPayload = {
4
+ resource: string;
5
+ action: 'CREATE' | 'UPDATE' | 'DELETE';
6
+ data: object | {
7
+ id: string;
8
+ };
9
+ } | {
10
+ resource: string;
11
+ action: 'DELETE_ALL';
12
+ };
13
+ export type BroadcastFunction = (resource: string, action: BroadcastAction, data?: object | {
14
+ id: string;
15
+ }) => void;
16
+ export declare const createWebSocketServer: (httpServer: HttpServer) => BroadcastFunction;
17
+ //# sourceMappingURL=websocket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../../src/websocket/websocket.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAmB,MAAM,MAAM,CAAA;AAGjE,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,YAAY,CAAA;AAE3E,MAAM,MAAM,gBAAgB,GACxB;IACE,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAA;IACtC,IAAI,EAAE,MAAM,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;CAC9B,GACD;IACE,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,YAAY,CAAA;CACrB,CAAA;AAEL,MAAM,MAAM,iBAAiB,GAAG,CAC9B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,eAAe,EACvB,IAAI,CAAC,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,KAC3B,IAAI,CAAA;AAET,eAAO,MAAM,qBAAqB,GAAI,YAAY,UAAU,KAAG,iBAqD9D,CAAA"}
@@ -0,0 +1,53 @@
1
+ import { WebSocketServer, WebSocket } from 'ws';
2
+ import { parse } from 'url';
3
+ export const createWebSocketServer = (httpServer) => {
4
+ const wss = new WebSocketServer({ noServer: true });
5
+ // Handle upgrade requests
6
+ httpServer.on('upgrade', (request, socket, head) => {
7
+ const { pathname } = parse(request.url || '');
8
+ // WebSockets handshakes MUST be GET requests
9
+ if (pathname === '/ws' && request.method === 'GET') {
10
+ wss.handleUpgrade(request, socket, head, (ws) => {
11
+ wss.emit('connection', ws, request);
12
+ });
13
+ }
14
+ else {
15
+ // Not our path or invalid method for a handshake
16
+ socket.destroy();
17
+ }
18
+ });
19
+ // Broadcast function that sends messages to all connected clients
20
+ const broadcast = (resource, action, data) => {
21
+ let payload;
22
+ if (action === 'DELETE_ALL') {
23
+ payload = {
24
+ resource,
25
+ action,
26
+ };
27
+ }
28
+ else {
29
+ if (!data) {
30
+ throw new Error(`Data is required for action: ${action}`);
31
+ }
32
+ payload = {
33
+ resource,
34
+ action,
35
+ data,
36
+ };
37
+ }
38
+ try {
39
+ const message = JSON.stringify(payload);
40
+ wss.clients.forEach((client) => {
41
+ if (client.readyState === WebSocket.OPEN) {
42
+ client.send(message);
43
+ }
44
+ });
45
+ }
46
+ catch (error) {
47
+ // Log error but don't crash the server if data is non-serializable
48
+ console.error('Failed to stringify WebSocket payload:', error);
49
+ }
50
+ };
51
+ return broadcast;
52
+ };
53
+ //# sourceMappingURL=websocket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/websocket/websocket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,IAAI,CAAA;AAE/C,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,CAAA;AAqB3B,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,UAAsB,EAAqB,EAAE;IACjF,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IAEnD,0BAA0B;IAC1B,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAwB,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;QAClE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,CAAA;QAE7C,6CAA6C;QAC7C,IAAI,QAAQ,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YACnD,GAAG,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;gBAC9C,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;YACrC,CAAC,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,iDAAiD;YACjD,MAAM,CAAC,OAAO,EAAE,CAAA;QAClB,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,kEAAkE;IAClE,MAAM,SAAS,GAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;QAC9D,IAAI,OAAyB,CAAA;QAE7B,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;YAC5B,OAAO,GAAG;gBACR,QAAQ;gBACR,MAAM;aACP,CAAA;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,gCAAgC,MAAM,EAAE,CAAC,CAAA;YAC3D,CAAC;YACD,OAAO,GAAG;gBACR,QAAQ;gBACR,MAAM;gBACN,IAAI;aACL,CAAA;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;YAEvC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC7B,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;oBACzC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBACtB,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,mEAAmE;YACnE,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAA;QAChE,CAAC;IACH,CAAC,CAAA;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA"}