@caracal-lynx/sluice 0.1.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 (281) hide show
  1. package/CLAUDE.md +1822 -0
  2. package/LICENCE-FAQ.md +74 -0
  3. package/LICENSE +92 -0
  4. package/README.md +582 -0
  5. package/dist/adapters/source/csv.d.ts +10 -0
  6. package/dist/adapters/source/csv.d.ts.map +1 -0
  7. package/dist/adapters/source/csv.js +110 -0
  8. package/dist/adapters/source/csv.js.map +1 -0
  9. package/dist/adapters/source/index.d.ts +9 -0
  10. package/dist/adapters/source/index.d.ts.map +1 -0
  11. package/dist/adapters/source/index.js +26 -0
  12. package/dist/adapters/source/index.js.map +1 -0
  13. package/dist/adapters/source/mssql.d.ts +11 -0
  14. package/dist/adapters/source/mssql.d.ts.map +1 -0
  15. package/dist/adapters/source/mssql.js +230 -0
  16. package/dist/adapters/source/mssql.js.map +1 -0
  17. package/dist/adapters/source/pg.d.ts +11 -0
  18. package/dist/adapters/source/pg.d.ts.map +1 -0
  19. package/dist/adapters/source/pg.js +88 -0
  20. package/dist/adapters/source/pg.js.map +1 -0
  21. package/dist/adapters/source/registry.d.ts +10 -0
  22. package/dist/adapters/source/registry.d.ts.map +1 -0
  23. package/dist/adapters/source/registry.js +36 -0
  24. package/dist/adapters/source/registry.js.map +1 -0
  25. package/dist/adapters/source/rest.d.ts +16 -0
  26. package/dist/adapters/source/rest.d.ts.map +1 -0
  27. package/dist/adapters/source/rest.js +182 -0
  28. package/dist/adapters/source/rest.js.map +1 -0
  29. package/dist/adapters/source/rest.types.d.ts +15 -0
  30. package/dist/adapters/source/rest.types.d.ts.map +1 -0
  31. package/dist/adapters/source/rest.types.js +6 -0
  32. package/dist/adapters/source/rest.types.js.map +1 -0
  33. package/dist/adapters/source/types.d.ts +23 -0
  34. package/dist/adapters/source/types.d.ts.map +1 -0
  35. package/dist/adapters/source/types.js +4 -0
  36. package/dist/adapters/source/types.js.map +1 -0
  37. package/dist/adapters/source/xlsx.d.ts +10 -0
  38. package/dist/adapters/source/xlsx.d.ts.map +1 -0
  39. package/dist/adapters/source/xlsx.js +71 -0
  40. package/dist/adapters/source/xlsx.js.map +1 -0
  41. package/dist/adapters/target/bc.d.ts +21 -0
  42. package/dist/adapters/target/bc.d.ts.map +1 -0
  43. package/dist/adapters/target/bc.js +188 -0
  44. package/dist/adapters/target/bc.js.map +1 -0
  45. package/dist/adapters/target/bluecherry.d.ts +10 -0
  46. package/dist/adapters/target/bluecherry.d.ts.map +1 -0
  47. package/dist/adapters/target/bluecherry.js +127 -0
  48. package/dist/adapters/target/bluecherry.js.map +1 -0
  49. package/dist/adapters/target/csv.d.ts +10 -0
  50. package/dist/adapters/target/csv.d.ts.map +1 -0
  51. package/dist/adapters/target/csv.js +40 -0
  52. package/dist/adapters/target/csv.js.map +1 -0
  53. package/dist/adapters/target/ifs.d.ts +10 -0
  54. package/dist/adapters/target/ifs.d.ts.map +1 -0
  55. package/dist/adapters/target/ifs.js +55 -0
  56. package/dist/adapters/target/ifs.js.map +1 -0
  57. package/dist/adapters/target/index.d.ts +8 -0
  58. package/dist/adapters/target/index.d.ts.map +1 -0
  59. package/dist/adapters/target/index.js +22 -0
  60. package/dist/adapters/target/index.js.map +1 -0
  61. package/dist/adapters/target/pg.d.ts +11 -0
  62. package/dist/adapters/target/pg.d.ts.map +1 -0
  63. package/dist/adapters/target/pg.js +103 -0
  64. package/dist/adapters/target/pg.js.map +1 -0
  65. package/dist/adapters/target/registry.d.ts +9 -0
  66. package/dist/adapters/target/registry.d.ts.map +1 -0
  67. package/dist/adapters/target/registry.js +29 -0
  68. package/dist/adapters/target/registry.js.map +1 -0
  69. package/dist/adapters/target/types.d.ts +15 -0
  70. package/dist/adapters/target/types.d.ts.map +1 -0
  71. package/dist/adapters/target/types.js +4 -0
  72. package/dist/adapters/target/types.js.map +1 -0
  73. package/dist/cli.d.ts +25 -0
  74. package/dist/cli.d.ts.map +1 -0
  75. package/dist/cli.js +354 -0
  76. package/dist/cli.js.map +1 -0
  77. package/dist/config/index.d.ts +4 -0
  78. package/dist/config/index.d.ts.map +1 -0
  79. package/dist/config/index.js +6 -0
  80. package/dist/config/index.js.map +1 -0
  81. package/dist/config/loader.d.ts +5 -0
  82. package/dist/config/loader.d.ts.map +1 -0
  83. package/dist/config/loader.js +135 -0
  84. package/dist/config/loader.js.map +1 -0
  85. package/dist/config/schema.d.ts +4162 -0
  86. package/dist/config/schema.d.ts.map +1 -0
  87. package/dist/config/schema.js +263 -0
  88. package/dist/config/schema.js.map +1 -0
  89. package/dist/config/types.d.ts +3 -0
  90. package/dist/config/types.d.ts.map +1 -0
  91. package/dist/config/types.js +4 -0
  92. package/dist/config/types.js.map +1 -0
  93. package/dist/dq/engine.d.ts +10 -0
  94. package/dist/dq/engine.d.ts.map +1 -0
  95. package/dist/dq/engine.js +114 -0
  96. package/dist/dq/engine.js.map +1 -0
  97. package/dist/dq/index.d.ts +6 -0
  98. package/dist/dq/index.d.ts.map +1 -0
  99. package/dist/dq/index.js +6 -0
  100. package/dist/dq/index.js.map +1 -0
  101. package/dist/dq/reporter.d.ts +5 -0
  102. package/dist/dq/reporter.d.ts.map +1 -0
  103. package/dist/dq/reporter.js +41 -0
  104. package/dist/dq/reporter.js.map +1 -0
  105. package/dist/dq/rules/allowedValues.d.ts +7 -0
  106. package/dist/dq/rules/allowedValues.d.ts.map +1 -0
  107. package/dist/dq/rules/allowedValues.js +26 -0
  108. package/dist/dq/rules/allowedValues.js.map +1 -0
  109. package/dist/dq/rules/email.d.ts +7 -0
  110. package/dist/dq/rules/email.d.ts.map +1 -0
  111. package/dist/dq/rules/email.js +24 -0
  112. package/dist/dq/rules/email.js.map +1 -0
  113. package/dist/dq/rules/index.d.ts +15 -0
  114. package/dist/dq/rules/index.d.ts.map +1 -0
  115. package/dist/dq/rules/index.js +30 -0
  116. package/dist/dq/rules/index.js.map +1 -0
  117. package/dist/dq/rules/maxLength.d.ts +7 -0
  118. package/dist/dq/rules/maxLength.d.ts.map +1 -0
  119. package/dist/dq/rules/maxLength.js +25 -0
  120. package/dist/dq/rules/maxLength.js.map +1 -0
  121. package/dist/dq/rules/minMax.d.ts +11 -0
  122. package/dist/dq/rules/minMax.d.ts.map +1 -0
  123. package/dist/dq/rules/minMax.js +52 -0
  124. package/dist/dq/rules/minMax.js.map +1 -0
  125. package/dist/dq/rules/notNull.d.ts +7 -0
  126. package/dist/dq/rules/notNull.d.ts.map +1 -0
  127. package/dist/dq/rules/notNull.js +21 -0
  128. package/dist/dq/rules/notNull.js.map +1 -0
  129. package/dist/dq/rules/pattern.d.ts +7 -0
  130. package/dist/dq/rules/pattern.d.ts.map +1 -0
  131. package/dist/dq/rules/pattern.js +31 -0
  132. package/dist/dq/rules/pattern.js.map +1 -0
  133. package/dist/dq/rules/types.d.ts +6 -0
  134. package/dist/dq/rules/types.d.ts.map +1 -0
  135. package/dist/dq/rules/types.js +4 -0
  136. package/dist/dq/rules/types.js.map +1 -0
  137. package/dist/dq/rules/ukPostcode.d.ts +7 -0
  138. package/dist/dq/rules/ukPostcode.d.ts.map +1 -0
  139. package/dist/dq/rules/ukPostcode.js +24 -0
  140. package/dist/dq/rules/ukPostcode.js.map +1 -0
  141. package/dist/dq/rules/unique.d.ts +14 -0
  142. package/dist/dq/rules/unique.d.ts.map +1 -0
  143. package/dist/dq/rules/unique.js +9 -0
  144. package/dist/dq/rules/unique.js.map +1 -0
  145. package/dist/dq/types.d.ts +29 -0
  146. package/dist/dq/types.d.ts.map +1 -0
  147. package/dist/dq/types.js +4 -0
  148. package/dist/dq/types.js.map +1 -0
  149. package/dist/enrich/types.d.ts +87 -0
  150. package/dist/enrich/types.d.ts.map +1 -0
  151. package/dist/enrich/types.js +4 -0
  152. package/dist/enrich/types.js.map +1 -0
  153. package/dist/index.d.ts +17 -0
  154. package/dist/index.d.ts.map +1 -0
  155. package/dist/index.js +17 -0
  156. package/dist/index.js.map +1 -0
  157. package/dist/merge/conflict-log.d.ts +9 -0
  158. package/dist/merge/conflict-log.d.ts.map +1 -0
  159. package/dist/merge/conflict-log.js +28 -0
  160. package/dist/merge/conflict-log.js.map +1 -0
  161. package/dist/merge/engine.d.ts +7 -0
  162. package/dist/merge/engine.d.ts.map +1 -0
  163. package/dist/merge/engine.js +19 -0
  164. package/dist/merge/engine.js.map +1 -0
  165. package/dist/merge/index.d.ts +11 -0
  166. package/dist/merge/index.d.ts.map +1 -0
  167. package/dist/merge/index.js +34 -0
  168. package/dist/merge/index.js.map +1 -0
  169. package/dist/merge/sql-builder.d.ts +19 -0
  170. package/dist/merge/sql-builder.d.ts.map +1 -0
  171. package/dist/merge/sql-builder.js +148 -0
  172. package/dist/merge/sql-builder.js.map +1 -0
  173. package/dist/merge/strategies/coalesce.d.ts +17 -0
  174. package/dist/merge/strategies/coalesce.d.ts.map +1 -0
  175. package/dist/merge/strategies/coalesce.js +77 -0
  176. package/dist/merge/strategies/coalesce.js.map +1 -0
  177. package/dist/merge/strategies/index.d.ts +5 -0
  178. package/dist/merge/strategies/index.d.ts.map +1 -0
  179. package/dist/merge/strategies/index.js +7 -0
  180. package/dist/merge/strategies/index.js.map +1 -0
  181. package/dist/merge/strategies/intersect.d.ts +17 -0
  182. package/dist/merge/strategies/intersect.d.ts.map +1 -0
  183. package/dist/merge/strategies/intersect.js +75 -0
  184. package/dist/merge/strategies/intersect.js.map +1 -0
  185. package/dist/merge/strategies/priority-override.d.ts +16 -0
  186. package/dist/merge/strategies/priority-override.d.ts.map +1 -0
  187. package/dist/merge/strategies/priority-override.js +78 -0
  188. package/dist/merge/strategies/priority-override.js.map +1 -0
  189. package/dist/merge/strategies/registry.d.ts +8 -0
  190. package/dist/merge/strategies/registry.d.ts.map +1 -0
  191. package/dist/merge/strategies/registry.js +19 -0
  192. package/dist/merge/strategies/registry.js.map +1 -0
  193. package/dist/merge/strategies/union.d.ts +15 -0
  194. package/dist/merge/strategies/union.d.ts.map +1 -0
  195. package/dist/merge/strategies/union.js +75 -0
  196. package/dist/merge/strategies/union.js.map +1 -0
  197. package/dist/merge/types.d.ts +24 -0
  198. package/dist/merge/types.d.ts.map +1 -0
  199. package/dist/merge/types.js +4 -0
  200. package/dist/merge/types.js.map +1 -0
  201. package/dist/multi-source-runner.d.ts +22 -0
  202. package/dist/multi-source-runner.d.ts.map +1 -0
  203. package/dist/multi-source-runner.js +398 -0
  204. package/dist/multi-source-runner.js.map +1 -0
  205. package/dist/plugins/index.d.ts +4 -0
  206. package/dist/plugins/index.d.ts.map +1 -0
  207. package/dist/plugins/index.js +5 -0
  208. package/dist/plugins/index.js.map +1 -0
  209. package/dist/plugins/loader.d.ts +22 -0
  210. package/dist/plugins/loader.d.ts.map +1 -0
  211. package/dist/plugins/loader.js +151 -0
  212. package/dist/plugins/loader.js.map +1 -0
  213. package/dist/plugins/registry.d.ts +25 -0
  214. package/dist/plugins/registry.d.ts.map +1 -0
  215. package/dist/plugins/registry.js +42 -0
  216. package/dist/plugins/registry.js.map +1 -0
  217. package/dist/plugins/types.d.ts +61 -0
  218. package/dist/plugins/types.d.ts.map +1 -0
  219. package/dist/plugins/types.js +4 -0
  220. package/dist/plugins/types.js.map +1 -0
  221. package/dist/runner.d.ts +97 -0
  222. package/dist/runner.d.ts.map +1 -0
  223. package/dist/runner.js +520 -0
  224. package/dist/runner.js.map +1 -0
  225. package/dist/staging/index.d.ts +3 -0
  226. package/dist/staging/index.d.ts.map +1 -0
  227. package/dist/staging/index.js +5 -0
  228. package/dist/staging/index.js.map +1 -0
  229. package/dist/staging/schema.d.ts +19 -0
  230. package/dist/staging/schema.d.ts.map +1 -0
  231. package/dist/staging/schema.js +15 -0
  232. package/dist/staging/schema.js.map +1 -0
  233. package/dist/staging/store.d.ts +71 -0
  234. package/dist/staging/store.d.ts.map +1 -0
  235. package/dist/staging/store.js +270 -0
  236. package/dist/staging/store.js.map +1 -0
  237. package/dist/transform/cleanse.d.ts +2 -0
  238. package/dist/transform/cleanse.d.ts.map +1 -0
  239. package/dist/transform/cleanse.js +59 -0
  240. package/dist/transform/cleanse.js.map +1 -0
  241. package/dist/transform/engine.d.ts +10 -0
  242. package/dist/transform/engine.d.ts.map +1 -0
  243. package/dist/transform/engine.js +225 -0
  244. package/dist/transform/engine.js.map +1 -0
  245. package/dist/transform/expression.d.ts +5 -0
  246. package/dist/transform/expression.d.ts.map +1 -0
  247. package/dist/transform/expression.js +52 -0
  248. package/dist/transform/expression.js.map +1 -0
  249. package/dist/transform/index.d.ts +6 -0
  250. package/dist/transform/index.d.ts.map +1 -0
  251. package/dist/transform/index.js +7 -0
  252. package/dist/transform/index.js.map +1 -0
  253. package/dist/transform/lookup.d.ts +10 -0
  254. package/dist/transform/lookup.d.ts.map +1 -0
  255. package/dist/transform/lookup.js +66 -0
  256. package/dist/transform/lookup.js.map +1 -0
  257. package/dist/transform/types.d.ts +10 -0
  258. package/dist/transform/types.d.ts.map +1 -0
  259. package/dist/transform/types.js +4 -0
  260. package/dist/transform/types.js.map +1 -0
  261. package/dist/utils/env.d.ts +3 -0
  262. package/dist/utils/env.d.ts.map +1 -0
  263. package/dist/utils/env.js +26 -0
  264. package/dist/utils/env.js.map +1 -0
  265. package/dist/utils/errors.d.ts +26 -0
  266. package/dist/utils/errors.d.ts.map +1 -0
  267. package/dist/utils/errors.js +39 -0
  268. package/dist/utils/errors.js.map +1 -0
  269. package/dist/utils/index.d.ts +5 -0
  270. package/dist/utils/index.d.ts.map +1 -0
  271. package/dist/utils/index.js +7 -0
  272. package/dist/utils/index.js.map +1 -0
  273. package/dist/utils/logger.d.ts +14 -0
  274. package/dist/utils/logger.d.ts.map +1 -0
  275. package/dist/utils/logger.js +16 -0
  276. package/dist/utils/logger.js.map +1 -0
  277. package/dist/utils/progress.d.ts +66 -0
  278. package/dist/utils/progress.d.ts.map +1 -0
  279. package/dist/utils/progress.js +283 -0
  280. package/dist/utils/progress.js.map +1 -0
  281. package/package.json +92 -0
@@ -0,0 +1,4162 @@
1
+ /**
2
+ * Sluice — pipeline config schema
3
+ * @caracal-lynx/sluice
4
+ *
5
+ * Canonical Zod schema for all pipeline YAML configs.
6
+ * All TypeScript types are inferred from these schemas — do not write
7
+ * manual interfaces for anything that maps to pipeline config.
8
+ *
9
+ * Usage:
10
+ * import { PipelineSchema } from '@caracal-lynx/sluice';
11
+ * const pipeline = PipelineSchema.parse(yaml.load(fs.readFileSync('customers.pipeline.yaml', 'utf8')));
12
+ *
13
+ * ${ENV_VAR} strings in connection/url fields are resolved by ConfigLoader
14
+ * before this schema is called — Zod sees plain strings, not tokens.
15
+ */
16
+ import { z } from 'zod';
17
+ export declare const SourceSchema: z.ZodEffects<z.ZodObject<{
18
+ adapter: z.ZodEnum<["mssql", "pg", "csv", "xlsx", "rest"]>;
19
+ connection: z.ZodOptional<z.ZodString>;
20
+ query: z.ZodOptional<z.ZodString>;
21
+ file: z.ZodOptional<z.ZodString>;
22
+ endpoint: z.ZodOptional<z.ZodString>;
23
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
24
+ delimiter: z.ZodDefault<z.ZodString>;
25
+ encoding: z.ZodDefault<z.ZodString>;
26
+ sheet: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
27
+ pagination: z.ZodOptional<z.ZodObject<{
28
+ type: z.ZodEnum<["offset", "cursor", "page"]>;
29
+ pageSize: z.ZodDefault<z.ZodNumber>;
30
+ pageParam: z.ZodOptional<z.ZodString>;
31
+ totalField: z.ZodOptional<z.ZodString>;
32
+ dataField: z.ZodOptional<z.ZodString>;
33
+ cursorField: z.ZodOptional<z.ZodString>;
34
+ cursorParam: z.ZodOptional<z.ZodString>;
35
+ }, "strip", z.ZodTypeAny, {
36
+ type: "cursor" | "offset" | "page";
37
+ pageSize: number;
38
+ pageParam?: string | undefined;
39
+ totalField?: string | undefined;
40
+ dataField?: string | undefined;
41
+ cursorField?: string | undefined;
42
+ cursorParam?: string | undefined;
43
+ }, {
44
+ type: "cursor" | "offset" | "page";
45
+ pageSize?: number | undefined;
46
+ pageParam?: string | undefined;
47
+ totalField?: string | undefined;
48
+ dataField?: string | undefined;
49
+ cursorField?: string | undefined;
50
+ cursorParam?: string | undefined;
51
+ }>>;
52
+ }, "strip", z.ZodTypeAny, {
53
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
54
+ connection?: string | undefined;
55
+ query?: string | undefined;
56
+ file?: string | undefined;
57
+ endpoint?: string | undefined;
58
+ headers?: Record<string, string> | undefined;
59
+ delimiter: string;
60
+ encoding: string;
61
+ sheet?: string | number | undefined;
62
+ pagination?: {
63
+ type: "cursor" | "offset" | "page";
64
+ pageSize: number;
65
+ pageParam?: string | undefined;
66
+ totalField?: string | undefined;
67
+ dataField?: string | undefined;
68
+ cursorField?: string | undefined;
69
+ cursorParam?: string | undefined;
70
+ } | undefined;
71
+ }, {
72
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
73
+ connection?: string | undefined;
74
+ query?: string | undefined;
75
+ file?: string | undefined;
76
+ endpoint?: string | undefined;
77
+ headers?: Record<string, string> | undefined;
78
+ delimiter?: string | undefined;
79
+ encoding?: string | undefined;
80
+ sheet?: string | number | undefined;
81
+ pagination?: {
82
+ type: "cursor" | "offset" | "page";
83
+ pageSize?: number | undefined;
84
+ pageParam?: string | undefined;
85
+ totalField?: string | undefined;
86
+ dataField?: string | undefined;
87
+ cursorField?: string | undefined;
88
+ cursorParam?: string | undefined;
89
+ } | undefined;
90
+ }>, {
91
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
92
+ connection?: string | undefined;
93
+ query?: string | undefined;
94
+ file?: string | undefined;
95
+ endpoint?: string | undefined;
96
+ headers?: Record<string, string> | undefined;
97
+ delimiter: string;
98
+ encoding: string;
99
+ sheet?: string | number | undefined;
100
+ pagination?: {
101
+ type: "cursor" | "offset" | "page";
102
+ pageSize: number;
103
+ pageParam?: string | undefined;
104
+ totalField?: string | undefined;
105
+ dataField?: string | undefined;
106
+ cursorField?: string | undefined;
107
+ cursorParam?: string | undefined;
108
+ } | undefined;
109
+ }, {
110
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
111
+ connection?: string | undefined;
112
+ query?: string | undefined;
113
+ file?: string | undefined;
114
+ endpoint?: string | undefined;
115
+ headers?: Record<string, string> | undefined;
116
+ delimiter?: string | undefined;
117
+ encoding?: string | undefined;
118
+ sheet?: string | number | undefined;
119
+ pagination?: {
120
+ type: "cursor" | "offset" | "page";
121
+ pageSize?: number | undefined;
122
+ pageParam?: string | undefined;
123
+ totalField?: string | undefined;
124
+ dataField?: string | undefined;
125
+ cursorField?: string | undefined;
126
+ cursorParam?: string | undefined;
127
+ } | undefined;
128
+ }>;
129
+ export declare const CheckType: z.ZodEnum<["notNull", "unique", "pattern", "email", "ukPostcode", "maxLength", "min", "max", "allowedValues"]>;
130
+ declare const CheckSchema: z.ZodObject<{
131
+ type: z.ZodEnum<["notNull", "unique", "pattern", "email", "ukPostcode", "maxLength", "min", "max", "allowedValues"]>;
132
+ value: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodArray<z.ZodString, "many">]>>;
133
+ severity: z.ZodEnum<["critical", "warning", "info"]>;
134
+ message: z.ZodOptional<z.ZodString>;
135
+ }, "strip", z.ZodTypeAny, {
136
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
137
+ value?: string | number | string[] | undefined;
138
+ severity: "critical" | "info" | "warning";
139
+ message?: string | undefined;
140
+ }, {
141
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
142
+ value?: string | number | string[] | undefined;
143
+ severity: "critical" | "info" | "warning";
144
+ message?: string | undefined;
145
+ }>;
146
+ declare const DqRuleSchema: z.ZodObject<{
147
+ field: z.ZodString;
148
+ sourceId: z.ZodOptional<z.ZodString>;
149
+ checks: z.ZodArray<z.ZodObject<{
150
+ type: z.ZodEnum<["notNull", "unique", "pattern", "email", "ukPostcode", "maxLength", "min", "max", "allowedValues"]>;
151
+ value: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodArray<z.ZodString, "many">]>>;
152
+ severity: z.ZodEnum<["critical", "warning", "info"]>;
153
+ message: z.ZodOptional<z.ZodString>;
154
+ }, "strip", z.ZodTypeAny, {
155
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
156
+ value?: string | number | string[] | undefined;
157
+ severity: "critical" | "info" | "warning";
158
+ message?: string | undefined;
159
+ }, {
160
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
161
+ value?: string | number | string[] | undefined;
162
+ severity: "critical" | "info" | "warning";
163
+ message?: string | undefined;
164
+ }>, "many">;
165
+ }, "strip", z.ZodTypeAny, {
166
+ field: string;
167
+ sourceId?: string | undefined;
168
+ checks: {
169
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
170
+ value?: string | number | string[] | undefined;
171
+ severity: "critical" | "info" | "warning";
172
+ message?: string | undefined;
173
+ }[];
174
+ }, {
175
+ field: string;
176
+ sourceId?: string | undefined;
177
+ checks: {
178
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
179
+ value?: string | number | string[] | undefined;
180
+ severity: "critical" | "info" | "warning";
181
+ message?: string | undefined;
182
+ }[];
183
+ }>;
184
+ export declare const DqSchema: z.ZodObject<{
185
+ rulesFile: z.ZodOptional<z.ZodString>;
186
+ stopOnCritical: z.ZodDefault<z.ZodBoolean>;
187
+ rejectionFile: z.ZodOptional<z.ZodString>;
188
+ rules: z.ZodDefault<z.ZodArray<z.ZodObject<{
189
+ field: z.ZodString;
190
+ sourceId: z.ZodOptional<z.ZodString>;
191
+ checks: z.ZodArray<z.ZodObject<{
192
+ type: z.ZodEnum<["notNull", "unique", "pattern", "email", "ukPostcode", "maxLength", "min", "max", "allowedValues"]>;
193
+ value: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodArray<z.ZodString, "many">]>>;
194
+ severity: z.ZodEnum<["critical", "warning", "info"]>;
195
+ message: z.ZodOptional<z.ZodString>;
196
+ }, "strip", z.ZodTypeAny, {
197
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
198
+ value?: string | number | string[] | undefined;
199
+ severity: "critical" | "info" | "warning";
200
+ message?: string | undefined;
201
+ }, {
202
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
203
+ value?: string | number | string[] | undefined;
204
+ severity: "critical" | "info" | "warning";
205
+ message?: string | undefined;
206
+ }>, "many">;
207
+ }, "strip", z.ZodTypeAny, {
208
+ field: string;
209
+ sourceId?: string | undefined;
210
+ checks: {
211
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
212
+ value?: string | number | string[] | undefined;
213
+ severity: "critical" | "info" | "warning";
214
+ message?: string | undefined;
215
+ }[];
216
+ }, {
217
+ field: string;
218
+ sourceId?: string | undefined;
219
+ checks: {
220
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
221
+ value?: string | number | string[] | undefined;
222
+ severity: "critical" | "info" | "warning";
223
+ message?: string | undefined;
224
+ }[];
225
+ }>, "many">>;
226
+ }, "strip", z.ZodTypeAny, {
227
+ rulesFile?: string | undefined;
228
+ stopOnCritical: boolean;
229
+ rejectionFile?: string | undefined;
230
+ rules: {
231
+ field: string;
232
+ sourceId?: string | undefined;
233
+ checks: {
234
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
235
+ value?: string | number | string[] | undefined;
236
+ severity: "critical" | "info" | "warning";
237
+ message?: string | undefined;
238
+ }[];
239
+ }[];
240
+ }, {
241
+ rulesFile?: string | undefined;
242
+ stopOnCritical?: boolean | undefined;
243
+ rejectionFile?: string | undefined;
244
+ rules?: {
245
+ field: string;
246
+ sourceId?: string | undefined;
247
+ checks: {
248
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
249
+ value?: string | number | string[] | undefined;
250
+ severity: "critical" | "info" | "warning";
251
+ message?: string | undefined;
252
+ }[];
253
+ }[] | undefined;
254
+ }>;
255
+ declare const EnrichWriteColumnsSchema: z.ZodObject<{
256
+ valid: z.ZodString;
257
+ }, "strip", z.ZodString, z.objectOutputType<{
258
+ valid: z.ZodString;
259
+ }, z.ZodString, "strip">, z.objectInputType<{
260
+ valid: z.ZodString;
261
+ }, z.ZodString, "strip">>;
262
+ declare const EnrichLookupSchema: z.ZodObject<{
263
+ field: z.ZodString;
264
+ provider: z.ZodString;
265
+ writeColumns: z.ZodObject<{
266
+ valid: z.ZodString;
267
+ }, "strip", z.ZodString, z.objectOutputType<{
268
+ valid: z.ZodString;
269
+ }, z.ZodString, "strip">, z.objectInputType<{
270
+ valid: z.ZodString;
271
+ }, z.ZodString, "strip">>;
272
+ preValidate: z.ZodOptional<z.ZodString>;
273
+ onError: z.ZodOptional<z.ZodEnum<["flag", "skip", "fail"]>>;
274
+ cache: z.ZodOptional<z.ZodBoolean>;
275
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
276
+ }, "strip", z.ZodTypeAny, {
277
+ field: string;
278
+ provider: string;
279
+ writeColumns: {
280
+ valid: string;
281
+ } & {
282
+ [k: string]: string;
283
+ };
284
+ preValidate?: string | undefined;
285
+ onError?: "fail" | "flag" | "skip" | undefined;
286
+ cache?: boolean | undefined;
287
+ options?: Record<string, unknown> | undefined;
288
+ }, {
289
+ field: string;
290
+ provider: string;
291
+ writeColumns: {
292
+ valid: string;
293
+ } & {
294
+ [k: string]: string;
295
+ };
296
+ preValidate?: string | undefined;
297
+ onError?: "fail" | "flag" | "skip" | undefined;
298
+ cache?: boolean | undefined;
299
+ options?: Record<string, unknown> | undefined;
300
+ }>;
301
+ export declare const EnrichSchema: z.ZodObject<{
302
+ cache: z.ZodDefault<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"persist">]>>;
303
+ onError: z.ZodDefault<z.ZodEnum<["flag", "skip", "fail"]>>;
304
+ lookups: z.ZodArray<z.ZodObject<{
305
+ field: z.ZodString;
306
+ provider: z.ZodString;
307
+ writeColumns: z.ZodObject<{
308
+ valid: z.ZodString;
309
+ }, "strip", z.ZodString, z.objectOutputType<{
310
+ valid: z.ZodString;
311
+ }, z.ZodString, "strip">, z.objectInputType<{
312
+ valid: z.ZodString;
313
+ }, z.ZodString, "strip">>;
314
+ preValidate: z.ZodOptional<z.ZodString>;
315
+ onError: z.ZodOptional<z.ZodEnum<["flag", "skip", "fail"]>>;
316
+ cache: z.ZodOptional<z.ZodBoolean>;
317
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
318
+ }, "strip", z.ZodTypeAny, {
319
+ field: string;
320
+ provider: string;
321
+ writeColumns: {
322
+ valid: string;
323
+ } & {
324
+ [k: string]: string;
325
+ };
326
+ preValidate?: string | undefined;
327
+ onError?: "fail" | "flag" | "skip" | undefined;
328
+ cache?: boolean | undefined;
329
+ options?: Record<string, unknown> | undefined;
330
+ }, {
331
+ field: string;
332
+ provider: string;
333
+ writeColumns: {
334
+ valid: string;
335
+ } & {
336
+ [k: string]: string;
337
+ };
338
+ preValidate?: string | undefined;
339
+ onError?: "fail" | "flag" | "skip" | undefined;
340
+ cache?: boolean | undefined;
341
+ options?: Record<string, unknown> | undefined;
342
+ }>, "many">;
343
+ }, "strip", z.ZodTypeAny, {
344
+ cache: "persist" | boolean;
345
+ onError: "fail" | "flag" | "skip";
346
+ lookups: {
347
+ field: string;
348
+ provider: string;
349
+ writeColumns: {
350
+ valid: string;
351
+ } & {
352
+ [k: string]: string;
353
+ };
354
+ preValidate?: string | undefined;
355
+ onError?: "fail" | "flag" | "skip" | undefined;
356
+ cache?: boolean | undefined;
357
+ options?: Record<string, unknown> | undefined;
358
+ }[];
359
+ }, {
360
+ cache?: "persist" | boolean | undefined;
361
+ onError?: "fail" | "flag" | "skip" | undefined;
362
+ lookups: {
363
+ field: string;
364
+ provider: string;
365
+ writeColumns: {
366
+ valid: string;
367
+ } & {
368
+ [k: string]: string;
369
+ };
370
+ preValidate?: string | undefined;
371
+ onError?: "fail" | "flag" | "skip" | undefined;
372
+ cache?: boolean | undefined;
373
+ options?: Record<string, unknown> | undefined;
374
+ }[];
375
+ }>;
376
+ declare const LookupSchema: z.ZodObject<{
377
+ name: z.ZodString;
378
+ source: z.ZodEffects<z.ZodObject<{
379
+ adapter: z.ZodEnum<["mssql", "pg", "csv", "xlsx", "rest"]>;
380
+ connection: z.ZodOptional<z.ZodString>;
381
+ query: z.ZodOptional<z.ZodString>;
382
+ file: z.ZodOptional<z.ZodString>;
383
+ endpoint: z.ZodOptional<z.ZodString>;
384
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
385
+ delimiter: z.ZodDefault<z.ZodString>;
386
+ encoding: z.ZodDefault<z.ZodString>;
387
+ sheet: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
388
+ pagination: z.ZodOptional<z.ZodObject<{
389
+ type: z.ZodEnum<["offset", "cursor", "page"]>;
390
+ pageSize: z.ZodDefault<z.ZodNumber>;
391
+ pageParam: z.ZodOptional<z.ZodString>;
392
+ totalField: z.ZodOptional<z.ZodString>;
393
+ dataField: z.ZodOptional<z.ZodString>;
394
+ cursorField: z.ZodOptional<z.ZodString>;
395
+ cursorParam: z.ZodOptional<z.ZodString>;
396
+ }, "strip", z.ZodTypeAny, {
397
+ type: "cursor" | "offset" | "page";
398
+ pageSize: number;
399
+ pageParam?: string | undefined;
400
+ totalField?: string | undefined;
401
+ dataField?: string | undefined;
402
+ cursorField?: string | undefined;
403
+ cursorParam?: string | undefined;
404
+ }, {
405
+ type: "cursor" | "offset" | "page";
406
+ pageSize?: number | undefined;
407
+ pageParam?: string | undefined;
408
+ totalField?: string | undefined;
409
+ dataField?: string | undefined;
410
+ cursorField?: string | undefined;
411
+ cursorParam?: string | undefined;
412
+ }>>;
413
+ }, "strip", z.ZodTypeAny, {
414
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
415
+ connection?: string | undefined;
416
+ query?: string | undefined;
417
+ file?: string | undefined;
418
+ endpoint?: string | undefined;
419
+ headers?: Record<string, string> | undefined;
420
+ delimiter: string;
421
+ encoding: string;
422
+ sheet?: string | number | undefined;
423
+ pagination?: {
424
+ type: "cursor" | "offset" | "page";
425
+ pageSize: number;
426
+ pageParam?: string | undefined;
427
+ totalField?: string | undefined;
428
+ dataField?: string | undefined;
429
+ cursorField?: string | undefined;
430
+ cursorParam?: string | undefined;
431
+ } | undefined;
432
+ }, {
433
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
434
+ connection?: string | undefined;
435
+ query?: string | undefined;
436
+ file?: string | undefined;
437
+ endpoint?: string | undefined;
438
+ headers?: Record<string, string> | undefined;
439
+ delimiter?: string | undefined;
440
+ encoding?: string | undefined;
441
+ sheet?: string | number | undefined;
442
+ pagination?: {
443
+ type: "cursor" | "offset" | "page";
444
+ pageSize?: number | undefined;
445
+ pageParam?: string | undefined;
446
+ totalField?: string | undefined;
447
+ dataField?: string | undefined;
448
+ cursorField?: string | undefined;
449
+ cursorParam?: string | undefined;
450
+ } | undefined;
451
+ }>, {
452
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
453
+ connection?: string | undefined;
454
+ query?: string | undefined;
455
+ file?: string | undefined;
456
+ endpoint?: string | undefined;
457
+ headers?: Record<string, string> | undefined;
458
+ delimiter: string;
459
+ encoding: string;
460
+ sheet?: string | number | undefined;
461
+ pagination?: {
462
+ type: "cursor" | "offset" | "page";
463
+ pageSize: number;
464
+ pageParam?: string | undefined;
465
+ totalField?: string | undefined;
466
+ dataField?: string | undefined;
467
+ cursorField?: string | undefined;
468
+ cursorParam?: string | undefined;
469
+ } | undefined;
470
+ }, {
471
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
472
+ connection?: string | undefined;
473
+ query?: string | undefined;
474
+ file?: string | undefined;
475
+ endpoint?: string | undefined;
476
+ headers?: Record<string, string> | undefined;
477
+ delimiter?: string | undefined;
478
+ encoding?: string | undefined;
479
+ sheet?: string | number | undefined;
480
+ pagination?: {
481
+ type: "cursor" | "offset" | "page";
482
+ pageSize?: number | undefined;
483
+ pageParam?: string | undefined;
484
+ totalField?: string | undefined;
485
+ dataField?: string | undefined;
486
+ cursorField?: string | undefined;
487
+ cursorParam?: string | undefined;
488
+ } | undefined;
489
+ }>;
490
+ key: z.ZodString;
491
+ value: z.ZodString;
492
+ }, "strip", z.ZodTypeAny, {
493
+ name: string;
494
+ source: {
495
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
496
+ connection?: string | undefined;
497
+ query?: string | undefined;
498
+ file?: string | undefined;
499
+ endpoint?: string | undefined;
500
+ headers?: Record<string, string> | undefined;
501
+ delimiter: string;
502
+ encoding: string;
503
+ sheet?: string | number | undefined;
504
+ pagination?: {
505
+ type: "cursor" | "offset" | "page";
506
+ pageSize: number;
507
+ pageParam?: string | undefined;
508
+ totalField?: string | undefined;
509
+ dataField?: string | undefined;
510
+ cursorField?: string | undefined;
511
+ cursorParam?: string | undefined;
512
+ } | undefined;
513
+ };
514
+ key: string;
515
+ value: string;
516
+ }, {
517
+ name: string;
518
+ source: {
519
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
520
+ connection?: string | undefined;
521
+ query?: string | undefined;
522
+ file?: string | undefined;
523
+ endpoint?: string | undefined;
524
+ headers?: Record<string, string> | undefined;
525
+ delimiter?: string | undefined;
526
+ encoding?: string | undefined;
527
+ sheet?: string | number | undefined;
528
+ pagination?: {
529
+ type: "cursor" | "offset" | "page";
530
+ pageSize?: number | undefined;
531
+ pageParam?: string | undefined;
532
+ totalField?: string | undefined;
533
+ dataField?: string | undefined;
534
+ cursorField?: string | undefined;
535
+ cursorParam?: string | undefined;
536
+ } | undefined;
537
+ };
538
+ key: string;
539
+ value: string;
540
+ }>;
541
+ declare const FieldMappingSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
542
+ from: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
543
+ to: z.ZodString;
544
+ type: z.ZodEnum<["string", "number", "decimal", "boolean", "date", "lookup", "concat", "constant", "expression", "custom"]>;
545
+ max: z.ZodOptional<z.ZodNumber>;
546
+ precision: z.ZodOptional<z.ZodNumber>;
547
+ format: z.ZodOptional<z.ZodString>;
548
+ cleanse: z.ZodOptional<z.ZodString>;
549
+ lookup: z.ZodOptional<z.ZodString>;
550
+ separator: z.ZodOptional<z.ZodString>;
551
+ value: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
552
+ default: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>;
553
+ optional: z.ZodDefault<z.ZodBoolean>;
554
+ customOp: z.ZodOptional<z.ZodString>;
555
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
556
+ }, "strip", z.ZodTypeAny, {
557
+ from?: string | string[] | undefined;
558
+ to: string;
559
+ type: "boolean" | "concat" | "constant" | "custom" | "date" | "decimal" | "expression" | "lookup" | "number" | "string";
560
+ max?: number | undefined;
561
+ precision?: number | undefined;
562
+ format?: string | undefined;
563
+ cleanse?: string | undefined;
564
+ lookup?: string | undefined;
565
+ separator?: string | undefined;
566
+ value?: string | number | boolean | undefined;
567
+ default?: string | number | boolean | null | undefined;
568
+ optional: boolean;
569
+ customOp?: string | undefined;
570
+ options?: Record<string, unknown> | undefined;
571
+ }, {
572
+ from?: string | string[] | undefined;
573
+ to: string;
574
+ type: "boolean" | "concat" | "constant" | "custom" | "date" | "decimal" | "expression" | "lookup" | "number" | "string";
575
+ max?: number | undefined;
576
+ precision?: number | undefined;
577
+ format?: string | undefined;
578
+ cleanse?: string | undefined;
579
+ lookup?: string | undefined;
580
+ separator?: string | undefined;
581
+ value?: string | number | boolean | undefined;
582
+ default?: string | number | boolean | null | undefined;
583
+ optional?: boolean | undefined;
584
+ customOp?: string | undefined;
585
+ options?: Record<string, unknown> | undefined;
586
+ }>, {
587
+ from?: string | string[] | undefined;
588
+ to: string;
589
+ type: "boolean" | "concat" | "constant" | "custom" | "date" | "decimal" | "expression" | "lookup" | "number" | "string";
590
+ max?: number | undefined;
591
+ precision?: number | undefined;
592
+ format?: string | undefined;
593
+ cleanse?: string | undefined;
594
+ lookup?: string | undefined;
595
+ separator?: string | undefined;
596
+ value?: string | number | boolean | undefined;
597
+ default?: string | number | boolean | null | undefined;
598
+ optional: boolean;
599
+ customOp?: string | undefined;
600
+ options?: Record<string, unknown> | undefined;
601
+ }, {
602
+ from?: string | string[] | undefined;
603
+ to: string;
604
+ type: "boolean" | "concat" | "constant" | "custom" | "date" | "decimal" | "expression" | "lookup" | "number" | "string";
605
+ max?: number | undefined;
606
+ precision?: number | undefined;
607
+ format?: string | undefined;
608
+ cleanse?: string | undefined;
609
+ lookup?: string | undefined;
610
+ separator?: string | undefined;
611
+ value?: string | number | boolean | undefined;
612
+ default?: string | number | boolean | null | undefined;
613
+ optional?: boolean | undefined;
614
+ customOp?: string | undefined;
615
+ options?: Record<string, unknown> | undefined;
616
+ }>, {
617
+ from?: string | string[] | undefined;
618
+ to: string;
619
+ type: "boolean" | "concat" | "constant" | "custom" | "date" | "decimal" | "expression" | "lookup" | "number" | "string";
620
+ max?: number | undefined;
621
+ precision?: number | undefined;
622
+ format?: string | undefined;
623
+ cleanse?: string | undefined;
624
+ lookup?: string | undefined;
625
+ separator?: string | undefined;
626
+ value?: string | number | boolean | undefined;
627
+ default?: string | number | boolean | null | undefined;
628
+ optional: boolean;
629
+ customOp?: string | undefined;
630
+ options?: Record<string, unknown> | undefined;
631
+ }, {
632
+ from?: string | string[] | undefined;
633
+ to: string;
634
+ type: "boolean" | "concat" | "constant" | "custom" | "date" | "decimal" | "expression" | "lookup" | "number" | "string";
635
+ max?: number | undefined;
636
+ precision?: number | undefined;
637
+ format?: string | undefined;
638
+ cleanse?: string | undefined;
639
+ lookup?: string | undefined;
640
+ separator?: string | undefined;
641
+ value?: string | number | boolean | undefined;
642
+ default?: string | number | boolean | null | undefined;
643
+ optional?: boolean | undefined;
644
+ customOp?: string | undefined;
645
+ options?: Record<string, unknown> | undefined;
646
+ }>;
647
+ export declare const TransformSchema: z.ZodObject<{
648
+ lookups: z.ZodDefault<z.ZodArray<z.ZodObject<{
649
+ name: z.ZodString;
650
+ source: z.ZodEffects<z.ZodObject<{
651
+ adapter: z.ZodEnum<["mssql", "pg", "csv", "xlsx", "rest"]>;
652
+ connection: z.ZodOptional<z.ZodString>;
653
+ query: z.ZodOptional<z.ZodString>;
654
+ file: z.ZodOptional<z.ZodString>;
655
+ endpoint: z.ZodOptional<z.ZodString>;
656
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
657
+ delimiter: z.ZodDefault<z.ZodString>;
658
+ encoding: z.ZodDefault<z.ZodString>;
659
+ sheet: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
660
+ pagination: z.ZodOptional<z.ZodObject<{
661
+ type: z.ZodEnum<["offset", "cursor", "page"]>;
662
+ pageSize: z.ZodDefault<z.ZodNumber>;
663
+ pageParam: z.ZodOptional<z.ZodString>;
664
+ totalField: z.ZodOptional<z.ZodString>;
665
+ dataField: z.ZodOptional<z.ZodString>;
666
+ cursorField: z.ZodOptional<z.ZodString>;
667
+ cursorParam: z.ZodOptional<z.ZodString>;
668
+ }, "strip", z.ZodTypeAny, {
669
+ type: "cursor" | "offset" | "page";
670
+ pageSize: number;
671
+ pageParam?: string | undefined;
672
+ totalField?: string | undefined;
673
+ dataField?: string | undefined;
674
+ cursorField?: string | undefined;
675
+ cursorParam?: string | undefined;
676
+ }, {
677
+ type: "cursor" | "offset" | "page";
678
+ pageSize?: number | undefined;
679
+ pageParam?: string | undefined;
680
+ totalField?: string | undefined;
681
+ dataField?: string | undefined;
682
+ cursorField?: string | undefined;
683
+ cursorParam?: string | undefined;
684
+ }>>;
685
+ }, "strip", z.ZodTypeAny, {
686
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
687
+ connection?: string | undefined;
688
+ query?: string | undefined;
689
+ file?: string | undefined;
690
+ endpoint?: string | undefined;
691
+ headers?: Record<string, string> | undefined;
692
+ delimiter: string;
693
+ encoding: string;
694
+ sheet?: string | number | undefined;
695
+ pagination?: {
696
+ type: "cursor" | "offset" | "page";
697
+ pageSize: number;
698
+ pageParam?: string | undefined;
699
+ totalField?: string | undefined;
700
+ dataField?: string | undefined;
701
+ cursorField?: string | undefined;
702
+ cursorParam?: string | undefined;
703
+ } | undefined;
704
+ }, {
705
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
706
+ connection?: string | undefined;
707
+ query?: string | undefined;
708
+ file?: string | undefined;
709
+ endpoint?: string | undefined;
710
+ headers?: Record<string, string> | undefined;
711
+ delimiter?: string | undefined;
712
+ encoding?: string | undefined;
713
+ sheet?: string | number | undefined;
714
+ pagination?: {
715
+ type: "cursor" | "offset" | "page";
716
+ pageSize?: number | undefined;
717
+ pageParam?: string | undefined;
718
+ totalField?: string | undefined;
719
+ dataField?: string | undefined;
720
+ cursorField?: string | undefined;
721
+ cursorParam?: string | undefined;
722
+ } | undefined;
723
+ }>, {
724
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
725
+ connection?: string | undefined;
726
+ query?: string | undefined;
727
+ file?: string | undefined;
728
+ endpoint?: string | undefined;
729
+ headers?: Record<string, string> | undefined;
730
+ delimiter: string;
731
+ encoding: string;
732
+ sheet?: string | number | undefined;
733
+ pagination?: {
734
+ type: "cursor" | "offset" | "page";
735
+ pageSize: number;
736
+ pageParam?: string | undefined;
737
+ totalField?: string | undefined;
738
+ dataField?: string | undefined;
739
+ cursorField?: string | undefined;
740
+ cursorParam?: string | undefined;
741
+ } | undefined;
742
+ }, {
743
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
744
+ connection?: string | undefined;
745
+ query?: string | undefined;
746
+ file?: string | undefined;
747
+ endpoint?: string | undefined;
748
+ headers?: Record<string, string> | undefined;
749
+ delimiter?: string | undefined;
750
+ encoding?: string | undefined;
751
+ sheet?: string | number | undefined;
752
+ pagination?: {
753
+ type: "cursor" | "offset" | "page";
754
+ pageSize?: number | undefined;
755
+ pageParam?: string | undefined;
756
+ totalField?: string | undefined;
757
+ dataField?: string | undefined;
758
+ cursorField?: string | undefined;
759
+ cursorParam?: string | undefined;
760
+ } | undefined;
761
+ }>;
762
+ key: z.ZodString;
763
+ value: z.ZodString;
764
+ }, "strip", z.ZodTypeAny, {
765
+ name: string;
766
+ source: {
767
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
768
+ connection?: string | undefined;
769
+ query?: string | undefined;
770
+ file?: string | undefined;
771
+ endpoint?: string | undefined;
772
+ headers?: Record<string, string> | undefined;
773
+ delimiter: string;
774
+ encoding: string;
775
+ sheet?: string | number | undefined;
776
+ pagination?: {
777
+ type: "cursor" | "offset" | "page";
778
+ pageSize: number;
779
+ pageParam?: string | undefined;
780
+ totalField?: string | undefined;
781
+ dataField?: string | undefined;
782
+ cursorField?: string | undefined;
783
+ cursorParam?: string | undefined;
784
+ } | undefined;
785
+ };
786
+ key: string;
787
+ value: string;
788
+ }, {
789
+ name: string;
790
+ source: {
791
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
792
+ connection?: string | undefined;
793
+ query?: string | undefined;
794
+ file?: string | undefined;
795
+ endpoint?: string | undefined;
796
+ headers?: Record<string, string> | undefined;
797
+ delimiter?: string | undefined;
798
+ encoding?: string | undefined;
799
+ sheet?: string | number | undefined;
800
+ pagination?: {
801
+ type: "cursor" | "offset" | "page";
802
+ pageSize?: number | undefined;
803
+ pageParam?: string | undefined;
804
+ totalField?: string | undefined;
805
+ dataField?: string | undefined;
806
+ cursorField?: string | undefined;
807
+ cursorParam?: string | undefined;
808
+ } | undefined;
809
+ };
810
+ key: string;
811
+ value: string;
812
+ }>, "many">>;
813
+ fields: z.ZodArray<z.ZodEffects<z.ZodEffects<z.ZodObject<{
814
+ from: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
815
+ to: z.ZodString;
816
+ type: z.ZodEnum<["string", "number", "decimal", "boolean", "date", "lookup", "concat", "constant", "expression", "custom"]>;
817
+ max: z.ZodOptional<z.ZodNumber>;
818
+ precision: z.ZodOptional<z.ZodNumber>;
819
+ format: z.ZodOptional<z.ZodString>;
820
+ cleanse: z.ZodOptional<z.ZodString>;
821
+ lookup: z.ZodOptional<z.ZodString>;
822
+ separator: z.ZodOptional<z.ZodString>;
823
+ value: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
824
+ default: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>;
825
+ optional: z.ZodDefault<z.ZodBoolean>;
826
+ customOp: z.ZodOptional<z.ZodString>;
827
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
828
+ }, "strip", z.ZodTypeAny, {
829
+ from?: string | string[] | undefined;
830
+ to: string;
831
+ type: "boolean" | "concat" | "constant" | "custom" | "date" | "decimal" | "expression" | "lookup" | "number" | "string";
832
+ max?: number | undefined;
833
+ precision?: number | undefined;
834
+ format?: string | undefined;
835
+ cleanse?: string | undefined;
836
+ lookup?: string | undefined;
837
+ separator?: string | undefined;
838
+ value?: string | number | boolean | undefined;
839
+ default?: string | number | boolean | null | undefined;
840
+ optional: boolean;
841
+ customOp?: string | undefined;
842
+ options?: Record<string, unknown> | undefined;
843
+ }, {
844
+ from?: string | string[] | undefined;
845
+ to: string;
846
+ type: "boolean" | "concat" | "constant" | "custom" | "date" | "decimal" | "expression" | "lookup" | "number" | "string";
847
+ max?: number | undefined;
848
+ precision?: number | undefined;
849
+ format?: string | undefined;
850
+ cleanse?: string | undefined;
851
+ lookup?: string | undefined;
852
+ separator?: string | undefined;
853
+ value?: string | number | boolean | undefined;
854
+ default?: string | number | boolean | null | undefined;
855
+ optional?: boolean | undefined;
856
+ customOp?: string | undefined;
857
+ options?: Record<string, unknown> | undefined;
858
+ }>, {
859
+ from?: string | string[] | undefined;
860
+ to: string;
861
+ type: "boolean" | "concat" | "constant" | "custom" | "date" | "decimal" | "expression" | "lookup" | "number" | "string";
862
+ max?: number | undefined;
863
+ precision?: number | undefined;
864
+ format?: string | undefined;
865
+ cleanse?: string | undefined;
866
+ lookup?: string | undefined;
867
+ separator?: string | undefined;
868
+ value?: string | number | boolean | undefined;
869
+ default?: string | number | boolean | null | undefined;
870
+ optional: boolean;
871
+ customOp?: string | undefined;
872
+ options?: Record<string, unknown> | undefined;
873
+ }, {
874
+ from?: string | string[] | undefined;
875
+ to: string;
876
+ type: "boolean" | "concat" | "constant" | "custom" | "date" | "decimal" | "expression" | "lookup" | "number" | "string";
877
+ max?: number | undefined;
878
+ precision?: number | undefined;
879
+ format?: string | undefined;
880
+ cleanse?: string | undefined;
881
+ lookup?: string | undefined;
882
+ separator?: string | undefined;
883
+ value?: string | number | boolean | undefined;
884
+ default?: string | number | boolean | null | undefined;
885
+ optional?: boolean | undefined;
886
+ customOp?: string | undefined;
887
+ options?: Record<string, unknown> | undefined;
888
+ }>, {
889
+ from?: string | string[] | undefined;
890
+ to: string;
891
+ type: "boolean" | "concat" | "constant" | "custom" | "date" | "decimal" | "expression" | "lookup" | "number" | "string";
892
+ max?: number | undefined;
893
+ precision?: number | undefined;
894
+ format?: string | undefined;
895
+ cleanse?: string | undefined;
896
+ lookup?: string | undefined;
897
+ separator?: string | undefined;
898
+ value?: string | number | boolean | undefined;
899
+ default?: string | number | boolean | null | undefined;
900
+ optional: boolean;
901
+ customOp?: string | undefined;
902
+ options?: Record<string, unknown> | undefined;
903
+ }, {
904
+ from?: string | string[] | undefined;
905
+ to: string;
906
+ type: "boolean" | "concat" | "constant" | "custom" | "date" | "decimal" | "expression" | "lookup" | "number" | "string";
907
+ max?: number | undefined;
908
+ precision?: number | undefined;
909
+ format?: string | undefined;
910
+ cleanse?: string | undefined;
911
+ lookup?: string | undefined;
912
+ separator?: string | undefined;
913
+ value?: string | number | boolean | undefined;
914
+ default?: string | number | boolean | null | undefined;
915
+ optional?: boolean | undefined;
916
+ customOp?: string | undefined;
917
+ options?: Record<string, unknown> | undefined;
918
+ }>, "many">;
919
+ }, "strip", z.ZodTypeAny, {
920
+ lookups: {
921
+ name: string;
922
+ source: {
923
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
924
+ connection?: string | undefined;
925
+ query?: string | undefined;
926
+ file?: string | undefined;
927
+ endpoint?: string | undefined;
928
+ headers?: Record<string, string> | undefined;
929
+ delimiter: string;
930
+ encoding: string;
931
+ sheet?: string | number | undefined;
932
+ pagination?: {
933
+ type: "cursor" | "offset" | "page";
934
+ pageSize: number;
935
+ pageParam?: string | undefined;
936
+ totalField?: string | undefined;
937
+ dataField?: string | undefined;
938
+ cursorField?: string | undefined;
939
+ cursorParam?: string | undefined;
940
+ } | undefined;
941
+ };
942
+ key: string;
943
+ value: string;
944
+ }[];
945
+ fields: {
946
+ from?: string | string[] | undefined;
947
+ to: string;
948
+ type: "boolean" | "concat" | "constant" | "custom" | "date" | "decimal" | "expression" | "lookup" | "number" | "string";
949
+ max?: number | undefined;
950
+ precision?: number | undefined;
951
+ format?: string | undefined;
952
+ cleanse?: string | undefined;
953
+ lookup?: string | undefined;
954
+ separator?: string | undefined;
955
+ value?: string | number | boolean | undefined;
956
+ default?: string | number | boolean | null | undefined;
957
+ optional: boolean;
958
+ customOp?: string | undefined;
959
+ options?: Record<string, unknown> | undefined;
960
+ }[];
961
+ }, {
962
+ lookups?: {
963
+ name: string;
964
+ source: {
965
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
966
+ connection?: string | undefined;
967
+ query?: string | undefined;
968
+ file?: string | undefined;
969
+ endpoint?: string | undefined;
970
+ headers?: Record<string, string> | undefined;
971
+ delimiter?: string | undefined;
972
+ encoding?: string | undefined;
973
+ sheet?: string | number | undefined;
974
+ pagination?: {
975
+ type: "cursor" | "offset" | "page";
976
+ pageSize?: number | undefined;
977
+ pageParam?: string | undefined;
978
+ totalField?: string | undefined;
979
+ dataField?: string | undefined;
980
+ cursorField?: string | undefined;
981
+ cursorParam?: string | undefined;
982
+ } | undefined;
983
+ };
984
+ key: string;
985
+ value: string;
986
+ }[] | undefined;
987
+ fields: {
988
+ from?: string | string[] | undefined;
989
+ to: string;
990
+ type: "boolean" | "concat" | "constant" | "custom" | "date" | "decimal" | "expression" | "lookup" | "number" | "string";
991
+ max?: number | undefined;
992
+ precision?: number | undefined;
993
+ format?: string | undefined;
994
+ cleanse?: string | undefined;
995
+ lookup?: string | undefined;
996
+ separator?: string | undefined;
997
+ value?: string | number | boolean | undefined;
998
+ default?: string | number | boolean | null | undefined;
999
+ optional?: boolean | undefined;
1000
+ customOp?: string | undefined;
1001
+ options?: Record<string, unknown> | undefined;
1002
+ }[];
1003
+ }>;
1004
+ export declare const TargetSchema: z.ZodEffects<z.ZodObject<{
1005
+ adapter: z.ZodEnum<["bc", "ifs", "bluecherry", "csv", "pg", "rest"]>;
1006
+ output: z.ZodOptional<z.ZodString>;
1007
+ entity: z.ZodOptional<z.ZodString>;
1008
+ connection: z.ZodOptional<z.ZodString>;
1009
+ includeHeader: z.ZodOptional<z.ZodBoolean>;
1010
+ columnOrder: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1011
+ dateFormat: z.ZodOptional<z.ZodString>;
1012
+ delimiter: z.ZodDefault<z.ZodString>;
1013
+ encoding: z.ZodDefault<z.ZodString>;
1014
+ nullValue: z.ZodDefault<z.ZodString>;
1015
+ template: z.ZodOptional<z.ZodString>;
1016
+ baseUrl: z.ZodOptional<z.ZodString>;
1017
+ company: z.ZodOptional<z.ZodString>;
1018
+ apiVersion: z.ZodDefault<z.ZodString>;
1019
+ onConflict: z.ZodDefault<z.ZodEnum<["fail", "upsert", "ignore"]>>;
1020
+ upsertKey: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1021
+ batchEndpoint: z.ZodDefault<z.ZodBoolean>;
1022
+ table: z.ZodOptional<z.ZodString>;
1023
+ schema: z.ZodDefault<z.ZodString>;
1024
+ }, "strip", z.ZodTypeAny, {
1025
+ adapter: "bc" | "bluecherry" | "csv" | "ifs" | "pg" | "rest";
1026
+ output?: string | undefined;
1027
+ entity?: string | undefined;
1028
+ connection?: string | undefined;
1029
+ includeHeader?: boolean | undefined;
1030
+ columnOrder?: string[] | undefined;
1031
+ dateFormat?: string | undefined;
1032
+ delimiter: string;
1033
+ encoding: string;
1034
+ nullValue: string;
1035
+ template?: string | undefined;
1036
+ baseUrl?: string | undefined;
1037
+ company?: string | undefined;
1038
+ apiVersion: string;
1039
+ onConflict: "fail" | "ignore" | "upsert";
1040
+ upsertKey?: string[] | undefined;
1041
+ batchEndpoint: boolean;
1042
+ table?: string | undefined;
1043
+ schema: string;
1044
+ }, {
1045
+ adapter: "bc" | "bluecherry" | "csv" | "ifs" | "pg" | "rest";
1046
+ output?: string | undefined;
1047
+ entity?: string | undefined;
1048
+ connection?: string | undefined;
1049
+ includeHeader?: boolean | undefined;
1050
+ columnOrder?: string[] | undefined;
1051
+ dateFormat?: string | undefined;
1052
+ delimiter?: string | undefined;
1053
+ encoding?: string | undefined;
1054
+ nullValue?: string | undefined;
1055
+ template?: string | undefined;
1056
+ baseUrl?: string | undefined;
1057
+ company?: string | undefined;
1058
+ apiVersion?: string | undefined;
1059
+ onConflict?: "fail" | "ignore" | "upsert" | undefined;
1060
+ upsertKey?: string[] | undefined;
1061
+ batchEndpoint?: boolean | undefined;
1062
+ table?: string | undefined;
1063
+ schema?: string | undefined;
1064
+ }>, {
1065
+ adapter: "bc" | "bluecherry" | "csv" | "ifs" | "pg" | "rest";
1066
+ output?: string | undefined;
1067
+ entity?: string | undefined;
1068
+ connection?: string | undefined;
1069
+ includeHeader?: boolean | undefined;
1070
+ columnOrder?: string[] | undefined;
1071
+ dateFormat?: string | undefined;
1072
+ delimiter: string;
1073
+ encoding: string;
1074
+ nullValue: string;
1075
+ template?: string | undefined;
1076
+ baseUrl?: string | undefined;
1077
+ company?: string | undefined;
1078
+ apiVersion: string;
1079
+ onConflict: "fail" | "ignore" | "upsert";
1080
+ upsertKey?: string[] | undefined;
1081
+ batchEndpoint: boolean;
1082
+ table?: string | undefined;
1083
+ schema: string;
1084
+ }, {
1085
+ adapter: "bc" | "bluecherry" | "csv" | "ifs" | "pg" | "rest";
1086
+ output?: string | undefined;
1087
+ entity?: string | undefined;
1088
+ connection?: string | undefined;
1089
+ includeHeader?: boolean | undefined;
1090
+ columnOrder?: string[] | undefined;
1091
+ dateFormat?: string | undefined;
1092
+ delimiter?: string | undefined;
1093
+ encoding?: string | undefined;
1094
+ nullValue?: string | undefined;
1095
+ template?: string | undefined;
1096
+ baseUrl?: string | undefined;
1097
+ company?: string | undefined;
1098
+ apiVersion?: string | undefined;
1099
+ onConflict?: "fail" | "ignore" | "upsert" | undefined;
1100
+ upsertKey?: string[] | undefined;
1101
+ batchEndpoint?: boolean | undefined;
1102
+ table?: string | undefined;
1103
+ schema?: string | undefined;
1104
+ }>;
1105
+ export declare const RunSchema: z.ZodObject<{
1106
+ mode: z.ZodDefault<z.ZodEnum<["full", "incremental", "validate-only"]>>;
1107
+ batchSize: z.ZodDefault<z.ZodNumber>;
1108
+ onError: z.ZodDefault<z.ZodEnum<["continue", "stop"]>>;
1109
+ logLevel: z.ZodDefault<z.ZodEnum<["debug", "info", "warn", "error"]>>;
1110
+ dryRun: z.ZodDefault<z.ZodBoolean>;
1111
+ outputDir: z.ZodDefault<z.ZodString>;
1112
+ stagingDb: z.ZodDefault<z.ZodString>;
1113
+ enrichConcurrency: z.ZodDefault<z.ZodNumber>;
1114
+ enrichTimeoutMs: z.ZodDefault<z.ZodNumber>;
1115
+ enrichMaxRetries: z.ZodDefault<z.ZodNumber>;
1116
+ incrementalField: z.ZodOptional<z.ZodString>;
1117
+ incrementalSince: z.ZodOptional<z.ZodString>;
1118
+ }, "strip", z.ZodTypeAny, {
1119
+ mode: "full" | "incremental" | "validate-only";
1120
+ batchSize: number;
1121
+ onError: "continue" | "stop";
1122
+ logLevel: "debug" | "error" | "info" | "warn";
1123
+ dryRun: boolean;
1124
+ outputDir: string;
1125
+ stagingDb: string;
1126
+ enrichConcurrency: number;
1127
+ enrichTimeoutMs: number;
1128
+ enrichMaxRetries: number;
1129
+ incrementalField?: string | undefined;
1130
+ incrementalSince?: string | undefined;
1131
+ }, {
1132
+ mode?: "full" | "incremental" | "validate-only" | undefined;
1133
+ batchSize?: number | undefined;
1134
+ onError?: "continue" | "stop" | undefined;
1135
+ logLevel?: "debug" | "error" | "info" | "warn" | undefined;
1136
+ dryRun?: boolean | undefined;
1137
+ outputDir?: string | undefined;
1138
+ stagingDb?: string | undefined;
1139
+ enrichConcurrency?: number | undefined;
1140
+ enrichTimeoutMs?: number | undefined;
1141
+ enrichMaxRetries?: number | undefined;
1142
+ incrementalField?: string | undefined;
1143
+ incrementalSince?: string | undefined;
1144
+ }>;
1145
+ export declare const MergeSchema: z.ZodObject<{
1146
+ key: z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>;
1147
+ strategy: z.ZodDefault<z.ZodEnum<["coalesce", "priority-override", "union", "intersect"]>>;
1148
+ onUnmatched: z.ZodDefault<z.ZodEnum<["include", "exclude", "warn", "error"]>>;
1149
+ fieldStrategies: z.ZodDefault<z.ZodArray<z.ZodEffects<z.ZodObject<{
1150
+ field: z.ZodString;
1151
+ strategy: z.ZodOptional<z.ZodEnum<["coalesce", "priority-override"]>>;
1152
+ source: z.ZodOptional<z.ZodString>;
1153
+ }, "strip", z.ZodTypeAny, {
1154
+ field: string;
1155
+ strategy?: "coalesce" | "priority-override" | undefined;
1156
+ source?: string | undefined;
1157
+ }, {
1158
+ field: string;
1159
+ strategy?: "coalesce" | "priority-override" | undefined;
1160
+ source?: string | undefined;
1161
+ }>, {
1162
+ field: string;
1163
+ strategy?: "coalesce" | "priority-override" | undefined;
1164
+ source?: string | undefined;
1165
+ }, {
1166
+ field: string;
1167
+ strategy?: "coalesce" | "priority-override" | undefined;
1168
+ source?: string | undefined;
1169
+ }>, "many">>;
1170
+ conflictLog: z.ZodOptional<z.ZodString>;
1171
+ incrementalSource: z.ZodOptional<z.ZodString>;
1172
+ }, "strip", z.ZodTypeAny, {
1173
+ key: string | string[];
1174
+ strategy: "coalesce" | "intersect" | "priority-override" | "union";
1175
+ onUnmatched: "error" | "exclude" | "include" | "warn";
1176
+ fieldStrategies: {
1177
+ field: string;
1178
+ strategy?: "coalesce" | "priority-override" | undefined;
1179
+ source?: string | undefined;
1180
+ }[];
1181
+ conflictLog?: string | undefined;
1182
+ incrementalSource?: string | undefined;
1183
+ }, {
1184
+ key: string | string[];
1185
+ strategy?: "coalesce" | "intersect" | "priority-override" | "union" | undefined;
1186
+ onUnmatched?: "error" | "exclude" | "include" | "warn" | undefined;
1187
+ fieldStrategies?: {
1188
+ field: string;
1189
+ strategy?: "coalesce" | "priority-override" | undefined;
1190
+ source?: string | undefined;
1191
+ }[] | undefined;
1192
+ conflictLog?: string | undefined;
1193
+ incrementalSource?: string | undefined;
1194
+ }>;
1195
+ export declare const MultiSourceEntrySchema: z.ZodEffects<z.ZodObject<{
1196
+ adapter: z.ZodEnum<["mssql", "pg", "csv", "xlsx", "rest"]>;
1197
+ connection: z.ZodOptional<z.ZodString>;
1198
+ query: z.ZodOptional<z.ZodString>;
1199
+ file: z.ZodOptional<z.ZodString>;
1200
+ endpoint: z.ZodOptional<z.ZodString>;
1201
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1202
+ delimiter: z.ZodDefault<z.ZodString>;
1203
+ encoding: z.ZodDefault<z.ZodString>;
1204
+ sheet: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
1205
+ pagination: z.ZodOptional<z.ZodObject<{
1206
+ type: z.ZodEnum<["offset", "cursor", "page"]>;
1207
+ pageSize: z.ZodDefault<z.ZodNumber>;
1208
+ pageParam: z.ZodOptional<z.ZodString>;
1209
+ totalField: z.ZodOptional<z.ZodString>;
1210
+ dataField: z.ZodOptional<z.ZodString>;
1211
+ cursorField: z.ZodOptional<z.ZodString>;
1212
+ cursorParam: z.ZodOptional<z.ZodString>;
1213
+ }, "strip", z.ZodTypeAny, {
1214
+ type: "cursor" | "offset" | "page";
1215
+ pageSize: number;
1216
+ pageParam?: string | undefined;
1217
+ totalField?: string | undefined;
1218
+ dataField?: string | undefined;
1219
+ cursorField?: string | undefined;
1220
+ cursorParam?: string | undefined;
1221
+ }, {
1222
+ type: "cursor" | "offset" | "page";
1223
+ pageSize?: number | undefined;
1224
+ pageParam?: string | undefined;
1225
+ totalField?: string | undefined;
1226
+ dataField?: string | undefined;
1227
+ cursorField?: string | undefined;
1228
+ cursorParam?: string | undefined;
1229
+ }>>;
1230
+ } & {
1231
+ id: z.ZodString;
1232
+ priority: z.ZodNumber;
1233
+ rename: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1234
+ }, "strip", z.ZodTypeAny, {
1235
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
1236
+ connection?: string | undefined;
1237
+ query?: string | undefined;
1238
+ file?: string | undefined;
1239
+ endpoint?: string | undefined;
1240
+ headers?: Record<string, string> | undefined;
1241
+ delimiter: string;
1242
+ encoding: string;
1243
+ sheet?: string | number | undefined;
1244
+ pagination?: {
1245
+ type: "cursor" | "offset" | "page";
1246
+ pageSize: number;
1247
+ pageParam?: string | undefined;
1248
+ totalField?: string | undefined;
1249
+ dataField?: string | undefined;
1250
+ cursorField?: string | undefined;
1251
+ cursorParam?: string | undefined;
1252
+ } | undefined;
1253
+ id: string;
1254
+ priority: number;
1255
+ rename?: Record<string, string> | undefined;
1256
+ }, {
1257
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
1258
+ connection?: string | undefined;
1259
+ query?: string | undefined;
1260
+ file?: string | undefined;
1261
+ endpoint?: string | undefined;
1262
+ headers?: Record<string, string> | undefined;
1263
+ delimiter?: string | undefined;
1264
+ encoding?: string | undefined;
1265
+ sheet?: string | number | undefined;
1266
+ pagination?: {
1267
+ type: "cursor" | "offset" | "page";
1268
+ pageSize?: number | undefined;
1269
+ pageParam?: string | undefined;
1270
+ totalField?: string | undefined;
1271
+ dataField?: string | undefined;
1272
+ cursorField?: string | undefined;
1273
+ cursorParam?: string | undefined;
1274
+ } | undefined;
1275
+ id: string;
1276
+ priority: number;
1277
+ rename?: Record<string, string> | undefined;
1278
+ }>, {
1279
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
1280
+ connection?: string | undefined;
1281
+ query?: string | undefined;
1282
+ file?: string | undefined;
1283
+ endpoint?: string | undefined;
1284
+ headers?: Record<string, string> | undefined;
1285
+ delimiter: string;
1286
+ encoding: string;
1287
+ sheet?: string | number | undefined;
1288
+ pagination?: {
1289
+ type: "cursor" | "offset" | "page";
1290
+ pageSize: number;
1291
+ pageParam?: string | undefined;
1292
+ totalField?: string | undefined;
1293
+ dataField?: string | undefined;
1294
+ cursorField?: string | undefined;
1295
+ cursorParam?: string | undefined;
1296
+ } | undefined;
1297
+ id: string;
1298
+ priority: number;
1299
+ rename?: Record<string, string> | undefined;
1300
+ }, {
1301
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
1302
+ connection?: string | undefined;
1303
+ query?: string | undefined;
1304
+ file?: string | undefined;
1305
+ endpoint?: string | undefined;
1306
+ headers?: Record<string, string> | undefined;
1307
+ delimiter?: string | undefined;
1308
+ encoding?: string | undefined;
1309
+ sheet?: string | number | undefined;
1310
+ pagination?: {
1311
+ type: "cursor" | "offset" | "page";
1312
+ pageSize?: number | undefined;
1313
+ pageParam?: string | undefined;
1314
+ totalField?: string | undefined;
1315
+ dataField?: string | undefined;
1316
+ cursorField?: string | undefined;
1317
+ cursorParam?: string | undefined;
1318
+ } | undefined;
1319
+ id: string;
1320
+ priority: number;
1321
+ rename?: Record<string, string> | undefined;
1322
+ }>;
1323
+ export declare const PipelineSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodObject<{
1324
+ pipeline: z.ZodObject<{
1325
+ name: z.ZodString;
1326
+ client: z.ZodString;
1327
+ version: z.ZodString;
1328
+ entity: z.ZodString;
1329
+ description: z.ZodOptional<z.ZodString>;
1330
+ }, "strip", z.ZodTypeAny, {
1331
+ name: string;
1332
+ client: string;
1333
+ version: string;
1334
+ entity: string;
1335
+ description?: string | undefined;
1336
+ }, {
1337
+ name: string;
1338
+ client: string;
1339
+ version: string;
1340
+ entity: string;
1341
+ description?: string | undefined;
1342
+ }>;
1343
+ source: z.ZodOptional<z.ZodEffects<z.ZodObject<{
1344
+ adapter: z.ZodEnum<["mssql", "pg", "csv", "xlsx", "rest"]>;
1345
+ connection: z.ZodOptional<z.ZodString>;
1346
+ query: z.ZodOptional<z.ZodString>;
1347
+ file: z.ZodOptional<z.ZodString>;
1348
+ endpoint: z.ZodOptional<z.ZodString>;
1349
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1350
+ delimiter: z.ZodDefault<z.ZodString>;
1351
+ encoding: z.ZodDefault<z.ZodString>;
1352
+ sheet: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
1353
+ pagination: z.ZodOptional<z.ZodObject<{
1354
+ type: z.ZodEnum<["offset", "cursor", "page"]>;
1355
+ pageSize: z.ZodDefault<z.ZodNumber>;
1356
+ pageParam: z.ZodOptional<z.ZodString>;
1357
+ totalField: z.ZodOptional<z.ZodString>;
1358
+ dataField: z.ZodOptional<z.ZodString>;
1359
+ cursorField: z.ZodOptional<z.ZodString>;
1360
+ cursorParam: z.ZodOptional<z.ZodString>;
1361
+ }, "strip", z.ZodTypeAny, {
1362
+ type: "cursor" | "offset" | "page";
1363
+ pageSize: number;
1364
+ pageParam?: string | undefined;
1365
+ totalField?: string | undefined;
1366
+ dataField?: string | undefined;
1367
+ cursorField?: string | undefined;
1368
+ cursorParam?: string | undefined;
1369
+ }, {
1370
+ type: "cursor" | "offset" | "page";
1371
+ pageSize?: number | undefined;
1372
+ pageParam?: string | undefined;
1373
+ totalField?: string | undefined;
1374
+ dataField?: string | undefined;
1375
+ cursorField?: string | undefined;
1376
+ cursorParam?: string | undefined;
1377
+ }>>;
1378
+ }, "strip", z.ZodTypeAny, {
1379
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
1380
+ connection?: string | undefined;
1381
+ query?: string | undefined;
1382
+ file?: string | undefined;
1383
+ endpoint?: string | undefined;
1384
+ headers?: Record<string, string> | undefined;
1385
+ delimiter: string;
1386
+ encoding: string;
1387
+ sheet?: string | number | undefined;
1388
+ pagination?: {
1389
+ type: "cursor" | "offset" | "page";
1390
+ pageSize: number;
1391
+ pageParam?: string | undefined;
1392
+ totalField?: string | undefined;
1393
+ dataField?: string | undefined;
1394
+ cursorField?: string | undefined;
1395
+ cursorParam?: string | undefined;
1396
+ } | undefined;
1397
+ }, {
1398
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
1399
+ connection?: string | undefined;
1400
+ query?: string | undefined;
1401
+ file?: string | undefined;
1402
+ endpoint?: string | undefined;
1403
+ headers?: Record<string, string> | undefined;
1404
+ delimiter?: string | undefined;
1405
+ encoding?: string | undefined;
1406
+ sheet?: string | number | undefined;
1407
+ pagination?: {
1408
+ type: "cursor" | "offset" | "page";
1409
+ pageSize?: number | undefined;
1410
+ pageParam?: string | undefined;
1411
+ totalField?: string | undefined;
1412
+ dataField?: string | undefined;
1413
+ cursorField?: string | undefined;
1414
+ cursorParam?: string | undefined;
1415
+ } | undefined;
1416
+ }>, {
1417
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
1418
+ connection?: string | undefined;
1419
+ query?: string | undefined;
1420
+ file?: string | undefined;
1421
+ endpoint?: string | undefined;
1422
+ headers?: Record<string, string> | undefined;
1423
+ delimiter: string;
1424
+ encoding: string;
1425
+ sheet?: string | number | undefined;
1426
+ pagination?: {
1427
+ type: "cursor" | "offset" | "page";
1428
+ pageSize: number;
1429
+ pageParam?: string | undefined;
1430
+ totalField?: string | undefined;
1431
+ dataField?: string | undefined;
1432
+ cursorField?: string | undefined;
1433
+ cursorParam?: string | undefined;
1434
+ } | undefined;
1435
+ }, {
1436
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
1437
+ connection?: string | undefined;
1438
+ query?: string | undefined;
1439
+ file?: string | undefined;
1440
+ endpoint?: string | undefined;
1441
+ headers?: Record<string, string> | undefined;
1442
+ delimiter?: string | undefined;
1443
+ encoding?: string | undefined;
1444
+ sheet?: string | number | undefined;
1445
+ pagination?: {
1446
+ type: "cursor" | "offset" | "page";
1447
+ pageSize?: number | undefined;
1448
+ pageParam?: string | undefined;
1449
+ totalField?: string | undefined;
1450
+ dataField?: string | undefined;
1451
+ cursorField?: string | undefined;
1452
+ cursorParam?: string | undefined;
1453
+ } | undefined;
1454
+ }>>;
1455
+ sources: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodObject<{
1456
+ adapter: z.ZodEnum<["mssql", "pg", "csv", "xlsx", "rest"]>;
1457
+ connection: z.ZodOptional<z.ZodString>;
1458
+ query: z.ZodOptional<z.ZodString>;
1459
+ file: z.ZodOptional<z.ZodString>;
1460
+ endpoint: z.ZodOptional<z.ZodString>;
1461
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1462
+ delimiter: z.ZodDefault<z.ZodString>;
1463
+ encoding: z.ZodDefault<z.ZodString>;
1464
+ sheet: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
1465
+ pagination: z.ZodOptional<z.ZodObject<{
1466
+ type: z.ZodEnum<["offset", "cursor", "page"]>;
1467
+ pageSize: z.ZodDefault<z.ZodNumber>;
1468
+ pageParam: z.ZodOptional<z.ZodString>;
1469
+ totalField: z.ZodOptional<z.ZodString>;
1470
+ dataField: z.ZodOptional<z.ZodString>;
1471
+ cursorField: z.ZodOptional<z.ZodString>;
1472
+ cursorParam: z.ZodOptional<z.ZodString>;
1473
+ }, "strip", z.ZodTypeAny, {
1474
+ type: "cursor" | "offset" | "page";
1475
+ pageSize: number;
1476
+ pageParam?: string | undefined;
1477
+ totalField?: string | undefined;
1478
+ dataField?: string | undefined;
1479
+ cursorField?: string | undefined;
1480
+ cursorParam?: string | undefined;
1481
+ }, {
1482
+ type: "cursor" | "offset" | "page";
1483
+ pageSize?: number | undefined;
1484
+ pageParam?: string | undefined;
1485
+ totalField?: string | undefined;
1486
+ dataField?: string | undefined;
1487
+ cursorField?: string | undefined;
1488
+ cursorParam?: string | undefined;
1489
+ }>>;
1490
+ } & {
1491
+ id: z.ZodString;
1492
+ priority: z.ZodNumber;
1493
+ rename: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1494
+ }, "strip", z.ZodTypeAny, {
1495
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
1496
+ connection?: string | undefined;
1497
+ query?: string | undefined;
1498
+ file?: string | undefined;
1499
+ endpoint?: string | undefined;
1500
+ headers?: Record<string, string> | undefined;
1501
+ delimiter: string;
1502
+ encoding: string;
1503
+ sheet?: string | number | undefined;
1504
+ pagination?: {
1505
+ type: "cursor" | "offset" | "page";
1506
+ pageSize: number;
1507
+ pageParam?: string | undefined;
1508
+ totalField?: string | undefined;
1509
+ dataField?: string | undefined;
1510
+ cursorField?: string | undefined;
1511
+ cursorParam?: string | undefined;
1512
+ } | undefined;
1513
+ id: string;
1514
+ priority: number;
1515
+ rename?: Record<string, string> | undefined;
1516
+ }, {
1517
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
1518
+ connection?: string | undefined;
1519
+ query?: string | undefined;
1520
+ file?: string | undefined;
1521
+ endpoint?: string | undefined;
1522
+ headers?: Record<string, string> | undefined;
1523
+ delimiter?: string | undefined;
1524
+ encoding?: string | undefined;
1525
+ sheet?: string | number | undefined;
1526
+ pagination?: {
1527
+ type: "cursor" | "offset" | "page";
1528
+ pageSize?: number | undefined;
1529
+ pageParam?: string | undefined;
1530
+ totalField?: string | undefined;
1531
+ dataField?: string | undefined;
1532
+ cursorField?: string | undefined;
1533
+ cursorParam?: string | undefined;
1534
+ } | undefined;
1535
+ id: string;
1536
+ priority: number;
1537
+ rename?: Record<string, string> | undefined;
1538
+ }>, {
1539
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
1540
+ connection?: string | undefined;
1541
+ query?: string | undefined;
1542
+ file?: string | undefined;
1543
+ endpoint?: string | undefined;
1544
+ headers?: Record<string, string> | undefined;
1545
+ delimiter: string;
1546
+ encoding: string;
1547
+ sheet?: string | number | undefined;
1548
+ pagination?: {
1549
+ type: "cursor" | "offset" | "page";
1550
+ pageSize: number;
1551
+ pageParam?: string | undefined;
1552
+ totalField?: string | undefined;
1553
+ dataField?: string | undefined;
1554
+ cursorField?: string | undefined;
1555
+ cursorParam?: string | undefined;
1556
+ } | undefined;
1557
+ id: string;
1558
+ priority: number;
1559
+ rename?: Record<string, string> | undefined;
1560
+ }, {
1561
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
1562
+ connection?: string | undefined;
1563
+ query?: string | undefined;
1564
+ file?: string | undefined;
1565
+ endpoint?: string | undefined;
1566
+ headers?: Record<string, string> | undefined;
1567
+ delimiter?: string | undefined;
1568
+ encoding?: string | undefined;
1569
+ sheet?: string | number | undefined;
1570
+ pagination?: {
1571
+ type: "cursor" | "offset" | "page";
1572
+ pageSize?: number | undefined;
1573
+ pageParam?: string | undefined;
1574
+ totalField?: string | undefined;
1575
+ dataField?: string | undefined;
1576
+ cursorField?: string | undefined;
1577
+ cursorParam?: string | undefined;
1578
+ } | undefined;
1579
+ id: string;
1580
+ priority: number;
1581
+ rename?: Record<string, string> | undefined;
1582
+ }>, "many">>;
1583
+ merge: z.ZodOptional<z.ZodObject<{
1584
+ key: z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>;
1585
+ strategy: z.ZodDefault<z.ZodEnum<["coalesce", "priority-override", "union", "intersect"]>>;
1586
+ onUnmatched: z.ZodDefault<z.ZodEnum<["include", "exclude", "warn", "error"]>>;
1587
+ fieldStrategies: z.ZodDefault<z.ZodArray<z.ZodEffects<z.ZodObject<{
1588
+ field: z.ZodString;
1589
+ strategy: z.ZodOptional<z.ZodEnum<["coalesce", "priority-override"]>>;
1590
+ source: z.ZodOptional<z.ZodString>;
1591
+ }, "strip", z.ZodTypeAny, {
1592
+ field: string;
1593
+ strategy?: "coalesce" | "priority-override" | undefined;
1594
+ source?: string | undefined;
1595
+ }, {
1596
+ field: string;
1597
+ strategy?: "coalesce" | "priority-override" | undefined;
1598
+ source?: string | undefined;
1599
+ }>, {
1600
+ field: string;
1601
+ strategy?: "coalesce" | "priority-override" | undefined;
1602
+ source?: string | undefined;
1603
+ }, {
1604
+ field: string;
1605
+ strategy?: "coalesce" | "priority-override" | undefined;
1606
+ source?: string | undefined;
1607
+ }>, "many">>;
1608
+ conflictLog: z.ZodOptional<z.ZodString>;
1609
+ incrementalSource: z.ZodOptional<z.ZodString>;
1610
+ }, "strip", z.ZodTypeAny, {
1611
+ key: string | string[];
1612
+ strategy: "coalesce" | "intersect" | "priority-override" | "union";
1613
+ onUnmatched: "error" | "exclude" | "include" | "warn";
1614
+ fieldStrategies: {
1615
+ field: string;
1616
+ strategy?: "coalesce" | "priority-override" | undefined;
1617
+ source?: string | undefined;
1618
+ }[];
1619
+ conflictLog?: string | undefined;
1620
+ incrementalSource?: string | undefined;
1621
+ }, {
1622
+ key: string | string[];
1623
+ strategy?: "coalesce" | "intersect" | "priority-override" | "union" | undefined;
1624
+ onUnmatched?: "error" | "exclude" | "include" | "warn" | undefined;
1625
+ fieldStrategies?: {
1626
+ field: string;
1627
+ strategy?: "coalesce" | "priority-override" | undefined;
1628
+ source?: string | undefined;
1629
+ }[] | undefined;
1630
+ conflictLog?: string | undefined;
1631
+ incrementalSource?: string | undefined;
1632
+ }>>;
1633
+ enrich: z.ZodOptional<z.ZodObject<{
1634
+ cache: z.ZodDefault<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"persist">]>>;
1635
+ onError: z.ZodDefault<z.ZodEnum<["flag", "skip", "fail"]>>;
1636
+ lookups: z.ZodArray<z.ZodObject<{
1637
+ field: z.ZodString;
1638
+ provider: z.ZodString;
1639
+ writeColumns: z.ZodObject<{
1640
+ valid: z.ZodString;
1641
+ }, "strip", z.ZodString, z.objectOutputType<{
1642
+ valid: z.ZodString;
1643
+ }, z.ZodString, "strip">, z.objectInputType<{
1644
+ valid: z.ZodString;
1645
+ }, z.ZodString, "strip">>;
1646
+ preValidate: z.ZodOptional<z.ZodString>;
1647
+ onError: z.ZodOptional<z.ZodEnum<["flag", "skip", "fail"]>>;
1648
+ cache: z.ZodOptional<z.ZodBoolean>;
1649
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1650
+ }, "strip", z.ZodTypeAny, {
1651
+ field: string;
1652
+ provider: string;
1653
+ writeColumns: {
1654
+ valid: string;
1655
+ } & {
1656
+ [k: string]: string;
1657
+ };
1658
+ preValidate?: string | undefined;
1659
+ onError?: "fail" | "flag" | "skip" | undefined;
1660
+ cache?: boolean | undefined;
1661
+ options?: Record<string, unknown> | undefined;
1662
+ }, {
1663
+ field: string;
1664
+ provider: string;
1665
+ writeColumns: {
1666
+ valid: string;
1667
+ } & {
1668
+ [k: string]: string;
1669
+ };
1670
+ preValidate?: string | undefined;
1671
+ onError?: "fail" | "flag" | "skip" | undefined;
1672
+ cache?: boolean | undefined;
1673
+ options?: Record<string, unknown> | undefined;
1674
+ }>, "many">;
1675
+ }, "strip", z.ZodTypeAny, {
1676
+ cache: "persist" | boolean;
1677
+ onError: "fail" | "flag" | "skip";
1678
+ lookups: {
1679
+ field: string;
1680
+ provider: string;
1681
+ writeColumns: {
1682
+ valid: string;
1683
+ } & {
1684
+ [k: string]: string;
1685
+ };
1686
+ preValidate?: string | undefined;
1687
+ onError?: "fail" | "flag" | "skip" | undefined;
1688
+ cache?: boolean | undefined;
1689
+ options?: Record<string, unknown> | undefined;
1690
+ }[];
1691
+ }, {
1692
+ cache?: "persist" | boolean | undefined;
1693
+ onError?: "fail" | "flag" | "skip" | undefined;
1694
+ lookups: {
1695
+ field: string;
1696
+ provider: string;
1697
+ writeColumns: {
1698
+ valid: string;
1699
+ } & {
1700
+ [k: string]: string;
1701
+ };
1702
+ preValidate?: string | undefined;
1703
+ onError?: "fail" | "flag" | "skip" | undefined;
1704
+ cache?: boolean | undefined;
1705
+ options?: Record<string, unknown> | undefined;
1706
+ }[];
1707
+ }>>;
1708
+ dq: z.ZodObject<{
1709
+ rulesFile: z.ZodOptional<z.ZodString>;
1710
+ stopOnCritical: z.ZodDefault<z.ZodBoolean>;
1711
+ rejectionFile: z.ZodOptional<z.ZodString>;
1712
+ rules: z.ZodDefault<z.ZodArray<z.ZodObject<{
1713
+ field: z.ZodString;
1714
+ sourceId: z.ZodOptional<z.ZodString>;
1715
+ checks: z.ZodArray<z.ZodObject<{
1716
+ type: z.ZodEnum<["notNull", "unique", "pattern", "email", "ukPostcode", "maxLength", "min", "max", "allowedValues"]>;
1717
+ value: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodArray<z.ZodString, "many">]>>;
1718
+ severity: z.ZodEnum<["critical", "warning", "info"]>;
1719
+ message: z.ZodOptional<z.ZodString>;
1720
+ }, "strip", z.ZodTypeAny, {
1721
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
1722
+ value?: string | number | string[] | undefined;
1723
+ severity: "critical" | "info" | "warning";
1724
+ message?: string | undefined;
1725
+ }, {
1726
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
1727
+ value?: string | number | string[] | undefined;
1728
+ severity: "critical" | "info" | "warning";
1729
+ message?: string | undefined;
1730
+ }>, "many">;
1731
+ }, "strip", z.ZodTypeAny, {
1732
+ field: string;
1733
+ sourceId?: string | undefined;
1734
+ checks: {
1735
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
1736
+ value?: string | number | string[] | undefined;
1737
+ severity: "critical" | "info" | "warning";
1738
+ message?: string | undefined;
1739
+ }[];
1740
+ }, {
1741
+ field: string;
1742
+ sourceId?: string | undefined;
1743
+ checks: {
1744
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
1745
+ value?: string | number | string[] | undefined;
1746
+ severity: "critical" | "info" | "warning";
1747
+ message?: string | undefined;
1748
+ }[];
1749
+ }>, "many">>;
1750
+ }, "strip", z.ZodTypeAny, {
1751
+ rulesFile?: string | undefined;
1752
+ stopOnCritical: boolean;
1753
+ rejectionFile?: string | undefined;
1754
+ rules: {
1755
+ field: string;
1756
+ sourceId?: string | undefined;
1757
+ checks: {
1758
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
1759
+ value?: string | number | string[] | undefined;
1760
+ severity: "critical" | "info" | "warning";
1761
+ message?: string | undefined;
1762
+ }[];
1763
+ }[];
1764
+ }, {
1765
+ rulesFile?: string | undefined;
1766
+ stopOnCritical?: boolean | undefined;
1767
+ rejectionFile?: string | undefined;
1768
+ rules?: {
1769
+ field: string;
1770
+ sourceId?: string | undefined;
1771
+ checks: {
1772
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
1773
+ value?: string | number | string[] | undefined;
1774
+ severity: "critical" | "info" | "warning";
1775
+ message?: string | undefined;
1776
+ }[];
1777
+ }[] | undefined;
1778
+ }>;
1779
+ transform: z.ZodObject<{
1780
+ lookups: z.ZodDefault<z.ZodArray<z.ZodObject<{
1781
+ name: z.ZodString;
1782
+ source: z.ZodEffects<z.ZodObject<{
1783
+ adapter: z.ZodEnum<["mssql", "pg", "csv", "xlsx", "rest"]>;
1784
+ connection: z.ZodOptional<z.ZodString>;
1785
+ query: z.ZodOptional<z.ZodString>;
1786
+ file: z.ZodOptional<z.ZodString>;
1787
+ endpoint: z.ZodOptional<z.ZodString>;
1788
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1789
+ delimiter: z.ZodDefault<z.ZodString>;
1790
+ encoding: z.ZodDefault<z.ZodString>;
1791
+ sheet: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
1792
+ pagination: z.ZodOptional<z.ZodObject<{
1793
+ type: z.ZodEnum<["offset", "cursor", "page"]>;
1794
+ pageSize: z.ZodDefault<z.ZodNumber>;
1795
+ pageParam: z.ZodOptional<z.ZodString>;
1796
+ totalField: z.ZodOptional<z.ZodString>;
1797
+ dataField: z.ZodOptional<z.ZodString>;
1798
+ cursorField: z.ZodOptional<z.ZodString>;
1799
+ cursorParam: z.ZodOptional<z.ZodString>;
1800
+ }, "strip", z.ZodTypeAny, {
1801
+ type: "cursor" | "offset" | "page";
1802
+ pageSize: number;
1803
+ pageParam?: string | undefined;
1804
+ totalField?: string | undefined;
1805
+ dataField?: string | undefined;
1806
+ cursorField?: string | undefined;
1807
+ cursorParam?: string | undefined;
1808
+ }, {
1809
+ type: "cursor" | "offset" | "page";
1810
+ pageSize?: number | undefined;
1811
+ pageParam?: string | undefined;
1812
+ totalField?: string | undefined;
1813
+ dataField?: string | undefined;
1814
+ cursorField?: string | undefined;
1815
+ cursorParam?: string | undefined;
1816
+ }>>;
1817
+ }, "strip", z.ZodTypeAny, {
1818
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
1819
+ connection?: string | undefined;
1820
+ query?: string | undefined;
1821
+ file?: string | undefined;
1822
+ endpoint?: string | undefined;
1823
+ headers?: Record<string, string> | undefined;
1824
+ delimiter: string;
1825
+ encoding: string;
1826
+ sheet?: string | number | undefined;
1827
+ pagination?: {
1828
+ type: "cursor" | "offset" | "page";
1829
+ pageSize: number;
1830
+ pageParam?: string | undefined;
1831
+ totalField?: string | undefined;
1832
+ dataField?: string | undefined;
1833
+ cursorField?: string | undefined;
1834
+ cursorParam?: string | undefined;
1835
+ } | undefined;
1836
+ }, {
1837
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
1838
+ connection?: string | undefined;
1839
+ query?: string | undefined;
1840
+ file?: string | undefined;
1841
+ endpoint?: string | undefined;
1842
+ headers?: Record<string, string> | undefined;
1843
+ delimiter?: string | undefined;
1844
+ encoding?: string | undefined;
1845
+ sheet?: string | number | undefined;
1846
+ pagination?: {
1847
+ type: "cursor" | "offset" | "page";
1848
+ pageSize?: number | undefined;
1849
+ pageParam?: string | undefined;
1850
+ totalField?: string | undefined;
1851
+ dataField?: string | undefined;
1852
+ cursorField?: string | undefined;
1853
+ cursorParam?: string | undefined;
1854
+ } | undefined;
1855
+ }>, {
1856
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
1857
+ connection?: string | undefined;
1858
+ query?: string | undefined;
1859
+ file?: string | undefined;
1860
+ endpoint?: string | undefined;
1861
+ headers?: Record<string, string> | undefined;
1862
+ delimiter: string;
1863
+ encoding: string;
1864
+ sheet?: string | number | undefined;
1865
+ pagination?: {
1866
+ type: "cursor" | "offset" | "page";
1867
+ pageSize: number;
1868
+ pageParam?: string | undefined;
1869
+ totalField?: string | undefined;
1870
+ dataField?: string | undefined;
1871
+ cursorField?: string | undefined;
1872
+ cursorParam?: string | undefined;
1873
+ } | undefined;
1874
+ }, {
1875
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
1876
+ connection?: string | undefined;
1877
+ query?: string | undefined;
1878
+ file?: string | undefined;
1879
+ endpoint?: string | undefined;
1880
+ headers?: Record<string, string> | undefined;
1881
+ delimiter?: string | undefined;
1882
+ encoding?: string | undefined;
1883
+ sheet?: string | number | undefined;
1884
+ pagination?: {
1885
+ type: "cursor" | "offset" | "page";
1886
+ pageSize?: number | undefined;
1887
+ pageParam?: string | undefined;
1888
+ totalField?: string | undefined;
1889
+ dataField?: string | undefined;
1890
+ cursorField?: string | undefined;
1891
+ cursorParam?: string | undefined;
1892
+ } | undefined;
1893
+ }>;
1894
+ key: z.ZodString;
1895
+ value: z.ZodString;
1896
+ }, "strip", z.ZodTypeAny, {
1897
+ name: string;
1898
+ source: {
1899
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
1900
+ connection?: string | undefined;
1901
+ query?: string | undefined;
1902
+ file?: string | undefined;
1903
+ endpoint?: string | undefined;
1904
+ headers?: Record<string, string> | undefined;
1905
+ delimiter: string;
1906
+ encoding: string;
1907
+ sheet?: string | number | undefined;
1908
+ pagination?: {
1909
+ type: "cursor" | "offset" | "page";
1910
+ pageSize: number;
1911
+ pageParam?: string | undefined;
1912
+ totalField?: string | undefined;
1913
+ dataField?: string | undefined;
1914
+ cursorField?: string | undefined;
1915
+ cursorParam?: string | undefined;
1916
+ } | undefined;
1917
+ };
1918
+ key: string;
1919
+ value: string;
1920
+ }, {
1921
+ name: string;
1922
+ source: {
1923
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
1924
+ connection?: string | undefined;
1925
+ query?: string | undefined;
1926
+ file?: string | undefined;
1927
+ endpoint?: string | undefined;
1928
+ headers?: Record<string, string> | undefined;
1929
+ delimiter?: string | undefined;
1930
+ encoding?: string | undefined;
1931
+ sheet?: string | number | undefined;
1932
+ pagination?: {
1933
+ type: "cursor" | "offset" | "page";
1934
+ pageSize?: number | undefined;
1935
+ pageParam?: string | undefined;
1936
+ totalField?: string | undefined;
1937
+ dataField?: string | undefined;
1938
+ cursorField?: string | undefined;
1939
+ cursorParam?: string | undefined;
1940
+ } | undefined;
1941
+ };
1942
+ key: string;
1943
+ value: string;
1944
+ }>, "many">>;
1945
+ fields: z.ZodArray<z.ZodEffects<z.ZodEffects<z.ZodObject<{
1946
+ from: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
1947
+ to: z.ZodString;
1948
+ type: z.ZodEnum<["string", "number", "decimal", "boolean", "date", "lookup", "concat", "constant", "expression", "custom"]>;
1949
+ max: z.ZodOptional<z.ZodNumber>;
1950
+ precision: z.ZodOptional<z.ZodNumber>;
1951
+ format: z.ZodOptional<z.ZodString>;
1952
+ cleanse: z.ZodOptional<z.ZodString>;
1953
+ lookup: z.ZodOptional<z.ZodString>;
1954
+ separator: z.ZodOptional<z.ZodString>;
1955
+ value: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
1956
+ default: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>;
1957
+ optional: z.ZodDefault<z.ZodBoolean>;
1958
+ customOp: z.ZodOptional<z.ZodString>;
1959
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1960
+ }, "strip", z.ZodTypeAny, {
1961
+ from?: string | string[] | undefined;
1962
+ to: string;
1963
+ type: "boolean" | "concat" | "constant" | "custom" | "date" | "decimal" | "expression" | "lookup" | "number" | "string";
1964
+ max?: number | undefined;
1965
+ precision?: number | undefined;
1966
+ format?: string | undefined;
1967
+ cleanse?: string | undefined;
1968
+ lookup?: string | undefined;
1969
+ separator?: string | undefined;
1970
+ value?: string | number | boolean | undefined;
1971
+ default?: string | number | boolean | null | undefined;
1972
+ optional: boolean;
1973
+ customOp?: string | undefined;
1974
+ options?: Record<string, unknown> | undefined;
1975
+ }, {
1976
+ from?: string | string[] | undefined;
1977
+ to: string;
1978
+ type: "boolean" | "concat" | "constant" | "custom" | "date" | "decimal" | "expression" | "lookup" | "number" | "string";
1979
+ max?: number | undefined;
1980
+ precision?: number | undefined;
1981
+ format?: string | undefined;
1982
+ cleanse?: string | undefined;
1983
+ lookup?: string | undefined;
1984
+ separator?: string | undefined;
1985
+ value?: string | number | boolean | undefined;
1986
+ default?: string | number | boolean | null | undefined;
1987
+ optional?: boolean | undefined;
1988
+ customOp?: string | undefined;
1989
+ options?: Record<string, unknown> | undefined;
1990
+ }>, {
1991
+ from?: string | string[] | undefined;
1992
+ to: string;
1993
+ type: "boolean" | "concat" | "constant" | "custom" | "date" | "decimal" | "expression" | "lookup" | "number" | "string";
1994
+ max?: number | undefined;
1995
+ precision?: number | undefined;
1996
+ format?: string | undefined;
1997
+ cleanse?: string | undefined;
1998
+ lookup?: string | undefined;
1999
+ separator?: string | undefined;
2000
+ value?: string | number | boolean | undefined;
2001
+ default?: string | number | boolean | null | undefined;
2002
+ optional: boolean;
2003
+ customOp?: string | undefined;
2004
+ options?: Record<string, unknown> | undefined;
2005
+ }, {
2006
+ from?: string | string[] | undefined;
2007
+ to: string;
2008
+ type: "boolean" | "concat" | "constant" | "custom" | "date" | "decimal" | "expression" | "lookup" | "number" | "string";
2009
+ max?: number | undefined;
2010
+ precision?: number | undefined;
2011
+ format?: string | undefined;
2012
+ cleanse?: string | undefined;
2013
+ lookup?: string | undefined;
2014
+ separator?: string | undefined;
2015
+ value?: string | number | boolean | undefined;
2016
+ default?: string | number | boolean | null | undefined;
2017
+ optional?: boolean | undefined;
2018
+ customOp?: string | undefined;
2019
+ options?: Record<string, unknown> | undefined;
2020
+ }>, {
2021
+ from?: string | string[] | undefined;
2022
+ to: string;
2023
+ type: "boolean" | "concat" | "constant" | "custom" | "date" | "decimal" | "expression" | "lookup" | "number" | "string";
2024
+ max?: number | undefined;
2025
+ precision?: number | undefined;
2026
+ format?: string | undefined;
2027
+ cleanse?: string | undefined;
2028
+ lookup?: string | undefined;
2029
+ separator?: string | undefined;
2030
+ value?: string | number | boolean | undefined;
2031
+ default?: string | number | boolean | null | undefined;
2032
+ optional: boolean;
2033
+ customOp?: string | undefined;
2034
+ options?: Record<string, unknown> | undefined;
2035
+ }, {
2036
+ from?: string | string[] | undefined;
2037
+ to: string;
2038
+ type: "boolean" | "concat" | "constant" | "custom" | "date" | "decimal" | "expression" | "lookup" | "number" | "string";
2039
+ max?: number | undefined;
2040
+ precision?: number | undefined;
2041
+ format?: string | undefined;
2042
+ cleanse?: string | undefined;
2043
+ lookup?: string | undefined;
2044
+ separator?: string | undefined;
2045
+ value?: string | number | boolean | undefined;
2046
+ default?: string | number | boolean | null | undefined;
2047
+ optional?: boolean | undefined;
2048
+ customOp?: string | undefined;
2049
+ options?: Record<string, unknown> | undefined;
2050
+ }>, "many">;
2051
+ }, "strip", z.ZodTypeAny, {
2052
+ lookups: {
2053
+ name: string;
2054
+ source: {
2055
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
2056
+ connection?: string | undefined;
2057
+ query?: string | undefined;
2058
+ file?: string | undefined;
2059
+ endpoint?: string | undefined;
2060
+ headers?: Record<string, string> | undefined;
2061
+ delimiter: string;
2062
+ encoding: string;
2063
+ sheet?: string | number | undefined;
2064
+ pagination?: {
2065
+ type: "cursor" | "offset" | "page";
2066
+ pageSize: number;
2067
+ pageParam?: string | undefined;
2068
+ totalField?: string | undefined;
2069
+ dataField?: string | undefined;
2070
+ cursorField?: string | undefined;
2071
+ cursorParam?: string | undefined;
2072
+ } | undefined;
2073
+ };
2074
+ key: string;
2075
+ value: string;
2076
+ }[];
2077
+ fields: {
2078
+ from?: string | string[] | undefined;
2079
+ to: string;
2080
+ type: "boolean" | "concat" | "constant" | "custom" | "date" | "decimal" | "expression" | "lookup" | "number" | "string";
2081
+ max?: number | undefined;
2082
+ precision?: number | undefined;
2083
+ format?: string | undefined;
2084
+ cleanse?: string | undefined;
2085
+ lookup?: string | undefined;
2086
+ separator?: string | undefined;
2087
+ value?: string | number | boolean | undefined;
2088
+ default?: string | number | boolean | null | undefined;
2089
+ optional: boolean;
2090
+ customOp?: string | undefined;
2091
+ options?: Record<string, unknown> | undefined;
2092
+ }[];
2093
+ }, {
2094
+ lookups?: {
2095
+ name: string;
2096
+ source: {
2097
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
2098
+ connection?: string | undefined;
2099
+ query?: string | undefined;
2100
+ file?: string | undefined;
2101
+ endpoint?: string | undefined;
2102
+ headers?: Record<string, string> | undefined;
2103
+ delimiter?: string | undefined;
2104
+ encoding?: string | undefined;
2105
+ sheet?: string | number | undefined;
2106
+ pagination?: {
2107
+ type: "cursor" | "offset" | "page";
2108
+ pageSize?: number | undefined;
2109
+ pageParam?: string | undefined;
2110
+ totalField?: string | undefined;
2111
+ dataField?: string | undefined;
2112
+ cursorField?: string | undefined;
2113
+ cursorParam?: string | undefined;
2114
+ } | undefined;
2115
+ };
2116
+ key: string;
2117
+ value: string;
2118
+ }[] | undefined;
2119
+ fields: {
2120
+ from?: string | string[] | undefined;
2121
+ to: string;
2122
+ type: "boolean" | "concat" | "constant" | "custom" | "date" | "decimal" | "expression" | "lookup" | "number" | "string";
2123
+ max?: number | undefined;
2124
+ precision?: number | undefined;
2125
+ format?: string | undefined;
2126
+ cleanse?: string | undefined;
2127
+ lookup?: string | undefined;
2128
+ separator?: string | undefined;
2129
+ value?: string | number | boolean | undefined;
2130
+ default?: string | number | boolean | null | undefined;
2131
+ optional?: boolean | undefined;
2132
+ customOp?: string | undefined;
2133
+ options?: Record<string, unknown> | undefined;
2134
+ }[];
2135
+ }>;
2136
+ target: z.ZodEffects<z.ZodObject<{
2137
+ adapter: z.ZodEnum<["bc", "ifs", "bluecherry", "csv", "pg", "rest"]>;
2138
+ output: z.ZodOptional<z.ZodString>;
2139
+ entity: z.ZodOptional<z.ZodString>;
2140
+ connection: z.ZodOptional<z.ZodString>;
2141
+ includeHeader: z.ZodOptional<z.ZodBoolean>;
2142
+ columnOrder: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2143
+ dateFormat: z.ZodOptional<z.ZodString>;
2144
+ delimiter: z.ZodDefault<z.ZodString>;
2145
+ encoding: z.ZodDefault<z.ZodString>;
2146
+ nullValue: z.ZodDefault<z.ZodString>;
2147
+ template: z.ZodOptional<z.ZodString>;
2148
+ baseUrl: z.ZodOptional<z.ZodString>;
2149
+ company: z.ZodOptional<z.ZodString>;
2150
+ apiVersion: z.ZodDefault<z.ZodString>;
2151
+ onConflict: z.ZodDefault<z.ZodEnum<["fail", "upsert", "ignore"]>>;
2152
+ upsertKey: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2153
+ batchEndpoint: z.ZodDefault<z.ZodBoolean>;
2154
+ table: z.ZodOptional<z.ZodString>;
2155
+ schema: z.ZodDefault<z.ZodString>;
2156
+ }, "strip", z.ZodTypeAny, {
2157
+ adapter: "bc" | "bluecherry" | "csv" | "ifs" | "pg" | "rest";
2158
+ output?: string | undefined;
2159
+ entity?: string | undefined;
2160
+ connection?: string | undefined;
2161
+ includeHeader?: boolean | undefined;
2162
+ columnOrder?: string[] | undefined;
2163
+ dateFormat?: string | undefined;
2164
+ delimiter: string;
2165
+ encoding: string;
2166
+ nullValue: string;
2167
+ template?: string | undefined;
2168
+ baseUrl?: string | undefined;
2169
+ company?: string | undefined;
2170
+ apiVersion: string;
2171
+ onConflict: "fail" | "ignore" | "upsert";
2172
+ upsertKey?: string[] | undefined;
2173
+ batchEndpoint: boolean;
2174
+ table?: string | undefined;
2175
+ schema: string;
2176
+ }, {
2177
+ adapter: "bc" | "bluecherry" | "csv" | "ifs" | "pg" | "rest";
2178
+ output?: string | undefined;
2179
+ entity?: string | undefined;
2180
+ connection?: string | undefined;
2181
+ includeHeader?: boolean | undefined;
2182
+ columnOrder?: string[] | undefined;
2183
+ dateFormat?: string | undefined;
2184
+ delimiter?: string | undefined;
2185
+ encoding?: string | undefined;
2186
+ nullValue?: string | undefined;
2187
+ template?: string | undefined;
2188
+ baseUrl?: string | undefined;
2189
+ company?: string | undefined;
2190
+ apiVersion?: string | undefined;
2191
+ onConflict?: "fail" | "ignore" | "upsert" | undefined;
2192
+ upsertKey?: string[] | undefined;
2193
+ batchEndpoint?: boolean | undefined;
2194
+ table?: string | undefined;
2195
+ schema?: string | undefined;
2196
+ }>, {
2197
+ adapter: "bc" | "bluecherry" | "csv" | "ifs" | "pg" | "rest";
2198
+ output?: string | undefined;
2199
+ entity?: string | undefined;
2200
+ connection?: string | undefined;
2201
+ includeHeader?: boolean | undefined;
2202
+ columnOrder?: string[] | undefined;
2203
+ dateFormat?: string | undefined;
2204
+ delimiter: string;
2205
+ encoding: string;
2206
+ nullValue: string;
2207
+ template?: string | undefined;
2208
+ baseUrl?: string | undefined;
2209
+ company?: string | undefined;
2210
+ apiVersion: string;
2211
+ onConflict: "fail" | "ignore" | "upsert";
2212
+ upsertKey?: string[] | undefined;
2213
+ batchEndpoint: boolean;
2214
+ table?: string | undefined;
2215
+ schema: string;
2216
+ }, {
2217
+ adapter: "bc" | "bluecherry" | "csv" | "ifs" | "pg" | "rest";
2218
+ output?: string | undefined;
2219
+ entity?: string | undefined;
2220
+ connection?: string | undefined;
2221
+ includeHeader?: boolean | undefined;
2222
+ columnOrder?: string[] | undefined;
2223
+ dateFormat?: string | undefined;
2224
+ delimiter?: string | undefined;
2225
+ encoding?: string | undefined;
2226
+ nullValue?: string | undefined;
2227
+ template?: string | undefined;
2228
+ baseUrl?: string | undefined;
2229
+ company?: string | undefined;
2230
+ apiVersion?: string | undefined;
2231
+ onConflict?: "fail" | "ignore" | "upsert" | undefined;
2232
+ upsertKey?: string[] | undefined;
2233
+ batchEndpoint?: boolean | undefined;
2234
+ table?: string | undefined;
2235
+ schema?: string | undefined;
2236
+ }>;
2237
+ run: z.ZodDefault<z.ZodObject<{
2238
+ mode: z.ZodDefault<z.ZodEnum<["full", "incremental", "validate-only"]>>;
2239
+ batchSize: z.ZodDefault<z.ZodNumber>;
2240
+ onError: z.ZodDefault<z.ZodEnum<["continue", "stop"]>>;
2241
+ logLevel: z.ZodDefault<z.ZodEnum<["debug", "info", "warn", "error"]>>;
2242
+ dryRun: z.ZodDefault<z.ZodBoolean>;
2243
+ outputDir: z.ZodDefault<z.ZodString>;
2244
+ stagingDb: z.ZodDefault<z.ZodString>;
2245
+ enrichConcurrency: z.ZodDefault<z.ZodNumber>;
2246
+ enrichTimeoutMs: z.ZodDefault<z.ZodNumber>;
2247
+ enrichMaxRetries: z.ZodDefault<z.ZodNumber>;
2248
+ incrementalField: z.ZodOptional<z.ZodString>;
2249
+ incrementalSince: z.ZodOptional<z.ZodString>;
2250
+ }, "strip", z.ZodTypeAny, {
2251
+ mode: "full" | "incremental" | "validate-only";
2252
+ batchSize: number;
2253
+ onError: "continue" | "stop";
2254
+ logLevel: "debug" | "error" | "info" | "warn";
2255
+ dryRun: boolean;
2256
+ outputDir: string;
2257
+ stagingDb: string;
2258
+ enrichConcurrency: number;
2259
+ enrichTimeoutMs: number;
2260
+ enrichMaxRetries: number;
2261
+ incrementalField?: string | undefined;
2262
+ incrementalSince?: string | undefined;
2263
+ }, {
2264
+ mode?: "full" | "incremental" | "validate-only" | undefined;
2265
+ batchSize?: number | undefined;
2266
+ onError?: "continue" | "stop" | undefined;
2267
+ logLevel?: "debug" | "error" | "info" | "warn" | undefined;
2268
+ dryRun?: boolean | undefined;
2269
+ outputDir?: string | undefined;
2270
+ stagingDb?: string | undefined;
2271
+ enrichConcurrency?: number | undefined;
2272
+ enrichTimeoutMs?: number | undefined;
2273
+ enrichMaxRetries?: number | undefined;
2274
+ incrementalField?: string | undefined;
2275
+ incrementalSince?: string | undefined;
2276
+ }>>;
2277
+ }, "strip", z.ZodTypeAny, {
2278
+ pipeline: {
2279
+ name: string;
2280
+ client: string;
2281
+ version: string;
2282
+ entity: string;
2283
+ description?: string | undefined;
2284
+ };
2285
+ source?: {
2286
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
2287
+ connection?: string | undefined;
2288
+ query?: string | undefined;
2289
+ file?: string | undefined;
2290
+ endpoint?: string | undefined;
2291
+ headers?: Record<string, string> | undefined;
2292
+ delimiter: string;
2293
+ encoding: string;
2294
+ sheet?: string | number | undefined;
2295
+ pagination?: {
2296
+ type: "cursor" | "offset" | "page";
2297
+ pageSize: number;
2298
+ pageParam?: string | undefined;
2299
+ totalField?: string | undefined;
2300
+ dataField?: string | undefined;
2301
+ cursorField?: string | undefined;
2302
+ cursorParam?: string | undefined;
2303
+ } | undefined;
2304
+ } | undefined;
2305
+ sources?: {
2306
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
2307
+ connection?: string | undefined;
2308
+ query?: string | undefined;
2309
+ file?: string | undefined;
2310
+ endpoint?: string | undefined;
2311
+ headers?: Record<string, string> | undefined;
2312
+ delimiter: string;
2313
+ encoding: string;
2314
+ sheet?: string | number | undefined;
2315
+ pagination?: {
2316
+ type: "cursor" | "offset" | "page";
2317
+ pageSize: number;
2318
+ pageParam?: string | undefined;
2319
+ totalField?: string | undefined;
2320
+ dataField?: string | undefined;
2321
+ cursorField?: string | undefined;
2322
+ cursorParam?: string | undefined;
2323
+ } | undefined;
2324
+ id: string;
2325
+ priority: number;
2326
+ rename?: Record<string, string> | undefined;
2327
+ }[] | undefined;
2328
+ merge?: {
2329
+ key: string | string[];
2330
+ strategy: "coalesce" | "intersect" | "priority-override" | "union";
2331
+ onUnmatched: "error" | "exclude" | "include" | "warn";
2332
+ fieldStrategies: {
2333
+ field: string;
2334
+ strategy?: "coalesce" | "priority-override" | undefined;
2335
+ source?: string | undefined;
2336
+ }[];
2337
+ conflictLog?: string | undefined;
2338
+ incrementalSource?: string | undefined;
2339
+ } | undefined;
2340
+ enrich?: {
2341
+ cache: "persist" | boolean;
2342
+ onError: "fail" | "flag" | "skip";
2343
+ lookups: {
2344
+ field: string;
2345
+ provider: string;
2346
+ writeColumns: {
2347
+ valid: string;
2348
+ } & {
2349
+ [k: string]: string;
2350
+ };
2351
+ preValidate?: string | undefined;
2352
+ onError?: "fail" | "flag" | "skip" | undefined;
2353
+ cache?: boolean | undefined;
2354
+ options?: Record<string, unknown> | undefined;
2355
+ }[];
2356
+ } | undefined;
2357
+ dq: {
2358
+ rulesFile?: string | undefined;
2359
+ stopOnCritical: boolean;
2360
+ rejectionFile?: string | undefined;
2361
+ rules: {
2362
+ field: string;
2363
+ sourceId?: string | undefined;
2364
+ checks: {
2365
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
2366
+ value?: string | number | string[] | undefined;
2367
+ severity: "critical" | "info" | "warning";
2368
+ message?: string | undefined;
2369
+ }[];
2370
+ }[];
2371
+ };
2372
+ transform: {
2373
+ lookups: {
2374
+ name: string;
2375
+ source: {
2376
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
2377
+ connection?: string | undefined;
2378
+ query?: string | undefined;
2379
+ file?: string | undefined;
2380
+ endpoint?: string | undefined;
2381
+ headers?: Record<string, string> | undefined;
2382
+ delimiter: string;
2383
+ encoding: string;
2384
+ sheet?: string | number | undefined;
2385
+ pagination?: {
2386
+ type: "cursor" | "offset" | "page";
2387
+ pageSize: number;
2388
+ pageParam?: string | undefined;
2389
+ totalField?: string | undefined;
2390
+ dataField?: string | undefined;
2391
+ cursorField?: string | undefined;
2392
+ cursorParam?: string | undefined;
2393
+ } | undefined;
2394
+ };
2395
+ key: string;
2396
+ value: string;
2397
+ }[];
2398
+ fields: {
2399
+ from?: string | string[] | undefined;
2400
+ to: string;
2401
+ type: "boolean" | "concat" | "constant" | "custom" | "date" | "decimal" | "expression" | "lookup" | "number" | "string";
2402
+ max?: number | undefined;
2403
+ precision?: number | undefined;
2404
+ format?: string | undefined;
2405
+ cleanse?: string | undefined;
2406
+ lookup?: string | undefined;
2407
+ separator?: string | undefined;
2408
+ value?: string | number | boolean | undefined;
2409
+ default?: string | number | boolean | null | undefined;
2410
+ optional: boolean;
2411
+ customOp?: string | undefined;
2412
+ options?: Record<string, unknown> | undefined;
2413
+ }[];
2414
+ };
2415
+ target: {
2416
+ adapter: "bc" | "bluecherry" | "csv" | "ifs" | "pg" | "rest";
2417
+ output?: string | undefined;
2418
+ entity?: string | undefined;
2419
+ connection?: string | undefined;
2420
+ includeHeader?: boolean | undefined;
2421
+ columnOrder?: string[] | undefined;
2422
+ dateFormat?: string | undefined;
2423
+ delimiter: string;
2424
+ encoding: string;
2425
+ nullValue: string;
2426
+ template?: string | undefined;
2427
+ baseUrl?: string | undefined;
2428
+ company?: string | undefined;
2429
+ apiVersion: string;
2430
+ onConflict: "fail" | "ignore" | "upsert";
2431
+ upsertKey?: string[] | undefined;
2432
+ batchEndpoint: boolean;
2433
+ table?: string | undefined;
2434
+ schema: string;
2435
+ };
2436
+ run: {
2437
+ mode: "full" | "incremental" | "validate-only";
2438
+ batchSize: number;
2439
+ onError: "continue" | "stop";
2440
+ logLevel: "debug" | "error" | "info" | "warn";
2441
+ dryRun: boolean;
2442
+ outputDir: string;
2443
+ stagingDb: string;
2444
+ enrichConcurrency: number;
2445
+ enrichTimeoutMs: number;
2446
+ enrichMaxRetries: number;
2447
+ incrementalField?: string | undefined;
2448
+ incrementalSince?: string | undefined;
2449
+ };
2450
+ }, {
2451
+ pipeline: {
2452
+ name: string;
2453
+ client: string;
2454
+ version: string;
2455
+ entity: string;
2456
+ description?: string | undefined;
2457
+ };
2458
+ source?: {
2459
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
2460
+ connection?: string | undefined;
2461
+ query?: string | undefined;
2462
+ file?: string | undefined;
2463
+ endpoint?: string | undefined;
2464
+ headers?: Record<string, string> | undefined;
2465
+ delimiter?: string | undefined;
2466
+ encoding?: string | undefined;
2467
+ sheet?: string | number | undefined;
2468
+ pagination?: {
2469
+ type: "cursor" | "offset" | "page";
2470
+ pageSize?: number | undefined;
2471
+ pageParam?: string | undefined;
2472
+ totalField?: string | undefined;
2473
+ dataField?: string | undefined;
2474
+ cursorField?: string | undefined;
2475
+ cursorParam?: string | undefined;
2476
+ } | undefined;
2477
+ } | undefined;
2478
+ sources?: {
2479
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
2480
+ connection?: string | undefined;
2481
+ query?: string | undefined;
2482
+ file?: string | undefined;
2483
+ endpoint?: string | undefined;
2484
+ headers?: Record<string, string> | undefined;
2485
+ delimiter?: string | undefined;
2486
+ encoding?: string | undefined;
2487
+ sheet?: string | number | undefined;
2488
+ pagination?: {
2489
+ type: "cursor" | "offset" | "page";
2490
+ pageSize?: number | undefined;
2491
+ pageParam?: string | undefined;
2492
+ totalField?: string | undefined;
2493
+ dataField?: string | undefined;
2494
+ cursorField?: string | undefined;
2495
+ cursorParam?: string | undefined;
2496
+ } | undefined;
2497
+ id: string;
2498
+ priority: number;
2499
+ rename?: Record<string, string> | undefined;
2500
+ }[] | undefined;
2501
+ merge?: {
2502
+ key: string | string[];
2503
+ strategy?: "coalesce" | "intersect" | "priority-override" | "union" | undefined;
2504
+ onUnmatched?: "error" | "exclude" | "include" | "warn" | undefined;
2505
+ fieldStrategies?: {
2506
+ field: string;
2507
+ strategy?: "coalesce" | "priority-override" | undefined;
2508
+ source?: string | undefined;
2509
+ }[] | undefined;
2510
+ conflictLog?: string | undefined;
2511
+ incrementalSource?: string | undefined;
2512
+ } | undefined;
2513
+ enrich?: {
2514
+ cache?: "persist" | boolean | undefined;
2515
+ onError?: "fail" | "flag" | "skip" | undefined;
2516
+ lookups: {
2517
+ field: string;
2518
+ provider: string;
2519
+ writeColumns: {
2520
+ valid: string;
2521
+ } & {
2522
+ [k: string]: string;
2523
+ };
2524
+ preValidate?: string | undefined;
2525
+ onError?: "fail" | "flag" | "skip" | undefined;
2526
+ cache?: boolean | undefined;
2527
+ options?: Record<string, unknown> | undefined;
2528
+ }[];
2529
+ } | undefined;
2530
+ dq: {
2531
+ rulesFile?: string | undefined;
2532
+ stopOnCritical?: boolean | undefined;
2533
+ rejectionFile?: string | undefined;
2534
+ rules?: {
2535
+ field: string;
2536
+ sourceId?: string | undefined;
2537
+ checks: {
2538
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
2539
+ value?: string | number | string[] | undefined;
2540
+ severity: "critical" | "info" | "warning";
2541
+ message?: string | undefined;
2542
+ }[];
2543
+ }[] | undefined;
2544
+ };
2545
+ transform: {
2546
+ lookups?: {
2547
+ name: string;
2548
+ source: {
2549
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
2550
+ connection?: string | undefined;
2551
+ query?: string | undefined;
2552
+ file?: string | undefined;
2553
+ endpoint?: string | undefined;
2554
+ headers?: Record<string, string> | undefined;
2555
+ delimiter?: string | undefined;
2556
+ encoding?: string | undefined;
2557
+ sheet?: string | number | undefined;
2558
+ pagination?: {
2559
+ type: "cursor" | "offset" | "page";
2560
+ pageSize?: number | undefined;
2561
+ pageParam?: string | undefined;
2562
+ totalField?: string | undefined;
2563
+ dataField?: string | undefined;
2564
+ cursorField?: string | undefined;
2565
+ cursorParam?: string | undefined;
2566
+ } | undefined;
2567
+ };
2568
+ key: string;
2569
+ value: string;
2570
+ }[] | undefined;
2571
+ fields: {
2572
+ from?: string | string[] | undefined;
2573
+ to: string;
2574
+ type: "boolean" | "concat" | "constant" | "custom" | "date" | "decimal" | "expression" | "lookup" | "number" | "string";
2575
+ max?: number | undefined;
2576
+ precision?: number | undefined;
2577
+ format?: string | undefined;
2578
+ cleanse?: string | undefined;
2579
+ lookup?: string | undefined;
2580
+ separator?: string | undefined;
2581
+ value?: string | number | boolean | undefined;
2582
+ default?: string | number | boolean | null | undefined;
2583
+ optional?: boolean | undefined;
2584
+ customOp?: string | undefined;
2585
+ options?: Record<string, unknown> | undefined;
2586
+ }[];
2587
+ };
2588
+ target: {
2589
+ adapter: "bc" | "bluecherry" | "csv" | "ifs" | "pg" | "rest";
2590
+ output?: string | undefined;
2591
+ entity?: string | undefined;
2592
+ connection?: string | undefined;
2593
+ includeHeader?: boolean | undefined;
2594
+ columnOrder?: string[] | undefined;
2595
+ dateFormat?: string | undefined;
2596
+ delimiter?: string | undefined;
2597
+ encoding?: string | undefined;
2598
+ nullValue?: string | undefined;
2599
+ template?: string | undefined;
2600
+ baseUrl?: string | undefined;
2601
+ company?: string | undefined;
2602
+ apiVersion?: string | undefined;
2603
+ onConflict?: "fail" | "ignore" | "upsert" | undefined;
2604
+ upsertKey?: string[] | undefined;
2605
+ batchEndpoint?: boolean | undefined;
2606
+ table?: string | undefined;
2607
+ schema?: string | undefined;
2608
+ };
2609
+ run?: {
2610
+ mode?: "full" | "incremental" | "validate-only" | undefined;
2611
+ batchSize?: number | undefined;
2612
+ onError?: "continue" | "stop" | undefined;
2613
+ logLevel?: "debug" | "error" | "info" | "warn" | undefined;
2614
+ dryRun?: boolean | undefined;
2615
+ outputDir?: string | undefined;
2616
+ stagingDb?: string | undefined;
2617
+ enrichConcurrency?: number | undefined;
2618
+ enrichTimeoutMs?: number | undefined;
2619
+ enrichMaxRetries?: number | undefined;
2620
+ incrementalField?: string | undefined;
2621
+ incrementalSince?: string | undefined;
2622
+ } | undefined;
2623
+ }>, {
2624
+ pipeline: {
2625
+ name: string;
2626
+ client: string;
2627
+ version: string;
2628
+ entity: string;
2629
+ description?: string | undefined;
2630
+ };
2631
+ source?: {
2632
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
2633
+ connection?: string | undefined;
2634
+ query?: string | undefined;
2635
+ file?: string | undefined;
2636
+ endpoint?: string | undefined;
2637
+ headers?: Record<string, string> | undefined;
2638
+ delimiter: string;
2639
+ encoding: string;
2640
+ sheet?: string | number | undefined;
2641
+ pagination?: {
2642
+ type: "cursor" | "offset" | "page";
2643
+ pageSize: number;
2644
+ pageParam?: string | undefined;
2645
+ totalField?: string | undefined;
2646
+ dataField?: string | undefined;
2647
+ cursorField?: string | undefined;
2648
+ cursorParam?: string | undefined;
2649
+ } | undefined;
2650
+ } | undefined;
2651
+ sources?: {
2652
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
2653
+ connection?: string | undefined;
2654
+ query?: string | undefined;
2655
+ file?: string | undefined;
2656
+ endpoint?: string | undefined;
2657
+ headers?: Record<string, string> | undefined;
2658
+ delimiter: string;
2659
+ encoding: string;
2660
+ sheet?: string | number | undefined;
2661
+ pagination?: {
2662
+ type: "cursor" | "offset" | "page";
2663
+ pageSize: number;
2664
+ pageParam?: string | undefined;
2665
+ totalField?: string | undefined;
2666
+ dataField?: string | undefined;
2667
+ cursorField?: string | undefined;
2668
+ cursorParam?: string | undefined;
2669
+ } | undefined;
2670
+ id: string;
2671
+ priority: number;
2672
+ rename?: Record<string, string> | undefined;
2673
+ }[] | undefined;
2674
+ merge?: {
2675
+ key: string | string[];
2676
+ strategy: "coalesce" | "intersect" | "priority-override" | "union";
2677
+ onUnmatched: "error" | "exclude" | "include" | "warn";
2678
+ fieldStrategies: {
2679
+ field: string;
2680
+ strategy?: "coalesce" | "priority-override" | undefined;
2681
+ source?: string | undefined;
2682
+ }[];
2683
+ conflictLog?: string | undefined;
2684
+ incrementalSource?: string | undefined;
2685
+ } | undefined;
2686
+ enrich?: {
2687
+ cache: "persist" | boolean;
2688
+ onError: "fail" | "flag" | "skip";
2689
+ lookups: {
2690
+ field: string;
2691
+ provider: string;
2692
+ writeColumns: {
2693
+ valid: string;
2694
+ } & {
2695
+ [k: string]: string;
2696
+ };
2697
+ preValidate?: string | undefined;
2698
+ onError?: "fail" | "flag" | "skip" | undefined;
2699
+ cache?: boolean | undefined;
2700
+ options?: Record<string, unknown> | undefined;
2701
+ }[];
2702
+ } | undefined;
2703
+ dq: {
2704
+ rulesFile?: string | undefined;
2705
+ stopOnCritical: boolean;
2706
+ rejectionFile?: string | undefined;
2707
+ rules: {
2708
+ field: string;
2709
+ sourceId?: string | undefined;
2710
+ checks: {
2711
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
2712
+ value?: string | number | string[] | undefined;
2713
+ severity: "critical" | "info" | "warning";
2714
+ message?: string | undefined;
2715
+ }[];
2716
+ }[];
2717
+ };
2718
+ transform: {
2719
+ lookups: {
2720
+ name: string;
2721
+ source: {
2722
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
2723
+ connection?: string | undefined;
2724
+ query?: string | undefined;
2725
+ file?: string | undefined;
2726
+ endpoint?: string | undefined;
2727
+ headers?: Record<string, string> | undefined;
2728
+ delimiter: string;
2729
+ encoding: string;
2730
+ sheet?: string | number | undefined;
2731
+ pagination?: {
2732
+ type: "cursor" | "offset" | "page";
2733
+ pageSize: number;
2734
+ pageParam?: string | undefined;
2735
+ totalField?: string | undefined;
2736
+ dataField?: string | undefined;
2737
+ cursorField?: string | undefined;
2738
+ cursorParam?: string | undefined;
2739
+ } | undefined;
2740
+ };
2741
+ key: string;
2742
+ value: string;
2743
+ }[];
2744
+ fields: {
2745
+ from?: string | string[] | undefined;
2746
+ to: string;
2747
+ type: "boolean" | "concat" | "constant" | "custom" | "date" | "decimal" | "expression" | "lookup" | "number" | "string";
2748
+ max?: number | undefined;
2749
+ precision?: number | undefined;
2750
+ format?: string | undefined;
2751
+ cleanse?: string | undefined;
2752
+ lookup?: string | undefined;
2753
+ separator?: string | undefined;
2754
+ value?: string | number | boolean | undefined;
2755
+ default?: string | number | boolean | null | undefined;
2756
+ optional: boolean;
2757
+ customOp?: string | undefined;
2758
+ options?: Record<string, unknown> | undefined;
2759
+ }[];
2760
+ };
2761
+ target: {
2762
+ adapter: "bc" | "bluecherry" | "csv" | "ifs" | "pg" | "rest";
2763
+ output?: string | undefined;
2764
+ entity?: string | undefined;
2765
+ connection?: string | undefined;
2766
+ includeHeader?: boolean | undefined;
2767
+ columnOrder?: string[] | undefined;
2768
+ dateFormat?: string | undefined;
2769
+ delimiter: string;
2770
+ encoding: string;
2771
+ nullValue: string;
2772
+ template?: string | undefined;
2773
+ baseUrl?: string | undefined;
2774
+ company?: string | undefined;
2775
+ apiVersion: string;
2776
+ onConflict: "fail" | "ignore" | "upsert";
2777
+ upsertKey?: string[] | undefined;
2778
+ batchEndpoint: boolean;
2779
+ table?: string | undefined;
2780
+ schema: string;
2781
+ };
2782
+ run: {
2783
+ mode: "full" | "incremental" | "validate-only";
2784
+ batchSize: number;
2785
+ onError: "continue" | "stop";
2786
+ logLevel: "debug" | "error" | "info" | "warn";
2787
+ dryRun: boolean;
2788
+ outputDir: string;
2789
+ stagingDb: string;
2790
+ enrichConcurrency: number;
2791
+ enrichTimeoutMs: number;
2792
+ enrichMaxRetries: number;
2793
+ incrementalField?: string | undefined;
2794
+ incrementalSince?: string | undefined;
2795
+ };
2796
+ }, {
2797
+ pipeline: {
2798
+ name: string;
2799
+ client: string;
2800
+ version: string;
2801
+ entity: string;
2802
+ description?: string | undefined;
2803
+ };
2804
+ source?: {
2805
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
2806
+ connection?: string | undefined;
2807
+ query?: string | undefined;
2808
+ file?: string | undefined;
2809
+ endpoint?: string | undefined;
2810
+ headers?: Record<string, string> | undefined;
2811
+ delimiter?: string | undefined;
2812
+ encoding?: string | undefined;
2813
+ sheet?: string | number | undefined;
2814
+ pagination?: {
2815
+ type: "cursor" | "offset" | "page";
2816
+ pageSize?: number | undefined;
2817
+ pageParam?: string | undefined;
2818
+ totalField?: string | undefined;
2819
+ dataField?: string | undefined;
2820
+ cursorField?: string | undefined;
2821
+ cursorParam?: string | undefined;
2822
+ } | undefined;
2823
+ } | undefined;
2824
+ sources?: {
2825
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
2826
+ connection?: string | undefined;
2827
+ query?: string | undefined;
2828
+ file?: string | undefined;
2829
+ endpoint?: string | undefined;
2830
+ headers?: Record<string, string> | undefined;
2831
+ delimiter?: string | undefined;
2832
+ encoding?: string | undefined;
2833
+ sheet?: string | number | undefined;
2834
+ pagination?: {
2835
+ type: "cursor" | "offset" | "page";
2836
+ pageSize?: number | undefined;
2837
+ pageParam?: string | undefined;
2838
+ totalField?: string | undefined;
2839
+ dataField?: string | undefined;
2840
+ cursorField?: string | undefined;
2841
+ cursorParam?: string | undefined;
2842
+ } | undefined;
2843
+ id: string;
2844
+ priority: number;
2845
+ rename?: Record<string, string> | undefined;
2846
+ }[] | undefined;
2847
+ merge?: {
2848
+ key: string | string[];
2849
+ strategy?: "coalesce" | "intersect" | "priority-override" | "union" | undefined;
2850
+ onUnmatched?: "error" | "exclude" | "include" | "warn" | undefined;
2851
+ fieldStrategies?: {
2852
+ field: string;
2853
+ strategy?: "coalesce" | "priority-override" | undefined;
2854
+ source?: string | undefined;
2855
+ }[] | undefined;
2856
+ conflictLog?: string | undefined;
2857
+ incrementalSource?: string | undefined;
2858
+ } | undefined;
2859
+ enrich?: {
2860
+ cache?: "persist" | boolean | undefined;
2861
+ onError?: "fail" | "flag" | "skip" | undefined;
2862
+ lookups: {
2863
+ field: string;
2864
+ provider: string;
2865
+ writeColumns: {
2866
+ valid: string;
2867
+ } & {
2868
+ [k: string]: string;
2869
+ };
2870
+ preValidate?: string | undefined;
2871
+ onError?: "fail" | "flag" | "skip" | undefined;
2872
+ cache?: boolean | undefined;
2873
+ options?: Record<string, unknown> | undefined;
2874
+ }[];
2875
+ } | undefined;
2876
+ dq: {
2877
+ rulesFile?: string | undefined;
2878
+ stopOnCritical?: boolean | undefined;
2879
+ rejectionFile?: string | undefined;
2880
+ rules?: {
2881
+ field: string;
2882
+ sourceId?: string | undefined;
2883
+ checks: {
2884
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
2885
+ value?: string | number | string[] | undefined;
2886
+ severity: "critical" | "info" | "warning";
2887
+ message?: string | undefined;
2888
+ }[];
2889
+ }[] | undefined;
2890
+ };
2891
+ transform: {
2892
+ lookups?: {
2893
+ name: string;
2894
+ source: {
2895
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
2896
+ connection?: string | undefined;
2897
+ query?: string | undefined;
2898
+ file?: string | undefined;
2899
+ endpoint?: string | undefined;
2900
+ headers?: Record<string, string> | undefined;
2901
+ delimiter?: string | undefined;
2902
+ encoding?: string | undefined;
2903
+ sheet?: string | number | undefined;
2904
+ pagination?: {
2905
+ type: "cursor" | "offset" | "page";
2906
+ pageSize?: number | undefined;
2907
+ pageParam?: string | undefined;
2908
+ totalField?: string | undefined;
2909
+ dataField?: string | undefined;
2910
+ cursorField?: string | undefined;
2911
+ cursorParam?: string | undefined;
2912
+ } | undefined;
2913
+ };
2914
+ key: string;
2915
+ value: string;
2916
+ }[] | undefined;
2917
+ fields: {
2918
+ from?: string | string[] | undefined;
2919
+ to: string;
2920
+ type: "boolean" | "concat" | "constant" | "custom" | "date" | "decimal" | "expression" | "lookup" | "number" | "string";
2921
+ max?: number | undefined;
2922
+ precision?: number | undefined;
2923
+ format?: string | undefined;
2924
+ cleanse?: string | undefined;
2925
+ lookup?: string | undefined;
2926
+ separator?: string | undefined;
2927
+ value?: string | number | boolean | undefined;
2928
+ default?: string | number | boolean | null | undefined;
2929
+ optional?: boolean | undefined;
2930
+ customOp?: string | undefined;
2931
+ options?: Record<string, unknown> | undefined;
2932
+ }[];
2933
+ };
2934
+ target: {
2935
+ adapter: "bc" | "bluecherry" | "csv" | "ifs" | "pg" | "rest";
2936
+ output?: string | undefined;
2937
+ entity?: string | undefined;
2938
+ connection?: string | undefined;
2939
+ includeHeader?: boolean | undefined;
2940
+ columnOrder?: string[] | undefined;
2941
+ dateFormat?: string | undefined;
2942
+ delimiter?: string | undefined;
2943
+ encoding?: string | undefined;
2944
+ nullValue?: string | undefined;
2945
+ template?: string | undefined;
2946
+ baseUrl?: string | undefined;
2947
+ company?: string | undefined;
2948
+ apiVersion?: string | undefined;
2949
+ onConflict?: "fail" | "ignore" | "upsert" | undefined;
2950
+ upsertKey?: string[] | undefined;
2951
+ batchEndpoint?: boolean | undefined;
2952
+ table?: string | undefined;
2953
+ schema?: string | undefined;
2954
+ };
2955
+ run?: {
2956
+ mode?: "full" | "incremental" | "validate-only" | undefined;
2957
+ batchSize?: number | undefined;
2958
+ onError?: "continue" | "stop" | undefined;
2959
+ logLevel?: "debug" | "error" | "info" | "warn" | undefined;
2960
+ dryRun?: boolean | undefined;
2961
+ outputDir?: string | undefined;
2962
+ stagingDb?: string | undefined;
2963
+ enrichConcurrency?: number | undefined;
2964
+ enrichTimeoutMs?: number | undefined;
2965
+ enrichMaxRetries?: number | undefined;
2966
+ incrementalField?: string | undefined;
2967
+ incrementalSince?: string | undefined;
2968
+ } | undefined;
2969
+ }>, {
2970
+ pipeline: {
2971
+ name: string;
2972
+ client: string;
2973
+ version: string;
2974
+ entity: string;
2975
+ description?: string | undefined;
2976
+ };
2977
+ source?: {
2978
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
2979
+ connection?: string | undefined;
2980
+ query?: string | undefined;
2981
+ file?: string | undefined;
2982
+ endpoint?: string | undefined;
2983
+ headers?: Record<string, string> | undefined;
2984
+ delimiter: string;
2985
+ encoding: string;
2986
+ sheet?: string | number | undefined;
2987
+ pagination?: {
2988
+ type: "cursor" | "offset" | "page";
2989
+ pageSize: number;
2990
+ pageParam?: string | undefined;
2991
+ totalField?: string | undefined;
2992
+ dataField?: string | undefined;
2993
+ cursorField?: string | undefined;
2994
+ cursorParam?: string | undefined;
2995
+ } | undefined;
2996
+ } | undefined;
2997
+ sources?: {
2998
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
2999
+ connection?: string | undefined;
3000
+ query?: string | undefined;
3001
+ file?: string | undefined;
3002
+ endpoint?: string | undefined;
3003
+ headers?: Record<string, string> | undefined;
3004
+ delimiter: string;
3005
+ encoding: string;
3006
+ sheet?: string | number | undefined;
3007
+ pagination?: {
3008
+ type: "cursor" | "offset" | "page";
3009
+ pageSize: number;
3010
+ pageParam?: string | undefined;
3011
+ totalField?: string | undefined;
3012
+ dataField?: string | undefined;
3013
+ cursorField?: string | undefined;
3014
+ cursorParam?: string | undefined;
3015
+ } | undefined;
3016
+ id: string;
3017
+ priority: number;
3018
+ rename?: Record<string, string> | undefined;
3019
+ }[] | undefined;
3020
+ merge?: {
3021
+ key: string | string[];
3022
+ strategy: "coalesce" | "intersect" | "priority-override" | "union";
3023
+ onUnmatched: "error" | "exclude" | "include" | "warn";
3024
+ fieldStrategies: {
3025
+ field: string;
3026
+ strategy?: "coalesce" | "priority-override" | undefined;
3027
+ source?: string | undefined;
3028
+ }[];
3029
+ conflictLog?: string | undefined;
3030
+ incrementalSource?: string | undefined;
3031
+ } | undefined;
3032
+ enrich?: {
3033
+ cache: "persist" | boolean;
3034
+ onError: "fail" | "flag" | "skip";
3035
+ lookups: {
3036
+ field: string;
3037
+ provider: string;
3038
+ writeColumns: {
3039
+ valid: string;
3040
+ } & {
3041
+ [k: string]: string;
3042
+ };
3043
+ preValidate?: string | undefined;
3044
+ onError?: "fail" | "flag" | "skip" | undefined;
3045
+ cache?: boolean | undefined;
3046
+ options?: Record<string, unknown> | undefined;
3047
+ }[];
3048
+ } | undefined;
3049
+ dq: {
3050
+ rulesFile?: string | undefined;
3051
+ stopOnCritical: boolean;
3052
+ rejectionFile?: string | undefined;
3053
+ rules: {
3054
+ field: string;
3055
+ sourceId?: string | undefined;
3056
+ checks: {
3057
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
3058
+ value?: string | number | string[] | undefined;
3059
+ severity: "critical" | "info" | "warning";
3060
+ message?: string | undefined;
3061
+ }[];
3062
+ }[];
3063
+ };
3064
+ transform: {
3065
+ lookups: {
3066
+ name: string;
3067
+ source: {
3068
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
3069
+ connection?: string | undefined;
3070
+ query?: string | undefined;
3071
+ file?: string | undefined;
3072
+ endpoint?: string | undefined;
3073
+ headers?: Record<string, string> | undefined;
3074
+ delimiter: string;
3075
+ encoding: string;
3076
+ sheet?: string | number | undefined;
3077
+ pagination?: {
3078
+ type: "cursor" | "offset" | "page";
3079
+ pageSize: number;
3080
+ pageParam?: string | undefined;
3081
+ totalField?: string | undefined;
3082
+ dataField?: string | undefined;
3083
+ cursorField?: string | undefined;
3084
+ cursorParam?: string | undefined;
3085
+ } | undefined;
3086
+ };
3087
+ key: string;
3088
+ value: string;
3089
+ }[];
3090
+ fields: {
3091
+ from?: string | string[] | undefined;
3092
+ to: string;
3093
+ type: "boolean" | "concat" | "constant" | "custom" | "date" | "decimal" | "expression" | "lookup" | "number" | "string";
3094
+ max?: number | undefined;
3095
+ precision?: number | undefined;
3096
+ format?: string | undefined;
3097
+ cleanse?: string | undefined;
3098
+ lookup?: string | undefined;
3099
+ separator?: string | undefined;
3100
+ value?: string | number | boolean | undefined;
3101
+ default?: string | number | boolean | null | undefined;
3102
+ optional: boolean;
3103
+ customOp?: string | undefined;
3104
+ options?: Record<string, unknown> | undefined;
3105
+ }[];
3106
+ };
3107
+ target: {
3108
+ adapter: "bc" | "bluecherry" | "csv" | "ifs" | "pg" | "rest";
3109
+ output?: string | undefined;
3110
+ entity?: string | undefined;
3111
+ connection?: string | undefined;
3112
+ includeHeader?: boolean | undefined;
3113
+ columnOrder?: string[] | undefined;
3114
+ dateFormat?: string | undefined;
3115
+ delimiter: string;
3116
+ encoding: string;
3117
+ nullValue: string;
3118
+ template?: string | undefined;
3119
+ baseUrl?: string | undefined;
3120
+ company?: string | undefined;
3121
+ apiVersion: string;
3122
+ onConflict: "fail" | "ignore" | "upsert";
3123
+ upsertKey?: string[] | undefined;
3124
+ batchEndpoint: boolean;
3125
+ table?: string | undefined;
3126
+ schema: string;
3127
+ };
3128
+ run: {
3129
+ mode: "full" | "incremental" | "validate-only";
3130
+ batchSize: number;
3131
+ onError: "continue" | "stop";
3132
+ logLevel: "debug" | "error" | "info" | "warn";
3133
+ dryRun: boolean;
3134
+ outputDir: string;
3135
+ stagingDb: string;
3136
+ enrichConcurrency: number;
3137
+ enrichTimeoutMs: number;
3138
+ enrichMaxRetries: number;
3139
+ incrementalField?: string | undefined;
3140
+ incrementalSince?: string | undefined;
3141
+ };
3142
+ }, {
3143
+ pipeline: {
3144
+ name: string;
3145
+ client: string;
3146
+ version: string;
3147
+ entity: string;
3148
+ description?: string | undefined;
3149
+ };
3150
+ source?: {
3151
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
3152
+ connection?: string | undefined;
3153
+ query?: string | undefined;
3154
+ file?: string | undefined;
3155
+ endpoint?: string | undefined;
3156
+ headers?: Record<string, string> | undefined;
3157
+ delimiter?: string | undefined;
3158
+ encoding?: string | undefined;
3159
+ sheet?: string | number | undefined;
3160
+ pagination?: {
3161
+ type: "cursor" | "offset" | "page";
3162
+ pageSize?: number | undefined;
3163
+ pageParam?: string | undefined;
3164
+ totalField?: string | undefined;
3165
+ dataField?: string | undefined;
3166
+ cursorField?: string | undefined;
3167
+ cursorParam?: string | undefined;
3168
+ } | undefined;
3169
+ } | undefined;
3170
+ sources?: {
3171
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
3172
+ connection?: string | undefined;
3173
+ query?: string | undefined;
3174
+ file?: string | undefined;
3175
+ endpoint?: string | undefined;
3176
+ headers?: Record<string, string> | undefined;
3177
+ delimiter?: string | undefined;
3178
+ encoding?: string | undefined;
3179
+ sheet?: string | number | undefined;
3180
+ pagination?: {
3181
+ type: "cursor" | "offset" | "page";
3182
+ pageSize?: number | undefined;
3183
+ pageParam?: string | undefined;
3184
+ totalField?: string | undefined;
3185
+ dataField?: string | undefined;
3186
+ cursorField?: string | undefined;
3187
+ cursorParam?: string | undefined;
3188
+ } | undefined;
3189
+ id: string;
3190
+ priority: number;
3191
+ rename?: Record<string, string> | undefined;
3192
+ }[] | undefined;
3193
+ merge?: {
3194
+ key: string | string[];
3195
+ strategy?: "coalesce" | "intersect" | "priority-override" | "union" | undefined;
3196
+ onUnmatched?: "error" | "exclude" | "include" | "warn" | undefined;
3197
+ fieldStrategies?: {
3198
+ field: string;
3199
+ strategy?: "coalesce" | "priority-override" | undefined;
3200
+ source?: string | undefined;
3201
+ }[] | undefined;
3202
+ conflictLog?: string | undefined;
3203
+ incrementalSource?: string | undefined;
3204
+ } | undefined;
3205
+ enrich?: {
3206
+ cache?: "persist" | boolean | undefined;
3207
+ onError?: "fail" | "flag" | "skip" | undefined;
3208
+ lookups: {
3209
+ field: string;
3210
+ provider: string;
3211
+ writeColumns: {
3212
+ valid: string;
3213
+ } & {
3214
+ [k: string]: string;
3215
+ };
3216
+ preValidate?: string | undefined;
3217
+ onError?: "fail" | "flag" | "skip" | undefined;
3218
+ cache?: boolean | undefined;
3219
+ options?: Record<string, unknown> | undefined;
3220
+ }[];
3221
+ } | undefined;
3222
+ dq: {
3223
+ rulesFile?: string | undefined;
3224
+ stopOnCritical?: boolean | undefined;
3225
+ rejectionFile?: string | undefined;
3226
+ rules?: {
3227
+ field: string;
3228
+ sourceId?: string | undefined;
3229
+ checks: {
3230
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
3231
+ value?: string | number | string[] | undefined;
3232
+ severity: "critical" | "info" | "warning";
3233
+ message?: string | undefined;
3234
+ }[];
3235
+ }[] | undefined;
3236
+ };
3237
+ transform: {
3238
+ lookups?: {
3239
+ name: string;
3240
+ source: {
3241
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
3242
+ connection?: string | undefined;
3243
+ query?: string | undefined;
3244
+ file?: string | undefined;
3245
+ endpoint?: string | undefined;
3246
+ headers?: Record<string, string> | undefined;
3247
+ delimiter?: string | undefined;
3248
+ encoding?: string | undefined;
3249
+ sheet?: string | number | undefined;
3250
+ pagination?: {
3251
+ type: "cursor" | "offset" | "page";
3252
+ pageSize?: number | undefined;
3253
+ pageParam?: string | undefined;
3254
+ totalField?: string | undefined;
3255
+ dataField?: string | undefined;
3256
+ cursorField?: string | undefined;
3257
+ cursorParam?: string | undefined;
3258
+ } | undefined;
3259
+ };
3260
+ key: string;
3261
+ value: string;
3262
+ }[] | undefined;
3263
+ fields: {
3264
+ from?: string | string[] | undefined;
3265
+ to: string;
3266
+ type: "boolean" | "concat" | "constant" | "custom" | "date" | "decimal" | "expression" | "lookup" | "number" | "string";
3267
+ max?: number | undefined;
3268
+ precision?: number | undefined;
3269
+ format?: string | undefined;
3270
+ cleanse?: string | undefined;
3271
+ lookup?: string | undefined;
3272
+ separator?: string | undefined;
3273
+ value?: string | number | boolean | undefined;
3274
+ default?: string | number | boolean | null | undefined;
3275
+ optional?: boolean | undefined;
3276
+ customOp?: string | undefined;
3277
+ options?: Record<string, unknown> | undefined;
3278
+ }[];
3279
+ };
3280
+ target: {
3281
+ adapter: "bc" | "bluecherry" | "csv" | "ifs" | "pg" | "rest";
3282
+ output?: string | undefined;
3283
+ entity?: string | undefined;
3284
+ connection?: string | undefined;
3285
+ includeHeader?: boolean | undefined;
3286
+ columnOrder?: string[] | undefined;
3287
+ dateFormat?: string | undefined;
3288
+ delimiter?: string | undefined;
3289
+ encoding?: string | undefined;
3290
+ nullValue?: string | undefined;
3291
+ template?: string | undefined;
3292
+ baseUrl?: string | undefined;
3293
+ company?: string | undefined;
3294
+ apiVersion?: string | undefined;
3295
+ onConflict?: "fail" | "ignore" | "upsert" | undefined;
3296
+ upsertKey?: string[] | undefined;
3297
+ batchEndpoint?: boolean | undefined;
3298
+ table?: string | undefined;
3299
+ schema?: string | undefined;
3300
+ };
3301
+ run?: {
3302
+ mode?: "full" | "incremental" | "validate-only" | undefined;
3303
+ batchSize?: number | undefined;
3304
+ onError?: "continue" | "stop" | undefined;
3305
+ logLevel?: "debug" | "error" | "info" | "warn" | undefined;
3306
+ dryRun?: boolean | undefined;
3307
+ outputDir?: string | undefined;
3308
+ stagingDb?: string | undefined;
3309
+ enrichConcurrency?: number | undefined;
3310
+ enrichTimeoutMs?: number | undefined;
3311
+ enrichMaxRetries?: number | undefined;
3312
+ incrementalField?: string | undefined;
3313
+ incrementalSince?: string | undefined;
3314
+ } | undefined;
3315
+ }>, {
3316
+ pipeline: {
3317
+ name: string;
3318
+ client: string;
3319
+ version: string;
3320
+ entity: string;
3321
+ description?: string | undefined;
3322
+ };
3323
+ source?: {
3324
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
3325
+ connection?: string | undefined;
3326
+ query?: string | undefined;
3327
+ file?: string | undefined;
3328
+ endpoint?: string | undefined;
3329
+ headers?: Record<string, string> | undefined;
3330
+ delimiter: string;
3331
+ encoding: string;
3332
+ sheet?: string | number | undefined;
3333
+ pagination?: {
3334
+ type: "cursor" | "offset" | "page";
3335
+ pageSize: number;
3336
+ pageParam?: string | undefined;
3337
+ totalField?: string | undefined;
3338
+ dataField?: string | undefined;
3339
+ cursorField?: string | undefined;
3340
+ cursorParam?: string | undefined;
3341
+ } | undefined;
3342
+ } | undefined;
3343
+ sources?: {
3344
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
3345
+ connection?: string | undefined;
3346
+ query?: string | undefined;
3347
+ file?: string | undefined;
3348
+ endpoint?: string | undefined;
3349
+ headers?: Record<string, string> | undefined;
3350
+ delimiter: string;
3351
+ encoding: string;
3352
+ sheet?: string | number | undefined;
3353
+ pagination?: {
3354
+ type: "cursor" | "offset" | "page";
3355
+ pageSize: number;
3356
+ pageParam?: string | undefined;
3357
+ totalField?: string | undefined;
3358
+ dataField?: string | undefined;
3359
+ cursorField?: string | undefined;
3360
+ cursorParam?: string | undefined;
3361
+ } | undefined;
3362
+ id: string;
3363
+ priority: number;
3364
+ rename?: Record<string, string> | undefined;
3365
+ }[] | undefined;
3366
+ merge?: {
3367
+ key: string | string[];
3368
+ strategy: "coalesce" | "intersect" | "priority-override" | "union";
3369
+ onUnmatched: "error" | "exclude" | "include" | "warn";
3370
+ fieldStrategies: {
3371
+ field: string;
3372
+ strategy?: "coalesce" | "priority-override" | undefined;
3373
+ source?: string | undefined;
3374
+ }[];
3375
+ conflictLog?: string | undefined;
3376
+ incrementalSource?: string | undefined;
3377
+ } | undefined;
3378
+ enrich?: {
3379
+ cache: "persist" | boolean;
3380
+ onError: "fail" | "flag" | "skip";
3381
+ lookups: {
3382
+ field: string;
3383
+ provider: string;
3384
+ writeColumns: {
3385
+ valid: string;
3386
+ } & {
3387
+ [k: string]: string;
3388
+ };
3389
+ preValidate?: string | undefined;
3390
+ onError?: "fail" | "flag" | "skip" | undefined;
3391
+ cache?: boolean | undefined;
3392
+ options?: Record<string, unknown> | undefined;
3393
+ }[];
3394
+ } | undefined;
3395
+ dq: {
3396
+ rulesFile?: string | undefined;
3397
+ stopOnCritical: boolean;
3398
+ rejectionFile?: string | undefined;
3399
+ rules: {
3400
+ field: string;
3401
+ sourceId?: string | undefined;
3402
+ checks: {
3403
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
3404
+ value?: string | number | string[] | undefined;
3405
+ severity: "critical" | "info" | "warning";
3406
+ message?: string | undefined;
3407
+ }[];
3408
+ }[];
3409
+ };
3410
+ transform: {
3411
+ lookups: {
3412
+ name: string;
3413
+ source: {
3414
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
3415
+ connection?: string | undefined;
3416
+ query?: string | undefined;
3417
+ file?: string | undefined;
3418
+ endpoint?: string | undefined;
3419
+ headers?: Record<string, string> | undefined;
3420
+ delimiter: string;
3421
+ encoding: string;
3422
+ sheet?: string | number | undefined;
3423
+ pagination?: {
3424
+ type: "cursor" | "offset" | "page";
3425
+ pageSize: number;
3426
+ pageParam?: string | undefined;
3427
+ totalField?: string | undefined;
3428
+ dataField?: string | undefined;
3429
+ cursorField?: string | undefined;
3430
+ cursorParam?: string | undefined;
3431
+ } | undefined;
3432
+ };
3433
+ key: string;
3434
+ value: string;
3435
+ }[];
3436
+ fields: {
3437
+ from?: string | string[] | undefined;
3438
+ to: string;
3439
+ type: "boolean" | "concat" | "constant" | "custom" | "date" | "decimal" | "expression" | "lookup" | "number" | "string";
3440
+ max?: number | undefined;
3441
+ precision?: number | undefined;
3442
+ format?: string | undefined;
3443
+ cleanse?: string | undefined;
3444
+ lookup?: string | undefined;
3445
+ separator?: string | undefined;
3446
+ value?: string | number | boolean | undefined;
3447
+ default?: string | number | boolean | null | undefined;
3448
+ optional: boolean;
3449
+ customOp?: string | undefined;
3450
+ options?: Record<string, unknown> | undefined;
3451
+ }[];
3452
+ };
3453
+ target: {
3454
+ adapter: "bc" | "bluecherry" | "csv" | "ifs" | "pg" | "rest";
3455
+ output?: string | undefined;
3456
+ entity?: string | undefined;
3457
+ connection?: string | undefined;
3458
+ includeHeader?: boolean | undefined;
3459
+ columnOrder?: string[] | undefined;
3460
+ dateFormat?: string | undefined;
3461
+ delimiter: string;
3462
+ encoding: string;
3463
+ nullValue: string;
3464
+ template?: string | undefined;
3465
+ baseUrl?: string | undefined;
3466
+ company?: string | undefined;
3467
+ apiVersion: string;
3468
+ onConflict: "fail" | "ignore" | "upsert";
3469
+ upsertKey?: string[] | undefined;
3470
+ batchEndpoint: boolean;
3471
+ table?: string | undefined;
3472
+ schema: string;
3473
+ };
3474
+ run: {
3475
+ mode: "full" | "incremental" | "validate-only";
3476
+ batchSize: number;
3477
+ onError: "continue" | "stop";
3478
+ logLevel: "debug" | "error" | "info" | "warn";
3479
+ dryRun: boolean;
3480
+ outputDir: string;
3481
+ stagingDb: string;
3482
+ enrichConcurrency: number;
3483
+ enrichTimeoutMs: number;
3484
+ enrichMaxRetries: number;
3485
+ incrementalField?: string | undefined;
3486
+ incrementalSince?: string | undefined;
3487
+ };
3488
+ }, {
3489
+ pipeline: {
3490
+ name: string;
3491
+ client: string;
3492
+ version: string;
3493
+ entity: string;
3494
+ description?: string | undefined;
3495
+ };
3496
+ source?: {
3497
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
3498
+ connection?: string | undefined;
3499
+ query?: string | undefined;
3500
+ file?: string | undefined;
3501
+ endpoint?: string | undefined;
3502
+ headers?: Record<string, string> | undefined;
3503
+ delimiter?: string | undefined;
3504
+ encoding?: string | undefined;
3505
+ sheet?: string | number | undefined;
3506
+ pagination?: {
3507
+ type: "cursor" | "offset" | "page";
3508
+ pageSize?: number | undefined;
3509
+ pageParam?: string | undefined;
3510
+ totalField?: string | undefined;
3511
+ dataField?: string | undefined;
3512
+ cursorField?: string | undefined;
3513
+ cursorParam?: string | undefined;
3514
+ } | undefined;
3515
+ } | undefined;
3516
+ sources?: {
3517
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
3518
+ connection?: string | undefined;
3519
+ query?: string | undefined;
3520
+ file?: string | undefined;
3521
+ endpoint?: string | undefined;
3522
+ headers?: Record<string, string> | undefined;
3523
+ delimiter?: string | undefined;
3524
+ encoding?: string | undefined;
3525
+ sheet?: string | number | undefined;
3526
+ pagination?: {
3527
+ type: "cursor" | "offset" | "page";
3528
+ pageSize?: number | undefined;
3529
+ pageParam?: string | undefined;
3530
+ totalField?: string | undefined;
3531
+ dataField?: string | undefined;
3532
+ cursorField?: string | undefined;
3533
+ cursorParam?: string | undefined;
3534
+ } | undefined;
3535
+ id: string;
3536
+ priority: number;
3537
+ rename?: Record<string, string> | undefined;
3538
+ }[] | undefined;
3539
+ merge?: {
3540
+ key: string | string[];
3541
+ strategy?: "coalesce" | "intersect" | "priority-override" | "union" | undefined;
3542
+ onUnmatched?: "error" | "exclude" | "include" | "warn" | undefined;
3543
+ fieldStrategies?: {
3544
+ field: string;
3545
+ strategy?: "coalesce" | "priority-override" | undefined;
3546
+ source?: string | undefined;
3547
+ }[] | undefined;
3548
+ conflictLog?: string | undefined;
3549
+ incrementalSource?: string | undefined;
3550
+ } | undefined;
3551
+ enrich?: {
3552
+ cache?: "persist" | boolean | undefined;
3553
+ onError?: "fail" | "flag" | "skip" | undefined;
3554
+ lookups: {
3555
+ field: string;
3556
+ provider: string;
3557
+ writeColumns: {
3558
+ valid: string;
3559
+ } & {
3560
+ [k: string]: string;
3561
+ };
3562
+ preValidate?: string | undefined;
3563
+ onError?: "fail" | "flag" | "skip" | undefined;
3564
+ cache?: boolean | undefined;
3565
+ options?: Record<string, unknown> | undefined;
3566
+ }[];
3567
+ } | undefined;
3568
+ dq: {
3569
+ rulesFile?: string | undefined;
3570
+ stopOnCritical?: boolean | undefined;
3571
+ rejectionFile?: string | undefined;
3572
+ rules?: {
3573
+ field: string;
3574
+ sourceId?: string | undefined;
3575
+ checks: {
3576
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
3577
+ value?: string | number | string[] | undefined;
3578
+ severity: "critical" | "info" | "warning";
3579
+ message?: string | undefined;
3580
+ }[];
3581
+ }[] | undefined;
3582
+ };
3583
+ transform: {
3584
+ lookups?: {
3585
+ name: string;
3586
+ source: {
3587
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
3588
+ connection?: string | undefined;
3589
+ query?: string | undefined;
3590
+ file?: string | undefined;
3591
+ endpoint?: string | undefined;
3592
+ headers?: Record<string, string> | undefined;
3593
+ delimiter?: string | undefined;
3594
+ encoding?: string | undefined;
3595
+ sheet?: string | number | undefined;
3596
+ pagination?: {
3597
+ type: "cursor" | "offset" | "page";
3598
+ pageSize?: number | undefined;
3599
+ pageParam?: string | undefined;
3600
+ totalField?: string | undefined;
3601
+ dataField?: string | undefined;
3602
+ cursorField?: string | undefined;
3603
+ cursorParam?: string | undefined;
3604
+ } | undefined;
3605
+ };
3606
+ key: string;
3607
+ value: string;
3608
+ }[] | undefined;
3609
+ fields: {
3610
+ from?: string | string[] | undefined;
3611
+ to: string;
3612
+ type: "boolean" | "concat" | "constant" | "custom" | "date" | "decimal" | "expression" | "lookup" | "number" | "string";
3613
+ max?: number | undefined;
3614
+ precision?: number | undefined;
3615
+ format?: string | undefined;
3616
+ cleanse?: string | undefined;
3617
+ lookup?: string | undefined;
3618
+ separator?: string | undefined;
3619
+ value?: string | number | boolean | undefined;
3620
+ default?: string | number | boolean | null | undefined;
3621
+ optional?: boolean | undefined;
3622
+ customOp?: string | undefined;
3623
+ options?: Record<string, unknown> | undefined;
3624
+ }[];
3625
+ };
3626
+ target: {
3627
+ adapter: "bc" | "bluecherry" | "csv" | "ifs" | "pg" | "rest";
3628
+ output?: string | undefined;
3629
+ entity?: string | undefined;
3630
+ connection?: string | undefined;
3631
+ includeHeader?: boolean | undefined;
3632
+ columnOrder?: string[] | undefined;
3633
+ dateFormat?: string | undefined;
3634
+ delimiter?: string | undefined;
3635
+ encoding?: string | undefined;
3636
+ nullValue?: string | undefined;
3637
+ template?: string | undefined;
3638
+ baseUrl?: string | undefined;
3639
+ company?: string | undefined;
3640
+ apiVersion?: string | undefined;
3641
+ onConflict?: "fail" | "ignore" | "upsert" | undefined;
3642
+ upsertKey?: string[] | undefined;
3643
+ batchEndpoint?: boolean | undefined;
3644
+ table?: string | undefined;
3645
+ schema?: string | undefined;
3646
+ };
3647
+ run?: {
3648
+ mode?: "full" | "incremental" | "validate-only" | undefined;
3649
+ batchSize?: number | undefined;
3650
+ onError?: "continue" | "stop" | undefined;
3651
+ logLevel?: "debug" | "error" | "info" | "warn" | undefined;
3652
+ dryRun?: boolean | undefined;
3653
+ outputDir?: string | undefined;
3654
+ stagingDb?: string | undefined;
3655
+ enrichConcurrency?: number | undefined;
3656
+ enrichTimeoutMs?: number | undefined;
3657
+ enrichMaxRetries?: number | undefined;
3658
+ incrementalField?: string | undefined;
3659
+ incrementalSince?: string | undefined;
3660
+ } | undefined;
3661
+ }>, {
3662
+ pipeline: {
3663
+ name: string;
3664
+ client: string;
3665
+ version: string;
3666
+ entity: string;
3667
+ description?: string | undefined;
3668
+ };
3669
+ source?: {
3670
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
3671
+ connection?: string | undefined;
3672
+ query?: string | undefined;
3673
+ file?: string | undefined;
3674
+ endpoint?: string | undefined;
3675
+ headers?: Record<string, string> | undefined;
3676
+ delimiter: string;
3677
+ encoding: string;
3678
+ sheet?: string | number | undefined;
3679
+ pagination?: {
3680
+ type: "cursor" | "offset" | "page";
3681
+ pageSize: number;
3682
+ pageParam?: string | undefined;
3683
+ totalField?: string | undefined;
3684
+ dataField?: string | undefined;
3685
+ cursorField?: string | undefined;
3686
+ cursorParam?: string | undefined;
3687
+ } | undefined;
3688
+ } | undefined;
3689
+ sources?: {
3690
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
3691
+ connection?: string | undefined;
3692
+ query?: string | undefined;
3693
+ file?: string | undefined;
3694
+ endpoint?: string | undefined;
3695
+ headers?: Record<string, string> | undefined;
3696
+ delimiter: string;
3697
+ encoding: string;
3698
+ sheet?: string | number | undefined;
3699
+ pagination?: {
3700
+ type: "cursor" | "offset" | "page";
3701
+ pageSize: number;
3702
+ pageParam?: string | undefined;
3703
+ totalField?: string | undefined;
3704
+ dataField?: string | undefined;
3705
+ cursorField?: string | undefined;
3706
+ cursorParam?: string | undefined;
3707
+ } | undefined;
3708
+ id: string;
3709
+ priority: number;
3710
+ rename?: Record<string, string> | undefined;
3711
+ }[] | undefined;
3712
+ merge?: {
3713
+ key: string | string[];
3714
+ strategy: "coalesce" | "intersect" | "priority-override" | "union";
3715
+ onUnmatched: "error" | "exclude" | "include" | "warn";
3716
+ fieldStrategies: {
3717
+ field: string;
3718
+ strategy?: "coalesce" | "priority-override" | undefined;
3719
+ source?: string | undefined;
3720
+ }[];
3721
+ conflictLog?: string | undefined;
3722
+ incrementalSource?: string | undefined;
3723
+ } | undefined;
3724
+ enrich?: {
3725
+ cache: "persist" | boolean;
3726
+ onError: "fail" | "flag" | "skip";
3727
+ lookups: {
3728
+ field: string;
3729
+ provider: string;
3730
+ writeColumns: {
3731
+ valid: string;
3732
+ } & {
3733
+ [k: string]: string;
3734
+ };
3735
+ preValidate?: string | undefined;
3736
+ onError?: "fail" | "flag" | "skip" | undefined;
3737
+ cache?: boolean | undefined;
3738
+ options?: Record<string, unknown> | undefined;
3739
+ }[];
3740
+ } | undefined;
3741
+ dq: {
3742
+ rulesFile?: string | undefined;
3743
+ stopOnCritical: boolean;
3744
+ rejectionFile?: string | undefined;
3745
+ rules: {
3746
+ field: string;
3747
+ sourceId?: string | undefined;
3748
+ checks: {
3749
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
3750
+ value?: string | number | string[] | undefined;
3751
+ severity: "critical" | "info" | "warning";
3752
+ message?: string | undefined;
3753
+ }[];
3754
+ }[];
3755
+ };
3756
+ transform: {
3757
+ lookups: {
3758
+ name: string;
3759
+ source: {
3760
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
3761
+ connection?: string | undefined;
3762
+ query?: string | undefined;
3763
+ file?: string | undefined;
3764
+ endpoint?: string | undefined;
3765
+ headers?: Record<string, string> | undefined;
3766
+ delimiter: string;
3767
+ encoding: string;
3768
+ sheet?: string | number | undefined;
3769
+ pagination?: {
3770
+ type: "cursor" | "offset" | "page";
3771
+ pageSize: number;
3772
+ pageParam?: string | undefined;
3773
+ totalField?: string | undefined;
3774
+ dataField?: string | undefined;
3775
+ cursorField?: string | undefined;
3776
+ cursorParam?: string | undefined;
3777
+ } | undefined;
3778
+ };
3779
+ key: string;
3780
+ value: string;
3781
+ }[];
3782
+ fields: {
3783
+ from?: string | string[] | undefined;
3784
+ to: string;
3785
+ type: "boolean" | "concat" | "constant" | "custom" | "date" | "decimal" | "expression" | "lookup" | "number" | "string";
3786
+ max?: number | undefined;
3787
+ precision?: number | undefined;
3788
+ format?: string | undefined;
3789
+ cleanse?: string | undefined;
3790
+ lookup?: string | undefined;
3791
+ separator?: string | undefined;
3792
+ value?: string | number | boolean | undefined;
3793
+ default?: string | number | boolean | null | undefined;
3794
+ optional: boolean;
3795
+ customOp?: string | undefined;
3796
+ options?: Record<string, unknown> | undefined;
3797
+ }[];
3798
+ };
3799
+ target: {
3800
+ adapter: "bc" | "bluecherry" | "csv" | "ifs" | "pg" | "rest";
3801
+ output?: string | undefined;
3802
+ entity?: string | undefined;
3803
+ connection?: string | undefined;
3804
+ includeHeader?: boolean | undefined;
3805
+ columnOrder?: string[] | undefined;
3806
+ dateFormat?: string | undefined;
3807
+ delimiter: string;
3808
+ encoding: string;
3809
+ nullValue: string;
3810
+ template?: string | undefined;
3811
+ baseUrl?: string | undefined;
3812
+ company?: string | undefined;
3813
+ apiVersion: string;
3814
+ onConflict: "fail" | "ignore" | "upsert";
3815
+ upsertKey?: string[] | undefined;
3816
+ batchEndpoint: boolean;
3817
+ table?: string | undefined;
3818
+ schema: string;
3819
+ };
3820
+ run: {
3821
+ mode: "full" | "incremental" | "validate-only";
3822
+ batchSize: number;
3823
+ onError: "continue" | "stop";
3824
+ logLevel: "debug" | "error" | "info" | "warn";
3825
+ dryRun: boolean;
3826
+ outputDir: string;
3827
+ stagingDb: string;
3828
+ enrichConcurrency: number;
3829
+ enrichTimeoutMs: number;
3830
+ enrichMaxRetries: number;
3831
+ incrementalField?: string | undefined;
3832
+ incrementalSince?: string | undefined;
3833
+ };
3834
+ }, {
3835
+ pipeline: {
3836
+ name: string;
3837
+ client: string;
3838
+ version: string;
3839
+ entity: string;
3840
+ description?: string | undefined;
3841
+ };
3842
+ source?: {
3843
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
3844
+ connection?: string | undefined;
3845
+ query?: string | undefined;
3846
+ file?: string | undefined;
3847
+ endpoint?: string | undefined;
3848
+ headers?: Record<string, string> | undefined;
3849
+ delimiter?: string | undefined;
3850
+ encoding?: string | undefined;
3851
+ sheet?: string | number | undefined;
3852
+ pagination?: {
3853
+ type: "cursor" | "offset" | "page";
3854
+ pageSize?: number | undefined;
3855
+ pageParam?: string | undefined;
3856
+ totalField?: string | undefined;
3857
+ dataField?: string | undefined;
3858
+ cursorField?: string | undefined;
3859
+ cursorParam?: string | undefined;
3860
+ } | undefined;
3861
+ } | undefined;
3862
+ sources?: {
3863
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
3864
+ connection?: string | undefined;
3865
+ query?: string | undefined;
3866
+ file?: string | undefined;
3867
+ endpoint?: string | undefined;
3868
+ headers?: Record<string, string> | undefined;
3869
+ delimiter?: string | undefined;
3870
+ encoding?: string | undefined;
3871
+ sheet?: string | number | undefined;
3872
+ pagination?: {
3873
+ type: "cursor" | "offset" | "page";
3874
+ pageSize?: number | undefined;
3875
+ pageParam?: string | undefined;
3876
+ totalField?: string | undefined;
3877
+ dataField?: string | undefined;
3878
+ cursorField?: string | undefined;
3879
+ cursorParam?: string | undefined;
3880
+ } | undefined;
3881
+ id: string;
3882
+ priority: number;
3883
+ rename?: Record<string, string> | undefined;
3884
+ }[] | undefined;
3885
+ merge?: {
3886
+ key: string | string[];
3887
+ strategy?: "coalesce" | "intersect" | "priority-override" | "union" | undefined;
3888
+ onUnmatched?: "error" | "exclude" | "include" | "warn" | undefined;
3889
+ fieldStrategies?: {
3890
+ field: string;
3891
+ strategy?: "coalesce" | "priority-override" | undefined;
3892
+ source?: string | undefined;
3893
+ }[] | undefined;
3894
+ conflictLog?: string | undefined;
3895
+ incrementalSource?: string | undefined;
3896
+ } | undefined;
3897
+ enrich?: {
3898
+ cache?: "persist" | boolean | undefined;
3899
+ onError?: "fail" | "flag" | "skip" | undefined;
3900
+ lookups: {
3901
+ field: string;
3902
+ provider: string;
3903
+ writeColumns: {
3904
+ valid: string;
3905
+ } & {
3906
+ [k: string]: string;
3907
+ };
3908
+ preValidate?: string | undefined;
3909
+ onError?: "fail" | "flag" | "skip" | undefined;
3910
+ cache?: boolean | undefined;
3911
+ options?: Record<string, unknown> | undefined;
3912
+ }[];
3913
+ } | undefined;
3914
+ dq: {
3915
+ rulesFile?: string | undefined;
3916
+ stopOnCritical?: boolean | undefined;
3917
+ rejectionFile?: string | undefined;
3918
+ rules?: {
3919
+ field: string;
3920
+ sourceId?: string | undefined;
3921
+ checks: {
3922
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
3923
+ value?: string | number | string[] | undefined;
3924
+ severity: "critical" | "info" | "warning";
3925
+ message?: string | undefined;
3926
+ }[];
3927
+ }[] | undefined;
3928
+ };
3929
+ transform: {
3930
+ lookups?: {
3931
+ name: string;
3932
+ source: {
3933
+ adapter: "csv" | "mssql" | "pg" | "rest" | "xlsx";
3934
+ connection?: string | undefined;
3935
+ query?: string | undefined;
3936
+ file?: string | undefined;
3937
+ endpoint?: string | undefined;
3938
+ headers?: Record<string, string> | undefined;
3939
+ delimiter?: string | undefined;
3940
+ encoding?: string | undefined;
3941
+ sheet?: string | number | undefined;
3942
+ pagination?: {
3943
+ type: "cursor" | "offset" | "page";
3944
+ pageSize?: number | undefined;
3945
+ pageParam?: string | undefined;
3946
+ totalField?: string | undefined;
3947
+ dataField?: string | undefined;
3948
+ cursorField?: string | undefined;
3949
+ cursorParam?: string | undefined;
3950
+ } | undefined;
3951
+ };
3952
+ key: string;
3953
+ value: string;
3954
+ }[] | undefined;
3955
+ fields: {
3956
+ from?: string | string[] | undefined;
3957
+ to: string;
3958
+ type: "boolean" | "concat" | "constant" | "custom" | "date" | "decimal" | "expression" | "lookup" | "number" | "string";
3959
+ max?: number | undefined;
3960
+ precision?: number | undefined;
3961
+ format?: string | undefined;
3962
+ cleanse?: string | undefined;
3963
+ lookup?: string | undefined;
3964
+ separator?: string | undefined;
3965
+ value?: string | number | boolean | undefined;
3966
+ default?: string | number | boolean | null | undefined;
3967
+ optional?: boolean | undefined;
3968
+ customOp?: string | undefined;
3969
+ options?: Record<string, unknown> | undefined;
3970
+ }[];
3971
+ };
3972
+ target: {
3973
+ adapter: "bc" | "bluecherry" | "csv" | "ifs" | "pg" | "rest";
3974
+ output?: string | undefined;
3975
+ entity?: string | undefined;
3976
+ connection?: string | undefined;
3977
+ includeHeader?: boolean | undefined;
3978
+ columnOrder?: string[] | undefined;
3979
+ dateFormat?: string | undefined;
3980
+ delimiter?: string | undefined;
3981
+ encoding?: string | undefined;
3982
+ nullValue?: string | undefined;
3983
+ template?: string | undefined;
3984
+ baseUrl?: string | undefined;
3985
+ company?: string | undefined;
3986
+ apiVersion?: string | undefined;
3987
+ onConflict?: "fail" | "ignore" | "upsert" | undefined;
3988
+ upsertKey?: string[] | undefined;
3989
+ batchEndpoint?: boolean | undefined;
3990
+ table?: string | undefined;
3991
+ schema?: string | undefined;
3992
+ };
3993
+ run?: {
3994
+ mode?: "full" | "incremental" | "validate-only" | undefined;
3995
+ batchSize?: number | undefined;
3996
+ onError?: "continue" | "stop" | undefined;
3997
+ logLevel?: "debug" | "error" | "info" | "warn" | undefined;
3998
+ dryRun?: boolean | undefined;
3999
+ outputDir?: string | undefined;
4000
+ stagingDb?: string | undefined;
4001
+ enrichConcurrency?: number | undefined;
4002
+ enrichTimeoutMs?: number | undefined;
4003
+ enrichMaxRetries?: number | undefined;
4004
+ incrementalField?: string | undefined;
4005
+ incrementalSince?: string | undefined;
4006
+ } | undefined;
4007
+ }>;
4008
+ export declare const ToolkitConfigSchema: z.ZodObject<{
4009
+ version: z.ZodString;
4010
+ plugins: z.ZodDefault<z.ZodArray<z.ZodObject<{
4011
+ package: z.ZodString;
4012
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
4013
+ }, "strip", z.ZodTypeAny, {
4014
+ package: string;
4015
+ options?: Record<string, unknown> | undefined;
4016
+ }, {
4017
+ package: string;
4018
+ options?: Record<string, unknown> | undefined;
4019
+ }>, "many">>;
4020
+ }, "strip", z.ZodTypeAny, {
4021
+ version: string;
4022
+ plugins: {
4023
+ package: string;
4024
+ options?: Record<string, unknown> | undefined;
4025
+ }[];
4026
+ }, {
4027
+ version: string;
4028
+ plugins?: {
4029
+ package: string;
4030
+ options?: Record<string, unknown> | undefined;
4031
+ }[] | undefined;
4032
+ }>;
4033
+ export declare const CompositeRuleSchema: z.ZodObject<{
4034
+ id: z.ZodEffects<z.ZodString, string, string>;
4035
+ description: z.ZodOptional<z.ZodString>;
4036
+ checks: z.ZodArray<z.ZodObject<{
4037
+ type: z.ZodEnum<["notNull", "unique", "pattern", "email", "ukPostcode", "maxLength", "min", "max", "allowedValues"]>;
4038
+ value: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodArray<z.ZodString, "many">]>>;
4039
+ severity: z.ZodEnum<["critical", "warning", "info"]>;
4040
+ message: z.ZodOptional<z.ZodString>;
4041
+ }, "strip", z.ZodTypeAny, {
4042
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
4043
+ value?: string | number | string[] | undefined;
4044
+ severity: "critical" | "info" | "warning";
4045
+ message?: string | undefined;
4046
+ }, {
4047
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
4048
+ value?: string | number | string[] | undefined;
4049
+ severity: "critical" | "info" | "warning";
4050
+ message?: string | undefined;
4051
+ }>, "many">;
4052
+ }, "strip", z.ZodTypeAny, {
4053
+ id: string;
4054
+ description?: string | undefined;
4055
+ checks: {
4056
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
4057
+ value?: string | number | string[] | undefined;
4058
+ severity: "critical" | "info" | "warning";
4059
+ message?: string | undefined;
4060
+ }[];
4061
+ }, {
4062
+ id: string;
4063
+ description?: string | undefined;
4064
+ checks: {
4065
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
4066
+ value?: string | number | string[] | undefined;
4067
+ severity: "critical" | "info" | "warning";
4068
+ message?: string | undefined;
4069
+ }[];
4070
+ }>;
4071
+ export declare const CompositeRuleLibrarySchema: z.ZodObject<{
4072
+ version: z.ZodString;
4073
+ rules: z.ZodArray<z.ZodObject<{
4074
+ id: z.ZodEffects<z.ZodString, string, string>;
4075
+ description: z.ZodOptional<z.ZodString>;
4076
+ checks: z.ZodArray<z.ZodObject<{
4077
+ type: z.ZodEnum<["notNull", "unique", "pattern", "email", "ukPostcode", "maxLength", "min", "max", "allowedValues"]>;
4078
+ value: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodArray<z.ZodString, "many">]>>;
4079
+ severity: z.ZodEnum<["critical", "warning", "info"]>;
4080
+ message: z.ZodOptional<z.ZodString>;
4081
+ }, "strip", z.ZodTypeAny, {
4082
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
4083
+ value?: string | number | string[] | undefined;
4084
+ severity: "critical" | "info" | "warning";
4085
+ message?: string | undefined;
4086
+ }, {
4087
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
4088
+ value?: string | number | string[] | undefined;
4089
+ severity: "critical" | "info" | "warning";
4090
+ message?: string | undefined;
4091
+ }>, "many">;
4092
+ }, "strip", z.ZodTypeAny, {
4093
+ id: string;
4094
+ description?: string | undefined;
4095
+ checks: {
4096
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
4097
+ value?: string | number | string[] | undefined;
4098
+ severity: "critical" | "info" | "warning";
4099
+ message?: string | undefined;
4100
+ }[];
4101
+ }, {
4102
+ id: string;
4103
+ description?: string | undefined;
4104
+ checks: {
4105
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
4106
+ value?: string | number | string[] | undefined;
4107
+ severity: "critical" | "info" | "warning";
4108
+ message?: string | undefined;
4109
+ }[];
4110
+ }>, "many">;
4111
+ }, "strip", z.ZodTypeAny, {
4112
+ version: string;
4113
+ rules: {
4114
+ id: string;
4115
+ description?: string | undefined;
4116
+ checks: {
4117
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
4118
+ value?: string | number | string[] | undefined;
4119
+ severity: "critical" | "info" | "warning";
4120
+ message?: string | undefined;
4121
+ }[];
4122
+ }[];
4123
+ }, {
4124
+ version: string;
4125
+ rules: {
4126
+ id: string;
4127
+ description?: string | undefined;
4128
+ checks: {
4129
+ type: "allowedValues" | "email" | "max" | "maxLength" | "min" | "notNull" | "pattern" | "ukPostcode" | "unique";
4130
+ value?: string | number | string[] | undefined;
4131
+ severity: "critical" | "info" | "warning";
4132
+ message?: string | undefined;
4133
+ }[];
4134
+ }[];
4135
+ }>;
4136
+ export type Pipeline = z.infer<typeof PipelineSchema>;
4137
+ export type SourceConfig = z.infer<typeof SourceSchema>;
4138
+ export type TargetConfig = z.infer<typeof TargetSchema>;
4139
+ export type RunConfig = z.infer<typeof RunSchema>;
4140
+ export type FieldMapping = z.infer<typeof FieldMappingSchema>;
4141
+ export type DqRule = z.infer<typeof DqRuleSchema>;
4142
+ export type CheckConfig = z.infer<typeof CheckSchema>;
4143
+ export type Lookup = z.infer<typeof LookupSchema>;
4144
+ export type ToolkitConfig = z.infer<typeof ToolkitConfigSchema>;
4145
+ export type CompositeRule = z.infer<typeof CompositeRuleSchema>;
4146
+ export type CompositeRuleLibrary = z.infer<typeof CompositeRuleLibrarySchema>;
4147
+ export type MergeConfig = z.infer<typeof MergeSchema>;
4148
+ export type MultiSourceEntry = z.infer<typeof MultiSourceEntrySchema>;
4149
+ export type EnrichConfig = z.infer<typeof EnrichSchema>;
4150
+ export type EnrichLookupConfig = z.infer<typeof EnrichLookupSchema>;
4151
+ export type EnrichWriteColumns = z.infer<typeof EnrichWriteColumnsSchema>;
4152
+ /** Narrows a Pipeline to one with a defined `source` (single-source pipeline). */
4153
+ export declare function isSingleSource(p: Pipeline): p is Pipeline & {
4154
+ source: SourceConfig;
4155
+ };
4156
+ /** Narrows a Pipeline to one with defined `sources` and `merge` (multi-source pipeline). */
4157
+ export declare function isMultiSource(p: Pipeline): p is Pipeline & {
4158
+ sources: MultiSourceEntry[];
4159
+ merge: MergeConfig;
4160
+ };
4161
+ export {};
4162
+ //# sourceMappingURL=schema.d.ts.map