@toa.io/extensions.storages 1.0.0-alpha.7 → 1.0.0-alpha.78

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 (47) hide show
  1. package/package.json +8 -8
  2. package/readme.md +32 -22
  3. package/schemas/fs.cos.yaml +2 -0
  4. package/schemas/s3.cos.yaml +1 -0
  5. package/schemas/tmp.cos.yaml +0 -1
  6. package/source/Entry.ts +1 -0
  7. package/source/Factory.ts +7 -4
  8. package/source/Provider.ts +5 -0
  9. package/source/Scanner.ts +46 -17
  10. package/source/Storage.test.ts +126 -76
  11. package/source/Storage.ts +92 -91
  12. package/source/deployment.ts +38 -7
  13. package/source/providers/FileSystem.test.ts +6 -0
  14. package/source/providers/FileSystem.ts +15 -2
  15. package/source/providers/Memory.ts +21 -7
  16. package/source/providers/S3.test.ts +1 -0
  17. package/source/providers/S3.ts +36 -6
  18. package/source/providers/index.test.ts +10 -0
  19. package/source/test/arny.jpg +0 -0
  20. package/source/test/sample.avi +0 -0
  21. package/source/test/sample.svg +4 -0
  22. package/source/test/sample.wav +0 -0
  23. package/transpiled/Entry.d.ts +1 -0
  24. package/transpiled/Factory.js +5 -3
  25. package/transpiled/Factory.js.map +1 -1
  26. package/transpiled/Provider.d.ts +3 -0
  27. package/transpiled/Provider.js +1 -0
  28. package/transpiled/Provider.js.map +1 -1
  29. package/transpiled/Scanner.d.ts +3 -1
  30. package/transpiled/Scanner.js +36 -15
  31. package/transpiled/Scanner.js.map +1 -1
  32. package/transpiled/Storage.d.ts +6 -6
  33. package/transpiled/Storage.js +66 -78
  34. package/transpiled/Storage.js.map +1 -1
  35. package/transpiled/deployment.d.ts +1 -1
  36. package/transpiled/deployment.js +30 -7
  37. package/transpiled/deployment.js.map +1 -1
  38. package/transpiled/providers/FileSystem.d.ts +4 -1
  39. package/transpiled/providers/FileSystem.js +10 -1
  40. package/transpiled/providers/FileSystem.js.map +1 -1
  41. package/transpiled/providers/Memory.d.ts +2 -0
  42. package/transpiled/providers/Memory.js +13 -1
  43. package/transpiled/providers/Memory.js.map +1 -1
  44. package/transpiled/providers/S3.d.ts +3 -0
  45. package/transpiled/providers/S3.js +23 -4
  46. package/transpiled/providers/S3.js.map +1 -1
  47. package/transpiled/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Memory.js","sourceRoot":"","sources":["../../source/providers/Memory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAsC;AACtC,yCAAgC;AAChC,qDAA8C;AAC9C,oDAAqC;AAErC,0CAAsC;AAEtC;;GAEG;AACH,MAAa,QAAS,SAAQ,mBAAQ;IACnB,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAA;IAEpC,KAAK,CAAC,GAAG,CAAE,IAAY;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAEnC,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,IAAI,CAAA;QAEnC,OAAO,sBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC5B,CAAC;IAEe,KAAK,CAAC,GAAG,CAAE,IAAY,EAAE,QAAgB,EAAE,MAAgB;QACzE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,gBAAI,EAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAA,kBAAM,EAAC,MAAM,CAAC,CAAC,CAAA;IAC9D,CAAC;IAEe,KAAK,CAAC,MAAM,CAAE,IAAY;QACxC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACjC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAClD,CAAC;IAEe,KAAK,CAAC,IAAI,CAAE,IAAY,EAAE,EAAU;QAClD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,qCAAqC,CAAC,CAAA;QAEhE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAElC,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,SAAS,EAAE,mBAAmB,IAAI,EAAE,CAAC,CAAA;QAEvD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;QACzB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;CACF;AA9BD,4BA8BC"}
1
+ {"version":3,"file":"Memory.js","sourceRoot":"","sources":["../../source/providers/Memory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAsC;AACtC,yCAAuC;AACvC,qDAA8C;AAC9C,oDAAqC;AAErC,0CAAsC;AAEtC;;GAEG;AACH,MAAa,QAAS,SAAQ,mBAAQ;IACnB,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAA;IAE7C,KAAK,CAAC,GAAG,CAAE,IAAY;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAEnC,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,IAAI,CAAA;QAEnC,OAAO,sBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC5B,CAAC;IAEM,KAAK,CAAC,IAAI,CAAE,IAAY;QAC7B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;aACnC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;aACxC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAClC,CAAC;IAEM,KAAK,CAAC,GAAG,CAAE,IAAY,EAAE,QAAgB,EAAE,MAAgB;QAChE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,gBAAI,EAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAA,kBAAM,EAAC,MAAM,CAAC,CAAC,CAAA;IAC9D,CAAC;IAEM,KAAK,CAAC,MAAM,CAAE,IAAY;QAC/B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACjC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAClD,CAAC;IAEM,KAAK,CAAC,IAAI,CAAE,IAAY,EAAE,EAAU;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAElC,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,SAAS,EAAE,mBAAmB,IAAI,EAAE,CAAC,CAAA;QAEvD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;QACzB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAEM,KAAK,CAAC,OAAO,CAAE,IAAY,EAAE,EAAU;QAC5C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACjC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBAExC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,CAAA;gBAC9C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YACxB,CAAC;IACL,CAAC;CACF;AA5CD,4BA4CC"}
@@ -15,6 +15,7 @@ export declare class S3 extends Provider<S3Options> {
15
15
  protected readonly client: S3Client;
16
16
  constructor(options: S3Options, secrets?: S3Secrets);
17
17
  get(Key: string): Promise<Readable | null>;
18
+ list(prefix: string): Promise<string[]>;
18
19
  put(path: string, filename: string, stream: Readable): Promise<void>;
19
20
  /**
20
21
  * Deletes either a single object or "directory" - all objects
@@ -23,5 +24,7 @@ export declare class S3 extends Provider<S3Options> {
23
24
  */
24
25
  delete(Key: string): Promise<void>;
25
26
  move(from: string, keyTo: string): Promise<void>;
27
+ moveDir(from: string, to: string): Promise<void>;
28
+ private listObjects;
26
29
  }
27
30
  export {};
@@ -31,6 +31,7 @@ const node_stream_1 = require("node:stream");
31
31
  const node_buffer_1 = require("node:buffer");
32
32
  const posix_1 = require("node:path/posix");
33
33
  const node_assert_1 = __importDefault(require("node:assert"));
34
+ const node_path_1 = require("node:path");
34
35
  const lib_storage_1 = require("@aws-sdk/lib-storage");
35
36
  const client_s3_1 = require("@aws-sdk/client-s3");
36
37
  const nodeNativeFetch = __importStar(require("smithy-node-native-fetch"));
@@ -98,6 +99,10 @@ class S3 extends Provider_1.Provider {
98
99
  throw err;
99
100
  }
100
101
  }
102
+ async list(prefix) {
103
+ return (await this.listObjects(prefix))
104
+ .map(({ Key }) => node_path_1.posix.basename(Key));
105
+ }
101
106
  async put(path, filename, stream) {
102
107
  await new lib_storage_1.Upload({
103
108
  client: this.client,
@@ -126,10 +131,7 @@ class S3 extends Provider_1.Provider {
126
131
  catch (err) {
127
132
  node_assert_1.default.ok(err instanceof client_s3_1.NotFound || err instanceof client_s3_1.NoSuchKey, err);
128
133
  }
129
- const objectsToRemove = [];
130
- for await (const page of (0, client_s3_1.paginateListObjectsV2)({ client }, { Bucket, Prefix: Key }))
131
- for (const { Key } of page.Contents ?? [])
132
- objectsToRemove.push({ Key });
134
+ const objectsToRemove = await this.listObjects(Key);
133
135
  // Removing all objects in parallel in batches
134
136
  await Promise.all((function* () {
135
137
  while (objectsToRemove.length > 0)
@@ -149,6 +151,23 @@ class S3 extends Provider_1.Provider {
149
151
  }));
150
152
  await this.client.send(new client_s3_1.DeleteObjectCommand({ Bucket: this.bucket, Key: from }));
151
153
  }
154
+ async moveDir(from, to) {
155
+ const objects = await this.listObjects(from);
156
+ await Promise.all(objects.map(async ({ Key }) => {
157
+ const ent = node_path_1.posix.basename(Key);
158
+ const source = node_path_1.posix.join(from, ent);
159
+ const target = node_path_1.posix.join(to, ent);
160
+ return this.move(source, target);
161
+ }));
162
+ }
163
+ async listObjects(Prefix) {
164
+ const { client, bucket: Bucket } = this;
165
+ const objects = [];
166
+ for await (const page of (0, client_s3_1.paginateListObjectsV2)({ client }, { Bucket, Prefix }))
167
+ for (const { Key } of page.Contents ?? [])
168
+ objects.push({ Key });
169
+ return objects;
170
+ }
152
171
  }
153
172
  exports.S3 = S3;
154
173
  //# sourceMappingURL=S3.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"S3.js","sourceRoot":"","sources":["../../source/providers/S3.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"S3.js","sourceRoot":"","sources":["../../source/providers/S3.ts"],"names":[],"mappings":"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"}