@gloocan/cat-inspector 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/dist/artifact-helpers.d.ts +4 -0
  2. package/dist/artifact-helpers.d.ts.map +1 -0
  3. package/dist/artifact-helpers.js +21 -0
  4. package/dist/artifact-helpers.js.map +1 -0
  5. package/dist/ast/get-all-ts-files.d.ts +5 -0
  6. package/dist/ast/get-all-ts-files.d.ts.map +1 -0
  7. package/dist/ast/get-all-ts-files.js +36 -0
  8. package/dist/ast/get-all-ts-files.js.map +1 -0
  9. package/dist/ast/merge-ast.d.ts +3 -0
  10. package/dist/ast/merge-ast.d.ts.map +1 -0
  11. package/dist/ast/merge-ast.js +40 -0
  12. package/dist/ast/merge-ast.js.map +1 -0
  13. package/dist/ast/run-ast-scanner.d.ts +15 -0
  14. package/dist/ast/run-ast-scanner.d.ts.map +1 -0
  15. package/dist/ast/run-ast-scanner.js +44 -0
  16. package/dist/ast/run-ast-scanner.js.map +1 -0
  17. package/dist/ast/scan-for-labels.d.ts +20 -0
  18. package/dist/ast/scan-for-labels.d.ts.map +1 -0
  19. package/dist/ast/scan-for-labels.js +88 -0
  20. package/dist/ast/scan-for-labels.js.map +1 -0
  21. package/dist/ast/scan-for-returns.d.ts +13 -0
  22. package/dist/ast/scan-for-returns.d.ts.map +1 -0
  23. package/dist/ast/scan-for-returns.js +48 -0
  24. package/dist/ast/scan-for-returns.js.map +1 -0
  25. package/dist/ast/type-expand.d.ts +16 -0
  26. package/dist/ast/type-expand.d.ts.map +1 -0
  27. package/dist/ast/type-expand.js +118 -0
  28. package/dist/ast/type-expand.js.map +1 -0
  29. package/dist/ast/visit-node.d.ts +31 -0
  30. package/dist/ast/visit-node.d.ts.map +1 -0
  31. package/dist/ast/visit-node.js +298 -0
  32. package/dist/ast/visit-node.js.map +1 -0
  33. package/dist/bootstrap.d.ts +105 -0
  34. package/dist/bootstrap.d.ts.map +1 -0
  35. package/dist/bootstrap.js +121 -0
  36. package/dist/bootstrap.js.map +1 -0
  37. package/dist/catalog-bootstrap-cache.d.ts +23 -0
  38. package/dist/catalog-bootstrap-cache.d.ts.map +1 -0
  39. package/dist/catalog-bootstrap-cache.js +54 -0
  40. package/dist/catalog-bootstrap-cache.js.map +1 -0
  41. package/dist/catalog-fingerprint.d.ts +20 -0
  42. package/dist/catalog-fingerprint.d.ts.map +1 -0
  43. package/dist/catalog-fingerprint.js +57 -0
  44. package/dist/catalog-fingerprint.js.map +1 -0
  45. package/dist/coverage/compute-coverage.d.ts +41 -0
  46. package/dist/coverage/compute-coverage.d.ts.map +1 -0
  47. package/dist/coverage/compute-coverage.js +229 -0
  48. package/dist/coverage/compute-coverage.js.map +1 -0
  49. package/dist/coverage/scan-all-service-candidates.d.ts +15 -0
  50. package/dist/coverage/scan-all-service-candidates.d.ts.map +1 -0
  51. package/dist/coverage/scan-all-service-candidates.js +73 -0
  52. package/dist/coverage/scan-all-service-candidates.js.map +1 -0
  53. package/dist/coverage/scan-express-candidates.d.ts +17 -0
  54. package/dist/coverage/scan-express-candidates.d.ts.map +1 -0
  55. package/dist/coverage/scan-express-candidates.js +300 -0
  56. package/dist/coverage/scan-express-candidates.js.map +1 -0
  57. package/dist/coverage/scan-reachable-services.d.ts +13 -0
  58. package/dist/coverage/scan-reachable-services.d.ts.map +1 -0
  59. package/dist/coverage/scan-reachable-services.js +469 -0
  60. package/dist/coverage/scan-reachable-services.js.map +1 -0
  61. package/dist/coverage/types.d.ts +32 -0
  62. package/dist/coverage/types.d.ts.map +1 -0
  63. package/dist/coverage/types.js +2 -0
  64. package/dist/coverage/types.js.map +1 -0
  65. package/dist/decorators/cat-class.d.ts +11 -0
  66. package/dist/decorators/cat-class.d.ts.map +1 -0
  67. package/dist/decorators/cat-class.js +20 -0
  68. package/dist/decorators/cat-class.js.map +1 -0
  69. package/dist/decorators/cat.d.ts +3 -0
  70. package/dist/decorators/cat.d.ts.map +1 -0
  71. package/dist/decorators/cat.js +102 -0
  72. package/dist/decorators/cat.js.map +1 -0
  73. package/dist/express-inspector-correlation.d.ts +23 -0
  74. package/dist/express-inspector-correlation.d.ts.map +1 -0
  75. package/dist/express-inspector-correlation.js +50 -0
  76. package/dist/express-inspector-correlation.js.map +1 -0
  77. package/dist/express-playground-mocks.d.ts +28 -0
  78. package/dist/express-playground-mocks.d.ts.map +1 -0
  79. package/dist/express-playground-mocks.js +55 -0
  80. package/dist/express-playground-mocks.js.map +1 -0
  81. package/dist/express-qa-host-minio-upload.d.ts +16 -0
  82. package/dist/express-qa-host-minio-upload.d.ts.map +1 -0
  83. package/dist/express-qa-host-minio-upload.js +56 -0
  84. package/dist/express-qa-host-minio-upload.js.map +1 -0
  85. package/dist/express.d.ts +21 -0
  86. package/dist/express.d.ts.map +1 -0
  87. package/dist/express.js +167 -0
  88. package/dist/express.js.map +1 -0
  89. package/dist/functional.d.ts +15 -0
  90. package/dist/functional.d.ts.map +1 -0
  91. package/dist/functional.js +165 -0
  92. package/dist/functional.js.map +1 -0
  93. package/dist/graph/relationships.d.ts +9 -0
  94. package/dist/graph/relationships.d.ts.map +1 -0
  95. package/dist/graph/relationships.js +92 -0
  96. package/dist/graph/relationships.js.map +1 -0
  97. package/dist/http-bridge-registry.d.ts +26 -0
  98. package/dist/http-bridge-registry.d.ts.map +1 -0
  99. package/dist/http-bridge-registry.js +39 -0
  100. package/dist/http-bridge-registry.js.map +1 -0
  101. package/dist/index.d.ts +36 -0
  102. package/dist/index.d.ts.map +1 -0
  103. package/dist/index.js +35 -0
  104. package/dist/index.js.map +1 -0
  105. package/dist/invoke-policy.d.ts +34 -0
  106. package/dist/invoke-policy.d.ts.map +1 -0
  107. package/dist/invoke-policy.js +72 -0
  108. package/dist/invoke-policy.js.map +1 -0
  109. package/dist/invoke-runtime-config.d.ts +4 -0
  110. package/dist/invoke-runtime-config.d.ts.map +1 -0
  111. package/dist/invoke-runtime-config.js +15 -0
  112. package/dist/invoke-runtime-config.js.map +1 -0
  113. package/dist/jobs/in-memory-job-registry.d.ts +21 -0
  114. package/dist/jobs/in-memory-job-registry.d.ts.map +1 -0
  115. package/dist/jobs/in-memory-job-registry.js +44 -0
  116. package/dist/jobs/in-memory-job-registry.js.map +1 -0
  117. package/dist/logger.d.ts +9 -0
  118. package/dist/logger.d.ts.map +1 -0
  119. package/dist/logger.js +17 -0
  120. package/dist/logger.js.map +1 -0
  121. package/dist/openapi/registry-to-openapi.d.ts +11 -0
  122. package/dist/openapi/registry-to-openapi.d.ts.map +1 -0
  123. package/dist/openapi/registry-to-openapi.js +61 -0
  124. package/dist/openapi/registry-to-openapi.js.map +1 -0
  125. package/dist/registry-state.d.ts +107 -0
  126. package/dist/registry-state.d.ts.map +1 -0
  127. package/dist/registry-state.js +302 -0
  128. package/dist/registry-state.js.map +1 -0
  129. package/dist/return.d.ts +14 -0
  130. package/dist/return.d.ts.map +1 -0
  131. package/dist/return.js +107 -0
  132. package/dist/return.js.map +1 -0
  133. package/dist/rpc.d.ts +7 -0
  134. package/dist/rpc.d.ts.map +1 -0
  135. package/dist/rpc.js +287 -0
  136. package/dist/rpc.js.map +1 -0
  137. package/dist/serialize-rpc-result.d.ts +38 -0
  138. package/dist/serialize-rpc-result.d.ts.map +1 -0
  139. package/dist/serialize-rpc-result.js +132 -0
  140. package/dist/serialize-rpc-result.js.map +1 -0
  141. package/dist/session-store.d.ts +9 -0
  142. package/dist/session-store.d.ts.map +1 -0
  143. package/dist/session-store.js +19 -0
  144. package/dist/session-store.js.map +1 -0
  145. package/dist/source-utils.d.ts +19 -0
  146. package/dist/source-utils.d.ts.map +1 -0
  147. package/dist/source-utils.js +65 -0
  148. package/dist/source-utils.js.map +1 -0
  149. package/dist/transport/remote-bridge-cli.d.ts +2 -0
  150. package/dist/transport/remote-bridge-cli.d.ts.map +1 -0
  151. package/dist/transport/remote-bridge-cli.js +12 -0
  152. package/dist/transport/remote-bridge-cli.js.map +1 -0
  153. package/dist/transport/remote-inspector-bridge.d.ts +18 -0
  154. package/dist/transport/remote-inspector-bridge.d.ts.map +1 -0
  155. package/dist/transport/remote-inspector-bridge.js +71 -0
  156. package/dist/transport/remote-inspector-bridge.js.map +1 -0
  157. package/dist/transport/socket-io-playground.d.ts +78 -0
  158. package/dist/transport/socket-io-playground.d.ts.map +1 -0
  159. package/dist/transport/socket-io-playground.js +875 -0
  160. package/dist/transport/socket-io-playground.js.map +1 -0
  161. package/dist/transport/socket-io.d.ts +4 -0
  162. package/dist/transport/socket-io.d.ts.map +1 -0
  163. package/dist/transport/socket-io.js +4 -0
  164. package/dist/transport/socket-io.js.map +1 -0
  165. package/dist/transport/ws-server.d.ts +42 -0
  166. package/dist/transport/ws-server.d.ts.map +1 -0
  167. package/dist/transport/ws-server.js +429 -0
  168. package/dist/transport/ws-server.js.map +1 -0
  169. package/dist/type-string-normalize.d.ts +24 -0
  170. package/dist/type-string-normalize.d.ts.map +1 -0
  171. package/dist/type-string-normalize.js +178 -0
  172. package/dist/type-string-normalize.js.map +1 -0
  173. package/dist/types.d.ts +218 -0
  174. package/dist/types.d.ts.map +1 -0
  175. package/dist/types.js +2 -0
  176. package/dist/types.js.map +1 -0
  177. package/dist/upload/fetch-file-url.d.ts +24 -0
  178. package/dist/upload/fetch-file-url.d.ts.map +1 -0
  179. package/dist/upload/fetch-file-url.js +130 -0
  180. package/dist/upload/fetch-file-url.js.map +1 -0
  181. package/dist/upload/host-minio-client.d.ts +30 -0
  182. package/dist/upload/host-minio-client.d.ts.map +1 -0
  183. package/dist/upload/host-minio-client.js +56 -0
  184. package/dist/upload/host-minio-client.js.map +1 -0
  185. package/dist/upload/materialize.d.ts +110 -0
  186. package/dist/upload/materialize.d.ts.map +1 -0
  187. package/dist/upload/materialize.js +466 -0
  188. package/dist/upload/materialize.js.map +1 -0
  189. package/dist/upload/upload-store.d.ts +44 -0
  190. package/dist/upload/upload-store.d.ts.map +1 -0
  191. package/dist/upload/upload-store.js +86 -0
  192. package/dist/upload/upload-store.js.map +1 -0
  193. package/dist/validate-params-json-schema.d.ts +13 -0
  194. package/dist/validate-params-json-schema.d.ts.map +1 -0
  195. package/dist/validate-params-json-schema.js +37 -0
  196. package/dist/validate-params-json-schema.js.map +1 -0
  197. package/dist/validate-return-json-schema.d.ts +9 -0
  198. package/dist/validate-return-json-schema.d.ts.map +1 -0
  199. package/dist/validate-return-json-schema.js +33 -0
  200. package/dist/validate-return-json-schema.js.map +1 -0
  201. package/package.json +63 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"materialize.js","sourceRoot":"","sources":["../../src/upload/materialize.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ export type UploadMeta = {
2
+ uploadId: string;
3
+ socketId: string;
4
+ filename: string;
5
+ contentType: string;
6
+ sizeBytes: number;
7
+ };
8
+ export type CompletedUpload = UploadMeta & {
9
+ buffer: Buffer;
10
+ receivedBytes: number;
11
+ createdAtMs: number;
12
+ };
13
+ export type UploadStartInput = Omit<UploadMeta, 'uploadId' | 'socketId'> & {
14
+ uploadId?: string;
15
+ };
16
+ export type UploadLimits = {
17
+ maxSizeBytes: number;
18
+ idleTimeoutMs: number;
19
+ };
20
+ /**
21
+ * Minimal in-memory upload store keyed by uploadId, scoped to a Socket.IO connection.
22
+ * Designed for QA uploads (not production-scale storage).
23
+ */
24
+ export declare class InMemoryUploadStore {
25
+ private readonly limits;
26
+ private activeBySocketId;
27
+ private completedByUploadId;
28
+ constructor(limits: UploadLimits);
29
+ start(socketId: string, input: UploadStartInput): UploadMeta;
30
+ writeChunk(socketId: string, chunk: Buffer): {
31
+ uploadId: string;
32
+ receivedBytes: number;
33
+ };
34
+ finish(socketId: string, uploadId: string): CompletedUpload;
35
+ /**
36
+ * Lookup an upload for materialization. Enforces socket ownership.
37
+ * When consume=true, the upload is removed after read (single-use).
38
+ */
39
+ get(socketId: string, uploadId: string, options?: {
40
+ consume?: boolean;
41
+ }): CompletedUpload | null;
42
+ abort(socketId: string): void;
43
+ }
44
+ //# sourceMappingURL=upload-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload-store.d.ts","sourceRoot":"","sources":["../../src/upload/upload-store.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG;IAC1C,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAAC,GAAG;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;CACrB,CAAA;AAQD;;;GAGG;AACH,qBAAa,mBAAmB;IAInB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHnC,OAAO,CAAC,gBAAgB,CAAkC;IAC1D,OAAO,CAAC,mBAAmB,CAAqC;gBAEnC,MAAM,EAAE,YAAY;IAEjD,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,UAAU;IAqB5D,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE;IAYxF,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,eAAe;IAkB3D;;;OAGG;IACH,GAAG,CACF,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAC7B,eAAe,GAAG,IAAI;IAQzB,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;CAG7B"}
@@ -0,0 +1,86 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ /**
3
+ * Minimal in-memory upload store keyed by uploadId, scoped to a Socket.IO connection.
4
+ * Designed for QA uploads (not production-scale storage).
5
+ */
6
+ export class InMemoryUploadStore {
7
+ limits;
8
+ activeBySocketId = new Map();
9
+ completedByUploadId = new Map();
10
+ constructor(limits) {
11
+ this.limits = limits;
12
+ }
13
+ start(socketId, input) {
14
+ const uploadId = input.uploadId ?? randomUUID();
15
+ const meta = {
16
+ uploadId,
17
+ socketId,
18
+ filename: input.filename,
19
+ contentType: input.contentType,
20
+ sizeBytes: input.sizeBytes,
21
+ };
22
+ if (meta.sizeBytes > this.limits.maxSizeBytes) {
23
+ throw new Error(`upload_too_large: ${meta.sizeBytes} > ${this.limits.maxSizeBytes}`);
24
+ }
25
+ this.activeBySocketId.set(socketId, {
26
+ ...meta,
27
+ receivedBytes: 0,
28
+ lastChunkAtMs: Date.now(),
29
+ chunks: [],
30
+ });
31
+ return meta;
32
+ }
33
+ writeChunk(socketId, chunk) {
34
+ const active = this.activeBySocketId.get(socketId);
35
+ if (!active)
36
+ throw new Error('no_active_upload');
37
+ const nextBytes = active.receivedBytes + chunk.byteLength;
38
+ if (nextBytes > active.sizeBytes)
39
+ throw new Error('upload_exceeds_declared_size');
40
+ if (nextBytes > this.limits.maxSizeBytes)
41
+ throw new Error('upload_exceeds_max_size');
42
+ active.receivedBytes = nextBytes;
43
+ active.lastChunkAtMs = Date.now();
44
+ active.chunks.push(chunk);
45
+ return { uploadId: active.uploadId, receivedBytes: active.receivedBytes };
46
+ }
47
+ finish(socketId, uploadId) {
48
+ const active = this.activeBySocketId.get(socketId);
49
+ if (!active)
50
+ throw new Error('no_active_upload');
51
+ if (active.uploadId !== uploadId)
52
+ throw new Error('upload_id_mismatch');
53
+ const now = Date.now();
54
+ if (now - active.lastChunkAtMs > this.limits.idleTimeoutMs)
55
+ throw new Error('upload_idle_timeout');
56
+ if (active.receivedBytes !== active.sizeBytes)
57
+ throw new Error('upload_incomplete');
58
+ const buffer = Buffer.concat(active.chunks, active.receivedBytes);
59
+ const completed = {
60
+ ...active,
61
+ buffer,
62
+ createdAtMs: now,
63
+ };
64
+ this.activeBySocketId.delete(socketId);
65
+ this.completedByUploadId.set(uploadId, completed);
66
+ return completed;
67
+ }
68
+ /**
69
+ * Lookup an upload for materialization. Enforces socket ownership.
70
+ * When consume=true, the upload is removed after read (single-use).
71
+ */
72
+ get(socketId, uploadId, options) {
73
+ const u = this.completedByUploadId.get(uploadId);
74
+ if (!u)
75
+ return null;
76
+ if (u.socketId !== socketId)
77
+ return null;
78
+ if (options?.consume)
79
+ this.completedByUploadId.delete(uploadId);
80
+ return u;
81
+ }
82
+ abort(socketId) {
83
+ this.activeBySocketId.delete(socketId);
84
+ }
85
+ }
86
+ //# sourceMappingURL=upload-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload-store.js","sourceRoot":"","sources":["../../src/upload/upload-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Validate the positional `args` array (after arity and file materialization) against
3
+ * a single JSON Schema for the whole tuple (draft-07 subset).
4
+ */
5
+ export declare function validateArgsAgainstParamsJsonSchema(fnKey: string, schema: Record<string, unknown>, args: unknown[]): {
6
+ ok: true;
7
+ } | {
8
+ ok: false;
9
+ message: string;
10
+ };
11
+ /** Test-only: drop compiled schema cache */
12
+ export declare function resetParamsJsonSchemaValidators(): void;
13
+ //# sourceMappingURL=validate-params-json-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-params-json-schema.d.ts","sourceRoot":"","sources":["../src/validate-params-json-schema.ts"],"names":[],"mappings":"AASA;;;GAGG;AACH,wBAAgB,mCAAmC,CAClD,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,OAAO,EAAE,GACb;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAmB/C;AAED,4CAA4C;AAC5C,wBAAgB,+BAA+B,IAAI,IAAI,CAEtD"}
@@ -0,0 +1,37 @@
1
+ import { Ajv } from 'ajv';
2
+ const ajv = new Ajv({ allErrors: true, strict: false });
3
+ const compiled = new Map();
4
+ function keyFor(schema) {
5
+ return JSON.stringify(schema);
6
+ }
7
+ /**
8
+ * Validate the positional `args` array (after arity and file materialization) against
9
+ * a single JSON Schema for the whole tuple (draft-07 subset).
10
+ */
11
+ export function validateArgsAgainstParamsJsonSchema(fnKey, schema, args) {
12
+ const k = keyFor(schema);
13
+ let validate = compiled.get(k);
14
+ if (validate === undefined) {
15
+ try {
16
+ const compiledFn = ajv.compile(schema);
17
+ compiled.set(k, compiledFn);
18
+ validate = compiledFn;
19
+ }
20
+ catch (e) {
21
+ const msg = e instanceof Error ? e.message : 'invalid schema';
22
+ return { ok: false, message: `paramsJsonSchema compile failed for ${fnKey}: ${msg}` };
23
+ }
24
+ }
25
+ if (validate(args))
26
+ return { ok: true };
27
+ const errs = validate.errors?.map((x) => `${x.instancePath || '/'} ${x.message}`).join('; ');
28
+ return {
29
+ ok: false,
30
+ message: `paramsJsonSchema validation failed for ${fnKey}${errs ? `: ${errs}` : ''}`,
31
+ };
32
+ }
33
+ /** Test-only: drop compiled schema cache */
34
+ export function resetParamsJsonSchemaValidators() {
35
+ compiled.clear();
36
+ }
37
+ //# sourceMappingURL=validate-params-json-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-params-json-schema.js","sourceRoot":"","sources":["../src/validate-params-json-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAyB,MAAM,KAAK,CAAA;AAEhD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;AACvD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAA;AAEpD,SAAS,MAAM,CAAC,MAA+B;IAC9C,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;AAC9B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mCAAmC,CAClD,KAAa,EACb,MAA+B,EAC/B,IAAe;IAEf,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IACxB,IAAI,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAC9B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC5B,IAAI,CAAC;YACJ,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YACtC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;YAC3B,QAAQ,GAAG,UAAU,CAAA;QACtB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAA;YAC7D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,uCAAuC,KAAK,KAAK,GAAG,EAAE,EAAE,CAAA;QACtF,CAAC;IACF,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;IACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,YAAY,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC5F,OAAO;QACN,EAAE,EAAE,KAAK;QACT,OAAO,EAAE,0CAA0C,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;KACpF,CAAA;AACF,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,+BAA+B;IAC9C,QAAQ,CAAC,KAAK,EAAE,CAAA;AACjB,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare function validateResultAgainstReturnJsonSchema(fnKey: string, schema: Record<string, unknown>, data: unknown): {
2
+ ok: true;
3
+ } | {
4
+ ok: false;
5
+ message: string;
6
+ };
7
+ /** Test-only: drop compiled schema cache */
8
+ export declare function resetReturnJsonSchemaValidators(): void;
9
+ //# sourceMappingURL=validate-return-json-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-return-json-schema.d.ts","sourceRoot":"","sources":["../src/validate-return-json-schema.ts"],"names":[],"mappings":"AASA,wBAAgB,qCAAqC,CACpD,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,OAAO,GACX;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAmB/C;AAED,4CAA4C;AAC5C,wBAAgB,+BAA+B,IAAI,IAAI,CAEtD"}
@@ -0,0 +1,33 @@
1
+ import { Ajv } from 'ajv';
2
+ const ajv = new Ajv({ allErrors: true, strict: false });
3
+ const compiled = new Map();
4
+ function keyFor(schema) {
5
+ return JSON.stringify(schema);
6
+ }
7
+ export function validateResultAgainstReturnJsonSchema(fnKey, schema, data) {
8
+ const k = keyFor(schema);
9
+ let validate = compiled.get(k);
10
+ if (validate === undefined) {
11
+ try {
12
+ const compiledFn = ajv.compile(schema);
13
+ compiled.set(k, compiledFn);
14
+ validate = compiledFn;
15
+ }
16
+ catch (e) {
17
+ const msg = e instanceof Error ? e.message : 'invalid schema';
18
+ return { ok: false, message: `returnJsonSchema compile failed for ${fnKey}: ${msg}` };
19
+ }
20
+ }
21
+ if (validate(data))
22
+ return { ok: true };
23
+ const errs = validate.errors?.map((x) => `${x.instancePath || '/'} ${x.message}`).join('; ');
24
+ return {
25
+ ok: false,
26
+ message: `returnJsonSchema validation failed for ${fnKey}${errs ? `: ${errs}` : ''}`,
27
+ };
28
+ }
29
+ /** Test-only: drop compiled schema cache */
30
+ export function resetReturnJsonSchemaValidators() {
31
+ compiled.clear();
32
+ }
33
+ //# sourceMappingURL=validate-return-json-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-return-json-schema.js","sourceRoot":"","sources":["../src/validate-return-json-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAyB,MAAM,KAAK,CAAA;AAEhD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;AACvD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAA;AAEpD,SAAS,MAAM,CAAC,MAA+B;IAC9C,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,qCAAqC,CACpD,KAAa,EACb,MAA+B,EAC/B,IAAa;IAEb,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IACxB,IAAI,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAC9B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC5B,IAAI,CAAC;YACJ,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YACtC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;YAC3B,QAAQ,GAAG,UAAU,CAAA;QACtB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAA;YAC7D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,uCAAuC,KAAK,KAAK,GAAG,EAAE,EAAE,CAAA;QACtF,CAAC;IACF,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;IACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,YAAY,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC5F,OAAO;QACN,EAAE,EAAE,KAAK;QACT,OAAO,EAAE,0CAA0C,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;KACpF,CAAA;AACF,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,+BAA+B;IAC9C,QAAQ,CAAC,KAAK,EAAE,CAAA;AACjB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,63 @@
1
+ {
2
+ "name": "@gloocan/cat-inspector",
3
+ "version": "0.1.1",
4
+ "description": "TypeScript @Cat decorator, Return() paths, AST metadata, WebSocket inspector",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ },
13
+ "./socket-io": {
14
+ "types": "./dist/transport/socket-io.d.ts",
15
+ "import": "./dist/transport/socket-io.js"
16
+ }
17
+ },
18
+ "files": [
19
+ "dist"
20
+ ],
21
+ "scripts": {
22
+ "build": "tsc -p tsconfig.build.json",
23
+ "typecheck": "tsc --noEmit -p tsconfig.json",
24
+ "clean": "rm -rf dist",
25
+ "prepublishOnly": "npm run build",
26
+ "test": "npm run typecheck && vitest run"
27
+ },
28
+ "keywords": [
29
+ "typescript",
30
+ "decorators",
31
+ "inspector",
32
+ "websocket"
33
+ ],
34
+ "license": "MIT",
35
+ "dependencies": {
36
+ "ajv": "^8.18.0",
37
+ "reflect-metadata": "^0.2.2",
38
+ "ws": "^8.18.0"
39
+ },
40
+ "peerDependencies": {
41
+ "express": ">=4.18.0",
42
+ "minio": ">=8.0.0",
43
+ "socket.io": ">=4.8.0"
44
+ },
45
+ "peerDependenciesMeta": {
46
+ "minio": {
47
+ "optional": true
48
+ },
49
+ "socket.io": {
50
+ "optional": true
51
+ }
52
+ },
53
+ "devDependencies": {
54
+ "@types/express": "^4.17.22",
55
+ "@types/node": "^22.10.0",
56
+ "@types/ws": "^8.5.13",
57
+ "express": "^4.21.2",
58
+ "minio": "^8.0.7",
59
+ "socket.io": "^4.8.1",
60
+ "typescript": "~5.7.0",
61
+ "vitest": "^3.0.5"
62
+ }
63
+ }