@miakapp/cli 4.0.0-alpha.5 → 4.0.0-alpha.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/README.md +106 -32
- package/assets/agent-guide.md +193 -22
- package/bin/miakapp.js +5 -1
- package/dist/agent-pack.d.ts.map +1 -1
- package/dist/agent-pack.js +12 -5
- package/dist/agent-pack.js.map +1 -1
- package/dist/contexts.d.ts +59 -0
- package/dist/contexts.d.ts.map +1 -0
- package/dist/contexts.js +388 -0
- package/dist/contexts.js.map +1 -0
- package/dist/control-plane.d.ts +14 -0
- package/dist/control-plane.d.ts.map +1 -1
- package/dist/control-plane.js +33 -1
- package/dist/control-plane.js.map +1 -1
- package/dist/internal/names.d.ts +5 -0
- package/dist/internal/names.d.ts.map +1 -1
- package/dist/internal/names.js +6 -0
- package/dist/internal/names.js.map +1 -1
- package/dist/main.d.ts +16 -3
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +567 -54
- package/dist/main.js.map +1 -1
- package/dist/mcp.d.ts +7 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +167 -26
- package/dist/mcp.js.map +1 -1
- package/dist/pairing.d.ts +27 -0
- package/dist/pairing.d.ts.map +1 -0
- package/dist/pairing.js +148 -0
- package/dist/pairing.js.map +1 -0
- package/dist/project.d.ts +3 -1
- package/dist/project.d.ts.map +1 -1
- package/dist/project.js +33 -6
- package/dist/project.js.map +1 -1
- package/dist/publication.d.ts +20 -5
- package/dist/publication.d.ts.map +1 -1
- package/dist/publication.js +58 -16
- package/dist/publication.js.map +1 -1
- package/dist/terminal.d.ts +10 -0
- package/dist/terminal.d.ts.map +1 -0
- package/dist/terminal.js +70 -0
- package/dist/terminal.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -2
package/dist/pairing.js
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Redeems a one-time pairing code for a new Home Key.
|
|
3
|
+
*
|
|
4
|
+
* The person picks the home and confirms access in their own browser, on the
|
|
5
|
+
* pairing page of their own account; the agent never signs in anywhere. What
|
|
6
|
+
* reaches the agent is a short-lived, single-use code, and this module trades
|
|
7
|
+
* it for a fresh, separately revocable key — one key per agent or machine,
|
|
8
|
+
* never a copy of someone else's.
|
|
9
|
+
*
|
|
10
|
+
* Contract (shared with the control plane, fixed):
|
|
11
|
+
*
|
|
12
|
+
* POST {issuer}/v1/pairing/redeem
|
|
13
|
+
* {"code": "...", "label": "..."}
|
|
14
|
+
* → 200 {"home_key", "home_id", "key_id", "issuer"}, Cache-Control: no-store
|
|
15
|
+
*
|
|
16
|
+
* The request goes only to the issuer chosen before the code was read, after
|
|
17
|
+
* that issuer's own discovery document confirmed it is a Miakapp control plane
|
|
18
|
+
* under exactly that name. Redirects are refused, so a code cannot be walked to
|
|
19
|
+
* another host, and the response must name the same issuer and a key whose ID
|
|
20
|
+
* is embedded in the key itself.
|
|
21
|
+
*/
|
|
22
|
+
import { CliError, authorizationError, contractError, unknownOutcomeError, usageError } from './errors.js';
|
|
23
|
+
import { cancelBody, canonicalHttpsUrl, readBoundedBody, requestBody, } from './internal/http.js';
|
|
24
|
+
import { boundedString, exactRecord, parseJson } from './internal/json.js';
|
|
25
|
+
import { isHomeId } from './internal/names.js';
|
|
26
|
+
export const PAIRING_PATH = '/v1/pairing/redeem';
|
|
27
|
+
export const DEFAULT_ISSUER = 'https://control.miakapp.com';
|
|
28
|
+
export const PAIRING_PAGE = 'https://miakapp.com/pair';
|
|
29
|
+
const HOME_KEY = /^mhk1_([A-Za-z0-9_-]{22})_([A-Za-z0-9_-]{43})$/;
|
|
30
|
+
const CODE = /^[\x21-\x7e]{4,128}$/;
|
|
31
|
+
const CONTROL_CHARACTER = /\p{Cc}/u;
|
|
32
|
+
const MAXIMUM_REDEEM_RESPONSE_BYTES = 16_384;
|
|
33
|
+
/** Validates the issuer a code may be sent to, before the code is read. */
|
|
34
|
+
export function pairingIssuer(value) {
|
|
35
|
+
let issuer;
|
|
36
|
+
try {
|
|
37
|
+
issuer = canonicalHttpsUrl(value, 'issuer');
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
throw usageError(`--issuer must be an exact https URL without a path suffix, query or fragment, received ${JSON.stringify(value)}`, `Omit --issuer to use ${DEFAULT_ISSUER}.`);
|
|
41
|
+
}
|
|
42
|
+
if (issuer.endsWith('/'))
|
|
43
|
+
throw usageError('--issuer must not have a trailing slash');
|
|
44
|
+
return issuer;
|
|
45
|
+
}
|
|
46
|
+
/** Trims the surrounding whitespace a paste or a pipe adds, and nothing else. */
|
|
47
|
+
export function normalizeCode(value) {
|
|
48
|
+
const code = value.trim();
|
|
49
|
+
if (code === '') {
|
|
50
|
+
throw usageError('No pairing code was provided', `Ask the owner to open ${PAIRING_PAGE}, confirm access to the home and send you the code.`);
|
|
51
|
+
}
|
|
52
|
+
if (!CODE.test(code)) {
|
|
53
|
+
throw usageError('The pairing code must be 4..128 printable characters without spaces', 'Paste the code exactly as the pairing page shows it.');
|
|
54
|
+
}
|
|
55
|
+
return code;
|
|
56
|
+
}
|
|
57
|
+
export function validateLabel(value) {
|
|
58
|
+
if (value.length === 0
|
|
59
|
+
|| new TextEncoder().encode(value).byteLength > 64
|
|
60
|
+
|| CONTROL_CHARACTER.test(value)) {
|
|
61
|
+
throw usageError('--label must be 1..64 UTF-8 bytes without control characters');
|
|
62
|
+
}
|
|
63
|
+
return value;
|
|
64
|
+
}
|
|
65
|
+
function orphanRemedy(label) {
|
|
66
|
+
return `The code may have been consumed. Ask the owner for a new code at ${PAIRING_PAGE}, and to `
|
|
67
|
+
+ `revoke any Home Key labelled ${JSON.stringify(label)} that they did not expect.`;
|
|
68
|
+
}
|
|
69
|
+
async function failureCode(response) {
|
|
70
|
+
try {
|
|
71
|
+
const body = parseJson(await readBoundedBody(response, MAXIMUM_REDEEM_RESPONSE_BYTES));
|
|
72
|
+
const error = body?.error;
|
|
73
|
+
return typeof error?.code === 'string' && /^[a-z_]{1,64}$/.test(error.code) ? error.code : undefined;
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
return undefined;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Sends the code once. Never retried: a lost response may hide a key that was
|
|
81
|
+
* already issued, and the second attempt would only burn the attempt budget on
|
|
82
|
+
* a code that is now spent.
|
|
83
|
+
*/
|
|
84
|
+
export async function redeemPairingCode(options) {
|
|
85
|
+
const fetcher = options.fetch ?? globalThis.fetch;
|
|
86
|
+
let response;
|
|
87
|
+
try {
|
|
88
|
+
response = await fetcher(`${options.issuer}${PAIRING_PATH}`, {
|
|
89
|
+
method: 'POST',
|
|
90
|
+
headers: {
|
|
91
|
+
accept: 'application/json',
|
|
92
|
+
'content-type': 'application/json; charset=utf-8',
|
|
93
|
+
},
|
|
94
|
+
body: requestBody({ code: options.code, label: options.label }),
|
|
95
|
+
credentials: 'omit',
|
|
96
|
+
redirect: 'error',
|
|
97
|
+
referrerPolicy: 'no-referrer',
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
throw unknownOutcomeError('The pairing request did not return a response', orphanRemedy(options.label));
|
|
102
|
+
}
|
|
103
|
+
if (response.status !== 200 && response.status !== 201) {
|
|
104
|
+
const code = await failureCode(response);
|
|
105
|
+
const suffix = code === undefined ? '' : ` ${code}`;
|
|
106
|
+
if (response.status === 429) {
|
|
107
|
+
const retry = response.headers.get('retry-after');
|
|
108
|
+
throw authorizationError(`The pairing service refused the attempt with HTTP 429${suffix}: too many attempts`, `${retry === null ? 'Wait' : `Wait ${retry} seconds`} before trying again, and check the code `
|
|
109
|
+
+ 'with the owner instead of guessing.');
|
|
110
|
+
}
|
|
111
|
+
if (response.status >= 500) {
|
|
112
|
+
throw unknownOutcomeError(`The pairing service failed with HTTP ${response.status}${suffix}`, orphanRemedy(options.label));
|
|
113
|
+
}
|
|
114
|
+
throw authorizationError(`The pairing code was refused with HTTP ${response.status}${suffix}`, 'A code works once and for ten minutes. Ask the owner to create a new one at '
|
|
115
|
+
+ `${PAIRING_PAGE} and send it to you.`);
|
|
116
|
+
}
|
|
117
|
+
const cacheControl = (response.headers.get('cache-control') ?? '')
|
|
118
|
+
.split(',')
|
|
119
|
+
.map((item) => item.trim().toLowerCase());
|
|
120
|
+
if (!cacheControl.includes('no-store')) {
|
|
121
|
+
cancelBody(response);
|
|
122
|
+
throw contractError('The pairing response is missing Cache-Control: no-store; the key it carries was discarded', `Report the control plane. Ask the owner to revoke the Home Key labelled ${JSON.stringify(options.label)}.`);
|
|
123
|
+
}
|
|
124
|
+
let result;
|
|
125
|
+
try {
|
|
126
|
+
// The contract fixes these four fields. A `schema` tag is tolerated because
|
|
127
|
+
// every other control-plane document carries one; any other member is a
|
|
128
|
+
// contract change and is refused. Nothing but the four is ever stored.
|
|
129
|
+
const document = exactRecord(parseJson(await readBoundedBody(response, MAXIMUM_REDEEM_RESPONSE_BYTES)), ['home_key', 'home_id', 'key_id', 'issuer'], ['schema']);
|
|
130
|
+
const homeKey = boundedString(document.home_key, 1, 256);
|
|
131
|
+
const keyId = boundedString(document.key_id, 22, 22);
|
|
132
|
+
const match = HOME_KEY.exec(homeKey);
|
|
133
|
+
if (match?.[1] !== keyId)
|
|
134
|
+
throw contractError('home_key does not carry key_id');
|
|
135
|
+
if (!isHomeId(document.home_id))
|
|
136
|
+
throw contractError('home_id is not a Miakapp home ID');
|
|
137
|
+
if (document.issuer !== options.issuer) {
|
|
138
|
+
throw contractError(`The response names issuer ${String(document.issuer)}, not ${options.issuer}`);
|
|
139
|
+
}
|
|
140
|
+
result = Object.freeze({ homeKey, homeId: document.home_id, keyId, issuer: options.issuer });
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
const detail = error instanceof CliError ? `: ${error.message}` : '';
|
|
144
|
+
throw contractError(`The pairing response does not match the redeem contract${detail}; nothing was stored`, `Report the control plane. Ask the owner to revoke the Home Key labelled ${JSON.stringify(options.label)}.`);
|
|
145
|
+
}
|
|
146
|
+
return result;
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=pairing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pairing.js","sourceRoot":"","sources":["../src/pairing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,aAAa,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC3G,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,WAAW,GAEZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,MAAM,CAAC,MAAM,YAAY,GAAG,oBAAoB,CAAC;AACjD,MAAM,CAAC,MAAM,cAAc,GAAG,6BAA6B,CAAC;AAC5D,MAAM,CAAC,MAAM,YAAY,GAAG,0BAA0B,CAAC;AAEvD,MAAM,QAAQ,GAAG,gDAAgD,CAAC;AAClE,MAAM,IAAI,GAAG,sBAAsB,CAAC;AACpC,MAAM,iBAAiB,GAAG,SAAS,CAAC;AACpC,MAAM,6BAA6B,GAAG,MAAM,CAAC;AAS7C,2EAA2E;AAC3E,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,UAAU,CACd,0FAA0F,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EACjH,wBAAwB,cAAc,GAAG,CAC1C,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,MAAM,UAAU,CAAC,yCAAyC,CAAC,CAAC;IACtF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC1B,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAChB,MAAM,UAAU,CACd,8BAA8B,EAC9B,yBAAyB,YAAY,qDAAqD,CAC3F,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,MAAM,UAAU,CACd,qEAAqE,EACrE,sDAAsD,CACvD,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;WACjB,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,EAAE;WAC/C,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,MAAM,UAAU,CAAC,8DAA8D,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,oEAAoE,YAAY,WAAW;UAC9F,gCAAgC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,4BAA4B,CAAC;AACxF,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,QAAkB;IAC3C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,eAAe,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC,CAAC;QACvF,MAAM,KAAK,GAAI,IAA8C,EAAE,KAAK,CAAC;QACrE,OAAO,OAAO,KAAK,EAAE,IAAI,KAAK,QAAQ,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACvG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAKvC;IACC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;IAClD,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,YAAY,EAAE,EAAE;YAC3D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,MAAM,EAAE,kBAAkB;gBAC1B,cAAc,EAAE,iCAAiC;aAClD;YACD,IAAI,EAAE,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;YAC/D,WAAW,EAAE,MAAM;YACnB,QAAQ,EAAE,OAAO;YACjB,cAAc,EAAE,aAAa;SAC9B,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,mBAAmB,CAAC,+CAA+C,EAAE,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1G,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACvD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;QACpD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAClD,MAAM,kBAAkB,CACtB,wDAAwD,MAAM,qBAAqB,EACnF,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,2CAA2C;kBAC7F,qCAAqC,CACxC,CAAC;QACJ,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;YAC3B,MAAM,mBAAmB,CACvB,wCAAwC,QAAQ,CAAC,MAAM,GAAG,MAAM,EAAE,EAClE,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAC5B,CAAC;QACJ,CAAC;QACD,MAAM,kBAAkB,CACtB,0CAA0C,QAAQ,CAAC,MAAM,GAAG,MAAM,EAAE,EACpE,8EAA8E;cAC5E,GAAG,YAAY,sBAAsB,CACxC,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;SAC/D,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5C,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACvC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACrB,MAAM,aAAa,CACjB,2FAA2F,EAC3F,2EAA2E,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAC5G,CAAC;IACJ,CAAC;IAED,IAAI,MAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,4EAA4E;QAC5E,wEAAwE;QACxE,uEAAuE;QACvE,MAAM,QAAQ,GAAG,WAAW,CAC1B,SAAS,CAAC,MAAM,eAAe,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC,EACzE,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAC3C,CAAC,QAAQ,CAAC,CACX,CAAC;QACF,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK;YAAE,MAAM,aAAa,CAAC,gCAAgC,CAAC,CAAC;QAChF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,MAAM,aAAa,CAAC,kCAAkC,CAAC,CAAC;QACzF,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;YACvC,MAAM,aAAa,CAAC,6BAA6B,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACrG,CAAC;QACD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,MAAM,aAAa,CACjB,0DAA0D,MAAM,sBAAsB,EACtF,2EAA2E,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAC5G,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/project.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { type Requirements } from './internal/names.js';
|
|
1
|
+
import { type ReleaseAbi, type Requirements } from './internal/names.js';
|
|
2
2
|
export declare const PROJECT_FILE = "miakapp.yaml";
|
|
3
3
|
export declare const PROJECT_SCHEMA = "miakapp.project/1";
|
|
4
4
|
export interface Project {
|
|
5
5
|
readonly root: string;
|
|
6
|
+
/** `miakapp.app/1` for an `app:` section, `miakapp.component/1` for `component:`. */
|
|
7
|
+
readonly abi: ReleaseAbi;
|
|
6
8
|
readonly homeId: string;
|
|
7
9
|
readonly issuer: string;
|
|
8
10
|
readonly artifactPath: string;
|
package/dist/project.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"AAGA,OAAO,EAKL,KAAK,UAAU,EACf,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAI7B,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAC3C,eAAO,MAAM,cAAc,sBAAsB,CAAC;AAElD,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,qFAAqF;IACrF,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/C;AAgBD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAYzF;AAuBD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAsDlE;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GACzC,OAAO,CAAC,MAAM,CAAC,CAcjB"}
|
package/dist/project.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isAbsolute, join, normalize, resolve, sep } from 'node:path';
|
|
2
2
|
import { projectError } from './errors.js';
|
|
3
3
|
import { canonicalHttpsUrl } from './internal/http.js';
|
|
4
|
-
import { isHomeId, isRelease } from './internal/names.js';
|
|
4
|
+
import { APP_ABI, COMPONENT_ABI, isHomeId, isRelease, } from './internal/names.js';
|
|
5
5
|
import { canonicalRequirements } from './internal/requirements.js';
|
|
6
6
|
import { parseYaml } from './internal/yaml.js';
|
|
7
7
|
export const PROJECT_FILE = 'miakapp.yaml';
|
|
@@ -36,9 +36,26 @@ export function resolveProjectPath(root, declared, label) {
|
|
|
36
36
|
}
|
|
37
37
|
return join(root, normalized);
|
|
38
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* The trusted shell brokers only state reads and calls to a whole-house
|
|
41
|
+
* application, and never a protocol-reserved `miakapp.*` function. Declaring
|
|
42
|
+
* anything else would publish a manifest the shell silently narrows, so it is
|
|
43
|
+
* refused here instead.
|
|
44
|
+
*/
|
|
45
|
+
function assertAppCeiling(requires) {
|
|
46
|
+
for (const kind of ['event_subscribe', 'event_publish', 'presentation']) {
|
|
47
|
+
if (requires[kind].length > 0) {
|
|
48
|
+
throw projectError(`app.requires.${kind} must be empty: the house shell brokers only state_read and call`, 'Read state and call functions; render media and react to changes from state.');
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
const reserved = requires.call.find((name) => name === 'miakapp.*' || name.startsWith('miakapp.'));
|
|
52
|
+
if (reserved !== undefined) {
|
|
53
|
+
throw projectError(`app.requires.call names the protocol-reserved function ${reserved}`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
39
56
|
export function parseProject(root, source) {
|
|
40
57
|
const document = parseYaml(source);
|
|
41
|
-
exactKeys(document, ['schema', 'home', 'control_plane', 'component', 'coordinator'], PROJECT_FILE);
|
|
58
|
+
exactKeys(document, ['schema', 'home', 'control_plane', 'app', 'component', 'coordinator'], PROJECT_FILE);
|
|
42
59
|
if (document.schema !== PROJECT_SCHEMA) {
|
|
43
60
|
throw projectError(`${PROJECT_FILE} must declare schema: ${PROJECT_SCHEMA}`, 'Run miakapp init to generate a current project file.');
|
|
44
61
|
}
|
|
@@ -48,12 +65,21 @@ export function parseProject(root, source) {
|
|
|
48
65
|
const issuer = canonicalHttpsUrl(document.control_plane, 'control_plane');
|
|
49
66
|
if (issuer.endsWith('/'))
|
|
50
67
|
throw projectError('control_plane must not have a trailing slash');
|
|
51
|
-
const
|
|
52
|
-
|
|
68
|
+
const hasApp = document.app !== undefined && document.app !== null;
|
|
69
|
+
const hasComponent = document.component !== undefined && document.component !== null;
|
|
70
|
+
if (hasApp === hasComponent) {
|
|
71
|
+
throw projectError(`${PROJECT_FILE} must declare exactly one of app (a whole-house application) or component`, 'Use app: for a resident interface you draw yourself; component: for a semantic tree.');
|
|
72
|
+
}
|
|
73
|
+
const section = hasApp ? 'app' : 'component';
|
|
74
|
+
const abi = hasApp ? APP_ABI : COMPONENT_ABI;
|
|
75
|
+
const component = mapping(document[section], section);
|
|
76
|
+
exactKeys(component, ['artifact', 'release', 'requires'], section);
|
|
53
77
|
if (!isRelease(component.release)) {
|
|
54
|
-
throw projectError(
|
|
78
|
+
throw projectError(`${section}.release must be 1..64 UTF-8 bytes without control characters`);
|
|
55
79
|
}
|
|
56
80
|
const requires = canonicalRequirements(component.requires === undefined || component.requires === null ? {} : component.requires);
|
|
81
|
+
if (hasApp)
|
|
82
|
+
assertAppCeiling(requires);
|
|
57
83
|
let coordinatorEntry;
|
|
58
84
|
if (document.coordinator !== undefined && document.coordinator !== null) {
|
|
59
85
|
const coordinator = mapping(document.coordinator, 'coordinator');
|
|
@@ -62,9 +88,10 @@ export function parseProject(root, source) {
|
|
|
62
88
|
}
|
|
63
89
|
return Object.freeze({
|
|
64
90
|
root,
|
|
91
|
+
abi,
|
|
65
92
|
homeId: document.home,
|
|
66
93
|
issuer,
|
|
67
|
-
artifactPath: resolveProjectPath(root, component.artifact,
|
|
94
|
+
artifactPath: resolveProjectPath(root, component.artifact, `${section}.artifact`),
|
|
68
95
|
release: component.release,
|
|
69
96
|
requires,
|
|
70
97
|
coordinatorEntry,
|
package/dist/project.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"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"}
|
package/dist/publication.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type FetchLike } from './internal/http.js';
|
|
2
|
-
import { type Requirements } from './internal/names.js';
|
|
2
|
+
import { type ReleaseAbi, type Requirements } from './internal/names.js';
|
|
3
3
|
import type { Artifact } from './artifact.js';
|
|
4
|
-
export
|
|
4
|
+
export { APP_ABI, COMPONENT_ABI } from './internal/names.js';
|
|
5
5
|
export type UploadStatus = 'awaiting_upload' | 'delivered' | 'finalized';
|
|
6
6
|
export interface UploadCapability {
|
|
7
7
|
readonly uploadId: string;
|
|
@@ -13,7 +13,7 @@ export interface UploadState {
|
|
|
13
13
|
readonly uploadId: string;
|
|
14
14
|
readonly status: UploadStatus;
|
|
15
15
|
readonly release: string;
|
|
16
|
-
readonly abi:
|
|
16
|
+
readonly abi: ReleaseAbi;
|
|
17
17
|
readonly sha256: string;
|
|
18
18
|
readonly size: number;
|
|
19
19
|
readonly requires: Requirements;
|
|
@@ -21,7 +21,7 @@ export interface UploadState {
|
|
|
21
21
|
}
|
|
22
22
|
export interface ComponentRelease {
|
|
23
23
|
readonly release: string;
|
|
24
|
-
readonly abi:
|
|
24
|
+
readonly abi: ReleaseAbi;
|
|
25
25
|
readonly sha256: string;
|
|
26
26
|
readonly size: number;
|
|
27
27
|
readonly requires: Requirements;
|
|
@@ -31,7 +31,7 @@ export interface ComponentPointer {
|
|
|
31
31
|
readonly homeId: string;
|
|
32
32
|
readonly generation: number;
|
|
33
33
|
readonly release: string;
|
|
34
|
-
readonly abi:
|
|
34
|
+
readonly abi: ReleaseAbi;
|
|
35
35
|
readonly url: string;
|
|
36
36
|
readonly sha256: string;
|
|
37
37
|
readonly size: number;
|
|
@@ -48,6 +48,8 @@ export interface PublicationTarget {
|
|
|
48
48
|
}
|
|
49
49
|
export interface UploadRequest {
|
|
50
50
|
readonly release: string;
|
|
51
|
+
/** Defaults to the semantic component ABI for compatibility. */
|
|
52
|
+
readonly abi?: ReleaseAbi;
|
|
51
53
|
readonly requires: Requirements;
|
|
52
54
|
}
|
|
53
55
|
/** Step 1: request one capability bound to the complete publication tuple. */
|
|
@@ -66,6 +68,19 @@ export declare function finalizeUpload(target: PublicationTarget, uploadId: stri
|
|
|
66
68
|
export declare function readUpload(target: PublicationTarget, uploadId: string): Promise<UploadState>;
|
|
67
69
|
/** Reconciliation read for a lost finalization response. */
|
|
68
70
|
export declare function readRelease(target: PublicationTarget, sha256: string): Promise<ComponentRelease | undefined>;
|
|
71
|
+
/**
|
|
72
|
+
* Reads what is live: the generation the pointer holds and the release it
|
|
73
|
+
* points at, or generation 0 and no pointer for a home that never activated.
|
|
74
|
+
*
|
|
75
|
+
* RFC 0004 §13.2 serves this under the same publisher authorization as the
|
|
76
|
+
* other reads. It takes no lock, so the activation that follows remains a
|
|
77
|
+
* compare-and-set and a concurrent publisher still fails with
|
|
78
|
+
* `generation_conflict` instead of being overwritten.
|
|
79
|
+
*/
|
|
80
|
+
export declare function readPointer(target: PublicationTarget): Promise<{
|
|
81
|
+
readonly generation: number;
|
|
82
|
+
readonly pointer: ComponentPointer | null;
|
|
83
|
+
}>;
|
|
69
84
|
/**
|
|
70
85
|
* Step 4: compare-and-set the home pointer to a strictly greater generation.
|
|
71
86
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publication.d.ts","sourceRoot":"","sources":["../src/publication.ts"],"names":[],"mappings":"AAQA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,oBAAoB,CAAC;AAQ5B,OAAO,EASL,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"publication.d.ts","sourceRoot":"","sources":["../src/publication.ts"],"names":[],"mappings":"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"}
|
package/dist/publication.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { artifactError, authorizationError, conflictError, contractError, unknownOutcomeError, } from './errors.js';
|
|
2
2
|
import { MAXIMUM_RESPONSE_BYTES, cancelBody, jsonRequestInit, readBoundedBody, readJsonBody, requestBody, } from './internal/http.js';
|
|
3
3
|
import { boundedString, exactRecord, instant, parseJson, positiveInteger, } from './internal/json.js';
|
|
4
|
-
import { MAXIMUM_ARTIFACT_BYTES, isDigest, isGeneration, isHomeId, isRandomId, isRelease, isUploadToken, REQUIREMENT_KINDS, } from './internal/names.js';
|
|
4
|
+
import { MAXIMUM_ARTIFACT_BYTES, isDigest, isGeneration, isHomeId, isRandomId, isRelease, isReleaseAbi, isUploadToken, REQUIREMENT_KINDS, } from './internal/names.js';
|
|
5
5
|
import { canonicalRequirements, sameRequirements } from './internal/requirements.js';
|
|
6
|
-
|
|
6
|
+
import { COMPONENT_ABI } from './internal/names.js';
|
|
7
|
+
export { APP_ABI, COMPONENT_ABI } from './internal/names.js';
|
|
7
8
|
/** RFC 0004 §13.2 expires an upload capability within fifteen minutes. */
|
|
8
9
|
const MAXIMUM_CAPABILITY_LIFETIME_MS = 900_000;
|
|
9
10
|
function client(target) {
|
|
@@ -156,13 +157,13 @@ function decodeUploadState(value) {
|
|
|
156
157
|
throw contractError('release is invalid');
|
|
157
158
|
if (!isDigest(document.sha256))
|
|
158
159
|
throw contractError('sha256 is not a base64url SHA-256 digest');
|
|
159
|
-
if (document.abi
|
|
160
|
-
throw contractError('abi is not
|
|
160
|
+
if (!isReleaseAbi(document.abi))
|
|
161
|
+
throw contractError('abi is not a supported ABI');
|
|
161
162
|
return Object.freeze({
|
|
162
163
|
uploadId: document.upload_id,
|
|
163
164
|
status,
|
|
164
165
|
release: document.release,
|
|
165
|
-
abi:
|
|
166
|
+
abi: document.abi,
|
|
166
167
|
sha256: document.sha256,
|
|
167
168
|
size: positiveInteger(document.size, MAXIMUM_ARTIFACT_BYTES),
|
|
168
169
|
requires: decodeRequirements(document.requires),
|
|
@@ -186,11 +187,11 @@ function decodeRelease(value) {
|
|
|
186
187
|
throw contractError('release is invalid');
|
|
187
188
|
if (!isDigest(document.sha256))
|
|
188
189
|
throw contractError('sha256 is not a base64url SHA-256 digest');
|
|
189
|
-
if (document.abi
|
|
190
|
-
throw contractError('abi is not
|
|
190
|
+
if (!isReleaseAbi(document.abi))
|
|
191
|
+
throw contractError('abi is not a supported ABI');
|
|
191
192
|
return Object.freeze({
|
|
192
193
|
release: document.release,
|
|
193
|
-
abi:
|
|
194
|
+
abi: document.abi,
|
|
194
195
|
sha256: document.sha256,
|
|
195
196
|
size: positiveInteger(document.size, MAXIMUM_ARTIFACT_BYTES),
|
|
196
197
|
requires: decodeRequirements(document.requires),
|
|
@@ -222,8 +223,8 @@ function decodePointer(value, target) {
|
|
|
222
223
|
throw contractError('Pointer release is invalid');
|
|
223
224
|
if (!isDigest(document.sha256))
|
|
224
225
|
throw contractError('Pointer sha256 is invalid');
|
|
225
|
-
if (document.abi
|
|
226
|
-
throw contractError('Pointer abi is not
|
|
226
|
+
if (!isReleaseAbi(document.abi))
|
|
227
|
+
throw contractError('Pointer abi is not a supported ABI');
|
|
227
228
|
const url = boundedString(document.url, 1, 2_048);
|
|
228
229
|
if (url !== `${target.issuer}/v1/components/${document.sha256}.js`) {
|
|
229
230
|
throw contractError('Pointer url is not the token-free control-plane artifact resource');
|
|
@@ -232,7 +233,7 @@ function decodePointer(value, target) {
|
|
|
232
233
|
homeId: target.homeId,
|
|
233
234
|
generation: document.generation,
|
|
234
235
|
release: document.release,
|
|
235
|
-
abi:
|
|
236
|
+
abi: document.abi,
|
|
236
237
|
url,
|
|
237
238
|
sha256: document.sha256,
|
|
238
239
|
size: positiveInteger(document.size, MAXIMUM_ARTIFACT_BYTES),
|
|
@@ -247,7 +248,7 @@ export async function requestUpload(target, artifact, request) {
|
|
|
247
248
|
}
|
|
248
249
|
const body = requestBody({
|
|
249
250
|
release: request.release,
|
|
250
|
-
abi: COMPONENT_ABI,
|
|
251
|
+
abi: request.abi ?? COMPONENT_ABI,
|
|
251
252
|
sha256: artifact.sha256,
|
|
252
253
|
size: artifact.size,
|
|
253
254
|
requires: request.requires,
|
|
@@ -256,7 +257,10 @@ export async function requestUpload(target, artifact, request) {
|
|
|
256
257
|
if (response.status !== 201) {
|
|
257
258
|
throw failure('Upload capability request', response.status, await readFailure(response), false);
|
|
258
259
|
}
|
|
259
|
-
|
|
260
|
+
// RFC 0004 §13.2: the capability is delivered to the issuer-level
|
|
261
|
+
// `PUT /v1/component-uploads/{uploadId}`, not under the home path that
|
|
262
|
+
// issued it.
|
|
263
|
+
return decodeUploadCapability(await readJsonBody(response), `${target.issuer}/v1/component-uploads/`);
|
|
260
264
|
}
|
|
261
265
|
/**
|
|
262
266
|
* Step 2: deliver the exact bytes once.
|
|
@@ -330,6 +334,40 @@ export async function readRelease(target, sha256) {
|
|
|
330
334
|
}
|
|
331
335
|
return decodeRelease(await readJsonBody(response));
|
|
332
336
|
}
|
|
337
|
+
/**
|
|
338
|
+
* Reads what is live: the generation the pointer holds and the release it
|
|
339
|
+
* points at, or generation 0 and no pointer for a home that never activated.
|
|
340
|
+
*
|
|
341
|
+
* RFC 0004 §13.2 serves this under the same publisher authorization as the
|
|
342
|
+
* other reads. It takes no lock, so the activation that follows remains a
|
|
343
|
+
* compare-and-set and a concurrent publisher still fails with
|
|
344
|
+
* `generation_conflict` instead of being overwritten.
|
|
345
|
+
*/
|
|
346
|
+
export async function readPointer(target) {
|
|
347
|
+
const { fetcher, signal, base } = client(target);
|
|
348
|
+
const response = await fetcher(`${base}/component-pointer`, jsonRequestInit('GET', target.token, undefined, signal));
|
|
349
|
+
if (response.status !== 200) {
|
|
350
|
+
throw failure('Pointer read', response.status, await readFailure(response), false);
|
|
351
|
+
}
|
|
352
|
+
const document = exactRecord(await readJsonBody(response), ['schema', 'generation', 'pointer']);
|
|
353
|
+
if (document.schema !== 'miakapp.component-pointer-state/1') {
|
|
354
|
+
throw contractError('Pointer state has an unsupported schema');
|
|
355
|
+
}
|
|
356
|
+
const generation = document.generation;
|
|
357
|
+
if (typeof generation !== 'number' || !Number.isSafeInteger(generation) || generation < 0) {
|
|
358
|
+
throw contractError('Pointer state generation is not a non-negative safe integer');
|
|
359
|
+
}
|
|
360
|
+
if (document.pointer === null) {
|
|
361
|
+
if (generation !== 0)
|
|
362
|
+
throw contractError('Pointer state has a generation but no pointer');
|
|
363
|
+
return Object.freeze({ generation, pointer: null });
|
|
364
|
+
}
|
|
365
|
+
const pointer = decodePointer(document.pointer, target);
|
|
366
|
+
if (pointer.generation !== generation) {
|
|
367
|
+
throw contractError('Pointer state generation does not match its pointer');
|
|
368
|
+
}
|
|
369
|
+
return Object.freeze({ generation, pointer });
|
|
370
|
+
}
|
|
333
371
|
/**
|
|
334
372
|
* Step 4: compare-and-set the home pointer to a strictly greater generation.
|
|
335
373
|
*
|
|
@@ -369,12 +407,14 @@ export async function activateRelease(target, activation) {
|
|
|
369
407
|
*/
|
|
370
408
|
export async function publish(target, artifact, request) {
|
|
371
409
|
const requires = canonicalRequirements(request.requires);
|
|
372
|
-
const
|
|
410
|
+
const abi = request.abi ?? COMPONENT_ABI;
|
|
411
|
+
const capability = await requestUpload(target, artifact, { release: request.release, abi, requires });
|
|
373
412
|
await deliverArtifact(target, capability, artifact);
|
|
374
413
|
const state = await readUpload(target, capability.uploadId);
|
|
375
414
|
if (state.sha256 !== artifact.sha256
|
|
376
415
|
|| state.size !== artifact.size
|
|
377
416
|
|| state.release !== request.release
|
|
417
|
+
|| state.abi !== abi
|
|
378
418
|
|| !sameRequirements(state.requires, requires)) {
|
|
379
419
|
throw contractError('Upload state does not match the tuple the capability was bound to');
|
|
380
420
|
}
|
|
@@ -384,7 +424,7 @@ export async function publish(target, artifact, request) {
|
|
|
384
424
|
const release = state.status === 'finalized'
|
|
385
425
|
? await requireRelease(target, artifact.sha256)
|
|
386
426
|
: await finalizeUpload(target, capability.uploadId);
|
|
387
|
-
if (release.sha256 !== artifact.sha256 || release.size !== artifact.size) {
|
|
427
|
+
if (release.sha256 !== artifact.sha256 || release.size !== artifact.size || release.abi !== abi) {
|
|
388
428
|
throw contractError('Finalized release does not match the delivered artifact');
|
|
389
429
|
}
|
|
390
430
|
const pointer = await activateRelease(target, {
|
|
@@ -392,7 +432,9 @@ export async function publish(target, artifact, request) {
|
|
|
392
432
|
expectedGeneration: request.expectedGeneration,
|
|
393
433
|
generation: request.generation,
|
|
394
434
|
});
|
|
395
|
-
if (pointer.sha256 !== artifact.sha256
|
|
435
|
+
if (pointer.sha256 !== artifact.sha256
|
|
436
|
+
|| pointer.abi !== abi
|
|
437
|
+
|| !sameRequirements(pointer.requires, requires)) {
|
|
396
438
|
throw contractError('Activated pointer does not match the published release');
|
|
397
439
|
}
|
|
398
440
|
return { release, pointer };
|
package/dist/publication.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publication.js","sourceRoot":"","sources":["../src/publication.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"publication.js","sourceRoot":"","sources":["../src/publication.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface SecretInput extends AsyncIterable<Uint8Array | string> {
|
|
2
|
+
readonly isTTY?: boolean;
|
|
3
|
+
setRawMode?(mode: boolean): unknown;
|
|
4
|
+
on?(event: 'data', listener: (chunk: Uint8Array | string) => void): unknown;
|
|
5
|
+
off?(event: 'data', listener: (chunk: Uint8Array | string) => void): unknown;
|
|
6
|
+
resume?(): unknown;
|
|
7
|
+
pause?(): unknown;
|
|
8
|
+
}
|
|
9
|
+
export declare function readSecret(input: SecretInput, prompt: string, writeError: (text: string) => void): Promise<string>;
|
|
10
|
+
//# sourceMappingURL=terminal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../src/terminal.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,WAAY,SAAQ,aAAa,CAAC,UAAU,GAAG,MAAM,CAAC;IACrE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACpC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC;IAC5E,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC;IAC7E,MAAM,CAAC,IAAI,OAAO,CAAC;IACnB,KAAK,CAAC,IAAI,OAAO,CAAC;CACnB;AAsDD,wBAAsB,UAAU,CAC9B,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GACjC,OAAO,CAAC,MAAM,CAAC,CAMjB"}
|