@bridgething/updater 0.5.2 → 0.7.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/dist/range-serve.d.ts +1 -1
- package/dist/range-serve.d.ts.map +1 -1
- package/dist/range-serve.js +2 -1
- package/dist/range-serve.js.map +1 -1
- package/dist/source.d.ts +1 -0
- package/dist/source.d.ts.map +1 -1
- package/dist/source.js +20 -1
- package/dist/source.js.map +1 -1
- package/package.json +6 -5
package/dist/range-serve.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AckRegistry } from './ack-window.js';
|
|
2
2
|
import type { GatewayDevice } from './gateway-device.js';
|
|
3
|
-
import type
|
|
3
|
+
import { type ArtifactSource } from './source.js';
|
|
4
4
|
export declare function serveOtaAssetRanges(device: GatewayDevice, registry: AckRegistry, zcks: Map<string, ArtifactSource>): () => void;
|
|
5
5
|
//# sourceMappingURL=range-serve.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
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,KAAK,
|
|
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"}
|
package/dist/range-serve.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { streamRangeFragments } from './fragments.js';
|
|
2
|
+
import { readExact } from './source.js';
|
|
2
3
|
const RANGE_INLINE_MAX_BYTES = 16 * 1024;
|
|
3
4
|
const RANGE_CHUNK_BYTES = 64 * 1024;
|
|
4
5
|
export function serveOtaAssetRanges(device, registry, zcks) {
|
|
@@ -19,7 +20,7 @@ export function serveOtaAssetRanges(device, registry, zcks) {
|
|
|
19
20
|
if (streamLen <= RANGE_INLINE_MAX_BYTES) {
|
|
20
21
|
const pieces = [];
|
|
21
22
|
for (const part of parts)
|
|
22
|
-
pieces.push(await source
|
|
23
|
+
pieces.push(await readExact(source, part.start, part.length));
|
|
23
24
|
await handle.respond({ totalSize: source.size, parts, body: { type: 'inline', data: concat(pieces) } });
|
|
24
25
|
return;
|
|
25
26
|
}
|
package/dist/range-serve.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"range-serve.js","sourceRoot":"","sources":["../src/range-serve.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"range-serve.js","sourceRoot":"","sources":["../src/range-serve.ts"],"names":[],"mappings":"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"}
|
package/dist/source.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export type ArtifactSource = {
|
|
|
3
3
|
read(offset: number, length: number): Promise<Uint8Array>;
|
|
4
4
|
close?(): Promise<void> | void;
|
|
5
5
|
};
|
|
6
|
+
export declare function readExact(source: ArtifactSource, offset: number, length: number): Promise<Uint8Array>;
|
|
6
7
|
export declare function bytesArtifactSource(bytes: Uint8Array): ArtifactSource;
|
|
7
8
|
export declare function blobArtifactSource(blob: Blob): ArtifactSource;
|
|
8
9
|
export declare function sha256Hex(source: ArtifactSource): Promise<string>;
|
package/dist/source.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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,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"}
|
|
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
CHANGED
|
@@ -1,3 +1,22 @@
|
|
|
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
|
+
}
|
|
1
20
|
export function bytesArtifactSource(bytes) {
|
|
2
21
|
return {
|
|
3
22
|
size: bytes.byteLength,
|
|
@@ -16,7 +35,7 @@ export function blobArtifactSource(blob) {
|
|
|
16
35
|
};
|
|
17
36
|
}
|
|
18
37
|
export async function sha256Hex(source) {
|
|
19
|
-
const bytes = await source
|
|
38
|
+
const bytes = await readExact(source, 0, source.size);
|
|
20
39
|
const digest = await crypto.subtle.digest('SHA-256', toArrayBuffer(bytes));
|
|
21
40
|
return Array.from(new Uint8Array(digest))
|
|
22
41
|
.map(b => b.toString(16).padStart(2, '0'))
|
package/dist/source.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source.js","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,mBAAmB,CAAC,KAAiB;IACnD,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,UAAU;QACtB,IAAI,CAAC,MAAM,EAAE,MAAM;YACjB,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;QAClE,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAU;IAC3C,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;YAClD,OAAO,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QACnD,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAsB;IACpD,MAAM,KAAK,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"source.js","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bridgething/updater",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Transport-agnostic OTA updater for bridgething: library + bunx/npx CLI.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Joey Eamigh <55670930+JoeyEamigh@users.noreply.github.com> (https://github.com/JoeyEamigh)",
|
|
@@ -51,12 +51,13 @@
|
|
|
51
51
|
"build": "tsc -p tsconfig.build.json && chmod +x dist/cli.js",
|
|
52
52
|
"dev": "tsc -p tsconfig.build.json --watch",
|
|
53
53
|
"typecheck": "tsc --noEmit",
|
|
54
|
-
"lint": "eslint ."
|
|
54
|
+
"lint": "eslint .",
|
|
55
|
+
"test": "bun test"
|
|
55
56
|
},
|
|
56
57
|
"dependencies": {
|
|
57
|
-
"@bridgething/adapter-network": "0.
|
|
58
|
-
"@bridgething/gateway": "0.
|
|
59
|
-
"@bridgething/lib": "0.
|
|
58
|
+
"@bridgething/adapter-network": "0.7.0",
|
|
59
|
+
"@bridgething/gateway": "0.7.0",
|
|
60
|
+
"@bridgething/lib": "0.7.0"
|
|
60
61
|
},
|
|
61
62
|
"peerDependencies": {
|
|
62
63
|
"typescript": "^6.0.3"
|