@hyperscale0/udl 1.0.0-alpha.5 → 1.0.0-beta.1

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 CHANGED
@@ -10,6 +10,11 @@ here under the release that made it.
10
10
 
11
11
  ## [Unreleased]
12
12
 
13
+ ## [1.0.0-beta.1] - 2026-08-29
14
+
15
+ - This is the first beta and has no package behavior changes from
16
+ 1.0.0-alpha.5.
17
+
13
18
  ## [1.0.0-alpha.5] - 2026-08-29
14
19
 
15
20
  ### Added
@@ -152,7 +157,8 @@ First public release. Format version 1.
152
157
  - `bun run spec:check`, which fails when the committed schema drifts from the
153
158
  grammar it was generated from.
154
159
 
155
- [Unreleased]: https://github.com/hyperscale0/hyperscale-udl/compare/v1.0.0-alpha.5...HEAD
160
+ [Unreleased]: https://github.com/hyperscale0/hyperscale-udl/compare/v1.0.0-beta.1...HEAD
161
+ [1.0.0-beta.1]: https://github.com/hyperscale0/hyperscale-udl/compare/v1.0.0-alpha.5...v1.0.0-beta.1
156
162
  [1.0.0-alpha.5]: https://github.com/hyperscale0/hyperscale-udl/compare/v1.0.0-alpha.4...v1.0.0-alpha.5
157
163
  [1.0.0-alpha.4]: https://github.com/hyperscale0/hyperscale-udl/compare/v1.0.0-alpha.3...v1.0.0-alpha.4
158
164
  [1.0.0-alpha.3]: https://github.com/hyperscale0/hyperscale-udl/compare/v1.0.0-alpha.2...v1.0.0-alpha.3
package/README.md CHANGED
@@ -1,11 +1,10 @@
1
1
  # UDL
2
2
 
3
- UDL is the Universal Domain Language: a JSON document format for describing
4
- a financial product in business terms. One `.udl` file declares the product's
5
- subjects, its nouns, each noun's lifecycle, the verbs that move instances
6
- through that lifecycle, and how money moves while they do. Everything else,
7
- SDKs, docs, tool surfaces, the running engine, is generated from it or checked
8
- against it.
3
+ UDL is the Universal Domain Language: the canonical JSON contract for a
4
+ financial product. One `.udl` file declares the subjects, nouns, lifecycles,
5
+ verbs, and money steps that define the product in business terms. Hyperscale's
6
+ composer admits that document into a frozen Product build. The compiler then
7
+ projects API, SDK, documentation, and agent surfaces from the same contract.
9
8
 
10
9
  The language deliberately cannot say certain things. There is no statement
11
10
  format, no file drop, no polling loop, no cutoff time, no scheme name, no
@@ -14,8 +13,9 @@ they are not the product, so they are absorbed below the language and never
14
13
  surface in a document. What is left is small enough to hold in your head.
15
14
 
16
15
  This package is the reference implementation: parser, semantic validator,
17
- canonical serializer, evolution diff, and the `udl` command. The format itself
18
- is specified in [`spec/`](./spec/README.md) and pinned by
16
+ canonical serializer, append-only evolution diff, and the `udl` command. It
17
+ does not compose a company or execute operations. The format itself is
18
+ specified in [`spec/`](./spec/README.md) and pinned by
19
19
  [`conformance/`](./conformance/README.md).
20
20
 
21
21
  ## Install
@@ -79,9 +79,9 @@ await writeFile("note.udl", serializeUdl(document));
79
79
  const result = validateUdl(document);
80
80
  if (!result.ok) console.error(result.issues);
81
81
 
82
- // Is this change legal against the version that already has live instances?
83
- const live = parseUdl(await readFile("note.live.udl"));
84
- const violations = diffValidatedUdlEvolution(live, document);
82
+ // Is this change legal against the frozen version with existing instances?
83
+ const previous = parseUdl(await readFile("note.previous.udl"));
84
+ const violations = diffValidatedUdlEvolution(previous, document);
85
85
  ```
86
86
 
87
87
  `parseUdl` takes a string or a `Uint8Array`; bytes are decoded as strict UTF-8.
@@ -91,9 +91,8 @@ canonical form.
91
91
  `diffValidatedUdlEvolution` takes two `UdlDocument`s and assumes both have
92
92
  already been admitted. Validate first: an evolution verdict on a document
93
93
  `validateUdl` refuses is not a verdict at all, and a candidate that drops a
94
- live noun sails through a diff that never checked whether the noun was
95
- referenced. The `UdlDocument` parameter types are what keeps the compiler on
96
- your side of that rule.
94
+ referenced noun sails through a diff that never checked the reference graph.
95
+ The `UdlDocument` parameter types keep the compiler on your side of that rule.
97
96
 
98
97
  ## The command
99
98
 
@@ -101,7 +100,7 @@ your side of that rule.
101
100
  udl validate product.udl # parse and report every issue found
102
101
  udl fmt product.udl # print the canonical form
103
102
  udl fmt product.udl --write # rewrite the file in place
104
- udl diff live.udl product.udl # is the change additive, or does it break?
103
+ udl diff frozen.udl product.udl # is the change additive, or does it break?
105
104
  ```
106
105
 
107
106
  Exit codes: `0` the document is admissible or the change is additive, `1` the
@@ -111,10 +110,10 @@ document and a broken invocation are different failures.
111
110
 
112
111
  ## The two things worth knowing
113
112
 
114
- **Evolution is append-only.** Once a definition has live instances, you may add
115
- states, transitions, optional fields, and verbs. You may not remove, rename,
116
- tighten, or change a money step. `udl diff` is not advice; it is the same
117
- function the compiler runs before it will accept a new version.
113
+ **Evolution is append-only.** Once a frozen definition has instances, you may
114
+ add states, transitions, optional fields, and verbs. You may not remove,
115
+ rename, tighten, or change a money step. `udl diff` is not advice; it is the
116
+ same function the compiler runs before it will accept a new version.
118
117
 
119
118
  **Internal ledger money moves through four instructions and no others.**
120
119
  `internal_transfer.create`, `.reserve`, `.post`, `.void`. Three account
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperscale0/udl",
3
- "version": "1.0.0-alpha.5",
3
+ "version": "1.0.0-beta.1",
4
4
  "description": "The Universal Domain Language: format spec, parser, validator, canonical serializer, and evolution diff.",
5
5
  "keywords": [
6
6
  "udl",
package/spec/README.md CHANGED
@@ -130,8 +130,8 @@ document be diffed, signed, and stored as its own identity.
130
130
  document that declares any other value is refused. Format 1 is the only format
131
131
  that exists.
132
132
 
133
- **Package version** is the semver of `@hyperscale0/udl`, currently
134
- `1.0.0-alpha.1`.
133
+ **Package version** is the semver of `@hyperscale0/udl`, declared in
134
+ `package.json`.
135
135
 
136
136
  They move independently, under one rule: **format 1 is unstable until the
137
137
  package reaches 1.0.0.** Until then an alpha release may change what format 1