raffel 1.0.2 → 1.0.3-next.4e4f3d7

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/dist/index.d.ts CHANGED
@@ -50,4 +50,6 @@ export type { ProxyAuth, ProxyCredentials, ProxyStats, ProxyServer, ConnectMode,
50
50
  export * from './testing/index.js';
51
51
  export { MCPServer, createMCPServer, runMCPServer, JsonRpcErrorCode as MCPErrorCode, tools as mcpTools, toolCategories as mcpToolCategories, getToolsByCategory as getMCPToolsByCategory, handlers as mcpHandlers, getStaticResources as getMCPResources, getResourceTemplates as getMCPResourceTemplates, readResource as readMCPResource, prompts as mcpPrompts, getPromptResult as getMCPPromptResult, interceptors as mcpInterceptorDocs, getInterceptor as getMCPInterceptorDoc, adapters as mcpAdapterDocs, getAdapter as getMCPAdapterDoc, patterns as mcpPatterns, getPattern as getMCPPattern, errors as mcpErrors, getError as getMCPError, quickstartGuide as mcpQuickstartGuide, boilerplates as mcpBoilerplates, getBoilerplate as getMCPBoilerplate, } from './mcp/index.js';
52
52
  export type { JsonRpcRequest as MCPRequest, JsonRpcResponse as MCPResponse, JsonRpcError as MCPError, MCPServerOptions, MCPCapabilities, MCPInitializeResult, MCPTransportMode, MCPTool, MCPToolResult, MCPResource, MCPResourceTemplate, MCPResourceReadResult, MCPPrompt, MCPPromptArgument, MCPPromptResult, CategoryName as MCPCategoryName, } from './mcp/index.js';
53
+ export { createJsonServer, createJsonModule, InMemoryStore, loadDb, normalizeId, } from './json-server/index.js';
54
+ export type { JsonDb, JsonRecord, StoreEvent, StoreEventOp, ListQuery, ListResult, JsonModuleOptions, JsonServerOptions, JsonServerResult, JsonModule, } from './json-server/index.js';
53
55
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -124,4 +124,6 @@ getStaticResources as getMCPResources, getResourceTemplates as getMCPResourceTem
124
124
  prompts as mcpPrompts, getPromptResult as getMCPPromptResult,
125
125
  // Documentation
126
126
  interceptors as mcpInterceptorDocs, getInterceptor as getMCPInterceptorDoc, adapters as mcpAdapterDocs, getAdapter as getMCPAdapterDoc, patterns as mcpPatterns, getPattern as getMCPPattern, errors as mcpErrors, getError as getMCPError, quickstartGuide as mcpQuickstartGuide, boilerplates as mcpBoilerplates, getBoilerplate as getMCPBoilerplate, } from './mcp/index.js';
127
+ // === JSON Server ===
128
+ export { createJsonServer, createJsonModule, loadDb, normalizeId, } from './json-server/index.js';
127
129
  //# sourceMappingURL=index.js.map
package/dist/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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"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * JSON Server — Raffel-native multi-protocol mock server
3
+ *
4
+ * Turns plain JSON data into a fully functional multi-protocol API:
5
+ *
6
+ * HTTP REST → GET/POST/PUT/PATCH/DELETE /resource[/:id]
7
+ * WebSocket → resource.list / resource.get / ... + resource.$watch (real-time stream)
8
+ * JSON-RPC → resource.list / resource.get / ... (opt-in)
9
+ *
10
+ * Architecture:
11
+ * The REST layer is an HttpMiddleware intercepting standard verbs before the
12
+ * Raffel RPC router. The procedure layer is a RouterModule mounted on the
13
+ * same server — identical logic, second transport. Both share one InMemoryStore.
14
+ */
15
+ import { createServer } from '../server/builder.js';
16
+ import type { RouterModule } from '../server/types.js';
17
+ import type { HttpMiddleware } from '../adapters/http.js';
18
+ import { InMemoryStore } from './store.js';
19
+ import type { JsonDb } from './store.js';
20
+ export { loadDb, normalizeId } from './store.js';
21
+ export type { InMemoryStore, JsonRecord, JsonDb, StoreEvent, StoreEventOp, ListQuery, ListResult } from './store.js';
22
+ export interface JsonModuleOptions {
23
+ /** Disable all write operations (POST/PUT/PATCH/DELETE). Default: false */
24
+ readonly?: boolean;
25
+ /** Simulate network latency in ms */
26
+ delay?: number;
27
+ /** Field name used as record ID. Default: 'id' */
28
+ idKey?: string;
29
+ }
30
+ export interface JsonServerOptions extends JsonModuleOptions {
31
+ /** Initial data: a plain object or path to a .json file */
32
+ db: JsonDb | string;
33
+ /** HTTP port. Default: 3000 */
34
+ port?: number;
35
+ /** Hostname to bind. Default: '0.0.0.0' */
36
+ hostname?: string;
37
+ /**
38
+ * Protocol configuration.
39
+ * HTTP REST is always on.
40
+ * WebSocket (procedures + $watch streams) is enabled by default.
41
+ * JSON-RPC is opt-in.
42
+ */
43
+ protocols?: {
44
+ /** Enable WebSocket procedures + $watch streams. Default: true */
45
+ ws?: boolean;
46
+ /** Enable JSON-RPC on /rpc. Default: false */
47
+ jsonrpc?: boolean;
48
+ };
49
+ /** Called once the server is listening */
50
+ onListen?: () => void;
51
+ }
52
+ export interface JsonModule {
53
+ /** RouterModule with procedures callable over WebSocket or JSON-RPC */
54
+ module: RouterModule;
55
+ /** HttpMiddleware that handles REST routes before the Raffel RPC router */
56
+ middleware: HttpMiddleware;
57
+ /** The underlying in-memory data store */
58
+ store: InMemoryStore;
59
+ }
60
+ /**
61
+ * Create a reusable JSON module from a plain data object.
62
+ *
63
+ * Returns both a RouterModule (for WS/JSON-RPC) and an HttpMiddleware (for REST).
64
+ * Mount them on any existing Raffel server for full multi-protocol support.
65
+ *
66
+ * @example
67
+ * ```typescript
68
+ * const { module, middleware, store } = createJsonModule({
69
+ * posts: [{ id: 1, title: 'Hello' }],
70
+ * users: [{ id: 1, name: 'John' }]
71
+ * })
72
+ *
73
+ * const server = createServer({ port: 3000, http: { middleware: [middleware] } })
74
+ * .enableWebSocket('/ws')
75
+ * .enableJsonRpc('/rpc')
76
+ * .mount('', module)
77
+ *
78
+ * await server.start()
79
+ * ```
80
+ */
81
+ export declare function createJsonModule(db: JsonDb, options?: JsonModuleOptions): JsonModule;
82
+ export interface JsonServerResult {
83
+ /** The running Raffel server */
84
+ server: ReturnType<typeof createServer>;
85
+ /** The underlying in-memory data store */
86
+ store: InMemoryStore;
87
+ }
88
+ /**
89
+ * Create and start a standalone Raffel JSON server.
90
+ *
91
+ * All resources in `db` are automatically exposed as:
92
+ * - **HTTP REST** on the given port (always on)
93
+ * - **WebSocket** procedures + real-time `$watch` streams (default: on)
94
+ * - **JSON-RPC** on `/rpc` (opt-in via `protocols.jsonrpc`)
95
+ *
96
+ * For production multi-protocol use, call `createJsonModule()` instead and
97
+ * mount it on your own server with the interceptors, auth, and protocols you need.
98
+ *
99
+ * @example
100
+ * ```typescript
101
+ * const { server, store } = await createJsonServer({
102
+ * port: 3000,
103
+ * db: {
104
+ * posts: [{ id: 1, title: 'Hello', userId: 1 }],
105
+ * users: [{ id: 1, name: 'John' }]
106
+ * }
107
+ * })
108
+ * // → GET /posts list with ?_sort=title&_order=asc&_page=1&_limit=10&_q=text
109
+ * // → GET /posts/:id get by id
110
+ * // → POST /posts create
111
+ * // → PUT /posts/:id replace
112
+ * // → PATCH /posts/:id update
113
+ * // → DELETE /posts/:id delete
114
+ * // WS: send { procedure: 'posts.list', payload: {} }
115
+ * // WS: send { procedure: 'posts.$watch' } → stream of StoreEvents
116
+ * ```
117
+ */
118
+ export declare function createJsonServer(options: JsonServerOptions): Promise<JsonServerResult>;
119
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/json-server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAInD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAuB,MAAM,YAAY,CAAA;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAyB,MAAM,YAAY,CAAA;AAE/D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAChD,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAIpH,MAAM,WAAW,iBAAiB;IAChC,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,2DAA2D;IAC3D,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,+BAA+B;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;;OAKG;IACH,SAAS,CAAC,EAAE;QACV,kEAAkE;QAClE,EAAE,CAAC,EAAE,OAAO,CAAA;QACZ,8CAA8C;QAC9C,OAAO,CAAC,EAAE,OAAO,CAAA;KAClB,CAAA;IACD,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;CACtB;AAID,MAAM,WAAW,UAAU;IACzB,uEAAuE;IACvE,MAAM,EAAE,YAAY,CAAA;IACpB,2EAA2E;IAC3E,UAAU,EAAE,cAAc,CAAA;IAC1B,0CAA0C;IAC1C,KAAK,EAAE,aAAa,CAAA;CACrB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,UAAU,CAOxF;AAID,MAAM,WAAW,gBAAgB;IAC/B,gCAAgC;IAChC,MAAM,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAA;IACvC,0CAA0C;IAC1C,KAAK,EAAE,aAAa,CAAA;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAwB5F"}
@@ -0,0 +1,325 @@
1
+ /**
2
+ * JSON Server — Raffel-native multi-protocol mock server
3
+ *
4
+ * Turns plain JSON data into a fully functional multi-protocol API:
5
+ *
6
+ * HTTP REST → GET/POST/PUT/PATCH/DELETE /resource[/:id]
7
+ * WebSocket → resource.list / resource.get / ... + resource.$watch (real-time stream)
8
+ * JSON-RPC → resource.list / resource.get / ... (opt-in)
9
+ *
10
+ * Architecture:
11
+ * The REST layer is an HttpMiddleware intercepting standard verbs before the
12
+ * Raffel RPC router. The procedure layer is a RouterModule mounted on the
13
+ * same server — identical logic, second transport. Both share one InMemoryStore.
14
+ */
15
+ import { createServer } from '../server/builder.js';
16
+ import { createRouterModule } from '../server/router-module.js';
17
+ import { RaffelError } from '../core/router.js';
18
+ import { InMemoryStore, loadDb, normalizeId } from './store.js';
19
+ export { loadDb, normalizeId } from './store.js';
20
+ /**
21
+ * Create a reusable JSON module from a plain data object.
22
+ *
23
+ * Returns both a RouterModule (for WS/JSON-RPC) and an HttpMiddleware (for REST).
24
+ * Mount them on any existing Raffel server for full multi-protocol support.
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * const { module, middleware, store } = createJsonModule({
29
+ * posts: [{ id: 1, title: 'Hello' }],
30
+ * users: [{ id: 1, name: 'John' }]
31
+ * })
32
+ *
33
+ * const server = createServer({ port: 3000, http: { middleware: [middleware] } })
34
+ * .enableWebSocket('/ws')
35
+ * .enableJsonRpc('/rpc')
36
+ * .mount('', module)
37
+ *
38
+ * await server.start()
39
+ * ```
40
+ */
41
+ export function createJsonModule(db, options = {}) {
42
+ const store = new InMemoryStore(db, { idKey: options.idKey });
43
+ return {
44
+ module: buildModule(store, options),
45
+ middleware: buildRestMiddleware(store, options),
46
+ store,
47
+ };
48
+ }
49
+ /**
50
+ * Create and start a standalone Raffel JSON server.
51
+ *
52
+ * All resources in `db` are automatically exposed as:
53
+ * - **HTTP REST** on the given port (always on)
54
+ * - **WebSocket** procedures + real-time `$watch` streams (default: on)
55
+ * - **JSON-RPC** on `/rpc` (opt-in via `protocols.jsonrpc`)
56
+ *
57
+ * For production multi-protocol use, call `createJsonModule()` instead and
58
+ * mount it on your own server with the interceptors, auth, and protocols you need.
59
+ *
60
+ * @example
61
+ * ```typescript
62
+ * const { server, store } = await createJsonServer({
63
+ * port: 3000,
64
+ * db: {
65
+ * posts: [{ id: 1, title: 'Hello', userId: 1 }],
66
+ * users: [{ id: 1, name: 'John' }]
67
+ * }
68
+ * })
69
+ * // → GET /posts list with ?_sort=title&_order=asc&_page=1&_limit=10&_q=text
70
+ * // → GET /posts/:id get by id
71
+ * // → POST /posts create
72
+ * // → PUT /posts/:id replace
73
+ * // → PATCH /posts/:id update
74
+ * // → DELETE /posts/:id delete
75
+ * // WS: send { procedure: 'posts.list', payload: {} }
76
+ * // WS: send { procedure: 'posts.$watch' } → stream of StoreEvents
77
+ * ```
78
+ */
79
+ export async function createJsonServer(options) {
80
+ const { db, port = 3000, hostname, protocols = {}, onListen, ...moduleOptions } = options;
81
+ const rawDb = typeof db === 'string' ? loadDb(db) : db;
82
+ const filePath = typeof db === 'string' ? db : undefined;
83
+ const store = new InMemoryStore(rawDb, { idKey: moduleOptions.idKey, filePath });
84
+ const module = buildModule(store, moduleOptions);
85
+ const middleware = buildRestMiddleware(store, moduleOptions);
86
+ const server = createServer({ port, host: hostname, http: { middleware: [middleware] } });
87
+ server.mount('', module);
88
+ if (protocols.ws !== false) {
89
+ server.enableWebSocket('/ws');
90
+ }
91
+ if (protocols.jsonrpc === true) {
92
+ server.enableJsonRpc('/rpc');
93
+ }
94
+ await server.start();
95
+ onListen?.();
96
+ return { server, store };
97
+ }
98
+ // ── REST middleware ────────────────────────────────────────────────────────────
99
+ function buildRestMiddleware(store, options) {
100
+ return async (req, res) => {
101
+ const url = new URL(req.url ?? '/', 'http://localhost');
102
+ const segments = url.pathname.split('/').filter(Boolean);
103
+ // Only handle /resource and /resource/:id
104
+ if (segments.length === 0 || segments.length > 2)
105
+ return false;
106
+ const [resource, rawId] = segments;
107
+ // Only intercept known resources
108
+ if (!store.resources().includes(resource))
109
+ return false;
110
+ const method = req.method?.toUpperCase() ?? 'GET';
111
+ try {
112
+ if (options.delay)
113
+ await sleep(options.delay);
114
+ if (segments.length === 1) {
115
+ // Collection: /resource
116
+ if (method === 'GET') {
117
+ const query = queryFromParams(url.searchParams);
118
+ sendJson(res, 200, store.list(resource, query));
119
+ return true;
120
+ }
121
+ if (method === 'POST') {
122
+ if (options.readonly) {
123
+ sendJson(res, 405, { code: 'METHOD_NOT_ALLOWED', message: 'Server is read-only' });
124
+ return true;
125
+ }
126
+ const body = await readBody(req);
127
+ sendJson(res, 201, store.create(resource, body));
128
+ return true;
129
+ }
130
+ sendJson(res, 405, { code: 'METHOD_NOT_ALLOWED', message: `${method} not allowed on /${resource}` });
131
+ return true;
132
+ }
133
+ // Item: /resource/:id
134
+ const id = normalizeId(rawId);
135
+ if (method === 'GET') {
136
+ const item = store.get(resource, id);
137
+ if (!item) {
138
+ sendNotFound(res);
139
+ return true;
140
+ }
141
+ sendJson(res, 200, item);
142
+ return true;
143
+ }
144
+ if (options.readonly) {
145
+ sendJson(res, 405, { code: 'METHOD_NOT_ALLOWED', message: 'Server is read-only' });
146
+ return true;
147
+ }
148
+ if (method === 'PUT') {
149
+ const body = await readBody(req);
150
+ const item = store.replace(resource, id, body);
151
+ if (!item) {
152
+ sendNotFound(res);
153
+ return true;
154
+ }
155
+ sendJson(res, 200, item);
156
+ return true;
157
+ }
158
+ if (method === 'PATCH') {
159
+ const body = await readBody(req);
160
+ const item = store.update(resource, id, body);
161
+ if (!item) {
162
+ sendNotFound(res);
163
+ return true;
164
+ }
165
+ sendJson(res, 200, item);
166
+ return true;
167
+ }
168
+ if (method === 'DELETE') {
169
+ const item = store.delete(resource, id);
170
+ if (!item) {
171
+ sendNotFound(res);
172
+ return true;
173
+ }
174
+ sendJson(res, 200, item);
175
+ return true;
176
+ }
177
+ sendJson(res, 405, { code: 'METHOD_NOT_ALLOWED', message: `${method} not allowed` });
178
+ return true;
179
+ }
180
+ catch {
181
+ sendJson(res, 500, { code: 'INTERNAL_ERROR', message: 'An error occurred' });
182
+ return true;
183
+ }
184
+ };
185
+ }
186
+ // ── RouterModule (procedures for WS + JSON-RPC) ────────────────────────────────
187
+ function buildModule(store, options) {
188
+ const root = createRouterModule();
189
+ for (const resource of store.resources()) {
190
+ buildResourceProcedures(root, resource, store, options);
191
+ }
192
+ return root;
193
+ }
194
+ function buildResourceProcedures(root, resource, store, options) {
195
+ const g = root.group(resource);
196
+ g.procedure('list')
197
+ .description(`List ${resource} with optional filter/sort/paginate`)
198
+ .handler(async (input) => {
199
+ if (options.delay)
200
+ await sleep(options.delay);
201
+ return store.list(resource, input ?? {});
202
+ });
203
+ g.procedure('get')
204
+ .description(`Get a ${resource} by id`)
205
+ .handler(async (input) => {
206
+ if (options.delay)
207
+ await sleep(options.delay);
208
+ const { id } = input;
209
+ const item = store.get(resource, id);
210
+ if (!item)
211
+ throw new RaffelError('NOT_FOUND', `${resource} not found`);
212
+ return item;
213
+ });
214
+ if (!options.readonly) {
215
+ g.procedure('create')
216
+ .description(`Create a new ${resource}`)
217
+ .handler(async (input) => {
218
+ if (options.delay)
219
+ await sleep(options.delay);
220
+ return store.create(resource, input ?? {});
221
+ });
222
+ g.procedure('replace')
223
+ .description(`Replace a ${resource} by id`)
224
+ .handler(async (input) => {
225
+ if (options.delay)
226
+ await sleep(options.delay);
227
+ const { id, ...data } = input;
228
+ const item = store.replace(resource, id, data);
229
+ if (!item)
230
+ throw new RaffelError('NOT_FOUND', `${resource} not found`);
231
+ return item;
232
+ });
233
+ g.procedure('update')
234
+ .description(`Patch a ${resource} by id`)
235
+ .handler(async (input) => {
236
+ if (options.delay)
237
+ await sleep(options.delay);
238
+ const { id, ...patch } = input;
239
+ const item = store.update(resource, id, patch);
240
+ if (!item)
241
+ throw new RaffelError('NOT_FOUND', `${resource} not found`);
242
+ return item;
243
+ });
244
+ g.procedure('delete')
245
+ .description(`Delete a ${resource} by id`)
246
+ .handler(async (input) => {
247
+ if (options.delay)
248
+ await sleep(options.delay);
249
+ const { id } = input;
250
+ const item = store.delete(resource, id);
251
+ if (!item)
252
+ throw new RaffelError('NOT_FOUND', `${resource} not found`);
253
+ return item;
254
+ });
255
+ }
256
+ // Real-time stream — yields StoreEvents whenever the resource changes
257
+ g.stream('$watch')
258
+ .direction('server')
259
+ .description(`Watch ${resource} changes in real-time`)
260
+ .handler(async function* (_input, ctx) {
261
+ const queue = [];
262
+ let notify = null;
263
+ const unsub = store.subscribe((event) => {
264
+ if (event.resource !== resource)
265
+ return;
266
+ queue.push(event);
267
+ notify?.();
268
+ notify = null;
269
+ });
270
+ // Wake the pending promise on abort so the loop exits cleanly
271
+ ctx.signal.addEventListener('abort', () => {
272
+ notify?.();
273
+ notify = null;
274
+ }, { once: true });
275
+ try {
276
+ while (!ctx.signal.aborted) {
277
+ while (queue.length > 0)
278
+ yield queue.shift();
279
+ if (!ctx.signal.aborted) {
280
+ await new Promise(r => { notify = r; });
281
+ }
282
+ }
283
+ }
284
+ finally {
285
+ unsub();
286
+ }
287
+ });
288
+ }
289
+ // ── HTTP helpers ───────────────────────────────────────────────────────────────
290
+ function sendJson(res, status, data) {
291
+ const body = JSON.stringify(data);
292
+ res.writeHead(status, {
293
+ 'Content-Type': 'application/json',
294
+ 'Content-Length': Buffer.byteLength(body),
295
+ });
296
+ res.end(body);
297
+ }
298
+ function sendNotFound(res) {
299
+ sendJson(res, 404, { code: 'NOT_FOUND', message: 'Not found' });
300
+ }
301
+ async function readBody(req) {
302
+ return new Promise((resolve, reject) => {
303
+ const chunks = [];
304
+ req.on('data', (chunk) => chunks.push(chunk));
305
+ req.on('end', () => {
306
+ try {
307
+ resolve(JSON.parse(Buffer.concat(chunks).toString('utf8')));
308
+ }
309
+ catch {
310
+ resolve({});
311
+ }
312
+ });
313
+ req.on('error', reject);
314
+ });
315
+ }
316
+ function queryFromParams(params) {
317
+ const q = {};
318
+ for (const [key, value] of params)
319
+ q[key] = value;
320
+ return q;
321
+ }
322
+ function sleep(ms) {
323
+ return new Promise(r => setTimeout(r, ms));
324
+ }
325
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/json-server/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * JSON Server — In-Memory Store
3
+ *
4
+ * Shared data store with change notifications and optional file persistence.
5
+ */
6
+ export type JsonRecord = Record<string, unknown>;
7
+ export type JsonDb = Record<string, JsonRecord[]>;
8
+ export type StoreEventOp = 'create' | 'update' | 'replace' | 'delete';
9
+ export interface StoreEvent {
10
+ op: StoreEventOp;
11
+ resource: string;
12
+ id: string | number;
13
+ data?: JsonRecord;
14
+ prev?: JsonRecord;
15
+ }
16
+ export interface ListQuery {
17
+ _sort?: string;
18
+ _order?: 'asc' | 'desc';
19
+ _page?: string | number;
20
+ _limit?: string | number;
21
+ _q?: string;
22
+ [key: string]: unknown;
23
+ }
24
+ export interface ListResult {
25
+ data: JsonRecord[];
26
+ total: number;
27
+ }
28
+ export interface StoreOptions {
29
+ /** Field name used as record ID (default: 'id') */
30
+ idKey?: string;
31
+ /** Path to .json file for persistence (debounced writes on mutation) */
32
+ filePath?: string;
33
+ }
34
+ export declare class InMemoryStore {
35
+ private readonly rows;
36
+ private readonly listeners;
37
+ readonly idKey: string;
38
+ private readonly filePath?;
39
+ private readonly nextNumericId;
40
+ private flushTimer;
41
+ constructor(db: JsonDb, options?: StoreOptions);
42
+ resources(): string[];
43
+ list(resource: string, query?: ListQuery): ListResult;
44
+ get(resource: string, id: string | number): JsonRecord | null;
45
+ create(resource: string, data: JsonRecord): JsonRecord;
46
+ replace(resource: string, id: string | number, data: JsonRecord): JsonRecord | null;
47
+ update(resource: string, id: string | number, patch: Partial<JsonRecord>): JsonRecord | null;
48
+ delete(resource: string, id: string | number): JsonRecord | null;
49
+ subscribe(callback: (event: StoreEvent) => void): () => void;
50
+ toJSON(): JsonDb;
51
+ private emit;
52
+ private scheduleFlush;
53
+ }
54
+ /** Load a JSON database from file, returning an empty object on error. */
55
+ export declare function loadDb(filePath: string): JsonDb;
56
+ /**
57
+ * Coerce a URL path segment string to the correct id type.
58
+ * Integer strings like "1" become the number 1; everything else stays a string.
59
+ */
60
+ export declare function normalizeId(id: string): string | number;
61
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/json-server/store.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAChD,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAA;AACjD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAA;AAErE,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,YAAY,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACxB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,UAAU,EAAE,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsD;IAC3E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyC;IACnE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4B;IAC1D,OAAO,CAAC,UAAU,CAA6C;gBAEnD,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB;IAmBlD,SAAS,IAAI,MAAM,EAAE;IAIrB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAE,SAAc,GAAG,UAAU;IA2CzD,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,IAAI;IAI7D,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU;IA0BtD,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI;IAYnF,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,IAAI;IAY5F,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,IAAI;IAWhE,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,MAAM,IAAI;IAK5D,MAAM,IAAI,MAAM;IAQhB,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,aAAa;CAQtB;AAED,0EAA0E;AAC1E,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAM/C;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAGvD"}