@atlaspack/package-manager 2.14.5-canary.28 → 2.14.5-canary.280

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 (63) hide show
  1. package/CHANGELOG.md +358 -0
  2. package/dist/JSONParseStream.js +37 -0
  3. package/dist/MockPackageInstaller.js +54 -0
  4. package/dist/NodePackageManager.js +559 -0
  5. package/dist/Npm.js +73 -0
  6. package/dist/Pnpm.js +140 -0
  7. package/dist/Yarn.js +124 -0
  8. package/dist/getCurrentPackageManager.js +17 -0
  9. package/dist/index.js +24 -0
  10. package/dist/installPackage.js +197 -0
  11. package/dist/nodejsConditions.js +39 -0
  12. package/dist/promiseFromProcess.js +16 -0
  13. package/dist/utils.js +76 -0
  14. package/dist/validateModuleSpecifier.js +11 -0
  15. package/lib/JSONParseStream.js +52 -0
  16. package/lib/MockPackageInstaller.js +79 -0
  17. package/lib/NodePackageManager.js +621 -0
  18. package/lib/Npm.js +106 -0
  19. package/lib/Pnpm.js +185 -0
  20. package/lib/Yarn.js +160 -0
  21. package/lib/getCurrentPackageManager.js +20 -0
  22. package/lib/index.js +64 -5211
  23. package/lib/installPackage.js +222 -0
  24. package/lib/nodejsConditions.js +41 -0
  25. package/lib/promiseFromProcess.js +20 -0
  26. package/lib/types/JSONParseStream.d.ts +6 -0
  27. package/lib/types/MockPackageInstaller.d.ts +14 -0
  28. package/lib/types/NodePackageManager.d.ts +37 -0
  29. package/lib/types/Npm.d.ts +4 -0
  30. package/lib/types/Pnpm.d.ts +5 -0
  31. package/lib/types/Yarn.d.ts +5 -0
  32. package/lib/types/getCurrentPackageManager.d.ts +4 -0
  33. package/lib/types/index.d.ts +10 -0
  34. package/lib/types/installPackage.d.ts +5 -0
  35. package/lib/types/nodejsConditions.d.ts +3 -0
  36. package/lib/types/promiseFromProcess.d.ts +2 -0
  37. package/lib/types/utils.d.ts +15 -0
  38. package/lib/types/validateModuleSpecifier.d.ts +1 -0
  39. package/lib/utils.js +101 -0
  40. package/lib/validateModuleSpecifier.js +14 -0
  41. package/package.json +17 -20
  42. package/src/{JSONParseStream.js → JSONParseStream.ts} +8 -7
  43. package/src/{MockPackageInstaller.js → MockPackageInstaller.ts} +4 -6
  44. package/src/{NodePackageManager.js → NodePackageManager.ts} +125 -73
  45. package/src/{Npm.js → Npm.ts} +9 -9
  46. package/src/{Pnpm.js → Pnpm.ts} +68 -50
  47. package/src/{Yarn.js → Yarn.ts} +38 -25
  48. package/src/{getCurrentPackageManager.js → getCurrentPackageManager.ts} +9 -4
  49. package/src/{index.js → index.ts} +0 -2
  50. package/src/{installPackage.js → installPackage.ts} +4 -6
  51. package/src/{nodejsConditions.js → nodejsConditions.ts} +6 -3
  52. package/src/promiseFromProcess.ts +23 -0
  53. package/src/{utils.js → utils.ts} +21 -11
  54. package/src/{validateModuleSpecifier.js → validateModuleSpecifier.ts} +0 -2
  55. package/test/{NodePackageManager.test.js → NodePackageManager.test.ts} +19 -16
  56. package/test/{getCurrentPackageManager.test.js → getCurrentPackageManager.test.ts} +0 -1
  57. package/test/{validateModuleSpecifiers.test.js → validateModuleSpecifiers.test.ts} +2 -3
  58. package/tsconfig.json +33 -0
  59. package/tsconfig.tsbuildinfo +1 -0
  60. package/index.d.ts +0 -40
  61. package/lib/index.d.ts +0 -10
  62. package/lib/index.js.map +0 -1
  63. package/src/promiseFromProcess.js +0 -19
package/CHANGELOG.md CHANGED
@@ -1,5 +1,363 @@
1
1
  # @atlaspack/package-manager
2
2
 
3
+ ## 2.14.37
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [[`373ee2d`](https://github.com/atlassian-labs/atlaspack/commit/373ee2d3b5cc315df1e90e647619f915892e2b87)]:
8
+ - @atlaspack/node-resolver-core@3.7.8
9
+ - @atlaspack/fs@2.15.32
10
+ - @atlaspack/logger@2.14.29
11
+ - @atlaspack/utils@3.1.1
12
+ - @atlaspack/workers@2.14.37
13
+ - @atlaspack/types@2.15.27
14
+
15
+ ## 2.14.36
16
+
17
+ ### Patch Changes
18
+
19
+ - Updated dependencies [[`5776be2`](https://github.com/atlassian-labs/atlaspack/commit/5776be21f70a3f2b9471ba33da3ba1a883f21f1a)]:
20
+ - @atlaspack/utils@3.1.0
21
+ - @atlaspack/fs@2.15.31
22
+ - @atlaspack/logger@2.14.28
23
+ - @atlaspack/node-resolver-core@3.7.7
24
+ - @atlaspack/workers@2.14.36
25
+ - @atlaspack/types@2.15.26
26
+
27
+ ## 2.14.35
28
+
29
+ ### Patch Changes
30
+
31
+ - Updated dependencies [[`79a7e22`](https://github.com/atlassian-labs/atlaspack/commit/79a7e22ef119891a2f4180a9d3cc66b38dd52092), [`c372f3f`](https://github.com/atlassian-labs/atlaspack/commit/c372f3fd6fce8200d5cf47f41bc7895c6cbb5558), [`17dfea9`](https://github.com/atlassian-labs/atlaspack/commit/17dfea9e9f3169807808520df9c09ebf70dc8b10)]:
32
+ - @atlaspack/node-resolver-core@3.7.6
33
+ - @atlaspack/utils@3.0.3
34
+ - @atlaspack/fs@2.15.30
35
+ - @atlaspack/logger@2.14.27
36
+ - @atlaspack/types@2.15.25
37
+ - @atlaspack/workers@2.14.35
38
+
39
+ ## 2.14.34
40
+
41
+ ### Patch Changes
42
+
43
+ - Updated dependencies [[`25cbee6`](https://github.com/atlassian-labs/atlaspack/commit/25cbee625fb47ac20423fe34ff37bc818a807245)]:
44
+ - @atlaspack/workers@2.14.34
45
+ - @atlaspack/fs@2.15.29
46
+ - @atlaspack/types@2.15.24
47
+ - @atlaspack/utils@3.0.2
48
+ - @atlaspack/node-resolver-core@3.7.5
49
+ - @atlaspack/logger@2.14.26
50
+
51
+ ## 2.14.33
52
+
53
+ ### Patch Changes
54
+
55
+ - Updated dependencies [[`236e546`](https://github.com/atlassian-labs/atlaspack/commit/236e5465863dca6044a7191e05260a5b924c342e)]:
56
+ - @atlaspack/utils@3.0.1
57
+ - @atlaspack/workers@2.14.33
58
+ - @atlaspack/node-resolver-core@3.7.4
59
+ - @atlaspack/fs@2.15.28
60
+ - @atlaspack/types@2.15.23
61
+ - @atlaspack/logger@2.14.25
62
+
63
+ ## 2.14.32
64
+
65
+ ### Patch Changes
66
+
67
+ - Updated dependencies [[`1180103`](https://github.com/atlassian-labs/atlaspack/commit/118010351ed444f8178988afb3f77807154dd933)]:
68
+ - @atlaspack/utils@3.0.0
69
+ - @atlaspack/fs@2.15.27
70
+ - @atlaspack/node-resolver-core@3.7.3
71
+ - @atlaspack/logger@2.14.24
72
+ - @atlaspack/workers@2.14.32
73
+ - @atlaspack/types@2.15.22
74
+
75
+ ## 2.14.31
76
+
77
+ ### Patch Changes
78
+
79
+ - [#785](https://github.com/atlassian-labs/atlaspack/pull/785) [`0e7dd5e`](https://github.com/atlassian-labs/atlaspack/commit/0e7dd5ec6fbe05aa9e0bb5775a9d0975f206a922) Thanks [@matt-koko](https://github.com/matt-koko)! - We need to re-publish every package in Atlaspack with the corrected types field.
80
+
81
+ - Updated dependencies [[`0e7dd5e`](https://github.com/atlassian-labs/atlaspack/commit/0e7dd5ec6fbe05aa9e0bb5775a9d0975f206a922)]:
82
+ - @atlaspack/build-cache@2.13.6
83
+ - @atlaspack/diagnostic@2.14.4
84
+ - @atlaspack/fs@2.15.26
85
+ - @atlaspack/logger@2.14.23
86
+ - @atlaspack/types@2.15.21
87
+ - @atlaspack/utils@2.19.3
88
+ - @atlaspack/workers@2.14.31
89
+ - @atlaspack/node-resolver-core@3.7.2
90
+
91
+ ## 2.14.30
92
+
93
+ ### Patch Changes
94
+
95
+ - Updated dependencies []:
96
+ - @atlaspack/fs@2.15.25
97
+ - @atlaspack/utils@2.19.2
98
+ - @atlaspack/node-resolver-core@3.7.1
99
+ - @atlaspack/logger@2.14.22
100
+ - @atlaspack/types@2.15.20
101
+ - @atlaspack/workers@2.14.30
102
+
103
+ ## 2.14.29
104
+
105
+ ### Patch Changes
106
+
107
+ - [#764](https://github.com/atlassian-labs/atlaspack/pull/764) [`58ddd5d`](https://github.com/atlassian-labs/atlaspack/commit/58ddd5d79adde2ac5dc4c60ca575e4705a91e592) Thanks [@mattcompiles](https://github.com/mattcompiles)! - Fix using Atlaspack linked with source files
108
+
109
+ - Updated dependencies [[`53dd47b`](https://github.com/atlassian-labs/atlaspack/commit/53dd47bd6d23cd47f87297347f03a609ab38a03d)]:
110
+ - @atlaspack/node-resolver-core@3.7.0
111
+ - @atlaspack/fs@2.15.24
112
+ - @atlaspack/utils@2.19.1
113
+ - @atlaspack/logger@2.14.21
114
+ - @atlaspack/types@2.15.19
115
+ - @atlaspack/workers@2.14.29
116
+
117
+ ## 2.14.28
118
+
119
+ ### Patch Changes
120
+
121
+ - Updated dependencies [[`f0349a6`](https://github.com/atlassian-labs/atlaspack/commit/f0349a6b9b04755088f121095ca6301a2ada3767)]:
122
+ - @atlaspack/utils@2.19.0
123
+ - @atlaspack/fs@2.15.23
124
+ - @atlaspack/node-resolver-core@3.6.4
125
+ - @atlaspack/workers@2.14.28
126
+ - @atlaspack/logger@2.14.20
127
+ - @atlaspack/types@2.15.18
128
+
129
+ ## 2.14.27
130
+
131
+ ### Patch Changes
132
+
133
+ - Updated dependencies []:
134
+ - @atlaspack/fs@2.15.22
135
+ - @atlaspack/utils@2.18.4
136
+ - @atlaspack/node-resolver-core@3.6.3
137
+ - @atlaspack/logger@2.14.19
138
+ - @atlaspack/types@2.15.17
139
+ - @atlaspack/workers@2.14.27
140
+
141
+ ## 2.14.26
142
+
143
+ ### Patch Changes
144
+
145
+ - [#742](https://github.com/atlassian-labs/atlaspack/pull/742) [`ee040bb`](https://github.com/atlassian-labs/atlaspack/commit/ee040bb6428f29b57d892ddd8107e29077d08ffd) Thanks [@yamadapc](https://github.com/yamadapc)! - Internal changes and bug fixes to environmentDeduplication flag
146
+
147
+ - Updated dependencies [[`ee040bb`](https://github.com/atlassian-labs/atlaspack/commit/ee040bb6428f29b57d892ddd8107e29077d08ffd), [`889c65c`](https://github.com/atlassian-labs/atlaspack/commit/889c65cd25b811045e26a117e7404f694dde77a2)]:
148
+ - @atlaspack/node-resolver-core@3.6.2
149
+ - @atlaspack/build-cache@2.13.5
150
+ - @atlaspack/diagnostic@2.14.3
151
+ - @atlaspack/workers@2.14.26
152
+ - @atlaspack/logger@2.14.18
153
+ - @atlaspack/types@2.15.16
154
+ - @atlaspack/utils@2.18.3
155
+ - @atlaspack/fs@2.15.21
156
+
157
+ ## 2.14.25
158
+
159
+ ### Patch Changes
160
+
161
+ - Updated dependencies []:
162
+ - @atlaspack/fs@2.15.20
163
+ - @atlaspack/utils@2.18.2
164
+ - @atlaspack/node-resolver-core@3.6.1
165
+ - @atlaspack/logger@2.14.17
166
+ - @atlaspack/types@2.15.15
167
+ - @atlaspack/workers@2.14.25
168
+
169
+ ## 2.14.24
170
+
171
+ ### Patch Changes
172
+
173
+ - Updated dependencies [[`7f5841c`](https://github.com/atlassian-labs/atlaspack/commit/7f5841c39df049f9546cccbeea2a7337e0337b45)]:
174
+ - @atlaspack/node-resolver-core@3.6.0
175
+ - @atlaspack/fs@2.15.19
176
+ - @atlaspack/logger@2.14.16
177
+ - @atlaspack/utils@2.18.1
178
+ - @atlaspack/types@2.15.14
179
+ - @atlaspack/workers@2.14.24
180
+
181
+ ## 2.14.23
182
+
183
+ ### Patch Changes
184
+
185
+ - Updated dependencies [[`23d561e`](https://github.com/atlassian-labs/atlaspack/commit/23d561e51e68b0c38fd1ff4e4fb173e5e7b01cf2)]:
186
+ - @atlaspack/utils@2.18.0
187
+ - @atlaspack/fs@2.15.18
188
+ - @atlaspack/node-resolver-core@3.5.23
189
+ - @atlaspack/workers@2.14.23
190
+ - @atlaspack/logger@2.14.15
191
+ - @atlaspack/types@2.15.13
192
+
193
+ ## 2.14.22
194
+
195
+ ### Patch Changes
196
+
197
+ - [#720](https://github.com/atlassian-labs/atlaspack/pull/720) [`d2fd849`](https://github.com/atlassian-labs/atlaspack/commit/d2fd849770fe6305e9c694bd97b1bd905abd9d94) Thanks [@alshdavid](https://github.com/alshdavid)! - Migrate to TypeScript
198
+
199
+ - Updated dependencies [[`d2fd849`](https://github.com/atlassian-labs/atlaspack/commit/d2fd849770fe6305e9c694bd97b1bd905abd9d94)]:
200
+ - @atlaspack/node-resolver-core@3.5.22
201
+ - @atlaspack/build-cache@2.13.4
202
+ - @atlaspack/diagnostic@2.14.2
203
+ - @atlaspack/workers@2.14.22
204
+ - @atlaspack/logger@2.14.14
205
+ - @atlaspack/types@2.15.12
206
+ - @atlaspack/utils@2.17.4
207
+ - @atlaspack/fs@2.15.17
208
+
209
+ ## 2.14.21
210
+
211
+ ### Patch Changes
212
+
213
+ - Updated dependencies []:
214
+ - @atlaspack/fs@2.15.16
215
+ - @atlaspack/types@2.15.11
216
+ - @atlaspack/workers@2.14.21
217
+ - @atlaspack/utils@2.17.3
218
+ - @atlaspack/node-resolver-core@3.5.21
219
+
220
+ ## 2.14.20
221
+
222
+ ### Patch Changes
223
+
224
+ - Updated dependencies []:
225
+ - @atlaspack/fs@2.15.15
226
+ - @atlaspack/utils@2.17.2
227
+ - @atlaspack/node-resolver-core@3.5.20
228
+ - @atlaspack/types@2.15.10
229
+ - @atlaspack/workers@2.14.20
230
+
231
+ ## 2.14.19
232
+
233
+ ### Patch Changes
234
+
235
+ - Updated dependencies []:
236
+ - @atlaspack/fs@2.15.14
237
+ - @atlaspack/utils@2.17.1
238
+ - @atlaspack/node-resolver-core@3.5.19
239
+ - @atlaspack/types@2.15.9
240
+ - @atlaspack/workers@2.14.19
241
+
242
+ ## 2.14.18
243
+
244
+ ### Patch Changes
245
+
246
+ - [#645](https://github.com/atlassian-labs/atlaspack/pull/645) [`de23e0c`](https://github.com/atlassian-labs/atlaspack/commit/de23e0ce49d5504fe3947ac26640a3d951087da3) Thanks [@alshdavid](https://github.com/alshdavid)! - Updated build system and added some extra test-specific code
247
+
248
+ - [#682](https://github.com/atlassian-labs/atlaspack/pull/682) [`a5ed1b4`](https://github.com/atlassian-labs/atlaspack/commit/a5ed1b414498560f393ff491af4da25b6e8dde56) Thanks [@alshdavid](https://github.com/alshdavid)! - Updating build system
249
+
250
+ - Updated dependencies [[`dbb4072`](https://github.com/atlassian-labs/atlaspack/commit/dbb40721ebeb45990a14ba04e6b44e7f836fb32d), [`de23e0c`](https://github.com/atlassian-labs/atlaspack/commit/de23e0ce49d5504fe3947ac26640a3d951087da3), [`18a57cf`](https://github.com/atlassian-labs/atlaspack/commit/18a57cf8a4789b2de5ad8e2676f317a26cc91417), [`a5ed1b4`](https://github.com/atlassian-labs/atlaspack/commit/a5ed1b414498560f393ff491af4da25b6e8dde56)]:
251
+ - @atlaspack/utils@2.17.0
252
+ - @atlaspack/fs@2.15.13
253
+ - @atlaspack/node-resolver-core@3.5.18
254
+ - @atlaspack/workers@2.14.18
255
+ - @atlaspack/logger@2.14.13
256
+ - @atlaspack/types@2.15.8
257
+
258
+ ## 2.14.17
259
+
260
+ ### Patch Changes
261
+
262
+ - Updated dependencies []:
263
+ - @atlaspack/fs@2.15.12
264
+ - @atlaspack/logger@2.14.12
265
+ - @atlaspack/utils@2.16.1
266
+ - @atlaspack/node-resolver-core@3.5.17
267
+ - @atlaspack/workers@2.14.17
268
+ - @atlaspack/types@2.15.7
269
+
270
+ ## 2.14.16
271
+
272
+ ### Patch Changes
273
+
274
+ - Updated dependencies [[`30ee2cf`](https://github.com/atlassian-labs/atlaspack/commit/30ee2cfcd34cf2646ded0eda13fdb80a2a5de529)]:
275
+ - @atlaspack/utils@2.16.0
276
+ - @atlaspack/fs@2.15.11
277
+ - @atlaspack/node-resolver-core@3.5.16
278
+ - @atlaspack/workers@2.14.16
279
+ - @atlaspack/types@2.15.6
280
+
281
+ ## 2.14.15
282
+
283
+ ### Patch Changes
284
+
285
+ - Updated dependencies []:
286
+ - @atlaspack/fs@2.15.10
287
+ - @atlaspack/utils@2.15.3
288
+ - @atlaspack/node-resolver-core@3.5.15
289
+ - @atlaspack/types@2.15.5
290
+ - @atlaspack/workers@2.14.15
291
+
292
+ ## 2.14.14
293
+
294
+ ### Patch Changes
295
+
296
+ - Updated dependencies []:
297
+ - @atlaspack/fs@2.15.9
298
+ - @atlaspack/utils@2.15.2
299
+ - @atlaspack/node-resolver-core@3.5.14
300
+ - @atlaspack/types@2.15.4
301
+ - @atlaspack/workers@2.14.14
302
+
303
+ ## 2.14.13
304
+
305
+ ### Patch Changes
306
+
307
+ - Updated dependencies [[`ef3d622`](https://github.com/atlassian-labs/atlaspack/commit/ef3d6228f4e006702198a19c61e051d194d325cb)]:
308
+ - @atlaspack/workers@2.14.13
309
+ - @atlaspack/logger@2.14.11
310
+ - @atlaspack/fs@2.15.8
311
+ - @atlaspack/types@2.15.3
312
+ - @atlaspack/utils@2.15.1
313
+ - @atlaspack/node-resolver-core@3.5.13
314
+
315
+ ## 2.14.12
316
+
317
+ ### Patch Changes
318
+
319
+ - Updated dependencies [[`e39c6cf`](https://github.com/atlassian-labs/atlaspack/commit/e39c6cf05f7e95ce5420dbcea66f401b1cbd397c)]:
320
+ - @atlaspack/utils@2.15.0
321
+ - @atlaspack/fs@2.15.7
322
+ - @atlaspack/node-resolver-core@3.5.12
323
+ - @atlaspack/workers@2.14.12
324
+ - @atlaspack/types@2.15.2
325
+
326
+ ## 2.14.11
327
+
328
+ ### Patch Changes
329
+
330
+ - Updated dependencies []:
331
+ - @atlaspack/fs@2.15.6
332
+ - @atlaspack/utils@2.14.11
333
+ - @atlaspack/node-resolver-core@3.5.11
334
+ - @atlaspack/types@2.15.1
335
+ - @atlaspack/workers@2.14.11
336
+
337
+ ## 2.14.10
338
+
339
+ ### Patch Changes
340
+
341
+ - Updated dependencies [[`0999fb7`](https://github.com/atlassian-labs/atlaspack/commit/0999fb78da519a6c7582d212883e515fcf6c1252), [`51aba5f`](https://github.com/atlassian-labs/atlaspack/commit/51aba5fc0e49235ee06bbc3c376f48c3e7da5c4b), [`1e32d4e`](https://github.com/atlassian-labs/atlaspack/commit/1e32d4eae6b3af3968e8a0ef97d35b4347fd4196)]:
342
+ - @atlaspack/fs@2.15.5
343
+ - @atlaspack/types@2.15.0
344
+ - @atlaspack/node-resolver-core@3.5.10
345
+ - @atlaspack/workers@2.14.10
346
+ - @atlaspack/logger@2.14.10
347
+ - @atlaspack/utils@2.14.10
348
+
349
+ ## 2.14.9
350
+
351
+ ### Patch Changes
352
+
353
+ - Updated dependencies [[`e4d966c`](https://github.com/atlassian-labs/atlaspack/commit/e4d966c3c9c4292c5013372ae65b10d19d4bacc6)]:
354
+ - @atlaspack/fs@2.15.4
355
+ - @atlaspack/logger@2.14.9
356
+ - @atlaspack/utils@2.14.9
357
+ - @atlaspack/node-resolver-core@3.5.9
358
+ - @atlaspack/workers@2.14.9
359
+ - @atlaspack/types@2.14.9
360
+
3
361
  ## 2.14.8
4
362
 
5
363
  ### Patch Changes
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const logger_1 = __importDefault(require("@atlaspack/logger"));
7
+ const stream_1 = require("stream");
8
+ // Transforms chunks of json strings to parsed objects.
9
+ // Pair with split2 to parse stream of newline-delimited text.
10
+ class JSONParseStream extends stream_1.Transform {
11
+ constructor(options) {
12
+ // @ts-expect-error TS2698
13
+ super({ ...options, objectMode: true });
14
+ }
15
+ _transform(chunk, encoding, callback) {
16
+ try {
17
+ let parsed;
18
+ try {
19
+ parsed = JSON.parse(chunk.toString());
20
+ }
21
+ catch (e) {
22
+ // Be permissive and ignoreJSON parse errors in case there was
23
+ // a non-JSON line in the package manager's stdout.
24
+ logger_1.default.verbose({
25
+ message: 'Ignored invalid JSON message: ' + chunk.toString(),
26
+ origin: '@atlaspack/package-manager',
27
+ });
28
+ return;
29
+ }
30
+ callback(null, parsed);
31
+ }
32
+ catch (err) {
33
+ callback(err);
34
+ }
35
+ }
36
+ }
37
+ exports.default = JSONParseStream;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MockPackageInstaller = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const build_cache_1 = require("@atlaspack/build-cache");
9
+ const fs_1 = require("@atlaspack/fs");
10
+ const package_json_1 = __importDefault(require("../package.json"));
11
+ const utils_1 = require("./utils");
12
+ // This PackageInstaller implementation simply copies files from one filesystem to another.
13
+ // Mostly useful for testing purposes.
14
+ class MockPackageInstaller {
15
+ constructor() {
16
+ this.packages = new Map();
17
+ }
18
+ register(packageName, fs, packagePath) {
19
+ this.packages.set(packageName, { fs, packagePath });
20
+ }
21
+ async install({ modules, fs, cwd, packagePath, saveDev = true, }) {
22
+ if (packagePath == null) {
23
+ packagePath = path_1.default.join(cwd, 'package.json');
24
+ await fs.writeFile(packagePath, '{}');
25
+ }
26
+ let pkg = JSON.parse(await fs.readFile(packagePath, 'utf8'));
27
+ let key = saveDev ? 'devDependencies' : 'dependencies';
28
+ if (!pkg[key]) {
29
+ pkg[key] = {};
30
+ }
31
+ for (let module of modules) {
32
+ pkg[key][module.name] =
33
+ '^' + (await this.installPackage(module, fs, packagePath));
34
+ }
35
+ await fs.writeFile(packagePath, JSON.stringify(pkg));
36
+ }
37
+ async installPackage(moduleRequest, fs, packagePath) {
38
+ let pkg = this.packages.get(moduleRequest.name);
39
+ if (!pkg) {
40
+ throw new Error('Unknown package ' + moduleRequest.name);
41
+ }
42
+ let dest = path_1.default.join(path_1.default.dirname(packagePath), 'node_modules', moduleRequest.name);
43
+ await (0, fs_1.ncp)(pkg.fs, pkg.packagePath, fs, dest);
44
+ let packageJSON = JSON.parse(await fs.readFile(path_1.default.join(dest, 'package.json'), 'utf8'));
45
+ if (packageJSON.dependencies != null) {
46
+ for (let dep of (0, utils_1.moduleRequestsFromDependencyMap)(packageJSON.dependencies)) {
47
+ await this.installPackage(dep, fs, packagePath);
48
+ }
49
+ }
50
+ return packageJSON.version;
51
+ }
52
+ }
53
+ exports.MockPackageInstaller = MockPackageInstaller;
54
+ (0, build_cache_1.registerSerializableClass)(`${package_json_1.default.version}:MockPackageInstaller`, MockPackageInstaller);