@rehearsal-db/core 0.1.0-beta.14 → 0.1.0-beta.16
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.
- package/CHANGELOG.md +51 -1
- package/README.md +1 -0
- package/dist/package.json +101 -0
- package/dist/scripts/install/create_root_config.d.mts +3 -0
- package/dist/scripts/install/create_root_config.mjs +13 -0
- package/dist/scripts/runtime/manage_database.d.mts +6 -0
- package/{scripts → dist/scripts}/runtime/manage_database.mjs +6 -8
- package/dist/src/application/session.d.mts +96 -0
- package/dist/src/application/session.mjs +380 -0
- package/dist/src/baseline/artifact.d.mts +119 -0
- package/dist/src/baseline/artifact.mjs +522 -0
- package/dist/src/baseline/builder.d.mts +19 -0
- package/dist/src/baseline/builder.mjs +142 -0
- package/dist/src/baseline/input_discovery.d.mts +13 -0
- package/dist/src/baseline/input_discovery.mjs +149 -0
- package/dist/src/baseline/policy_review.d.mts +56 -0
- package/dist/src/baseline/policy_review.mjs +73 -0
- package/dist/src/baseline/preparation.d.mts +63 -0
- package/dist/src/baseline/preparation.mjs +295 -0
- package/dist/src/baseline/privacy_contract.d.mts +147 -0
- package/dist/src/baseline/privacy_contract.mjs +2 -0
- package/dist/src/baseline/privacy_dependency_graph.d.mts +7 -0
- package/dist/src/baseline/privacy_dependency_graph.mjs +110 -0
- package/dist/src/baseline/privacy_engine.d.mts +5 -0
- package/dist/src/baseline/privacy_engine.mjs +4 -0
- package/dist/src/baseline/privacy_key.d.mts +7 -0
- package/dist/src/baseline/privacy_key.mjs +42 -0
- package/dist/src/baseline/privacy_pipeline.d.mts +7 -0
- package/dist/src/baseline/privacy_pipeline.mjs +127 -0
- package/dist/src/baseline/privacy_policy.d.mts +6 -0
- package/dist/src/baseline/privacy_policy.mjs +237 -0
- package/dist/src/baseline/privacy_recipe_validation.d.mts +5 -0
- package/dist/src/baseline/privacy_recipe_validation.mjs +289 -0
- package/dist/src/baseline/privacy_rule_registry.d.mts +18 -0
- package/dist/src/baseline/privacy_rule_registry.mjs +143 -0
- package/dist/src/baseline/privacy_structured_json.d.mts +66 -0
- package/dist/src/baseline/privacy_structured_json.mjs +464 -0
- package/dist/src/baseline/privacy_transforms.d.mts +18 -0
- package/dist/src/baseline/privacy_transforms.mjs +142 -0
- package/dist/src/baseline/privacy_validation_shared.d.mts +31 -0
- package/dist/src/baseline/privacy_validation_shared.mjs +127 -0
- package/dist/src/baseline/sanitization_policy.d.mts +69 -0
- package/dist/src/baseline/sanitization_policy.mjs +227 -0
- package/dist/src/baseline/schema_snapshot.d.mts +19 -0
- package/dist/src/baseline/schema_snapshot.mjs +79 -0
- package/dist/src/cli/application_command_handlers.d.mts +8 -0
- package/dist/src/cli/application_command_handlers.mjs +52 -0
- package/dist/src/cli/arguments.d.mts +38 -0
- package/dist/src/cli/arguments.mjs +128 -0
- package/dist/src/cli/basic_command_handlers.d.mts +4 -0
- package/dist/src/cli/basic_command_handlers.mjs +56 -0
- package/dist/src/cli/cli_commands.d.mts +14 -0
- package/dist/src/cli/cli_commands.mjs +32 -0
- package/dist/src/cli/command_contract.d.mts +57 -0
- package/dist/src/cli/command_contract.mjs +39 -0
- package/dist/src/cli/command_output.d.mts +12 -0
- package/dist/src/cli/command_output.mjs +20 -0
- package/dist/src/cli/command_registry.d.mts +7 -0
- package/dist/src/cli/command_registry.mjs +14 -0
- package/dist/src/cli/guided.d.mts +53 -0
- package/dist/src/cli/guided.mjs +719 -0
- package/dist/src/cli/identity_command_handlers.d.mts +8 -0
- package/dist/src/cli/identity_command_handlers.mjs +43 -0
- package/dist/src/cli/init_command.d.mts +21 -0
- package/dist/src/cli/init_command.mjs +90 -0
- package/dist/src/cli/inspection_command_handlers.d.mts +3 -0
- package/dist/src/cli/inspection_command_handlers.mjs +79 -0
- package/dist/src/cli/project_command_handlers.d.mts +11 -0
- package/dist/src/cli/project_command_handlers.mjs +92 -0
- package/dist/src/cli/project_commands.d.mts +159 -0
- package/dist/src/cli/project_commands.mjs +183 -0
- package/dist/src/cli/rehearsal.d.mts +7 -0
- package/dist/src/cli/rehearsal.mjs +190 -0
- package/dist/src/cli/renderers.d.mts +299 -0
- package/dist/src/cli/renderers.mjs +554 -0
- package/dist/src/cli/runtime_action_handlers.d.mts +12 -0
- package/dist/src/cli/runtime_action_handlers.mjs +201 -0
- package/dist/src/cli/runtime_commands.d.mts +269 -0
- package/dist/src/cli/runtime_commands.mjs +601 -0
- package/dist/src/cli/source_command_handlers.d.mts +8 -0
- package/dist/src/cli/source_command_handlers.mjs +62 -0
- package/dist/src/cli/source_commands.d.mts +436 -0
- package/dist/src/cli/source_commands.mjs +301 -0
- package/dist/src/cli/terminal.d.mts +59 -0
- package/dist/src/cli/terminal.mjs +230 -0
- package/dist/src/identity/claim.d.mts +5 -0
- package/dist/src/identity/claim.mjs +4 -0
- package/dist/src/identity/claim_contract.d.mts +135 -0
- package/dist/src/identity/claim_contract.mjs +6 -0
- package/dist/src/identity/claim_executor.d.mts +10 -0
- package/dist/src/identity/claim_executor.mjs +358 -0
- package/dist/src/identity/claim_identity_lookup.d.mts +17 -0
- package/dist/src/identity/claim_identity_lookup.mjs +125 -0
- package/dist/src/identity/claim_plan.d.mts +8 -0
- package/dist/src/identity/claim_plan.mjs +61 -0
- package/dist/src/identity/claim_policy.d.mts +3 -0
- package/dist/src/identity/claim_policy.mjs +377 -0
- package/dist/src/identity/claim_sql.d.mts +10 -0
- package/dist/src/identity/claim_sql.mjs +46 -0
- package/dist/src/identity/claim_verification.d.mts +13 -0
- package/dist/src/identity/claim_verification.mjs +35 -0
- package/dist/src/identity/provider_configuration.d.mts +37 -0
- package/dist/src/identity/provider_configuration.mjs +132 -0
- package/dist/src/identity/storage.d.mts +21 -0
- package/dist/src/identity/storage.mjs +122 -0
- package/dist/src/index.d.mts +4 -0
- package/dist/src/index.mjs +3 -0
- package/dist/src/project/configuration.d.mts +13 -0
- package/dist/src/project/configuration.mjs +9 -0
- package/dist/src/project/configuration_contract.d.mts +125 -0
- package/dist/src/project/configuration_contract.mjs +27 -0
- package/dist/src/project/configuration_discovery.d.mts +7 -0
- package/dist/src/project/configuration_discovery.mjs +37 -0
- package/dist/src/project/configuration_normalization.d.mts +107 -0
- package/dist/src/project/configuration_normalization.mjs +302 -0
- package/dist/src/project/configuration_rendering.d.mts +14 -0
- package/dist/src/project/configuration_rendering.mjs +224 -0
- package/dist/src/project/configuration_resolution.d.mts +125 -0
- package/dist/src/project/configuration_resolution.mjs +81 -0
- package/dist/src/project/configuration_schema.d.mts +22 -0
- package/dist/src/project/configuration_schema.mjs +160 -0
- package/dist/src/project/configuration_validation.d.mts +22 -0
- package/dist/src/project/configuration_validation.mjs +136 -0
- package/dist/src/project/install_scaffold.d.mts +42 -0
- package/dist/src/project/install_scaffold.mjs +263 -0
- package/dist/src/project/project_detection.d.mts +14 -0
- package/dist/src/project/project_detection.mjs +47 -0
- package/dist/src/project/setup.d.mts +87 -0
- package/dist/src/project/setup.mjs +414 -0
- package/dist/src/project/support_report.d.mts +88 -0
- package/dist/src/project/support_report.mjs +83 -0
- package/dist/src/runtime/cleanup.d.mts +85 -0
- package/dist/src/runtime/cleanup.mjs +311 -0
- package/dist/src/runtime/lifecycle_engine.d.mts +63 -0
- package/dist/src/runtime/lifecycle_engine.mjs +114 -0
- package/dist/src/runtime/migration_history.d.mts +51 -0
- package/dist/src/runtime/migration_history.mjs +170 -0
- package/dist/src/runtime/plan.d.mts +134 -0
- package/dist/src/runtime/plan.mjs +637 -0
- package/dist/src/runtime/policy.d.mts +66 -0
- package/dist/src/runtime/policy.mjs +369 -0
- package/dist/src/runtime/restore.d.mts +22 -0
- package/dist/src/runtime/restore.mjs +276 -0
- package/dist/src/runtime/service_environment.d.mts +11 -0
- package/dist/src/runtime/service_environment.mjs +58 -0
- package/dist/src/runtime/topology.d.mts +51 -0
- package/dist/src/runtime/topology.mjs +128 -0
- package/dist/src/shared/diagnostics.d.mts +97 -0
- package/dist/src/shared/diagnostics.mjs +170 -0
- package/dist/src/shared/human_output.d.mts +2 -0
- package/{src → dist/src}/shared/human_output.mjs +1 -3
- package/dist/src/shared/node_runtime.d.mts +14 -0
- package/dist/src/shared/node_runtime.mjs +25 -0
- package/dist/src/shared/operation_guard.d.mts +22 -0
- package/dist/src/shared/operation_guard.mjs +150 -0
- package/dist/src/shared/process_environment.d.mts +15 -0
- package/dist/src/shared/process_environment.mjs +50 -0
- package/dist/src/source/access.d.mts +165 -0
- package/dist/src/source/access.mjs +602 -0
- package/dist/src/source/asset_transfer.d.mts +27 -0
- package/dist/src/source/asset_transfer.mjs +202 -0
- package/dist/src/source/baseline.d.mts +66 -0
- package/dist/src/source/baseline.mjs +372 -0
- package/dist/src/source/external_reader.d.mts +42 -0
- package/dist/src/source/external_reader.mjs +278 -0
- package/dist/src/source/postgresql_access.d.mts +86 -0
- package/dist/src/source/postgresql_access.mjs +454 -0
- package/dist/src/source/privacy_paths.d.mts +10 -0
- package/dist/src/source/privacy_paths.mjs +27 -0
- package/dist/src/targets/driver.d.mts +2 -0
- package/dist/src/targets/driver.mjs +13 -0
- package/dist/src/targets/postgresql.d.mts +5 -0
- package/dist/src/targets/postgresql.mjs +620 -0
- package/dist/src/targets/supabase.d.mts +8 -0
- package/dist/src/targets/supabase.mjs +627 -0
- package/dist/src/targets/supabase_environment.d.mts +49 -0
- package/dist/src/targets/supabase_environment.mjs +162 -0
- package/dist/src/targets/target.d.mts +33 -0
- package/dist/src/targets/target.mjs +39 -0
- package/docs/README.md +1 -0
- package/docs/architecture.md +133 -10
- package/docs/configuration.md +9 -3
- package/docs/index.md +1 -0
- package/docs/releasing.md +8 -3
- package/docs/typescript.md +134 -0
- package/package.json +36 -29
- package/types/configuration.d.mts +5 -0
- package/scripts/install/create_root_config.mjs +0 -19
- package/src/README.md +0 -17
- package/src/application/session.mjs +0 -435
- package/src/baseline/artifact.mjs +0 -684
- package/src/baseline/builder.mjs +0 -164
- package/src/baseline/input_discovery.mjs +0 -155
- package/src/baseline/policy_review.mjs +0 -92
- package/src/baseline/preparation.mjs +0 -323
- package/src/baseline/privacy_engine.mjs +0 -1399
- package/src/baseline/privacy_structured_json.mjs +0 -554
- package/src/baseline/sanitization_policy.mjs +0 -299
- package/src/baseline/schema_snapshot.mjs +0 -113
- package/src/cli/arguments.mjs +0 -126
- package/src/cli/guided.mjs +0 -814
- package/src/cli/init_command.mjs +0 -94
- package/src/cli/rehearsal.mjs +0 -972
- package/src/cli/renderers.mjs +0 -638
- package/src/cli/runtime_commands.mjs +0 -707
- package/src/cli/source_commands.mjs +0 -355
- package/src/cli/terminal.mjs +0 -275
- package/src/identity/claim.mjs +0 -1165
- package/src/identity/provider_configuration.mjs +0 -177
- package/src/identity/storage.mjs +0 -165
- package/src/project/configuration.d.mts +0 -164
- package/src/project/configuration.mjs +0 -1337
- package/src/project/install_scaffold.mjs +0 -325
- package/src/project/setup.mjs +0 -474
- package/src/project/support_report.mjs +0 -105
- package/src/runtime/cleanup.mjs +0 -381
- package/src/runtime/migration_history.mjs +0 -220
- package/src/runtime/plan.mjs +0 -722
- package/src/runtime/policy.mjs +0 -438
- package/src/runtime/restore.mjs +0 -337
- package/src/runtime/service_environment.mjs +0 -82
- package/src/runtime/topology.mjs +0 -177
- package/src/shared/diagnostics.mjs +0 -207
- package/src/shared/node_runtime.mjs +0 -31
- package/src/shared/operation_guard.mjs +0 -162
- package/src/shared/process_environment.mjs +0 -68
- package/src/source/access.mjs +0 -798
- package/src/source/asset_transfer.mjs +0 -259
- package/src/source/baseline.mjs +0 -482
- package/src/source/external_reader.mjs +0 -368
- package/src/source/postgresql_access.mjs +0 -638
- package/src/source/privacy_paths.mjs +0 -38
- package/src/targets/postgresql.mjs +0 -808
- package/src/targets/supabase.mjs +0 -840
- package/src/targets/supabase_environment.mjs +0 -229
- package/src/targets/target.mjs +0 -66
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,53 @@ a Changelog, and versions will follow Semantic Versioning after the package exis
|
|
|
5
5
|
|
|
6
6
|
## Unreleased
|
|
7
7
|
|
|
8
|
+
### Changed
|
|
9
|
+
|
|
10
|
+
- The CLI now routes guided and scripted requests through focused typed command
|
|
11
|
+
handlers and one result/output contract. The executable retains only process
|
|
12
|
+
lifecycle, project locking, guided-loop coordination, and top-level error handling;
|
|
13
|
+
command-session caches no longer live in public parsed flags.
|
|
14
|
+
- Configuration now passes through separate discovery, raw-schema validation,
|
|
15
|
+
normalization, project-root path resolution, project detection, and starter-rendering
|
|
16
|
+
modules behind the existing import path. Public declarations come from the same
|
|
17
|
+
TypeScript source, including the new `NormalizedRehearsalConfig` type.
|
|
18
|
+
- Installed-consumer verification now shares one scenario catalog, artifact installer,
|
|
19
|
+
isolated workspace boundary, process boundary, and persistent application-session
|
|
20
|
+
helper. The complete release gate runs every scenario against one immutable tarball
|
|
21
|
+
and records its exact version, SHA-256, tool environment, commands, timings, and
|
|
22
|
+
results.
|
|
23
|
+
- Identity policy validation, deterministic claim planning, SQL generation, local Auth
|
|
24
|
+
lookup, pure verification, and transactional execution now live in separate typed
|
|
25
|
+
stages behind the unchanged public claim API. Generated reference SQL is independently
|
|
26
|
+
testable, while only the executor can mutate the local database or Storage runtime.
|
|
27
|
+
- PostgreSQL and Supabase now share one typed runtime lifecycle engine for command
|
|
28
|
+
dispatch, active-baseline loading, migration confirmation and receipts, runtime
|
|
29
|
+
markers, and rollback. Candidate receipts are bound to their exact database target,
|
|
30
|
+
while each driver retains its own ownership proof and database-specific behavior.
|
|
31
|
+
- Privacy policy types, recipe normalization, dependency validation, deterministic
|
|
32
|
+
transforms, structured JSON, rule dispatch, row execution, and key handling now live
|
|
33
|
+
in focused typed stages behind the unchanged public privacy import. An explicit closed
|
|
34
|
+
registry covers every supported action and derivation without widening policy v2.
|
|
35
|
+
|
|
36
|
+
## [0.1.0-beta.15] - 2026-10-08
|
|
37
|
+
|
|
38
|
+
### Added
|
|
39
|
+
|
|
40
|
+
- A strict, no-emit TypeScript gate now checks the first shared runtime utilities and
|
|
41
|
+
verifies that consumers can compile against Rehearsal's public configuration types.
|
|
42
|
+
- The documentation site now explains the supported TypeScript surface with examples
|
|
43
|
+
that are compiled and checked against their rendered documentation source.
|
|
44
|
+
- All shipped implementation and executable-helper source now uses TypeScript. Clean
|
|
45
|
+
builds emit Node-compatible ESM and declarations into the reviewed package boundary,
|
|
46
|
+
and tests exercise that compiled output rather than an alternate source path.
|
|
47
|
+
- The published build omits repository-only JavaScript source maps while retaining
|
|
48
|
+
runtime JavaScript and declarations, keeping the installed package compact.
|
|
49
|
+
|
|
50
|
+
### Fixed
|
|
51
|
+
|
|
52
|
+
- Packed onboarding chooses an available local port block for preserved configuration
|
|
53
|
+
fixtures, so unrelated running Rehearsal projects cannot make the isolation test fail.
|
|
54
|
+
|
|
8
55
|
## [0.1.0-beta.14] - 2026-10-05
|
|
9
56
|
|
|
10
57
|
### Added
|
|
@@ -465,7 +512,10 @@ a Changelog, and versions will follow Semantic Versioning after the package exis
|
|
|
465
512
|
publication uses short-lived trusted OIDC, and every release tag must already exist on
|
|
466
513
|
protected `main`.
|
|
467
514
|
|
|
468
|
-
[Unreleased]: https://github.com/Ddupasquier/rehearsal-db/compare/v0.1.0-beta.
|
|
515
|
+
[Unreleased]: https://github.com/Ddupasquier/rehearsal-db/compare/v0.1.0-beta.15...HEAD
|
|
516
|
+
[0.1.0-beta.15]: https://github.com/Ddupasquier/rehearsal-db/compare/v0.1.0-beta.14...v0.1.0-beta.15
|
|
517
|
+
[0.1.0-beta.14]: https://github.com/Ddupasquier/rehearsal-db/compare/v0.1.0-beta.13...v0.1.0-beta.14
|
|
518
|
+
[0.1.0-beta.13]: https://github.com/Ddupasquier/rehearsal-db/compare/v0.1.0-beta.12...v0.1.0-beta.13
|
|
469
519
|
[0.1.0-beta.12]: https://github.com/Ddupasquier/rehearsal-db/compare/v0.1.0-beta.11...v0.1.0-beta.12
|
|
470
520
|
[0.1.0-beta.11]: https://github.com/Ddupasquier/rehearsal-db/compare/v0.1.0-beta.10...v0.1.0-beta.11
|
|
471
521
|
[0.1.0-beta.10]: https://github.com/Ddupasquier/rehearsal-db/compare/v0.1.0-beta.9...v0.1.0-beta.10
|
package/README.md
CHANGED
|
@@ -145,6 +145,7 @@ Reference:
|
|
|
145
145
|
|
|
146
146
|
- [CLI commands](docs/commands.md)
|
|
147
147
|
- [Configuration](docs/configuration.md)
|
|
148
|
+
- [TypeScript types](docs/typescript.md)
|
|
148
149
|
- [Baselines](docs/baselines.md)
|
|
149
150
|
- [Sanitization](docs/sanitization.md)
|
|
150
151
|
- [Security model](docs/security-model.md)
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@rehearsal-db/core",
|
|
3
|
+
"version": "0.1.0-beta.16",
|
|
4
|
+
"private": false,
|
|
5
|
+
"description": "Safely rehearse PostgreSQL and Supabase migrations against sanitized, production-shaped data.",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/Ddupasquier/rehearsal-db.git"
|
|
9
|
+
},
|
|
10
|
+
"bugs": {
|
|
11
|
+
"url": "https://github.com/Ddupasquier/rehearsal-db/issues"
|
|
12
|
+
},
|
|
13
|
+
"homepage": "https://ddupasquier.github.io/rehearsal-db/",
|
|
14
|
+
"publishConfig": {
|
|
15
|
+
"access": "public",
|
|
16
|
+
"tag": "beta",
|
|
17
|
+
"provenance": true
|
|
18
|
+
},
|
|
19
|
+
"type": "module",
|
|
20
|
+
"engines": {
|
|
21
|
+
"node": "^22.0.0 || ^24.0.0 || ^26.0.0"
|
|
22
|
+
},
|
|
23
|
+
"bin": {
|
|
24
|
+
"rehearsal": "dist/src/cli/rehearsal.mjs"
|
|
25
|
+
},
|
|
26
|
+
"exports": {
|
|
27
|
+
".": {
|
|
28
|
+
"types": "./types/configuration.d.mts",
|
|
29
|
+
"import": "./dist/src/index.mjs"
|
|
30
|
+
},
|
|
31
|
+
"./baseline": "./dist/src/baseline/artifact.mjs",
|
|
32
|
+
"./baseline-builder": "./dist/src/baseline/builder.mjs",
|
|
33
|
+
"./diagnostics": "./dist/src/shared/diagnostics.mjs",
|
|
34
|
+
"./migrations": "./dist/src/runtime/migration_history.mjs",
|
|
35
|
+
"./process-environment": "./dist/src/shared/process_environment.mjs",
|
|
36
|
+
"./privacy": "./dist/src/baseline/privacy_engine.mjs",
|
|
37
|
+
"./schema": "./dist/src/baseline/schema_snapshot.mjs",
|
|
38
|
+
"./service-environment": "./dist/src/runtime/service_environment.mjs",
|
|
39
|
+
"./source-access": "./dist/src/source/access.mjs"
|
|
40
|
+
},
|
|
41
|
+
"files": [
|
|
42
|
+
"dist",
|
|
43
|
+
"types",
|
|
44
|
+
"docs/*.md",
|
|
45
|
+
"README.md",
|
|
46
|
+
"BENCHMARKS.md",
|
|
47
|
+
"CHANGELOG.md",
|
|
48
|
+
"SECURITY.md",
|
|
49
|
+
"COMPATIBILITY.md",
|
|
50
|
+
"SUPPORT.md",
|
|
51
|
+
"LICENSE"
|
|
52
|
+
],
|
|
53
|
+
"scripts": {
|
|
54
|
+
"postinstall": "node dist/scripts/install/create_root_config.mjs",
|
|
55
|
+
"prepack": "npm run build",
|
|
56
|
+
"build": "node scripts/build/clean.mjs && tsc --project tsconfig.build.json",
|
|
57
|
+
"docs:build": "node scripts/docs/build.mjs",
|
|
58
|
+
"docs:preview": "node scripts/docs/serve.mjs",
|
|
59
|
+
"test": "npm run build && vitest run",
|
|
60
|
+
"test:unit": "npm run build && vitest run tests/unit",
|
|
61
|
+
"test:integration": "npm run build && vitest run tests/integration tests/contracts",
|
|
62
|
+
"test:docs": "npm run build && vitest run tests/contracts/documentationCommands.test.mjs",
|
|
63
|
+
"test:fixture": "npm run build && node scripts/verification/run_scenario.mjs supabase",
|
|
64
|
+
"test:fixture:postgresql": "npm run build && node scripts/verification/run_scenario.mjs postgresql",
|
|
65
|
+
"test:fixture:dependent": "npm run build && node scripts/verification/run_scenario.mjs dependent-target",
|
|
66
|
+
"test:fixture:onboarding": "npm run build && node scripts/verification/run_scenario.mjs onboarding",
|
|
67
|
+
"test:fixture:typescript": "npm run build && node scripts/verification/run_scenario.mjs typescript",
|
|
68
|
+
"test:fixture:standalone": "npm run build && node scripts/verification/run_scenario.mjs standalone",
|
|
69
|
+
"test:fixture:privacy": "npm run build && node scripts/verification/run_scenario.mjs privacy",
|
|
70
|
+
"release:verify": "node scripts/verification/release_gate.mjs",
|
|
71
|
+
"check": "npm run check:syntax && npm run typecheck && npm run test && npm run docs:build && npm run format:check && npm run package:audit",
|
|
72
|
+
"check:syntax": "find scripts tests -type f -name '*.mjs' -exec node --check {} +",
|
|
73
|
+
"typecheck": "npm run build && tsc --project tsconfig.json",
|
|
74
|
+
"format": "prettier --write .",
|
|
75
|
+
"format:check": "prettier --check .",
|
|
76
|
+
"package:audit": "node scripts/verification/audit_package.mjs"
|
|
77
|
+
},
|
|
78
|
+
"keywords": [
|
|
79
|
+
"postgresql",
|
|
80
|
+
"supabase",
|
|
81
|
+
"migration",
|
|
82
|
+
"testing",
|
|
83
|
+
"database"
|
|
84
|
+
],
|
|
85
|
+
"license": "MIT",
|
|
86
|
+
"dependencies": {
|
|
87
|
+
"@clack/prompts": "^1.8.1",
|
|
88
|
+
"pg": "^8.23.1"
|
|
89
|
+
},
|
|
90
|
+
"devDependencies": {
|
|
91
|
+
"@fontsource-variable/dm-sans": "^5.3.0",
|
|
92
|
+
"@fontsource-variable/fraunces": "^5.3.0",
|
|
93
|
+
"@lydell/node-pty": "^1.2.0-beta.15",
|
|
94
|
+
"@types/node": "22.20.5",
|
|
95
|
+
"@types/pg": "^8.23.1",
|
|
96
|
+
"marked": "^18.0.14",
|
|
97
|
+
"prettier": "^3.9.6",
|
|
98
|
+
"typescript": "7.0.2",
|
|
99
|
+
"vitest": "^5.0.2"
|
|
100
|
+
}
|
|
101
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/** Create safe project-root Rehearsal scaffolding during a local install. */
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
import { createInstalledRehearsalScaffold, renderInstalledRehearsalScaffold, } from "../../src/project/install_scaffold.mjs";
|
|
5
|
+
const packageRoot = fileURLToPath(new URL("../../..", import.meta.url));
|
|
6
|
+
try {
|
|
7
|
+
const result = await createInstalledRehearsalScaffold({ packageRoot });
|
|
8
|
+
console.log(renderInstalledRehearsalScaffold(result));
|
|
9
|
+
}
|
|
10
|
+
catch (error) {
|
|
11
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
12
|
+
console.warn(`Rehearsal could not safely create project files during installation: ${message}\nNext: run npx rehearsal from the application directory.`);
|
|
13
|
+
}
|
|
@@ -3,16 +3,14 @@
|
|
|
3
3
|
* Purpose: Select the configured database runtime and forward the requested
|
|
4
4
|
* lifecycle action to its isolated driver.
|
|
5
5
|
*/
|
|
6
|
-
|
|
7
6
|
import { loadRehearsalConfig } from "../../src/project/configuration.mjs";
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
runRuntimeTarget,
|
|
11
|
-
} from "../../src/targets/target.mjs";
|
|
12
|
-
|
|
7
|
+
import { parseRuntimeInvocation } from "../../src/targets/target.mjs";
|
|
8
|
+
import { runRuntimeTarget } from "../../src/targets/driver.mjs";
|
|
13
9
|
const invocation = parseRuntimeInvocation();
|
|
14
10
|
const { config } = await loadRehearsalConfig({
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
projectRoot: process.cwd(),
|
|
12
|
+
...(invocation.configPath === undefined
|
|
13
|
+
? {}
|
|
14
|
+
: { configPath: invocation.configPath }),
|
|
17
15
|
});
|
|
18
16
|
await runRuntimeTarget(config.runtime.target);
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/** Launch ordinary application commands against verified local runtime files. */
|
|
2
|
+
import { spawn } from "node:child_process";
|
|
3
|
+
import type { EventEmitter } from "node:events";
|
|
4
|
+
declare const SESSION_SIGNALS: string[];
|
|
5
|
+
type SessionSignal = (typeof SESSION_SIGNALS)[number];
|
|
6
|
+
export interface ApplicationReadiness {
|
|
7
|
+
readonly url: string;
|
|
8
|
+
readonly expectedStatus?: number;
|
|
9
|
+
readonly timeoutSeconds?: number;
|
|
10
|
+
}
|
|
11
|
+
export interface ApplicationSession {
|
|
12
|
+
readonly pid: number | undefined;
|
|
13
|
+
readonly ready: Readonly<{
|
|
14
|
+
url: string;
|
|
15
|
+
status: number;
|
|
16
|
+
}>;
|
|
17
|
+
readonly stop: () => Promise<void>;
|
|
18
|
+
readonly wait: () => Promise<ChildExit>;
|
|
19
|
+
readonly diagnostics: () => ApplicationDiagnostics;
|
|
20
|
+
}
|
|
21
|
+
export interface ApplicationDiagnostics {
|
|
22
|
+
readonly stdoutBytes: number;
|
|
23
|
+
readonly stderrBytes: number;
|
|
24
|
+
}
|
|
25
|
+
interface ChildExit {
|
|
26
|
+
readonly status: number | null;
|
|
27
|
+
readonly signal: NodeJS.Signals | null;
|
|
28
|
+
}
|
|
29
|
+
interface SessionInput {
|
|
30
|
+
readonly isTTY?: boolean;
|
|
31
|
+
prependListener(event: "data", listener: (chunk: Buffer | string) => void): unknown;
|
|
32
|
+
removeListener(event: "data", listener: (chunk: Buffer | string) => void): unknown;
|
|
33
|
+
}
|
|
34
|
+
interface EnvironmentInput {
|
|
35
|
+
readonly files: Readonly<Record<string, string>> & {
|
|
36
|
+
readonly primary: string;
|
|
37
|
+
};
|
|
38
|
+
readonly mappings: Readonly<Record<string, string>>;
|
|
39
|
+
}
|
|
40
|
+
interface HttpJsonAssertion {
|
|
41
|
+
readonly path: readonly string[];
|
|
42
|
+
readonly equals?: unknown;
|
|
43
|
+
readonly notEquals?: unknown;
|
|
44
|
+
readonly minimumItems?: number;
|
|
45
|
+
}
|
|
46
|
+
export interface HttpProofCheck {
|
|
47
|
+
readonly name: string;
|
|
48
|
+
readonly kind: "positive" | "negative";
|
|
49
|
+
readonly url: string;
|
|
50
|
+
readonly method?: string;
|
|
51
|
+
readonly expectedStatus: number;
|
|
52
|
+
readonly timeoutMs?: number;
|
|
53
|
+
readonly json?: HttpJsonAssertion | null;
|
|
54
|
+
}
|
|
55
|
+
type SignalTarget = Pick<EventEmitter, "prependListener" | "removeListener">;
|
|
56
|
+
export declare const buildApplicationEnvironment: ({ files, mappings, }: EnvironmentInput) => Promise<Record<string, string>>;
|
|
57
|
+
export declare const summarizeProjectCommandFailure: ({ error, status, signal, stdout, stderr, stdoutByteCount, stderrByteCount, }: {
|
|
58
|
+
error?: NodeJS.ErrnoException;
|
|
59
|
+
status: number | null;
|
|
60
|
+
signal: NodeJS.Signals | null;
|
|
61
|
+
stdout?: string;
|
|
62
|
+
stderr?: string;
|
|
63
|
+
stdoutByteCount?: number;
|
|
64
|
+
stderrByteCount?: number;
|
|
65
|
+
}) => string;
|
|
66
|
+
export declare const startApplicationSession: ({ command, cwd, files, mappings, readiness, inheritedEnvironment, spawnImplementation, fetchImplementation, signalTarget, }: EnvironmentInput & {
|
|
67
|
+
command: string;
|
|
68
|
+
cwd: string;
|
|
69
|
+
readiness: ApplicationReadiness;
|
|
70
|
+
inheritedEnvironment?: NodeJS.ProcessEnv;
|
|
71
|
+
spawnImplementation?: typeof spawn;
|
|
72
|
+
fetchImplementation?: typeof fetch;
|
|
73
|
+
signalTarget?: SignalTarget;
|
|
74
|
+
}) => Promise<ApplicationSession>;
|
|
75
|
+
/**
|
|
76
|
+
* Keep a ready application session attached until the user interrupts it.
|
|
77
|
+
* The child process group is always stopped before this function returns.
|
|
78
|
+
*/
|
|
79
|
+
export declare const holdApplicationSession: ({ session, signalTarget, input, onReady, }: {
|
|
80
|
+
session: ApplicationSession;
|
|
81
|
+
signalTarget?: SignalTarget;
|
|
82
|
+
input?: SessionInput;
|
|
83
|
+
onReady?: (ready: ApplicationSession["ready"]) => void;
|
|
84
|
+
}) => Promise<Readonly<{
|
|
85
|
+
signal: SessionSignal;
|
|
86
|
+
diagnostics: ApplicationDiagnostics;
|
|
87
|
+
}>>;
|
|
88
|
+
export declare const runHttpProofs: ({ checks, fetchImplementation, }: {
|
|
89
|
+
checks: readonly HttpProofCheck[];
|
|
90
|
+
fetchImplementation?: typeof fetch;
|
|
91
|
+
}) => Promise<readonly Readonly<{
|
|
92
|
+
name: string;
|
|
93
|
+
kind: "positive" | "negative";
|
|
94
|
+
status: number;
|
|
95
|
+
}>[]>;
|
|
96
|
+
export {};
|