@autonomys/auto-drive 0.7.3 → 0.7.4

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 (79) hide show
  1. package/dist/ipld/blockstore/base.d.ts +9 -0
  2. package/dist/ipld/blockstore/base.d.ts.map +1 -0
  3. package/dist/ipld/blockstore/base.js +1 -0
  4. package/dist/ipld/blockstore/index.d.ts +3 -0
  5. package/dist/ipld/blockstore/index.d.ts.map +1 -0
  6. package/dist/ipld/blockstore/index.js +2 -0
  7. package/dist/ipld/blockstore/memory.d.ts +13 -0
  8. package/dist/ipld/blockstore/memory.d.ts.map +1 -0
  9. package/dist/ipld/blockstore/memory.js +57 -0
  10. package/dist/ipld/builders.d.ts +3 -2
  11. package/dist/ipld/builders.d.ts.map +1 -1
  12. package/dist/ipld/chunker.d.ts +10 -12
  13. package/dist/ipld/chunker.d.ts.map +1 -1
  14. package/dist/ipld/chunker.js +33 -9
  15. package/dist/ipld/nodes.d.ts +4 -4
  16. package/dist/ipld/nodes.d.ts.map +1 -1
  17. package/dist/ipld/nodes.js +6 -3
  18. package/dist/metadata/offchain/file.d.ts +3 -1
  19. package/dist/metadata/offchain/file.d.ts.map +1 -1
  20. package/dist/metadata/offchain/file.js +5 -1
  21. package/dist/metadata/offchain/folder.d.ts +3 -1
  22. package/dist/metadata/offchain/folder.d.ts.map +1 -1
  23. package/dist/metadata/offchain/folder.js +2 -1
  24. package/dist/metadata/onchain/protobuf/OnchainMetadata.d.ts +41 -0
  25. package/dist/metadata/onchain/protobuf/OnchainMetadata.d.ts.map +1 -1
  26. package/dist/metadata/onchain/protobuf/OnchainMetadata.js +210 -0
  27. package/dist/src/cid/index.d.ts +9 -0
  28. package/dist/src/cid/index.d.ts.map +1 -0
  29. package/dist/src/cid/index.js +20 -0
  30. package/dist/src/index.d.ts +4 -0
  31. package/dist/src/index.d.ts.map +1 -0
  32. package/dist/src/index.js +3 -0
  33. package/dist/src/ipld/builders.d.ts +11 -0
  34. package/dist/src/ipld/builders.d.ts.map +1 -0
  35. package/dist/src/ipld/builders.js +13 -0
  36. package/dist/src/ipld/chunker.d.ts +22 -0
  37. package/dist/src/ipld/chunker.d.ts.map +1 -0
  38. package/dist/src/ipld/chunker.js +144 -0
  39. package/dist/src/ipld/index.d.ts +4 -0
  40. package/dist/src/ipld/index.d.ts.map +1 -0
  41. package/dist/src/ipld/index.js +3 -0
  42. package/dist/src/ipld/nodes.d.ts +15 -0
  43. package/dist/src/ipld/nodes.d.ts.map +1 -0
  44. package/dist/src/ipld/nodes.js +89 -0
  45. package/dist/src/ipld/utils.d.ts +5 -0
  46. package/dist/src/ipld/utils.d.ts.map +1 -0
  47. package/dist/src/ipld/utils.js +51 -0
  48. package/dist/src/metadata/index.d.ts +3 -0
  49. package/dist/src/metadata/index.d.ts.map +1 -0
  50. package/dist/src/metadata/index.js +2 -0
  51. package/dist/src/metadata/offchain/base.d.ts +4 -0
  52. package/dist/src/metadata/offchain/base.d.ts.map +1 -0
  53. package/dist/src/metadata/offchain/base.js +1 -0
  54. package/dist/src/metadata/offchain/file.d.ts +16 -0
  55. package/dist/src/metadata/offchain/file.d.ts.map +1 -0
  56. package/dist/src/metadata/offchain/file.js +19 -0
  57. package/dist/src/metadata/offchain/folder.d.ts +17 -0
  58. package/dist/src/metadata/offchain/folder.d.ts.map +1 -0
  59. package/dist/src/metadata/offchain/folder.js +10 -0
  60. package/dist/src/metadata/offchain/index.d.ts +4 -0
  61. package/dist/src/metadata/offchain/index.d.ts.map +1 -0
  62. package/dist/src/metadata/offchain/index.js +3 -0
  63. package/dist/src/metadata/onchain/index.d.ts +3 -0
  64. package/dist/src/metadata/onchain/index.d.ts.map +1 -0
  65. package/dist/src/metadata/onchain/index.js +2 -0
  66. package/dist/src/metadata/onchain/protobuf/OnchainMetadata.d.ts +28 -0
  67. package/dist/src/metadata/onchain/protobuf/OnchainMetadata.d.ts.map +1 -0
  68. package/dist/src/metadata/onchain/protobuf/OnchainMetadata.js +112 -0
  69. package/dist/src/metadata/onchain/utils.d.ts +4 -0
  70. package/dist/src/metadata/onchain/utils.d.ts.map +1 -0
  71. package/dist/src/metadata/onchain/utils.js +12 -0
  72. package/package.json +2 -2
  73. package/src/ipld/builders.ts +3 -1
  74. package/src/ipld/chunker.ts +61 -10
  75. package/src/ipld/nodes.ts +11 -2
  76. package/src/metadata/offchain/file.ts +7 -1
  77. package/src/metadata/offchain/folder.ts +4 -1
  78. package/src/metadata/onchain/protobuf/OnchainMetadata.proto +25 -0
  79. package/src/metadata/onchain/protobuf/OnchainMetadata.ts +260 -0
@@ -0,0 +1,9 @@
1
+ import { BaseBlockstore } from 'blockstore-core';
2
+ import type { Pair } from 'interface-blockstore';
3
+ import { AbortOptions, AwaitIterable } from 'interface-store';
4
+ import { MetadataType } from '../../metadata/index.js';
5
+ export interface IPLDBlockstore extends BaseBlockstore {
6
+ getFilteredMany(nodeType: MetadataType, options?: AbortOptions): AwaitIterable<Pair['cid']>;
7
+ getSize(cid: Pair['cid']): Promise<number>;
8
+ }
9
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/ipld/blockstore/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAEtD,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,eAAe,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAC3F,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;CAC3C"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ export * from './base.js';
2
+ export * from './memory.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ipld/blockstore/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './base.js';
2
+ export * from './memory.js';
@@ -0,0 +1,13 @@
1
+ import { MemoryBlockstore } from 'blockstore-core';
2
+ import { Pair } from 'interface-blockstore';
3
+ import { AbortOptions, AwaitIterable } from 'interface-store';
4
+ import { CID, Version } from 'multiformats';
5
+ import { MetadataType } from '../../metadata/index.js';
6
+ import { IPLDBlockstore } from './base.js';
7
+ export declare class MemoryIPLDBlockstore extends MemoryBlockstore implements IPLDBlockstore {
8
+ private readonly nodeByType;
9
+ getFilteredMany(nodeType: MetadataType, options?: AbortOptions): AwaitIterable<Pair['cid']>;
10
+ put(key: CID<unknown, number, number, Version>, val: Uint8Array): Promise<CID<unknown, number, number, Version>>;
11
+ getSize(cid: CID): Promise<number>;
12
+ }
13
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/ipld/blockstore/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC7D,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAoC,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAE1C,qBAAa,oBAAqB,SAAQ,gBAAiB,YAAW,cAAc;IAClF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiC;IACrD,eAAe,CACpB,QAAQ,EAAE,YAAY,EACtB,OAAO,CAAC,EAAE,YAAY,GACrB,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAMvB,GAAG,CACP,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAC1C,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAM3C,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;CAKzC"}
@@ -0,0 +1,57 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
11
+ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
12
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
13
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
14
+ return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
15
+ function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
16
+ function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
17
+ function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
18
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
19
+ function fulfill(value) { resume("next", value); }
20
+ function reject(value) { resume("throw", value); }
21
+ function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
22
+ };
23
+ import { MemoryBlockstore } from 'blockstore-core';
24
+ import { decodeIPLDNodeData } from '../../metadata/index.js';
25
+ export class MemoryIPLDBlockstore extends MemoryBlockstore {
26
+ constructor() {
27
+ super(...arguments);
28
+ this.nodeByType = new Map();
29
+ }
30
+ getFilteredMany(nodeType, options) {
31
+ return __asyncGenerator(this, arguments, function* getFilteredMany_1() {
32
+ var _a;
33
+ for (const cid of (_a = this.nodeByType.get(nodeType)) !== null && _a !== void 0 ? _a : []) {
34
+ yield yield __await(cid);
35
+ }
36
+ });
37
+ }
38
+ put(key, val) {
39
+ const _super = Object.create(null, {
40
+ put: { get: () => super.put }
41
+ });
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ var _a;
44
+ const data = decodeIPLDNodeData(val);
45
+ this.nodeByType.set(data.type, [...((_a = this.nodeByType.get(data.type)) !== null && _a !== void 0 ? _a : []), key]);
46
+ return _super.put.call(this, key, val);
47
+ });
48
+ }
49
+ getSize(cid) {
50
+ return __awaiter(this, void 0, void 0, function* () {
51
+ var _a;
52
+ const bytes = yield this.get(cid);
53
+ const data = decodeIPLDNodeData(bytes);
54
+ return (_a = data.size) !== null && _a !== void 0 ? _a : 0;
55
+ });
56
+ }
57
+ }
@@ -1,10 +1,11 @@
1
1
  import { CID } from 'multiformats/cid';
2
2
  import { PBNode } from '../ipld/index.js';
3
+ import { FileUploadOptions } from '../metadata/index.js';
3
4
  export interface Builders {
4
5
  inlink: (links: CID[], size: number, linkDepth: number, chunkSize: number) => PBNode;
5
6
  chunk: (data: Buffer) => PBNode;
6
- root: (links: CID[], size: number, linkDepth: number, name?: string, maxNodeSize?: number) => PBNode;
7
- single: (data: Buffer, filename?: string) => PBNode;
7
+ root: (links: CID[], size: number, linkDepth: number, name?: string, maxNodeSize?: number, fileUploadOptions?: FileUploadOptions) => PBNode;
8
+ single: (data: Buffer, filename?: string, fileUploadOptions?: FileUploadOptions) => PBNode;
8
9
  }
9
10
  export declare const metadataBuilders: Builders;
10
11
  export declare const fileBuilders: Builders;
@@ -1 +1 @@
1
- {"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../src/ipld/builders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAYzC,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAA;IACpF,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IAC/B,IAAI,EAAE,CACJ,KAAK,EAAE,GAAG,EAAE,EACZ,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,MAAM,KACjB,MAAM,CAAA;IACX,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;CACpD;AACD,eAAO,MAAM,gBAAgB,EAAE,QAK9B,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,QAK1B,CAAA"}
1
+ {"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../src/ipld/builders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAYxD,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAA;IACpF,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IAC/B,IAAI,EAAE,CACJ,KAAK,EAAE,GAAG,EAAE,EACZ,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,MAAM,EACpB,iBAAiB,CAAC,EAAE,iBAAiB,KAClC,MAAM,CAAA;IACX,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,iBAAiB,KAAK,MAAM,CAAA;CAC3F;AACD,eAAO,MAAM,gBAAgB,EAAE,QAK9B,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,QAK1B,CAAA"}
@@ -1,26 +1,23 @@
1
1
  import type { BaseBlockstore } from 'blockstore-core';
2
2
  import type { AwaitIterable } from 'interface-store';
3
3
  import { CID } from 'multiformats';
4
- import { OffchainMetadata } from '../metadata/index.js';
4
+ import { FileUploadOptions, OffchainMetadata } from '../metadata/index.js';
5
5
  import { Builders } from './builders.js';
6
6
  import { PBNode } from './utils.js';
7
- export declare const DEFAULT_MAX_CHUNK_SIZE: number;
8
- export declare const DEFAULT_MAX_LINK_PER_NODE: number;
9
- export declare const processFileToIPLDFormat: (blockstore: BaseBlockstore, file: AwaitIterable<Buffer>, totalSize: number, filename?: string, { maxChunkSize, maxLinkPerNode }?: {
7
+ type ChunkerLimits = {
10
8
  maxChunkSize: number;
11
9
  maxLinkPerNode: number;
12
- }) => Promise<CID>;
10
+ };
11
+ type ChunkerOptions = ChunkerLimits & FileUploadOptions;
12
+ export declare const DEFAULT_MAX_CHUNK_SIZE: number;
13
+ export declare const DEFAULT_MAX_LINK_PER_NODE: number;
14
+ export declare const processFileToIPLDFormat: (blockstore: BaseBlockstore, file: AwaitIterable<Buffer>, totalSize: number, filename?: string, { maxChunkSize, maxLinkPerNode, encryption, compression, }?: Partial<ChunkerOptions>) => Promise<CID>;
13
15
  export declare const processMetadataToIPLDFormat: (blockstore: BaseBlockstore, metadata: OffchainMetadata, limits?: {
14
16
  maxChunkSize: number;
15
17
  maxLinkPerNode: number;
16
18
  }) => Promise<CID>;
17
- export declare const processBufferToIPLDFormatFromChunks: (blockstore: BaseBlockstore, chunks: AwaitIterable<CID>, filename: string | undefined, totalSize: number, builders: Builders, { maxLinkPerNode, maxChunkSize }?: {
18
- maxLinkPerNode: number;
19
- maxChunkSize: number;
20
- }) => Promise<CID>;
21
- export declare const processFolderToIPLDFormat: (blockstore: BaseBlockstore, children: CID[], name: string, size: number, { maxLinkPerNode }?: {
22
- maxLinkPerNode: number;
23
- }) => Promise<CID>;
19
+ export declare const processBufferToIPLDFormatFromChunks: (blockstore: BaseBlockstore, chunks: AwaitIterable<CID>, filename: string | undefined, totalSize: number, builders: Builders, { maxChunkSize, maxLinkPerNode, encryption, compression, }?: Partial<ChunkerOptions>) => Promise<CID>;
20
+ export declare const processFolderToIPLDFormat: (blockstore: BaseBlockstore, children: CID[], name: string, size: number, { maxLinkPerNode, maxChunkSize, compression, encryption, }?: Partial<ChunkerOptions>) => Promise<CID>;
24
21
  /**
25
22
  * Process chunks to IPLD format, return the last chunk if it's not full
26
23
  * @returns the last chunk if it's not full, otherwise an empty buffer
@@ -29,4 +26,5 @@ export declare const processChunksToIPLDFormat: (blockstore: BaseBlockstore, chu
29
26
  maxChunkSize?: number;
30
27
  }) => Promise<Buffer>;
31
28
  export declare const ensureNodeMaxSize: (node: PBNode, maxSize?: number) => PBNode;
29
+ export {};
32
30
  //# sourceMappingURL=chunker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunker.d.ts","sourceRoot":"","sources":["../../src/ipld/chunker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAElC,OAAO,EAAsB,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAC3E,OAAO,EAAE,QAAQ,EAAkC,MAAM,eAAe,CAAA;AAExE,OAAO,EAA2B,MAAM,EAAE,MAAM,YAAY,CAAA;AAE5D,eAAO,MAAM,sBAAsB,QAAY,CAAA;AAG/C,eAAO,MAAM,yBAAyB,QAAwD,CAAA;AAE9F,eAAO,MAAM,uBAAuB,eACtB,cAAc,QACpB,aAAa,CAAC,MAAM,CAAC,aAChB,MAAM,aACN,MAAM,qCACiB;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,KAIjF,OAAO,CAAC,GAAG,CAKb,CAAA;AAED,eAAO,MAAM,2BAA2B,eAC1B,cAAc,YAChB,gBAAgB,WAClB;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,KAIvD,OAAO,CAAC,GAAG,CAab,CAAA;AA6BD,eAAO,MAAM,mCAAmC,eAClC,cAAc,UAClB,aAAa,CAAC,GAAG,CAAC,YAChB,MAAM,GAAG,SAAS,aACjB,MAAM,YACP,QAAQ,qCACgB;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,KAIjF,OAAO,CAAC,GAAG,CAsCb,CAAA;AAED,eAAO,MAAM,yBAAyB,eACxB,cAAc,YAChB,GAAG,EAAE,QACT,MAAM,QACN,MAAM,uBACQ;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,KAC7C,OAAO,CAAC,GAAG,CAqBb,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,yBAAyB,eACxB,cAAc,UAClB,aAAa,CAAC,MAAM,CAAC,YACnB,QAAQ,oBACyB;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,KACnE,OAAO,CAAC,MAAM,CAchB,CAAA;AAED,eAAO,MAAM,iBAAiB,SACtB,MAAM,YACH,MAAM,KACd,MAOF,CAAA"}
1
+ {"version":3,"file":"chunker.d.ts","sourceRoot":"","sources":["../../src/ipld/chunker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAElC,OAAO,EAAsB,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAC9F,OAAO,EAAE,QAAQ,EAAkC,MAAM,eAAe,CAAA;AAExE,OAAO,EAA2B,MAAM,EAAE,MAAM,YAAY,CAAA;AAE5D,KAAK,aAAa,GAAG;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,KAAK,cAAc,GAAG,aAAa,GAAG,iBAAiB,CAAA;AAEvD,eAAO,MAAM,sBAAsB,QAAY,CAAA;AAG/C,eAAO,MAAM,yBAAyB,QAAwD,CAAA;AAE9F,eAAO,MAAM,uBAAuB,eACtB,cAAc,QACpB,aAAa,CAAC,MAAM,CAAC,aAChB,MAAM,aACN,MAAM,+DAMd,OAAO,CAAC,cAAc,CAAC,KAMzB,OAAO,CAAC,GAAG,CAOb,CAAA;AAED,eAAO,MAAM,2BAA2B,eAC1B,cAAc,YAChB,gBAAgB,WAClB;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,KAIvD,OAAO,CAAC,GAAG,CAab,CAAA;AAsCD,eAAO,MAAM,mCAAmC,eAClC,cAAc,UAClB,aAAa,CAAC,GAAG,CAAC,YAChB,MAAM,GAAG,SAAS,aACjB,MAAM,YACP,QAAQ,+DAMf,OAAO,CAAC,cAAc,CAAC,KAMzB,OAAO,CAAC,GAAG,CA4Cb,CAAA;AAED,eAAO,MAAM,yBAAyB,eACxB,cAAc,YAChB,GAAG,EAAE,QACT,MAAM,QACN,MAAM,+DAMT,OAAO,CAAC,cAAc,CAAC,KAMzB,OAAO,CAAC,GAAG,CAwBb,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,yBAAyB,eACxB,cAAc,UAClB,aAAa,CAAC,MAAM,CAAC,YACnB,QAAQ,oBACyB;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,KACnE,OAAO,CAAC,MAAM,CAchB,CAAA;AAED,eAAO,MAAM,iBAAiB,SACtB,MAAM,YACH,MAAM,KACd,MAOF,CAAA"}
@@ -35,13 +35,17 @@ import { chunkBuffer, encodeNode } from './utils.js';
35
35
  export const DEFAULT_MAX_CHUNK_SIZE = 64 * 1024;
36
36
  const ESTIMATED_LINK_SIZE_IN_BYTES = 64;
37
37
  export const DEFAULT_MAX_LINK_PER_NODE = DEFAULT_MAX_CHUNK_SIZE / ESTIMATED_LINK_SIZE_IN_BYTES;
38
- export const processFileToIPLDFormat = (blockstore, file, totalSize, filename, { maxChunkSize, maxLinkPerNode } = {
38
+ export const processFileToIPLDFormat = (blockstore, file, totalSize, filename, { maxChunkSize = DEFAULT_MAX_CHUNK_SIZE, maxLinkPerNode = DEFAULT_MAX_LINK_PER_NODE, encryption = undefined, compression = undefined, } = {
39
39
  maxChunkSize: DEFAULT_MAX_CHUNK_SIZE,
40
40
  maxLinkPerNode: DEFAULT_MAX_LINK_PER_NODE,
41
+ encryption: undefined,
42
+ compression: undefined,
41
43
  }) => {
42
44
  return processBufferToIPLDFormat(blockstore, file, filename, totalSize, fileBuilders, {
43
45
  maxChunkSize,
44
46
  maxLinkPerNode,
47
+ encryption,
48
+ compression,
45
49
  });
46
50
  };
47
51
  export const processMetadataToIPLDFormat = (blockstore_1, metadata_1, ...args_1) => __awaiter(void 0, [blockstore_1, metadata_1, ...args_1], void 0, function* (blockstore, metadata, limits = {
@@ -56,12 +60,14 @@ export const processMetadataToIPLDFormat = (blockstore_1, metadata_1, ...args_1)
56
60
  });
57
61
  })(), name, buffer.byteLength, metadataBuilders, limits);
58
62
  });
59
- const processBufferToIPLDFormat = (blockstore_1, buffer_1, filename_1, totalSize_1, builders_1, ...args_1) => __awaiter(void 0, [blockstore_1, buffer_1, filename_1, totalSize_1, builders_1, ...args_1], void 0, function* (blockstore, buffer, filename, totalSize, builders, { maxChunkSize, maxLinkPerNode } = {
63
+ const processBufferToIPLDFormat = (blockstore_1, buffer_1, filename_1, totalSize_1, builders_1, ...args_1) => __awaiter(void 0, [blockstore_1, buffer_1, filename_1, totalSize_1, builders_1, ...args_1], void 0, function* (blockstore, buffer, filename, totalSize, builders, { maxChunkSize = DEFAULT_MAX_CHUNK_SIZE, maxLinkPerNode = DEFAULT_MAX_LINK_PER_NODE, encryption = undefined, compression = undefined, } = {
60
64
  maxChunkSize: DEFAULT_MAX_CHUNK_SIZE,
61
65
  maxLinkPerNode: DEFAULT_MAX_LINK_PER_NODE,
66
+ encryption: undefined,
67
+ compression: undefined,
62
68
  }) {
63
69
  var _a, e_1, _b, _c;
64
- const bufferChunks = chunkBuffer(buffer, { maxChunkSize });
70
+ const bufferChunks = chunkBuffer(buffer, { maxChunkSize: maxChunkSize });
65
71
  let CIDs = [];
66
72
  try {
67
73
  for (var _d = true, bufferChunks_1 = __asyncValues(bufferChunks), bufferChunks_1_1; bufferChunks_1_1 = yield bufferChunks_1.next(), _a = bufferChunks_1_1.done, !_a; _d = true) {
@@ -84,11 +90,15 @@ const processBufferToIPLDFormat = (blockstore_1, buffer_1, filename_1, totalSize
84
90
  return processBufferToIPLDFormatFromChunks(blockstore, CIDs, filename, totalSize, builders, {
85
91
  maxLinkPerNode,
86
92
  maxChunkSize,
93
+ encryption,
94
+ compression,
87
95
  });
88
96
  });
89
- export const processBufferToIPLDFormatFromChunks = (blockstore_1, chunks_1, filename_1, totalSize_1, builders_1, ...args_1) => __awaiter(void 0, [blockstore_1, chunks_1, filename_1, totalSize_1, builders_1, ...args_1], void 0, function* (blockstore, chunks, filename, totalSize, builders, { maxLinkPerNode, maxChunkSize } = {
90
- maxLinkPerNode: DEFAULT_MAX_LINK_PER_NODE,
97
+ export const processBufferToIPLDFormatFromChunks = (blockstore_1, chunks_1, filename_1, totalSize_1, builders_1, ...args_1) => __awaiter(void 0, [blockstore_1, chunks_1, filename_1, totalSize_1, builders_1, ...args_1], void 0, function* (blockstore, chunks, filename, totalSize, builders, { maxChunkSize = DEFAULT_MAX_CHUNK_SIZE, maxLinkPerNode = DEFAULT_MAX_LINK_PER_NODE, encryption = undefined, compression = undefined, } = {
91
98
  maxChunkSize: DEFAULT_MAX_CHUNK_SIZE,
99
+ maxLinkPerNode: DEFAULT_MAX_LINK_PER_NODE,
100
+ encryption: undefined,
101
+ compression: undefined,
92
102
  }) {
93
103
  var _a, chunks_2, chunks_2_1;
94
104
  var _b, e_2, _c, _d;
@@ -114,7 +124,10 @@ export const processBufferToIPLDFormatFromChunks = (blockstore_1, chunks_1, file
114
124
  const nodeBytes = yield blockstore.get(CIDs[0]);
115
125
  yield blockstore.delete(CIDs[0]);
116
126
  const data = decodeIPLDNodeData(nodeBytes);
117
- const singleNode = builders.single(Buffer.from(data.data), filename);
127
+ const singleNode = builders.single(Buffer.from(data.data), filename, {
128
+ compression,
129
+ encryption,
130
+ });
118
131
  yield blockstore.put(cidOfNode(singleNode), encodeNode(singleNode));
119
132
  const headCID = cidOfNode(singleNode);
120
133
  return headCID;
@@ -132,12 +145,20 @@ export const processBufferToIPLDFormatFromChunks = (blockstore_1, chunks_1, file
132
145
  depth++;
133
146
  CIDs = newCIDs;
134
147
  }
135
- const head = builders.root(CIDs, totalSize, depth, filename, maxChunkSize);
148
+ const head = builders.root(CIDs, totalSize, depth, filename, maxChunkSize, {
149
+ compression,
150
+ encryption,
151
+ });
136
152
  const headCID = cidOfNode(head);
137
153
  yield blockstore.put(headCID, encodeNode(head));
138
154
  return headCID;
139
155
  });
140
- export const processFolderToIPLDFormat = (blockstore_1, children_1, name_1, size_1, ...args_1) => __awaiter(void 0, [blockstore_1, children_1, name_1, size_1, ...args_1], void 0, function* (blockstore, children, name, size, { maxLinkPerNode } = { maxLinkPerNode: DEFAULT_MAX_LINK_PER_NODE }) {
156
+ export const processFolderToIPLDFormat = (blockstore_1, children_1, name_1, size_1, ...args_1) => __awaiter(void 0, [blockstore_1, children_1, name_1, size_1, ...args_1], void 0, function* (blockstore, children, name, size, { maxLinkPerNode = DEFAULT_MAX_LINK_PER_NODE, maxChunkSize = DEFAULT_MAX_CHUNK_SIZE, compression = undefined, encryption = undefined, } = {
157
+ maxLinkPerNode: DEFAULT_MAX_LINK_PER_NODE,
158
+ maxChunkSize: DEFAULT_MAX_CHUNK_SIZE,
159
+ compression: undefined,
160
+ encryption: undefined,
161
+ }) {
141
162
  let cids = children;
142
163
  let depth = 0;
143
164
  while (cids.length > maxLinkPerNode) {
@@ -152,7 +173,10 @@ export const processFolderToIPLDFormat = (blockstore_1, children_1, name_1, size
152
173
  cids = newCIDs;
153
174
  depth++;
154
175
  }
155
- const node = createFolderIpldNode(cids, name, depth, size);
176
+ const node = createFolderIpldNode(cids, name, depth, size, maxChunkSize, {
177
+ compression,
178
+ encryption,
179
+ });
156
180
  const cid = cidOfNode(node);
157
181
  yield blockstore.put(cid, encodeNode(node));
158
182
  return cid;
@@ -1,15 +1,15 @@
1
1
  import { CID } from 'multiformats/cid';
2
2
  import { PBNode } from '../ipld/index.js';
3
- import { OffchainMetadata } from '../metadata/index.js';
3
+ import { FileUploadOptions, OffchainMetadata } from '../metadata/index.js';
4
4
  export declare const createFileChunkIpldNode: (data: Buffer) => PBNode;
5
- export declare const createChunkedFileIpldNode: (links: CID[], size: number, linkDepth: number, name?: string, maxNodeSize?: number) => PBNode;
5
+ export declare const createChunkedFileIpldNode: (links: CID[], size: number, linkDepth: number, name?: string, maxNodeSize?: number, uploadOptions?: FileUploadOptions) => PBNode;
6
6
  export declare const createFileInlinkIpldNode: (links: CID[], size: number, linkDepth: number, maxNodeSize?: number) => PBNode;
7
- export declare const createSingleFileIpldNode: (data: Buffer, name?: string) => PBNode;
7
+ export declare const createSingleFileIpldNode: (data: Buffer, name?: string, uploadOptions?: FileUploadOptions) => PBNode;
8
8
  export declare const createMetadataInlinkIpldNode: (links: CID[], size: number, linkDepth: number, maxNodeSize?: number) => PBNode;
9
9
  export declare const createSingleMetadataIpldNode: (data: Buffer, name?: string) => PBNode;
10
10
  export declare const createMetadataChunkIpldNode: (data: Buffer) => PBNode;
11
11
  export declare const createChunkedMetadataIpldNode: (links: CID[], size: number, linkDepth: number, name?: string, maxNodeSize?: number) => PBNode;
12
- export declare const createFolderIpldNode: (links: CID[], name: string, linkDepth: number, size: number, maxNodeSize?: number) => PBNode;
12
+ export declare const createFolderIpldNode: (links: CID[], name: string, linkDepth: number, size: number, maxNodeSize?: number, uploadOptions?: FileUploadOptions) => PBNode;
13
13
  export declare const createFolderInlinkIpldNode: (links: CID[], linkDepth: number, maxNodeSize?: number) => PBNode;
14
14
  export declare const createMetadataNode: (metadata: OffchainMetadata, maxNodeSize?: number) => PBNode;
15
15
  //# sourceMappingURL=nodes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../src/ipld/nodes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAc,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAKvD,eAAO,MAAM,uBAAuB,SAAU,MAAM,KAAG,MASpD,CAAA;AAKH,eAAO,MAAM,yBAAyB,UAC7B,GAAG,EAAE,QACN,MAAM,aACD,MAAM,SACV,MAAM,gBACA,MAAM,KAClB,MAYA,CAAA;AAGH,eAAO,MAAM,wBAAwB,UAC5B,GAAG,EAAE,QACN,MAAM,aACD,MAAM,gBACJ,MAAM,KAClB,MAWA,CAAA;AAKH,eAAO,MAAM,wBAAwB,SAAU,MAAM,SAAS,MAAM,KAAG,MAUpE,CAAA;AAKH,eAAO,MAAM,4BAA4B,UAChC,GAAG,EAAE,QACN,MAAM,aACD,MAAM,gBACJ,MAAM,KAClB,MAWA,CAAA;AAKH,eAAO,MAAM,4BAA4B,SAAU,MAAM,SAAS,MAAM,KAAG,MAUxE,CAAA;AAEH,eAAO,MAAM,2BAA2B,SAAU,MAAM,KAAG,MAQxD,CAAA;AAEH,eAAO,MAAM,6BAA6B,UACjC,GAAG,EAAE,QACN,MAAM,aACD,MAAM,SACV,MAAM,gBACA,MAAM,KAClB,MAYA,CAAA;AAKH,eAAO,MAAM,oBAAoB,UACxB,GAAG,EAAE,QACN,MAAM,aACD,MAAM,QACX,MAAM,gBACC,MAAM,KAClB,MAYA,CAAA;AAEH,eAAO,MAAM,0BAA0B,UAC9B,GAAG,EAAE,aACD,MAAM,gBACJ,MAAM,KAClB,MAUA,CAAA;AAGH,eAAO,MAAM,kBAAkB,aACnB,gBAAgB,gBACb,MAAM,KAClB,MAcF,CAAA"}
1
+ {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../src/ipld/nodes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAc,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAK1E,eAAO,MAAM,uBAAuB,SAAU,MAAM,KAAG,MASpD,CAAA;AAKH,eAAO,MAAM,yBAAyB,UAC7B,GAAG,EAAE,QACN,MAAM,aACD,MAAM,SACV,MAAM,gBACA,MAAM,kBACH,iBAAiB,KAChC,MAaA,CAAA;AAGH,eAAO,MAAM,wBAAwB,UAC5B,GAAG,EAAE,QACN,MAAM,aACD,MAAM,gBACJ,MAAM,KAClB,MAWA,CAAA;AAKH,eAAO,MAAM,wBAAwB,SAC7B,MAAM,SACL,MAAM,kBACG,iBAAiB,KAChC,MAWA,CAAA;AAKH,eAAO,MAAM,4BAA4B,UAChC,GAAG,EAAE,QACN,MAAM,aACD,MAAM,gBACJ,MAAM,KAClB,MAWA,CAAA;AAKH,eAAO,MAAM,4BAA4B,SAAU,MAAM,SAAS,MAAM,KAAG,MAUxE,CAAA;AAEH,eAAO,MAAM,2BAA2B,SAAU,MAAM,KAAG,MAQxD,CAAA;AAEH,eAAO,MAAM,6BAA6B,UACjC,GAAG,EAAE,QACN,MAAM,aACD,MAAM,SACV,MAAM,gBACA,MAAM,KAClB,MAYA,CAAA;AAKH,eAAO,MAAM,oBAAoB,UACxB,GAAG,EAAE,QACN,MAAM,aACD,MAAM,QACX,MAAM,gBACC,MAAM,kBACH,iBAAiB,KAChC,MAaA,CAAA;AAEH,eAAO,MAAM,0BAA0B,UAC9B,GAAG,EAAE,aACD,MAAM,gBACJ,MAAM,KAClB,MAUA,CAAA;AAGH,eAAO,MAAM,kBAAkB,aACnB,gBAAgB,gBACb,MAAM,KAClB,MAcF,CAAA"}
@@ -11,11 +11,12 @@ export const createFileChunkIpldNode = (data) => createNode(encodeIPLDNodeData({
11
11
  // Creates a file ipld node
12
12
  // links: the CIDs of the file's contents
13
13
  // @todo: add the file's metadata
14
- export const createChunkedFileIpldNode = (links, size, linkDepth, name, maxNodeSize = DEFAULT_MAX_CHUNK_SIZE) => ensureNodeMaxSize(createNode(encodeIPLDNodeData({
14
+ export const createChunkedFileIpldNode = (links, size, linkDepth, name, maxNodeSize = DEFAULT_MAX_CHUNK_SIZE, uploadOptions) => ensureNodeMaxSize(createNode(encodeIPLDNodeData({
15
15
  type: MetadataType.File,
16
16
  name,
17
17
  size,
18
18
  linkDepth,
19
+ uploadOptions,
19
20
  }), links.map((cid) => ({ Hash: cid }))), maxNodeSize);
20
21
  // Creates a file ipld node
21
22
  // links: the CIDs of the file's contents
@@ -27,12 +28,13 @@ export const createFileInlinkIpldNode = (links, size, linkDepth, maxNodeSize = D
27
28
  // Creates a file ipld node
28
29
  // links: the CIDs of the file's contents
29
30
  // @todo: add the file's metadata
30
- export const createSingleFileIpldNode = (data, name) => createNode(encodeIPLDNodeData({
31
+ export const createSingleFileIpldNode = (data, name, uploadOptions) => createNode(encodeIPLDNodeData({
31
32
  type: MetadataType.File,
32
33
  name,
33
34
  size: data.length,
34
35
  linkDepth: 0,
35
36
  data,
37
+ uploadOptions,
36
38
  }), []);
37
39
  // Creates a file ipld node
38
40
  // links: the CIDs of the file's contents
@@ -67,11 +69,12 @@ export const createChunkedMetadataIpldNode = (links, size, linkDepth, name, maxN
67
69
  // Creates a folder ipld node
68
70
  // links: the CIDs of the folder's contents
69
71
  // @todo: add the folder's metadata
70
- export const createFolderIpldNode = (links, name, linkDepth, size, maxNodeSize = DEFAULT_MAX_CHUNK_SIZE) => ensureNodeMaxSize(createNode(encodeIPLDNodeData({
72
+ export const createFolderIpldNode = (links, name, linkDepth, size, maxNodeSize = DEFAULT_MAX_CHUNK_SIZE, uploadOptions) => ensureNodeMaxSize(createNode(encodeIPLDNodeData({
71
73
  type: MetadataType.Folder,
72
74
  name,
73
75
  size,
74
76
  linkDepth,
77
+ uploadOptions,
75
78
  }), links.map((cid) => ({ Hash: cid }))), maxNodeSize);
76
79
  export const createFolderInlinkIpldNode = (links, linkDepth, maxNodeSize = DEFAULT_MAX_CHUNK_SIZE) => ensureNodeMaxSize(createNode(encodeIPLDNodeData({
77
80
  type: MetadataType.FolderInlink,
@@ -1,4 +1,5 @@
1
1
  import { CID } from 'multiformats';
2
+ import { FileUploadOptions } from '../../index.js';
2
3
  export type OffchainFileMetadata = {
3
4
  type: 'file';
4
5
  dataCid: string;
@@ -7,10 +8,11 @@ export type OffchainFileMetadata = {
7
8
  totalSize: number;
8
9
  totalChunks: number;
9
10
  chunks: ChunkInfo[];
11
+ uploadOptions?: FileUploadOptions;
10
12
  };
11
13
  export interface ChunkInfo {
12
14
  size: number;
13
15
  cid: string;
14
16
  }
15
- export declare const fileMetadata: (headCID: CID, chunks: ChunkInfo[], totalSize: number, name?: string | null, mimeType?: string | null) => OffchainFileMetadata;
17
+ export declare const fileMetadata: (headCID: CID, chunks: ChunkInfo[], totalSize: number, name?: string | null, mimeType?: string | null, uploadOptions?: FileUploadOptions) => OffchainFileMetadata;
16
18
  //# sourceMappingURL=file.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../src/metadata/offchain/file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAGlC,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,SAAS,EAAE,CAAA;CACpB,CAAA;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,eAAO,MAAM,YAAY,YACd,GAAG,UACJ,SAAS,EAAE,aACR,MAAM,SACV,MAAM,GAAG,IAAI,aACT,MAAM,GAAG,IAAI,KACvB,oBAUF,CAAA"}
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../src/metadata/offchain/file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAClC,OAAO,EAAe,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAE/D,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,SAAS,EAAE,CAAA;IACnB,aAAa,CAAC,EAAE,iBAAiB,CAAA;CAClC,CAAA;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,eAAO,MAAM,YAAY,YACd,GAAG,UACJ,SAAS,EAAE,aACR,MAAM,SACV,MAAM,GAAG,IAAI,aACT,MAAM,GAAG,IAAI,kBACT,iBAAiB,KAI/B,oBAWF,CAAA"}
@@ -1,5 +1,8 @@
1
1
  import { cidToString } from '../../index.js';
2
- export const fileMetadata = (headCID, chunks, totalSize, name, mimeType) => {
2
+ export const fileMetadata = (headCID, chunks, totalSize, name, mimeType, uploadOptions = {
3
+ compression: undefined,
4
+ encryption: undefined,
5
+ }) => {
3
6
  return {
4
7
  type: 'file',
5
8
  dataCid: cidToString(headCID),
@@ -8,5 +11,6 @@ export const fileMetadata = (headCID, chunks, totalSize, name, mimeType) => {
8
11
  totalSize,
9
12
  totalChunks: chunks.length,
10
13
  chunks,
14
+ uploadOptions,
11
15
  };
12
16
  };
@@ -1,5 +1,6 @@
1
1
  import { CID } from 'multiformats';
2
2
  import { PBNode } from '../../ipld/index.js';
3
+ import { FileUploadOptions } from '../onchain/index.js';
3
4
  interface ChildrenMetadata {
4
5
  type: 'folder' | 'file';
5
6
  name?: string;
@@ -13,8 +14,9 @@ export type OffchainFolderMetadata = {
13
14
  totalSize: number;
14
15
  totalFiles: number;
15
16
  children: ChildrenMetadata[];
17
+ uploadOptions: FileUploadOptions;
16
18
  };
17
19
  export declare const childrenMetadataFromNode: (node: PBNode) => ChildrenMetadata;
18
- export declare const folderMetadata: (cid: CID | string, children: ChildrenMetadata[], name?: string | null) => OffchainFolderMetadata;
20
+ export declare const folderMetadata: (cid: CID | string, children: ChildrenMetadata[], name?: string | null, uploadOptions?: FileUploadOptions) => OffchainFolderMetadata;
19
21
  export {};
20
22
  //# sourceMappingURL=folder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"folder.d.ts","sourceRoot":"","sources":["../../../src/metadata/offchain/folder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAG5C,UAAU,gBAAgB;IACxB,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,QAAQ,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,gBAAgB,EAAE,CAAA;CAC7B,CAAA;AAED,eAAO,MAAM,wBAAwB,SAAU,MAAM,KAAG,gBAYvD,CAAA;AAED,eAAO,MAAM,cAAc,QACpB,GAAG,GAAG,MAAM,YACP,gBAAgB,EAAE,SACrB,MAAM,GAAG,IAAI,KACnB,sBAWF,CAAA"}
1
+ {"version":3,"file":"folder.d.ts","sourceRoot":"","sources":["../../../src/metadata/offchain/folder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAA8B,MAAM,qBAAqB,CAAA;AAEnF,UAAU,gBAAgB;IACxB,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,QAAQ,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,gBAAgB,EAAE,CAAA;IAC5B,aAAa,EAAE,iBAAiB,CAAA;CACjC,CAAA;AAED,eAAO,MAAM,wBAAwB,SAAU,MAAM,KAAG,gBAYvD,CAAA;AAED,eAAO,MAAM,cAAc,QACpB,GAAG,GAAG,MAAM,YACP,gBAAgB,EAAE,SACrB,MAAM,GAAG,IAAI,kBACL,iBAAiB,KAC/B,sBAYF,CAAA"}
@@ -13,7 +13,7 @@ export const childrenMetadataFromNode = (node) => {
13
13
  name: ipldData.name,
14
14
  };
15
15
  };
16
- export const folderMetadata = (cid, children, name) => {
16
+ export const folderMetadata = (cid, children, name, uploadOptions = {}) => {
17
17
  cid = typeof cid === 'string' ? cid : cidToString(cid);
18
18
  return {
19
19
  dataCid: cid,
@@ -22,5 +22,6 @@ export const folderMetadata = (cid, children, name) => {
22
22
  children,
23
23
  type: 'folder',
24
24
  name: name !== null && name !== void 0 ? name : undefined,
25
+ uploadOptions,
25
26
  };
26
27
  };
@@ -6,6 +6,7 @@ export interface IPLDNodeData {
6
6
  size?: number;
7
7
  name?: string;
8
8
  data?: Uint8Array;
9
+ uploadOptions?: FileUploadOptions;
9
10
  }
10
11
  export declare namespace IPLDNodeData {
11
12
  const codec: () => Codec<IPLDNodeData>;
@@ -25,4 +26,44 @@ export declare enum MetadataType {
25
26
  export declare namespace MetadataType {
26
27
  const codec: () => Codec<MetadataType>;
27
28
  }
29
+ export interface FileUploadOptions {
30
+ compression?: CompressionOptions;
31
+ encryption?: EncryptionOptions;
32
+ }
33
+ export declare namespace FileUploadOptions {
34
+ const codec: () => Codec<FileUploadOptions>;
35
+ const encode: (obj: Partial<FileUploadOptions>) => Uint8Array;
36
+ const decode: (buf: Uint8Array | Uint8ArrayList, opts?: DecodeOptions<FileUploadOptions>) => FileUploadOptions;
37
+ }
38
+ export interface CompressionOptions {
39
+ algorithm: CompressionAlgorithm;
40
+ level?: number;
41
+ chunkSize?: number;
42
+ }
43
+ export declare namespace CompressionOptions {
44
+ const codec: () => Codec<CompressionOptions>;
45
+ const encode: (obj: Partial<CompressionOptions>) => Uint8Array;
46
+ const decode: (buf: Uint8Array | Uint8ArrayList, opts?: DecodeOptions<CompressionOptions>) => CompressionOptions;
47
+ }
48
+ export interface EncryptionOptions {
49
+ algorithm: EncryptionAlgorithm;
50
+ chunkSize?: number;
51
+ }
52
+ export declare namespace EncryptionOptions {
53
+ const codec: () => Codec<EncryptionOptions>;
54
+ const encode: (obj: Partial<EncryptionOptions>) => Uint8Array;
55
+ const decode: (buf: Uint8Array | Uint8ArrayList, opts?: DecodeOptions<EncryptionOptions>) => EncryptionOptions;
56
+ }
57
+ export declare enum CompressionAlgorithm {
58
+ ZLIB = "ZLIB"
59
+ }
60
+ export declare namespace CompressionAlgorithm {
61
+ const codec: () => Codec<CompressionAlgorithm>;
62
+ }
63
+ export declare enum EncryptionAlgorithm {
64
+ AES_256_GCM = "AES_256_GCM"
65
+ }
66
+ export declare namespace EncryptionAlgorithm {
67
+ const codec: () => Codec<EncryptionAlgorithm>;
68
+ }
28
69
  //# sourceMappingURL=OnchainMetadata.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OnchainMetadata.d.ts","sourceRoot":"","sources":["../../../../src/metadata/onchain/protobuf/OnchainMetadata.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,KAAK,EAAiB,KAAK,aAAa,EAAuC,MAAM,iBAAiB,CAAA;AACpH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,YAAY,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB;AAED,yBAAiB,YAAY,CAAC;IAGrB,MAAM,KAAK,QAAO,KAAK,CAAC,YAAY,CA+E1C,CAAA;IAEM,MAAM,MAAM,QAAS,OAAO,CAAC,YAAY,CAAC,KAAG,UAEnD,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,GAAG,cAAc,SAAS,aAAa,CAAC,YAAY,CAAC,KAAG,YAE7F,CAAA;CACF;AAED,oBAAY,YAAY;IACtB,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,YAAY,iBAAiB;IAC7B,QAAQ,aAAa;IACrB,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;CAChC;AAaD,yBAAiB,YAAY,CAAC;IACrB,MAAM,KAAK,QAAO,KAAK,CAAC,YAAY,CAE1C,CAAA;CACF"}
1
+ {"version":3,"file":"OnchainMetadata.d.ts","sourceRoot":"","sources":["../../../../src/metadata/onchain/protobuf/OnchainMetadata.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,KAAK,EAAiB,KAAK,aAAa,EAAuC,MAAM,iBAAiB,CAAA;AACpH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,YAAY,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,aAAa,CAAC,EAAE,iBAAiB,CAAA;CAClC;AAED,yBAAiB,YAAY,CAAC;IAGrB,MAAM,KAAK,QAAO,KAAK,CAAC,YAAY,CA0F1C,CAAA;IAEM,MAAM,MAAM,QAAS,OAAO,CAAC,YAAY,CAAC,KAAG,UAEnD,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,GAAG,cAAc,SAAS,aAAa,CAAC,YAAY,CAAC,KAAG,YAE7F,CAAA;CACF;AAED,oBAAY,YAAY;IACtB,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,YAAY,iBAAiB;IAC7B,QAAQ,aAAa;IACrB,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;CAChC;AAaD,yBAAiB,YAAY,CAAC;IACrB,MAAM,KAAK,QAAO,KAAK,CAAC,YAAY,CAE1C,CAAA;CACF;AACD,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,kBAAkB,CAAA;IAChC,UAAU,CAAC,EAAE,iBAAiB,CAAA;CAC/B;AAED,yBAAiB,iBAAiB,CAAC;IAG1B,MAAM,KAAK,QAAO,KAAK,CAAC,iBAAiB,CAqD/C,CAAA;IAEM,MAAM,MAAM,QAAS,OAAO,CAAC,iBAAiB,CAAC,KAAG,UAExD,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,GAAG,cAAc,SAAS,aAAa,CAAC,iBAAiB,CAAC,KAAG,iBAElG,CAAA;CACF;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,oBAAoB,CAAA;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,yBAAiB,kBAAkB,CAAC;IAG3B,MAAM,KAAK,QAAO,KAAK,CAAC,kBAAkB,CA4DhD,CAAA;IAEM,MAAM,MAAM,QAAS,OAAO,CAAC,kBAAkB,CAAC,KAAG,UAEzD,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,GAAG,cAAc,SAAS,aAAa,CAAC,kBAAkB,CAAC,KAAG,kBAEnG,CAAA;CACF;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,mBAAmB,CAAA;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,yBAAiB,iBAAiB,CAAC;IAG1B,MAAM,KAAK,QAAO,KAAK,CAAC,iBAAiB,CAmD/C,CAAA;IAEM,MAAM,MAAM,QAAS,OAAO,CAAC,iBAAiB,CAAC,KAAG,UAExD,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,GAAG,cAAc,SAAS,aAAa,CAAC,iBAAiB,CAAC,KAAG,iBAElG,CAAA;CACF;AAED,oBAAY,oBAAoB;IAC9B,IAAI,SAAS;CACd;AAMD,yBAAiB,oBAAoB,CAAC;IAC7B,MAAM,KAAK,QAAO,KAAK,CAAC,oBAAoB,CAElD,CAAA;CACF;AACD,oBAAY,mBAAmB;IAC7B,WAAW,gBAAgB;CAC5B;AAMD,yBAAiB,mBAAmB,CAAC;IAC5B,MAAM,KAAK,QAAO,KAAK,CAAC,mBAAmB,CAEjD,CAAA;CACF"}