@super-protocol/sdk-js 3.4.0-beta.12 → 3.4.0-beta.13
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/cjs/crypto/types.d.ts +0 -4
- package/dist/cjs/crypto/utils.d.ts +2 -3
- package/dist/cjs/crypto/utils.js +46 -26
- package/dist/cjs/crypto/utils.spec.d.ts +1 -0
- package/dist/cjs/crypto/utils.spec.js +176 -0
- package/dist/mjs/crypto/types.d.ts +0 -4
- package/dist/mjs/crypto/utils.d.ts +2 -3
- package/dist/mjs/crypto/utils.js +46 -26
- package/dist/mjs/crypto/utils.spec.d.ts +1 -0
- package/dist/mjs/crypto/utils.spec.js +174 -0
- package/package.json +2 -2
|
@@ -8,7 +8,3 @@ export type AsymmetricKeys = {
|
|
|
8
8
|
};
|
|
9
9
|
export type SymmetricKey = Buffer;
|
|
10
10
|
export type CryptoKeyType<T extends CryptoAlgorithm> = T extends CryptoAlgorithm.ECIES ? AsymmetricKeys : T extends CryptoAlgorithm.AES ? SymmetricKey : never;
|
|
11
|
-
export interface DirHashContents {
|
|
12
|
-
entries: Record<string, string>;
|
|
13
|
-
hash: string;
|
|
14
|
-
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { DirHashContents } from './types.js';
|
|
1
|
+
import { DirHash, FileInfo } from '@super-protocol/dto-js';
|
|
3
2
|
/**
|
|
4
3
|
* Here would be better to check cipher type using
|
|
5
4
|
* ```
|
|
@@ -13,4 +12,4 @@ export declare const isOCB: (cipher: string) => boolean;
|
|
|
13
12
|
export declare const isECB: (cipher: string) => boolean;
|
|
14
13
|
export declare const isRC4: (cipher: string) => boolean;
|
|
15
14
|
export declare const isAuthTagRequired: (cipherName: string) => boolean;
|
|
16
|
-
export declare const getDirHashFileContents: (
|
|
15
|
+
export declare const getDirHashFileContents: (files: Record<string, FileInfo>) => Promise<DirHash>;
|
package/dist/cjs/crypto/utils.js
CHANGED
|
@@ -27,47 +27,67 @@ const isAuthTagRequired = (cipherName) => {
|
|
|
27
27
|
return (0, exports.isCCM)(cipherName) || (0, exports.isGCM)(cipherName) || (0, exports.isOCB)(cipherName);
|
|
28
28
|
};
|
|
29
29
|
exports.isAuthTagRequired = isAuthTagRequired;
|
|
30
|
-
const getDirHashFileContents = async (
|
|
31
|
-
const
|
|
32
|
-
if (
|
|
33
|
-
|
|
34
|
-
if (match) {
|
|
35
|
-
return { key, algo: match[1], hash: match[2], encoding: dto_js_1.Encoding.hex, encodedHash: hash };
|
|
36
|
-
}
|
|
30
|
+
const getDirHashFileContents = async (files) => {
|
|
31
|
+
const sortedFiles = Object.entries(files).map(([path, info]) => {
|
|
32
|
+
if (path.length === 0) {
|
|
33
|
+
throw new Error('Filename cannot be empty');
|
|
37
34
|
}
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
const subResult = {
|
|
36
|
+
filename: path,
|
|
37
|
+
encoding: dto_js_1.Encoding.hex,
|
|
38
|
+
size: info.size,
|
|
39
|
+
};
|
|
40
|
+
if (typeof info.hash === 'string') {
|
|
41
|
+
const match = info.hash.match(/^([^:]+):(.+)$/);
|
|
42
|
+
if (match?.length !== 3) {
|
|
43
|
+
throw new Error(`Invalid hash format for filename ${path}: ${info.hash}`);
|
|
44
|
+
}
|
|
40
45
|
return {
|
|
41
|
-
|
|
42
|
-
algo:
|
|
43
|
-
hash:
|
|
44
|
-
|
|
45
|
-
encodedHash: `${hash.algo}:${hashHex}`,
|
|
46
|
+
...subResult,
|
|
47
|
+
algo: match[1],
|
|
48
|
+
hash: match[2],
|
|
49
|
+
encodedHash: info.hash,
|
|
46
50
|
};
|
|
47
51
|
}
|
|
48
|
-
|
|
52
|
+
const hashHex = Buffer.from(info.hash.hash, info.hash.encoding).toString(dto_js_1.Encoding.hex);
|
|
53
|
+
return {
|
|
54
|
+
...subResult,
|
|
55
|
+
algo: info.hash.algo,
|
|
56
|
+
hash: info.hash.hash,
|
|
57
|
+
encodedHash: `${info.hash.algo}:${hashHex}`,
|
|
58
|
+
};
|
|
49
59
|
});
|
|
50
60
|
let buffer = Buffer.alloc(0);
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
sortedEntries.forEach((hash) => {
|
|
61
|
+
let totalSize = 0;
|
|
62
|
+
sortedFiles.sort((a, b) => preparedValue(a).localeCompare(preparedValue(b)));
|
|
63
|
+
sortedFiles.forEach((info) => {
|
|
55
64
|
buffer = Buffer.concat([
|
|
56
65
|
buffer,
|
|
57
|
-
Buffer.from(
|
|
58
|
-
Buffer.from(
|
|
66
|
+
Buffer.from(info.filename, 'utf-8'),
|
|
67
|
+
Buffer.from(info.hash, info.encoding),
|
|
59
68
|
]);
|
|
69
|
+
totalSize += info.size;
|
|
60
70
|
});
|
|
61
|
-
const
|
|
71
|
+
const rootHash = await Crypto_js_1.default.createHash(buffer, {
|
|
62
72
|
algo: dto_js_1.HashAlgorithm.SHA256,
|
|
63
73
|
encoding: dto_js_1.Encoding.hex,
|
|
64
74
|
});
|
|
65
75
|
return {
|
|
66
|
-
entries: Object.fromEntries(
|
|
67
|
-
return [
|
|
76
|
+
entries: Object.fromEntries(sortedFiles.map((info) => {
|
|
77
|
+
return [
|
|
78
|
+
info.filename,
|
|
79
|
+
{
|
|
80
|
+
hash: info.encodedHash,
|
|
81
|
+
size: info.size,
|
|
82
|
+
is_prefix: false,
|
|
83
|
+
},
|
|
84
|
+
];
|
|
68
85
|
})),
|
|
69
|
-
hash: `${
|
|
86
|
+
hash: `${rootHash.algo}:${rootHash.hash}`,
|
|
87
|
+
size: totalSize,
|
|
88
|
+
version: 1,
|
|
70
89
|
};
|
|
71
90
|
};
|
|
72
91
|
exports.getDirHashFileContents = getDirHashFileContents;
|
|
73
|
-
|
|
92
|
+
const preparedValue = (value) => `${value.hash}:${value.filename}`;
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1EQUFvRjtBQUNwRiw0REFBaUM7QUFFakM7Ozs7OztHQU1HO0FBQ0ksTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFjLEVBQVcsRUFBRSxDQUMvQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sS0FBSyxtQkFBbUIsQ0FBQztBQUQzQyxRQUFBLEtBQUssU0FDc0M7QUFDakQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFjLEVBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFBekQsUUFBQSxLQUFLLFNBQW9EO0FBQy9ELE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBYyxFQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQXpELFFBQUEsS0FBSyxTQUFvRDtBQUMvRCxNQUFNLEtBQUssR0FBRyxDQUFDLE1BQWMsRUFBVyxFQUFFLENBQy9DLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxLQUFLLFNBQVMsSUFBSSxNQUFNLEtBQUssVUFBVSxDQUFDO0FBRDFELFFBQUEsS0FBSyxTQUNxRDtBQUNoRSxNQUFNLEtBQUssR0FBRyxDQUFDLE1BQWMsRUFBVyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUExRCxRQUFBLEtBQUssU0FBcUQ7QUFFaEUsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLFVBQWtCLEVBQVcsRUFBRTtJQUMvRCxPQUFPLElBQUEsYUFBSyxFQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUEsYUFBSyxFQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUEsYUFBSyxFQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3JFLENBQUMsQ0FBQztBQUZXLFFBQUEsaUJBQWlCLHFCQUU1QjtBQUVLLE1BQU0sc0JBQXNCLEdBQUcsS0FBSyxFQUFFLEtBQStCLEVBQW9CLEVBQUU7SUFDaEcsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO1FBQzdELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHO1lBQ2hCLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLGlCQUFRLENBQUMsR0FBRztZQUN0QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7U0FDaEIsQ0FBQztRQUVGLElBQUksT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDaEQsSUFBSSxLQUFLLEVBQUUsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDNUUsQ0FBQztZQUVELE9BQU87Z0JBQ0wsR0FBRyxTQUFTO2dCQUNaLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNkLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNkLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSTthQUN2QixDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsaUJBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV2RixPQUFPO1lBQ0wsR0FBRyxTQUFTO1lBQ1osSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUNwQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQ3BCLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLE9BQU8sRUFBRTtTQUM1QyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdCLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQztJQUVsQixXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTdFLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUMzQixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUNyQixNQUFNO1lBQ04sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQztZQUNuQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUN0QyxDQUFDLENBQUM7UUFDSCxTQUFTLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQztJQUN6QixDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sUUFBUSxHQUFHLE1BQU0sbUJBQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO1FBQy9DLElBQUksRUFBRSxzQkFBYSxDQUFDLE1BQU07UUFDMUIsUUFBUSxFQUFFLGlCQUFRLENBQUMsR0FBRztLQUN2QixDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0wsT0FBTyxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQ3pCLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN2QixPQUFPO2dCQUNMLElBQUksQ0FBQyxRQUFRO2dCQUNiO29CQUNFLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVztvQkFDdEIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO29CQUNmLFNBQVMsRUFBRSxLQUFLO2lCQUNqQjthQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSDtRQUNELElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLElBQUksRUFBRTtRQUN6QyxJQUFJLEVBQUUsU0FBUztRQUNmLE9BQU8sRUFBRSxDQUFDO0tBQ1gsQ0FBQztBQUNKLENBQUMsQ0FBQztBQXhFVyxRQUFBLHNCQUFzQiwwQkF3RWpDO0FBRUYsTUFBTSxhQUFhLEdBQUcsQ0FBQyxLQUF5QyxFQUFVLEVBQUUsQ0FDMUUsR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const utils_js_1 = require("./utils.js");
|
|
4
|
+
const dto_js_1 = require("@super-protocol/dto-js");
|
|
5
|
+
describe('getDirHashFileContents', () => {
|
|
6
|
+
it('should correctly process mixed hash formats and return expected structure', async () => {
|
|
7
|
+
const input = {
|
|
8
|
+
'readme.md': {
|
|
9
|
+
hash: 'sha256:9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08',
|
|
10
|
+
size: 1,
|
|
11
|
+
is_prefix: false,
|
|
12
|
+
},
|
|
13
|
+
'test1.gguf': {
|
|
14
|
+
hash: 'sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855',
|
|
15
|
+
size: 2,
|
|
16
|
+
is_prefix: true,
|
|
17
|
+
},
|
|
18
|
+
'test2.gguf': {
|
|
19
|
+
hash: {
|
|
20
|
+
algo: dto_js_1.HashAlgorithm.SHA256,
|
|
21
|
+
hash: 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855',
|
|
22
|
+
encoding: dto_js_1.Encoding.hex,
|
|
23
|
+
},
|
|
24
|
+
size: 4,
|
|
25
|
+
},
|
|
26
|
+
'test3.gguf': {
|
|
27
|
+
hash: {
|
|
28
|
+
algo: dto_js_1.HashAlgorithm.SHA256,
|
|
29
|
+
hash: 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855',
|
|
30
|
+
encoding: dto_js_1.Encoding.hex,
|
|
31
|
+
},
|
|
32
|
+
size: 3,
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
const expectedOutput = {
|
|
36
|
+
entries: {
|
|
37
|
+
'readme.md': {
|
|
38
|
+
hash: input['readme.md'].hash,
|
|
39
|
+
size: input['readme.md'].size,
|
|
40
|
+
is_prefix: false,
|
|
41
|
+
},
|
|
42
|
+
'test1.gguf': {
|
|
43
|
+
hash: input['test1.gguf'].hash,
|
|
44
|
+
size: input['test1.gguf'].size,
|
|
45
|
+
is_prefix: false,
|
|
46
|
+
},
|
|
47
|
+
'test2.gguf': {
|
|
48
|
+
hash: `${input['test2.gguf'].hash.algo}:${input['test2.gguf'].hash.hash}`,
|
|
49
|
+
size: input['test2.gguf'].size,
|
|
50
|
+
is_prefix: false,
|
|
51
|
+
},
|
|
52
|
+
'test3.gguf': {
|
|
53
|
+
hash: `${input['test3.gguf'].hash.algo}:${input['test3.gguf'].hash.hash}`,
|
|
54
|
+
size: input['test3.gguf'].size,
|
|
55
|
+
is_prefix: false,
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
hash: 'sha256:c28c1da5dcdfd82a6f05c9faa813fea7a7664d44c7721123e24507655f32d2c4',
|
|
59
|
+
version: 1,
|
|
60
|
+
size: Object.values(input).reduce((acc, cur) => {
|
|
61
|
+
return acc + cur.size;
|
|
62
|
+
}, 0),
|
|
63
|
+
};
|
|
64
|
+
const result = await (0, utils_js_1.getDirHashFileContents)(input);
|
|
65
|
+
expect(result).toEqual(expectedOutput);
|
|
66
|
+
expect(Object.keys(result.entries).length).toBe(4);
|
|
67
|
+
Object.values(result.entries).forEach((item) => {
|
|
68
|
+
expect(item.hash).toMatch(/^sha256:[a-f0-9]{64}$/);
|
|
69
|
+
expect(item.size).toBeGreaterThanOrEqual(0);
|
|
70
|
+
expect(item.is_prefix).toBeDefined();
|
|
71
|
+
});
|
|
72
|
+
const sortedHashes = Object.values(result.entries).sort();
|
|
73
|
+
expect(Object.values(result.entries)).toEqual(sortedHashes);
|
|
74
|
+
});
|
|
75
|
+
it('use .dirhashes as input which was getting after execution ./spctl files upload command', async () => {
|
|
76
|
+
const inputRaw = {
|
|
77
|
+
hash: 'sha256:e11c89b85cce479c7aa1d54f033416b05ae260aef8759fa63f7a08888cacda5e',
|
|
78
|
+
size: 315747,
|
|
79
|
+
entries: {
|
|
80
|
+
'stg-95-text-gen-webui.configuration.json': {
|
|
81
|
+
hash: 'sha256:72e4cc706580e622422cbaf6e5cfe186501d6fe1667c5dc901dac862f7824ed7',
|
|
82
|
+
size: 47326,
|
|
83
|
+
is_prefix: false,
|
|
84
|
+
},
|
|
85
|
+
'input-model-test.json': {
|
|
86
|
+
hash: 'sha256:173e589350533bf41548487594c593b03e747280ca11b98f3d2ab6ac4cecc9cc',
|
|
87
|
+
size: 4263,
|
|
88
|
+
is_prefix: false,
|
|
89
|
+
},
|
|
90
|
+
'stg-96-comfy-ui.configuration.json': {
|
|
91
|
+
hash: 'sha256:69398bf33df2e7884ad605e0d02a827ef47e3b73d75bd145318714b0437b9200',
|
|
92
|
+
size: 13052,
|
|
93
|
+
is_prefix: false,
|
|
94
|
+
},
|
|
95
|
+
'testnet-57-solution-comfyui.configuration.json': {
|
|
96
|
+
hash: 'sha256:8a3504f6d19a5ce7db351f142532d7828a90b8c2c74b4734128641b387a6b72d',
|
|
97
|
+
size: 10797,
|
|
98
|
+
is_prefix: false,
|
|
99
|
+
},
|
|
100
|
+
'input-model-test2.json': {
|
|
101
|
+
hash: 'sha256:bc622b87205f0ed76a6d2133a163d4e0b6a7768ba14370fc569a1da40f90b9ec',
|
|
102
|
+
size: 4468,
|
|
103
|
+
is_prefix: false,
|
|
104
|
+
},
|
|
105
|
+
'testnet-57-solution-comfyui-origin.configuration.json': {
|
|
106
|
+
hash: 'sha256:1ef8bc1d5704e62ab0af29348713f3a5031238f2ce4208df842a4231979901c1',
|
|
107
|
+
size: 10796,
|
|
108
|
+
is_prefix: false,
|
|
109
|
+
},
|
|
110
|
+
'input-model-test4.json': {
|
|
111
|
+
hash: 'sha256:d3d738eb08571430e7013a05c3b71b827663edd611a76a20dba1428d47d71c4b',
|
|
112
|
+
size: 4639,
|
|
113
|
+
is_prefix: false,
|
|
114
|
+
},
|
|
115
|
+
'input-test.json': {
|
|
116
|
+
hash: 'sha256:6382aeeedc6009a0ffdeba8ad4d7c26327cdf2526804604906b3df79a324e79d',
|
|
117
|
+
size: 4246,
|
|
118
|
+
is_prefix: false,
|
|
119
|
+
},
|
|
120
|
+
'stg-53-solution.configuration.json': {
|
|
121
|
+
hash: 'sha256:f62c975536328c55135ccc6713ea20dae41c08adc6acb75dda8a757ccd9caeaa',
|
|
122
|
+
size: 1056,
|
|
123
|
+
is_prefix: false,
|
|
124
|
+
},
|
|
125
|
+
'input-model-test3.json': {
|
|
126
|
+
hash: 'sha256:579864e52b017bebb6f9a5669ab01d3adcf569f82cc4fdcfddcf92a3224ede44',
|
|
127
|
+
size: 4470,
|
|
128
|
+
is_prefix: false,
|
|
129
|
+
},
|
|
130
|
+
'stg-95-text-gen-webui-origin.configuration.json': {
|
|
131
|
+
hash: 'sha256:8ec037c664c3f54bcd97caa35147a3c6437ad2170dcf270b1fc1d1f6eb087d8a',
|
|
132
|
+
size: 47023,
|
|
133
|
+
is_prefix: false,
|
|
134
|
+
},
|
|
135
|
+
'testnet-56-solution-origin-tgwui.configuration.json': {
|
|
136
|
+
hash: 'sha256:65d925a45dba7b7ab80fb98229c21658b880902872fcf4c000d732a9df40875c',
|
|
137
|
+
size: 47016,
|
|
138
|
+
is_prefix: false,
|
|
139
|
+
},
|
|
140
|
+
'testnet-73-solution-tgwui-cpu.configuration.json': {
|
|
141
|
+
hash: 'sha256:d4ff54980b745663d8d7cc80bdba25fd0bb8bc39d2d3f6861de3b33a7577bdf8',
|
|
142
|
+
size: 47319,
|
|
143
|
+
is_prefix: false,
|
|
144
|
+
},
|
|
145
|
+
'testnet-72-solution-comfyui-cpu.configuration.json': {
|
|
146
|
+
hash: 'sha256:ec4a67e487474b4842f8dd1d43226344e8a447e0ab4de0299c08eff089722e79',
|
|
147
|
+
size: 10689,
|
|
148
|
+
is_prefix: false,
|
|
149
|
+
},
|
|
150
|
+
'stg-96-comfy-ui-origin.configuration.json': {
|
|
151
|
+
hash: 'sha256:3a4ad890d48b25d4a6afd9ebb7de6255a49c90313b50b2d4fc7325046b696307',
|
|
152
|
+
size: 11268,
|
|
153
|
+
is_prefix: false,
|
|
154
|
+
},
|
|
155
|
+
'testnet-56-solution-tgwui.configuration.json': {
|
|
156
|
+
hash: 'sha256:d4ff54980b745663d8d7cc80bdba25fd0bb8bc39d2d3f6861de3b33a7577bdf8',
|
|
157
|
+
size: 47319,
|
|
158
|
+
is_prefix: false,
|
|
159
|
+
},
|
|
160
|
+
},
|
|
161
|
+
version: 1,
|
|
162
|
+
};
|
|
163
|
+
const result = await (0, utils_js_1.getDirHashFileContents)(inputRaw.entries);
|
|
164
|
+
expect(result).toEqual(inputRaw);
|
|
165
|
+
});
|
|
166
|
+
it('should throw error for invalid hash format', async () => {
|
|
167
|
+
const invalidInput = {
|
|
168
|
+
'readme.md': {
|
|
169
|
+
hash: 'invalid hash format',
|
|
170
|
+
size: 1,
|
|
171
|
+
},
|
|
172
|
+
};
|
|
173
|
+
await expect((0, utils_js_1.getDirHashFileContents)(invalidInput)).rejects.toThrow(`Invalid hash format for filename ${Object.keys(invalidInput)[0]}: ${Object.values(invalidInput)[0].hash}`);
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnlwdG8vdXRpbHMuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlDQUFvRDtBQUNwRCxtREFBMEY7QUFFMUYsUUFBUSxDQUFDLHdCQUF3QixFQUFFLEdBQUcsRUFBRTtJQUN0QyxFQUFFLENBQUMsMkVBQTJFLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDekYsTUFBTSxLQUFLLEdBQTZCO1lBQ3RDLFdBQVcsRUFBRTtnQkFDWCxJQUFJLEVBQUUseUVBQXlFO2dCQUMvRSxJQUFJLEVBQUUsQ0FBQztnQkFDUCxTQUFTLEVBQUUsS0FBSzthQUNqQjtZQUNELFlBQVksRUFBRTtnQkFDWixJQUFJLEVBQUUseUVBQXlFO2dCQUMvRSxJQUFJLEVBQUUsQ0FBQztnQkFDUCxTQUFTLEVBQUUsSUFBSTthQUNoQjtZQUNELFlBQVksRUFBRTtnQkFDWixJQUFJLEVBQUU7b0JBQ0osSUFBSSxFQUFFLHNCQUFhLENBQUMsTUFBTTtvQkFDMUIsSUFBSSxFQUFFLGtFQUFrRTtvQkFDeEUsUUFBUSxFQUFFLGlCQUFRLENBQUMsR0FBRztpQkFDdkI7Z0JBQ0QsSUFBSSxFQUFFLENBQUM7YUFDUjtZQUNELFlBQVksRUFBRTtnQkFDWixJQUFJLEVBQUU7b0JBQ0osSUFBSSxFQUFFLHNCQUFhLENBQUMsTUFBTTtvQkFDMUIsSUFBSSxFQUFFLGtFQUFrRTtvQkFDeEUsUUFBUSxFQUFFLGlCQUFRLENBQUMsR0FBRztpQkFDdkI7Z0JBQ0QsSUFBSSxFQUFFLENBQUM7YUFDUjtTQUNGLENBQUM7UUFFRixNQUFNLGNBQWMsR0FBWTtZQUM5QixPQUFPLEVBQUU7Z0JBQ1AsV0FBVyxFQUFFO29CQUNYLElBQUksRUFBRSxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBYztvQkFDdkMsSUFBSSxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJO29CQUM3QixTQUFT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
|
|
@@ -8,7 +8,3 @@ export type AsymmetricKeys = {
|
|
|
8
8
|
};
|
|
9
9
|
export type SymmetricKey = Buffer;
|
|
10
10
|
export type CryptoKeyType<T extends CryptoAlgorithm> = T extends CryptoAlgorithm.ECIES ? AsymmetricKeys : T extends CryptoAlgorithm.AES ? SymmetricKey : never;
|
|
11
|
-
export interface DirHashContents {
|
|
12
|
-
entries: Record<string, string>;
|
|
13
|
-
hash: string;
|
|
14
|
-
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { DirHashContents } from './types.js';
|
|
1
|
+
import { DirHash, FileInfo } from '@super-protocol/dto-js';
|
|
3
2
|
/**
|
|
4
3
|
* Here would be better to check cipher type using
|
|
5
4
|
* ```
|
|
@@ -13,4 +12,4 @@ export declare const isOCB: (cipher: string) => boolean;
|
|
|
13
12
|
export declare const isECB: (cipher: string) => boolean;
|
|
14
13
|
export declare const isRC4: (cipher: string) => boolean;
|
|
15
14
|
export declare const isAuthTagRequired: (cipherName: string) => boolean;
|
|
16
|
-
export declare const getDirHashFileContents: (
|
|
15
|
+
export declare const getDirHashFileContents: (files: Record<string, FileInfo>) => Promise<DirHash>;
|
package/dist/mjs/crypto/utils.js
CHANGED
|
@@ -15,46 +15,66 @@ export const isRC4 = (cipher) => /^rc4/i.test(cipher);
|
|
|
15
15
|
export const isAuthTagRequired = (cipherName) => {
|
|
16
16
|
return isCCM(cipherName) || isGCM(cipherName) || isOCB(cipherName);
|
|
17
17
|
};
|
|
18
|
-
export const getDirHashFileContents = async (
|
|
19
|
-
const
|
|
20
|
-
if (
|
|
21
|
-
|
|
22
|
-
if (match) {
|
|
23
|
-
return { key, algo: match[1], hash: match[2], encoding: Encoding.hex, encodedHash: hash };
|
|
24
|
-
}
|
|
18
|
+
export const getDirHashFileContents = async (files) => {
|
|
19
|
+
const sortedFiles = Object.entries(files).map(([path, info]) => {
|
|
20
|
+
if (path.length === 0) {
|
|
21
|
+
throw new Error('Filename cannot be empty');
|
|
25
22
|
}
|
|
26
|
-
|
|
27
|
-
|
|
23
|
+
const subResult = {
|
|
24
|
+
filename: path,
|
|
25
|
+
encoding: Encoding.hex,
|
|
26
|
+
size: info.size,
|
|
27
|
+
};
|
|
28
|
+
if (typeof info.hash === 'string') {
|
|
29
|
+
const match = info.hash.match(/^([^:]+):(.+)$/);
|
|
30
|
+
if (match?.length !== 3) {
|
|
31
|
+
throw new Error(`Invalid hash format for filename ${path}: ${info.hash}`);
|
|
32
|
+
}
|
|
28
33
|
return {
|
|
29
|
-
|
|
30
|
-
algo:
|
|
31
|
-
hash:
|
|
32
|
-
|
|
33
|
-
encodedHash: `${hash.algo}:${hashHex}`,
|
|
34
|
+
...subResult,
|
|
35
|
+
algo: match[1],
|
|
36
|
+
hash: match[2],
|
|
37
|
+
encodedHash: info.hash,
|
|
34
38
|
};
|
|
35
39
|
}
|
|
36
|
-
|
|
40
|
+
const hashHex = Buffer.from(info.hash.hash, info.hash.encoding).toString(Encoding.hex);
|
|
41
|
+
return {
|
|
42
|
+
...subResult,
|
|
43
|
+
algo: info.hash.algo,
|
|
44
|
+
hash: info.hash.hash,
|
|
45
|
+
encodedHash: `${info.hash.algo}:${hashHex}`,
|
|
46
|
+
};
|
|
37
47
|
});
|
|
38
48
|
let buffer = Buffer.alloc(0);
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
sortedEntries.forEach((hash) => {
|
|
49
|
+
let totalSize = 0;
|
|
50
|
+
sortedFiles.sort((a, b) => preparedValue(a).localeCompare(preparedValue(b)));
|
|
51
|
+
sortedFiles.forEach((info) => {
|
|
43
52
|
buffer = Buffer.concat([
|
|
44
53
|
buffer,
|
|
45
|
-
Buffer.from(
|
|
46
|
-
Buffer.from(
|
|
54
|
+
Buffer.from(info.filename, 'utf-8'),
|
|
55
|
+
Buffer.from(info.hash, info.encoding),
|
|
47
56
|
]);
|
|
57
|
+
totalSize += info.size;
|
|
48
58
|
});
|
|
49
|
-
const
|
|
59
|
+
const rootHash = await Crypto.createHash(buffer, {
|
|
50
60
|
algo: HashAlgorithm.SHA256,
|
|
51
61
|
encoding: Encoding.hex,
|
|
52
62
|
});
|
|
53
63
|
return {
|
|
54
|
-
entries: Object.fromEntries(
|
|
55
|
-
return [
|
|
64
|
+
entries: Object.fromEntries(sortedFiles.map((info) => {
|
|
65
|
+
return [
|
|
66
|
+
info.filename,
|
|
67
|
+
{
|
|
68
|
+
hash: info.encodedHash,
|
|
69
|
+
size: info.size,
|
|
70
|
+
is_prefix: false,
|
|
71
|
+
},
|
|
72
|
+
];
|
|
56
73
|
})),
|
|
57
|
-
hash: `${
|
|
74
|
+
hash: `${rootHash.algo}:${rootHash.hash}`,
|
|
75
|
+
size: totalSize,
|
|
76
|
+
version: 1,
|
|
58
77
|
};
|
|
59
78
|
};
|
|
60
|
-
|
|
79
|
+
const preparedValue = (value) => `${value.hash}:${value.filename}`;
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxRQUFRLEVBQVksYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDcEYsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBRWpDOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDLE1BQWMsRUFBVyxFQUFFLENBQy9DLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxLQUFLLG1CQUFtQixDQUFDO0FBQ3hELE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDLE1BQWMsRUFBVyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN0RSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFjLEVBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDdEUsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBYyxFQUFXLEVBQUUsQ0FDL0MsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLEtBQUssU0FBUyxJQUFJLE1BQU0sS0FBSyxVQUFVLENBQUM7QUFDdkUsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBYyxFQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBRXZFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsVUFBa0IsRUFBVyxFQUFFO0lBQy9ELE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDckUsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFD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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { getDirHashFileContents } from './utils.js';
|
|
2
|
+
import { Encoding, HashAlgorithm } from '@super-protocol/dto-js';
|
|
3
|
+
describe('getDirHashFileContents', () => {
|
|
4
|
+
it('should correctly process mixed hash formats and return expected structure', async () => {
|
|
5
|
+
const input = {
|
|
6
|
+
'readme.md': {
|
|
7
|
+
hash: 'sha256:9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08',
|
|
8
|
+
size: 1,
|
|
9
|
+
is_prefix: false,
|
|
10
|
+
},
|
|
11
|
+
'test1.gguf': {
|
|
12
|
+
hash: 'sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855',
|
|
13
|
+
size: 2,
|
|
14
|
+
is_prefix: true,
|
|
15
|
+
},
|
|
16
|
+
'test2.gguf': {
|
|
17
|
+
hash: {
|
|
18
|
+
algo: HashAlgorithm.SHA256,
|
|
19
|
+
hash: 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855',
|
|
20
|
+
encoding: Encoding.hex,
|
|
21
|
+
},
|
|
22
|
+
size: 4,
|
|
23
|
+
},
|
|
24
|
+
'test3.gguf': {
|
|
25
|
+
hash: {
|
|
26
|
+
algo: HashAlgorithm.SHA256,
|
|
27
|
+
hash: 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855',
|
|
28
|
+
encoding: Encoding.hex,
|
|
29
|
+
},
|
|
30
|
+
size: 3,
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
const expectedOutput = {
|
|
34
|
+
entries: {
|
|
35
|
+
'readme.md': {
|
|
36
|
+
hash: input['readme.md'].hash,
|
|
37
|
+
size: input['readme.md'].size,
|
|
38
|
+
is_prefix: false,
|
|
39
|
+
},
|
|
40
|
+
'test1.gguf': {
|
|
41
|
+
hash: input['test1.gguf'].hash,
|
|
42
|
+
size: input['test1.gguf'].size,
|
|
43
|
+
is_prefix: false,
|
|
44
|
+
},
|
|
45
|
+
'test2.gguf': {
|
|
46
|
+
hash: `${input['test2.gguf'].hash.algo}:${input['test2.gguf'].hash.hash}`,
|
|
47
|
+
size: input['test2.gguf'].size,
|
|
48
|
+
is_prefix: false,
|
|
49
|
+
},
|
|
50
|
+
'test3.gguf': {
|
|
51
|
+
hash: `${input['test3.gguf'].hash.algo}:${input['test3.gguf'].hash.hash}`,
|
|
52
|
+
size: input['test3.gguf'].size,
|
|
53
|
+
is_prefix: false,
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
hash: 'sha256:c28c1da5dcdfd82a6f05c9faa813fea7a7664d44c7721123e24507655f32d2c4',
|
|
57
|
+
version: 1,
|
|
58
|
+
size: Object.values(input).reduce((acc, cur) => {
|
|
59
|
+
return acc + cur.size;
|
|
60
|
+
}, 0),
|
|
61
|
+
};
|
|
62
|
+
const result = await getDirHashFileContents(input);
|
|
63
|
+
expect(result).toEqual(expectedOutput);
|
|
64
|
+
expect(Object.keys(result.entries).length).toBe(4);
|
|
65
|
+
Object.values(result.entries).forEach((item) => {
|
|
66
|
+
expect(item.hash).toMatch(/^sha256:[a-f0-9]{64}$/);
|
|
67
|
+
expect(item.size).toBeGreaterThanOrEqual(0);
|
|
68
|
+
expect(item.is_prefix).toBeDefined();
|
|
69
|
+
});
|
|
70
|
+
const sortedHashes = Object.values(result.entries).sort();
|
|
71
|
+
expect(Object.values(result.entries)).toEqual(sortedHashes);
|
|
72
|
+
});
|
|
73
|
+
it('use .dirhashes as input which was getting after execution ./spctl files upload command', async () => {
|
|
74
|
+
const inputRaw = {
|
|
75
|
+
hash: 'sha256:e11c89b85cce479c7aa1d54f033416b05ae260aef8759fa63f7a08888cacda5e',
|
|
76
|
+
size: 315747,
|
|
77
|
+
entries: {
|
|
78
|
+
'stg-95-text-gen-webui.configuration.json': {
|
|
79
|
+
hash: 'sha256:72e4cc706580e622422cbaf6e5cfe186501d6fe1667c5dc901dac862f7824ed7',
|
|
80
|
+
size: 47326,
|
|
81
|
+
is_prefix: false,
|
|
82
|
+
},
|
|
83
|
+
'input-model-test.json': {
|
|
84
|
+
hash: 'sha256:173e589350533bf41548487594c593b03e747280ca11b98f3d2ab6ac4cecc9cc',
|
|
85
|
+
size: 4263,
|
|
86
|
+
is_prefix: false,
|
|
87
|
+
},
|
|
88
|
+
'stg-96-comfy-ui.configuration.json': {
|
|
89
|
+
hash: 'sha256:69398bf33df2e7884ad605e0d02a827ef47e3b73d75bd145318714b0437b9200',
|
|
90
|
+
size: 13052,
|
|
91
|
+
is_prefix: false,
|
|
92
|
+
},
|
|
93
|
+
'testnet-57-solution-comfyui.configuration.json': {
|
|
94
|
+
hash: 'sha256:8a3504f6d19a5ce7db351f142532d7828a90b8c2c74b4734128641b387a6b72d',
|
|
95
|
+
size: 10797,
|
|
96
|
+
is_prefix: false,
|
|
97
|
+
},
|
|
98
|
+
'input-model-test2.json': {
|
|
99
|
+
hash: 'sha256:bc622b87205f0ed76a6d2133a163d4e0b6a7768ba14370fc569a1da40f90b9ec',
|
|
100
|
+
size: 4468,
|
|
101
|
+
is_prefix: false,
|
|
102
|
+
},
|
|
103
|
+
'testnet-57-solution-comfyui-origin.configuration.json': {
|
|
104
|
+
hash: 'sha256:1ef8bc1d5704e62ab0af29348713f3a5031238f2ce4208df842a4231979901c1',
|
|
105
|
+
size: 10796,
|
|
106
|
+
is_prefix: false,
|
|
107
|
+
},
|
|
108
|
+
'input-model-test4.json': {
|
|
109
|
+
hash: 'sha256:d3d738eb08571430e7013a05c3b71b827663edd611a76a20dba1428d47d71c4b',
|
|
110
|
+
size: 4639,
|
|
111
|
+
is_prefix: false,
|
|
112
|
+
},
|
|
113
|
+
'input-test.json': {
|
|
114
|
+
hash: 'sha256:6382aeeedc6009a0ffdeba8ad4d7c26327cdf2526804604906b3df79a324e79d',
|
|
115
|
+
size: 4246,
|
|
116
|
+
is_prefix: false,
|
|
117
|
+
},
|
|
118
|
+
'stg-53-solution.configuration.json': {
|
|
119
|
+
hash: 'sha256:f62c975536328c55135ccc6713ea20dae41c08adc6acb75dda8a757ccd9caeaa',
|
|
120
|
+
size: 1056,
|
|
121
|
+
is_prefix: false,
|
|
122
|
+
},
|
|
123
|
+
'input-model-test3.json': {
|
|
124
|
+
hash: 'sha256:579864e52b017bebb6f9a5669ab01d3adcf569f82cc4fdcfddcf92a3224ede44',
|
|
125
|
+
size: 4470,
|
|
126
|
+
is_prefix: false,
|
|
127
|
+
},
|
|
128
|
+
'stg-95-text-gen-webui-origin.configuration.json': {
|
|
129
|
+
hash: 'sha256:8ec037c664c3f54bcd97caa35147a3c6437ad2170dcf270b1fc1d1f6eb087d8a',
|
|
130
|
+
size: 47023,
|
|
131
|
+
is_prefix: false,
|
|
132
|
+
},
|
|
133
|
+
'testnet-56-solution-origin-tgwui.configuration.json': {
|
|
134
|
+
hash: 'sha256:65d925a45dba7b7ab80fb98229c21658b880902872fcf4c000d732a9df40875c',
|
|
135
|
+
size: 47016,
|
|
136
|
+
is_prefix: false,
|
|
137
|
+
},
|
|
138
|
+
'testnet-73-solution-tgwui-cpu.configuration.json': {
|
|
139
|
+
hash: 'sha256:d4ff54980b745663d8d7cc80bdba25fd0bb8bc39d2d3f6861de3b33a7577bdf8',
|
|
140
|
+
size: 47319,
|
|
141
|
+
is_prefix: false,
|
|
142
|
+
},
|
|
143
|
+
'testnet-72-solution-comfyui-cpu.configuration.json': {
|
|
144
|
+
hash: 'sha256:ec4a67e487474b4842f8dd1d43226344e8a447e0ab4de0299c08eff089722e79',
|
|
145
|
+
size: 10689,
|
|
146
|
+
is_prefix: false,
|
|
147
|
+
},
|
|
148
|
+
'stg-96-comfy-ui-origin.configuration.json': {
|
|
149
|
+
hash: 'sha256:3a4ad890d48b25d4a6afd9ebb7de6255a49c90313b50b2d4fc7325046b696307',
|
|
150
|
+
size: 11268,
|
|
151
|
+
is_prefix: false,
|
|
152
|
+
},
|
|
153
|
+
'testnet-56-solution-tgwui.configuration.json': {
|
|
154
|
+
hash: 'sha256:d4ff54980b745663d8d7cc80bdba25fd0bb8bc39d2d3f6861de3b33a7577bdf8',
|
|
155
|
+
size: 47319,
|
|
156
|
+
is_prefix: false,
|
|
157
|
+
},
|
|
158
|
+
},
|
|
159
|
+
version: 1,
|
|
160
|
+
};
|
|
161
|
+
const result = await getDirHashFileContents(inputRaw.entries);
|
|
162
|
+
expect(result).toEqual(inputRaw);
|
|
163
|
+
});
|
|
164
|
+
it('should throw error for invalid hash format', async () => {
|
|
165
|
+
const invalidInput = {
|
|
166
|
+
'readme.md': {
|
|
167
|
+
hash: 'invalid hash format',
|
|
168
|
+
size: 1,
|
|
169
|
+
},
|
|
170
|
+
};
|
|
171
|
+
await expect(getDirHashFileContents(invalidInput)).rejects.toThrow(`Invalid hash format for filename ${Object.keys(invalidInput)[0]}: ${Object.values(invalidInput)[0].hash}`);
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnlwdG8vdXRpbHMuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDcEQsT0FBTyxFQUFXLFFBQVEsRUFBa0IsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFMUYsUUFBUSxDQUFDLHdCQUF3QixFQUFFLEdBQUcsRUFBRTtJQUN0QyxFQUFFLENBQUMsMkVBQTJFLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDekYsTUFBTSxLQUFLLEdBQTZCO1lBQ3RDLFdBQVcsRUFBRTtnQkFDWCxJQUFJLEVBQUUseUVBQXlFO2dCQUMvRSxJQUFJLEVBQUUsQ0FBQztnQkFDUCxTQUFTLEVBQUUsS0FBSzthQUNqQjtZQUNELFlBQVksRUFBRTtnQkFDWixJQUFJLEVBQUUseUVBQXlFO2dCQUMvRSxJQUFJLEVBQUUsQ0FBQztnQkFDUCxTQUFTLEVBQUUsSUFBSTthQUNoQjtZQUNELFlBQVksRUFBRTtnQkFDWixJQUFJLEVBQUU7b0JBQ0osSUFBSSxFQUFFLGFBQWEsQ0FBQyxNQUFNO29CQUMxQixJQUFJLEVBQUUsa0VBQWtFO29CQUN4RSxRQUFRLEVBQUUsUUFBUSxDQUFDLEdBQUc7aUJBQ3ZCO2dCQUNELElBQUksRUFBRSxDQUFDO2FBQ1I7WUFDRCxZQUFZLEVBQUU7Z0JBQ1osSUFBSSxFQUFFO29CQUNKLElBQUksRUFBRSxhQUFhLENBQUMsTUFBTTtvQkFDMUIsSUFBSSxFQUFFLGtFQUFrRTtvQkFDeEUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxHQUFHO2lCQUN2QjtnQkFDRCxJQUFJLEVBQUUsQ0FBQzthQUNSO1NBQ0YsQ0FBQztRQUVGLE1BQU0sY0FBYyxHQUFZO1lBQzlCLE9BQU8sRUFBRTtnQkFDUCxXQUFXLEVBQUU7b0JBQ1gsSUFBSSxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FB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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@super-protocol/sdk-js",
|
|
3
|
-
"version": "3.4.0-beta.
|
|
3
|
+
"version": "3.4.0-beta.13",
|
|
4
4
|
"main": "dist/cjs/index.js",
|
|
5
5
|
"module": "dist/mjs/index.js",
|
|
6
6
|
"exports": {
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"@fidm/x509": "^1.2.1",
|
|
62
62
|
"@msgpack/msgpack": "^2.8.0",
|
|
63
63
|
"@sinclair/typebox": "0.33.17",
|
|
64
|
-
"@super-protocol/dto-js": "1.1.
|
|
64
|
+
"@super-protocol/dto-js": "1.1.3",
|
|
65
65
|
"@super-protocol/pki-common": "1.5.4",
|
|
66
66
|
"@super-protocol/uplink-nodejs": "^1.2.20",
|
|
67
67
|
"asn1js": "^3.0.5",
|