@arikajs/storage 0.0.3 → 0.0.5

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 (42) hide show
  1. package/README.md +77 -19
  2. package/dist/Contracts/Filesystem.d.ts +16 -0
  3. package/dist/Contracts/Filesystem.d.ts.map +1 -1
  4. package/dist/Disk.d.ts +16 -0
  5. package/dist/Disk.d.ts.map +1 -1
  6. package/dist/Disk.js +69 -0
  7. package/dist/Disk.js.map +1 -1
  8. package/dist/Drivers/AzureDriver.d.ts +26 -0
  9. package/dist/Drivers/AzureDriver.d.ts.map +1 -0
  10. package/dist/Drivers/AzureDriver.js +144 -0
  11. package/dist/Drivers/AzureDriver.js.map +1 -0
  12. package/dist/Drivers/GCSDriver.d.ts +31 -0
  13. package/dist/Drivers/GCSDriver.d.ts.map +1 -0
  14. package/dist/Drivers/GCSDriver.js +138 -0
  15. package/dist/Drivers/GCSDriver.js.map +1 -0
  16. package/dist/StorageManager.d.ts +10 -0
  17. package/dist/StorageManager.d.ts.map +1 -1
  18. package/dist/StorageManager.js +29 -0
  19. package/dist/StorageManager.js.map +1 -1
  20. package/dist/src/Contracts/Filesystem.d.ts +16 -0
  21. package/dist/src/Contracts/Filesystem.d.ts.map +1 -1
  22. package/dist/src/Disk.d.ts +16 -0
  23. package/dist/src/Disk.d.ts.map +1 -1
  24. package/dist/src/Disk.js +69 -0
  25. package/dist/src/Disk.js.map +1 -1
  26. package/dist/src/Drivers/AzureDriver.d.ts +26 -0
  27. package/dist/src/Drivers/AzureDriver.d.ts.map +1 -0
  28. package/dist/src/Drivers/AzureDriver.js +144 -0
  29. package/dist/src/Drivers/AzureDriver.js.map +1 -0
  30. package/dist/src/Drivers/GCSDriver.d.ts +31 -0
  31. package/dist/src/Drivers/GCSDriver.d.ts.map +1 -0
  32. package/dist/src/Drivers/GCSDriver.js +138 -0
  33. package/dist/src/Drivers/GCSDriver.js.map +1 -0
  34. package/dist/src/StorageManager.d.ts +10 -0
  35. package/dist/src/StorageManager.d.ts.map +1 -1
  36. package/dist/src/StorageManager.js +29 -0
  37. package/dist/src/StorageManager.js.map +1 -1
  38. package/dist/tests/EnterpriseFeatures.test.d.ts +2 -0
  39. package/dist/tests/EnterpriseFeatures.test.d.ts.map +1 -0
  40. package/dist/tests/EnterpriseFeatures.test.js +143 -0
  41. package/dist/tests/EnterpriseFeatures.test.js.map +1 -0
  42. package/package.json +54 -50
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.GCSDriver = void 0;
37
+ const storage_1 = require("@google-cloud/storage");
38
+ const mime = __importStar(require("mime-types"));
39
+ class GCSDriver {
40
+ constructor(config) {
41
+ const gcsConfig = {};
42
+ if (config.projectId)
43
+ gcsConfig.projectId = config.projectId;
44
+ if (config.keyFilename)
45
+ gcsConfig.keyFilename = config.keyFilename;
46
+ if (config.credentials)
47
+ gcsConfig.credentials = config.credentials;
48
+ this.client = new storage_1.Storage(gcsConfig);
49
+ this.bucketName = config.bucket;
50
+ this.bucket = this.client.bucket(config.bucket);
51
+ this.urlEndpoint = config.url;
52
+ }
53
+ getFile(path) {
54
+ return this.bucket.file(path);
55
+ }
56
+ async put(path, contents) {
57
+ const file = this.getFile(path);
58
+ await file.save(contents, {
59
+ contentType: mime.lookup(path) || 'application/octet-stream',
60
+ resumable: false
61
+ });
62
+ }
63
+ async putStream(path, stream) {
64
+ return new Promise((resolve, reject) => {
65
+ const file = this.getFile(path);
66
+ const writeStream = file.createWriteStream({
67
+ contentType: mime.lookup(path) || 'application/octet-stream',
68
+ resumable: false
69
+ });
70
+ stream.pipe(writeStream)
71
+ .on('error', reject)
72
+ .on('finish', resolve);
73
+ });
74
+ }
75
+ async get(path) {
76
+ try {
77
+ const [content] = await this.getFile(path).download();
78
+ return content;
79
+ }
80
+ catch (error) {
81
+ if (error.code === 404) {
82
+ throw new Error(`File not found: ${path}`);
83
+ }
84
+ throw error;
85
+ }
86
+ }
87
+ readStream(path) {
88
+ return this.getFile(path).createReadStream();
89
+ }
90
+ async exists(path) {
91
+ const [exists] = await this.getFile(path).exists();
92
+ return exists;
93
+ }
94
+ async delete(path) {
95
+ try {
96
+ await this.getFile(path).delete();
97
+ }
98
+ catch (error) {
99
+ // Ignore if file doesn't exist
100
+ if (error.code !== 404)
101
+ throw error;
102
+ }
103
+ }
104
+ url(path) {
105
+ if (this.urlEndpoint) {
106
+ return `${this.urlEndpoint}/${path}`;
107
+ }
108
+ return `https://storage.googleapis.com/${this.bucketName}/${path}`;
109
+ }
110
+ async temporaryUrl(path, expiresAt) {
111
+ const [url] = await this.getFile(path).getSignedUrl({
112
+ version: 'v4',
113
+ action: 'read',
114
+ expires: expiresAt.getTime(),
115
+ });
116
+ return url;
117
+ }
118
+ async size(path) {
119
+ const [metadata] = await this.getFile(path).getMetadata();
120
+ return parseInt(metadata.size || '0', 10);
121
+ }
122
+ async lastModified(path) {
123
+ const [metadata] = await this.getFile(path).getMetadata();
124
+ return metadata.updated ? new Date(metadata.updated).getTime() : 0;
125
+ }
126
+ async mimeType(path) {
127
+ const [metadata] = await this.getFile(path).getMetadata();
128
+ return metadata.contentType || mime.lookup(path) || 'application/octet-stream';
129
+ }
130
+ async copy(path, newPath) {
131
+ await this.getFile(path).copy(this.getFile(newPath));
132
+ }
133
+ async move(path, newPath) {
134
+ await this.getFile(path).move(this.getFile(newPath));
135
+ }
136
+ }
137
+ exports.GCSDriver = GCSDriver;
138
+ //# sourceMappingURL=GCSDriver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GCSDriver.js","sourceRoot":"","sources":["../../../src/Drivers/GCSDriver.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,14 @@
1
1
  import { Disk } from './Disk';
2
+ import { Filesystem } from './Contracts/Filesystem';
2
3
  export declare class StorageManager {
3
4
  private disks;
5
+ private customCreators;
4
6
  private config;
5
7
  constructor(config: any);
8
+ /**
9
+ * Register a custom driver creator.
10
+ */
11
+ extend(driver: string, callback: (config: any) => Filesystem): this;
6
12
  /**
7
13
  * Get a disk instance.
8
14
  */
@@ -29,5 +35,9 @@ export declare class StorageManager {
29
35
  size(path: string): Promise<number>;
30
36
  lastModified(path: string): Promise<number>;
31
37
  mimeType(path: string): Promise<string>;
38
+ copy(path: string, newPath: string): Promise<void>;
39
+ move(path: string, newPath: string): Promise<void>;
40
+ append(path: string, contents: string | Buffer): Promise<void>;
41
+ prepend(path: string, contents: string | Buffer): Promise<void>;
32
42
  }
33
43
  //# sourceMappingURL=StorageManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StorageManager.d.ts","sourceRoot":"","sources":["../../src/StorageManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAK9B,qBAAa,cAAc;IACvB,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,MAAM,CAAM;gBAER,MAAM,EAAE,GAAG;IAIvB;;OAEG;IACI,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAchC;;OAEG;IACH,OAAO,CAAC,WAAW;IAWnB;;OAEG;IACH,OAAO,CAAC,YAAY;IAWpB;;OAEG;IACU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIxC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG;IAIvB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAItC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAInB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAI5D,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAInC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI3C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAGvD"}
1
+ {"version":3,"file":"StorageManager.d.ts","sourceRoot":"","sources":["../../src/StorageManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAMpD,qBAAa,cAAc;IACvB,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,cAAc,CAAuD;IAC7E,OAAO,CAAC,MAAM,CAAM;gBAER,MAAM,EAAE,GAAG;IAIvB;;OAEG;IACI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,UAAU,GAAG,IAAI;IAK1E;;OAEG;IACI,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAchC;;OAEG;IACH,OAAO,CAAC,WAAW;IAWnB;;OAEG;IACH,OAAO,CAAC,YAAY;IAmBpB;;OAEG;IACU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIxC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG;IAIvB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAItC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAInB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAI5D,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAInC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI3C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIvC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9D,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG/E"}
@@ -4,11 +4,21 @@ exports.StorageManager = void 0;
4
4
  const Disk_1 = require("./Disk");
5
5
  const LocalDriver_1 = require("./Drivers/LocalDriver");
6
6
  const S3Driver_1 = require("./Drivers/S3Driver");
7
+ const GCSDriver_1 = require("./Drivers/GCSDriver");
8
+ const AzureDriver_1 = require("./Drivers/AzureDriver");
7
9
  class StorageManager {
8
10
  constructor(config) {
9
11
  this.disks = new Map();
12
+ this.customCreators = new Map();
10
13
  this.config = config;
11
14
  }
15
+ /**
16
+ * Register a custom driver creator.
17
+ */
18
+ extend(driver, callback) {
19
+ this.customCreators.set(driver, callback);
20
+ return this;
21
+ }
12
22
  /**
13
23
  * Get a disk instance.
14
24
  */
@@ -37,11 +47,18 @@ class StorageManager {
37
47
  * Create a driver instance based on configuration.
38
48
  */
39
49
  createDriver(config) {
50
+ if (this.customCreators.has(config.driver)) {
51
+ return this.customCreators.get(config.driver)(config);
52
+ }
40
53
  switch (config.driver) {
41
54
  case 'local':
42
55
  return new LocalDriver_1.LocalDriver(config);
43
56
  case 's3':
44
57
  return new S3Driver_1.S3Driver(config);
58
+ case 'gcs':
59
+ return new GCSDriver_1.GCSDriver(config);
60
+ case 'azure':
61
+ return new AzureDriver_1.AzureDriver(config);
45
62
  default:
46
63
  throw new Error(`Driver [${config.driver}] is not supported.`);
47
64
  }
@@ -82,6 +99,18 @@ class StorageManager {
82
99
  async mimeType(path) {
83
100
  return await this.disk().mimeType(path);
84
101
  }
102
+ async copy(path, newPath) {
103
+ return await this.disk().copy(path, newPath);
104
+ }
105
+ async move(path, newPath) {
106
+ return await this.disk().move(path, newPath);
107
+ }
108
+ async append(path, contents) {
109
+ return await this.disk().append(path, contents);
110
+ }
111
+ async prepend(path, contents) {
112
+ return await this.disk().prepend(path, contents);
113
+ }
85
114
  }
86
115
  exports.StorageManager = StorageManager;
87
116
  //# sourceMappingURL=StorageManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StorageManager.js","sourceRoot":"","sources":["../../src/StorageManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StorageManager.js","sourceRoot":"","sources":["../../src/StorageManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=EnterpriseFeatures.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnterpriseFeatures.test.d.ts","sourceRoot":"","sources":["../../tests/EnterpriseFeatures.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const node_test_1 = require("node:test");
37
+ const assert = __importStar(require("node:assert"));
38
+ const fs = __importStar(require("fs/promises"));
39
+ const path = __importStar(require("path"));
40
+ const src_1 = require("../src");
41
+ const stream_1 = require("stream");
42
+ class DummyMemoryDriver {
43
+ constructor() {
44
+ this.files = new Map();
45
+ }
46
+ async put(path, contents) {
47
+ this.files.set(path, contents);
48
+ }
49
+ async putStream(path, stream) { }
50
+ async get(path) {
51
+ if (!this.files.has(path))
52
+ throw new Error('Not found');
53
+ const content = this.files.get(path);
54
+ return Buffer.isBuffer(content) ? content : Buffer.from(content);
55
+ }
56
+ readStream(path) { return new stream_1.Readable(); }
57
+ async exists(path) {
58
+ return this.files.has(path);
59
+ }
60
+ async delete(path) {
61
+ this.files.delete(path);
62
+ }
63
+ url(path) { return `memory://${path}`; }
64
+ async temporaryUrl(path, expiresAt) { return ''; }
65
+ async size(path) { return 0; }
66
+ async lastModified(path) { return 0; }
67
+ async mimeType(path) { return 'text/plain'; }
68
+ }
69
+ (0, node_test_1.describe)('Enterprise Storage Features', () => {
70
+ const testRoot = path.join(process.cwd(), 'test-storage-enterprise');
71
+ let storage;
72
+ (0, node_test_1.beforeEach)(async () => {
73
+ await fs.mkdir(testRoot, { recursive: true });
74
+ const config = {
75
+ default: 'local',
76
+ disks: {
77
+ local: {
78
+ driver: 'local',
79
+ root: testRoot
80
+ },
81
+ memory: {
82
+ driver: 'memory'
83
+ }
84
+ }
85
+ };
86
+ storage = new src_1.StorageManager(config);
87
+ });
88
+ (0, node_test_1.afterEach)(async () => {
89
+ try {
90
+ await fs.rm(testRoot, { recursive: true, force: true });
91
+ }
92
+ catch (error) { }
93
+ });
94
+ (0, node_test_1.it)('can extend storage manager with custom driver', async () => {
95
+ const dummyDriver = new DummyMemoryDriver();
96
+ storage.extend('memory', (config) => dummyDriver);
97
+ await storage.disk('memory').put('test.txt', 'Memory Content');
98
+ assert.strictEqual(dummyDriver.files.has('test.txt'), true);
99
+ const retrieved = await storage.disk('memory').get('test.txt');
100
+ assert.strictEqual(retrieved.toString(), 'Memory Content');
101
+ });
102
+ (0, node_test_1.it)('can use middleware to intercept pipeline operations', async () => {
103
+ let loggedPath = '';
104
+ const loggingMiddleware = async (data, next) => {
105
+ if (data.operation === 'put') {
106
+ loggedPath = data.path;
107
+ data.contents = data.contents + ' - Intercepted';
108
+ }
109
+ return await next(data);
110
+ };
111
+ storage.disk('local').middleware(loggingMiddleware);
112
+ await storage.put('middleware.txt', 'Original');
113
+ assert.strictEqual(loggedPath, 'middleware.txt');
114
+ const contents = await storage.get('middleware.txt');
115
+ assert.strictEqual(contents.toString(), 'Original - Intercepted');
116
+ });
117
+ (0, node_test_1.it)('can copy files with fallback', async () => {
118
+ await storage.put('original.txt', 'Copy Me');
119
+ await storage.copy('original.txt', 'copied.txt');
120
+ assert.strictEqual(await storage.exists('copied.txt'), true);
121
+ assert.strictEqual((await storage.get('copied.txt')).toString(), 'Copy Me');
122
+ });
123
+ (0, node_test_1.it)('can move files with fallback', async () => {
124
+ await storage.put('source.txt', 'Move Me');
125
+ await storage.move('source.txt', 'destination.txt');
126
+ assert.strictEqual(await storage.exists('source.txt'), false);
127
+ assert.strictEqual(await storage.exists('destination.txt'), true);
128
+ assert.strictEqual((await storage.get('destination.txt')).toString(), 'Move Me');
129
+ });
130
+ (0, node_test_1.it)('can append to files', async () => {
131
+ await storage.put('append.txt', 'Line 1');
132
+ await storage.append('append.txt', 'Line 2');
133
+ const contents = await storage.get('append.txt');
134
+ assert.strictEqual(contents.toString(), 'Line 1\nLine 2');
135
+ });
136
+ (0, node_test_1.it)('can prepend to files', async () => {
137
+ await storage.put('prepend.txt', 'Line 2');
138
+ await storage.prepend('prepend.txt', 'Line 1');
139
+ const contents = await storage.get('prepend.txt');
140
+ assert.strictEqual(contents.toString(), 'Line 1\nLine 2');
141
+ });
142
+ });
143
+ //# sourceMappingURL=EnterpriseFeatures.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnterpriseFeatures.test.js","sourceRoot":"","sources":["../../tests/EnterpriseFeatures.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,52 +1,56 @@
1
1
  {
2
- "name": "@arikajs/storage",
3
- "version": "0.0.3",
4
- "description": "Filesystem abstraction layer for the ArikaJS framework.",
5
- "license": "MIT",
6
- "main": "dist/index.js",
7
- "types": "dist/index.d.ts",
8
- "scripts": {
9
- "build": "tsc -p tsconfig.json",
10
- "build:tests": "tsc -p tsconfig.test.json",
11
- "clean": "rm -rf dist",
12
- "prepare": "echo skip",
13
- "test": "npm run build && npm run build:tests && node --test 'dist/tests/**/*.test.js'",
14
- "test:watch": "npm run build && npm run build:tests && node --test --watch 'dist/tests/**/*.test.js'"
15
- },
16
- "files": [
17
- "dist"
18
- ],
19
- "keywords": [
20
- "arika",
21
- "arika-js",
22
- "framework",
23
- "storage",
24
- "filesystem",
25
- "file",
26
- "disk",
27
- "driver"
28
- ],
29
- "engines": {
30
- "node": ">=20.0.0"
31
- },
32
- "repository": {
33
- "type": "git",
34
- "url": "git+https://github.com/arikajs/storage.git"
35
- },
36
- "bugs": {
37
- "url": "https://github.com/arikajs/storage/issues"
38
- },
39
- "homepage": "https://github.com/arikajs/storage#readme",
40
- "devDependencies": {
41
- "@types/mime-types": "^3.0.1",
42
- "@types/node": "^20.11.24",
43
- "typescript": "^5.3.3"
44
- },
45
- "author": "Prakash Tank",
46
- "dependencies": {
47
- "@aws-sdk/client-s3": "^3.986.0",
48
- "@aws-sdk/s3-request-presigner": "^3.992.0",
49
- "@arikajs/middleware": "file:../middleware",
50
- "mime-types": "^3.0.2"
51
- }
2
+ "name": "@arikajs/storage",
3
+ "version": "0.0.5",
4
+ "description": "Filesystem abstraction layer for the ArikaJS framework.",
5
+ "license": "MIT",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "scripts": {
9
+ "build": "tsc -p tsconfig.json",
10
+ "build:tests": "tsc -p tsconfig.test.json",
11
+ "clean": "rm -rf dist",
12
+ "prepare": "echo skip",
13
+ "test": "npm run build && npm run build:tests && node --test 'dist/tests/**/*.test.js'",
14
+ "test:watch": "npm run build && npm run build:tests && node --test --watch 'dist/tests/**/*.test.js'",
15
+ "dev": "tsc -p tsconfig.json --watch"
16
+ },
17
+ "files": [
18
+ "dist"
19
+ ],
20
+ "keywords": [
21
+ "arika",
22
+ "arika-js",
23
+ "framework",
24
+ "storage",
25
+ "filesystem",
26
+ "file",
27
+ "disk",
28
+ "driver"
29
+ ],
30
+ "engines": {
31
+ "node": ">=20.0.0"
32
+ },
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "git+https://github.com/ArikaJs/arikajs.git",
36
+ "directory": "packages/storage"
37
+ },
38
+ "bugs": {
39
+ "url": "https://github.com/ArikaJs/arikajs/issues"
40
+ },
41
+ "homepage": "https://github.com/ArikaJs/arikajs/tree/main/packages/storage#readme",
42
+ "devDependencies": {
43
+ "@types/mime-types": "^3.0.1",
44
+ "@types/node": "^20.11.24",
45
+ "typescript": "^5.3.3"
46
+ },
47
+ "author": "Prakash Tank",
48
+ "dependencies": {
49
+ "@arikajs/middleware": "*",
50
+ "@aws-sdk/client-s3": "^3.986.0",
51
+ "@aws-sdk/s3-request-presigner": "^3.992.0",
52
+ "@azure/storage-blob": "^12.31.0",
53
+ "@google-cloud/storage": "^7.19.0",
54
+ "mime-types": "^3.0.2"
55
+ }
52
56
  }