@bridgething/updater 0.7.0 → 0.9.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 (48) hide show
  1. package/README.md +17 -76
  2. package/dist/cli.js +73 -196
  3. package/dist/cli.js.map +1 -1
  4. package/package.json +5 -30
  5. package/dist/ack-window.d.ts +0 -38
  6. package/dist/ack-window.d.ts.map +0 -1
  7. package/dist/ack-window.js +0 -89
  8. package/dist/ack-window.js.map +0 -1
  9. package/dist/driver.d.ts +0 -57
  10. package/dist/driver.d.ts.map +0 -1
  11. package/dist/driver.js +0 -245
  12. package/dist/driver.js.map +0 -1
  13. package/dist/fragments.d.ts +0 -29
  14. package/dist/fragments.d.ts.map +0 -1
  15. package/dist/fragments.js +0 -45
  16. package/dist/fragments.js.map +0 -1
  17. package/dist/gateway-device.d.ts +0 -3
  18. package/dist/gateway-device.d.ts.map +0 -1
  19. package/dist/gateway-device.js +0 -2
  20. package/dist/gateway-device.js.map +0 -1
  21. package/dist/index.d.ts +0 -12
  22. package/dist/index.d.ts.map +0 -1
  23. package/dist/index.js +0 -6
  24. package/dist/index.js.map +0 -1
  25. package/dist/manifest.d.ts +0 -75
  26. package/dist/manifest.d.ts.map +0 -1
  27. package/dist/manifest.js +0 -69
  28. package/dist/manifest.js.map +0 -1
  29. package/dist/node.d.ts +0 -3
  30. package/dist/node.d.ts.map +0 -1
  31. package/dist/node.js +0 -15
  32. package/dist/node.js.map +0 -1
  33. package/dist/range-serve.d.ts +0 -5
  34. package/dist/range-serve.d.ts.map +0 -1
  35. package/dist/range-serve.js +0 -59
  36. package/dist/range-serve.js.map +0 -1
  37. package/dist/source.d.ts +0 -10
  38. package/dist/source.d.ts.map +0 -1
  39. package/dist/source.js +0 -52
  40. package/dist/source.js.map +0 -1
  41. package/dist/web-serial.d.ts +0 -2
  42. package/dist/web-serial.d.ts.map +0 -1
  43. package/dist/web-serial.js +0 -2
  44. package/dist/web-serial.js.map +0 -1
  45. package/dist/websocket.d.ts +0 -2
  46. package/dist/websocket.d.ts.map +0 -1
  47. package/dist/websocket.js +0 -2
  48. package/dist/websocket.js.map +0 -1
package/dist/manifest.js DELETED
@@ -1,69 +0,0 @@
1
- export class ManifestFetchError extends Error {
2
- status;
3
- constructor(message, status) {
4
- super(message);
5
- this.status = status;
6
- this.name = 'ManifestFetchError';
7
- }
8
- }
9
- export async function fetchManifest(rootURL) {
10
- const response = await fetch(`${rootURL}/manifest.json`, { cache: 'no-store' });
11
- if (!response.ok) {
12
- throw new ManifestFetchError(`manifest fetch returned HTTP ${response.status}`, response.status);
13
- }
14
- const raw = (await response.json());
15
- return {
16
- manifestVersion: raw.manifest_version,
17
- updatedAt: raw.updated_at,
18
- channels: Object.fromEntries(Object.entries(raw.channels).map(([id, c]) => [
19
- id,
20
- { name: c.name, stability: c.stability, isDefault: c.default, latest: c.latest, releases: c.releases },
21
- ])),
22
- releases: Object.fromEntries(Object.entries(raw.releases).map(([version, r]) => [
23
- version,
24
- {
25
- version: r.version,
26
- channel: r.channel,
27
- yanked: r.yanked,
28
- deprecated: r.deprecated,
29
- builtinWebapps: r.builtin_webapps ?? {},
30
- artifacts: r.artifacts,
31
- },
32
- ])),
33
- };
34
- }
35
- export function parseCompositeVersion(raw) {
36
- const plus = raw.indexOf('+');
37
- if (plus < 0)
38
- return null;
39
- const daemon = raw.slice(0, plus);
40
- const suffix = raw.slice(plus + 1);
41
- const prefix = 'image.';
42
- if (!suffix.startsWith(prefix))
43
- return null;
44
- const image = suffix.slice(prefix.length);
45
- if (daemon.length === 0 || image.length === 0)
46
- return null;
47
- return { daemon, image };
48
- }
49
- export function imageVariantForChannel(channel) {
50
- return channel === 'dev' ? 'dev' : 'prod';
51
- }
52
- export function otaArtifactUrls(opts) {
53
- const imageName = `bridgething-${opts.imageVariant}-image`;
54
- const imagesDir = `${opts.rootURL}/images/${opts.channel}/${opts.imageVersion}`;
55
- return {
56
- daemonBinary: `${opts.rootURL}/daemon/${opts.channel}/${opts.daemonVersion}/bridgething`,
57
- daemonBinaryZst: `${opts.rootURL}/daemon/${opts.channel}/${opts.daemonVersion}/bridgething.zst`,
58
- imageSwu: `${imagesDir}/${imageName}.swu`,
59
- imageZck: `${imagesDir}/${imageName}.zck`,
60
- imageBootZck: `${imagesDir}/${imageName}-boot.zck`,
61
- };
62
- }
63
- export function daemonPatchUrl(opts) {
64
- return `${opts.rootURL}/daemon/${opts.channel}/${opts.toVersion}/patches/from-${opts.fromVersion}.zst`;
65
- }
66
- export function builtinWebappUrl(opts) {
67
- return `${opts.rootURL}/webapps/${opts.channel}/${opts.name}/${opts.version}/${opts.name}.zip`;
68
- }
69
- //# sourceMappingURL=manifest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
package/dist/node.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import type { ArtifactSource } from './source.js';
2
- export declare function fileArtifactSource(path: string): Promise<ArtifactSource>;
3
- //# sourceMappingURL=node.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAY9E"}
package/dist/node.js DELETED
@@ -1,15 +0,0 @@
1
- import { open } from 'node:fs/promises';
2
- export async function fileArtifactSource(path) {
3
- const handle = await open(path, 'r');
4
- const stat = await handle.stat();
5
- return {
6
- size: stat.size,
7
- async read(offset, length) {
8
- const buf = new Uint8Array(length);
9
- const { bytesRead } = await handle.read(buf, 0, length, offset);
10
- return buf.subarray(0, bytesRead);
11
- },
12
- close: () => handle.close(),
13
- };
14
- }
15
- //# sourceMappingURL=node.js.map
package/dist/node.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAIxC,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAY;IACnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IACjC,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM;YACvB,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;YACnC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAChE,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACpC,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE;KAC5B,CAAC;AACJ,CAAC"}
@@ -1,5 +0,0 @@
1
- import type { AckRegistry } from './ack-window.js';
2
- import type { GatewayDevice } from './gateway-device.js';
3
- import { type ArtifactSource } from './source.js';
4
- export declare function serveOtaAssetRanges(device: GatewayDevice, registry: AckRegistry, zcks: Map<string, ArtifactSource>): () => void;
5
- //# sourceMappingURL=range-serve.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"range-serve.d.ts","sourceRoot":"","sources":["../src/range-serve.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAK7D,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,WAAW,EACrB,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,GAChC,MAAM,IAAI,CA8CZ"}
@@ -1,59 +0,0 @@
1
- import { streamRangeFragments } from './fragments.js';
2
- import { readExact } from './source.js';
3
- const RANGE_INLINE_MAX_BYTES = 16 * 1024;
4
- const RANGE_CHUNK_BYTES = 64 * 1024;
5
- export function serveOtaAssetRanges(device, registry, zcks) {
6
- return device.system.onOtaAssetRange(async (handle, req) => {
7
- const source = zcks.get(req.asset);
8
- if (!source) {
9
- await handle.respondErr({ reason: `no local .zck for asset ${req.asset}` });
10
- return;
11
- }
12
- for (const r of req.ranges) {
13
- if (r.start + r.length > source.size) {
14
- await handle.respondErr({ reason: `range ${r.start}+${r.length} exceeds zck size ${source.size}` });
15
- return;
16
- }
17
- }
18
- const parts = req.ranges.map(r => ({ start: r.start, length: r.length }));
19
- const streamLen = parts.reduce((sum, p) => sum + p.length, 0);
20
- if (streamLen <= RANGE_INLINE_MAX_BYTES) {
21
- const pieces = [];
22
- for (const part of parts)
23
- pieces.push(await readExact(source, part.start, part.length));
24
- await handle.respond({ totalSize: source.size, parts, body: { type: 'inline', data: concat(pieces) } });
25
- return;
26
- }
27
- await handle.respond({
28
- totalSize: source.size,
29
- parts,
30
- body: { type: 'stream', data: { id: handle.requestId, totalSize: streamLen, sha256: null } },
31
- });
32
- const window = registry.register(handle.requestId, 0);
33
- try {
34
- await streamRangeFragments({
35
- device,
36
- transferId: handle.requestId,
37
- source,
38
- ranges: parts,
39
- chunkSize: RANGE_CHUNK_BYTES,
40
- priority: 'background',
41
- window,
42
- });
43
- }
44
- finally {
45
- registry.deregister(handle.requestId);
46
- }
47
- });
48
- }
49
- function concat(pieces) {
50
- const total = pieces.reduce((sum, p) => sum + p.byteLength, 0);
51
- const out = new Uint8Array(total);
52
- let offset = 0;
53
- for (const piece of pieces) {
54
- out.set(piece, offset);
55
- offset += piece.byteLength;
56
- }
57
- return out;
58
- }
59
- //# sourceMappingURL=range-serve.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"range-serve.js","sourceRoot":"","sources":["../src/range-serve.ts"],"names":[],"mappings":"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"}
package/dist/source.d.ts DELETED
@@ -1,10 +0,0 @@
1
- export type ArtifactSource = {
2
- readonly size: number;
3
- read(offset: number, length: number): Promise<Uint8Array>;
4
- close?(): Promise<void> | void;
5
- };
6
- export declare function readExact(source: ArtifactSource, offset: number, length: number): Promise<Uint8Array>;
7
- export declare function bytesArtifactSource(bytes: Uint8Array): ArtifactSource;
8
- export declare function blobArtifactSource(blob: Blob): ArtifactSource;
9
- export declare function sha256Hex(source: ArtifactSource): Promise<string>;
10
- //# sourceMappingURL=source.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1D,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,wBAAsB,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAiB3G;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,cAAc,CAOrE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,cAAc,CAQ7D;AAED,wBAAsB,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAMvE"}
package/dist/source.js DELETED
@@ -1,52 +0,0 @@
1
- export async function readExact(source, offset, length) {
2
- const first = await source.read(offset, length);
3
- if (first.byteLength === length)
4
- return first;
5
- if (first.byteLength === 0)
6
- throw new Error(`unexpected EOF at offset ${offset}, wanted ${length} bytes`);
7
- const out = new Uint8Array(length);
8
- out.set(first, 0);
9
- let got = first.byteLength;
10
- while (got < length) {
11
- const chunk = await source.read(offset + got, length - got);
12
- if (chunk.byteLength === 0) {
13
- throw new Error(`unexpected EOF at offset ${offset + got}, wanted ${length} bytes from ${offset}`);
14
- }
15
- out.set(chunk, got);
16
- got += chunk.byteLength;
17
- }
18
- return out;
19
- }
20
- export function bytesArtifactSource(bytes) {
21
- return {
22
- size: bytes.byteLength,
23
- read(offset, length) {
24
- return Promise.resolve(bytes.subarray(offset, offset + length));
25
- },
26
- };
27
- }
28
- export function blobArtifactSource(blob) {
29
- return {
30
- size: blob.size,
31
- async read(offset, length) {
32
- const slice = blob.slice(offset, offset + length);
33
- return new Uint8Array(await slice.arrayBuffer());
34
- },
35
- };
36
- }
37
- export async function sha256Hex(source) {
38
- const bytes = await readExact(source, 0, source.size);
39
- const digest = await crypto.subtle.digest('SHA-256', toArrayBuffer(bytes));
40
- return Array.from(new Uint8Array(digest))
41
- .map(b => b.toString(16).padStart(2, '0'))
42
- .join('');
43
- }
44
- function toArrayBuffer(bytes) {
45
- if (bytes.buffer instanceof ArrayBuffer && bytes.byteOffset === 0 && bytes.byteLength === bytes.buffer.byteLength) {
46
- return bytes.buffer;
47
- }
48
- const out = new ArrayBuffer(bytes.byteLength);
49
- new Uint8Array(out).set(bytes);
50
- return out;
51
- }
52
- //# sourceMappingURL=source.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"source.js","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export { WebSerialAdapter, type WebSerialAdapterOptions } from '@bridgething/gateway';
2
- //# sourceMappingURL=web-serial.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"web-serial.d.ts","sourceRoot":"","sources":["../src/web-serial.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1,2 +0,0 @@
1
- export { WebSerialAdapter } from '@bridgething/gateway';
2
- //# sourceMappingURL=web-serial.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"web-serial.js","sourceRoot":"","sources":["../src/web-serial.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAgC,MAAM,sBAAsB,CAAC"}
@@ -1,2 +0,0 @@
1
- export { NetworkAdapter, StaticDiscoverer, type Discoverer, type DiscoveryListener, type Endpoint, type NetworkAdapterOptions, } from '@bridgething/adapter-network';
2
- //# sourceMappingURL=websocket.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../src/websocket.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,KAAK,qBAAqB,GAC3B,MAAM,8BAA8B,CAAC"}
package/dist/websocket.js DELETED
@@ -1,2 +0,0 @@
1
- export { NetworkAdapter, StaticDiscoverer, } from '@bridgething/adapter-network';
2
- //# sourceMappingURL=websocket.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../src/websocket.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,gBAAgB,GAKjB,MAAM,8BAA8B,CAAC"}