@diquattro/cfnassets 0.6.4 → 0.6.6
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.
- package/lib/core/zip/getFolderEntries.d.ts.map +1 -1
- package/lib/core/zip/getFolderEntries.js +12 -4
- package/lib/core/zip/getFolderEntries.js.map +1 -1
- package/lib/core/zip/getPackageEntries.d.ts.map +1 -1
- package/lib/core/zip/getPackageEntries.js +36 -5
- package/lib/core/zip/getPackageEntries.js.map +1 -1
- package/package.json +3 -2
- package/src/core/zip/getFolderEntries.ts +13 -4
- package/src/core/zip/getPackageEntries.ts +47 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFolderEntries.d.ts","sourceRoot":"","sources":["../../../src/core/zip/getFolderEntries.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAuB,gBAAgB,CAAC,EACtC,WAAW,EAAE,eAAqB,EAClC,MAAM,EACN,MAAM,EAAE,WAAW,GACpB,EAAE,oBAAoB,GAAG,qBAAqB,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"getFolderEntries.d.ts","sourceRoot":"","sources":["../../../src/core/zip/getFolderEntries.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAuB,gBAAgB,CAAC,EACtC,WAAW,EAAE,eAAqB,EAClC,MAAM,EACN,MAAM,EAAE,WAAW,GACpB,EAAE,oBAAoB,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAuC7D"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createReadStream } from 'fs';
|
|
2
|
-
import { readdir } from 'fs/promises';
|
|
2
|
+
import { readdir, stat } from 'fs/promises';
|
|
3
3
|
import ignore from 'ignore';
|
|
4
4
|
import { join, relative, resolve } from 'path';
|
|
5
5
|
export async function* getFolderEntries({ archivePath: archiveBasePath = '/', source, ignore: ignorePaths, }) {
|
|
@@ -10,17 +10,25 @@ export async function* getFolderEntries({ archivePath: archiveBasePath = '/', so
|
|
|
10
10
|
const entries = await readdir(curr, { withFileTypes: true });
|
|
11
11
|
for (const entry of entries) {
|
|
12
12
|
const entryPath = join(curr, entry.name);
|
|
13
|
+
// For symlinks, follow them to get the real type
|
|
14
|
+
let isDir = entry.isDirectory();
|
|
15
|
+
let isFile = entry.isFile();
|
|
16
|
+
if (entry.isSymbolicLink()) {
|
|
17
|
+
const realStat = await stat(entryPath);
|
|
18
|
+
isDir = realStat.isDirectory();
|
|
19
|
+
isFile = realStat.isFile();
|
|
20
|
+
}
|
|
13
21
|
let archivePath = relative(source, entryPath);
|
|
14
|
-
if (
|
|
22
|
+
if (isDir) {
|
|
15
23
|
archivePath += '/';
|
|
16
24
|
}
|
|
17
25
|
if (ig.ignores(archivePath)) {
|
|
18
26
|
continue;
|
|
19
27
|
}
|
|
20
|
-
if (
|
|
28
|
+
if (isDir) {
|
|
21
29
|
work.push(entryPath);
|
|
22
30
|
}
|
|
23
|
-
else if (
|
|
31
|
+
else if (isFile) {
|
|
24
32
|
yield {
|
|
25
33
|
archivePath: join(archiveBasePath, archivePath),
|
|
26
34
|
content: () => createReadStream(entryPath),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFolderEntries.js","sourceRoot":"","sources":["../../../src/core/zip/getFolderEntries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,IAAI,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"getFolderEntries.js","sourceRoot":"","sources":["../../../src/core/zip/getFolderEntries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,IAAI,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAS/C,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,gBAAgB,CAAC,EACtC,WAAW,EAAE,eAAe,GAAG,GAAG,EAClC,MAAM,EACN,MAAM,EAAE,WAAW,GACE;IACrB,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/B,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IAEnD,OAAO,IAAI,CAAC,MAAM,EAAE;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAY,CAAC;QAElC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;YAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAEzC,iDAAiD;YACjD,IAAI,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YAChC,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE;gBAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC;gBACvC,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAC/B,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;aAC5B;YAED,IAAI,WAAW,GAAG,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC9C,IAAI,KAAK,EAAE;gBACT,WAAW,IAAI,GAAG,CAAC;aACpB;YACD,IAAI,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;gBAC3B,SAAS;aACV;YAED,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACtB;iBAAM,IAAI,MAAM,EAAE;gBACjB,MAAM;oBACJ,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC;oBAC/C,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC;iBAC3C,CAAC;aACH;SACF;KACF;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPackageEntries.d.ts","sourceRoot":"","sources":["../../../src/core/zip/getPackageEntries.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getPackageEntries.d.ts","sourceRoot":"","sources":["../../../src/core/zip/getPackageEntries.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,wBAAuB,iBAAiB,CAAC,EACvC,WAA4B,EAC5B,WAAW,EACX,eAAe,EACf,eAAe,EACf,WAAW,EACX,eAAe,EACf,YAAY,GACb,EAAE,qBAAqB,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAsH9D"}
|
|
@@ -3,6 +3,7 @@ import childProc from 'child_process';
|
|
|
3
3
|
import { copyFile, readFile, writeFile } from 'fs/promises';
|
|
4
4
|
import { basename, join } from 'path';
|
|
5
5
|
import { temporaryDirectory } from 'tempy';
|
|
6
|
+
import { parse as parseYaml } from 'yaml';
|
|
6
7
|
import { getFolderEntries } from './getFolderEntries.js';
|
|
7
8
|
export async function* getPackageEntries({ archivePath = 'node_modules', ignorePaths, packageLockPath, packageFilePath, packageArch, packagePlatform, packageNames, }) {
|
|
8
9
|
let exec;
|
|
@@ -64,10 +65,40 @@ export async function* getPackageEntries({ archivePath = 'node_modules', ignoreP
|
|
|
64
65
|
});
|
|
65
66
|
});
|
|
66
67
|
console.log(`\n`);
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
68
|
+
const nodeModulesDir = join(outDir, 'node_modules');
|
|
69
|
+
const isPnpm = lockBasename === 'pnpm-lock.yaml';
|
|
70
|
+
if (isPnpm) {
|
|
71
|
+
// For pnpm, we need to read .modules.yaml and yield entries for all hoisted dependencies
|
|
72
|
+
// pnpm stores packages in .pnpm/{name}@{version}/node_modules/{name}/
|
|
73
|
+
// and lists what should be hoisted in .modules.yaml
|
|
74
|
+
const modulesYamlPath = join(nodeModulesDir, '.modules.yaml');
|
|
75
|
+
const modulesYaml = parseYaml(await readFile(modulesYamlPath, 'utf-8'));
|
|
76
|
+
const hoisted = modulesYaml.hoistedDependencies || {};
|
|
77
|
+
// First yield the .pnpm directory contents (the actual package files)
|
|
78
|
+
yield* getFolderEntries({
|
|
79
|
+
source: join(nodeModulesDir, '.pnpm'),
|
|
80
|
+
archivePath: join(archivePath, '.pnpm'),
|
|
81
|
+
ignore: ignorePaths,
|
|
82
|
+
});
|
|
83
|
+
// Then yield entries for each hoisted dependency at root level
|
|
84
|
+
for (const [packageAtVersion, aliases] of Object.entries(hoisted)) {
|
|
85
|
+
for (const packageName of Object.keys(aliases)) {
|
|
86
|
+
const sourcePath = join(nodeModulesDir, '.pnpm', packageAtVersion, 'node_modules', packageName);
|
|
87
|
+
yield* getFolderEntries({
|
|
88
|
+
source: sourcePath,
|
|
89
|
+
archivePath: join(archivePath, packageName),
|
|
90
|
+
ignore: ignorePaths,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
// For npm/yarn, just copy the whole node_modules directory
|
|
97
|
+
yield* getFolderEntries({
|
|
98
|
+
source: nodeModulesDir,
|
|
99
|
+
archivePath,
|
|
100
|
+
ignore: ignorePaths,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
72
103
|
}
|
|
73
104
|
//# sourceMappingURL=getPackageEntries.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPackageEntries.js","sourceRoot":"","sources":["../../../src/core/zip/getPackageEntries.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"getPackageEntries.js","sourceRoot":"","sources":["../../../src/core/zip/getPackageEntries.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@diquattro/cfnassets",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.6",
|
|
4
4
|
"description": "Build asset zip packages for deployment. Fork of @awboost/cfnassets with pnpm support.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -66,6 +66,7 @@
|
|
|
66
66
|
"ignore": "^5.2.0",
|
|
67
67
|
"rollup": "^2.73.0",
|
|
68
68
|
"tempy": "^3.0.0",
|
|
69
|
-
"tiny-typed-emitter": "^2.1.0"
|
|
69
|
+
"tiny-typed-emitter": "^2.1.0",
|
|
70
|
+
"yaml": "^2.8.2"
|
|
70
71
|
}
|
|
71
72
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createReadStream } from 'fs';
|
|
2
|
-
import { readdir } from 'fs/promises';
|
|
2
|
+
import { readdir, stat } from 'fs/promises';
|
|
3
3
|
import ignore from 'ignore';
|
|
4
4
|
import { join, relative, resolve } from 'path';
|
|
5
5
|
import { ZipAssetEntry } from './ZipAssetEntry.js';
|
|
@@ -26,17 +26,26 @@ export async function* getFolderEntries({
|
|
|
26
26
|
for (const entry of entries) {
|
|
27
27
|
const entryPath = join(curr, entry.name);
|
|
28
28
|
|
|
29
|
+
// For symlinks, follow them to get the real type
|
|
30
|
+
let isDir = entry.isDirectory();
|
|
31
|
+
let isFile = entry.isFile();
|
|
32
|
+
if (entry.isSymbolicLink()) {
|
|
33
|
+
const realStat = await stat(entryPath);
|
|
34
|
+
isDir = realStat.isDirectory();
|
|
35
|
+
isFile = realStat.isFile();
|
|
36
|
+
}
|
|
37
|
+
|
|
29
38
|
let archivePath = relative(source, entryPath);
|
|
30
|
-
if (
|
|
39
|
+
if (isDir) {
|
|
31
40
|
archivePath += '/';
|
|
32
41
|
}
|
|
33
42
|
if (ig.ignores(archivePath)) {
|
|
34
43
|
continue;
|
|
35
44
|
}
|
|
36
45
|
|
|
37
|
-
if (
|
|
46
|
+
if (isDir) {
|
|
38
47
|
work.push(entryPath);
|
|
39
|
-
} else if (
|
|
48
|
+
} else if (isFile) {
|
|
40
49
|
yield {
|
|
41
50
|
archivePath: join(archiveBasePath, archivePath),
|
|
42
51
|
content: () => createReadStream(entryPath),
|
|
@@ -3,6 +3,7 @@ import childProc from 'child_process';
|
|
|
3
3
|
import { copyFile, readFile, writeFile } from 'fs/promises';
|
|
4
4
|
import { basename, join } from 'path';
|
|
5
5
|
import { temporaryDirectory } from 'tempy';
|
|
6
|
+
import { parse as parseYaml } from 'yaml';
|
|
6
7
|
import { getFolderEntries } from './getFolderEntries.js';
|
|
7
8
|
import { ZipAssetEntry } from './ZipAssetEntry.js';
|
|
8
9
|
|
|
@@ -96,9 +97,50 @@ export async function* getPackageEntries({
|
|
|
96
97
|
|
|
97
98
|
console.log(`\n`);
|
|
98
99
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
100
|
+
const nodeModulesDir = join(outDir, 'node_modules');
|
|
101
|
+
const isPnpm = lockBasename === 'pnpm-lock.yaml';
|
|
102
|
+
|
|
103
|
+
if (isPnpm) {
|
|
104
|
+
// For pnpm, we need to read .modules.yaml and yield entries for all hoisted dependencies
|
|
105
|
+
// pnpm stores packages in .pnpm/{name}@{version}/node_modules/{name}/
|
|
106
|
+
// and lists what should be hoisted in .modules.yaml
|
|
107
|
+
const modulesYamlPath = join(nodeModulesDir, '.modules.yaml');
|
|
108
|
+
const modulesYaml = parseYaml(await readFile(modulesYamlPath, 'utf-8')) as {
|
|
109
|
+
hoistedDependencies?: Record<string, Record<string, string>>;
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
const hoisted = modulesYaml.hoistedDependencies || {};
|
|
113
|
+
|
|
114
|
+
// First yield the .pnpm directory contents (the actual package files)
|
|
115
|
+
yield* getFolderEntries({
|
|
116
|
+
source: join(nodeModulesDir, '.pnpm'),
|
|
117
|
+
archivePath: join(archivePath, '.pnpm'),
|
|
118
|
+
ignore: ignorePaths,
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
// Then yield entries for each hoisted dependency at root level
|
|
122
|
+
for (const [packageAtVersion, aliases] of Object.entries(hoisted)) {
|
|
123
|
+
for (const packageName of Object.keys(aliases)) {
|
|
124
|
+
const sourcePath = join(
|
|
125
|
+
nodeModulesDir,
|
|
126
|
+
'.pnpm',
|
|
127
|
+
packageAtVersion,
|
|
128
|
+
'node_modules',
|
|
129
|
+
packageName,
|
|
130
|
+
);
|
|
131
|
+
yield* getFolderEntries({
|
|
132
|
+
source: sourcePath,
|
|
133
|
+
archivePath: join(archivePath, packageName),
|
|
134
|
+
ignore: ignorePaths,
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
} else {
|
|
139
|
+
// For npm/yarn, just copy the whole node_modules directory
|
|
140
|
+
yield* getFolderEntries({
|
|
141
|
+
source: nodeModulesDir,
|
|
142
|
+
archivePath,
|
|
143
|
+
ignore: ignorePaths,
|
|
144
|
+
});
|
|
145
|
+
}
|
|
104
146
|
}
|