@xylex-group/athena 3.0.2 → 3.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +1 -1
  2. package/dist/billing.cjs +1 -1
  3. package/dist/billing.cjs.map +1 -1
  4. package/dist/billing.js +1 -1
  5. package/dist/billing.js.map +1 -1
  6. package/dist/browser.cjs +1 -1
  7. package/dist/browser.cjs.map +1 -1
  8. package/dist/browser.d.cts +4 -4
  9. package/dist/browser.d.ts +4 -4
  10. package/dist/browser.js +1 -1
  11. package/dist/browser.js.map +1 -1
  12. package/dist/cli/index.cjs +909 -13
  13. package/dist/cli/index.cjs.map +1 -1
  14. package/dist/cli/index.d.cts +2 -2
  15. package/dist/cli/index.d.ts +2 -2
  16. package/dist/cli/index.js +910 -14
  17. package/dist/cli/index.js.map +1 -1
  18. package/dist/index.cjs +840 -10
  19. package/dist/index.cjs.map +1 -1
  20. package/dist/index.d.cts +4 -4
  21. package/dist/index.d.ts +4 -4
  22. package/dist/index.js +841 -11
  23. package/dist/index.js.map +1 -1
  24. package/dist/{module-CkUM6v58.d.ts → module-BruTcxe0.d.ts} +1 -1
  25. package/dist/{module-CB25egcO.d.cts → module-CPG3ULxQ.d.cts} +1 -1
  26. package/dist/next/client.cjs +1 -1
  27. package/dist/next/client.cjs.map +1 -1
  28. package/dist/next/client.js +1 -1
  29. package/dist/next/client.js.map +1 -1
  30. package/dist/next/server.cjs +1 -1
  31. package/dist/next/server.cjs.map +1 -1
  32. package/dist/next/server.js +1 -1
  33. package/dist/next/server.js.map +1 -1
  34. package/dist/{pipeline-D4W-Cc-A.d.cts → pipeline-CIzV9f7b.d.cts} +1 -1
  35. package/dist/{pipeline-B8aN2EHe.d.ts → pipeline-DNlc8Ayn.d.ts} +1 -1
  36. package/dist/react.cjs +1 -1
  37. package/dist/react.cjs.map +1 -1
  38. package/dist/react.js +1 -1
  39. package/dist/react.js.map +1 -1
  40. package/dist/{types-BaAMXCqK.d.ts → types-D6tZ9aoq.d.ts} +34 -1
  41. package/dist/{types-BBm-kEBL.d.cts → types-DFr2cL1N.d.cts} +34 -1
  42. package/package.json +1 -1
@@ -54,6 +54,21 @@ interface GeneratorOutputTargets {
54
54
  }
55
55
  type GeneratorOutputPreset = 'legacy' | 'athena-direct';
56
56
  type GeneratorOutputFormat = 'define-model' | 'table-builder';
57
+ /**
58
+ * How existing database/registry artifacts are handled on regenerate.
59
+ *
60
+ * - `merge` (default): additive smart merge — append missing imports/keys, preserve custom code
61
+ * - `skip`: never rewrite existing files (legacy protect behavior)
62
+ * - `overwrite`: always replace with pure generated content
63
+ */
64
+ type GeneratorArtifactWritePolicy = 'merge' | 'skip' | 'overwrite';
65
+ /**
66
+ * Per-kind write policy for protected generator artifacts.
67
+ */
68
+ interface GeneratorArtifactWriteConfig {
69
+ database?: GeneratorArtifactWritePolicy;
70
+ registry?: GeneratorArtifactWritePolicy;
71
+ }
57
72
  /**
58
73
  * Output configuration including dynamic placeholder aliases.
59
74
  */
@@ -62,6 +77,7 @@ interface GeneratorOutputConfig {
62
77
  preset?: GeneratorOutputPreset;
63
78
  targets?: Partial<GeneratorOutputTargets>;
64
79
  placeholderMap?: Record<string, string>;
80
+ artifactWrite?: GeneratorArtifactWriteConfig;
65
81
  }
66
82
  /**
67
83
  * Normalized output configuration with defaults applied.
@@ -71,6 +87,10 @@ interface NormalizedGeneratorOutputConfig {
71
87
  preset: GeneratorOutputPreset;
72
88
  targets: GeneratorOutputTargets;
73
89
  placeholderMap: Record<string, string>;
90
+ artifactWrite: {
91
+ database: GeneratorArtifactWritePolicy;
92
+ registry: GeneratorArtifactWritePolicy;
93
+ };
74
94
  }
75
95
  /**
76
96
  * Schemas selected for PostgreSQL introspection. Strings may be comma-separated
@@ -215,13 +235,26 @@ interface RunGeneratorResult extends GeneratedArtifacts {
215
235
  configPath: string;
216
236
  config: NormalizedAthenaGeneratorConfig;
217
237
  writtenFiles: string[];
238
+ writtenDetails: WrittenGeneratedArtifact[];
218
239
  skippedFiles: SkippedGeneratedArtifact[];
219
240
  }
220
- type SkippedGeneratedArtifactReason = 'protected-existing-file';
241
+ type SkippedGeneratedArtifactReason = 'protected-existing-file' | 'merge-conflict' | 'merge-lint-failed' | 'merge-unparseable' | 'already-current';
242
+ type WrittenGeneratedArtifactReason = 'created' | 'overwritten' | 'merged';
221
243
  interface SkippedGeneratedArtifact {
222
244
  kind: GeneratorArtifactKind;
223
245
  path: string;
224
246
  reason: SkippedGeneratedArtifactReason;
247
+ detail?: string;
248
+ preservedCustom?: string[];
249
+ conflicts?: string[];
250
+ lintErrors?: string[];
251
+ }
252
+ interface WrittenGeneratedArtifact {
253
+ kind: GeneratorArtifactKind;
254
+ path: string;
255
+ reason: WrittenGeneratedArtifactReason;
256
+ added?: string[];
257
+ preservedCustom?: string[];
225
258
  }
226
259
 
227
260
  export type { AthenaGeneratorConfig as A, GeneratedArtifacts as G, LoadGeneratorConfigOptions as L, NormalizedAthenaGeneratorConfig as N, RunGeneratorOptions as R, SkippedGeneratedArtifact as S, LoadedGeneratorConfig as a, GeneratorProviderConfig as b, GeneratorExperimentalFlags as c, RunGeneratorResult as d, GeneratedArtifact as e, GeneratorArtifactKind as f, GeneratorFeatureFlags as g, GeneratorFilterConfig as h, GeneratorInternalConfig as i, GeneratorNamingConfig as j, GeneratorOutputConfig as k, GeneratorOutputFormat as l, GeneratorOutputPreset as m, GeneratorOutputTargets as n, GeneratorSchemaSelection as o, GeneratorTableSelection as p, NamingStyle as q, NormalizedGeneratorFilterConfig as r, NormalizedGeneratorOutputConfig as s, SkippedGeneratedArtifactReason as t };
@@ -54,6 +54,21 @@ interface GeneratorOutputTargets {
54
54
  }
55
55
  type GeneratorOutputPreset = 'legacy' | 'athena-direct';
56
56
  type GeneratorOutputFormat = 'define-model' | 'table-builder';
57
+ /**
58
+ * How existing database/registry artifacts are handled on regenerate.
59
+ *
60
+ * - `merge` (default): additive smart merge — append missing imports/keys, preserve custom code
61
+ * - `skip`: never rewrite existing files (legacy protect behavior)
62
+ * - `overwrite`: always replace with pure generated content
63
+ */
64
+ type GeneratorArtifactWritePolicy = 'merge' | 'skip' | 'overwrite';
65
+ /**
66
+ * Per-kind write policy for protected generator artifacts.
67
+ */
68
+ interface GeneratorArtifactWriteConfig {
69
+ database?: GeneratorArtifactWritePolicy;
70
+ registry?: GeneratorArtifactWritePolicy;
71
+ }
57
72
  /**
58
73
  * Output configuration including dynamic placeholder aliases.
59
74
  */
@@ -62,6 +77,7 @@ interface GeneratorOutputConfig {
62
77
  preset?: GeneratorOutputPreset;
63
78
  targets?: Partial<GeneratorOutputTargets>;
64
79
  placeholderMap?: Record<string, string>;
80
+ artifactWrite?: GeneratorArtifactWriteConfig;
65
81
  }
66
82
  /**
67
83
  * Normalized output configuration with defaults applied.
@@ -71,6 +87,10 @@ interface NormalizedGeneratorOutputConfig {
71
87
  preset: GeneratorOutputPreset;
72
88
  targets: GeneratorOutputTargets;
73
89
  placeholderMap: Record<string, string>;
90
+ artifactWrite: {
91
+ database: GeneratorArtifactWritePolicy;
92
+ registry: GeneratorArtifactWritePolicy;
93
+ };
74
94
  }
75
95
  /**
76
96
  * Schemas selected for PostgreSQL introspection. Strings may be comma-separated
@@ -215,13 +235,26 @@ interface RunGeneratorResult extends GeneratedArtifacts {
215
235
  configPath: string;
216
236
  config: NormalizedAthenaGeneratorConfig;
217
237
  writtenFiles: string[];
238
+ writtenDetails: WrittenGeneratedArtifact[];
218
239
  skippedFiles: SkippedGeneratedArtifact[];
219
240
  }
220
- type SkippedGeneratedArtifactReason = 'protected-existing-file';
241
+ type SkippedGeneratedArtifactReason = 'protected-existing-file' | 'merge-conflict' | 'merge-lint-failed' | 'merge-unparseable' | 'already-current';
242
+ type WrittenGeneratedArtifactReason = 'created' | 'overwritten' | 'merged';
221
243
  interface SkippedGeneratedArtifact {
222
244
  kind: GeneratorArtifactKind;
223
245
  path: string;
224
246
  reason: SkippedGeneratedArtifactReason;
247
+ detail?: string;
248
+ preservedCustom?: string[];
249
+ conflicts?: string[];
250
+ lintErrors?: string[];
251
+ }
252
+ interface WrittenGeneratedArtifact {
253
+ kind: GeneratorArtifactKind;
254
+ path: string;
255
+ reason: WrittenGeneratedArtifactReason;
256
+ added?: string[];
257
+ preservedCustom?: string[];
225
258
  }
226
259
 
227
260
  export type { AthenaGeneratorConfig as A, GeneratedArtifacts as G, LoadGeneratorConfigOptions as L, NormalizedAthenaGeneratorConfig as N, RunGeneratorOptions as R, SkippedGeneratedArtifact as S, LoadedGeneratorConfig as a, GeneratorProviderConfig as b, GeneratorExperimentalFlags as c, RunGeneratorResult as d, GeneratedArtifact as e, GeneratorArtifactKind as f, GeneratorFeatureFlags as g, GeneratorFilterConfig as h, GeneratorInternalConfig as i, GeneratorNamingConfig as j, GeneratorOutputConfig as k, GeneratorOutputFormat as l, GeneratorOutputPreset as m, GeneratorOutputTargets as n, GeneratorSchemaSelection as o, GeneratorTableSelection as p, NamingStyle as q, NormalizedGeneratorFilterConfig as r, NormalizedGeneratorOutputConfig as s, SkippedGeneratedArtifactReason as t };
package/package.json CHANGED
@@ -218,5 +218,5 @@
218
218
  ]
219
219
  }
220
220
  },
221
- "version": "3.0.2"
221
+ "version": "3.0.3"
222
222
  }