@diquattro/cfnassets 0.6.7 → 0.7.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.
package/README.md CHANGED
@@ -1,7 +1,4 @@
1
- # @diquattro/cfnassets
2
-
3
- > **Fork of [@awboost/cfnassets](https://github.com/awboost/cfnassets)** by Gordon Leigh.
4
- > This fork adds pnpm support. Consider using the original package if/when this feature is merged upstream.
1
+ # @awboost/cfnassets
5
2
 
6
3
  Build asset zip packages for deployment.
7
4
 
@@ -31,23 +28,6 @@ You need an assets config file:
31
28
  }
32
29
  ```
33
30
 
34
- The `packageLockPath` option supports npm (`package-lock.json`), yarn (`yarn.lock`), and pnpm (`pnpm-lock.yaml`):
35
-
36
- ```jsonc
37
- // Example using pnpm
38
- {
39
- "api": {
40
- "type": "rollup",
41
- "options": {
42
- "entrypoint": "./lib/lambda.js",
43
- "install": ["source-map-support"],
44
- "packageFilePath": "package.json",
45
- "packageLockPath": "pnpm-lock.yaml"
46
- }
47
- }
48
- }
49
- ```
50
-
51
31
  Then run:
52
32
 
53
33
  ```
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/cli/build.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsDpC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkEtD"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/cli/build.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkFpC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuFtD"}
package/lib/cli/build.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { array, assert, choose, is, object, optional, record, text, } from '@fmtk/decoders';
2
2
  import fs from 'fs';
3
3
  import { dirname, resolve } from 'path';
4
+ import { esbuildPackageDir } from '../core/esbuild/esbuildPackageDir.js';
4
5
  import { rollupPackageDir } from '../core/rollup/rollupPackageDir.js';
5
6
  import { zipDir } from '../core/zip/zipDir.js';
6
7
  import { getPackagePath } from '../internal/getPackagePath.js';
@@ -16,6 +17,18 @@ const decodeOptions = choose(object({
16
17
  packageLockPath: optional(text),
17
18
  rollupConfigPath: optional(text),
18
19
  }),
20
+ }), object({
21
+ type: is('esbuild'),
22
+ options: object({
23
+ entrypoint: text,
24
+ configPath: optional(text),
25
+ ignore: optional(array(text)),
26
+ install: optional(array(text)),
27
+ packageArch: optional(text),
28
+ packageFilePath: optional(text),
29
+ packagePlatform: optional(text),
30
+ packageLockPath: optional(text),
31
+ }),
19
32
  }), object({
20
33
  type: is('content'),
21
34
  options: object({
@@ -67,6 +80,23 @@ export function addBuildCommand(program) {
67
80
  resolve(source, item.options.rollupConfigPath),
68
81
  });
69
82
  break;
83
+ case 'esbuild':
84
+ await esbuildPackageDir(source, {
85
+ bundleName: key,
86
+ entrypoint: item.options.entrypoint,
87
+ configPath: item.options.configPath &&
88
+ resolve(source, item.options.configPath),
89
+ ignorePaths: item.options.ignore,
90
+ installPackages: item.options.install,
91
+ outputPath: options.outputDir,
92
+ packageArch: item.options.packageArch,
93
+ packageFilePath: item.options.packageFilePath &&
94
+ resolve(source, item.options.packageFilePath),
95
+ packagePlatform: item.options.packagePlatform,
96
+ packageLockPath: item.options.packageLockPath &&
97
+ resolve(source, item.options.packageLockPath),
98
+ });
99
+ break;
70
100
  default:
71
101
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
72
102
  throw new Error(`unknown asset type ${item.type}`);
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/cli/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/cli/build.ts"],"names":[],"mappings":"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"}
File without changes
@@ -0,0 +1,14 @@
1
+ export interface EsbuildPackageDirOptions {
2
+ bundleName?: string;
3
+ configPath?: string;
4
+ entrypoint: string;
5
+ ignorePaths?: string[];
6
+ installPackages?: string[];
7
+ outputPath?: string;
8
+ packageArch?: string;
9
+ packageFilePath?: string;
10
+ packagePlatform?: string;
11
+ packageLockPath?: string;
12
+ }
13
+ export declare function esbuildPackageDir(dirPath: string, opts: EsbuildPackageDirOptions): Promise<void>;
14
+ //# sourceMappingURL=esbuildPackageDir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esbuildPackageDir.d.ts","sourceRoot":"","sources":["../../../src/core/esbuild/esbuildPackageDir.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,wBAAwB;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAyDf"}
@@ -0,0 +1,52 @@
1
+ import { createWriteStream } from 'fs';
2
+ import { mkdir } from 'fs/promises';
3
+ import { dirname, resolve } from 'path';
4
+ import { pipeline } from 'stream/promises';
5
+ import { addBundleInfoToPackageJson } from '../../internal/addBundleInfoToPackageJson.js';
6
+ import { readDotIgnoreForFolder } from '../../internal/readDotIgnoreForFolder.js';
7
+ import { getPackageEntries } from '../zip/getPackageEntries.js';
8
+ import { makeZipPackageStream } from '../zip/makeZipPackageStream.js';
9
+ import { esbuildPackageEntries } from './esbuildPackageEntries.js';
10
+ export async function esbuildPackageDir(dirPath, opts) {
11
+ const outputPath = opts.outputPath || `dist/${opts.bundleName || 'bundle'}.zip`;
12
+ const fullOutputPath = resolve(outputPath);
13
+ const installPackages = opts.installPackages || [];
14
+ const ignorePaths = opts.ignorePaths || [];
15
+ ignorePaths.push(...(await readDotIgnoreForFolder(dirPath)));
16
+ const configPath = resolve(dirPath, opts.configPath || 'esbuild.config.js');
17
+ const configModule = await import(configPath);
18
+ const config = configModule.default || {};
19
+ const buildOptions = {
20
+ ...config,
21
+ entryPoints: [resolve(dirPath, opts.entrypoint)],
22
+ absWorkingDir: resolve(dirPath),
23
+ };
24
+ const entries = [];
25
+ for await (const entry of esbuildPackageEntries(buildOptions)) {
26
+ entries.push(entry);
27
+ }
28
+ if (installPackages.length) {
29
+ if (!opts.packageFilePath || !opts.packageLockPath) {
30
+ throw new Error(`must specify package lock path and package.json path when installing packages`);
31
+ }
32
+ const packageFiles = getPackageEntries({
33
+ ignorePaths,
34
+ packageArch: opts.packageArch,
35
+ packageFilePath: opts.packageFilePath,
36
+ packagePlatform: opts.packagePlatform,
37
+ packageLockPath: opts.packageLockPath,
38
+ packageNames: installPackages,
39
+ });
40
+ for await (const entry of packageFiles) {
41
+ entries.push(entry);
42
+ }
43
+ }
44
+ const output = await makeZipPackageStream(entries);
45
+ await mkdir(dirname(fullOutputPath), { recursive: true });
46
+ await pipeline(output, createWriteStream(fullOutputPath));
47
+ await addBundleInfoToPackageJson(dirPath, {
48
+ name: opts.bundleName,
49
+ path: outputPath,
50
+ });
51
+ }
52
+ //# sourceMappingURL=esbuildPackageDir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esbuildPackageDir.js","sourceRoot":"","sources":["../../../src/core/esbuild/esbuildPackageDir.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAC1F,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAenE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAe,EACf,IAA8B;IAE9B,MAAM,UAAU,GACd,IAAI,CAAC,UAAU,IAAI,QAAQ,IAAI,CAAC,UAAU,IAAI,QAAQ,MAAM,CAAC;IAC/D,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC;IAEnD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;IAC3C,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAE7D,MAAM,UAAU,GAAG,OAAO,CACxB,OAAO,EACP,IAAI,CAAC,UAAU,IAAI,mBAAmB,CACvC,CAAC;IACF,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAiB,YAAY,CAAC,OAAO,IAAI,EAAE,CAAC;IAExD,MAAM,YAAY,GAAiB;QACjC,GAAG,MAAM;QACT,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC;KAChC,CAAC;IAEF,MAAM,OAAO,GAAoB,EAAE,CAAC;IAEpC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,qBAAqB,CAAC,YAAY,CAAC,EAAE;QAC7D,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACrB;IAED,IAAI,eAAe,CAAC,MAAM,EAAE;QAC1B,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YAClD,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;SACH;QACD,MAAM,YAAY,GAAG,iBAAiB,CAAC;YACrC,WAAW;YACX,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,YAAY,EAAE,eAAe;SAC9B,CAAC,CAAC;QAEH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,YAAY,EAAE;YACtC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACrB;KACF;IAED,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAEnD,MAAM,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,MAAM,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAC;IAE1D,MAAM,0BAA0B,CAAC,OAAO,EAAE;QACxC,IAAI,EAAE,IAAI,CAAC,UAAU;QACrB,IAAI,EAAE,UAAU;KACjB,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { BuildOptions } from 'esbuild';
2
+ import { ZipAssetEntry } from '../zip/ZipAssetEntry.js';
3
+ export declare function esbuildPackageEntries(options: BuildOptions): AsyncIterableIterator<ZipAssetEntry>;
4
+ //# sourceMappingURL=esbuildPackageEntries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esbuildPackageEntries.d.ts","sourceRoot":"","sources":["../../../src/core/esbuild/esbuildPackageEntries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAE,MAAM,SAAS,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,wBAAuB,qBAAqB,CAC1C,OAAO,EAAE,YAAY,GACpB,qBAAqB,CAAC,aAAa,CAAC,CAYtC"}
@@ -0,0 +1,15 @@
1
+ import { build } from 'esbuild';
2
+ import { basename } from 'path';
3
+ export async function* esbuildPackageEntries(options) {
4
+ const result = await build({
5
+ ...options,
6
+ write: false,
7
+ });
8
+ for (const file of result.outputFiles ?? []) {
9
+ yield {
10
+ archivePath: basename(file.path),
11
+ content: Buffer.from(file.contents),
12
+ };
13
+ }
14
+ }
15
+ //# sourceMappingURL=esbuildPackageEntries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esbuildPackageEntries.js","sourceRoot":"","sources":["../../../src/core/esbuild/esbuildPackageEntries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAgB,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGhC,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,qBAAqB,CAC1C,OAAqB;IAErB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC;QACzB,GAAG,OAAO;QACV,KAAK,EAAE,KAAK;KACb,CAAC,CAAC;IAEH,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,WAAW,IAAI,EAAE,EAAE;QAC3C,MAAM;YACJ,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YAChC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;SACpC,CAAC;KACH;AACH,CAAC"}
@@ -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,CAuC7D"}
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,CA8B7D"}
@@ -1,5 +1,5 @@
1
1
  import { createReadStream } from 'fs';
2
- import { readdir, stat } from 'fs/promises';
2
+ import { readdir } 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,25 +10,17 @@ 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
- }
21
13
  let archivePath = relative(source, entryPath);
22
- if (isDir) {
14
+ if (entry.isDirectory()) {
23
15
  archivePath += '/';
24
16
  }
25
17
  if (ig.ignores(archivePath)) {
26
18
  continue;
27
19
  }
28
- if (isDir) {
20
+ if (entry.isDirectory()) {
29
21
  work.push(entryPath);
30
22
  }
31
- else if (isFile) {
23
+ else if (entry.isFile()) {
32
24
  yield {
33
25
  archivePath: join(archiveBasePath, archivePath),
34
26
  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,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
+ {"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;AACtC,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,IAAI,WAAW,GAAG,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC9C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE;gBACvB,WAAW,IAAI,GAAG,CAAC;aACpB;YACD,IAAI,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;gBAC3B,SAAS;aACV;YAED,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE;gBACvB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACtB;iBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE;gBACzB,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":"AAMA,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,CAoF9D"}
1
+ {"version":3,"file":"getPackageEntries.d.ts","sourceRoot":"","sources":["../../../src/core/zip/getPackageEntries.ts"],"names":[],"mappings":"AAMA,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,CA2E9D"}
@@ -6,7 +6,6 @@ import { temporaryDirectory } from 'tempy';
6
6
  import { getFolderEntries } from './getFolderEntries.js';
7
7
  export async function* getPackageEntries({ archivePath = 'node_modules', ignorePaths, packageLockPath, packageFilePath, packageArch, packagePlatform, packageNames, }) {
8
8
  let exec;
9
- let copyLockfile = true;
10
9
  const npmConfig = [];
11
10
  const lockBasename = basename(packageLockPath);
12
11
  if (lockBasename === 'package-lock.json') {
@@ -15,12 +14,6 @@ export async function* getPackageEntries({ archivePath = 'node_modules', ignoreP
15
14
  else if (lockBasename === 'yarn.lock') {
16
15
  exec = ['yarn', '--frozen-lockfile'];
17
16
  }
18
- else if (lockBasename === 'pnpm-lock.yaml') {
19
- // Use npm install for pnpm projects - creates a flat node_modules structure
20
- // that works reliably on Lambda without needing to replicate pnpm's symlink structure
21
- exec = ['npm', 'install'];
22
- copyLockfile = false;
23
- }
24
17
  else {
25
18
  throw new Error(`unknown lockfile type for path '${packageLockPath}'`);
26
19
  }
@@ -46,9 +39,7 @@ export async function* getPackageEntries({ archivePath = 'node_modules', ignoreP
46
39
  }
47
40
  const outDir = temporaryDirectory();
48
41
  await writeFile(join(outDir, 'package.json'), JSON.stringify(newPackageJson));
49
- if (copyLockfile) {
50
- await copyFile(packageLockPath, join(outDir, lockBasename));
51
- }
42
+ await copyFile(packageLockPath, join(outDir, lockBasename));
52
43
  if (npmConfig.length) {
53
44
  await writeFile(join(outDir, '.npmrc'), npmConfig.join('\n') + '\n');
54
45
  }
@@ -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/lib/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ export * from './core/esbuild/esbuildPackageDir.js';
2
+ export * from './core/esbuild/esbuildPackageEntries.js';
1
3
  export * from './core/rollup/makeRollupPackageStream.js';
2
4
  export * from './core/rollup/rollupPackageDir.js';
3
5
  export * from './core/rollup/rollupPackageEntries.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,0CAA0C,CAAC;AACzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0CAA0C,CAAC;AACzD,cAAc,yBAAyB,CAAC;AACxC,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,0CAA0C,CAAC;AACzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0CAA0C,CAAC;AACzD,cAAc,yBAAyB,CAAC;AACxC,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC"}
package/lib/index.js CHANGED
@@ -1,4 +1,6 @@
1
1
  // AUTO-GENERATED node ../makeIndex.js
2
+ export * from './core/esbuild/esbuildPackageDir.js';
3
+ export * from './core/esbuild/esbuildPackageEntries.js';
2
4
  export * from './core/rollup/makeRollupPackageStream.js';
3
5
  export * from './core/rollup/rollupPackageDir.js';
4
6
  export * from './core/rollup/rollupPackageEntries.js';
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,cAAc,0CAA0C,CAAC;AACzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0CAA0C,CAAC;AACzD,cAAc,yBAAyB,CAAC;AACxC,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,0CAA0C,CAAC;AACzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0CAA0C,CAAC;AACzD,cAAc,yBAAyB,CAAC;AACxC,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC"}
package/package.json CHANGED
@@ -1,20 +1,16 @@
1
1
  {
2
2
  "name": "@diquattro/cfnassets",
3
- "version": "0.6.7",
4
- "description": "Build asset zip packages for deployment. Fork of @awboost/cfnassets with pnpm support.",
3
+ "version": "0.7.0",
5
4
  "type": "module",
6
5
  "repository": {
7
6
  "type": "git",
8
- "url": "https://github.com/diegodi4/cfnassets.git"
7
+ "url": "https://github.com/awboost/cfnassets.git"
8
+ },
9
+ "homepage": "https://github.com/awboost/cfnassets#readme",
10
+ "author": {
11
+ "email": "gordonmleigh@gmail.com",
12
+ "name": "Gordon Leigh"
9
13
  },
10
- "homepage": "https://github.com/diegodi4/cfnassets#readme",
11
- "author": "diegodi4",
12
- "contributors": [
13
- {
14
- "name": "Gordon Leigh",
15
- "email": "gordonmleigh@gmail.com"
16
- }
17
- ],
18
14
  "license": "MIT",
19
15
  "private": false,
20
16
  "publishConfig": {
@@ -62,6 +58,7 @@
62
58
  "@fmtk/decoders": "^0.5.2",
63
59
  "archiver": "^5.3.1",
64
60
  "chalk": "^5.0.1",
61
+ "esbuild": "^0.24.0",
65
62
  "commander": "^9.2.0",
66
63
  "ignore": "^5.2.0",
67
64
  "rollup": "^2.73.0",
package/src/cli/build.ts CHANGED
@@ -11,6 +11,7 @@ import {
11
11
  import { Command } from 'commander';
12
12
  import fs from 'fs';
13
13
  import { dirname, resolve } from 'path';
14
+ import { esbuildPackageDir } from '../core/esbuild/esbuildPackageDir.js';
14
15
  import { rollupPackageDir } from '../core/rollup/rollupPackageDir.js';
15
16
  import { zipDir } from '../core/zip/zipDir.js';
16
17
  import { getPackagePath } from '../internal/getPackagePath.js';
@@ -29,6 +30,20 @@ interface RollupOptions {
29
30
  };
30
31
  }
31
32
 
33
+ interface EsbuildOptions {
34
+ type: 'esbuild';
35
+ options: {
36
+ entrypoint: string;
37
+ configPath?: string;
38
+ ignore?: string[];
39
+ install?: string[];
40
+ packageArch?: string;
41
+ packageFilePath?: string;
42
+ packagePlatform?: string;
43
+ packageLockPath?: string;
44
+ };
45
+ }
46
+
32
47
  interface ContentOptions {
33
48
  type: 'content';
34
49
  options: {
@@ -51,6 +66,19 @@ const decodeOptions = choose(
51
66
  rollupConfigPath: optional(text),
52
67
  }),
53
68
  }),
69
+ object<EsbuildOptions>({
70
+ type: is('esbuild'),
71
+ options: object<EsbuildOptions['options']>({
72
+ entrypoint: text,
73
+ configPath: optional(text),
74
+ ignore: optional(array(text)),
75
+ install: optional(array(text)),
76
+ packageArch: optional(text),
77
+ packageFilePath: optional(text),
78
+ packagePlatform: optional(text),
79
+ packageLockPath: optional(text),
80
+ }),
81
+ }),
54
82
  object<ContentOptions>({
55
83
  type: is('content'),
56
84
  options: object<ContentOptions['options']>({
@@ -121,6 +149,27 @@ export function addBuildCommand(program: Command): void {
121
149
  });
122
150
  break;
123
151
 
152
+ case 'esbuild':
153
+ await esbuildPackageDir(source, {
154
+ bundleName: key,
155
+ entrypoint: item.options.entrypoint,
156
+ configPath:
157
+ item.options.configPath &&
158
+ resolve(source, item.options.configPath),
159
+ ignorePaths: item.options.ignore,
160
+ installPackages: item.options.install,
161
+ outputPath: options.outputDir,
162
+ packageArch: item.options.packageArch,
163
+ packageFilePath:
164
+ item.options.packageFilePath &&
165
+ resolve(source, item.options.packageFilePath),
166
+ packagePlatform: item.options.packagePlatform,
167
+ packageLockPath:
168
+ item.options.packageLockPath &&
169
+ resolve(source, item.options.packageLockPath),
170
+ });
171
+ break;
172
+
124
173
  default:
125
174
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
126
175
  throw new Error(`unknown asset type ${(item as any).type}`);
@@ -0,0 +1,83 @@
1
+ import { BuildOptions } from 'esbuild';
2
+ import { createWriteStream } from 'fs';
3
+ import { mkdir } from 'fs/promises';
4
+ import { dirname, resolve } from 'path';
5
+ import { pipeline } from 'stream/promises';
6
+ import { addBundleInfoToPackageJson } from '../../internal/addBundleInfoToPackageJson.js';
7
+ import { readDotIgnoreForFolder } from '../../internal/readDotIgnoreForFolder.js';
8
+ import { getPackageEntries } from '../zip/getPackageEntries.js';
9
+ import { makeZipPackageStream } from '../zip/makeZipPackageStream.js';
10
+ import { ZipAssetEntry } from '../zip/ZipAssetEntry.js';
11
+ import { esbuildPackageEntries } from './esbuildPackageEntries.js';
12
+
13
+ export interface EsbuildPackageDirOptions {
14
+ bundleName?: string;
15
+ configPath?: string;
16
+ entrypoint: string;
17
+ ignorePaths?: string[];
18
+ installPackages?: string[];
19
+ outputPath?: string;
20
+ packageArch?: string;
21
+ packageFilePath?: string;
22
+ packagePlatform?: string;
23
+ packageLockPath?: string;
24
+ }
25
+
26
+ export async function esbuildPackageDir(
27
+ dirPath: string,
28
+ opts: EsbuildPackageDirOptions,
29
+ ): Promise<void> {
30
+ const outputPath =
31
+ opts.outputPath || `dist/${opts.bundleName || 'bundle'}.zip`;
32
+ const fullOutputPath = resolve(outputPath);
33
+ const installPackages = opts.installPackages || [];
34
+
35
+ const ignorePaths = opts.ignorePaths || [];
36
+ ignorePaths.push(...(await readDotIgnoreForFolder(dirPath)));
37
+
38
+ const configPath = resolve(dirPath, opts.configPath || 'esbuild.config.js');
39
+ const configModule = await import(configPath);
40
+ const config: BuildOptions = configModule.default || {};
41
+
42
+ const buildOptions: BuildOptions = {
43
+ ...config,
44
+ entryPoints: [resolve(dirPath, opts.entrypoint)],
45
+ absWorkingDir: resolve(dirPath),
46
+ };
47
+
48
+ const entries: ZipAssetEntry[] = [];
49
+
50
+ for await (const entry of esbuildPackageEntries(buildOptions)) {
51
+ entries.push(entry);
52
+ }
53
+
54
+ if (installPackages.length) {
55
+ if (!opts.packageFilePath || !opts.packageLockPath) {
56
+ throw new Error(
57
+ `must specify package lock path and package.json path when installing packages`,
58
+ );
59
+ }
60
+ const packageFiles = getPackageEntries({
61
+ ignorePaths,
62
+ packageArch: opts.packageArch,
63
+ packageFilePath: opts.packageFilePath,
64
+ packagePlatform: opts.packagePlatform,
65
+ packageLockPath: opts.packageLockPath,
66
+ packageNames: installPackages,
67
+ });
68
+
69
+ for await (const entry of packageFiles) {
70
+ entries.push(entry);
71
+ }
72
+ }
73
+
74
+ const output = await makeZipPackageStream(entries);
75
+
76
+ await mkdir(dirname(fullOutputPath), { recursive: true });
77
+ await pipeline(output, createWriteStream(fullOutputPath));
78
+
79
+ await addBundleInfoToPackageJson(dirPath, {
80
+ name: opts.bundleName,
81
+ path: outputPath,
82
+ });
83
+ }
@@ -0,0 +1,19 @@
1
+ import { build, BuildOptions } from 'esbuild';
2
+ import { basename } from 'path';
3
+ import { ZipAssetEntry } from '../zip/ZipAssetEntry.js';
4
+
5
+ export async function* esbuildPackageEntries(
6
+ options: BuildOptions,
7
+ ): AsyncIterableIterator<ZipAssetEntry> {
8
+ const result = await build({
9
+ ...options,
10
+ write: false,
11
+ });
12
+
13
+ for (const file of result.outputFiles ?? []) {
14
+ yield {
15
+ archivePath: basename(file.path),
16
+ content: Buffer.from(file.contents),
17
+ };
18
+ }
19
+ }
@@ -1,5 +1,5 @@
1
1
  import { createReadStream } from 'fs';
2
- import { readdir, stat } from 'fs/promises';
2
+ import { readdir } 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,26 +26,17 @@ 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
-
38
29
  let archivePath = relative(source, entryPath);
39
- if (isDir) {
30
+ if (entry.isDirectory()) {
40
31
  archivePath += '/';
41
32
  }
42
33
  if (ig.ignores(archivePath)) {
43
34
  continue;
44
35
  }
45
36
 
46
- if (isDir) {
37
+ if (entry.isDirectory()) {
47
38
  work.push(entryPath);
48
- } else if (isFile) {
39
+ } else if (entry.isFile()) {
49
40
  yield {
50
41
  archivePath: join(archiveBasePath, archivePath),
51
42
  content: () => createReadStream(entryPath),
@@ -26,7 +26,6 @@ export async function* getPackageEntries({
26
26
  packageNames,
27
27
  }: PackageEntriesOptions): AsyncIterableIterator<ZipAssetEntry> {
28
28
  let exec: string[];
29
- let copyLockfile = true;
30
29
  const npmConfig: string[] = [];
31
30
 
32
31
  const lockBasename = basename(packageLockPath);
@@ -34,11 +33,6 @@ export async function* getPackageEntries({
34
33
  exec = ['npm', 'ci'];
35
34
  } else if (lockBasename === 'yarn.lock') {
36
35
  exec = ['yarn', '--frozen-lockfile'];
37
- } else if (lockBasename === 'pnpm-lock.yaml') {
38
- // Use npm install for pnpm projects - creates a flat node_modules structure
39
- // that works reliably on Lambda without needing to replicate pnpm's symlink structure
40
- exec = ['npm', 'install'];
41
- copyLockfile = false;
42
36
  } else {
43
37
  throw new Error(`unknown lockfile type for path '${packageLockPath}'`);
44
38
  }
@@ -72,10 +66,7 @@ export async function* getPackageEntries({
72
66
 
73
67
  const outDir = temporaryDirectory();
74
68
  await writeFile(join(outDir, 'package.json'), JSON.stringify(newPackageJson));
75
-
76
- if (copyLockfile) {
77
- await copyFile(packageLockPath, join(outDir, lockBasename));
78
- }
69
+ await copyFile(packageLockPath, join(outDir, lockBasename));
79
70
 
80
71
  if (npmConfig.length) {
81
72
  await writeFile(join(outDir, '.npmrc'), npmConfig.join('\n') + '\n');
package/src/index.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  // AUTO-GENERATED node ../makeIndex.js
2
+ export * from './core/esbuild/esbuildPackageDir.js';
3
+ export * from './core/esbuild/esbuildPackageEntries.js';
2
4
  export * from './core/rollup/makeRollupPackageStream.js';
3
5
  export * from './core/rollup/rollupPackageDir.js';
4
6
  export * from './core/rollup/rollupPackageEntries.js';