@voyant-travel/framework 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 (2) hide show
  1. package/README.md +38 -0
  2. package/package.json +64 -0
package/README.md ADDED
@@ -0,0 +1,38 @@
1
+ # @voyant-travel/framework
2
+
3
+ The Voyant framework **BOM** (bill of materials). Its `dependencies` pin the exact
4
+ tested **runtime-module set**, so a deployment tracks **one framework version** instead
5
+ of a matrix of per-package versions.
6
+
7
+ ```jsonc
8
+ // a deployment's package.json
9
+ { "dependencies": { "@voyant-travel/framework": "2.4.0" } }
10
+ ```
11
+
12
+ `voyant upgrade` bumps this one version; the pinned runtime set resolves transitively.
13
+ The compatibility matrix is resolved *inside* the BOM — the deployment never sees it.
14
+
15
+ ## Why a BOM and not global lockstep
16
+
17
+ Global lockstep (forcing every runtime package to the same version) requires
18
+ **republishing unchanged packages** on every release, and npm fires a publish-notification
19
+ email per package → 100+ emails per release. The BOM avoids that: the runtime packages
20
+ keep **independent versions** (only *changed* packages republish), and the BOM is the only
21
+ package that always tracks "the framework version". A one-line fix → ~3 publishes, not 100+.
22
+
23
+ ## Maintenance
24
+
25
+ The dependency list is generated from the runtime-module membership
26
+ (`release.runtime-packages.generated.json`, produced by `scripts/check-lockstep-membership.mjs`):
27
+
28
+ ```sh
29
+ node scripts/generate-framework-bom.mjs --emit # regenerate deps + the exported list
30
+ node scripts/generate-framework-bom.mjs # check (CI gate) — fails on drift
31
+ ```
32
+
33
+ `workspace:*` deps publish as the **exact** current version (pnpm), so the published BOM is
34
+ deterministic.
35
+
36
+ ## Exports
37
+
38
+ - `FRAMEWORK_RUNTIME_PACKAGES` — the pinned runtime-module names (e.g. for `voyant upgrade`).
package/package.json ADDED
@@ -0,0 +1,64 @@
1
+ {
2
+ "name": "@voyant-travel/framework",
3
+ "version": "0.1.0",
4
+ "description": "Voyant framework BOM — pins the tested runtime-module set so a deployment tracks one framework version and upgrades atomically (no per-package compatibility matrix, no per-package republish/email spam).",
5
+ "license": "Apache-2.0",
6
+ "type": "module",
7
+ "exports": {
8
+ ".": "./src/index.ts"
9
+ },
10
+ "files": [
11
+ "dist"
12
+ ],
13
+ "scripts": {
14
+ "build": "tsc -p tsconfig.json",
15
+ "typecheck": "tsc --noEmit",
16
+ "test": "vitest run",
17
+ "lint": "biome check src",
18
+ "clean": "rm -rf dist"
19
+ },
20
+ "dependencies": {
21
+ "@voyant-travel/action-ledger": "workspace:*",
22
+ "@voyant-travel/bookings": "workspace:*",
23
+ "@voyant-travel/catalog": "workspace:*",
24
+ "@voyant-travel/commerce": "workspace:*",
25
+ "@voyant-travel/distribution": "workspace:*",
26
+ "@voyant-travel/finance": "workspace:*",
27
+ "@voyant-travel/flights": "workspace:*",
28
+ "@voyant-travel/identity": "workspace:*",
29
+ "@voyant-travel/inventory": "workspace:*",
30
+ "@voyant-travel/legal": "workspace:*",
31
+ "@voyant-travel/notifications": "workspace:*",
32
+ "@voyant-travel/operations": "workspace:*",
33
+ "@voyant-travel/operator-settings": "workspace:*",
34
+ "@voyant-travel/quotes": "workspace:*",
35
+ "@voyant-travel/relationships": "workspace:*",
36
+ "@voyant-travel/storefront": "workspace:*",
37
+ "@voyant-travel/trips": "workspace:*"
38
+ },
39
+ "peerDependencies": {
40
+ "@voyant-travel/hono": "workspace:^",
41
+ "hono": "^4.12.10"
42
+ },
43
+ "devDependencies": {
44
+ "@voyant-travel/hono": "workspace:^",
45
+ "@voyant-travel/voyant-typescript-config": "workspace:^",
46
+ "hono": "^4.12.10",
47
+ "typescript": "^6.0.2",
48
+ "vitest": "^4.0.0"
49
+ },
50
+ "publishConfig": {
51
+ "access": "public",
52
+ "exports": {
53
+ ".": {
54
+ "types": "./dist/index.d.ts",
55
+ "import": "./dist/index.js"
56
+ }
57
+ }
58
+ },
59
+ "repository": {
60
+ "type": "git",
61
+ "url": "git+https://github.com/voyantjs/voyant.git",
62
+ "directory": "packages/framework"
63
+ }
64
+ }