@jpmorganchase/mosaic-core 0.1.0-beta.3 → 0.1.0-beta.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 (74) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/PluginError.js +6 -0
  3. package/dist/PluginError.js.map +1 -0
  4. package/dist/PullDocs.js +119 -0
  5. package/dist/PullDocs.js.map +1 -0
  6. package/dist/Source.js +165 -0
  7. package/dist/Source.js.map +1 -0
  8. package/dist/SourceManager.js +149 -0
  9. package/dist/SourceManager.js.map +1 -0
  10. package/dist/WorkerSubscription.js +106 -0
  11. package/dist/WorkerSubscription.js.map +1 -0
  12. package/dist/filesystems/FileAccess.js +249 -0
  13. package/dist/filesystems/FileAccess.js.map +1 -0
  14. package/dist/filesystems/ImmutableVolume.js +53 -0
  15. package/dist/filesystems/ImmutableVolume.js.map +1 -0
  16. package/dist/filesystems/MutableVolume.js +66 -0
  17. package/dist/filesystems/MutableVolume.js.map +1 -0
  18. package/dist/filesystems/RestrictedVolume.js +64 -0
  19. package/dist/filesystems/RestrictedVolume.js.map +1 -0
  20. package/dist/filesystems/UnionFileAccess.js +89 -0
  21. package/dist/filesystems/UnionFileAccess.js.map +1 -0
  22. package/dist/filesystems/UnionVolume.js +40 -0
  23. package/dist/filesystems/UnionVolume.js.map +1 -0
  24. package/dist/helpers/createConfig.js +55 -0
  25. package/dist/helpers/createConfig.js.map +1 -0
  26. package/dist/index.js +9 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/operators/ObservableWorker.js +25 -0
  29. package/dist/operators/ObservableWorker.js.map +1 -0
  30. package/dist/plugin/createPluginAPI.js +75 -0
  31. package/dist/plugin/createPluginAPI.js.map +1 -0
  32. package/dist/plugin/index.js +63 -0
  33. package/dist/plugin/index.js.map +1 -0
  34. package/dist/plugin/loadDefinitionModules.js +55 -0
  35. package/dist/plugin/loadDefinitionModules.js.map +1 -0
  36. package/dist/plugin/pluginRunner.js +50 -0
  37. package/dist/plugin/pluginRunner.js.map +1 -0
  38. package/dist/plugin/serialiserRunner.js +46 -0
  39. package/dist/plugin/serialiserRunner.js.map +1 -0
  40. package/dist/worker/Source.worker.js +111 -0
  41. package/dist/worker/Source.worker.js.map +1 -0
  42. package/dist/worker/helpers/createSourceObservable.js +69 -0
  43. package/dist/worker/helpers/createSourceObservable.js.map +1 -0
  44. package/package.json +6 -3
  45. package/.turbo/turbo-build.log +0 -2
  46. package/.turbo/turbo-clean.log +0 -2
  47. package/src/PluginError.ts +0 -3
  48. package/src/PullDocs.ts +0 -124
  49. package/src/Source.ts +0 -178
  50. package/src/SourceManager.ts +0 -196
  51. package/src/WorkerSubscription.ts +0 -80
  52. package/src/__mocks__/Source.ts +0 -29
  53. package/src/__tests__/PullDocs.test.ts +0 -96
  54. package/src/__tests__/Source.test.ts +0 -341
  55. package/src/__tests__/SourceManager.test.ts +0 -255
  56. package/src/__tests__/WorkerSubscription.test.ts +0 -308
  57. package/src/filesystems/FileAccess.ts +0 -256
  58. package/src/filesystems/ImmutableVolume.ts +0 -45
  59. package/src/filesystems/MutableVolume.ts +0 -51
  60. package/src/filesystems/RestrictedVolume.ts +0 -57
  61. package/src/filesystems/UnionFileAccess.ts +0 -77
  62. package/src/filesystems/UnionVolume.ts +0 -28
  63. package/src/helpers/createConfig.ts +0 -52
  64. package/src/index.ts +0 -1
  65. package/src/operators/ObservableWorker.ts +0 -24
  66. package/src/plugin/createPluginAPI.ts +0 -75
  67. package/src/plugin/index.ts +0 -41
  68. package/src/plugin/loadDefinitionModules.ts +0 -58
  69. package/src/plugin/pluginRunner.ts +0 -52
  70. package/src/plugin/serialiserRunner.ts +0 -36
  71. package/src/worker/Source.worker.ts +0 -124
  72. package/src/worker/helpers/createSourceObservable.ts +0 -84
  73. package/tsconfig.example.json +0 -6
  74. package/tsconfig.json +0 -22
@@ -0,0 +1,249 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
12
+ if (kind === "m") throw new TypeError("Private method is not writable");
13
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
14
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
15
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
16
+ };
17
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
18
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
19
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
20
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
21
+ };
22
+ var __importDefault = (this && this.__importDefault) || function (mod) {
23
+ return (mod && mod.__esModule) ? mod : { "default": mod };
24
+ };
25
+ var _FileAccess_instances, _FileAccess_adapter, _FileAccess_hooks, _FileAccess_rawReadonlyFs, _FileAccess_symlinks, _FileAccess_frozen, _FileAccess_cachedPages, _FileAccess_resolvePath, _FileAccess_getFileFromCache, _FileAccess_isNonHiddenPageCached;
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ const path_1 = __importDefault(require("path"));
28
+ const fast_glob_1 = __importDefault(require("fast-glob"));
29
+ const memfs_1 = require("memfs");
30
+ class FileAccess {
31
+ constructor(filesystemAdapter) {
32
+ _FileAccess_instances.add(this);
33
+ _FileAccess_adapter.set(this, void 0);
34
+ _FileAccess_hooks.set(this, []);
35
+ _FileAccess_rawReadonlyFs.set(this, void 0);
36
+ _FileAccess_symlinks.set(this, {});
37
+ _FileAccess_frozen.set(this, false);
38
+ _FileAccess_cachedPages.set(this, new Map());
39
+ __classPrivateFieldSet(this, _FileAccess_adapter, filesystemAdapter, "f");
40
+ }
41
+ readFile(file) {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ const resolvedPath = yield __classPrivateFieldGet(this, _FileAccess_instances, "m", _FileAccess_resolvePath).call(this, file);
44
+ return yield __classPrivateFieldGet(this, _FileAccess_instances, "m", _FileAccess_getFileFromCache).call(this, resolvedPath);
45
+ //return this.#adapter.promises.readFile(resolvedPath);
46
+ });
47
+ }
48
+ glob(pattern, options) {
49
+ return __awaiter(this, void 0, void 0, function* () {
50
+ // We need a created filesystem, not a Volume, for glob
51
+ __classPrivateFieldSet(this, _FileAccess_rawReadonlyFs, __classPrivateFieldGet(this, _FileAccess_rawReadonlyFs, "f") || (0, memfs_1.createFsFromVolume)(__classPrivateFieldGet(this, _FileAccess_adapter, "f")), "f");
52
+ const paths = Array.from(new Set(yield Promise.all((yield (0, fast_glob_1.default)(pattern, Object.assign(Object.assign({}, options), { absolute: true, fs: __classPrivateFieldGet(this, _FileAccess_rawReadonlyFs, "f") }))).map(filepath => __classPrivateFieldGet(this, _FileAccess_instances, "m", _FileAccess_resolvePath).call(this, filepath)))));
53
+ return paths;
54
+ });
55
+ }
56
+ $$addReadFileHook(hook) {
57
+ // if (this.#frozen) {
58
+ // throw new Error('This file system has been frozen. Mutations are not allowed.');
59
+ // }
60
+ __classPrivateFieldGet(this, _FileAccess_hooks, "f").push(hook);
61
+ }
62
+ readdir(dir, options) {
63
+ return __classPrivateFieldGet(this, _FileAccess_adapter, "f").promises.readdir(dir, options);
64
+ }
65
+ stat(file, options) {
66
+ return __awaiter(this, void 0, void 0, function* () {
67
+ return __classPrivateFieldGet(this, _FileAccess_adapter, "f").promises.stat(file, options);
68
+ });
69
+ }
70
+ get $$frozen() {
71
+ return __classPrivateFieldGet(this, _FileAccess_frozen, "f");
72
+ }
73
+ realpath(target, options) {
74
+ return __classPrivateFieldGet(this, _FileAccess_adapter, "f").promises.realpath(target, options);
75
+ }
76
+ $$symlinksFromJSON(symlinks) {
77
+ return __awaiter(this, void 0, void 0, function* () {
78
+ __classPrivateFieldSet(this, _FileAccess_symlinks, symlinks, "f");
79
+ if (__classPrivateFieldGet(this, _FileAccess_frozen, "f")) {
80
+ throw new Error('This file system has been frozen. Mutations are not allowed.');
81
+ }
82
+ for (const alias in symlinks) {
83
+ for (const { target, type = 'file' } of symlinks[alias]) {
84
+ if (!(yield this.exists(alias))) {
85
+ if (!(yield this.exists(path_1.default.dirname(alias)))) {
86
+ // TODO: This works... But why are the subdirs not being passed from the child process as `null`s?
87
+ yield __classPrivateFieldGet(this, _FileAccess_adapter, "f").promises.mkdir(path_1.default.dirname(alias), { recursive: true });
88
+ }
89
+ yield __classPrivateFieldGet(this, _FileAccess_adapter, "f").promises.symlink(target, alias, type);
90
+ }
91
+ }
92
+ }
93
+ });
94
+ }
95
+ unlink(target) {
96
+ return __awaiter(this, void 0, void 0, function* () {
97
+ if (__classPrivateFieldGet(this, _FileAccess_frozen, "f")) {
98
+ throw new Error('This file system has been frozen. Mutations are not allowed.');
99
+ }
100
+ yield __classPrivateFieldGet(this, _FileAccess_adapter, "f").promises.unlink(target);
101
+ // If path refers to a symbolic link, then the link is removed without affecting the file or directory to which that link refers.
102
+ __classPrivateFieldGet(this, _FileAccess_cachedPages, "f").delete(target);
103
+ });
104
+ }
105
+ symlink(target, alias, type) {
106
+ if (__classPrivateFieldGet(this, _FileAccess_frozen, "f")) {
107
+ throw new Error('This file system has been frozen. Mutations are not allowed.');
108
+ }
109
+ __classPrivateFieldGet(this, _FileAccess_symlinks, "f")[alias] = __classPrivateFieldGet(this, _FileAccess_symlinks, "f")[alias] || [];
110
+ __classPrivateFieldGet(this, _FileAccess_symlinks, "f")[alias].push({ target, type });
111
+ // console.debug('[PullDocs]', target, 'aliased to', alias);
112
+ return __classPrivateFieldGet(this, _FileAccess_adapter, "f").promises.symlink(target, alias, type);
113
+ }
114
+ writeFile(file, data) {
115
+ return __awaiter(this, void 0, void 0, function* () {
116
+ if (__classPrivateFieldGet(this, _FileAccess_frozen, "f")) {
117
+ throw new Error('This file system has been frozen. Mutations are not allowed.');
118
+ }
119
+ yield __classPrivateFieldGet(this, _FileAccess_adapter, "f").promises.writeFile(file, data);
120
+ __classPrivateFieldGet(this, _FileAccess_cachedPages, "f").delete(file);
121
+ // TODO: Do we need?
122
+ __classPrivateFieldGet(this, _FileAccess_cachedPages, "f").delete(yield __classPrivateFieldGet(this, _FileAccess_instances, "m", _FileAccess_resolvePath).call(this, file));
123
+ });
124
+ }
125
+ mkdir(dir, options) {
126
+ return __awaiter(this, void 0, void 0, function* () {
127
+ if (__classPrivateFieldGet(this, _FileAccess_frozen, "f")) {
128
+ throw new Error('This file system has been frozen. Mutations are not allowed.');
129
+ }
130
+ return __classPrivateFieldGet(this, _FileAccess_adapter, "f").promises.mkdir(dir, options);
131
+ });
132
+ }
133
+ exists(file) {
134
+ return __awaiter(this, void 0, void 0, function* () {
135
+ try {
136
+ return !!(yield __classPrivateFieldGet(this, _FileAccess_adapter, "f").promises.realpath(file));
137
+ }
138
+ catch (e) {
139
+ if (e.code !== 'ENOENT') {
140
+ throw e;
141
+ }
142
+ }
143
+ return false;
144
+ });
145
+ }
146
+ toJSON() {
147
+ return __classPrivateFieldGet(this, _FileAccess_adapter, "f").toJSON();
148
+ }
149
+ symlinksToJSON() {
150
+ return __classPrivateFieldGet(this, _FileAccess_symlinks, "f");
151
+ }
152
+ $$freeze() {
153
+ if (__classPrivateFieldGet(this, _FileAccess_frozen, "f")) {
154
+ throw new Error('This file system has already been frozen.');
155
+ }
156
+ __classPrivateFieldSet(this, _FileAccess_frozen, true, "f");
157
+ }
158
+ $$unfreeze() {
159
+ if (!__classPrivateFieldGet(this, _FileAccess_frozen, "f")) {
160
+ throw new Error('This file system is not frozen.');
161
+ }
162
+ __classPrivateFieldSet(this, _FileAccess_frozen, false, "f");
163
+ }
164
+ $$clearCache() {
165
+ __classPrivateFieldGet(this, _FileAccess_cachedPages, "f").clear();
166
+ }
167
+ $$reset() {
168
+ return __awaiter(this, void 0, void 0, function* () {
169
+ __classPrivateFieldSet(this, _FileAccess_rawReadonlyFs, null, "f");
170
+ __classPrivateFieldSet(this, _FileAccess_frozen, false, "f");
171
+ __classPrivateFieldSet(this, _FileAccess_symlinks, {}, "f");
172
+ __classPrivateFieldSet(this, _FileAccess_hooks, [], "f");
173
+ __classPrivateFieldGet(this, _FileAccess_adapter, "f").reset();
174
+ __classPrivateFieldGet(this, _FileAccess_cachedPages, "f").clear();
175
+ });
176
+ }
177
+ fromJSON(json) {
178
+ if (__classPrivateFieldGet(this, _FileAccess_frozen, "f")) {
179
+ throw new Error('This file system has been frozen. Mutations are not allowed.');
180
+ }
181
+ __classPrivateFieldGet(this, _FileAccess_adapter, "f").fromJSON(json);
182
+ }
183
+ }
184
+ exports.default = FileAccess;
185
+ _FileAccess_adapter = new WeakMap(), _FileAccess_hooks = new WeakMap(), _FileAccess_rawReadonlyFs = new WeakMap(), _FileAccess_symlinks = new WeakMap(), _FileAccess_frozen = new WeakMap(), _FileAccess_cachedPages = new WeakMap(), _FileAccess_instances = new WeakSet(), _FileAccess_resolvePath = function _FileAccess_resolvePath(file) {
186
+ return __awaiter(this, void 0, void 0, function* () {
187
+ const realPath = yield __classPrivateFieldGet(this, _FileAccess_adapter, "f").promises.realpath(file);
188
+ if (realPath !== file &&
189
+ !(yield __classPrivateFieldGet(this, _FileAccess_adapter, "f").promises.stat(realPath, { throwIfNoEntry: true }))) {
190
+ throw new Error(`ENOENT: no such file or directory, stat '${file}'`);
191
+ }
192
+ const stat = yield __classPrivateFieldGet(this, _FileAccess_adapter, "f").promises.stat(realPath, { throwIfNoEntry: true });
193
+ // Enable this for /index directories ... but should a filesystem really rewrite URLs like that?
194
+ // The downside is that relative links can break when /index is missing from the end of a URL
195
+ // e.g. if /home/dir is actually /home/dir/index any relative links will be from ./home not ./home/dir
196
+ // if (stat.isDirectory()) {
197
+ // try {
198
+ // const resolved = await this.#resolvePath(path.join(String(realPath), 'index'));
199
+ // return resolved;
200
+ // } catch {}
201
+ // }
202
+ if (!stat.isFile()) {
203
+ return file;
204
+ //throw new Error(`EISDIR: illegal operation on a directory, open '${file}'`);
205
+ }
206
+ return realPath;
207
+ });
208
+ }, _FileAccess_getFileFromCache = function _FileAccess_getFileFromCache(file) {
209
+ return __awaiter(this, void 0, void 0, function* () {
210
+ const stat = yield __classPrivateFieldGet(this, _FileAccess_adapter, "f").promises.stat(file, { throwIfNoEntry: true });
211
+ if (!stat.isFile()) {
212
+ return null;
213
+ }
214
+ if (yield __classPrivateFieldGet(this, _FileAccess_instances, "m", _FileAccess_isNonHiddenPageCached).call(this, file)) {
215
+ const cachedItem = __classPrivateFieldGet(this, _FileAccess_cachedPages, "f").get(file);
216
+ return cachedItem;
217
+ }
218
+ // Bit of parallel programming needed here, to avoid 2+ requests triggering a file load at the same time and making a race condition
219
+ const loadPagePromise = new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
220
+ const rawFile = yield __classPrivateFieldGet(this, _FileAccess_adapter, "f").promises.readFile(file);
221
+ // if (!this.#pageTest(file)) {
222
+ // return resolve(rawFile);
223
+ // }
224
+ let fileData = rawFile;
225
+ for (const hook of __classPrivateFieldGet(this, _FileAccess_hooks, "f")) {
226
+ fileData = yield hook(file, fileData);
227
+ }
228
+ return resolve(fileData);
229
+ }));
230
+ __classPrivateFieldGet(this, _FileAccess_cachedPages, "f").set(file, loadPagePromise);
231
+ const result = yield loadPagePromise;
232
+ if (__classPrivateFieldGet(this, _FileAccess_frozen, "f")) {
233
+ __classPrivateFieldGet(this, _FileAccess_cachedPages, "f").set(file, result);
234
+ }
235
+ else {
236
+ // Clear the `currentlyResolving` entry
237
+ __classPrivateFieldGet(this, _FileAccess_cachedPages, "f").delete(file);
238
+ }
239
+ return result;
240
+ // this.#cachedPages.add(file);
241
+ //return this.#adapter.promises.writeFile(file, JSON.stringify(currentPage));
242
+ });
243
+ }, _FileAccess_isNonHiddenPageCached = function _FileAccess_isNonHiddenPageCached(fileArg) {
244
+ return __awaiter(this, void 0, void 0, function* () {
245
+ const file = yield __classPrivateFieldGet(this, _FileAccess_adapter, "f").promises.realpath(fileArg);
246
+ return __classPrivateFieldGet(this, _FileAccess_cachedPages, "f").has(file);
247
+ });
248
+ };
249
+ //# sourceMappingURL=FileAccess.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileAccess.js","sourceRoot":"","sources":["../../src/filesystems/FileAccess.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var _ImmutableVolume_vfs;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ class ImmutableVolume {
16
+ constructor(vfs, namespace) {
17
+ _ImmutableVolume_vfs.set(this, void 0);
18
+ this.promises = {
19
+ readFile: file => {
20
+ return __classPrivateFieldGet(this, _ImmutableVolume_vfs, "f").readFile(file);
21
+ },
22
+ readdir: (dir, options) => {
23
+ return __classPrivateFieldGet(this, _ImmutableVolume_vfs, "f").readdir(dir, options);
24
+ },
25
+ stat: (file, options) => {
26
+ return __classPrivateFieldGet(this, _ImmutableVolume_vfs, "f").stat(file, options);
27
+ },
28
+ realpath: (target, options) => {
29
+ return __classPrivateFieldGet(this, _ImmutableVolume_vfs, "f").realpath(target, options);
30
+ },
31
+ exists: file => {
32
+ return __classPrivateFieldGet(this, _ImmutableVolume_vfs, "f").exists(file);
33
+ },
34
+ glob: (pattern, options) => {
35
+ return __classPrivateFieldGet(this, _ImmutableVolume_vfs, "f").glob(pattern, options);
36
+ }
37
+ };
38
+ __classPrivateFieldSet(this, _ImmutableVolume_vfs, vfs, "f");
39
+ this.namespace = namespace;
40
+ }
41
+ get frozen() {
42
+ return __classPrivateFieldGet(this, _ImmutableVolume_vfs, "f").$$frozen;
43
+ }
44
+ symlinksToJSON() {
45
+ return __classPrivateFieldGet(this, _ImmutableVolume_vfs, "f").symlinksToJSON();
46
+ }
47
+ toJSON() {
48
+ return __classPrivateFieldGet(this, _ImmutableVolume_vfs, "f").toJSON();
49
+ }
50
+ }
51
+ exports.default = ImmutableVolume;
52
+ _ImmutableVolume_vfs = new WeakMap();
53
+ //# sourceMappingURL=ImmutableVolume.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImmutableVolume.js","sourceRoot":"","sources":["../../src/filesystems/ImmutableVolume.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAGA,MAAqB,eAAe;IAIlC,YAAY,GAAG,EAAE,SAAS;QAH1B,uCAAkB;QAQlB,aAAQ,GAAiC;YACvC,QAAQ,EAAE,IAAI,CAAC,EAAE;gBACf,OAAO,uBAAA,IAAI,4BAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;YACD,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;gBACxB,OAAO,uBAAA,IAAI,4BAAK,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACzC,CAAC;YACD,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;gBACtB,OAAO,uBAAA,IAAI,4BAAK,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACvC,CAAC;YACD,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;gBAC5B,OAAO,uBAAA,IAAI,4BAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC7C,CAAC;YACD,MAAM,EAAE,IAAI,CAAC,EAAE;gBACb,OAAO,uBAAA,IAAI,4BAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;YACD,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;gBACzB,OAAO,uBAAA,IAAI,4BAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC1C,CAAC;SACF,CAAC;QAvBA,uBAAA,IAAI,wBAAQ,GAAG,MAAA,CAAC;QAChB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAuBD,IAAI,MAAM;QACR,OAAO,uBAAA,IAAI,4BAAK,CAAC,QAAQ,CAAC;IAC5B,CAAC;IAED,cAAc;QACZ,OAAO,uBAAA,IAAI,4BAAK,CAAC,cAAc,EAAE,CAAC;IACpC,CAAC;IAED,MAAM;QACJ,OAAO,uBAAA,IAAI,4BAAK,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;CACF;AAzCD,kCAyCC"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
12
+ if (kind === "m") throw new TypeError("Private method is not writable");
13
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
14
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
15
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
16
+ };
17
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
18
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
19
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
20
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
21
+ };
22
+ var __importDefault = (this && this.__importDefault) || function (mod) {
23
+ return (mod && mod.__esModule) ? mod : { "default": mod };
24
+ };
25
+ var _MutableVolume_vfs;
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ const RestrictedVolume_1 = __importDefault(require("./RestrictedVolume"));
28
+ class MutableVolume extends RestrictedVolume_1.default {
29
+ constructor(vfs, namespace) {
30
+ super(vfs, namespace);
31
+ _MutableVolume_vfs.set(this, void 0);
32
+ __classPrivateFieldSet(this, _MutableVolume_vfs, vfs, "f");
33
+ }
34
+ asRestricted() {
35
+ return new RestrictedVolume_1.default(__classPrivateFieldGet(this, _MutableVolume_vfs, "f"), super.namespace);
36
+ }
37
+ freeze() {
38
+ __classPrivateFieldGet(this, _MutableVolume_vfs, "f").$$freeze();
39
+ }
40
+ clearCache() {
41
+ __classPrivateFieldGet(this, _MutableVolume_vfs, "f").$$clearCache();
42
+ }
43
+ unfreeze() {
44
+ __classPrivateFieldGet(this, _MutableVolume_vfs, "f").$$unfreeze();
45
+ }
46
+ __internal_do_not_use_addReadFileHook(hook) {
47
+ __classPrivateFieldGet(this, _MutableVolume_vfs, "f").$$addReadFileHook(hook);
48
+ }
49
+ symlinksToJSON() {
50
+ return __classPrivateFieldGet(this, _MutableVolume_vfs, "f").symlinksToJSON();
51
+ }
52
+ symlinksFromJSON(json) {
53
+ return __awaiter(this, void 0, void 0, function* () {
54
+ return yield __classPrivateFieldGet(this, _MutableVolume_vfs, "f").$$symlinksFromJSON(json);
55
+ });
56
+ }
57
+ fromJSON(json) {
58
+ return __classPrivateFieldGet(this, _MutableVolume_vfs, "f").fromJSON(json);
59
+ }
60
+ reset() {
61
+ __classPrivateFieldGet(this, _MutableVolume_vfs, "f").$$reset();
62
+ }
63
+ }
64
+ exports.default = MutableVolume;
65
+ _MutableVolume_vfs = new WeakMap();
66
+ //# sourceMappingURL=MutableVolume.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MutableVolume.js","sourceRoot":"","sources":["../../src/filesystems/MutableVolume.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,0EAAsD;AAEtD,MAAqB,aAAc,SAAQ,0BAAoB;IAG7D,YAAY,GAAG,EAAE,SAAS;QACxB,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAHxB,qCAAkB;QAIhB,uBAAA,IAAI,sBAAQ,GAAG,MAAA,CAAC;IAClB,CAAC;IAED,YAAY;QACV,OAAO,IAAI,0BAAoB,CAAC,uBAAA,IAAI,0BAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM;QACJ,uBAAA,IAAI,0BAAK,CAAC,QAAQ,EAAE,CAAC;IACvB,CAAC;IAED,UAAU;QACR,uBAAA,IAAI,0BAAK,CAAC,YAAY,EAAE,CAAC;IAC3B,CAAC;IAED,QAAQ;QACN,uBAAA,IAAI,0BAAK,CAAC,UAAU,EAAE,CAAC;IACzB,CAAC;IAED,qCAAqC,CAAC,IAAI;QACxC,uBAAA,IAAI,0BAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,cAAc;QACZ,OAAO,uBAAA,IAAI,0BAAK,CAAC,cAAc,EAAE,CAAC;IACpC,CAAC;IAEK,gBAAgB,CAAC,IAA2D;;YAChF,OAAO,MAAM,uBAAA,IAAI,0BAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAClD,CAAC;KAAA;IAED,QAAQ,CAAC,IAAmB;QAC1B,OAAO,uBAAA,IAAI,0BAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,KAAK;QACH,uBAAA,IAAI,0BAAK,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC;CACF;AA3CD,gCA2CC"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ var _RestrictedVolume_vfs;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const ImmutableVolume_1 = __importDefault(require("./ImmutableVolume"));
19
+ const lodash_1 = require("lodash");
20
+ /**
21
+ * Restricted filesystems can be written to, but cannot be frozen, updated or reset
22
+ */
23
+ class RestrictedVolume extends ImmutableVolume_1.default {
24
+ constructor(vfs, namespace) {
25
+ super(vfs, namespace);
26
+ _RestrictedVolume_vfs.set(this, void 0);
27
+ this.promises = (0, lodash_1.create)(this.promises, {
28
+ unlink: target => {
29
+ return __classPrivateFieldGet(this, _RestrictedVolume_vfs, "f").unlink(target);
30
+ },
31
+ symlink: (target, alias, type) => {
32
+ return __classPrivateFieldGet(this, _RestrictedVolume_vfs, "f").symlink(target, alias, type);
33
+ },
34
+ writeFile: (file, data) => {
35
+ return __classPrivateFieldGet(this, _RestrictedVolume_vfs, "f").writeFile(file, data);
36
+ },
37
+ mkdir: (dir, options) => {
38
+ return __classPrivateFieldGet(this, _RestrictedVolume_vfs, "f").mkdir(dir, options);
39
+ }
40
+ });
41
+ __classPrivateFieldSet(this, _RestrictedVolume_vfs, vfs, "f");
42
+ }
43
+ /**
44
+ * Do not use this method on restricted volumes, as it may disrupt the read/cache flow of files.
45
+ */
46
+ __internal_do_not_use_addReadFileHook(readFileHook) {
47
+ return __classPrivateFieldGet(this, _RestrictedVolume_vfs, "f").$$addReadFileHook(readFileHook);
48
+ }
49
+ symlinksToJSON() {
50
+ return __classPrivateFieldGet(this, _RestrictedVolume_vfs, "f").symlinksToJSON();
51
+ }
52
+ toJSON() {
53
+ return __classPrivateFieldGet(this, _RestrictedVolume_vfs, "f").toJSON();
54
+ }
55
+ get frozen() {
56
+ return __classPrivateFieldGet(this, _RestrictedVolume_vfs, "f").$$frozen;
57
+ }
58
+ asReadOnly() {
59
+ return new ImmutableVolume_1.default(__classPrivateFieldGet(this, _RestrictedVolume_vfs, "f"), super.namespace);
60
+ }
61
+ }
62
+ _RestrictedVolume_vfs = new WeakMap();
63
+ exports.default = RestrictedVolume;
64
+ //# sourceMappingURL=RestrictedVolume.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RestrictedVolume.js","sourceRoot":"","sources":["../../src/filesystems/RestrictedVolume.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAGA,wEAAoD;AACpD,mCAAgC;AAEhC;;GAEG;AACH,MAAM,gBAAiB,SAAQ,yBAAmB;IAGhD,YAAY,GAAG,EAAE,SAAS;QACxB,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAHxB,wCAAkB;QAOlB,aAAQ,GAAG,IAAA,eAAM,EAAC,IAAI,CAAC,QAAQ,EAAE;YAC/B,MAAM,EAAE,MAAM,CAAC,EAAE;gBACf,OAAO,uBAAA,IAAI,6BAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC;YACD,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBAC/B,OAAO,uBAAA,IAAI,6BAAK,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAChD,CAAC;YACD,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;gBACxB,OAAO,uBAAA,IAAI,6BAAK,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACzC,CAAC;YACD,KAAK,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;gBACtB,OAAO,uBAAA,IAAI,6BAAK,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACvC,CAAC;SACF,CAAC,CAAC;QAhBD,uBAAA,IAAI,yBAAQ,GAAG,MAAA,CAAC;IAClB,CAAC;IAiBD;;OAEG;IACH,qCAAqC,CAAC,YAAY;QAChD,OAAO,uBAAA,IAAI,6BAAK,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IACnD,CAAC;IAED,cAAc;QACZ,OAAO,uBAAA,IAAI,6BAAK,CAAC,cAAc,EAAE,CAAC;IACpC,CAAC;IAED,MAAM;QACJ,OAAO,uBAAA,IAAI,6BAAK,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,uBAAA,IAAI,6BAAK,CAAC,QAAQ,CAAC;IAC5B,CAAC;IAED,UAAU;QACR,OAAO,IAAI,yBAAmB,CAAC,uBAAA,IAAI,6BAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;CACF;;AAED,kBAAe,gBAAgB,CAAC"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
12
+ if (kind === "m") throw new TypeError("Private method is not writable");
13
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
14
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
15
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
16
+ };
17
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
18
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
19
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
20
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
21
+ };
22
+ var __importDefault = (this && this.__importDefault) || function (mod) {
23
+ return (mod && mod.__esModule) ? mod : { "default": mod };
24
+ };
25
+ var _UnionFileAccess_ufs;
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ const unionfs_1 = require("unionfs");
28
+ const merge_1 = __importDefault(require("lodash/merge"));
29
+ const FileAccess_1 = __importDefault(require("./FileAccess"));
30
+ class UnionFileAccess extends FileAccess_1.default {
31
+ constructor(ufs) {
32
+ super(ufs);
33
+ _UnionFileAccess_ufs.set(this, void 0);
34
+ __classPrivateFieldSet(this, _UnionFileAccess_ufs, ufs, "f");
35
+ }
36
+ // We have to override this here, so we can hand-hold the glob and make sure it fires on all filesystems
37
+ glob(pattern, options) {
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ return __classPrivateFieldGet(this, _UnionFileAccess_ufs, "f").fss.reduce((globResults, childFs) => __awaiter(this, void 0, void 0, function* () {
40
+ return [
41
+ ...(yield globResults),
42
+ ...(yield childFs.promises.glob(pattern, options))
43
+ ];
44
+ }), Promise.resolve([]));
45
+ });
46
+ }
47
+ /**
48
+ * Scopes a filesystem to specific namespaces
49
+ * @param {string[]} namespaces Array of namespaces to limit this filesystem to
50
+ * @returns A new immutable union filesystem
51
+ */
52
+ scope(namespaces) {
53
+ const scopedUnion = new unionfs_1.Union();
54
+ const matchingNamespaceFSs = __classPrivateFieldGet(this, _UnionFileAccess_ufs, "f").fss.filter(fss => namespaces.includes(fss.namespace));
55
+ if (!matchingNamespaceFSs.length) {
56
+ throw new Error(`Scoping failed. No matching filesystems for ${namespaces
57
+ .map(namespace => `"${namespace}"`)
58
+ .join(', ')}.`);
59
+ }
60
+ matchingNamespaceFSs.forEach(fss => scopedUnion.use(fss));
61
+ return new UnionFileAccess(scopedUnion);
62
+ }
63
+ /**
64
+ * Reads 1 or more files (if multiple files exist at the same location within the union filesystem)
65
+ * @param file Path
66
+ * @param options.includeConflicts If multiple files exist at the same location in the filesystem, return them all as an array
67
+ * @returns Promise<TDataOut[]>
68
+ */
69
+ readFile(file, options) {
70
+ if (!(options === null || options === void 0 ? void 0 : options.includeConflicts)) {
71
+ return super.readFile(file);
72
+ }
73
+ return __classPrivateFieldGet(this, _UnionFileAccess_ufs, "f").fss.reduce((fileResults, childFs) => __awaiter(this, void 0, void 0, function* () {
74
+ return [
75
+ ...(yield fileResults),
76
+ ...((yield childFs.promises.exists(file)) ? [yield childFs.promises.readFile(file)] : [])
77
+ ];
78
+ }), Promise.resolve([]));
79
+ }
80
+ symlinksToJSON() {
81
+ return __classPrivateFieldGet(this, _UnionFileAccess_ufs, "f").fss.reduce((merged, filesystem) => (0, merge_1.default)(merged, filesystem.symlinksToJSON()), {});
82
+ }
83
+ toJSON() {
84
+ return __classPrivateFieldGet(this, _UnionFileAccess_ufs, "f").fss.reduce((merged, filesystem) => (Object.assign(Object.assign({}, merged), filesystem.toJSON())), {});
85
+ }
86
+ }
87
+ exports.default = UnionFileAccess;
88
+ _UnionFileAccess_ufs = new WeakMap();
89
+ //# sourceMappingURL=UnionFileAccess.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnionFileAccess.js","sourceRoot":"","sources":["../../src/filesystems/UnionFileAccess.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAA0C;AAC1C,yDAAiC;AAIjC,8DAAsC;AAGtC,MAAqB,eAAgB,SAAQ,oBAAU;IAGrD,YAAY,GAAG;QACb,KAAK,CAAC,GAAG,CAAC,CAAC;QAHb,uCAA2C;QAIzC,uBAAA,IAAI,wBAAQ,GAAG,MAAA,CAAC;IAClB,CAAC;IACD,wGAAwG;IAClG,IAAI,CAAC,OAAO,EAAE,OAAO;;YACzB,OAAO,uBAAA,IAAI,4BAAK,CAAC,GAAG,CAAC,MAAM,CACzB,CAAO,WAAW,EAAE,OAAO,EAAE,EAAE;gBAAC,OAAA;oBAC9B,GAAG,CAAC,MAAM,WAAW,CAAC;oBACtB,GAAG,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;iBACnD,CAAA;cAAA,EACD,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CACpB,CAAC;QACJ,CAAC;KAAA;IACD;;;;OAIG;IACH,KAAK,CAAC,UAAoB;QACxB,MAAM,WAAW,GAAyC,IAAI,eAAK,EAElE,CAAC;QACF,MAAM,oBAAoB,GAAG,uBAAA,IAAI,4BAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QAE7F,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE;YAChC,MAAM,IAAI,KAAK,CACb,+CAA+C,UAAU;iBACtD,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,SAAS,GAAG,CAAC;iBAClC,IAAI,CAAC,IAAI,CAAC,GAAG,CACjB,CAAC;SACH;QACD,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,GAAqB,CAAC,CAAC,CAAC;QAC5E,OAAO,IAAI,eAAe,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;IACD;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,OAAwC;QACrD,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,CAAA,EAAE;YAC9B,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAC7B;QACD,OAAO,uBAAA,IAAI,4BAAK,CAAC,GAAG,CAAC,MAAM,CACzB,CAAO,WAAW,EAAE,OAAO,EAAE,EAAE;YAAC,OAAA;gBAC9B,GAAG,CAAC,MAAM,WAAW,CAAC;gBACtB,GAAG,CAAC,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1F,CAAA;UAAA,EACD,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CACpB,CAAC;IACJ,CAAC;IACD,cAAc;QACZ,OAAO,uBAAA,IAAI,4BAAK,CAAC,GAAG,CAAC,MAAM,CACzB,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,IAAA,eAAK,EAAC,MAAM,EAAE,UAAU,CAAC,cAAc,EAAE,CAAC,EAClE,EAAE,CACH,CAAC;IACJ,CAAC;IACD,MAAM;QACJ,OAAO,uBAAA,IAAI,4BAAK,CAAC,GAAG,CAAC,MAAM,CACzB,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,iCAAM,MAAM,GAAK,UAAU,CAAC,MAAM,EAAE,EAAG,EAC/D,EAAE,CACH,CAAC;IACJ,CAAC;CACF;AApED,kCAoEC"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ var _UnionVolume_vfs;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const lodash_1 = require("lodash");
19
+ const MutableVolume_1 = __importDefault(require("./MutableVolume"));
20
+ class UnionVolume extends MutableVolume_1.default {
21
+ constructor(vfs, namespace) {
22
+ super(vfs, namespace);
23
+ _UnionVolume_vfs.set(this, void 0);
24
+ this.promises = (0, lodash_1.create)(this.promises, {
25
+ readFile: (file, options) => {
26
+ if (options === null || options === void 0 ? void 0 : options.includeConflicts) {
27
+ return __classPrivateFieldGet(this, _UnionVolume_vfs, "f").readFile(file, options);
28
+ }
29
+ return __classPrivateFieldGet(this, _UnionVolume_vfs, "f").readFile(file);
30
+ }
31
+ });
32
+ __classPrivateFieldSet(this, _UnionVolume_vfs, vfs, "f");
33
+ }
34
+ scope(namespaces) {
35
+ return new UnionVolume(__classPrivateFieldGet(this, _UnionVolume_vfs, "f").scope(namespaces), super.namespace);
36
+ }
37
+ }
38
+ exports.default = UnionVolume;
39
+ _UnionVolume_vfs = new WeakMap();
40
+ //# sourceMappingURL=UnionVolume.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnionVolume.js","sourceRoot":"","sources":["../../src/filesystems/UnionVolume.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAGA,mCAAgC;AAEhC,oEAA4C;AAE5C,MAAqB,WAAY,SAAQ,uBAAa;IAGpD,YAAY,GAAG,EAAE,SAAS;QACxB,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAHxB,mCAAsB;QAOtB,aAAQ,GAAG,IAAA,eAAM,EAAC,IAAI,CAAC,QAAQ,EAAE;YAC/B,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;gBAC1B,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,EAAE;oBAC7B,OAAO,uBAAA,IAAI,wBAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAwB,CAAC;iBACjE;gBACD,OAAO,uBAAA,IAAI,wBAAK,CAAC,QAAQ,CAAC,IAAI,CAAsB,CAAC;YACvD,CAAC;SACF,CAAC,CAAC;QAVD,uBAAA,IAAI,oBAAQ,GAAG,MAAA,CAAC;IAClB,CAAC;IAWD,KAAK,CAAC,UAAoB;QACxB,OAAO,IAAI,WAAW,CAAC,uBAAA,IAAI,wBAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACvE,CAAC;CACF;AApBD,8BAoBC"}