foon-sdk 1.0.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.
Files changed (219) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +574 -0
  3. package/dist/cache/LRUCache.d.ts +36 -0
  4. package/dist/cache/LRUCache.d.ts.map +1 -0
  5. package/dist/cache/LRUCache.js +54 -0
  6. package/dist/cache/LRUCache.js.map +1 -0
  7. package/dist/cache/cache-key-generator.d.ts +9 -0
  8. package/dist/cache/cache-key-generator.d.ts.map +1 -0
  9. package/dist/cache/cache-key-generator.js +50 -0
  10. package/dist/cache/cache-key-generator.js.map +1 -0
  11. package/dist/cache/index.d.ts +3 -0
  12. package/dist/cache/index.d.ts.map +1 -0
  13. package/dist/cache/index.js +21 -0
  14. package/dist/cache/index.js.map +1 -0
  15. package/dist/engine/MappingEngine.d.ts +29 -0
  16. package/dist/engine/MappingEngine.d.ts.map +1 -0
  17. package/dist/engine/MappingEngine.js +196 -0
  18. package/dist/engine/MappingEngine.js.map +1 -0
  19. package/dist/engine/executor.d.ts +15 -0
  20. package/dist/engine/executor.d.ts.map +1 -0
  21. package/dist/engine/executor.js +137 -0
  22. package/dist/engine/executor.js.map +1 -0
  23. package/dist/engine/index.d.ts +5 -0
  24. package/dist/engine/index.d.ts.map +1 -0
  25. package/dist/engine/index.js +23 -0
  26. package/dist/engine/index.js.map +1 -0
  27. package/dist/engine/jsonpath.d.ts +17 -0
  28. package/dist/engine/jsonpath.d.ts.map +1 -0
  29. package/dist/engine/jsonpath.js +73 -0
  30. package/dist/engine/jsonpath.js.map +1 -0
  31. package/dist/engine/type-converter.d.ts +12 -0
  32. package/dist/engine/type-converter.d.ts.map +1 -0
  33. package/dist/engine/type-converter.js +106 -0
  34. package/dist/engine/type-converter.js.map +1 -0
  35. package/dist/errors/error-factory.d.ts +30 -0
  36. package/dist/errors/error-factory.d.ts.map +1 -0
  37. package/dist/errors/error-factory.js +53 -0
  38. package/dist/errors/error-factory.js.map +1 -0
  39. package/dist/errors/index.d.ts +3 -0
  40. package/dist/errors/index.d.ts.map +1 -0
  41. package/dist/errors/index.js +22 -0
  42. package/dist/errors/index.js.map +1 -0
  43. package/dist/express/FonRouter.d.ts +56 -0
  44. package/dist/express/FonRouter.d.ts.map +1 -0
  45. package/dist/express/FonRouter.js +151 -0
  46. package/dist/express/FonRouter.js.map +1 -0
  47. package/dist/express/error-handler.d.ts +10 -0
  48. package/dist/express/error-handler.d.ts.map +1 -0
  49. package/dist/express/error-handler.js +55 -0
  50. package/dist/express/error-handler.js.map +1 -0
  51. package/dist/express/index.d.ts +33 -0
  52. package/dist/express/index.d.ts.map +1 -0
  53. package/dist/express/index.js +41 -0
  54. package/dist/express/index.js.map +1 -0
  55. package/dist/express/route-registry.d.ts +33 -0
  56. package/dist/express/route-registry.d.ts.map +1 -0
  57. package/dist/express/route-registry.js +52 -0
  58. package/dist/express/route-registry.js.map +1 -0
  59. package/dist/express/transform-middleware.d.ts +21 -0
  60. package/dist/express/transform-middleware.d.ts.map +1 -0
  61. package/dist/express/transform-middleware.js +62 -0
  62. package/dist/express/transform-middleware.js.map +1 -0
  63. package/dist/express/types.d.ts +73 -0
  64. package/dist/express/types.d.ts.map +1 -0
  65. package/dist/express/types.js +3 -0
  66. package/dist/express/types.js.map +1 -0
  67. package/dist/index.d.ts +11 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +29 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/providers/base/Provider.d.ts +17 -0
  72. package/dist/providers/base/Provider.d.ts.map +1 -0
  73. package/dist/providers/base/Provider.js +43 -0
  74. package/dist/providers/base/Provider.js.map +1 -0
  75. package/dist/providers/base/index.d.ts +3 -0
  76. package/dist/providers/base/index.d.ts.map +1 -0
  77. package/dist/providers/base/index.js +21 -0
  78. package/dist/providers/base/index.js.map +1 -0
  79. package/dist/providers/base/prompt-builder.d.ts +22 -0
  80. package/dist/providers/base/prompt-builder.d.ts.map +1 -0
  81. package/dist/providers/base/prompt-builder.js +105 -0
  82. package/dist/providers/base/prompt-builder.js.map +1 -0
  83. package/dist/providers/gemini/GeminiProvider.d.ts +16 -0
  84. package/dist/providers/gemini/GeminiProvider.d.ts.map +1 -0
  85. package/dist/providers/gemini/GeminiProvider.js +48 -0
  86. package/dist/providers/gemini/GeminiProvider.js.map +1 -0
  87. package/dist/providers/gemini/gemini-client.d.ts +16 -0
  88. package/dist/providers/gemini/gemini-client.d.ts.map +1 -0
  89. package/dist/providers/gemini/gemini-client.js +83 -0
  90. package/dist/providers/gemini/gemini-client.js.map +1 -0
  91. package/dist/providers/gemini/index.d.ts +3 -0
  92. package/dist/providers/gemini/index.d.ts.map +1 -0
  93. package/dist/providers/gemini/index.js +8 -0
  94. package/dist/providers/gemini/index.js.map +1 -0
  95. package/dist/providers/index.d.ts +6 -0
  96. package/dist/providers/index.d.ts.map +1 -0
  97. package/dist/providers/index.js +27 -0
  98. package/dist/providers/index.js.map +1 -0
  99. package/dist/providers/ollama/OllamaProvider.d.ts +17 -0
  100. package/dist/providers/ollama/OllamaProvider.d.ts.map +1 -0
  101. package/dist/providers/ollama/OllamaProvider.js +47 -0
  102. package/dist/providers/ollama/OllamaProvider.js.map +1 -0
  103. package/dist/providers/ollama/index.d.ts +3 -0
  104. package/dist/providers/ollama/index.d.ts.map +1 -0
  105. package/dist/providers/ollama/index.js +8 -0
  106. package/dist/providers/ollama/index.js.map +1 -0
  107. package/dist/providers/ollama/ollama-client.d.ts +17 -0
  108. package/dist/providers/ollama/ollama-client.d.ts.map +1 -0
  109. package/dist/providers/ollama/ollama-client.js +83 -0
  110. package/dist/providers/ollama/ollama-client.js.map +1 -0
  111. package/dist/providers/openai/OpenAIProvider.d.ts +16 -0
  112. package/dist/providers/openai/OpenAIProvider.d.ts.map +1 -0
  113. package/dist/providers/openai/OpenAIProvider.js +48 -0
  114. package/dist/providers/openai/OpenAIProvider.js.map +1 -0
  115. package/dist/providers/openai/index.d.ts +3 -0
  116. package/dist/providers/openai/index.d.ts.map +1 -0
  117. package/dist/providers/openai/index.js +8 -0
  118. package/dist/providers/openai/index.js.map +1 -0
  119. package/dist/providers/openai/openai-client.d.ts +16 -0
  120. package/dist/providers/openai/openai-client.d.ts.map +1 -0
  121. package/dist/providers/openai/openai-client.js +85 -0
  122. package/dist/providers/openai/openai-client.js.map +1 -0
  123. package/dist/schema/SchemaAdapter.d.ts +34 -0
  124. package/dist/schema/SchemaAdapter.d.ts.map +1 -0
  125. package/dist/schema/SchemaAdapter.js +59 -0
  126. package/dist/schema/SchemaAdapter.js.map +1 -0
  127. package/dist/schema/field-extractor.d.ts +10 -0
  128. package/dist/schema/field-extractor.d.ts.map +1 -0
  129. package/dist/schema/field-extractor.js +58 -0
  130. package/dist/schema/field-extractor.js.map +1 -0
  131. package/dist/schema/index.d.ts +5 -0
  132. package/dist/schema/index.d.ts.map +1 -0
  133. package/dist/schema/index.js +13 -0
  134. package/dist/schema/index.js.map +1 -0
  135. package/dist/schema/normalizer.d.ts +6 -0
  136. package/dist/schema/normalizer.d.ts.map +1 -0
  137. package/dist/schema/normalizer.js +17 -0
  138. package/dist/schema/normalizer.js.map +1 -0
  139. package/dist/schema/validator.d.ts +17 -0
  140. package/dist/schema/validator.d.ts.map +1 -0
  141. package/dist/schema/validator.js +50 -0
  142. package/dist/schema/validator.js.map +1 -0
  143. package/dist/security/index.d.ts +5 -0
  144. package/dist/security/index.d.ts.map +1 -0
  145. package/dist/security/index.js +21 -0
  146. package/dist/security/index.js.map +1 -0
  147. package/dist/security/input-validator.d.ts +6 -0
  148. package/dist/security/input-validator.d.ts.map +1 -0
  149. package/dist/security/input-validator.js +76 -0
  150. package/dist/security/input-validator.js.map +1 -0
  151. package/dist/security/prompt-sanitizer.d.ts +12 -0
  152. package/dist/security/prompt-sanitizer.d.ts.map +1 -0
  153. package/dist/security/prompt-sanitizer.js +66 -0
  154. package/dist/security/prompt-sanitizer.js.map +1 -0
  155. package/dist/security/redactor.d.ts +5 -0
  156. package/dist/security/redactor.d.ts.map +1 -0
  157. package/dist/security/redactor.js +37 -0
  158. package/dist/security/redactor.js.map +1 -0
  159. package/dist/security/security-config.d.ts +10 -0
  160. package/dist/security/security-config.d.ts.map +1 -0
  161. package/dist/security/security-config.js +26 -0
  162. package/dist/security/security-config.js.map +1 -0
  163. package/dist/trace/TraceBuilder.d.ts +58 -0
  164. package/dist/trace/TraceBuilder.d.ts.map +1 -0
  165. package/dist/trace/TraceBuilder.js +117 -0
  166. package/dist/trace/TraceBuilder.js.map +1 -0
  167. package/dist/trace/confidence-analyzer.d.ts +6 -0
  168. package/dist/trace/confidence-analyzer.d.ts.map +1 -0
  169. package/dist/trace/confidence-analyzer.js +30 -0
  170. package/dist/trace/confidence-analyzer.js.map +1 -0
  171. package/dist/trace/index.d.ts +4 -0
  172. package/dist/trace/index.d.ts.map +1 -0
  173. package/dist/trace/index.js +22 -0
  174. package/dist/trace/index.js.map +1 -0
  175. package/dist/trace/trace-utils.d.ts +20 -0
  176. package/dist/trace/trace-utils.d.ts.map +1 -0
  177. package/dist/trace/trace-utils.js +33 -0
  178. package/dist/trace/trace-utils.js.map +1 -0
  179. package/dist/transform.d.ts +30 -0
  180. package/dist/transform.d.ts.map +1 -0
  181. package/dist/transform.js +62 -0
  182. package/dist/transform.js.map +1 -0
  183. package/dist/types/cache.types.d.ts +41 -0
  184. package/dist/types/cache.types.d.ts.map +1 -0
  185. package/dist/types/cache.types.js +3 -0
  186. package/dist/types/cache.types.js.map +1 -0
  187. package/dist/types/errors.types.d.ts +22 -0
  188. package/dist/types/errors.types.d.ts.map +1 -0
  189. package/dist/types/errors.types.js +31 -0
  190. package/dist/types/errors.types.js.map +1 -0
  191. package/dist/types/index.d.ts +9 -0
  192. package/dist/types/index.d.ts.map +1 -0
  193. package/dist/types/index.js +8 -0
  194. package/dist/types/index.js.map +1 -0
  195. package/dist/types/mapping.types.d.ts +48 -0
  196. package/dist/types/mapping.types.d.ts.map +1 -0
  197. package/dist/types/mapping.types.js +3 -0
  198. package/dist/types/mapping.types.js.map +1 -0
  199. package/dist/types/provider.types.d.ts +62 -0
  200. package/dist/types/provider.types.d.ts.map +1 -0
  201. package/dist/types/provider.types.js +3 -0
  202. package/dist/types/provider.types.js.map +1 -0
  203. package/dist/types/schema.types.d.ts +68 -0
  204. package/dist/types/schema.types.d.ts.map +1 -0
  205. package/dist/types/schema.types.js +3 -0
  206. package/dist/types/schema.types.js.map +1 -0
  207. package/dist/types/security.types.d.ts +32 -0
  208. package/dist/types/security.types.d.ts.map +1 -0
  209. package/dist/types/security.types.js +3 -0
  210. package/dist/types/security.types.js.map +1 -0
  211. package/dist/types/trace.types.d.ts +129 -0
  212. package/dist/types/trace.types.d.ts.map +1 -0
  213. package/dist/types/trace.types.js +3 -0
  214. package/dist/types/trace.types.js.map +1 -0
  215. package/dist/types/transform.types.d.ts +56 -0
  216. package/dist/types/transform.types.d.ts.map +1 -0
  217. package/dist/types/transform.types.js +3 -0
  218. package/dist/types/transform.types.js.map +1 -0
  219. package/package.json +107 -0
@@ -0,0 +1,9 @@
1
+ export { ErrorCategory, FONError } from './errors.types';
2
+ export type { SecurityOptions, InputValidationResult } from './security.types';
3
+ export type { NormalizedSchema, SchemaField, SchemaAdapter, ValidationResult, ValidationError, } from './schema.types';
4
+ export type { MappingPlan, Assignment, Drop, Warning } from './mapping.types';
5
+ export type { Cache, CachedMappingPlan, CacheMetadata } from './cache.types';
6
+ export type { Provider, ProposalOptions, ProviderConfig, ProviderMetrics, } from './provider.types';
7
+ export type { TraceReport, Timings, ExecutionTrace, AssignmentTrace, RejectedAssignment, Conflict, ValidationTrace, CacheTrace, ConfidenceSummary, } from './trace.types';
8
+ export type { Mode, TransformOptions, TransformResult, TransformHooks } from './transform.types';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAGzD,YAAY,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAG/E,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG9E,YAAY,EAAE,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG7E,YAAY,EACV,QAAQ,EACR,eAAe,EACf,cAAc,EACd,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,WAAW,EACX,OAAO,EACP,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,QAAQ,EACR,eAAe,EACf,UAAU,EACV,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAGvB,YAAY,EAAE,IAAI,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FONError = exports.ErrorCategory = void 0;
4
+ // Error types
5
+ var errors_types_1 = require("./errors.types");
6
+ Object.defineProperty(exports, "ErrorCategory", { enumerable: true, get: function () { return errors_types_1.ErrorCategory; } });
7
+ Object.defineProperty(exports, "FONError", { enumerable: true, get: function () { return errors_types_1.FONError; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;AAAA,cAAc;AACd,+CAAyD;AAAhD,6GAAA,aAAa,OAAA;AAAE,wGAAA,QAAQ,OAAA"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Mapping plan returned by LLM provider
3
+ * This is the core data structure that drives transformation
4
+ */
5
+ export interface MappingPlan {
6
+ /** Field assignments from input to target schema */
7
+ assignments: Assignment[];
8
+ /** Fields to drop (not in schema) */
9
+ drops: Drop[];
10
+ /** Warnings about potential issues */
11
+ warnings: Warning[];
12
+ }
13
+ /**
14
+ * Single field mapping assignment
15
+ */
16
+ export interface Assignment {
17
+ /** Source JSONPath in input */
18
+ from: string;
19
+ /** Target JSONPath in output */
20
+ to: string;
21
+ /** Confidence score (0..1) */
22
+ confidence: number;
23
+ /** Optional type transformation hint */
24
+ transform?: string;
25
+ }
26
+ /**
27
+ * Field to be dropped
28
+ */
29
+ export interface Drop {
30
+ /** JSONPath of dropped field */
31
+ path: string;
32
+ /** Reason for dropping */
33
+ reason: string;
34
+ /** Confidence in drop decision */
35
+ confidence: number;
36
+ }
37
+ /**
38
+ * Warning about input data
39
+ */
40
+ export interface Warning {
41
+ /** Warning message */
42
+ message: string;
43
+ /** Confidence in warning */
44
+ confidence: number;
45
+ /** Optional context */
46
+ context?: string;
47
+ }
48
+ //# sourceMappingURL=mapping.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping.types.d.ts","sourceRoot":"","sources":["../../src/types/mapping.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,oDAAoD;IACpD,WAAW,EAAE,UAAU,EAAE,CAAC;IAE1B,qCAAqC;IACrC,KAAK,EAAE,IAAI,EAAE,CAAC;IAEd,sCAAsC;IACtC,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IAEb,gCAAgC;IAChC,EAAE,EAAE,MAAM,CAAC;IAEX,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IAEnB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IAEb,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;IAEf,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAEhB,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IAEnB,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=mapping.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping.types.js","sourceRoot":"","sources":["../../src/types/mapping.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,62 @@
1
+ import { MappingPlan } from './mapping.types';
2
+ import { NormalizedSchema } from './schema.types';
3
+ import { SecurityOptions } from './security.types';
4
+ /**
5
+ * Provider interface for LLM integration
6
+ */
7
+ export interface Provider {
8
+ /** Provider name (e.g., "gemini", "openai") */
9
+ readonly name: string;
10
+ /** Prompt version for cache key */
11
+ readonly promptVersion: string;
12
+ /**
13
+ * Generate a mapping plan from input to schema
14
+ */
15
+ proposeMappingPlan(input: unknown, schema: NormalizedSchema, options: ProposalOptions): Promise<MappingPlan>;
16
+ }
17
+ /**
18
+ * Options for mapping plan proposal
19
+ */
20
+ export interface ProposalOptions {
21
+ /** Confidence threshold to inform the LLM */
22
+ confidenceThreshold: number;
23
+ /** Security settings */
24
+ security: SecurityOptions;
25
+ /** Optional schema description for context */
26
+ schemaDescription?: string;
27
+ }
28
+ /**
29
+ * Base provider configuration
30
+ */
31
+ export interface ProviderConfig {
32
+ /** API key for the provider (optional for local providers like Ollama) */
33
+ apiKey?: string;
34
+ /** Model name/ID (provider-specific) */
35
+ model?: string;
36
+ /** Base URL for API (optional, uses provider default) */
37
+ baseUrl?: string;
38
+ /** Request timeout in milliseconds (default: 30000) */
39
+ timeout?: number;
40
+ /** Max retries for network errors (default: 3, not for LLM failures) */
41
+ maxRetries?: number;
42
+ }
43
+ /**
44
+ * Provider metrics for observability
45
+ */
46
+ export interface ProviderMetrics {
47
+ /** Provider name */
48
+ provider: string;
49
+ /** Model used */
50
+ model: string;
51
+ /** Request duration in ms */
52
+ duration: number;
53
+ /** Token usage if available */
54
+ tokens?: {
55
+ input: number;
56
+ output: number;
57
+ total: number;
58
+ };
59
+ /** Whether request hit cache */
60
+ cached: boolean;
61
+ }
62
+ //# sourceMappingURL=provider.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.types.d.ts","sourceRoot":"","sources":["../../src/types/provider.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,mCAAmC;IACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,kBAAkB,CAChB,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,WAAW,CAAC,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,6CAA6C;IAC7C,mBAAmB,EAAE,MAAM,CAAC;IAE5B,wBAAwB;IACxB,QAAQ,EAAE,eAAe,CAAC;IAE1B,8CAA8C;IAC9C,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;IAEjB,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IAEd,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IAEjB,+BAA+B;IAC/B,MAAM,CAAC,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IAEF,gCAAgC;IAChC,MAAM,EAAE,OAAO,CAAC;CACjB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=provider.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.types.js","sourceRoot":"","sources":["../../src/types/provider.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Normalized schema representation
3
+ */
4
+ export interface NormalizedSchema {
5
+ /** Schema version or hash for cache key generation */
6
+ version: string;
7
+ /** List of all fields in the schema */
8
+ fields: SchemaField[];
9
+ /** Original JSON Schema object */
10
+ raw: object;
11
+ }
12
+ /**
13
+ * Individual field in normalized schema
14
+ */
15
+ export interface SchemaField {
16
+ /** JSONPath to the field (e.g., "$.name.given") */
17
+ path: string;
18
+ /** JSON Schema type(s) */
19
+ type: string | string[];
20
+ /** Whether field is required */
21
+ required: boolean;
22
+ /** Field description (helps LLM mapping) */
23
+ description?: string;
24
+ /** Format constraint (e.g., "email", "date-time") */
25
+ format?: string;
26
+ /** Enum values if applicable */
27
+ enum?: unknown[];
28
+ /** Default value if applicable */
29
+ default?: unknown;
30
+ /** Additional schema properties */
31
+ [key: string]: unknown;
32
+ }
33
+ /**
34
+ * Schema adapter interface
35
+ */
36
+ export interface SchemaAdapter {
37
+ /** Get the normalized schema */
38
+ getNormalizedSchema(): NormalizedSchema;
39
+ /** List all fields */
40
+ listFields(): SchemaField[];
41
+ /** Get a specific field by path */
42
+ getField(path: string): SchemaField | undefined;
43
+ /** Check if a path is required */
44
+ isRequired(path: string): boolean;
45
+ /** Validate a payload against the schema */
46
+ validate(payload: unknown): ValidationResult;
47
+ }
48
+ /**
49
+ * Validation result
50
+ */
51
+ export interface ValidationResult {
52
+ valid: boolean;
53
+ errors: ValidationError[];
54
+ }
55
+ /**
56
+ * Individual validation error
57
+ */
58
+ export interface ValidationError {
59
+ /** JSONPath where error occurred */
60
+ path: string;
61
+ /** Error message */
62
+ message: string;
63
+ /** AJV keyword that failed */
64
+ keyword?: string;
65
+ /** Additional error parameters */
66
+ params?: object;
67
+ }
68
+ //# sourceMappingURL=schema.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.types.d.ts","sourceRoot":"","sources":["../../src/types/schema.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAEhB,uCAAuC;IACvC,MAAM,EAAE,WAAW,EAAE,CAAC;IAEtB,kCAAkC;IAClC,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IAEb,0BAA0B;IAC1B,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB,gCAAgC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAElB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,gCAAgC;IAChC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IAEjB,kCAAkC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,mCAAmC;IACnC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,gCAAgC;IAChC,mBAAmB,IAAI,gBAAgB,CAAC;IAExC,sBAAsB;IACtB,UAAU,IAAI,WAAW,EAAE,CAAC;IAE5B,mCAAmC;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IAEhD,kCAAkC;IAClC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAElC,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IAEb,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAEhB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=schema.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.types.js","sourceRoot":"","sources":["../../src/types/schema.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Security options for input validation and sanitization
3
+ */
4
+ export interface SecurityOptions {
5
+ /** Maximum input size in bytes (default: 1MB) */
6
+ maxInputSize?: number;
7
+ /** Maximum nesting depth (default: 10) */
8
+ maxDepth?: number;
9
+ /** Maximum number of keys (default: 1000) */
10
+ maxKeys?: number;
11
+ /** Maximum string length for prompt inclusion (default: 10000) */
12
+ maxStringLength?: number;
13
+ /** Keys to redact (default: ['password', 'token', 'authorization', 'secret', 'apiKey', 'apiSecret']) */
14
+ redactKeys?: string[];
15
+ /** Enable prompt sanitization to mitigate prompt injection (default: true) */
16
+ sanitizePrompt?: boolean;
17
+ /** Include sample values in LLM prompt (default: false for security) */
18
+ includeValues?: boolean;
19
+ }
20
+ /**
21
+ * Input validation result
22
+ */
23
+ export interface InputValidationResult {
24
+ valid: boolean;
25
+ errors: string[];
26
+ stats?: {
27
+ size: number;
28
+ depth: number;
29
+ keys: number;
30
+ };
31
+ }
32
+ //# sourceMappingURL=security.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.types.d.ts","sourceRoot":"","sources":["../../src/types/security.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,kEAAkE;IAClE,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,wGAAwG;IACxG,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB,8EAA8E;IAC9E,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,wEAAwE;IACxE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=security.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.types.js","sourceRoot":"","sources":["../../src/types/security.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,129 @@
1
+ import { Assignment, Drop, Warning, MappingPlan } from './mapping.types';
2
+ import { ValidationError } from './schema.types';
3
+ /**
4
+ * Complete trace report for a transformation
5
+ */
6
+ export interface TraceReport {
7
+ /** Unique trace ID */
8
+ traceId: string;
9
+ /** Transformation mode */
10
+ mode: 'SEMANTIC';
11
+ /** Provider used */
12
+ provider: string;
13
+ /** Prompt version */
14
+ promptVersion: string;
15
+ /** Timing information */
16
+ timings: Timings;
17
+ /** Mapping plan (raw and parsed) */
18
+ mappingPlan: {
19
+ raw: string;
20
+ parsed: MappingPlan;
21
+ };
22
+ /** Execution details */
23
+ execution: ExecutionTrace;
24
+ /** Validation details */
25
+ validation: ValidationTrace;
26
+ /** Cache details */
27
+ cache: CacheTrace;
28
+ /** Confidence statistics */
29
+ confidenceSummary: ConfidenceSummary;
30
+ }
31
+ /**
32
+ * Timing breakdown
33
+ */
34
+ export interface Timings {
35
+ /** Total transformation time (ms) */
36
+ total: number;
37
+ /** Time to get mapping plan (ms) */
38
+ proposal: number;
39
+ /** Time to execute plan (ms) */
40
+ execution: number;
41
+ /** Time to validate output (ms) */
42
+ validation: number;
43
+ }
44
+ /**
45
+ * Execution trace details
46
+ */
47
+ export interface ExecutionTrace {
48
+ /** Successfully applied assignments */
49
+ assignmentsApplied: AssignmentTrace[];
50
+ /** Rejected assignments */
51
+ assignmentsRejected: RejectedAssignment[];
52
+ /** Fields that were dropped */
53
+ droppedFields: Drop[];
54
+ /** Warnings generated */
55
+ warnings: Warning[];
56
+ /** Conflicts detected */
57
+ conflicts: Conflict[];
58
+ }
59
+ /**
60
+ * Trace of a single applied assignment
61
+ */
62
+ export interface AssignmentTrace {
63
+ /** The assignment */
64
+ assignment: Assignment;
65
+ /** Value from source */
66
+ fromValue: unknown;
67
+ /** Value written to target */
68
+ toValue: unknown;
69
+ /** Whether type transformation was applied */
70
+ transformed: boolean;
71
+ }
72
+ /**
73
+ * Rejected assignment details
74
+ */
75
+ export interface RejectedAssignment {
76
+ /** The rejected assignment */
77
+ assignment: Assignment;
78
+ /** Reason for rejection */
79
+ reason: 'CONFIDENCE_TOO_LOW' | 'INVALID_PATH' | 'TYPE_MISMATCH';
80
+ /** Additional details */
81
+ details?: string;
82
+ }
83
+ /**
84
+ * Mapping conflict
85
+ */
86
+ export interface Conflict {
87
+ /** Target path with conflict */
88
+ targetPath: string;
89
+ /** Source paths causing conflict */
90
+ sources: string[];
91
+ /** How conflict was resolved */
92
+ resolution: 'FIRST_WINS' | 'LAST_WINS' | 'FAILED';
93
+ }
94
+ /**
95
+ * Validation trace
96
+ */
97
+ export interface ValidationTrace {
98
+ /** Whether validation succeeded */
99
+ success: boolean;
100
+ /** Validation errors if any */
101
+ errors: ValidationError[];
102
+ }
103
+ /**
104
+ * Cache trace
105
+ */
106
+ export interface CacheTrace {
107
+ /** Whether cache was hit */
108
+ hit: boolean;
109
+ /** Cache key used */
110
+ key: string;
111
+ /** TTL if cache was set */
112
+ ttl?: number;
113
+ }
114
+ /**
115
+ * Confidence statistics summary
116
+ */
117
+ export interface ConfidenceSummary {
118
+ /** Minimum confidence in applied assignments */
119
+ min: number;
120
+ /** Maximum confidence in applied assignments */
121
+ max: number;
122
+ /** Average confidence in applied assignments */
123
+ avg: number;
124
+ /** Number of assignments below threshold */
125
+ countBelowThreshold: number;
126
+ /** Configured threshold */
127
+ threshold: number;
128
+ }
129
+ //# sourceMappingURL=trace.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace.types.d.ts","sourceRoot":"","sources":["../../src/types/trace.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=trace.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace.types.js","sourceRoot":"","sources":["../../src/types/trace.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,56 @@
1
+ import { Provider, ProviderMetrics } from './provider.types';
2
+ import { SchemaAdapter } from './schema.types';
3
+ import { SecurityOptions } from './security.types';
4
+ import { Cache } from './cache.types';
5
+ import { TraceReport } from './trace.types';
6
+ import { FONError } from './errors.types';
7
+ /**
8
+ * Transformation mode
9
+ */
10
+ export type Mode = 'SEMANTIC';
11
+ /**
12
+ * Transform options
13
+ */
14
+ export interface TransformOptions {
15
+ /** Transformation mode (default: SEMANTIC) */
16
+ mode?: Mode;
17
+ /** Target JSON Schema (object or SchemaAdapter instance) */
18
+ schema: object | SchemaAdapter;
19
+ /** LLM provider instance (required) */
20
+ provider: Provider;
21
+ /** Confidence threshold (default: 0.85) */
22
+ confidenceThreshold?: number;
23
+ /** Cache instance (optional, in-memory LRU by default) */
24
+ cache?: Cache;
25
+ /** Enable verbose trace output (default: false) */
26
+ verbose?: boolean;
27
+ /** Security options */
28
+ security?: SecurityOptions;
29
+ /** Optional hooks for observability */
30
+ hooks?: TransformHooks;
31
+ }
32
+ /**
33
+ * Transform result
34
+ */
35
+ export interface TransformResult {
36
+ /** Whether transformation succeeded */
37
+ ok: boolean;
38
+ /** Transformed output (schema-valid JSON) if successful */
39
+ output?: unknown;
40
+ /** Error if transformation failed */
41
+ error?: FONError;
42
+ /** Trace report (always present) */
43
+ trace: TraceReport;
44
+ }
45
+ /**
46
+ * Hooks for observability
47
+ */
48
+ export interface TransformHooks {
49
+ /** Called when trace is complete */
50
+ onTrace?: (trace: TraceReport) => void;
51
+ /** Called on error */
52
+ onError?: (error: FONError, traceId: string) => void;
53
+ /** Called after provider request */
54
+ onProviderCall?: (metrics: ProviderMetrics) => void;
55
+ }
56
+ //# sourceMappingURL=transform.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.types.d.ts","sourceRoot":"","sources":["../../src/types/transform.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C;;GAEG;AACH,MAAM,MAAM,IAAI,GAAG,UAAU,CAAC;AAE9B;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,IAAI,CAAC,EAAE,IAAI,CAAC;IAEZ,4DAA4D;IAC5D,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAE/B,uCAAuC;IACvC,QAAQ,EAAE,QAAQ,CAAC;IAEnB,2CAA2C;IAC3C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,0DAA0D;IAC1D,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd,mDAAmD;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAE3B,uCAAuC;IACvC,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,uCAAuC;IACvC,EAAE,EAAE,OAAO,CAAC;IAEZ,2DAA2D;IAC3D,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,qCAAqC;IACrC,KAAK,CAAC,EAAE,QAAQ,CAAC;IAEjB,oCAAoC;IACpC,KAAK,EAAE,WAAW,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,oCAAoC;IACpC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAEvC,sBAAsB;IACtB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAErD,oCAAoC;IACpC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;CACrD"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=transform.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.types.js","sourceRoot":"","sources":["../../src/types/transform.types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,107 @@
1
+ {
2
+ "name": "foon-sdk",
3
+ "version": "1.0.0",
4
+ "description": "TypeScript SDK for semantic JSON transformation using LLMs - transforms free-form JSON to schema-compliant JSON",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "import": "./dist/index.js",
11
+ "require": "./dist/index.js"
12
+ },
13
+ "./express": {
14
+ "types": "./dist/express/index.d.ts",
15
+ "import": "./dist/express/index.js",
16
+ "require": "./dist/express/index.js"
17
+ }
18
+ },
19
+ "files": [
20
+ "dist",
21
+ "README.md",
22
+ "LICENSE"
23
+ ],
24
+ "scripts": {
25
+ "build": "tsc -p tsconfig.build.json",
26
+ "build:watch": "tsc -p tsconfig.build.json --watch",
27
+ "test": "jest --testPathIgnorePatterns=e2e",
28
+ "test:all": "jest",
29
+ "test:publish": "npm run test",
30
+ "test:watch": "jest --watch",
31
+ "test:coverage": "jest --coverage",
32
+ "test:unit": "jest --testPathPattern=unit",
33
+ "test:integration": "jest --testPathPattern=integration",
34
+ "test:e2e": "jest --testPathPattern=e2e",
35
+ "lint": "eslint src/**/*.ts tests/**/*.ts",
36
+ "lint:fix": "eslint src/**/*.ts tests/**/*.ts --fix",
37
+ "format": "prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"",
38
+ "format:check": "prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"",
39
+ "clean": "rimraf dist",
40
+ "prebuild": "npm run clean",
41
+ "prepublishOnly": "npm run build && npm run test:publish",
42
+ "example:basic": "ts-node examples/basic-usage.ts",
43
+ "example:express": "ts-node examples/express-crud-app.ts"
44
+ },
45
+ "keywords": [
46
+ "json",
47
+ "schema",
48
+ "transformation",
49
+ "llm",
50
+ "semantic",
51
+ "mapping",
52
+ "validation",
53
+ "adapter",
54
+ "express",
55
+ "middleware"
56
+ ],
57
+ "author": "Achraf Achkari",
58
+ "license": "MIT",
59
+ "repository": {
60
+ "type": "git",
61
+ "url": "git+https://github.com/achachraf/foon-sdk.git"
62
+ },
63
+ "homepage": "https://foon.ink",
64
+ "bugs": {
65
+ "url": "https://github.com/achachraf/foon-sdk/issues"
66
+ },
67
+ "publishConfig": {
68
+ "access": "public"
69
+ },
70
+ "dependencies": {
71
+ "ajv": "^8.12.0",
72
+ "ajv-formats": "^3.0.1",
73
+ "jsonpath-plus": "^7.2.0",
74
+ "lru-cache": "^10.0.0",
75
+ "uuid": "^9.0.0"
76
+ },
77
+ "devDependencies": {
78
+ "@types/express": "^4.17.21",
79
+ "@types/jest": "^29.5.0",
80
+ "@types/node": "^20.0.0",
81
+ "@types/supertest": "^6.0.2",
82
+ "@types/uuid": "^9.0.0",
83
+ "@typescript-eslint/eslint-plugin": "^6.15.0",
84
+ "@typescript-eslint/parser": "^6.15.0",
85
+ "dotenv": "^16.3.1",
86
+ "eslint": "^8.55.0",
87
+ "express": "^4.18.2",
88
+ "jest": "^29.7.0",
89
+ "prettier": "^3.1.0",
90
+ "rimraf": "^5.0.5",
91
+ "supertest": "^6.3.3",
92
+ "ts-jest": "^29.1.0",
93
+ "ts-node": "^10.9.2",
94
+ "typescript": "^5.3.0"
95
+ },
96
+ "peerDependencies": {
97
+ "express": "^4.18.0"
98
+ },
99
+ "peerDependenciesMeta": {
100
+ "express": {
101
+ "optional": true
102
+ }
103
+ },
104
+ "engines": {
105
+ "node": ">=18.0.0"
106
+ }
107
+ }