sandbox-fs 1.0.0

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/LICENSE +21 -0
  2. package/README.md +418 -0
  3. package/dist/FSModule.d.ts +153 -0
  4. package/dist/FSModule.d.ts.map +1 -0
  5. package/dist/FSModule.js +555 -0
  6. package/dist/FSModule.js.map +1 -0
  7. package/dist/PathMapper.d.ts +30 -0
  8. package/dist/PathMapper.d.ts.map +1 -0
  9. package/dist/PathMapper.js +122 -0
  10. package/dist/PathMapper.js.map +1 -0
  11. package/dist/PathModule.d.ts +69 -0
  12. package/dist/PathModule.d.ts.map +1 -0
  13. package/dist/PathModule.js +159 -0
  14. package/dist/PathModule.js.map +1 -0
  15. package/dist/ResourceTracker.d.ts +74 -0
  16. package/dist/ResourceTracker.d.ts.map +1 -0
  17. package/dist/ResourceTracker.js +175 -0
  18. package/dist/ResourceTracker.js.map +1 -0
  19. package/dist/VirtualFileSystem.d.ts +145 -0
  20. package/dist/VirtualFileSystem.d.ts.map +1 -0
  21. package/dist/VirtualFileSystem.js +155 -0
  22. package/dist/VirtualFileSystem.js.map +1 -0
  23. package/dist/index.d.ts +9 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +13 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/operations/newer.d.ts +36 -0
  28. package/dist/operations/newer.d.ts.map +1 -0
  29. package/dist/operations/newer.js +239 -0
  30. package/dist/operations/newer.js.map +1 -0
  31. package/dist/operations/read.d.ts +24 -0
  32. package/dist/operations/read.d.ts.map +1 -0
  33. package/dist/operations/read.js +313 -0
  34. package/dist/operations/read.js.map +1 -0
  35. package/dist/operations/symlink.d.ts +8 -0
  36. package/dist/operations/symlink.d.ts.map +1 -0
  37. package/dist/operations/symlink.js +33 -0
  38. package/dist/operations/symlink.js.map +1 -0
  39. package/dist/operations/write.d.ts +29 -0
  40. package/dist/operations/write.d.ts.map +1 -0
  41. package/dist/operations/write.js +191 -0
  42. package/dist/operations/write.js.map +1 -0
  43. package/dist/utils/ErrorFilter.d.ts +6 -0
  44. package/dist/utils/ErrorFilter.d.ts.map +1 -0
  45. package/dist/utils/ErrorFilter.js +57 -0
  46. package/dist/utils/ErrorFilter.js.map +1 -0
  47. package/dist/utils/callbackify.d.ts +9 -0
  48. package/dist/utils/callbackify.d.ts.map +1 -0
  49. package/dist/utils/callbackify.js +48 -0
  50. package/dist/utils/callbackify.js.map +1 -0
  51. package/dist/wrappers/VirtualDir.d.ts +34 -0
  52. package/dist/wrappers/VirtualDir.d.ts.map +1 -0
  53. package/dist/wrappers/VirtualDir.js +72 -0
  54. package/dist/wrappers/VirtualDir.js.map +1 -0
  55. package/dist/wrappers/VirtualDirent.d.ts +21 -0
  56. package/dist/wrappers/VirtualDirent.d.ts.map +1 -0
  57. package/dist/wrappers/VirtualDirent.js +50 -0
  58. package/dist/wrappers/VirtualDirent.js.map +1 -0
  59. package/example.js +95 -0
  60. package/example.ts +32 -0
  61. package/package.json +29 -0
  62. package/src/FSModule.ts +546 -0
  63. package/src/PathMapper.ts +102 -0
  64. package/src/PathModule.ts +142 -0
  65. package/src/ResourceTracker.ts +162 -0
  66. package/src/VirtualFileSystem.ts +172 -0
  67. package/src/index.ts +9 -0
  68. package/src/operations/newer.ts +223 -0
  69. package/src/operations/read.ts +319 -0
  70. package/src/operations/symlink.ts +31 -0
  71. package/src/operations/write.ts +189 -0
  72. package/src/utils/ErrorFilter.ts +57 -0
  73. package/src/utils/callbackify.ts +54 -0
  74. package/src/wrappers/VirtualDir.ts +84 -0
  75. package/src/wrappers/VirtualDirent.ts +60 -0
  76. package/test-data/example.txt +1 -0
  77. package/test-data/subdir/nested.txt +1 -0
  78. package/tsconfig.example.json +8 -0
  79. package/tsconfig.json +21 -0
@@ -0,0 +1,313 @@
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.createReadFileOperation = createReadFileOperation;
37
+ exports.createReaddirOperation = createReaddirOperation;
38
+ exports.createStatOperation = createStatOperation;
39
+ exports.createLstatOperation = createLstatOperation;
40
+ exports.createAccessOperation = createAccessOperation;
41
+ exports.createRealpathOperation = createRealpathOperation;
42
+ exports.createOpenOperation = createOpenOperation;
43
+ exports.createReadOperation = createReadOperation;
44
+ exports.createCloseOperation = createCloseOperation;
45
+ exports.createFstatOperation = createFstatOperation;
46
+ exports.createOpendirOperation = createOpendirOperation;
47
+ exports.createExistsOperation = createExistsOperation;
48
+ exports.createCreateReadStreamOperation = createCreateReadStreamOperation;
49
+ const fs = __importStar(require("fs"));
50
+ const ErrorFilter_1 = require("../utils/ErrorFilter");
51
+ const VirtualDir_1 = require("../wrappers/VirtualDir");
52
+ /**
53
+ * Create access denied error for write operations
54
+ */
55
+ function createEACCESError(syscall, path) {
56
+ const error = new Error(`${syscall}: operation not permitted, ${syscall} '${path}'`);
57
+ error.code = 'EACCES';
58
+ error.errno = -13;
59
+ error.syscall = syscall;
60
+ error.path = path;
61
+ return error;
62
+ }
63
+ /**
64
+ * Wrap an async operation with error filtering and closed check
65
+ */
66
+ async function wrapOperation(operation, pathMapper, resourceTracker) {
67
+ resourceTracker.assertNotClosed();
68
+ try {
69
+ return await operation();
70
+ }
71
+ catch (error) {
72
+ throw (0, ErrorFilter_1.filterError)(error, pathMapper);
73
+ }
74
+ }
75
+ /**
76
+ * Read file operations
77
+ */
78
+ function createReadFileOperation(pathMapper, resourceTracker) {
79
+ return async (virtualPath, options) => {
80
+ return wrapOperation(async () => {
81
+ const realPath = pathMapper.toRealPath(virtualPath);
82
+ // Handle AbortSignal if present
83
+ if (options?.signal) {
84
+ resourceTracker.registerAbortListener(options.signal, () => { });
85
+ }
86
+ return fs.promises.readFile(realPath, options);
87
+ }, pathMapper, resourceTracker);
88
+ };
89
+ }
90
+ function createReaddirOperation(pathMapper, resourceTracker) {
91
+ return async (virtualPath, options) => {
92
+ return wrapOperation(async () => {
93
+ const realPath = pathMapper.toRealPath(virtualPath);
94
+ if (options?.signal) {
95
+ resourceTracker.registerAbortListener(options.signal, () => { });
96
+ }
97
+ return fs.promises.readdir(realPath, options);
98
+ }, pathMapper, resourceTracker);
99
+ };
100
+ }
101
+ function createStatOperation(pathMapper, resourceTracker) {
102
+ return async (virtualPath, options) => {
103
+ return wrapOperation(async () => {
104
+ const realPath = pathMapper.toRealPath(virtualPath);
105
+ if (options?.signal) {
106
+ resourceTracker.registerAbortListener(options.signal, () => { });
107
+ }
108
+ const stats = await fs.promises.stat(realPath, options);
109
+ // Return EACCES for symlinks
110
+ if (stats.isSymbolicLink()) {
111
+ throw createEACCESError('stat', virtualPath);
112
+ }
113
+ return stats;
114
+ }, pathMapper, resourceTracker);
115
+ };
116
+ }
117
+ function createLstatOperation(pathMapper, resourceTracker) {
118
+ return async (virtualPath, options) => {
119
+ return wrapOperation(async () => {
120
+ const realPath = pathMapper.toRealPath(virtualPath);
121
+ if (options?.signal) {
122
+ resourceTracker.registerAbortListener(options.signal, () => { });
123
+ }
124
+ const stats = await fs.promises.lstat(realPath, options);
125
+ // Return EACCES for symlinks
126
+ if (stats.isSymbolicLink()) {
127
+ throw createEACCESError('lstat', virtualPath);
128
+ }
129
+ return stats;
130
+ }, pathMapper, resourceTracker);
131
+ };
132
+ }
133
+ function createAccessOperation(pathMapper, resourceTracker) {
134
+ return async (virtualPath, mode) => {
135
+ return wrapOperation(async () => {
136
+ const realPath = pathMapper.toRealPath(virtualPath);
137
+ return fs.promises.access(realPath, mode);
138
+ }, pathMapper, resourceTracker);
139
+ };
140
+ }
141
+ function createRealpathOperation(pathMapper, resourceTracker) {
142
+ return async (virtualPath, options) => {
143
+ return wrapOperation(async () => {
144
+ const realPath = pathMapper.toRealPath(virtualPath);
145
+ if (options?.signal) {
146
+ resourceTracker.registerAbortListener(options.signal, () => { });
147
+ }
148
+ const resolvedRealPath = await fs.promises.realpath(realPath, options);
149
+ // Convert back to virtual path
150
+ const resolvedStr = Buffer.isBuffer(resolvedRealPath) ? resolvedRealPath.toString() : resolvedRealPath;
151
+ const resolvedVirtualPath = pathMapper.toVirtualPath(resolvedStr);
152
+ // Return as buffer if encoding option is 'buffer'
153
+ if (options && typeof options === 'object' && options.encoding === 'buffer') {
154
+ return Buffer.from(resolvedVirtualPath);
155
+ }
156
+ return resolvedVirtualPath;
157
+ }, pathMapper, resourceTracker);
158
+ };
159
+ }
160
+ function createOpenOperation(pathMapper, resourceTracker) {
161
+ return async (virtualPath, flags, mode) => {
162
+ return wrapOperation(async () => {
163
+ // Check if flags indicate write mode
164
+ const flagsStr = typeof flags === 'number' ? flags.toString() : (flags || 'r');
165
+ const isWriteMode = /w|a|\+/.test(flagsStr.toString());
166
+ if (isWriteMode) {
167
+ throw createEACCESError('open', virtualPath);
168
+ }
169
+ const realPath = pathMapper.toRealPath(virtualPath);
170
+ const fd = await fs.promises.open(realPath, flags, mode);
171
+ // Track the file descriptor
172
+ resourceTracker.trackFD(fd.fd, {
173
+ virtualPath,
174
+ realPath,
175
+ flags: flags || 'r',
176
+ mode,
177
+ isStream: false,
178
+ });
179
+ return fd.fd;
180
+ }, pathMapper, resourceTracker);
181
+ };
182
+ }
183
+ function createReadOperation(pathMapper, resourceTracker) {
184
+ return async (fd, buffer, offset, length, position) => {
185
+ return wrapOperation(async () => {
186
+ // Verify FD is tracked
187
+ if (!resourceTracker.isTracked(fd)) {
188
+ const error = new Error('bad file descriptor');
189
+ error.code = 'EBADF';
190
+ error.errno = -9;
191
+ error.syscall = 'read';
192
+ throw error;
193
+ }
194
+ // Use fs.read with callback wrapped in promise
195
+ return new Promise((resolve, reject) => {
196
+ fs.read(fd, buffer, offset, length, position, (err, bytesRead) => {
197
+ if (err)
198
+ reject(err);
199
+ else
200
+ resolve({ bytesRead, buffer });
201
+ });
202
+ });
203
+ }, pathMapper, resourceTracker);
204
+ };
205
+ }
206
+ function createCloseOperation(pathMapper, resourceTracker) {
207
+ return async (fd) => {
208
+ return wrapOperation(async () => {
209
+ // Untrack before closing
210
+ resourceTracker.untrackFD(fd);
211
+ return new Promise((resolve, reject) => {
212
+ fs.close(fd, (err) => {
213
+ if (err)
214
+ reject(err);
215
+ else
216
+ resolve();
217
+ });
218
+ });
219
+ }, pathMapper, resourceTracker);
220
+ };
221
+ }
222
+ function createFstatOperation(pathMapper, resourceTracker) {
223
+ return async (fd, options) => {
224
+ return wrapOperation(async () => {
225
+ if (!resourceTracker.isTracked(fd)) {
226
+ const error = new Error('bad file descriptor');
227
+ error.code = 'EBADF';
228
+ error.errno = -9;
229
+ error.syscall = 'fstat';
230
+ throw error;
231
+ }
232
+ if (options?.signal) {
233
+ resourceTracker.registerAbortListener(options.signal, () => { });
234
+ }
235
+ // @ts-ignore - fstat exists but types may not match perfectly
236
+ return fs.promises.fstat(fd, options);
237
+ }, pathMapper, resourceTracker);
238
+ };
239
+ }
240
+ function createOpendirOperation(pathMapper, resourceTracker) {
241
+ return async (virtualPath, options) => {
242
+ return wrapOperation(async () => {
243
+ const realPath = pathMapper.toRealPath(virtualPath);
244
+ if (options?.signal) {
245
+ resourceTracker.registerAbortListener(options.signal, () => { });
246
+ }
247
+ const realDir = await fs.promises.opendir(realPath, options);
248
+ return new VirtualDir_1.VirtualDir(realDir, virtualPath, pathMapper);
249
+ }, pathMapper, resourceTracker);
250
+ };
251
+ }
252
+ function createExistsOperation(pathMapper, resourceTracker) {
253
+ return async (virtualPath) => {
254
+ resourceTracker.assertNotClosed();
255
+ try {
256
+ const realPath = pathMapper.toRealPath(virtualPath);
257
+ await fs.promises.access(realPath);
258
+ return true;
259
+ }
260
+ catch {
261
+ return false;
262
+ }
263
+ };
264
+ }
265
+ function createCreateReadStreamOperation(pathMapper, resourceTracker) {
266
+ return (virtualPath, options) => {
267
+ resourceTracker.assertNotClosed();
268
+ let realPath;
269
+ try {
270
+ realPath = pathMapper.toRealPath(virtualPath);
271
+ }
272
+ catch (error) {
273
+ // Create a dummy stream that will emit an error
274
+ const stream = new (require('stream').Readable)({
275
+ read() { }
276
+ });
277
+ process.nextTick(() => {
278
+ stream.destroy((0, ErrorFilter_1.filterError)(error, pathMapper));
279
+ });
280
+ return stream;
281
+ }
282
+ const realStream = fs.createReadStream(realPath, options);
283
+ // Track the stream
284
+ resourceTracker.trackStream(realStream);
285
+ // Untrack when closed
286
+ realStream.on('close', () => {
287
+ resourceTracker.untrackStream(realStream);
288
+ });
289
+ // Create a proxy to override the path property and filter errors
290
+ const streamProxy = new Proxy(realStream, {
291
+ get(target, prop) {
292
+ if (prop === 'path') {
293
+ return virtualPath;
294
+ }
295
+ if (prop === 'on' || prop === 'once') {
296
+ return function (event, listener) {
297
+ if (event === 'error') {
298
+ // Wrap error listener to filter errors
299
+ const wrappedListener = (error) => {
300
+ listener((0, ErrorFilter_1.filterError)(error, pathMapper));
301
+ };
302
+ return target[prop](event, wrappedListener);
303
+ }
304
+ return target[prop](event, listener);
305
+ };
306
+ }
307
+ return target[prop];
308
+ }
309
+ });
310
+ return streamProxy;
311
+ };
312
+ }
313
+ //# sourceMappingURL=read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../src/operations/read.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCA,0DAaC;AAED,wDAYC;AAED,kDAmBC;AAED,oDAmBC;AAED,sDAOC;AAED,0DAsBC;AAED,kDA0BC;AAED,kDA2BC;AAED,oDAaC;AAED,oDAmBC;AAED,wDAaC;AAED,sDAWC;AAED,0EAwDC;AA9TD,uCAAyB;AAGzB,sDAAmD;AACnD,uDAAoD;AAEpD;;GAEG;AACH,SAAS,iBAAiB,CAAC,OAAe,EAAE,IAAY;IACtD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,OAAO,8BAA8B,OAAO,KAAK,IAAI,GAAG,CAA0B,CAAC;IAC9G,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC;IACtB,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;IAClB,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IACxB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAC1B,SAA2B,EAC3B,UAAsB,EACtB,eAAgC;IAEhC,eAAe,CAAC,eAAe,EAAE,CAAC;IAClC,IAAI,CAAC;QACH,OAAO,MAAM,SAAS,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAA,yBAAW,EAAC,KAAc,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,uBAAuB,CAAC,UAAsB,EAAE,eAAgC;IAC9F,OAAO,KAAK,EAAE,WAAmB,EAAE,OAAa,EAA4B,EAAE;QAC5E,OAAO,aAAa,CAAC,KAAK,IAAI,EAAE;YAC9B,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAEpD,gCAAgC;YAChC,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;gBACpB,eAAe,CAAC,qBAAqB,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAClE,CAAC;YAED,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,sBAAsB,CAAC,UAAsB,EAAE,eAAgC;IAC7F,OAAO,KAAK,EAAE,WAAmB,EAAE,OAAa,EAA8C,EAAE;QAC9F,OAAO,aAAa,CAAC,KAAK,IAAI,EAAE;YAC9B,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAEpD,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;gBACpB,eAAe,CAAC,qBAAqB,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAClE,CAAC;YAED,OAAO,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChD,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,mBAAmB,CAAC,UAAsB,EAAE,eAAgC;IAC1F,OAAO,KAAK,EAAE,WAAmB,EAAE,OAAa,EAAqB,EAAE;QACrE,OAAO,aAAa,CAAC,KAAK,IAAI,EAAE;YAC9B,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAEpD,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;gBACpB,eAAe,CAAC,qBAAqB,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAClE,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAExD,6BAA6B;YAC7B,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC3B,MAAM,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAC/C,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,oBAAoB,CAAC,UAAsB,EAAE,eAAgC;IAC3F,OAAO,KAAK,EAAE,WAAmB,EAAE,OAAa,EAAqB,EAAE;QACrE,OAAO,aAAa,CAAC,KAAK,IAAI,EAAE;YAC9B,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAEpD,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;gBACpB,eAAe,CAAC,qBAAqB,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAClE,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAEzD,6BAA6B;YAC7B,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC3B,MAAM,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAChD,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,qBAAqB,CAAC,UAAsB,EAAE,eAAgC;IAC5F,OAAO,KAAK,EAAE,WAAmB,EAAE,IAAa,EAAiB,EAAE;QACjE,OAAO,aAAa,CAAC,KAAK,IAAI,EAAE;YAC9B,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YACpD,OAAO,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,uBAAuB,CAAC,UAAsB,EAAE,eAAgC;IAC9F,OAAO,KAAK,EAAE,WAAmB,EAAE,OAAa,EAA4B,EAAE;QAC5E,OAAO,aAAa,CAAC,KAAK,IAAI,EAAE;YAC9B,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAEpD,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;gBACpB,eAAe,CAAC,qBAAqB,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAClE,CAAC;YAED,MAAM,gBAAgB,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAEvE,+BAA+B;YAC/B,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC;YACvG,MAAM,mBAAmB,GAAG,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YAElE,kDAAkD;YAClD,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC5E,OAAO,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAQ,CAAC;YACjD,CAAC;YACD,OAAO,mBAA0B,CAAC;QACpC,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,mBAAmB,CAAC,UAAsB,EAAE,eAAgC;IAC1F,OAAO,KAAK,EAAE,WAAmB,EAAE,KAAuB,EAAE,IAAa,EAAmB,EAAE;QAC5F,OAAO,aAAa,CAAC,KAAK,IAAI,EAAE;YAC9B,qCAAqC;YACrC,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC;YAC/E,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEvD,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAC/C,CAAC;YAED,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YACpD,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAEzD,4BAA4B;YAC5B,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC7B,WAAW;gBACX,QAAQ;gBACR,KAAK,EAAE,KAAK,IAAI,GAAG;gBACnB,IAAI;gBACJ,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAC;YAEH,OAAO,EAAE,CAAC,EAAE,CAAC;QACf,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,mBAAmB,CAAC,UAAsB,EAAE,eAAgC;IAC1F,OAAO,KAAK,EACV,EAAU,EACV,MAA8B,EAC9B,MAAc,EACd,MAAc,EACd,QAAuB,EACyC,EAAE;QAClE,OAAO,aAAa,CAAC,KAAK,IAAI,EAAE;YAC9B,uBAAuB;YACvB,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;gBACnC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,qBAAqB,CAA0B,CAAC;gBACxE,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC;gBACrB,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBACjB,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;gBACvB,MAAM,KAAK,CAAC;YACd,CAAC;YAED,+CAA+C;YAC/C,OAAO,IAAI,OAAO,CAAwD,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC5F,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE;oBAC/D,IAAI,GAAG;wBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;wBAChB,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;gBACtC,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,oBAAoB,CAAC,UAAsB,EAAE,eAAgC;IAC3F,OAAO,KAAK,EAAE,EAAU,EAAiB,EAAE;QACzC,OAAO,aAAa,CAAC,KAAK,IAAI,EAAE;YAC9B,yBAAyB;YACzB,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC9B,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC3C,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;oBACnB,IAAI,GAAG;wBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;wBAChB,OAAO,EAAE,CAAC;gBACjB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,oBAAoB,CAAC,UAAsB,EAAE,eAAgC;IAC3F,OAAO,KAAK,EAAE,EAAU,EAAE,OAAa,EAAqB,EAAE;QAC5D,OAAO,aAAa,CAAC,KAAK,IAAI,EAAE;YAC9B,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;gBACnC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,qBAAqB,CAA0B,CAAC;gBACxE,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC;gBACrB,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBACjB,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;gBACxB,MAAM,KAAK,CAAC;YACd,CAAC;YAED,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;gBACpB,eAAe,CAAC,qBAAqB,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAClE,CAAC;YAED,8DAA8D;YAC9D,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,sBAAsB,CAAC,UAAsB,EAAE,eAAgC;IAC7F,OAAO,KAAK,EAAE,WAAmB,EAAE,OAAa,EAAuB,EAAE;QACvE,OAAO,aAAa,CAAC,KAAK,IAAI,EAAE;YAC9B,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAEpD,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;gBACpB,eAAe,CAAC,qBAAqB,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAClE,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC7D,OAAO,IAAI,uBAAU,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QAC1D,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,qBAAqB,CAAC,UAAsB,EAAE,eAAgC;IAC5F,OAAO,KAAK,EAAE,WAAmB,EAAoB,EAAE;QACrD,eAAe,CAAC,eAAe,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YACpD,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,+BAA+B,CAAC,UAAsB,EAAE,eAAgC;IACtG,OAAO,CAAC,WAAmB,EAAE,OAAa,EAAiB,EAAE;QAC3D,eAAe,CAAC,eAAe,EAAE,CAAC;QAElC,IAAI,QAAgB,CAAC;QACrB,IAAI,CAAC;YACH,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,gDAAgD;YAChD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAC9C,IAAI,KAAI,CAAC;aACV,CAAkB,CAAC;YAEpB,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE;gBACpB,MAAM,CAAC,OAAO,CAAC,IAAA,yBAAW,EAAC,KAAc,EAAE,UAAU,CAAC,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;YAEH,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE1D,mBAAmB;QACnB,eAAe,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAExC,sBAAsB;QACtB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAC1B,eAAe,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,iEAAiE;QACjE,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE;YACxC,GAAG,CAAC,MAAM,EAAE,IAAI;gBACd,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;oBACpB,OAAO,WAAW,CAAC;gBACrB,CAAC;gBAED,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;oBACrC,OAAO,UAAS,KAAa,EAAE,QAAa;wBAC1C,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;4BACtB,uCAAuC;4BACvC,MAAM,eAAe,GAAG,CAAC,KAAY,EAAE,EAAE;gCACvC,QAAQ,CAAC,IAAA,yBAAW,EAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;4BAC3C,CAAC,CAAC;4BACF,OAAO,MAAM,CAAC,IAAY,CAAC,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;wBACtD,CAAC;wBACD,OAAO,MAAM,CAAC,IAAY,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;oBAC/C,CAAC,CAAC;gBACJ,CAAC;gBAED,OAAO,MAAM,CAAC,IAA2B,CAAC,CAAC;YAC7C,CAAC;SACF,CAAC,CAAC;QAEH,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * All symlink operations return EACCES (access denied)
3
+ * This module provides all symlink-related fs operations
4
+ */
5
+ export declare function createSymlinkOperation(): (target: string, path: string, type?: string) => Promise<void>;
6
+ export declare function createLinkOperation(): (existingPath: string, newPath: string) => Promise<void>;
7
+ export declare function createReadlinkOperation(): (path: string, options?: any) => Promise<string | Buffer>;
8
+ //# sourceMappingURL=symlink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symlink.d.ts","sourceRoot":"","sources":["../../src/operations/symlink.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,wBAAgB,sBAAsB,KACtB,QAAQ,MAAM,EAAE,MAAM,MAAM,EAAE,OAAO,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAG1E;AAED,wBAAgB,mBAAmB,KACnB,cAAc,MAAM,EAAE,SAAS,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAGpE;AAED,wBAAgB,uBAAuB,KACvB,MAAM,MAAM,EAAE,UAAU,GAAG,KAAG,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CAGrE"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ /**
3
+ * All symlink operations return EACCES (access denied)
4
+ * This module provides all symlink-related fs operations
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.createSymlinkOperation = createSymlinkOperation;
8
+ exports.createLinkOperation = createLinkOperation;
9
+ exports.createReadlinkOperation = createReadlinkOperation;
10
+ function createEACCESError(syscall, path) {
11
+ const error = new Error(`${syscall}: operation not permitted, ${syscall} '${path}'`);
12
+ error.code = 'EACCES';
13
+ error.errno = -13;
14
+ error.syscall = syscall;
15
+ error.path = path;
16
+ return error;
17
+ }
18
+ function createSymlinkOperation() {
19
+ return async (target, path, type) => {
20
+ throw createEACCESError('symlink', path);
21
+ };
22
+ }
23
+ function createLinkOperation() {
24
+ return async (existingPath, newPath) => {
25
+ throw createEACCESError('link', newPath);
26
+ };
27
+ }
28
+ function createReadlinkOperation() {
29
+ return async (path, options) => {
30
+ throw createEACCESError('readlink', path);
31
+ };
32
+ }
33
+ //# sourceMappingURL=symlink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symlink.js","sourceRoot":"","sources":["../../src/operations/symlink.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAWH,wDAIC;AAED,kDAIC;AAED,0DAIC;AAzBD,SAAS,iBAAiB,CAAC,OAAe,EAAE,IAAY;IACtD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,OAAO,8BAA8B,OAAO,KAAK,IAAI,GAAG,CAA0B,CAAC;IAC9G,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC;IACtB,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;IAClB,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IACxB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,sBAAsB;IACpC,OAAO,KAAK,EAAE,MAAc,EAAE,IAAY,EAAE,IAAa,EAAiB,EAAE;QAC1E,MAAM,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,mBAAmB;IACjC,OAAO,KAAK,EAAE,YAAoB,EAAE,OAAe,EAAiB,EAAE;QACpE,MAAM,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,uBAAuB;IACrC,OAAO,KAAK,EAAE,IAAY,EAAE,OAAa,EAA4B,EAAE;QACrE,MAAM,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * All write operations return EACCES (access denied)
3
+ * This module provides all write-related fs operations
4
+ */
5
+ export declare function createWriteFileOperation(): (path: string, data: any, options?: any) => Promise<void>;
6
+ export declare function createAppendFileOperation(): (path: string, data: any, options?: any) => Promise<void>;
7
+ export declare function createMkdirOperation(): (path: string, options?: any) => Promise<void | string>;
8
+ export declare function createRmdirOperation(): (path: string, options?: any) => Promise<void>;
9
+ export declare function createRmOperation(): (path: string, options?: any) => Promise<void>;
10
+ export declare function createUnlinkOperation(): (path: string) => Promise<void>;
11
+ export declare function createRenameOperation(): (oldPath: string, newPath: string) => Promise<void>;
12
+ export declare function createCopyFileOperation(): (src: string, dest: string, mode?: number) => Promise<void>;
13
+ export declare function createTruncateOperation(): (path: string, len?: number) => Promise<void>;
14
+ export declare function createFtruncateOperation(): (fd: number, len?: number) => Promise<void>;
15
+ export declare function createChmodOperation(): (path: string, mode: string | number) => Promise<void>;
16
+ export declare function createFchmodOperation(): (fd: number, mode: string | number) => Promise<void>;
17
+ export declare function createLchmodOperation(): (path: string, mode: string | number) => Promise<void>;
18
+ export declare function createChownOperation(): (path: string, uid: number, gid: number) => Promise<void>;
19
+ export declare function createFchownOperation(): (fd: number, uid: number, gid: number) => Promise<void>;
20
+ export declare function createLchownOperation(): (path: string, uid: number, gid: number) => Promise<void>;
21
+ export declare function createUtimesOperation(): (path: string, atime: string | number | Date, mtime: string | number | Date) => Promise<void>;
22
+ export declare function createFutimesOperation(): (fd: number, atime: string | number | Date, mtime: string | number | Date) => Promise<void>;
23
+ export declare function createLutimesOperation(): (path: string, atime: string | number | Date, mtime: string | number | Date) => Promise<void>;
24
+ export declare function createWriteOperation(): (fd: number, buffer: any, offset?: any, length?: any, position?: any) => Promise<any>;
25
+ export declare function createWritevOperation(): (fd: number, buffers: NodeJS.ArrayBufferView[], position?: number) => Promise<any>;
26
+ export declare function createCreateWriteStreamOperation(): (path: string, options?: any) => never;
27
+ export declare function createFsyncOperation(): (fd: number) => Promise<void>;
28
+ export declare function createFdatasyncOperation(): (fd: number) => Promise<void>;
29
+ //# sourceMappingURL=write.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../src/operations/write.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,191 @@
1
+ "use strict";
2
+ /**
3
+ * All write operations return EACCES (access denied)
4
+ * This module provides all write-related fs operations
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.createWriteFileOperation = createWriteFileOperation;
8
+ exports.createAppendFileOperation = createAppendFileOperation;
9
+ exports.createMkdirOperation = createMkdirOperation;
10
+ exports.createRmdirOperation = createRmdirOperation;
11
+ exports.createRmOperation = createRmOperation;
12
+ exports.createUnlinkOperation = createUnlinkOperation;
13
+ exports.createRenameOperation = createRenameOperation;
14
+ exports.createCopyFileOperation = createCopyFileOperation;
15
+ exports.createTruncateOperation = createTruncateOperation;
16
+ exports.createFtruncateOperation = createFtruncateOperation;
17
+ exports.createChmodOperation = createChmodOperation;
18
+ exports.createFchmodOperation = createFchmodOperation;
19
+ exports.createLchmodOperation = createLchmodOperation;
20
+ exports.createChownOperation = createChownOperation;
21
+ exports.createFchownOperation = createFchownOperation;
22
+ exports.createLchownOperation = createLchownOperation;
23
+ exports.createUtimesOperation = createUtimesOperation;
24
+ exports.createFutimesOperation = createFutimesOperation;
25
+ exports.createLutimesOperation = createLutimesOperation;
26
+ exports.createWriteOperation = createWriteOperation;
27
+ exports.createWritevOperation = createWritevOperation;
28
+ exports.createCreateWriteStreamOperation = createCreateWriteStreamOperation;
29
+ exports.createFsyncOperation = createFsyncOperation;
30
+ exports.createFdatasyncOperation = createFdatasyncOperation;
31
+ function createEACCESError(syscall, path) {
32
+ const error = new Error(`${syscall}: operation not permitted, ${syscall} '${path}'`);
33
+ error.code = 'EACCES';
34
+ error.errno = -13;
35
+ error.syscall = syscall;
36
+ error.path = path;
37
+ return error;
38
+ }
39
+ function createWriteFileOperation() {
40
+ return async (path, data, options) => {
41
+ throw createEACCESError('open', path);
42
+ };
43
+ }
44
+ function createAppendFileOperation() {
45
+ return async (path, data, options) => {
46
+ throw createEACCESError('open', path);
47
+ };
48
+ }
49
+ function createMkdirOperation() {
50
+ return async (path, options) => {
51
+ throw createEACCESError('mkdir', path);
52
+ };
53
+ }
54
+ function createRmdirOperation() {
55
+ return async (path, options) => {
56
+ throw createEACCESError('rmdir', path);
57
+ };
58
+ }
59
+ function createRmOperation() {
60
+ return async (path, options) => {
61
+ throw createEACCESError('rm', path);
62
+ };
63
+ }
64
+ function createUnlinkOperation() {
65
+ return async (path) => {
66
+ throw createEACCESError('unlink', path);
67
+ };
68
+ }
69
+ function createRenameOperation() {
70
+ return async (oldPath, newPath) => {
71
+ throw createEACCESError('rename', oldPath);
72
+ };
73
+ }
74
+ function createCopyFileOperation() {
75
+ return async (src, dest, mode) => {
76
+ throw createEACCESError('copyfile', dest);
77
+ };
78
+ }
79
+ function createTruncateOperation() {
80
+ return async (path, len) => {
81
+ throw createEACCESError('open', path);
82
+ };
83
+ }
84
+ function createFtruncateOperation() {
85
+ return async (fd, len) => {
86
+ const error = new Error('ftruncate: operation not permitted');
87
+ error.code = 'EACCES';
88
+ error.errno = -13;
89
+ error.syscall = 'ftruncate';
90
+ throw error;
91
+ };
92
+ }
93
+ function createChmodOperation() {
94
+ return async (path, mode) => {
95
+ throw createEACCESError('chmod', path);
96
+ };
97
+ }
98
+ function createFchmodOperation() {
99
+ return async (fd, mode) => {
100
+ const error = new Error('fchmod: operation not permitted');
101
+ error.code = 'EACCES';
102
+ error.errno = -13;
103
+ error.syscall = 'fchmod';
104
+ throw error;
105
+ };
106
+ }
107
+ function createLchmodOperation() {
108
+ return async (path, mode) => {
109
+ throw createEACCESError('lchmod', path);
110
+ };
111
+ }
112
+ function createChownOperation() {
113
+ return async (path, uid, gid) => {
114
+ throw createEACCESError('chown', path);
115
+ };
116
+ }
117
+ function createFchownOperation() {
118
+ return async (fd, uid, gid) => {
119
+ const error = new Error('fchown: operation not permitted');
120
+ error.code = 'EACCES';
121
+ error.errno = -13;
122
+ error.syscall = 'fchown';
123
+ throw error;
124
+ };
125
+ }
126
+ function createLchownOperation() {
127
+ return async (path, uid, gid) => {
128
+ throw createEACCESError('lchown', path);
129
+ };
130
+ }
131
+ function createUtimesOperation() {
132
+ return async (path, atime, mtime) => {
133
+ throw createEACCESError('utime', path);
134
+ };
135
+ }
136
+ function createFutimesOperation() {
137
+ return async (fd, atime, mtime) => {
138
+ const error = new Error('futime: operation not permitted');
139
+ error.code = 'EACCES';
140
+ error.errno = -13;
141
+ error.syscall = 'futime';
142
+ throw error;
143
+ };
144
+ }
145
+ function createLutimesOperation() {
146
+ return async (path, atime, mtime) => {
147
+ throw createEACCESError('lutime', path);
148
+ };
149
+ }
150
+ function createWriteOperation() {
151
+ return async (fd, buffer, offset, length, position) => {
152
+ const error = new Error('write: operation not permitted');
153
+ error.code = 'EACCES';
154
+ error.errno = -13;
155
+ error.syscall = 'write';
156
+ throw error;
157
+ };
158
+ }
159
+ function createWritevOperation() {
160
+ return async (fd, buffers, position) => {
161
+ const error = new Error('writev: operation not permitted');
162
+ error.code = 'EACCES';
163
+ error.errno = -13;
164
+ error.syscall = 'writev';
165
+ throw error;
166
+ };
167
+ }
168
+ function createCreateWriteStreamOperation() {
169
+ return (path, options) => {
170
+ throw createEACCESError('open', path);
171
+ };
172
+ }
173
+ function createFsyncOperation() {
174
+ return async (fd) => {
175
+ const error = new Error('fsync: operation not permitted');
176
+ error.code = 'EACCES';
177
+ error.errno = -13;
178
+ error.syscall = 'fsync';
179
+ throw error;
180
+ };
181
+ }
182
+ function createFdatasyncOperation() {
183
+ return async (fd) => {
184
+ const error = new Error('fdatasync: operation not permitted');
185
+ error.code = 'EACCES';
186
+ error.errno = -13;
187
+ error.syscall = 'fdatasync';
188
+ throw error;
189
+ };
190
+ }
191
+ //# sourceMappingURL=write.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/operations/write.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { PathMapper } from "../PathMapper";
2
+ /**
3
+ * Filter error messages to replace real paths with virtual paths
4
+ */
5
+ export declare function filterError(error: Error, pathMapper: PathMapper): Error;
6
+ //# sourceMappingURL=ErrorFilter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorFilter.d.ts","sourceRoot":"","sources":["../../src/utils/ErrorFilter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,GAAG,KAAK,CAmDvE"}