@hyperscale0/adl 1.0.0-beta.5 → 1.0.0-beta.7
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 +10 -1
- package/README.md +8 -79
- package/conformance/cases.json +50 -764
- package/conformance/subject-adapter.ts +31 -0
- package/dist/boundary-fixture.d.ts +24 -0
- package/dist/boundary-fixture.d.ts.map +1 -0
- package/dist/boundary-fixture.js +34 -0
- package/dist/boundary-fixture.js.map +1 -0
- package/dist/index.d.ts +68 -156
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +100 -77
- package/dist/index.js.map +1 -1
- package/dist/vocabulary.d.ts +3 -57
- package/dist/vocabulary.d.ts.map +1 -1
- package/dist/vocabulary.js +12 -84
- package/dist/vocabulary.js.map +1 -1
- package/docs/authoring-guide.md +37 -417
- package/package.json +11 -6
- package/spec/manifest.schema.json +511 -446
- package/dist/conformance.d.ts +0 -41
- package/dist/conformance.d.ts.map +0 -1
- package/dist/conformance.js +0 -486
- package/dist/conformance.js.map +0 -1
- package/examples/meridian-bank/README.md +0 -65
- package/examples/meridian-bank/fixtures/payout-status-replay.json +0 -19
- package/examples/meridian-bank/fixtures/payout-status-settled.json +0 -19
- package/examples/meridian-bank/fixtures/payout-submit-accepted.json +0 -26
- package/examples/meridian-bank/fixtures/payout-submit-declined.json +0 -25
- package/examples/meridian-bank/fixtures/statement-camt053.json +0 -45
- package/examples/meridian-bank/fixtures/webhook-payout-settled.json +0 -11
- package/examples/meridian-bank/index.ts +0 -262
package/CHANGELOG.md
CHANGED
|
@@ -4,7 +4,16 @@ All notable changes to this package are documented here. The format follows
|
|
|
4
4
|
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and the project
|
|
5
5
|
follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html) from 1.0.0.
|
|
6
6
|
|
|
7
|
-
## [
|
|
7
|
+
## [1.0.0-beta.7] - 2026-09-21
|
|
8
|
+
|
|
9
|
+
- Added optional `subjectRequirements` on operation bindings: subject fields an action collects before dispatch.
|
|
10
|
+
- Added `BoundaryInstruction`, `BoundaryObservation`, `BoundaryOutcome` and `BoundaryAdapter`.
|
|
11
|
+
- Replaced bank profiles and certification with generic binding conformance.
|
|
12
|
+
- Removed the fictional bank example and its status, rail and calendar vocabulary.
|
|
13
|
+
|
|
14
|
+
## [1.0.0-beta.6] - 2026-09-20
|
|
15
|
+
|
|
16
|
+
- Republished so the package cites a platform commit that survives the 2026-09-19 history rewrite. No vocabulary or conformance change.
|
|
8
17
|
|
|
9
18
|
## [1.0.0-beta.5] - 2026-09-18
|
|
10
19
|
|
package/README.md
CHANGED
|
@@ -10,19 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
# ADL
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
ADL is the Adapter Declaration Language: the public format for declaring how a bank or provider behaves at the control-plane boundary. Its validator and conformance suite refuse incomplete interface facts before a generic runtime can poll, classify, reconcile, or deduplicate provider results. The three language boundaries stay separate: HSX authors settlement behavior, UDL defines the canonical product contract, and ADL declares how an external provider performs or confirms work behind that contract.
|
|
16
|
-
|
|
17
|
-
**Status: beta.** Current release is 1.0.0-beta.1. Pre-1.0 releases can change on minor versions until 1.0.0.
|
|
18
|
-
|
|
19
|
-
## Adapter symmetry
|
|
20
|
-
|
|
21
|
-
Hyperscale first-party bank adapters are written against this package and nothing more. There is no private adapter API and no second interface for first-party code. When an adapter needs a seam ADL lacks, the seam is added here, in public, or not at all.
|
|
22
|
-
|
|
23
|
-
An adapter is a declaration, not a client. It is a plain object stating what the provider does: which commands exist, how responses classify, what bank status tokens mean, when statements can be fetched, and which reference returns on a debit. The generic execution runtime ships with the platform. An adapter opens no sockets, holds no credentials, and decides nothing about what a payment means.
|
|
24
|
-
|
|
25
|
-
Conformance checks a declaration. It does not contact a bank, verify a credential, certify regulatory readiness, or make a Product live.
|
|
13
|
+
ADL declares provider bindings and the instruction and observation contract for external work. HSX authors money behavior; UDL carries that contract into execution. The runtime owns money accounts, reservations and evidence consumption.
|
|
26
14
|
|
|
27
15
|
## Install
|
|
28
16
|
|
|
@@ -30,88 +18,29 @@ Conformance checks a declaration. It does not contact a bank, verify a credentia
|
|
|
30
18
|
npm install @hyperscale0/adl
|
|
31
19
|
```
|
|
32
20
|
|
|
33
|
-
Pre-1.0 releases are prerelease versions (alpha and beta). Pin an exact version if needed: until 1.0.0, a change to the surface ships as a minor bump, not a major.
|
|
21
|
+
Pre-1.0 releases are prerelease versions (alpha and beta). Pin an exact version if needed: until 1.0.0, a change to the surface ships as a minor bump, not a major. ADL depends on `@hyperscale0/udl` for object field schema validation.
|
|
34
22
|
|
|
35
23
|
## Adapter declaration
|
|
36
24
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
```ts
|
|
40
|
-
import {
|
|
41
|
-
certifyPartnerBankAdapter,
|
|
42
|
-
createProviderAdapterRegistry,
|
|
43
|
-
type ProviderAdapterVocabulary,
|
|
44
|
-
} from "@hyperscale0/adl";
|
|
45
|
-
import { meridianProfile } from "./examples/meridian-bank/index.js";
|
|
46
|
-
|
|
47
|
-
interface MyVocabulary extends ProviderAdapterVocabulary {
|
|
48
|
-
capability: "payout_execution";
|
|
49
|
-
operation: "payout.submit";
|
|
50
|
-
resource: "payout";
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
const defineAdapters = createProviderAdapterRegistry<MyVocabulary>();
|
|
54
|
-
|
|
55
|
-
export const adapters = defineAdapters([
|
|
56
|
-
{
|
|
57
|
-
provider: "meridian_bank",
|
|
58
|
-
capability: "payout_execution",
|
|
59
|
-
egress: "rest",
|
|
60
|
-
operationMap: {
|
|
61
|
-
"payout.submit": {
|
|
62
|
-
operation: "payout.submit",
|
|
63
|
-
direction: "tenant_initiated",
|
|
64
|
-
envelope: "http_status_error_body",
|
|
65
|
-
statusEnquiry: {
|
|
66
|
-
keys: "provider_reference",
|
|
67
|
-
pathTemplate: "/v2/payments/{providerReference}",
|
|
68
|
-
},
|
|
69
|
-
obligationKind: "payout_submission",
|
|
70
|
-
resourceKind: "payout",
|
|
71
|
-
resourceIdPath: "payoutId",
|
|
72
|
-
},
|
|
73
|
-
},
|
|
74
|
-
webhookMap: {},
|
|
75
|
-
bindings: { payout: "claim" },
|
|
76
|
-
config: {
|
|
77
|
-
credentialRef: { source: "environment", name: "MERIDIAN_CREDENTIALS" },
|
|
78
|
-
},
|
|
79
|
-
profile: meridianProfile,
|
|
80
|
-
},
|
|
81
|
-
]);
|
|
82
|
-
|
|
83
|
-
for (const adapter of adapters) {
|
|
84
|
-
certifyPartnerBankAdapter(adapter);
|
|
85
|
-
}
|
|
86
|
-
```
|
|
25
|
+
Use `createProviderAdapterRegistry` to validate `ProviderAdapter` declarations and `adapterConformanceFindings` to report incomplete bindings. `BoundaryAdapter` dispatches immutable `BoundaryInstruction` values and returns explicit `BoundaryObservation` values. HTTP success never confirms settlement.
|
|
87
26
|
|
|
88
|
-
|
|
27
|
+
The [generic fixture](src/boundary-fixture.ts) has no network, clock or account policy. Check it from this package:
|
|
89
28
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
```bash
|
|
93
|
-
bun run conformance -- ./examples/meridian-bank
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
```
|
|
97
|
-
ok meridian_bank:payout_execution
|
|
98
|
-
ok meridian_bank:bank_credit
|
|
99
|
-
2 adapter(s) checked, 0 finding(s) reported
|
|
29
|
+
```sh
|
|
30
|
+
bun run conformance -- ./src/boundary-fixture.ts
|
|
100
31
|
```
|
|
101
32
|
|
|
102
|
-
The command exits 0 on success and 1 when findings are reported.
|
|
103
|
-
|
|
104
33
|
## Documentation
|
|
105
34
|
|
|
106
35
|
- [Authoring guide](docs/authoring-guide.md)
|
|
107
|
-
- [Meridian Bank example](examples/meridian-bank)
|
|
108
36
|
- [Conformance test cases](conformance/cases.json)
|
|
37
|
+
- [Subject adapter fixture](conformance/subject-adapter.ts)
|
|
109
38
|
- [Manifest JSON schema](spec/manifest.schema.json)
|
|
110
39
|
- [Contributing](CONTRIBUTING.md)
|
|
111
40
|
|
|
112
41
|
## Versioning
|
|
113
42
|
|
|
114
|
-
Semantic versioning from 1.0.0. Until then, prereleases may change the surface on a minor version.
|
|
43
|
+
Semantic versioning from 1.0.0. Until then, prereleases may change the surface on a minor version. Removing a value from a vocabulary in `src/vocabulary.ts` is a breaking change documented in [CHANGELOG.md](CHANGELOG.md).
|
|
115
44
|
|
|
116
45
|
## License and security
|
|
117
46
|
|