@macula-io/ts 0.17.0 → 0.19.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.
- package/README.md +106 -272
- package/dist/binding.d.ts +50 -45
- package/dist/binding.js +8 -125
- package/dist/binding.js.map +1 -1
- package/dist/content.d.ts +32 -13
- package/dist/content.js +43 -41
- package/dist/content.js.map +1 -1
- package/dist/index.d.ts +5 -9
- package/dist/index.js +6 -8
- package/dist/index.js.map +1 -1
- package/dist/key.d.ts +31 -0
- package/dist/key.js +72 -0
- package/dist/key.js.map +1 -0
- package/dist/pool.d.ts +185 -131
- package/dist/pool.js +223 -576
- package/dist/pool.js.map +1 -1
- package/dist/stream.d.ts +63 -0
- package/dist/stream.js +93 -0
- package/dist/stream.js.map +1 -0
- package/dist/wire.d.ts +53 -0
- package/dist/wire.js +79 -0
- package/dist/wire.js.map +1 -0
- package/package.json +7 -5
- package/prebuilds/darwin-arm64/@macula-io+ts.node +0 -0
- package/prebuilds/darwin-x64/@macula-io+ts.node +0 -0
- package/prebuilds/linux-arm64/@macula-io+ts.node +0 -0
- package/prebuilds/linux-x64/@macula-io+ts.node +0 -0
- package/prebuilds/win32-x64/@macula-io+ts.node +0 -0
- package/dist/dht.d.ts +0 -55
- package/dist/dht.js +0 -25
- package/dist/dht.js.map +0 -1
- package/dist/directdial.d.ts +0 -79
- package/dist/directdial.js +0 -76
- package/dist/directdial.js.map +0 -1
- package/dist/identity.d.ts +0 -43
- package/dist/identity.js +0 -83
- package/dist/identity.js.map +0 -1
- package/dist/pubsub.d.ts +0 -60
- package/dist/pubsub.js +0 -8
- package/dist/pubsub.js.map +0 -1
- package/dist/rpc.d.ts +0 -86
- package/dist/rpc.js +0 -57
- package/dist/rpc.js.map +0 -1
- package/dist/session.d.ts +0 -481
- package/dist/session.js +0 -810
- package/dist/session.js.map +0 -1
- package/dist/ucan.d.ts +0 -110
- package/dist/ucan.js +0 -140
- package/dist/ucan.js.map +0 -1
package/dist/session.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|
package/dist/ucan.d.ts
DELETED
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import type { Identity } from "./identity.js";
|
|
2
|
-
/** One entry in a UCAN token's capability list -- mirrors macula-go's
|
|
3
|
-
* ucan.Capability (`with`/`can` json tags) exactly; this module doesn't
|
|
4
|
-
* interpret `with`/`can` in any way, it only carries them. */
|
|
5
|
-
export interface UcanCapability {
|
|
6
|
-
readonly with: string;
|
|
7
|
-
readonly can: string;
|
|
8
|
-
}
|
|
9
|
-
/** Arbitrary JSON value for a UCAN token's `fct` (facts) claim.
|
|
10
|
-
* Deliberately DIFFERENT from rpc.ts's JsonValue: a UCAN token's payload
|
|
11
|
-
* crosses this boundary as plain JSON (Go's encoding/json) over the
|
|
12
|
-
* token's own base64url-encoded JWT body, never macula's CBOR mesh wire
|
|
13
|
-
* -- so, unlike an RPC payload, a JSON boolean here is valid and is
|
|
14
|
-
* NOT rejected (rpc.ts's "no bool on the wire" rule is about the CBOR
|
|
15
|
-
* wire specifically, not about JSON in general). */
|
|
16
|
-
export type UcanFactValue = string | number | boolean | null | UcanFactValue[] | {
|
|
17
|
-
[key: string]: UcanFactValue;
|
|
18
|
-
};
|
|
19
|
-
/** Optional claims for Ucan.mint() -- mirrors macula-go's ucan.CreateOpts. */
|
|
20
|
-
export interface UcanMintOptions {
|
|
21
|
-
/** Unix seconds. Omit for a token with no expiry claim at all (never
|
|
22
|
-
* expires, per ucan.IsExpired's own "no exp claim = never expired"
|
|
23
|
-
* rule) -- NOT the same as passing an already-past timestamp. */
|
|
24
|
-
expiresAt?: number;
|
|
25
|
-
/** Unix seconds; the token is not valid before this instant. */
|
|
26
|
-
notBefore?: number;
|
|
27
|
-
/** An arbitrary nonce string, omitted from the token entirely if left
|
|
28
|
-
* unset (matching ucan.CreateOpts.Nonce's own ""-means-absent rule --
|
|
29
|
-
* there is no way to mint a token with an explicit empty-string nonce
|
|
30
|
-
* claim, since macula-go's own Create() cannot express that either). */
|
|
31
|
-
nonce?: string;
|
|
32
|
-
/** Arbitrary application-defined facts, carried in the token's `fct`
|
|
33
|
-
* claim (Go's `map[string]interface{}`, plain JSON -- see
|
|
34
|
-
* UcanFactValue's own doc on why booleans are fine here specifically). */
|
|
35
|
-
facts?: Record<string, UcanFactValue>;
|
|
36
|
-
/** CIDs (Ucan.token's own ucan.ComputeCID shape) of parent tokens this
|
|
37
|
-
* one delegates from. Not computed or validated by this module --
|
|
38
|
-
* carried through as opaque strings. */
|
|
39
|
-
proofs?: string[];
|
|
40
|
-
}
|
|
41
|
-
/** A decoded (never verified -- see this module's own doc) UCAN token:
|
|
42
|
-
* its raw wire text plus every claim cabi/ucan.go's macula_ucan_decode
|
|
43
|
-
* exposes. Both Ucan.mint() and Ucan.decode() return this same shape --
|
|
44
|
-
* mint() mints via cabi/ucan.go's macula_ucan_mint, then decodes its own
|
|
45
|
-
* freshly-minted token through the identical Decode path Ucan.decode()
|
|
46
|
-
* uses, rather than duplicating the claims-JSON shape a second time on
|
|
47
|
-
* the Go side. */
|
|
48
|
-
export declare class Ucan {
|
|
49
|
-
/** The raw token text: "header.payload.signature", base64url,
|
|
50
|
-
* dot-joined -- what Session.callWithUcan actually attaches to a CALL,
|
|
51
|
-
* and what a real macula peer/station would carry over the wire in a
|
|
52
|
-
* `ucan_token` frame field. */
|
|
53
|
-
readonly token: string;
|
|
54
|
-
/** The `iss` claim -- an opaque DID string (see didFromNodeId's own
|
|
55
|
-
* doc: not parsed or resolved by this module, carried through as-is). */
|
|
56
|
-
readonly issuer: string;
|
|
57
|
-
/** The `aud` claim: for a token Ucan.mint() wrote, the NodeID, as
|
|
58
|
-
* lowercase hex, of the caller it is for. A gated provider accepts the
|
|
59
|
-
* token only from that caller; this module and Session.callWithUcan
|
|
60
|
-
* don't compare it with any local identity (see this module's own
|
|
61
|
-
* doc). */
|
|
62
|
-
readonly audience: string;
|
|
63
|
-
readonly capabilities: readonly UcanCapability[];
|
|
64
|
-
/** The `exp` claim, unix seconds, or `null` if this token has none
|
|
65
|
-
* (never expires). */
|
|
66
|
-
readonly expiresAt: number | null;
|
|
67
|
-
/** The `nbf` claim, unix seconds, or `null` if absent. */
|
|
68
|
-
readonly notBefore: number | null;
|
|
69
|
-
/** The `nnc` claim, or `""` if absent (mirrors ucan.Payload.Nonce's
|
|
70
|
-
* own "" -- absent convention; there is no way to distinguish an
|
|
71
|
-
* explicit empty-string nonce from a wholly absent one, since
|
|
72
|
-
* macula-go's own Decode can't either). */
|
|
73
|
-
readonly nonce: string;
|
|
74
|
-
/** The `fct` claim, or `null` if absent. */
|
|
75
|
-
readonly facts: Readonly<Record<string, UcanFactValue>> | null;
|
|
76
|
-
/** The `prf` claim -- CIDs of parent tokens this one delegates from. */
|
|
77
|
-
readonly proofs: readonly string[];
|
|
78
|
-
private constructor();
|
|
79
|
-
/** Whether this token's `exp` claim is in the past. A token with no
|
|
80
|
-
* `exp` claim at all (`expiresAt === null`) is never expired --
|
|
81
|
-
* mirrors macula-go's `ucan.IsExpired` exactly, including its strict
|
|
82
|
-
* `now > exp` comparison (computed here, not cached, so this reflects
|
|
83
|
-
* the current instant on every read): a token expiring at exactly this
|
|
84
|
-
* second is NOT YET expired. This is purely a local claims check, same
|
|
85
|
-
* as `ucan.IsExpired` itself -- it does not verify the token's
|
|
86
|
-
* signature (see this module's own doc: verification is out of
|
|
87
|
-
* scope). */
|
|
88
|
-
get isExpired(): boolean;
|
|
89
|
-
/** Mints a fresh UCAN token, self-issued and signed by `issuer`'s own
|
|
90
|
-
* private key (macula-go's `ucan.Create`) -- the resulting token
|
|
91
|
-
* verifies against `issuer`'s own public key (NodeID), matching
|
|
92
|
-
* `ucan.Create`'s documented convention. `iss` is written as
|
|
93
|
-
* `did:macula:<hex NodeID>` (`didFromNodeId`) and `aud` as `audience`'s
|
|
94
|
-
* lowercase hex (`audienceFromNodeId`), the form a gated provider
|
|
95
|
-
* compares with the calling identity: pass the NodeID of the identity
|
|
96
|
-
* that will present the token. There is no way to mint with custom
|
|
97
|
-
* claim strings through this method.
|
|
98
|
-
*
|
|
99
|
-
* No network I/O -- this never touches a Session or a station; a
|
|
100
|
-
* token can be minted entirely offline given only an `Identity`. */
|
|
101
|
-
static mint(issuer: Identity, audience: Uint8Array, capabilities?: UcanCapability[], opts?: UcanMintOptions): Ucan;
|
|
102
|
-
/** Decodes `token`'s claims WITHOUT verifying its signature or
|
|
103
|
-
* checking expiration (macula-go's `ucan.Decode`) -- `isExpired`
|
|
104
|
-
* above is a local claims check only, never use this (or any field on
|
|
105
|
-
* the result) for an authorization decision; this module deliberately
|
|
106
|
-
* does not expose `ucan.Verify` (see this module's own doc). Throws if
|
|
107
|
-
* `token` isn't a well-formed `header.payload.signature` triple or its
|
|
108
|
-
* payload isn't valid JSON (mirrors `ucan.ErrInvalidToken`). */
|
|
109
|
-
static decode(token: string): Ucan;
|
|
110
|
-
}
|
package/dist/ucan.js
DELETED
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
// UCAN (User Controlled Authorization Networks) tokens -- macula's
|
|
2
|
-
// JWT-shaped capability tokens (header.payload.signature, base64url,
|
|
3
|
-
// EdDSA over Ed25519, UCAN spec version "0.10.0" -- the older JWT-based
|
|
4
|
-
// draft, NOT the current non-JWT/IPLD UCAN 1.0 spec; see macula-go's
|
|
5
|
-
// ucan/ucan.go for why: no existing library implements 0.10.0, so
|
|
6
|
-
// macula-go hand-rolls it to match the Erlang reference SDK and its Rust
|
|
7
|
-
// NIF exactly). Minting (Ucan.mint) and decoding/inspecting (Ucan.decode)
|
|
8
|
-
// are both pure local operations -- no network I/O, no station involved
|
|
9
|
-
// -- reached through cabi/ucan.go's macula_ucan_mint/macula_ucan_decode.
|
|
10
|
-
// Session.callWithUcan (session.ts) attaches a minted token to an
|
|
11
|
-
// outgoing CALL, for invoking a procedure a provider has gated behind a
|
|
12
|
-
// ucan.Policy.Required policy on its own side (macula-go's
|
|
13
|
-
// connection.Session.CallWithUCAN).
|
|
14
|
-
//
|
|
15
|
-
// This module deliberately does NOT expose verification or
|
|
16
|
-
// gate-enforcement -- macula-go's ucan.Verify and ucan.Policy (serving a
|
|
17
|
-
// procedure gated behind a required issuer) are provider-side concerns,
|
|
18
|
-
// out of scope for this slice. See README.md's "What's explicitly not
|
|
19
|
-
// yet implemented" section.
|
|
20
|
-
//
|
|
21
|
-
// A provider gated with ucan.Required accepts a token only when it
|
|
22
|
-
// verifies against the required issuer and its `aud` claim is the calling
|
|
23
|
-
// identity's NodeID as lowercase hex. Ucan.mint() writes `audience` in
|
|
24
|
-
// that form, so mint a token for the identity that will present it; any
|
|
25
|
-
// 32-byte NodeID is accepted as the audience, related to the minting
|
|
26
|
-
// identity or not. Session.callWithUcan (session.ts) attaches whatever
|
|
27
|
-
// token it is given and leaves the check to the provider.
|
|
28
|
-
import { native } from "./binding.js";
|
|
29
|
-
/** The `iss` claim this module writes for a NodeID:
|
|
30
|
-
* "did:macula:<lowercase hex NodeID>". macula-go's ucan package never
|
|
31
|
-
* parses or resolves it (that's macula_did_nif's job on the Erlang
|
|
32
|
-
* reference, out of scope for both SDKs) -- the cryptographic check a
|
|
33
|
-
* relying party performs is keyed by a raw public key it already has out
|
|
34
|
-
* of band (ucan.Verify's own `publicKey []byte` parameter,
|
|
35
|
-
* ucan/policy.go's `Required(issuerPublicKey []byte)`), never by parsing
|
|
36
|
-
* this string. */
|
|
37
|
-
function didFromNodeId(nodeId) {
|
|
38
|
-
return `did:macula:${Buffer.from(nodeId).toString("hex")}`;
|
|
39
|
-
}
|
|
40
|
-
/** The `aud` claim this module writes for a NodeID: its lowercase hex,
|
|
41
|
-
* the form a gated provider compares with the calling identity
|
|
42
|
-
* (macula-go's ucan.Policy.Check). */
|
|
43
|
-
function audienceFromNodeId(nodeId) {
|
|
44
|
-
return Buffer.from(nodeId).toString("hex");
|
|
45
|
-
}
|
|
46
|
-
/** A decoded (never verified -- see this module's own doc) UCAN token:
|
|
47
|
-
* its raw wire text plus every claim cabi/ucan.go's macula_ucan_decode
|
|
48
|
-
* exposes. Both Ucan.mint() and Ucan.decode() return this same shape --
|
|
49
|
-
* mint() mints via cabi/ucan.go's macula_ucan_mint, then decodes its own
|
|
50
|
-
* freshly-minted token through the identical Decode path Ucan.decode()
|
|
51
|
-
* uses, rather than duplicating the claims-JSON shape a second time on
|
|
52
|
-
* the Go side. */
|
|
53
|
-
export class Ucan {
|
|
54
|
-
/** The raw token text: "header.payload.signature", base64url,
|
|
55
|
-
* dot-joined -- what Session.callWithUcan actually attaches to a CALL,
|
|
56
|
-
* and what a real macula peer/station would carry over the wire in a
|
|
57
|
-
* `ucan_token` frame field. */
|
|
58
|
-
token;
|
|
59
|
-
/** The `iss` claim -- an opaque DID string (see didFromNodeId's own
|
|
60
|
-
* doc: not parsed or resolved by this module, carried through as-is). */
|
|
61
|
-
issuer;
|
|
62
|
-
/** The `aud` claim: for a token Ucan.mint() wrote, the NodeID, as
|
|
63
|
-
* lowercase hex, of the caller it is for. A gated provider accepts the
|
|
64
|
-
* token only from that caller; this module and Session.callWithUcan
|
|
65
|
-
* don't compare it with any local identity (see this module's own
|
|
66
|
-
* doc). */
|
|
67
|
-
audience;
|
|
68
|
-
capabilities;
|
|
69
|
-
/** The `exp` claim, unix seconds, or `null` if this token has none
|
|
70
|
-
* (never expires). */
|
|
71
|
-
expiresAt;
|
|
72
|
-
/** The `nbf` claim, unix seconds, or `null` if absent. */
|
|
73
|
-
notBefore;
|
|
74
|
-
/** The `nnc` claim, or `""` if absent (mirrors ucan.Payload.Nonce's
|
|
75
|
-
* own "" -- absent convention; there is no way to distinguish an
|
|
76
|
-
* explicit empty-string nonce from a wholly absent one, since
|
|
77
|
-
* macula-go's own Decode can't either). */
|
|
78
|
-
nonce;
|
|
79
|
-
/** The `fct` claim, or `null` if absent. */
|
|
80
|
-
facts;
|
|
81
|
-
/** The `prf` claim -- CIDs of parent tokens this one delegates from. */
|
|
82
|
-
proofs;
|
|
83
|
-
constructor(token, payload) {
|
|
84
|
-
this.token = token;
|
|
85
|
-
this.issuer = payload.issuer;
|
|
86
|
-
this.audience = payload.audience;
|
|
87
|
-
this.capabilities = payload.capabilities;
|
|
88
|
-
this.expiresAt = payload.expiresAt;
|
|
89
|
-
this.notBefore = payload.notBefore;
|
|
90
|
-
this.nonce = payload.nonce;
|
|
91
|
-
this.facts = payload.facts;
|
|
92
|
-
this.proofs = payload.proofs;
|
|
93
|
-
}
|
|
94
|
-
/** Whether this token's `exp` claim is in the past. A token with no
|
|
95
|
-
* `exp` claim at all (`expiresAt === null`) is never expired --
|
|
96
|
-
* mirrors macula-go's `ucan.IsExpired` exactly, including its strict
|
|
97
|
-
* `now > exp` comparison (computed here, not cached, so this reflects
|
|
98
|
-
* the current instant on every read): a token expiring at exactly this
|
|
99
|
-
* second is NOT YET expired. This is purely a local claims check, same
|
|
100
|
-
* as `ucan.IsExpired` itself -- it does not verify the token's
|
|
101
|
-
* signature (see this module's own doc: verification is out of
|
|
102
|
-
* scope). */
|
|
103
|
-
get isExpired() {
|
|
104
|
-
if (this.expiresAt === null)
|
|
105
|
-
return false;
|
|
106
|
-
return Math.floor(Date.now() / 1000) > this.expiresAt;
|
|
107
|
-
}
|
|
108
|
-
/** Mints a fresh UCAN token, self-issued and signed by `issuer`'s own
|
|
109
|
-
* private key (macula-go's `ucan.Create`) -- the resulting token
|
|
110
|
-
* verifies against `issuer`'s own public key (NodeID), matching
|
|
111
|
-
* `ucan.Create`'s documented convention. `iss` is written as
|
|
112
|
-
* `did:macula:<hex NodeID>` (`didFromNodeId`) and `aud` as `audience`'s
|
|
113
|
-
* lowercase hex (`audienceFromNodeId`), the form a gated provider
|
|
114
|
-
* compares with the calling identity: pass the NodeID of the identity
|
|
115
|
-
* that will present the token. There is no way to mint with custom
|
|
116
|
-
* claim strings through this method.
|
|
117
|
-
*
|
|
118
|
-
* No network I/O -- this never touches a Session or a station; a
|
|
119
|
-
* token can be minted entirely offline given only an `Identity`. */
|
|
120
|
-
static mint(issuer, audience, capabilities = [], opts = {}) {
|
|
121
|
-
if (audience.length !== 32) {
|
|
122
|
-
throw new Error(`macula-ts: UCAN audience NodeID must be exactly 32 bytes, got ${audience.length}`);
|
|
123
|
-
}
|
|
124
|
-
const token = native.ucanMint(issuer.handleForFfi(), didFromNodeId(issuer.nodeId), audienceFromNodeId(audience), JSON.stringify(capabilities ?? []), opts.expiresAt, opts.notBefore, opts.nonce ?? "", opts.facts !== undefined ? JSON.stringify(opts.facts) : undefined, opts.proofs !== undefined ? JSON.stringify(opts.proofs) : undefined);
|
|
125
|
-
return Ucan.decode(token);
|
|
126
|
-
}
|
|
127
|
-
/** Decodes `token`'s claims WITHOUT verifying its signature or
|
|
128
|
-
* checking expiration (macula-go's `ucan.Decode`) -- `isExpired`
|
|
129
|
-
* above is a local claims check only, never use this (or any field on
|
|
130
|
-
* the result) for an authorization decision; this module deliberately
|
|
131
|
-
* does not expose `ucan.Verify` (see this module's own doc). Throws if
|
|
132
|
-
* `token` isn't a well-formed `header.payload.signature` triple or its
|
|
133
|
-
* payload isn't valid JSON (mirrors `ucan.ErrInvalidToken`). */
|
|
134
|
-
static decode(token) {
|
|
135
|
-
const json = native.ucanDecode(token);
|
|
136
|
-
const payload = JSON.parse(json);
|
|
137
|
-
return new Ucan(token, payload);
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
//# sourceMappingURL=ucan.js.map
|
package/dist/ucan.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ucan.js","sourceRoot":"","sources":["../src/ucan.ts"],"names":[],"mappings":"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"}
|