@lssm/example.analytics-dashboard 0.0.0-canary-20251220030446 → 0.0.0-canary-20251221114240

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.
Files changed (42) hide show
  1. package/dist/dashboard/dashboard.enum.d.ts +4 -4
  2. package/dist/dashboard/dashboard.enum.d.ts.map +1 -1
  3. package/dist/dashboard/dashboard.operation.d.ts +531 -0
  4. package/dist/dashboard/{dashboard.contracts.d.ts.map → dashboard.operation.d.ts.map} +1 -1
  5. package/dist/dashboard/{dashboard.contracts.js → dashboard.operation.js} +3 -3
  6. package/dist/dashboard/dashboard.operation.js.map +1 -0
  7. package/dist/dashboard/index.d.ts +1 -1
  8. package/dist/dashboard/index.js +1 -1
  9. package/dist/index.d.ts +1 -1
  10. package/dist/index.js +1 -1
  11. package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +6 -6
  12. package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js.map +1 -1
  13. package/dist/libs/contracts/dist/index.js +3 -1
  14. package/dist/libs/contracts/dist/integrations/contracts.js +1 -1
  15. package/dist/libs/contracts/dist/integrations/contracts.js.map +1 -1
  16. package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js +1 -1
  17. package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js.map +1 -1
  18. package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js +1 -1
  19. package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js.map +1 -1
  20. package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js +1 -1
  21. package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js.map +1 -1
  22. package/dist/libs/contracts/dist/knowledge/contracts.js +1 -1
  23. package/dist/libs/contracts/dist/knowledge/contracts.js.map +1 -1
  24. package/dist/libs/contracts/dist/llm/exporters.js.map +1 -1
  25. package/dist/libs/contracts/dist/onboarding-base.js +1 -1
  26. package/dist/libs/contracts/dist/onboarding-base.js.map +1 -1
  27. package/dist/libs/contracts/dist/{spec.js → operation.js} +2 -2
  28. package/dist/libs/contracts/dist/operation.js.map +1 -0
  29. package/dist/libs/contracts/dist/workspace-config/contractsrc-schema.js +98 -0
  30. package/dist/libs/contracts/dist/workspace-config/contractsrc-schema.js.map +1 -0
  31. package/dist/libs/contracts/dist/workspace-config/index.js +1 -0
  32. package/dist/query/index.d.ts +1 -1
  33. package/dist/query/index.js +1 -1
  34. package/dist/query/{query.contracts.d.ts → query.operation.d.ts} +4 -4
  35. package/dist/query/{query.contracts.d.ts.map → query.operation.d.ts.map} +1 -1
  36. package/dist/query/{query.contracts.js → query.operation.js} +3 -3
  37. package/dist/query/query.operation.js.map +1 -0
  38. package/package.json +14 -14
  39. package/dist/dashboard/dashboard.contracts.d.ts +0 -531
  40. package/dist/dashboard/dashboard.contracts.js.map +0 -1
  41. package/dist/libs/contracts/dist/spec.js.map +0 -1
  42. package/dist/query/query.contracts.js.map +0 -1
@@ -1,18 +1,18 @@
1
- import * as _lssm_lib_schema166 from "@lssm/lib.schema";
1
+ import * as _lssm_lib_schema37 from "@lssm/lib.schema";
2
2
 
3
3
  //#region src/dashboard/dashboard.enum.d.ts
4
4
  /**
5
5
  * Dashboard status enum.
6
6
  */
7
- declare const DashboardStatusEnum: _lssm_lib_schema166.EnumType<[string, string, string]>;
7
+ declare const DashboardStatusEnum: _lssm_lib_schema37.EnumType<[string, string, string]>;
8
8
  /**
9
9
  * Widget type enum.
10
10
  */
11
- declare const WidgetTypeEnum: _lssm_lib_schema166.EnumType<[string, string, string, string, string, string, string, string, string, string, string, string]>;
11
+ declare const WidgetTypeEnum: _lssm_lib_schema37.EnumType<[string, string, string, string, string, string, string, string, string, string, string, string]>;
12
12
  /**
13
13
  * Refresh interval enum.
14
14
  */
15
- declare const RefreshIntervalEnum: _lssm_lib_schema166.EnumType<[string, string, string, string, string, string]>;
15
+ declare const RefreshIntervalEnum: _lssm_lib_schema37.EnumType<[string, string, string, string, string, string]>;
16
16
  //#endregion
17
17
  export { DashboardStatusEnum, RefreshIntervalEnum, WidgetTypeEnum };
18
18
  //# sourceMappingURL=dashboard.enum.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.enum.d.ts","names":[],"sources":["../../src/dashboard/dashboard.enum.ts"],"sourcesContent":[],"mappings":";;;;;;AAKa,cAAA,mBAIX,EAAA,mBAAA,CAJ8B,QAAA,CAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;AAShC;AAkBA;;cAlBa,gBAaX,mBAAA,CAbyB;;;;cAkBd,qBAOX,mBAAA,CAP8B"}
1
+ {"version":3,"file":"dashboard.enum.d.ts","names":[],"sources":["../../src/dashboard/dashboard.enum.ts"],"sourcesContent":[],"mappings":";;;;;;AAKa,cAAA,mBAIX,EAAA,kBAAA,CAJ8B,QAAA,CAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;AAShC;AAkBA;;cAlBa,gBAaX,kBAAA,CAbyB;;;;cAkBd,qBAOX,kBAAA,CAP8B"}
@@ -0,0 +1,531 @@
1
+ import * as _lssm_lib_contracts5 from "@lssm/lib.contracts";
2
+ import * as _lssm_lib_schema40 from "@lssm/lib.schema";
3
+
4
+ //#region src/dashboard/dashboard.operation.d.ts
5
+ /**
6
+ * Create a new analytics dashboard.
7
+ */
8
+ declare const CreateDashboardContract: _lssm_lib_contracts5.OperationSpec<_lssm_lib_schema40.SchemaModel<{
9
+ name: {
10
+ type: _lssm_lib_schema40.FieldType<string, string>;
11
+ isOptional: false;
12
+ };
13
+ slug: {
14
+ type: _lssm_lib_schema40.FieldType<string, string>;
15
+ isOptional: false;
16
+ };
17
+ description: {
18
+ type: _lssm_lib_schema40.FieldType<string, string>;
19
+ isOptional: true;
20
+ };
21
+ refreshInterval: {
22
+ type: _lssm_lib_schema40.EnumType<[string, string, string, string, string, string]>;
23
+ isOptional: true;
24
+ };
25
+ dateRange: {
26
+ type: _lssm_lib_schema40.FieldType<unknown, unknown>;
27
+ isOptional: true;
28
+ };
29
+ }>, _lssm_lib_schema40.SchemaModel<{
30
+ id: {
31
+ type: _lssm_lib_schema40.FieldType<string, string>;
32
+ isOptional: false;
33
+ };
34
+ name: {
35
+ type: _lssm_lib_schema40.FieldType<string, string>;
36
+ isOptional: false;
37
+ };
38
+ slug: {
39
+ type: _lssm_lib_schema40.FieldType<string, string>;
40
+ isOptional: false;
41
+ };
42
+ description: {
43
+ type: _lssm_lib_schema40.FieldType<string, string>;
44
+ isOptional: true;
45
+ };
46
+ status: {
47
+ type: _lssm_lib_schema40.EnumType<[string, string, string]>;
48
+ isOptional: false;
49
+ };
50
+ refreshInterval: {
51
+ type: _lssm_lib_schema40.EnumType<[string, string, string, string, string, string]>;
52
+ isOptional: false;
53
+ };
54
+ isPublic: {
55
+ type: _lssm_lib_schema40.FieldType<boolean, boolean>;
56
+ isOptional: false;
57
+ };
58
+ widgets: {
59
+ type: _lssm_lib_schema40.SchemaModel<{
60
+ id: {
61
+ type: _lssm_lib_schema40.FieldType<string, string>;
62
+ isOptional: false;
63
+ };
64
+ dashboardId: {
65
+ type: _lssm_lib_schema40.FieldType<string, string>;
66
+ isOptional: false;
67
+ };
68
+ name: {
69
+ type: _lssm_lib_schema40.FieldType<string, string>;
70
+ isOptional: false;
71
+ };
72
+ type: {
73
+ type: _lssm_lib_schema40.EnumType<[string, string, string, string, string, string, string, string, string, string, string, string]>;
74
+ isOptional: false;
75
+ };
76
+ gridX: {
77
+ type: _lssm_lib_schema40.FieldType<number, number>;
78
+ isOptional: false;
79
+ };
80
+ gridY: {
81
+ type: _lssm_lib_schema40.FieldType<number, number>;
82
+ isOptional: false;
83
+ };
84
+ gridWidth: {
85
+ type: _lssm_lib_schema40.FieldType<number, number>;
86
+ isOptional: false;
87
+ };
88
+ gridHeight: {
89
+ type: _lssm_lib_schema40.FieldType<number, number>;
90
+ isOptional: false;
91
+ };
92
+ queryId: {
93
+ type: _lssm_lib_schema40.FieldType<string, string>;
94
+ isOptional: true;
95
+ };
96
+ config: {
97
+ type: _lssm_lib_schema40.FieldType<unknown, unknown>;
98
+ isOptional: true;
99
+ };
100
+ }>;
101
+ isArray: true;
102
+ isOptional: true;
103
+ };
104
+ createdAt: {
105
+ type: _lssm_lib_schema40.FieldType<Date, string>;
106
+ isOptional: false;
107
+ };
108
+ }>, {
109
+ name: string;
110
+ version: number;
111
+ when: string;
112
+ payload: _lssm_lib_schema40.SchemaModel<{
113
+ id: {
114
+ type: _lssm_lib_schema40.FieldType<string, string>;
115
+ isOptional: false;
116
+ };
117
+ name: {
118
+ type: _lssm_lib_schema40.FieldType<string, string>;
119
+ isOptional: false;
120
+ };
121
+ slug: {
122
+ type: _lssm_lib_schema40.FieldType<string, string>;
123
+ isOptional: false;
124
+ };
125
+ description: {
126
+ type: _lssm_lib_schema40.FieldType<string, string>;
127
+ isOptional: true;
128
+ };
129
+ status: {
130
+ type: _lssm_lib_schema40.EnumType<[string, string, string]>;
131
+ isOptional: false;
132
+ };
133
+ refreshInterval: {
134
+ type: _lssm_lib_schema40.EnumType<[string, string, string, string, string, string]>;
135
+ isOptional: false;
136
+ };
137
+ isPublic: {
138
+ type: _lssm_lib_schema40.FieldType<boolean, boolean>;
139
+ isOptional: false;
140
+ };
141
+ widgets: {
142
+ type: _lssm_lib_schema40.SchemaModel<{
143
+ id: {
144
+ type: _lssm_lib_schema40.FieldType<string, string>;
145
+ isOptional: false;
146
+ };
147
+ dashboardId: {
148
+ type: _lssm_lib_schema40.FieldType<string, string>;
149
+ isOptional: false;
150
+ };
151
+ name: {
152
+ type: _lssm_lib_schema40.FieldType<string, string>;
153
+ isOptional: false;
154
+ };
155
+ type: {
156
+ type: _lssm_lib_schema40.EnumType<[string, string, string, string, string, string, string, string, string, string, string, string]>;
157
+ isOptional: false;
158
+ };
159
+ gridX: {
160
+ type: _lssm_lib_schema40.FieldType<number, number>;
161
+ isOptional: false;
162
+ };
163
+ gridY: {
164
+ type: _lssm_lib_schema40.FieldType<number, number>;
165
+ isOptional: false;
166
+ };
167
+ gridWidth: {
168
+ type: _lssm_lib_schema40.FieldType<number, number>;
169
+ isOptional: false;
170
+ };
171
+ gridHeight: {
172
+ type: _lssm_lib_schema40.FieldType<number, number>;
173
+ isOptional: false;
174
+ };
175
+ queryId: {
176
+ type: _lssm_lib_schema40.FieldType<string, string>;
177
+ isOptional: true;
178
+ };
179
+ config: {
180
+ type: _lssm_lib_schema40.FieldType<unknown, unknown>;
181
+ isOptional: true;
182
+ };
183
+ }>;
184
+ isArray: true;
185
+ isOptional: true;
186
+ };
187
+ createdAt: {
188
+ type: _lssm_lib_schema40.FieldType<Date, string>;
189
+ isOptional: false;
190
+ };
191
+ }>;
192
+ }[]>;
193
+ /**
194
+ * Add a widget to a dashboard.
195
+ */
196
+ declare const AddWidgetContract: _lssm_lib_contracts5.OperationSpec<_lssm_lib_schema40.SchemaModel<{
197
+ dashboardId: {
198
+ type: _lssm_lib_schema40.FieldType<string, string>;
199
+ isOptional: false;
200
+ };
201
+ name: {
202
+ type: _lssm_lib_schema40.FieldType<string, string>;
203
+ isOptional: false;
204
+ };
205
+ type: {
206
+ type: _lssm_lib_schema40.EnumType<[string, string, string, string, string, string, string, string, string, string, string, string]>;
207
+ isOptional: false;
208
+ };
209
+ gridX: {
210
+ type: _lssm_lib_schema40.FieldType<number, number>;
211
+ isOptional: true;
212
+ };
213
+ gridY: {
214
+ type: _lssm_lib_schema40.FieldType<number, number>;
215
+ isOptional: true;
216
+ };
217
+ gridWidth: {
218
+ type: _lssm_lib_schema40.FieldType<number, number>;
219
+ isOptional: true;
220
+ };
221
+ gridHeight: {
222
+ type: _lssm_lib_schema40.FieldType<number, number>;
223
+ isOptional: true;
224
+ };
225
+ queryId: {
226
+ type: _lssm_lib_schema40.FieldType<string, string>;
227
+ isOptional: true;
228
+ };
229
+ config: {
230
+ type: _lssm_lib_schema40.FieldType<unknown, unknown>;
231
+ isOptional: true;
232
+ };
233
+ }>, _lssm_lib_schema40.SchemaModel<{
234
+ id: {
235
+ type: _lssm_lib_schema40.FieldType<string, string>;
236
+ isOptional: false;
237
+ };
238
+ dashboardId: {
239
+ type: _lssm_lib_schema40.FieldType<string, string>;
240
+ isOptional: false;
241
+ };
242
+ name: {
243
+ type: _lssm_lib_schema40.FieldType<string, string>;
244
+ isOptional: false;
245
+ };
246
+ type: {
247
+ type: _lssm_lib_schema40.EnumType<[string, string, string, string, string, string, string, string, string, string, string, string]>;
248
+ isOptional: false;
249
+ };
250
+ gridX: {
251
+ type: _lssm_lib_schema40.FieldType<number, number>;
252
+ isOptional: false;
253
+ };
254
+ gridY: {
255
+ type: _lssm_lib_schema40.FieldType<number, number>;
256
+ isOptional: false;
257
+ };
258
+ gridWidth: {
259
+ type: _lssm_lib_schema40.FieldType<number, number>;
260
+ isOptional: false;
261
+ };
262
+ gridHeight: {
263
+ type: _lssm_lib_schema40.FieldType<number, number>;
264
+ isOptional: false;
265
+ };
266
+ queryId: {
267
+ type: _lssm_lib_schema40.FieldType<string, string>;
268
+ isOptional: true;
269
+ };
270
+ config: {
271
+ type: _lssm_lib_schema40.FieldType<unknown, unknown>;
272
+ isOptional: true;
273
+ };
274
+ }>, {
275
+ name: string;
276
+ version: number;
277
+ when: string;
278
+ payload: _lssm_lib_schema40.SchemaModel<{
279
+ id: {
280
+ type: _lssm_lib_schema40.FieldType<string, string>;
281
+ isOptional: false;
282
+ };
283
+ dashboardId: {
284
+ type: _lssm_lib_schema40.FieldType<string, string>;
285
+ isOptional: false;
286
+ };
287
+ name: {
288
+ type: _lssm_lib_schema40.FieldType<string, string>;
289
+ isOptional: false;
290
+ };
291
+ type: {
292
+ type: _lssm_lib_schema40.EnumType<[string, string, string, string, string, string, string, string, string, string, string, string]>;
293
+ isOptional: false;
294
+ };
295
+ gridX: {
296
+ type: _lssm_lib_schema40.FieldType<number, number>;
297
+ isOptional: false;
298
+ };
299
+ gridY: {
300
+ type: _lssm_lib_schema40.FieldType<number, number>;
301
+ isOptional: false;
302
+ };
303
+ gridWidth: {
304
+ type: _lssm_lib_schema40.FieldType<number, number>;
305
+ isOptional: false;
306
+ };
307
+ gridHeight: {
308
+ type: _lssm_lib_schema40.FieldType<number, number>;
309
+ isOptional: false;
310
+ };
311
+ queryId: {
312
+ type: _lssm_lib_schema40.FieldType<string, string>;
313
+ isOptional: true;
314
+ };
315
+ config: {
316
+ type: _lssm_lib_schema40.FieldType<unknown, unknown>;
317
+ isOptional: true;
318
+ };
319
+ }>;
320
+ }[]>;
321
+ /**
322
+ * List dashboards.
323
+ */
324
+ declare const ListDashboardsContract: _lssm_lib_contracts5.OperationSpec<_lssm_lib_schema40.SchemaModel<{
325
+ status: {
326
+ type: _lssm_lib_schema40.EnumType<[string, string, string]>;
327
+ isOptional: true;
328
+ };
329
+ search: {
330
+ type: _lssm_lib_schema40.FieldType<string, string>;
331
+ isOptional: true;
332
+ };
333
+ limit: {
334
+ type: _lssm_lib_schema40.FieldType<number, number>;
335
+ isOptional: true;
336
+ defaultValue: number;
337
+ };
338
+ offset: {
339
+ type: _lssm_lib_schema40.FieldType<number, number>;
340
+ isOptional: true;
341
+ defaultValue: number;
342
+ };
343
+ }>, _lssm_lib_schema40.SchemaModel<{
344
+ dashboards: {
345
+ type: _lssm_lib_schema40.SchemaModel<{
346
+ id: {
347
+ type: _lssm_lib_schema40.FieldType<string, string>;
348
+ isOptional: false;
349
+ };
350
+ name: {
351
+ type: _lssm_lib_schema40.FieldType<string, string>;
352
+ isOptional: false;
353
+ };
354
+ slug: {
355
+ type: _lssm_lib_schema40.FieldType<string, string>;
356
+ isOptional: false;
357
+ };
358
+ description: {
359
+ type: _lssm_lib_schema40.FieldType<string, string>;
360
+ isOptional: true;
361
+ };
362
+ status: {
363
+ type: _lssm_lib_schema40.EnumType<[string, string, string]>;
364
+ isOptional: false;
365
+ };
366
+ refreshInterval: {
367
+ type: _lssm_lib_schema40.EnumType<[string, string, string, string, string, string]>;
368
+ isOptional: false;
369
+ };
370
+ isPublic: {
371
+ type: _lssm_lib_schema40.FieldType<boolean, boolean>;
372
+ isOptional: false;
373
+ };
374
+ widgets: {
375
+ type: _lssm_lib_schema40.SchemaModel<{
376
+ id: {
377
+ type: _lssm_lib_schema40.FieldType<string, string>;
378
+ isOptional: false;
379
+ };
380
+ dashboardId: {
381
+ type: _lssm_lib_schema40.FieldType<string, string>;
382
+ isOptional: false;
383
+ };
384
+ name: {
385
+ type: _lssm_lib_schema40.FieldType<string, string>;
386
+ isOptional: false;
387
+ };
388
+ type: {
389
+ type: _lssm_lib_schema40.EnumType<[string, string, string, string, string, string, string, string, string, string, string, string]>;
390
+ isOptional: false;
391
+ };
392
+ gridX: {
393
+ type: _lssm_lib_schema40.FieldType<number, number>;
394
+ isOptional: false;
395
+ };
396
+ gridY: {
397
+ type: _lssm_lib_schema40.FieldType<number, number>;
398
+ isOptional: false;
399
+ };
400
+ gridWidth: {
401
+ type: _lssm_lib_schema40.FieldType<number, number>;
402
+ isOptional: false;
403
+ };
404
+ gridHeight: {
405
+ type: _lssm_lib_schema40.FieldType<number, number>;
406
+ isOptional: false;
407
+ };
408
+ queryId: {
409
+ type: _lssm_lib_schema40.FieldType<string, string>;
410
+ isOptional: true;
411
+ };
412
+ config: {
413
+ type: _lssm_lib_schema40.FieldType<unknown, unknown>;
414
+ isOptional: true;
415
+ };
416
+ }>;
417
+ isArray: true;
418
+ isOptional: true;
419
+ };
420
+ createdAt: {
421
+ type: _lssm_lib_schema40.FieldType<Date, string>;
422
+ isOptional: false;
423
+ };
424
+ }>;
425
+ isArray: true;
426
+ isOptional: false;
427
+ };
428
+ total: {
429
+ type: _lssm_lib_schema40.FieldType<number, number>;
430
+ isOptional: false;
431
+ };
432
+ }>, undefined>;
433
+ /**
434
+ * Get a dashboard with widgets.
435
+ */
436
+ declare const GetDashboardContract: _lssm_lib_contracts5.OperationSpec<_lssm_lib_schema40.SchemaModel<{
437
+ dashboardId: {
438
+ type: _lssm_lib_schema40.FieldType<string, string>;
439
+ isOptional: true;
440
+ };
441
+ slug: {
442
+ type: _lssm_lib_schema40.FieldType<string, string>;
443
+ isOptional: true;
444
+ };
445
+ shareToken: {
446
+ type: _lssm_lib_schema40.FieldType<string, string>;
447
+ isOptional: true;
448
+ };
449
+ }>, _lssm_lib_schema40.SchemaModel<{
450
+ id: {
451
+ type: _lssm_lib_schema40.FieldType<string, string>;
452
+ isOptional: false;
453
+ };
454
+ name: {
455
+ type: _lssm_lib_schema40.FieldType<string, string>;
456
+ isOptional: false;
457
+ };
458
+ slug: {
459
+ type: _lssm_lib_schema40.FieldType<string, string>;
460
+ isOptional: false;
461
+ };
462
+ description: {
463
+ type: _lssm_lib_schema40.FieldType<string, string>;
464
+ isOptional: true;
465
+ };
466
+ status: {
467
+ type: _lssm_lib_schema40.EnumType<[string, string, string]>;
468
+ isOptional: false;
469
+ };
470
+ refreshInterval: {
471
+ type: _lssm_lib_schema40.EnumType<[string, string, string, string, string, string]>;
472
+ isOptional: false;
473
+ };
474
+ isPublic: {
475
+ type: _lssm_lib_schema40.FieldType<boolean, boolean>;
476
+ isOptional: false;
477
+ };
478
+ widgets: {
479
+ type: _lssm_lib_schema40.SchemaModel<{
480
+ id: {
481
+ type: _lssm_lib_schema40.FieldType<string, string>;
482
+ isOptional: false;
483
+ };
484
+ dashboardId: {
485
+ type: _lssm_lib_schema40.FieldType<string, string>;
486
+ isOptional: false;
487
+ };
488
+ name: {
489
+ type: _lssm_lib_schema40.FieldType<string, string>;
490
+ isOptional: false;
491
+ };
492
+ type: {
493
+ type: _lssm_lib_schema40.EnumType<[string, string, string, string, string, string, string, string, string, string, string, string]>;
494
+ isOptional: false;
495
+ };
496
+ gridX: {
497
+ type: _lssm_lib_schema40.FieldType<number, number>;
498
+ isOptional: false;
499
+ };
500
+ gridY: {
501
+ type: _lssm_lib_schema40.FieldType<number, number>;
502
+ isOptional: false;
503
+ };
504
+ gridWidth: {
505
+ type: _lssm_lib_schema40.FieldType<number, number>;
506
+ isOptional: false;
507
+ };
508
+ gridHeight: {
509
+ type: _lssm_lib_schema40.FieldType<number, number>;
510
+ isOptional: false;
511
+ };
512
+ queryId: {
513
+ type: _lssm_lib_schema40.FieldType<string, string>;
514
+ isOptional: true;
515
+ };
516
+ config: {
517
+ type: _lssm_lib_schema40.FieldType<unknown, unknown>;
518
+ isOptional: true;
519
+ };
520
+ }>;
521
+ isArray: true;
522
+ isOptional: true;
523
+ };
524
+ createdAt: {
525
+ type: _lssm_lib_schema40.FieldType<Date, string>;
526
+ isOptional: false;
527
+ };
528
+ }>, undefined>;
529
+ //#endregion
530
+ export { AddWidgetContract, CreateDashboardContract, GetDashboardContract, ListDashboardsContract };
531
+ //# sourceMappingURL=dashboard.operation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.contracts.d.ts","names":[],"sources":["../../src/dashboard/dashboard.contracts.ts"],"sourcesContent":[],"mappings":";;;;;;;cAgBa,8CAAuB,gCAAA;EAAvB,IAAA,EAAA;IAwBX,IAAA,EAAA,kBAAA,CAAA,SAAA,CAAA,MAAA,EAAA,MAAA,CAAA;;;;;gBAxBkC,KAAA;EAAA,CAAA;;;;;;;;;;;;;;;UAAA,kBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAA,IAAA,gCAAA,CAAA;MA6BvB,EAAA,EAAA;QAuBX,IAAA,8BAAA,CAAA,MAAA,EAAA,MAAA,CAAA;;;;;;;;;kBAvB4B,EAAA,KAAA;MAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;0CAAA,CAAA,MAAA,EAAA,MAAA,CAAA;QAAA,UAAA,EAAA,IAAA;MA4BjB,CAAA;MAaX,MAAA,EAAA;;;;;IAbiC,OAAA,EAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;IAAA,WAAA,EAAA;MAkBtB,IAAA,8BAaX,CAAA,MAAA,EAAA,MAAA,CAAA;MAAA,UAAA,EAAA,IAAA;;;uCAb+B,CAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;MAAA,UAAA,EAAA,KAAA;;;;;;;;;;;;;;;;;;;;;cAAA,8BAAA,CAAA,MAAA,EAAA,MAAA,CAAA;UAAA,UAAA,EAAA,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA9CpB,wCAAiB,gCAAA;;UAuB5B,kBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAvB4B,kBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA4BjB,6CAAsB,gCAAA;;UAajC,kBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;cAbiC,kBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAkBtB,2CAAoB,gCAAA;;UAa/B,kBAAA,CAAA;;;;;;;;;;;;;UAb+B,kBAAA,CAAA"}
1
+ {"version":3,"file":"dashboard.operation.d.ts","names":[],"sources":["../../src/dashboard/dashboard.operation.ts"],"sourcesContent":[],"mappings":";;;;;;;cAgBa,8CAAuB,iCAAA;EAAvB,IAAA,EAAA;IAwBX,IAAA,EAAA,kBAAA,CAAA,SAAA,CAAA,MAAA,EAAA,MAAA,CAAA;;;;;gBAxBkC,KAAA;EAAA,CAAA;;;;;;;;;;;;;;;UAAA,kBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAA,IAAA,gCAAA,CAAA;MA6BvB,EAAA,EAAA;QAuBX,IAAA,8BAAA,CAAA,MAAA,EAAA,MAAA,CAAA;;;;;;;;;kBAvB4B,EAAA,KAAA;MAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;0CAAA,CAAA,MAAA,EAAA,MAAA,CAAA;QAAA,UAAA,EAAA,IAAA;MA4BjB,CAAA;MAaX,MAAA,EAAA;;;;;IAbiC,OAAA,EAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;IAAA,WAAA,EAAA;MAkBtB,IAAA,8BAaX,CAAA,MAAA,EAAA,MAAA,CAAA;MAAA,UAAA,EAAA,IAAA;;;uCAb+B,CAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;MAAA,UAAA,EAAA,KAAA;;;;;;;;;;;;;;;;;;;;;cAAA,8BAAA,CAAA,MAAA,EAAA,MAAA,CAAA;UAAA,UAAA,EAAA,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA9CpB,wCAAiB,iCAAA;;UAuB5B,kBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAvB4B,kBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA4BjB,6CAAsB,iCAAA;;UAajC,kBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;cAbiC,kBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAkBtB,2CAAoB,iCAAA;;UAa/B,kBAAA,CAAA;;;;;;;;;;;;;UAb+B,kBAAA,CAAA"}
@@ -1,7 +1,7 @@
1
- import { defineCommand, defineQuery } from "../libs/contracts/dist/spec.js";
1
+ import { defineCommand, defineQuery } from "../libs/contracts/dist/operation.js";
2
2
  import { AddWidgetInputModel, CreateDashboardInputModel, DashboardModel, GetDashboardInputModel, ListDashboardsInputModel, ListDashboardsOutputModel, WidgetModel } from "./dashboard.schema.js";
3
3
 
4
- //#region src/dashboard/dashboard.contracts.ts
4
+ //#region src/dashboard/dashboard.operation.ts
5
5
  const OWNERS = ["@example.analytics-dashboard"];
6
6
  /**
7
7
  * Create a new analytics dashboard.
@@ -117,4 +117,4 @@ const GetDashboardContract = defineQuery({
117
117
 
118
118
  //#endregion
119
119
  export { AddWidgetContract, CreateDashboardContract, GetDashboardContract, ListDashboardsContract };
120
- //# sourceMappingURL=dashboard.contracts.js.map
120
+ //# sourceMappingURL=dashboard.operation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard.operation.js","names":[],"sources":["../../src/dashboard/dashboard.operation.ts"],"sourcesContent":["import { defineCommand, defineQuery } from '@lssm/lib.contracts/operation';\nimport {\n DashboardModel,\n WidgetModel,\n CreateDashboardInputModel,\n AddWidgetInputModel,\n ListDashboardsInputModel,\n ListDashboardsOutputModel,\n GetDashboardInputModel,\n} from './dashboard.schema';\n\nconst OWNERS = ['@example.analytics-dashboard'] as const;\n\n/**\n * Create a new analytics dashboard.\n */\nexport const CreateDashboardContract = defineCommand({\n meta: {\n name: 'analytics.dashboard.create',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['analytics', 'dashboard', 'create'],\n description: 'Create a new analytics dashboard.',\n goal: 'Allow users to create custom dashboards.',\n context: 'Dashboard management.',\n },\n io: { input: CreateDashboardInputModel, output: DashboardModel },\n policy: { auth: 'user' },\n sideEffects: {\n emits: [\n {\n name: 'analytics.dashboard.created',\n version: 1,\n when: 'Dashboard created',\n payload: DashboardModel,\n },\n ],\n audit: ['analytics.dashboard.created'],\n },\n});\n\n/**\n * Add a widget to a dashboard.\n */\nexport const AddWidgetContract = defineCommand({\n meta: {\n name: 'analytics.widget.add',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['analytics', 'widget', 'add'],\n description: 'Add a widget to a dashboard.',\n goal: 'Allow users to add visualizations.',\n context: 'Dashboard editor.',\n },\n io: { input: AddWidgetInputModel, output: WidgetModel },\n policy: { auth: 'user' },\n sideEffects: {\n emits: [\n {\n name: 'analytics.widget.added',\n version: 1,\n when: 'Widget added',\n payload: WidgetModel,\n },\n ],\n },\n});\n\n/**\n * List dashboards.\n */\nexport const ListDashboardsContract = defineQuery({\n meta: {\n name: 'analytics.dashboard.list',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['analytics', 'dashboard', 'list'],\n description: 'List dashboards.',\n goal: 'Browse available dashboards.',\n context: 'Dashboard listing.',\n },\n io: { input: ListDashboardsInputModel, output: ListDashboardsOutputModel },\n policy: { auth: 'user' },\n});\n\n/**\n * Get a dashboard with widgets.\n */\nexport const GetDashboardContract = defineQuery({\n meta: {\n name: 'analytics.dashboard.get',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['analytics', 'dashboard', 'get'],\n description: 'Get a dashboard with widgets.',\n goal: 'Load dashboard for viewing.',\n context: 'Dashboard view.',\n },\n io: { input: GetDashboardInputModel, output: DashboardModel },\n policy: { auth: 'anonymous' },\n});\n"],"mappings":";;;;AAWA,MAAM,SAAS,CAAC,+BAA+B;;;;AAK/C,MAAa,0BAA0B,cAAc;CACnD,MAAM;EACJ,MAAM;EACN,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAa;GAAa;GAAS;EAC1C,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EAAE,OAAO;EAA2B,QAAQ;EAAgB;CAChE,QAAQ,EAAE,MAAM,QAAQ;CACxB,aAAa;EACX,OAAO,CACL;GACE,MAAM;GACN,SAAS;GACT,MAAM;GACN,SAAS;GACV,CACF;EACD,OAAO,CAAC,8BAA8B;EACvC;CACF,CAAC;;;;AAKF,MAAa,oBAAoB,cAAc;CAC7C,MAAM;EACJ,MAAM;EACN,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAa;GAAU;GAAM;EACpC,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EAAE,OAAO;EAAqB,QAAQ;EAAa;CACvD,QAAQ,EAAE,MAAM,QAAQ;CACxB,aAAa,EACX,OAAO,CACL;EACE,MAAM;EACN,SAAS;EACT,MAAM;EACN,SAAS;EACV,CACF,EACF;CACF,CAAC;;;;AAKF,MAAa,yBAAyB,YAAY;CAChD,MAAM;EACJ,MAAM;EACN,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAa;GAAa;GAAO;EACxC,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EAAE,OAAO;EAA0B,QAAQ;EAA2B;CAC1E,QAAQ,EAAE,MAAM,QAAQ;CACzB,CAAC;;;;AAKF,MAAa,uBAAuB,YAAY;CAC9C,MAAM;EACJ,MAAM;EACN,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAa;GAAa;GAAM;EACvC,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EAAE,OAAO;EAAwB,QAAQ;EAAgB;CAC7D,QAAQ,EAAE,MAAM,aAAa;CAC9B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { AddWidgetContract, CreateDashboardContract, GetDashboardContract, ListDashboardsContract } from "./dashboard.contracts.js";
2
1
  import { DashboardStatusEnum, RefreshIntervalEnum, WidgetTypeEnum } from "./dashboard.enum.js";
2
+ import { AddWidgetContract, CreateDashboardContract, GetDashboardContract, ListDashboardsContract } from "./dashboard.operation.js";
3
3
  import { AddWidgetInputModel, CreateDashboardInputModel, DashboardModel, GetDashboardInputModel, ListDashboardsInputModel, ListDashboardsOutputModel, WidgetModel } from "./dashboard.schema.js";
4
4
  export { AddWidgetContract, AddWidgetInputModel, CreateDashboardContract, CreateDashboardInputModel, DashboardModel, DashboardStatusEnum, GetDashboardContract, GetDashboardInputModel, ListDashboardsContract, ListDashboardsInputModel, ListDashboardsOutputModel, RefreshIntervalEnum, WidgetModel, WidgetTypeEnum };
@@ -1,5 +1,5 @@
1
1
  import { DashboardStatusEnum, RefreshIntervalEnum, WidgetTypeEnum } from "./dashboard.enum.js";
2
2
  import { AddWidgetInputModel, CreateDashboardInputModel, DashboardModel, GetDashboardInputModel, ListDashboardsInputModel, ListDashboardsOutputModel, WidgetModel } from "./dashboard.schema.js";
3
- import { AddWidgetContract, CreateDashboardContract, GetDashboardContract, ListDashboardsContract } from "./dashboard.contracts.js";
3
+ import { AddWidgetContract, CreateDashboardContract, GetDashboardContract, ListDashboardsContract } from "./dashboard.operation.js";
4
4
 
5
5
  export { AddWidgetContract, AddWidgetInputModel, CreateDashboardContract, CreateDashboardInputModel, DashboardModel, DashboardStatusEnum, GetDashboardContract, GetDashboardInputModel, ListDashboardsContract, ListDashboardsInputModel, ListDashboardsOutputModel, RefreshIntervalEnum, WidgetModel, WidgetTypeEnum };
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { AnalyticsDashboardFeature } from "./dashboard.feature.js";
2
2
  import { QueryTypeEnum } from "./query/query.enum.js";
3
3
  import { CreateQueryInputModel, ExecuteQueryInputModel, QueryModel, QueryResultModel } from "./query/query.schema.js";
4
- import { CreateQueryContract, ExecuteQueryContract } from "./query/query.contracts.js";
4
+ import { CreateQueryContract, ExecuteQueryContract } from "./query/query.operation.js";
5
5
  import { AggregationDefinition, BasicQueryEngine, ColumnDefinition, CustomQueryDefinition, DimensionDefinition, FilterDefinition, IQueryCache, IQueryEngine, InMemoryQueryCache, MeasureDefinition, OrderByDefinition, QueryDefinition, QueryParameters, QueryResult, createQueryEngine } from "./query-engine/index.js";
6
6
  export { AggregationDefinition, AnalyticsDashboardFeature, BasicQueryEngine, ColumnDefinition, CreateQueryContract, CreateQueryInputModel, CustomQueryDefinition, DimensionDefinition, ExecuteQueryContract, ExecuteQueryInputModel, FilterDefinition, IQueryCache, IQueryEngine, InMemoryQueryCache, MeasureDefinition, OrderByDefinition, QueryDefinition, QueryModel, QueryParameters, QueryResult, QueryResultModel, QueryTypeEnum, createQueryEngine };
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { AnalyticsDashboardFeature } from "./dashboard.feature.js";
2
2
  import { QueryTypeEnum } from "./query/query.enum.js";
3
3
  import { CreateQueryInputModel, ExecuteQueryInputModel, QueryModel, QueryResultModel } from "./query/query.schema.js";
4
- import { CreateQueryContract, ExecuteQueryContract } from "./query/query.contracts.js";
4
+ import { CreateQueryContract, ExecuteQueryContract } from "./query/query.operation.js";
5
5
  import "./query/index.js";
6
6
  import { BasicQueryEngine, InMemoryQueryCache, createQueryEngine } from "./query-engine/index.js";
7
7
 
@@ -3,8 +3,8 @@ import { registerDocBlocks } from "../../registry.js";
3
3
  //#region ../../libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js
4
4
  const tech_contracts_openapi_export_DocBlocks = [{
5
5
  id: "docs.tech.contracts.openapi-export",
6
- title: "OpenAPI export (OpenAPI 3.1) from SpecRegistry",
7
- summary: "Generate a deterministic OpenAPI document from a SpecRegistry using jsonSchemaForSpec + REST transport metadata.",
6
+ title: "OpenAPI export (OpenAPI 3.1) from OperationSpecRegistry",
7
+ summary: "Generate a deterministic OpenAPI document from a OperationSpecRegistry using jsonSchemaForSpec + REST transport metadata.",
8
8
  kind: "reference",
9
9
  visibility: "public",
10
10
  route: "/docs/tech/contracts/openapi-export",
@@ -13,7 +13,7 @@ const tech_contracts_openapi_export_DocBlocks = [{
13
13
  "openapi",
14
14
  "rest"
15
15
  ],
16
- body: `## OpenAPI export (OpenAPI 3.1) from SpecRegistry
16
+ body: `## OpenAPI export (OpenAPI 3.1) from OperationSpecRegistry
17
17
 
18
18
  ### Purpose
19
19
 
@@ -42,9 +42,9 @@ contractspec openapi --registry ./src/registry.ts --out ./openapi.json
42
42
 
43
43
  The registry module must export one of:
44
44
 
45
- - \`registry: SpecRegistry\`
46
- - \`default(): SpecRegistry | Promise<SpecRegistry>\`
47
- - \`createRegistry(): SpecRegistry | Promise<SpecRegistry>\`
45
+ - \`registry: OperationSpecRegistry\`
46
+ - \`default(): OperationSpecRegistry | Promise<OperationSpecRegistry>\`
47
+ - \`createRegistry(): OperationSpecRegistry | Promise<OperationSpecRegistry>\`
48
48
 
49
49
  ### Notes / limitations (current)
50
50
 
@@ -1 +1 @@
1
- {"version":3,"file":"openapi-export.docblock.js","names":[],"sources":["../../../../../../../../../libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js"],"sourcesContent":["import { registerDocBlocks } from \"../../registry.js\";\n\n//#region src/docs/tech/contracts/openapi-export.docblock.ts\nconst tech_contracts_openapi_export_DocBlocks = [{\n\tid: \"docs.tech.contracts.openapi-export\",\n\ttitle: \"OpenAPI export (OpenAPI 3.1) from SpecRegistry\",\n\tsummary: \"Generate a deterministic OpenAPI document from a SpecRegistry using jsonSchemaForSpec + REST transport metadata.\",\n\tkind: \"reference\",\n\tvisibility: \"public\",\n\troute: \"/docs/tech/contracts/openapi-export\",\n\ttags: [\n\t\t\"contracts\",\n\t\t\"openapi\",\n\t\t\"rest\"\n\t],\n\tbody: `## OpenAPI export (OpenAPI 3.1) from SpecRegistry\n\n### Purpose\n\nContractSpec specs can be exported into an **OpenAPI 3.1** document for tooling (SDK generation, docs, gateways).\n\nThe export is **spec-first**:\n\n- Uses \\`jsonSchemaForSpec(spec)\\` for input/output JSON Schema (from SchemaModel → zod → JSON Schema)\n- Uses \\`spec.transport.rest.method/path\\` when present\n- Falls back to deterministic defaults:\n - Method: \\`POST\\` for commands, \\`GET\\` for queries\n - Path: \\`defaultRestPath(name, version)\\` → \\`/<dot/name>/v<version>\\`\n\n### Library API\n\n- Function: \\`openApiForRegistry(registry, options?)\\`\n- Location: \\`@lssm/lib.contracts/openapi\\`\n\n### CLI\n\nExport OpenAPI from a registry module:\n\n\\`\\`\\`bash\ncontractspec openapi --registry ./src/registry.ts --out ./openapi.json\n\\`\\`\\`\n\nThe registry module must export one of:\n\n- \\`registry: SpecRegistry\\`\n- \\`default(): SpecRegistry | Promise<SpecRegistry>\\`\n- \\`createRegistry(): SpecRegistry | Promise<SpecRegistry>\\`\n\n### Notes / limitations (current)\n\n- Responses are generated as a basic \\`200\\` response (plus schemas when available).\n- Query (GET) inputs are currently represented as a JSON request body when an input schema exists.\n- Errors are not yet expanded into OpenAPI responses; that will be added when we standardize error envelopes.`\n}];\nregisterDocBlocks(tech_contracts_openapi_export_DocBlocks);\n\n//#endregion\nexport { tech_contracts_openapi_export_DocBlocks };"],"mappings":";;;AAGA,MAAM,0CAA0C,CAAC;CAChD,IAAI;CACJ,OAAO;CACP,SAAS;CACT,MAAM;CACN,YAAY;CACZ,OAAO;CACP,MAAM;EACL;EACA;EACA;EACA;CACD,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCN,CAAC;AACF,kBAAkB,wCAAwC"}
1
+ {"version":3,"file":"openapi-export.docblock.js","names":[],"sources":["../../../../../../../../../libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js"],"sourcesContent":["import { registerDocBlocks } from \"../../registry.js\";\n\n//#region src/docs/tech/contracts/openapi-export.docblock.ts\nconst tech_contracts_openapi_export_DocBlocks = [{\n\tid: \"docs.tech.contracts.openapi-export\",\n\ttitle: \"OpenAPI export (OpenAPI 3.1) from OperationSpecRegistry\",\n\tsummary: \"Generate a deterministic OpenAPI document from a OperationSpecRegistry using jsonSchemaForSpec + REST transport metadata.\",\n\tkind: \"reference\",\n\tvisibility: \"public\",\n\troute: \"/docs/tech/contracts/openapi-export\",\n\ttags: [\n\t\t\"contracts\",\n\t\t\"openapi\",\n\t\t\"rest\"\n\t],\n\tbody: `## OpenAPI export (OpenAPI 3.1) from OperationSpecRegistry\n\n### Purpose\n\nContractSpec specs can be exported into an **OpenAPI 3.1** document for tooling (SDK generation, docs, gateways).\n\nThe export is **spec-first**:\n\n- Uses \\`jsonSchemaForSpec(spec)\\` for input/output JSON Schema (from SchemaModel → zod → JSON Schema)\n- Uses \\`spec.transport.rest.method/path\\` when present\n- Falls back to deterministic defaults:\n - Method: \\`POST\\` for commands, \\`GET\\` for queries\n - Path: \\`defaultRestPath(name, version)\\` → \\`/<dot/name>/v<version>\\`\n\n### Library API\n\n- Function: \\`openApiForRegistry(registry, options?)\\`\n- Location: \\`@lssm/lib.contracts/openapi\\`\n\n### CLI\n\nExport OpenAPI from a registry module:\n\n\\`\\`\\`bash\ncontractspec openapi --registry ./src/registry.ts --out ./openapi.json\n\\`\\`\\`\n\nThe registry module must export one of:\n\n- \\`registry: OperationSpecRegistry\\`\n- \\`default(): OperationSpecRegistry | Promise<OperationSpecRegistry>\\`\n- \\`createRegistry(): OperationSpecRegistry | Promise<OperationSpecRegistry>\\`\n\n### Notes / limitations (current)\n\n- Responses are generated as a basic \\`200\\` response (plus schemas when available).\n- Query (GET) inputs are currently represented as a JSON request body when an input schema exists.\n- Errors are not yet expanded into OpenAPI responses; that will be added when we standardize error envelopes.`\n}];\nregisterDocBlocks(tech_contracts_openapi_export_DocBlocks);\n\n//#endregion\nexport { tech_contracts_openapi_export_DocBlocks };"],"mappings":";;;AAGA,MAAM,0CAA0C,CAAC;CAChD,IAAI;CACJ,OAAO;CACP,SAAS;CACT,MAAM;CACN,YAAY;CACZ,OAAO;CACP,MAAM;EACL;EACA;EACA;EACA;CACD,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCN,CAAC;AACF,kBAAkB,wCAAwC"}