rac-delta 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1 +1,91 @@
1
- Under construction.
1
+ <p align="center">
2
+ <img src="https://i.imgur.com/TzcVUYs.png" alt="Rac-delta logo" width="140"/>
3
+ <img src="https://nodejs.org/static/logos/jsIconGreen.svg" alt="node logo" width="100"/>
4
+ </p>
5
+
6
+ ---
7
+
8
+ # rac-delta 🦝
9
+
10
+ rac-delta is an open delta-patching protocol made for sync builds of your apps, games, or anything you store in a folder!
11
+
12
+ This is the official SDK for NodeJs.
13
+
14
+ ## Benefits of rac-delta
15
+
16
+ - **Backend agnostic**: it does not depend on a concrete service (S3, Azure, SSH, signed URLs, etc.)
17
+ - **Modular**: almost any remote storage can be used via adapters
18
+ - **Simple**: an unique index archive (rdindex.json) centralices all information.
19
+ - **Efficiency**: supports streaming, concurrency, and uses **Blake3** for fast hashing.
20
+ - **Flexibility**: highly customizable, chunk size, concurrency limits, reconstruction strategies...
21
+
22
+ ---
23
+
24
+ ## Installation
25
+
26
+ ```
27
+ npm install rac-delta
28
+ ```
29
+
30
+ ## Basic usage
31
+
32
+ In order to use the rac-delta SDK, you will need to create a RacDeltaClient, the main entry point of the SDK and where all the rac-delta operations are invoked.
33
+
34
+ ```ts
35
+ import { RacDeltaClient } from 'rac-delta';
36
+
37
+ const racDeltaClient = new RacDeltaClient({
38
+ chunkSize: 1024 * 1024,
39
+ maxConcurrency: 6,
40
+ storage: {
41
+ type: 'ssh',
42
+ host: 'localhost',
43
+ pathPrefix: '/root/upload',
44
+ port: 2222,
45
+ credentials: {
46
+ username: 'root',
47
+ password: 'password',
48
+ },
49
+ },
50
+ });
51
+ ```
52
+
53
+ And a example to perform a upload to the selected storage (SSH in this case)
54
+
55
+ ```ts
56
+ const remoteIndexToUse = undefined;
57
+
58
+ await racDeltaClient.pipelines.upload.execute('path/to/build', remoteIndexToUse, {
59
+ requireRemoteIndex: false,
60
+ force: false,
61
+ ignorePatterns: undefined,
62
+ onStateChange: (state) => {
63
+ console.log(state);
64
+ },
65
+ onProgress: (type, progress, speed) => {
66
+ console.log(type, progress.toFixed(1), speed?.toFixed(1));
67
+ },
68
+ });
69
+ ```
70
+
71
+ ## Documentation
72
+
73
+ For all the details, check the [full documentation](https://raccreative.github.io/rac-delta-docs/).
74
+
75
+ Available in spanish too!
76
+
77
+ ---
78
+
79
+ ## Contributing
80
+
81
+ Contributions are welcome!
82
+
83
+ 1. Fork the repository.
84
+ 2. Create a branch for your feature/fix (`git checkout -b feature/new-feature`).
85
+ 3. Commit your changes (`git commit -m 'Added new feature'`).
86
+ 4. Push to your branch (`git push origin feature/new-feature`).
87
+ 5. Open a Pull Request.
88
+
89
+ ## License
90
+
91
+ This project is licensed under the [MIT License](LICENSE).
@@ -1 +1 @@
1
- {"version":3,"file":"rac-delta-config.d.ts","sourceRoot":"","sources":["../../../src/core/config/rac-delta-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rac-delta-config.d.ts","sourceRoot":"","sources":["../../../src/core/config/rac-delta-config.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ export interface HasherService {
21
21
  * @param stream
22
22
  * @param onChunk callback that returns the processed bytes
23
23
  */
24
- hashStream(stream: AsyncChunkStream, onChunk?: (chunk: Uint8Array) => void): Promise<Chunk[]>;
24
+ hashStream(stream: AsyncChunkStream, onChunk?: (chunk: Uint8Array, hash: string) => void): Promise<Chunk[]>;
25
25
  /**
26
26
  * Returns a hash of a buffer
27
27
  *
@@ -1 +1 @@
1
- {"version":3,"file":"hasher-service.d.ts","sourceRoot":"","sources":["../../../src/core/services/hasher-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAAC;IAExC,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B;;;;;;;;OAQG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAEnF;;;;;OAKG;IACH,UAAU,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAE9F;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9C;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtE;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjE,qBAAqB,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;CACnD"}
1
+ {"version":3,"file":"hasher-service.d.ts","sourceRoot":"","sources":["../../../src/core/services/hasher-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAAC;IAExC,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B;;;;;;;;OAQG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAEnF;;;;;OAKG;IACH,UAAU,CACR,MAAM,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GAClD,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAEpB;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9C;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtE;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjE,qBAAqB,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;CACnD"}
@@ -2,13 +2,13 @@ import { HashDownloadPipeline, HashUploadPipeline, UrlDownloadPipeline, UrlUploa
2
2
  import { RacDeltaConfig } from '../../core/config';
3
3
  import { StorageAdapter } from '../../core/adapters';
4
4
  import { ServiceBundle } from './service-factory';
5
- export type PipelineBundleFor<S extends StorageAdapter> = S['type'] extends 'hash' ? {
5
+ export type PipelineBundleFor<S extends StorageAdapter> = S extends any ? S['type'] extends 'hash' ? {
6
6
  upload: HashUploadPipeline;
7
7
  download: HashDownloadPipeline;
8
8
  } : S['type'] extends 'url' ? {
9
9
  upload: UrlUploadPipeline;
10
10
  download: UrlDownloadPipeline;
11
- } : never;
11
+ } : never : never;
12
12
  export declare class PipelineFactory {
13
13
  static create<S extends StorageAdapter>(storage: S, services: ServiceBundle, config: RacDeltaConfig): PipelineBundleFor<S>;
14
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline-factory.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/factories/pipeline-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAsB,cAAc,EAAqB,MAAM,qBAAqB,CAAC;AAO5F,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,cAAc,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,MAAM,GAC9E;IACE,MAAM,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,EAAE,oBAAoB,CAAC;CAChC,GACD,CAAC,CAAC,MAAM,CAAC,SAAS,KAAK,GACrB;IACE,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,mBAAmB,CAAC;CAC/B,GACD,KAAK,CAAC;AAEZ,qBAAa,eAAe;IAC1B,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,cAAc,EACpC,OAAO,EAAE,CAAC,EACV,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,cAAc,GACrB,iBAAiB,CAAC,CAAC,CAAC;CA6BxB"}
1
+ {"version":3,"file":"pipeline-factory.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/factories/pipeline-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAsB,cAAc,EAAqB,MAAM,qBAAqB,CAAC;AAO5F,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,cAAc,IAAI,CAAC,SAAS,GAAG,GACnE,CAAC,CAAC,MAAM,CAAC,SAAS,MAAM,GACtB;IACE,MAAM,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,EAAE,oBAAoB,CAAC;CAChC,GACD,CAAC,CAAC,MAAM,CAAC,SAAS,KAAK,GACrB;IACE,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,mBAAmB,CAAC;CAC/B,GACD,KAAK,GACT,KAAK,CAAC;AAEV,qBAAa,eAAe;IAC1B,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,cAAc,EACpC,OAAO,EAAE,CAAC,EACV,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,cAAc,GACrB,iBAAiB,CAAC,CAAC,CAAC;CA6BxB"}
@@ -4,7 +4,7 @@ import { FileEntry, Chunk } from '../../core/models';
4
4
  import { Nullish } from '../../core/types';
5
5
  export declare class HashWasmHasherService implements HasherService {
6
6
  hashFile(filePath: string, rootDir: string, chunkSize: number): Promise<FileEntry>;
7
- hashStream(stream: AsyncChunkStream, onChunk?: Nullish<(chunk: Uint8Array) => void>): Promise<Chunk[]>;
7
+ hashStream(stream: AsyncChunkStream, onChunk?: Nullish<(chunk: Uint8Array, hash: string) => void>): Promise<Chunk[]>;
8
8
  verifyChunk(data: Uint8Array, expectedHash: string): Promise<boolean>;
9
9
  hashBuffer(data: Uint8Array): Promise<string>;
10
10
  verifyFile(path: string, expectedHash: string): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"hash-wasm-hasher-service.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/services/hash-wasm-hasher-service.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAErE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,qBAAa,qBAAsB,YAAW,aAAa;IACnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAiDlF,UAAU,CACd,MAAM,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC,GAC7C,OAAO,CAAC,KAAK,EAAE,CAAC;IAqCb,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQrE,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAM7C,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBhE,qBAAqB,IAAI,OAAO,CAAC,eAAe,CAAC;CAYxD"}
1
+ {"version":3,"file":"hash-wasm-hasher-service.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/services/hash-wasm-hasher-service.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAErE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,qBAAa,qBAAsB,YAAW,aAAa;IACnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAiDlF,UAAU,CACd,MAAM,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAC3D,OAAO,CAAC,KAAK,EAAE,CAAC;IAqCb,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQrE,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAM7C,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBhE,qBAAqB,IAAI,OAAO,CAAC,eAAe,CAAC;CAYxD"}
@@ -55,7 +55,7 @@ class HashWasmHasherService {
55
55
  chunkHasher.update(chunk);
56
56
  const chunkHash = chunkHasher.digest('hex');
57
57
  if (onChunk) {
58
- onChunk(chunk);
58
+ onChunk(chunk, chunkHash);
59
59
  }
60
60
  chunks.push({
61
61
  hash: chunkHash,
package/package.json CHANGED
@@ -1,9 +1,13 @@
1
1
  {
2
2
  "name": "rac-delta",
3
3
  "description": "Storage agnostic delta patching implementation of rac-delta protocol for NodeJs. With streaming support and file reconstruction.",
4
- "version": "1.0.0",
4
+ "version": "1.0.2",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/raccreative/rac-delta-js.git"
10
+ },
7
11
  "files": [
8
12
  "dist"
9
13
  ],