@rehearsal-db/core 0.1.0-beta.13 → 0.1.0-beta.15

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 (169) hide show
  1. package/CHANGELOG.md +93 -0
  2. package/README.md +4 -1
  3. package/dist/package.json +100 -0
  4. package/dist/scripts/install/create_root_config.d.mts +3 -0
  5. package/dist/scripts/install/create_root_config.mjs +13 -0
  6. package/dist/scripts/runtime/manage_database.d.mts +6 -0
  7. package/{scripts → dist/scripts}/runtime/manage_database.mjs +6 -8
  8. package/dist/src/application/session.d.mts +96 -0
  9. package/dist/src/application/session.mjs +380 -0
  10. package/dist/src/baseline/artifact.d.mts +119 -0
  11. package/dist/src/baseline/artifact.mjs +522 -0
  12. package/dist/src/baseline/builder.d.mts +19 -0
  13. package/dist/src/baseline/builder.mjs +142 -0
  14. package/dist/src/baseline/input_discovery.d.mts +13 -0
  15. package/dist/src/baseline/input_discovery.mjs +149 -0
  16. package/dist/src/baseline/policy_review.d.mts +56 -0
  17. package/dist/src/baseline/policy_review.mjs +73 -0
  18. package/dist/src/baseline/preparation.d.mts +63 -0
  19. package/dist/src/baseline/preparation.mjs +295 -0
  20. package/dist/src/baseline/privacy_engine.d.mts +162 -0
  21. package/dist/src/baseline/privacy_engine.mjs +1162 -0
  22. package/dist/src/baseline/privacy_structured_json.d.mts +66 -0
  23. package/dist/src/baseline/privacy_structured_json.mjs +464 -0
  24. package/dist/src/baseline/sanitization_policy.d.mts +69 -0
  25. package/dist/src/baseline/sanitization_policy.mjs +227 -0
  26. package/dist/src/baseline/schema_snapshot.d.mts +19 -0
  27. package/dist/src/baseline/schema_snapshot.mjs +79 -0
  28. package/dist/src/cli/arguments.d.mts +43 -0
  29. package/dist/src/cli/arguments.mjs +135 -0
  30. package/dist/src/cli/guided.d.mts +51 -0
  31. package/dist/src/cli/guided.mjs +713 -0
  32. package/dist/src/cli/init_command.d.mts +21 -0
  33. package/dist/src/cli/init_command.mjs +90 -0
  34. package/dist/src/cli/project_commands.d.mts +157 -0
  35. package/dist/src/cli/project_commands.mjs +183 -0
  36. package/dist/src/cli/rehearsal.d.mts +7 -0
  37. package/dist/src/cli/rehearsal.mjs +706 -0
  38. package/dist/src/cli/renderers.d.mts +299 -0
  39. package/dist/src/cli/renderers.mjs +554 -0
  40. package/dist/src/cli/runtime_commands.d.mts +265 -0
  41. package/dist/src/cli/runtime_commands.mjs +599 -0
  42. package/dist/src/cli/source_commands.d.mts +432 -0
  43. package/dist/src/cli/source_commands.mjs +299 -0
  44. package/dist/src/cli/terminal.d.mts +59 -0
  45. package/dist/src/cli/terminal.mjs +230 -0
  46. package/dist/src/identity/claim.d.mts +144 -0
  47. package/dist/src/identity/claim.mjs +947 -0
  48. package/dist/src/identity/provider_configuration.d.mts +37 -0
  49. package/dist/src/identity/provider_configuration.mjs +132 -0
  50. package/dist/src/identity/storage.d.mts +21 -0
  51. package/dist/src/identity/storage.mjs +122 -0
  52. package/dist/src/index.d.mts +4 -0
  53. package/dist/src/index.mjs +3 -0
  54. package/dist/src/project/configuration.d.mts +181 -0
  55. package/dist/src/project/configuration.mjs +958 -0
  56. package/dist/src/project/install_scaffold.d.mts +42 -0
  57. package/dist/src/project/install_scaffold.mjs +263 -0
  58. package/dist/src/project/setup.d.mts +87 -0
  59. package/dist/src/project/setup.mjs +414 -0
  60. package/dist/src/project/support_report.d.mts +88 -0
  61. package/dist/src/project/support_report.mjs +83 -0
  62. package/dist/src/runtime/cleanup.d.mts +85 -0
  63. package/dist/src/runtime/cleanup.mjs +311 -0
  64. package/dist/src/runtime/migration_history.d.mts +51 -0
  65. package/dist/src/runtime/migration_history.mjs +170 -0
  66. package/dist/src/runtime/plan.d.mts +134 -0
  67. package/dist/src/runtime/plan.mjs +636 -0
  68. package/dist/src/runtime/policy.d.mts +66 -0
  69. package/dist/src/runtime/policy.mjs +369 -0
  70. package/dist/src/runtime/restore.d.mts +22 -0
  71. package/dist/src/runtime/restore.mjs +276 -0
  72. package/dist/src/runtime/service_environment.d.mts +11 -0
  73. package/dist/src/runtime/service_environment.mjs +58 -0
  74. package/dist/src/runtime/topology.d.mts +51 -0
  75. package/dist/src/runtime/topology.mjs +128 -0
  76. package/dist/src/shared/diagnostics.d.mts +97 -0
  77. package/dist/src/shared/diagnostics.mjs +170 -0
  78. package/dist/src/shared/human_output.d.mts +2 -0
  79. package/{src → dist/src}/shared/human_output.mjs +1 -3
  80. package/dist/src/shared/node_runtime.d.mts +14 -0
  81. package/dist/src/shared/node_runtime.mjs +25 -0
  82. package/dist/src/shared/operation_guard.d.mts +22 -0
  83. package/dist/src/shared/operation_guard.mjs +150 -0
  84. package/dist/src/shared/process_environment.d.mts +15 -0
  85. package/dist/src/shared/process_environment.mjs +50 -0
  86. package/dist/src/source/access.d.mts +165 -0
  87. package/dist/src/source/access.mjs +602 -0
  88. package/dist/src/source/asset_transfer.d.mts +27 -0
  89. package/dist/src/source/asset_transfer.mjs +202 -0
  90. package/dist/src/source/baseline.d.mts +66 -0
  91. package/dist/src/source/baseline.mjs +372 -0
  92. package/dist/src/source/external_reader.d.mts +42 -0
  93. package/dist/src/source/external_reader.mjs +278 -0
  94. package/dist/src/source/postgresql_access.d.mts +86 -0
  95. package/dist/src/source/postgresql_access.mjs +454 -0
  96. package/dist/src/source/privacy_paths.d.mts +10 -0
  97. package/dist/src/source/privacy_paths.mjs +27 -0
  98. package/dist/src/targets/driver.d.mts +2 -0
  99. package/dist/src/targets/driver.mjs +13 -0
  100. package/dist/src/targets/postgresql.d.mts +5 -0
  101. package/dist/src/targets/postgresql.mjs +641 -0
  102. package/dist/src/targets/supabase.d.mts +8 -0
  103. package/dist/src/targets/supabase.mjs +659 -0
  104. package/dist/src/targets/supabase_environment.d.mts +49 -0
  105. package/dist/src/targets/supabase_environment.mjs +162 -0
  106. package/dist/src/targets/target.d.mts +33 -0
  107. package/dist/src/targets/target.mjs +39 -0
  108. package/docs/README.md +1 -0
  109. package/docs/architecture.md +17 -9
  110. package/docs/configuration.md +49 -8
  111. package/docs/getting-started.md +28 -0
  112. package/docs/index.md +1 -0
  113. package/docs/production-source.md +43 -7
  114. package/docs/releasing.md +5 -3
  115. package/docs/roadmap.md +3 -2
  116. package/docs/sanitization.md +415 -14
  117. package/docs/standalone-workflow.md +12 -6
  118. package/docs/troubleshooting.md +5 -1
  119. package/docs/tutorial.md +5 -0
  120. package/docs/typescript.md +87 -0
  121. package/package.json +35 -29
  122. package/scripts/install/create_root_config.mjs +0 -36
  123. package/src/README.md +0 -17
  124. package/src/application/session.mjs +0 -435
  125. package/src/baseline/artifact.mjs +0 -684
  126. package/src/baseline/builder.mjs +0 -164
  127. package/src/baseline/input_discovery.mjs +0 -155
  128. package/src/baseline/policy_review.mjs +0 -92
  129. package/src/baseline/preparation.mjs +0 -323
  130. package/src/baseline/privacy_engine.mjs +0 -952
  131. package/src/baseline/sanitization_policy.mjs +0 -299
  132. package/src/baseline/schema_snapshot.mjs +0 -113
  133. package/src/cli/arguments.mjs +0 -126
  134. package/src/cli/guided.mjs +0 -814
  135. package/src/cli/init_command.mjs +0 -94
  136. package/src/cli/rehearsal.mjs +0 -970
  137. package/src/cli/renderers.mjs +0 -626
  138. package/src/cli/runtime_commands.mjs +0 -707
  139. package/src/cli/source_commands.mjs +0 -347
  140. package/src/cli/terminal.mjs +0 -275
  141. package/src/identity/claim.mjs +0 -1163
  142. package/src/identity/provider_configuration.mjs +0 -177
  143. package/src/identity/storage.mjs +0 -165
  144. package/src/project/configuration.mjs +0 -1337
  145. package/src/project/install_scaffold.mjs +0 -291
  146. package/src/project/setup.mjs +0 -466
  147. package/src/project/support_report.mjs +0 -105
  148. package/src/runtime/cleanup.mjs +0 -381
  149. package/src/runtime/migration_history.mjs +0 -220
  150. package/src/runtime/plan.mjs +0 -722
  151. package/src/runtime/policy.mjs +0 -438
  152. package/src/runtime/restore.mjs +0 -337
  153. package/src/runtime/service_environment.mjs +0 -82
  154. package/src/runtime/topology.mjs +0 -177
  155. package/src/shared/diagnostics.mjs +0 -207
  156. package/src/shared/node_runtime.mjs +0 -31
  157. package/src/shared/operation_guard.mjs +0 -162
  158. package/src/shared/process_environment.mjs +0 -68
  159. package/src/source/access.mjs +0 -753
  160. package/src/source/asset_transfer.mjs +0 -207
  161. package/src/source/baseline.mjs +0 -482
  162. package/src/source/external_reader.mjs +0 -255
  163. package/src/source/postgresql_access.mjs +0 -581
  164. package/src/source/privacy_paths.mjs +0 -38
  165. package/src/targets/postgresql.mjs +0 -808
  166. package/src/targets/supabase.mjs +0 -840
  167. package/src/targets/supabase_environment.mjs +0 -229
  168. package/src/targets/target.mjs +0 -66
  169. /package/{src/project → types}/configuration.d.mts +0 -0
@@ -0,0 +1,299 @@
1
+ /**
2
+ * Human-readable CLI output. These functions are intentionally pure so the
3
+ * command and guided workflow modules can focus on orchestration.
4
+ */
5
+ import type { SourceAccessPlan } from "../source/access.mjs";
6
+ import type { IdentityClaimPlan } from "../identity/claim.mjs";
7
+ type Verbosity = "normal" | "verbose";
8
+ type RenderFlags = Readonly<{
9
+ plain?: boolean;
10
+ json?: boolean;
11
+ }>;
12
+ type RenderMode = "preview" | "written";
13
+ interface RenderMigration {
14
+ readonly filename: string;
15
+ readonly sha256: string;
16
+ readonly status?: string;
17
+ }
18
+ interface RenderEnvironment {
19
+ readonly kind: string;
20
+ readonly hostedAccess: string;
21
+ readonly outboundNetwork: string;
22
+ readonly authenticationProviders: readonly string[];
23
+ readonly authenticationCallback: string | null;
24
+ readonly barriers: readonly string[];
25
+ }
26
+ interface RenderBaselineSummary {
27
+ readonly generationId: string;
28
+ readonly tableCount: number;
29
+ readonly rowCount: number;
30
+ readonly verification: string;
31
+ }
32
+ interface RenderMigrationSummary {
33
+ readonly candidates: readonly RenderMigration[];
34
+ readonly candidateSha256: string;
35
+ readonly candidateCount: number;
36
+ readonly representedCount: number;
37
+ }
38
+ interface RenderSinglePlan {
39
+ readonly environment: RenderEnvironment;
40
+ readonly baseline: RenderBaselineSummary;
41
+ readonly migrations: RenderMigrationSummary;
42
+ readonly execution: readonly string[];
43
+ readonly guarantee: string;
44
+ }
45
+ interface RenderStackTarget {
46
+ readonly name: string;
47
+ readonly plan: {
48
+ readonly config: {
49
+ readonly project: string;
50
+ };
51
+ readonly environment: RenderEnvironment;
52
+ readonly baseline: RenderBaselineSummary;
53
+ readonly migrations: Pick<RenderMigrationSummary, "candidates">;
54
+ };
55
+ }
56
+ interface RenderStackPlan {
57
+ readonly targets: readonly RenderStackTarget[];
58
+ readonly migrations: Pick<RenderMigrationSummary, "candidateSha256" | "candidateCount">;
59
+ readonly execution: readonly string[];
60
+ readonly guarantee: string;
61
+ }
62
+ interface ReadinessCheck {
63
+ readonly id: string;
64
+ readonly label: string;
65
+ readonly status: "pass" | "fail";
66
+ readonly detail: string;
67
+ readonly remediation?: string;
68
+ }
69
+ interface ReadinessReport {
70
+ readonly state: string;
71
+ readonly checks: readonly ReadinessCheck[];
72
+ readonly ambientHostedVariables?: {
73
+ readonly presentButQuarantined: readonly string[];
74
+ };
75
+ }
76
+ interface RenderTable {
77
+ readonly name: string;
78
+ readonly rowCount: number;
79
+ readonly columns: readonly string[];
80
+ }
81
+ interface CandidateSummary {
82
+ readonly baselineGenerationId: string;
83
+ readonly candidates: readonly RenderMigration[];
84
+ readonly candidateSha256: string;
85
+ readonly candidateCount: number;
86
+ readonly targets?: readonly {
87
+ readonly name: string;
88
+ readonly baselineGenerationId: string;
89
+ readonly candidates: readonly RenderMigration[];
90
+ }[];
91
+ }
92
+ interface CleanupImage {
93
+ readonly bytes: number;
94
+ readonly tags: readonly string[];
95
+ }
96
+ interface CleanupTargetPlan {
97
+ readonly project: string;
98
+ readonly projectId: string;
99
+ readonly baselines: {
100
+ readonly available: boolean;
101
+ readonly removed: readonly string[];
102
+ readonly retained: readonly string[];
103
+ };
104
+ readonly runtime: {
105
+ readonly included: boolean;
106
+ readonly detected: boolean;
107
+ };
108
+ readonly images: {
109
+ readonly requested: boolean;
110
+ readonly inspected: boolean;
111
+ readonly candidates: readonly CleanupImage[];
112
+ };
113
+ }
114
+ interface AppliedCleanup {
115
+ readonly baselines: {
116
+ readonly removed: readonly string[];
117
+ };
118
+ readonly runtimeRemoved: boolean;
119
+ readonly imagesRemoved: readonly string[];
120
+ }
121
+ interface CleanupResult {
122
+ readonly mode: RenderMode;
123
+ readonly plan: (CleanupTargetPlan & {
124
+ readonly digest: string;
125
+ readonly docker: {
126
+ readonly resources: readonly unknown[];
127
+ readonly disk: {
128
+ readonly usedBytes: number;
129
+ readonly totalBytes: number;
130
+ readonly availableBytes: number;
131
+ readonly usedPercent: number;
132
+ } | null;
133
+ };
134
+ }) | {
135
+ readonly targets: readonly {
136
+ readonly name: string;
137
+ readonly plan: CleanupTargetPlan;
138
+ }[];
139
+ readonly digest: string;
140
+ };
141
+ readonly applied?: AppliedCleanup | {
142
+ readonly targets: readonly {
143
+ readonly name: string;
144
+ readonly applied: AppliedCleanup;
145
+ }[];
146
+ };
147
+ }
148
+ interface RefreshPlan {
149
+ readonly digest: string;
150
+ readonly review: {
151
+ readonly currentBaseline: string;
152
+ readonly source: {
153
+ readonly readerExpiresAt: string;
154
+ };
155
+ readonly runtimeTargets: readonly string[];
156
+ readonly retention: {
157
+ readonly generations: number;
158
+ readonly removeAfterReplacement: readonly string[];
159
+ };
160
+ readonly steps: readonly string[];
161
+ };
162
+ }
163
+ interface SourceRetirementPlan {
164
+ readonly digest: string;
165
+ readonly review: {
166
+ readonly targetFingerprint: string;
167
+ readonly readerRole: string;
168
+ readonly exportSchema: string;
169
+ readonly accessMode: "managed" | "external";
170
+ readonly views: readonly string[];
171
+ };
172
+ }
173
+ export declare const renderPlan: (plan: RenderSinglePlan | RenderStackPlan, verbosity: Verbosity) => string;
174
+ export declare const renderDoctor: (doctor: ReadinessReport, verbosity: Verbosity) => string;
175
+ export declare const renderBaseline: (baseline: {
176
+ rehearsalVersion: string;
177
+ generationId: string;
178
+ createdAt?: string | null;
179
+ formatVersion: number;
180
+ tableCount: number;
181
+ rowCount: number;
182
+ migrationCount: number;
183
+ migrationCutoff: string;
184
+ dataSha256: string;
185
+ sanitizationPolicySha256: string;
186
+ verification: string;
187
+ }) => string;
188
+ export declare const renderMigrations: (inspection: {
189
+ baselineGenerationId: string;
190
+ baselineCutoff: string;
191
+ candidateSha256: string;
192
+ migrations: readonly (RenderMigration & {
193
+ status: string;
194
+ })[];
195
+ }, verbosity: Verbosity) => string;
196
+ export declare const renderCandidates: (summary: CandidateSummary, verbosity: Verbosity) => string;
197
+ export declare const renderInit: (result: {
198
+ mode: RenderMode;
199
+ destination: string;
200
+ detected: {
201
+ packageManager: string;
202
+ hasSupabaseConfig: boolean;
203
+ hasMigrations: boolean;
204
+ };
205
+ availableOptions?: readonly {
206
+ path: string;
207
+ summary: string;
208
+ }[];
209
+ source?: string | null;
210
+ nextAction: string;
211
+ }) => string;
212
+ export declare const renderSetup: (result: {
213
+ mode: RenderMode;
214
+ project: string;
215
+ configurationPath: string;
216
+ configurationAction: "create" | "update" | "unchanged";
217
+ rootConfigGenerationSkipped?: boolean;
218
+ target: "postgresql" | "supabase";
219
+ projectId: string;
220
+ applicationUrl: string;
221
+ ports: Readonly<Record<string, number>> & {
222
+ readonly database: number;
223
+ };
224
+ files: readonly {
225
+ action: "create" | "update" | "unchanged";
226
+ path: string;
227
+ }[];
228
+ safety: readonly string[];
229
+ readiness?: ReadinessReport;
230
+ nextAction: string;
231
+ }) => string;
232
+ export declare const renderBaselinePreparation: (result: {
233
+ mode: RenderMode;
234
+ destination: string;
235
+ rowCount: number;
236
+ recordsPath: string;
237
+ migrationCount: number;
238
+ migrationCutoff: string;
239
+ tables: readonly RenderTable[];
240
+ nextAction: string;
241
+ }, flags?: RenderFlags) => string;
242
+ export declare const renderBaselineInputInspection: (result: {
243
+ rowCount: number;
244
+ recordsPath: string;
245
+ migrationCount: number;
246
+ migrationCutoff: string;
247
+ ledgerPath: string;
248
+ assetsPath?: string;
249
+ assetCount: number;
250
+ tables: readonly RenderTable[];
251
+ }, flags?: RenderFlags) => string;
252
+ export declare const renderSupportReport: (report: {
253
+ rehearsalVersion: string;
254
+ system: {
255
+ platform: string;
256
+ architecture: string;
257
+ release: string;
258
+ node: string;
259
+ };
260
+ tools: Record<"npm" | "supabase" | "dockerClient" | "dockerServer", {
261
+ status: string;
262
+ version?: string;
263
+ }>;
264
+ readiness: {
265
+ state: string;
266
+ checks: readonly Omit<ReadinessCheck, "detail">[];
267
+ quarantinedHostedVariableCount: number;
268
+ };
269
+ supportUrl: string;
270
+ }) => string;
271
+ export declare const formatBytes: (bytes: number) => string;
272
+ export declare const renderCleanup: (result: CleanupResult) => string;
273
+ export declare const renderSourceAccessPlan: (plan: SourceAccessPlan) => string;
274
+ export declare const renderRefreshWorkflow: ({ mode, plan, refreshed, runtime, cleanup, }: {
275
+ mode: RenderMode;
276
+ plan: RefreshPlan;
277
+ refreshed?: {
278
+ generationId: string;
279
+ };
280
+ runtime?: {
281
+ targets?: readonly unknown[];
282
+ };
283
+ cleanup?: {
284
+ state: "complete";
285
+ removed: readonly string[];
286
+ } | {
287
+ state: string;
288
+ remaining: number;
289
+ };
290
+ }) => string;
291
+ export declare const renderSourceRetirement: ({ mode, plan, }: {
292
+ mode: RenderMode;
293
+ plan: SourceRetirementPlan;
294
+ }) => string;
295
+ export declare const renderIdentityPlan: ({ mode, plan, }: {
296
+ mode: RenderMode;
297
+ plan: IdentityClaimPlan;
298
+ }) => string;
299
+ export {};