@diquattro/cfnassets 0.6.1
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 +55 -0
- package/lib/cli/build.d.ts +3 -0
- package/lib/cli/build.d.ts.map +1 -0
- package/lib/cli/build.js +77 -0
- package/lib/cli/build.js.map +1 -0
- package/lib/cli/cfnassets.d.ts +3 -0
- package/lib/cli/cfnassets.d.ts.map +1 -0
- package/lib/cli/cfnassets.js +7 -0
- package/lib/cli/cfnassets.js.map +1 -0
- package/lib/core/rollup/makeRollupPackageStream.d.ts +16 -0
- package/lib/core/rollup/makeRollupPackageStream.d.ts.map +1 -0
- package/lib/core/rollup/makeRollupPackageStream.js +27 -0
- package/lib/core/rollup/makeRollupPackageStream.js.map +1 -0
- package/lib/core/rollup/rollupPackageDir.d.ts +14 -0
- package/lib/core/rollup/rollupPackageDir.d.ts.map +1 -0
- package/lib/core/rollup/rollupPackageDir.js +36 -0
- package/lib/core/rollup/rollupPackageDir.js.map +1 -0
- package/lib/core/rollup/rollupPackageEntries.d.ts +5 -0
- package/lib/core/rollup/rollupPackageEntries.d.ts.map +1 -0
- package/lib/core/rollup/rollupPackageEntries.js +35 -0
- package/lib/core/rollup/rollupPackageEntries.js.map +1 -0
- package/lib/core/zip/ZipAssetEntry.d.ts +9 -0
- package/lib/core/zip/ZipAssetEntry.d.ts.map +1 -0
- package/lib/core/zip/ZipAssetEntry.js +2 -0
- package/lib/core/zip/ZipAssetEntry.js.map +1 -0
- package/lib/core/zip/getFolderEntries.d.ts +8 -0
- package/lib/core/zip/getFolderEntries.d.ts.map +1 -0
- package/lib/core/zip/getFolderEntries.js +32 -0
- package/lib/core/zip/getFolderEntries.js.map +1 -0
- package/lib/core/zip/getPackageEntries.d.ts +12 -0
- package/lib/core/zip/getPackageEntries.d.ts.map +1 -0
- package/lib/core/zip/getPackageEntries.js +73 -0
- package/lib/core/zip/getPackageEntries.js.map +1 -0
- package/lib/core/zip/makeZipPackageStream.d.ts +5 -0
- package/lib/core/zip/makeZipPackageStream.d.ts.map +1 -0
- package/lib/core/zip/makeZipPackageStream.js +29 -0
- package/lib/core/zip/makeZipPackageStream.js.map +1 -0
- package/lib/core/zip/zipDir.d.ts +8 -0
- package/lib/core/zip/zipDir.d.ts.map +1 -0
- package/lib/core/zip/zipDir.js +24 -0
- package/lib/core/zip/zipDir.js.map +1 -0
- package/lib/index.d.ts +25 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +26 -0
- package/lib/index.js.map +1 -0
- package/lib/internal/HashStream.d.ts +13 -0
- package/lib/internal/HashStream.d.ts.map +1 -0
- package/lib/internal/HashStream.js +28 -0
- package/lib/internal/HashStream.js.map +1 -0
- package/lib/internal/ProgressStream.d.ts +11 -0
- package/lib/internal/ProgressStream.d.ts.map +1 -0
- package/lib/internal/ProgressStream.js +25 -0
- package/lib/internal/ProgressStream.js.map +1 -0
- package/lib/internal/addBundleInfoToPackageJson.d.ts +6 -0
- package/lib/internal/addBundleInfoToPackageJson.d.ts.map +1 -0
- package/lib/internal/addBundleInfoToPackageJson.js +36 -0
- package/lib/internal/addBundleInfoToPackageJson.js.map +1 -0
- package/lib/internal/getPackagePath.d.ts +2 -0
- package/lib/internal/getPackagePath.d.ts.map +1 -0
- package/lib/internal/getPackagePath.js +11 -0
- package/lib/internal/getPackagePath.js.map +1 -0
- package/lib/internal/hash.d.ts +3 -0
- package/lib/internal/hash.d.ts.map +1 -0
- package/lib/internal/hash.js +9 -0
- package/lib/internal/hash.js.map +1 -0
- package/lib/internal/readDotIgnoreFile.d.ts +2 -0
- package/lib/internal/readDotIgnoreFile.d.ts.map +1 -0
- package/lib/internal/readDotIgnoreFile.js +13 -0
- package/lib/internal/readDotIgnoreFile.js.map +1 -0
- package/lib/internal/readDotIgnoreForFolder.d.ts +2 -0
- package/lib/internal/readDotIgnoreForFolder.d.ts.map +1 -0
- package/lib/internal/readDotIgnoreForFolder.js +6 -0
- package/lib/internal/readDotIgnoreForFolder.js.map +1 -0
- package/lib/internal/tryStat.d.ts +4 -0
- package/lib/internal/tryStat.d.ts.map +1 -0
- package/lib/internal/tryStat.js +13 -0
- package/lib/internal/tryStat.js.map +1 -0
- package/lib/template/AssetAttributes.d.ts +5 -0
- package/lib/template/AssetAttributes.d.ts.map +1 -0
- package/lib/template/AssetAttributes.js +2 -0
- package/lib/template/AssetAttributes.js.map +1 -0
- package/lib/template/AssetBase.d.ts +14 -0
- package/lib/template/AssetBase.d.ts.map +1 -0
- package/lib/template/AssetBase.js +34 -0
- package/lib/template/AssetBase.js.map +1 -0
- package/lib/template/AssetBuilder.d.ts +6 -0
- package/lib/template/AssetBuilder.d.ts.map +1 -0
- package/lib/template/AssetBuilder.js +2 -0
- package/lib/template/AssetBuilder.js.map +1 -0
- package/lib/template/AssetContext.d.ts +7 -0
- package/lib/template/AssetContext.d.ts.map +1 -0
- package/lib/template/AssetContext.js +12 -0
- package/lib/template/AssetContext.js.map +1 -0
- package/lib/template/AssetDefinition.d.ts +8 -0
- package/lib/template/AssetDefinition.d.ts.map +1 -0
- package/lib/template/AssetDefinition.js +2 -0
- package/lib/template/AssetDefinition.js.map +1 -0
- package/lib/template/AssetGenerator.d.ts +5 -0
- package/lib/template/AssetGenerator.d.ts.map +1 -0
- package/lib/template/AssetGenerator.js +2 -0
- package/lib/template/AssetGenerator.js.map +1 -0
- package/lib/template/AssetManifest.d.ts +13 -0
- package/lib/template/AssetManifest.d.ts.map +1 -0
- package/lib/template/AssetManifest.js +12 -0
- package/lib/template/AssetManifest.js.map +1 -0
- package/lib/template/AssetOutput.d.ts +7 -0
- package/lib/template/AssetOutput.d.ts.map +1 -0
- package/lib/template/AssetOutput.js +2 -0
- package/lib/template/AssetOutput.js.map +1 -0
- package/lib/template/AssetRef.d.ts +5 -0
- package/lib/template/AssetRef.d.ts.map +1 -0
- package/lib/template/AssetRef.js +2 -0
- package/lib/template/AssetRef.js.map +1 -0
- package/lib/template/CustomAsset.d.ts +7 -0
- package/lib/template/CustomAsset.d.ts.map +1 -0
- package/lib/template/CustomAsset.js +9 -0
- package/lib/template/CustomAsset.js.map +1 -0
- package/lib/template/DeploymentBundle.d.ts +16 -0
- package/lib/template/DeploymentBundle.d.ts.map +1 -0
- package/lib/template/DeploymentBundle.js +2 -0
- package/lib/template/DeploymentBundle.js.map +1 -0
- package/lib/template/FileSystemDeploymentBundle.d.ts +20 -0
- package/lib/template/FileSystemDeploymentBundle.d.ts.map +1 -0
- package/lib/template/FileSystemDeploymentBundle.js +72 -0
- package/lib/template/FileSystemDeploymentBundle.js.map +1 -0
- package/lib/template/ProgressStats.d.ts +6 -0
- package/lib/template/ProgressStats.d.ts.map +1 -0
- package/lib/template/ProgressStats.js +2 -0
- package/lib/template/ProgressStats.js.map +1 -0
- package/lib/template/makeAsset.d.ts +5 -0
- package/lib/template/makeAsset.d.ts.map +1 -0
- package/lib/template/makeAsset.js +6 -0
- package/lib/template/makeAsset.js.map +1 -0
- package/lib/template/makeAssetFromPackage.d.ts +12 -0
- package/lib/template/makeAssetFromPackage.d.ts.map +1 -0
- package/lib/template/makeAssetFromPackage.js +29 -0
- package/lib/template/makeAssetFromPackage.js.map +1 -0
- package/lib/template/processAssets.d.ts +4 -0
- package/lib/template/processAssets.d.ts.map +1 -0
- package/lib/template/processAssets.js +24 -0
- package/lib/template/processAssets.js.map +1 -0
- package/package.json +71 -0
- package/src/cli/build.ts +131 -0
- package/src/cli/cfnassets.ts +9 -0
- package/src/core/rollup/makeRollupPackageStream.ts +55 -0
- package/src/core/rollup/rollupPackageDir.ts +64 -0
- package/src/core/rollup/rollupPackageEntries.ts +46 -0
- package/src/core/zip/ZipAssetEntry.ts +11 -0
- package/src/core/zip/getFolderEntries.ts +47 -0
- package/src/core/zip/getPackageEntries.ts +104 -0
- package/src/core/zip/makeZipPackageStream.ts +41 -0
- package/src/core/zip/zipDir.ts +43 -0
- package/src/index.ts +25 -0
- package/src/internal/HashStream.ts +36 -0
- package/src/internal/ProgressStream.ts +32 -0
- package/src/internal/addBundleInfoToPackageJson.ts +52 -0
- package/src/internal/getPackagePath.ts +13 -0
- package/src/internal/hash.ts +9 -0
- package/src/internal/readDotIgnoreFile.ts +15 -0
- package/src/internal/readDotIgnoreForFolder.ts +8 -0
- package/src/internal/tryStat.ts +12 -0
- package/src/template/AssetAttributes.ts +5 -0
- package/src/template/AssetBase.ts +60 -0
- package/src/template/AssetBuilder.ts +8 -0
- package/src/template/AssetContext.ts +15 -0
- package/src/template/AssetDefinition.ts +8 -0
- package/src/template/AssetGenerator.ts +5 -0
- package/src/template/AssetManifest.ts +25 -0
- package/src/template/AssetOutput.ts +6 -0
- package/src/template/AssetRef.ts +4 -0
- package/src/template/CustomAsset.ts +11 -0
- package/src/template/DeploymentBundle.ts +20 -0
- package/src/template/FileSystemDeploymentBundle.ts +112 -0
- package/src/template/ProgressStats.ts +5 -0
- package/src/template/makeAsset.ts +12 -0
- package/src/template/makeAssetFromPackage.ts +42 -0
- package/src/template/processAssets.ts +40 -0
- package/src/types/loadConfigFile.d.ts +20 -0
package/README.md
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
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.
|
|
5
|
+
|
|
6
|
+
Build asset zip packages for deployment.
|
|
7
|
+
|
|
8
|
+
## Quick Start
|
|
9
|
+
|
|
10
|
+
You need an assets config file:
|
|
11
|
+
|
|
12
|
+
```jsonc
|
|
13
|
+
// cfnassets.config.json
|
|
14
|
+
{
|
|
15
|
+
"api": {
|
|
16
|
+
"type": "rollup",
|
|
17
|
+
"options": {
|
|
18
|
+
"entrypoint": "./core/lib/api/lambda.js",
|
|
19
|
+
"install": ["source-map-support"],
|
|
20
|
+
"packageFilePath": "package.json",
|
|
21
|
+
"packageInstallImage": "node:16-slim",
|
|
22
|
+
"packageLockPath": "package-lock.json"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"app-client": {
|
|
26
|
+
"type": "content",
|
|
27
|
+
"options": {
|
|
28
|
+
"source": "apps/client/build"
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
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
|
+
Then run:
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
cfnassets build --config cfnassets.config.json
|
|
55
|
+
```
|
|
@@ -0,0 +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"}
|
package/lib/cli/build.js
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { array, assert, choose, is, object, optional, record, text, } from '@fmtk/decoders';
|
|
2
|
+
import fs from 'fs';
|
|
3
|
+
import { dirname, resolve } from 'path';
|
|
4
|
+
import { rollupPackageDir } from '../core/rollup/rollupPackageDir.js';
|
|
5
|
+
import { zipDir } from '../core/zip/zipDir.js';
|
|
6
|
+
import { getPackagePath } from '../internal/getPackagePath.js';
|
|
7
|
+
const decodeOptions = choose(object({
|
|
8
|
+
type: is('rollup'),
|
|
9
|
+
options: object({
|
|
10
|
+
entrypoint: text,
|
|
11
|
+
ignore: optional(array(text)),
|
|
12
|
+
install: optional(array(text)),
|
|
13
|
+
packageArch: optional(text),
|
|
14
|
+
packageFilePath: optional(text),
|
|
15
|
+
packagePlatform: optional(text),
|
|
16
|
+
packageLockPath: optional(text),
|
|
17
|
+
rollupConfigPath: optional(text),
|
|
18
|
+
}),
|
|
19
|
+
}), object({
|
|
20
|
+
type: is('content'),
|
|
21
|
+
options: object({
|
|
22
|
+
source: text,
|
|
23
|
+
ignore: optional(array(text)),
|
|
24
|
+
}),
|
|
25
|
+
}));
|
|
26
|
+
const decodeConfig = record(text, decodeOptions);
|
|
27
|
+
export function addBuildCommand(program) {
|
|
28
|
+
program
|
|
29
|
+
.command('build')
|
|
30
|
+
.description('create one or more packages based on a config file')
|
|
31
|
+
.requiredOption('-c, --config <name>', 'the config file')
|
|
32
|
+
.option('--only <name...>', 'only process the named asset(s)')
|
|
33
|
+
.option('-o, --output-dir <path>', 'the output directory')
|
|
34
|
+
.action(async (options) => {
|
|
35
|
+
const cfg = assert(decodeConfig, JSON.parse(fs.readFileSync(options.config, 'utf8')));
|
|
36
|
+
const source = dirname(resolve(options.config));
|
|
37
|
+
const filter = options.only && new Set(options.only);
|
|
38
|
+
for (const key in cfg) {
|
|
39
|
+
if (filter && !filter.has(key)) {
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
const item = cfg[key];
|
|
43
|
+
console.log(`Processing asset ${key}`);
|
|
44
|
+
switch (item.type) {
|
|
45
|
+
case 'content':
|
|
46
|
+
await zipDir(item.options.source, {
|
|
47
|
+
bundleName: key,
|
|
48
|
+
packagePath: await getPackagePath(item.options.source),
|
|
49
|
+
outputPath: options.outputDir,
|
|
50
|
+
ignorePaths: item.options.ignore,
|
|
51
|
+
});
|
|
52
|
+
break;
|
|
53
|
+
case 'rollup':
|
|
54
|
+
await rollupPackageDir(source, {
|
|
55
|
+
bundleName: key,
|
|
56
|
+
entrypoint: item.options.entrypoint,
|
|
57
|
+
ignorePaths: item.options.ignore,
|
|
58
|
+
installPackages: item.options.install,
|
|
59
|
+
outputPath: options.outputDir,
|
|
60
|
+
packageArch: item.options.packageArch,
|
|
61
|
+
packageFilePath: item.options.packageFilePath &&
|
|
62
|
+
resolve(source, item.options.packageFilePath),
|
|
63
|
+
packagePlatform: item.options.packagePlatform,
|
|
64
|
+
packageLockPath: item.options.packageLockPath &&
|
|
65
|
+
resolve(source, item.options.packageLockPath),
|
|
66
|
+
rollupConfigPath: item.options.rollupConfigPath &&
|
|
67
|
+
resolve(source, item.options.rollupConfigPath),
|
|
68
|
+
});
|
|
69
|
+
break;
|
|
70
|
+
default:
|
|
71
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
72
|
+
throw new Error(`unknown asset type ${item.type}`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=build.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/cli/build.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cfnassets.d.ts","sourceRoot":"","sources":["../../src/cli/cfnassets.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cfnassets.js","sourceRoot":"","sources":["../../src/cli/cfnassets.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAY,CAAC;AAEjD,eAAe,CAAC,OAAO,CAAC,CAAC;AAEzB,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import { MergedRollupOptions } from 'rollup';
|
|
3
|
+
import { BatchWarnings } from 'rollup/loadConfigFile';
|
|
4
|
+
import { Readable } from 'stream';
|
|
5
|
+
export interface RollupPackageOptions {
|
|
6
|
+
ignore?: string[];
|
|
7
|
+
installPackages?: string[];
|
|
8
|
+
options: MergedRollupOptions[];
|
|
9
|
+
packageArch?: string;
|
|
10
|
+
packageFilePath?: string;
|
|
11
|
+
packagePlatform?: string;
|
|
12
|
+
packageLockPath?: string;
|
|
13
|
+
warnings: BatchWarnings;
|
|
14
|
+
}
|
|
15
|
+
export declare function makeRollupPackageStream({ ignore, installPackages, options, packageArch, packageFilePath, packagePlatform, packageLockPath, warnings, }: RollupPackageOptions): Promise<Readable>;
|
|
16
|
+
//# sourceMappingURL=makeRollupPackageStream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"makeRollupPackageStream.d.ts","sourceRoot":"","sources":["../../../src/core/rollup/makeRollupPackageStream.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAMlC,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED,wBAAsB,uBAAuB,CAAC,EAC5C,MAAM,EACN,eAAe,EACf,OAAO,EACP,WAAW,EACX,eAAe,EACf,eAAe,EACf,eAAe,EACf,QAAQ,GACT,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC,CA0B1C"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { getPackageEntries } from '../zip/getPackageEntries.js';
|
|
2
|
+
import { makeZipPackageStream } from '../zip/makeZipPackageStream.js';
|
|
3
|
+
import { rollupPackageEntries } from './rollupPackageEntries.js';
|
|
4
|
+
export async function makeRollupPackageStream({ ignore, installPackages, options, packageArch, packageFilePath, packagePlatform, packageLockPath, warnings, }) {
|
|
5
|
+
const entries = [];
|
|
6
|
+
for await (const entry of rollupPackageEntries(options, warnings)) {
|
|
7
|
+
entries.push(entry);
|
|
8
|
+
}
|
|
9
|
+
if (installPackages?.length) {
|
|
10
|
+
if (!packageFilePath || !packageLockPath) {
|
|
11
|
+
throw new Error(`must specify package lock path and package.json path when installing packages`);
|
|
12
|
+
}
|
|
13
|
+
const packageFiles = getPackageEntries({
|
|
14
|
+
ignorePaths: ignore,
|
|
15
|
+
packageArch,
|
|
16
|
+
packageFilePath,
|
|
17
|
+
packagePlatform,
|
|
18
|
+
packageLockPath,
|
|
19
|
+
packageNames: installPackages,
|
|
20
|
+
});
|
|
21
|
+
for await (const entry of packageFiles) {
|
|
22
|
+
entries.push(entry);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return makeZipPackageStream(entries);
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=makeRollupPackageStream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"makeRollupPackageStream.js","sourceRoot":"","sources":["../../../src/core/rollup/makeRollupPackageStream.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAajE,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,EAC5C,MAAM,EACN,eAAe,EACf,OAAO,EACP,WAAW,EACX,eAAe,EACf,eAAe,EACf,eAAe,EACf,QAAQ,GACa;IACrB,MAAM,OAAO,GAAoB,EAAE,CAAC;IAEpC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;QACjE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACrB;IACD,IAAI,eAAe,EAAE,MAAM,EAAE;QAC3B,IAAI,CAAC,eAAe,IAAI,CAAC,eAAe,EAAE;YACxC,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;SACH;QACD,MAAM,YAAY,GAAG,iBAAiB,CAAC;YACrC,WAAW,EAAE,MAAM;YACnB,WAAW;YACX,eAAe;YACf,eAAe;YACf,eAAe;YACf,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;IACD,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface RollupPackageDirOptions {
|
|
2
|
+
bundleName?: string;
|
|
3
|
+
entrypoint?: string;
|
|
4
|
+
ignorePaths?: string[];
|
|
5
|
+
installPackages?: string[];
|
|
6
|
+
outputPath?: string;
|
|
7
|
+
packageArch?: string;
|
|
8
|
+
packageFilePath?: string;
|
|
9
|
+
packagePlatform?: string;
|
|
10
|
+
packageLockPath?: string;
|
|
11
|
+
rollupConfigPath?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function rollupPackageDir(dirPath: string, opts?: RollupPackageDirOptions): Promise<void>;
|
|
14
|
+
//# sourceMappingURL=rollupPackageDir.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rollupPackageDir.d.ts","sourceRoot":"","sources":["../../../src/core/rollup/rollupPackageDir.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,uBAAuB;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,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;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,uBAAuB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAqCf"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { createWriteStream } from 'fs';
|
|
2
|
+
import { mkdir } from 'fs/promises';
|
|
3
|
+
import { dirname, resolve } from 'path';
|
|
4
|
+
import loadConfigFile from 'rollup/loadConfigFile';
|
|
5
|
+
import { pipeline } from 'stream/promises';
|
|
6
|
+
import { addBundleInfoToPackageJson } from '../../internal/addBundleInfoToPackageJson.js';
|
|
7
|
+
import { readDotIgnoreForFolder } from '../../internal/readDotIgnoreForFolder.js';
|
|
8
|
+
import { makeRollupPackageStream } from './makeRollupPackageStream.js';
|
|
9
|
+
export async function rollupPackageDir(dirPath, opts) {
|
|
10
|
+
const outputPath = opts?.outputPath || `dist/${opts?.bundleName || 'bundle'}.zip`;
|
|
11
|
+
const fullOutputPath = resolve(outputPath);
|
|
12
|
+
const installPackages = opts?.installPackages || [];
|
|
13
|
+
const ignorePaths = opts?.ignorePaths || [];
|
|
14
|
+
ignorePaths.push(...(await readDotIgnoreForFolder(dirPath)));
|
|
15
|
+
const rollupConfigPath = opts?.rollupConfigPath || 'rollup.config.js';
|
|
16
|
+
const { options, warnings } = await loadConfigFile(resolve(dirPath, rollupConfigPath));
|
|
17
|
+
const output = await makeRollupPackageStream({
|
|
18
|
+
ignore: ignorePaths,
|
|
19
|
+
installPackages,
|
|
20
|
+
options: opts?.entrypoint
|
|
21
|
+
? options.map((x) => ({ ...x, input: opts.entrypoint }))
|
|
22
|
+
: options,
|
|
23
|
+
packageArch: opts?.packageArch,
|
|
24
|
+
packageFilePath: opts?.packageFilePath,
|
|
25
|
+
packagePlatform: opts?.packagePlatform,
|
|
26
|
+
packageLockPath: opts?.packageLockPath,
|
|
27
|
+
warnings,
|
|
28
|
+
});
|
|
29
|
+
await mkdir(dirname(fullOutputPath), { recursive: true });
|
|
30
|
+
await pipeline(output, createWriteStream(fullOutputPath));
|
|
31
|
+
await addBundleInfoToPackageJson(dirPath, {
|
|
32
|
+
name: opts?.bundleName,
|
|
33
|
+
path: outputPath,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=rollupPackageDir.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rollupPackageDir.js","sourceRoot":"","sources":["../../../src/core/rollup/rollupPackageDir.ts"],"names":[],"mappings":"AAAA,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;AAExC,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,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,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAevE,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAe,EACf,IAA8B;IAE9B,MAAM,UAAU,GACd,IAAI,EAAE,UAAU,IAAI,QAAQ,IAAI,EAAE,UAAU,IAAI,QAAQ,MAAM,CAAC;IACjE,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,eAAe,GAAG,IAAI,EAAE,eAAe,IAAI,EAAE,CAAC;IAEpD,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,EAAE,CAAC;IAC5C,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAE7D,MAAM,gBAAgB,GAAG,IAAI,EAAE,gBAAgB,IAAI,kBAAkB,CAAC;IAEtE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,cAAc,CAChD,OAAO,CAAC,OAAO,EAAE,gBAAgB,CAAC,CACnC,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC;QAC3C,MAAM,EAAE,WAAW;QACnB,eAAe;QACf,OAAO,EAAE,IAAI,EAAE,UAAU;YACvB,CAAC,CAAC,OAAO,CAAC,GAAG,CACT,CAAC,CAAC,EAAuB,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAC/D;YACH,CAAC,CAAC,OAAO;QACX,WAAW,EAAE,IAAI,EAAE,WAAW;QAC9B,eAAe,EAAE,IAAI,EAAE,eAAe;QACtC,eAAe,EAAE,IAAI,EAAE,eAAe;QACtC,eAAe,EAAE,IAAI,EAAE,eAAe;QACtC,QAAQ;KACT,CAAC,CAAC;IAEH,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,EAAE,UAAU;QACtB,IAAI,EAAE,UAAU;KACjB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { MergedRollupOptions } from 'rollup';
|
|
2
|
+
import { BatchWarnings } from 'rollup/loadConfigFile';
|
|
3
|
+
import { ZipAssetEntry } from '../zip/ZipAssetEntry.js';
|
|
4
|
+
export declare function rollupPackageEntries(options: MergedRollupOptions[], warnings: BatchWarnings): AsyncIterableIterator<ZipAssetEntry>;
|
|
5
|
+
//# sourceMappingURL=rollupPackageEntries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rollupPackageEntries.d.ts","sourceRoot":"","sources":["../../../src/core/rollup/rollupPackageEntries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAU,MAAM,QAAQ,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAIxD,wBAAuB,oBAAoB,CACzC,OAAO,EAAE,mBAAmB,EAAE,EAC9B,QAAQ,EAAE,aAAa,GACtB,qBAAqB,CAAC,aAAa,CAAC,CAoCtC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { rollup } from 'rollup';
|
|
2
|
+
const SourceMapUrl = 'sourceMappingURL';
|
|
3
|
+
export async function* rollupPackageEntries(options, warnings) {
|
|
4
|
+
for (const inputOptions of options) {
|
|
5
|
+
const bundle = await rollup(inputOptions);
|
|
6
|
+
for (const outputOptions of inputOptions.output) {
|
|
7
|
+
const output = await bundle.generate(outputOptions);
|
|
8
|
+
for (const chunkOrAsset of output.output) {
|
|
9
|
+
let content;
|
|
10
|
+
if (chunkOrAsset.type === 'asset') {
|
|
11
|
+
content = Buffer.from(chunkOrAsset.source);
|
|
12
|
+
}
|
|
13
|
+
else if (chunkOrAsset.type === 'chunk') {
|
|
14
|
+
let code = chunkOrAsset.code;
|
|
15
|
+
if (chunkOrAsset.map) {
|
|
16
|
+
const url = `${chunkOrAsset.fileName}.map`;
|
|
17
|
+
yield {
|
|
18
|
+
archivePath: url,
|
|
19
|
+
content: chunkOrAsset.map.toString(),
|
|
20
|
+
};
|
|
21
|
+
code += `//# ${SourceMapUrl}=${url}\n`;
|
|
22
|
+
}
|
|
23
|
+
content = Buffer.from(code);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
yield { archivePath: chunkOrAsset.fileName, content };
|
|
29
|
+
warnings?.flush();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
warnings?.flush();
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=rollupPackageEntries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rollupPackageEntries.js","sourceRoot":"","sources":["../../../src/core/rollup/rollupPackageEntries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrD,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAExC,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,oBAAoB,CACzC,OAA8B,EAC9B,QAAuB;IAEvB,KAAK,MAAM,YAAY,IAAI,OAAO,EAAE;QAClC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;QAE1C,KAAK,MAAM,aAAa,IAAI,YAAY,CAAC,MAAM,EAAE;YAC/C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAEpD,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE;gBACxC,IAAI,OAAe,CAAC;gBAEpB,IAAI,YAAY,CAAC,IAAI,KAAK,OAAO,EAAE;oBACjC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;iBAC5C;qBAAM,IAAI,YAAY,CAAC,IAAI,KAAK,OAAO,EAAE;oBACxC,IAAI,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;oBAE7B,IAAI,YAAY,CAAC,GAAG,EAAE;wBACpB,MAAM,GAAG,GAAG,GAAG,YAAY,CAAC,QAAQ,MAAM,CAAC;wBAE3C,MAAM;4BACJ,WAAW,EAAE,GAAG;4BAChB,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE;yBACrC,CAAC;wBACF,IAAI,IAAI,OAAO,YAAY,IAAI,GAAG,IAAI,CAAC;qBACxC;oBAED,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC7B;qBAAM;oBACL,SAAS;iBACV;gBAED,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;gBACtD,QAAQ,EAAE,KAAK,EAAE,CAAC;aACnB;SACF;KACF;IACD,QAAQ,EAAE,KAAK,EAAE,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
+
import { Readable } from 'stream';
|
|
4
|
+
export type EntryContent = Readable | string | Buffer;
|
|
5
|
+
export interface ZipAssetEntry {
|
|
6
|
+
archivePath: string;
|
|
7
|
+
content: EntryContent | (() => EntryContent) | (() => PromiseLike<EntryContent>);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=ZipAssetEntry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ZipAssetEntry.d.ts","sourceRoot":"","sources":["../../../src/core/zip/ZipAssetEntry.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEtD,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EACH,YAAY,GACZ,CAAC,MAAM,YAAY,CAAC,GACpB,CAAC,MAAM,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;CACvC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ZipAssetEntry.js","sourceRoot":"","sources":["../../../src/core/zip/ZipAssetEntry.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ZipAssetEntry } from './ZipAssetEntry.js';
|
|
2
|
+
export interface FolderEntriesOptions {
|
|
3
|
+
archivePath?: string;
|
|
4
|
+
ignore?: string[];
|
|
5
|
+
source: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function getFolderEntries({ archivePath: archiveBasePath, source, ignore: ignorePaths, }: FolderEntriesOptions): AsyncIterableIterator<ZipAssetEntry>;
|
|
8
|
+
//# sourceMappingURL=getFolderEntries.d.ts.map
|
|
@@ -0,0 +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,CA8B7D"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { createReadStream } from 'fs';
|
|
2
|
+
import { readdir } from 'fs/promises';
|
|
3
|
+
import ignore from 'ignore';
|
|
4
|
+
import { join, relative, resolve } from 'path';
|
|
5
|
+
export async function* getFolderEntries({ archivePath: archiveBasePath = '/', source, ignore: ignorePaths, }) {
|
|
6
|
+
const work = [resolve(source)];
|
|
7
|
+
const ig = ignore.default().add(ignorePaths || []);
|
|
8
|
+
while (work.length) {
|
|
9
|
+
const curr = work.pop();
|
|
10
|
+
const entries = await readdir(curr, { withFileTypes: true });
|
|
11
|
+
for (const entry of entries) {
|
|
12
|
+
const entryPath = join(curr, entry.name);
|
|
13
|
+
let archivePath = relative(source, entryPath);
|
|
14
|
+
if (entry.isDirectory()) {
|
|
15
|
+
archivePath += '/';
|
|
16
|
+
}
|
|
17
|
+
if (ig.ignores(archivePath)) {
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
if (entry.isDirectory()) {
|
|
21
|
+
work.push(entryPath);
|
|
22
|
+
}
|
|
23
|
+
else if (entry.isFile()) {
|
|
24
|
+
yield {
|
|
25
|
+
archivePath: join(archiveBasePath, archivePath),
|
|
26
|
+
content: () => createReadStream(entryPath),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=getFolderEntries.js.map
|
|
@@ -0,0 +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;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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ZipAssetEntry } from './ZipAssetEntry.js';
|
|
2
|
+
export interface PackageEntriesOptions {
|
|
3
|
+
archivePath?: string;
|
|
4
|
+
ignorePaths?: string[];
|
|
5
|
+
packageArch?: string;
|
|
6
|
+
packageFilePath: string;
|
|
7
|
+
packagePlatform?: string;
|
|
8
|
+
packageLockPath: string;
|
|
9
|
+
packageNames: string[];
|
|
10
|
+
}
|
|
11
|
+
export declare function getPackageEntries({ archivePath, ignorePaths, packageLockPath, packageFilePath, packageArch, packagePlatform, packageNames, }: PackageEntriesOptions): AsyncIterableIterator<ZipAssetEntry>;
|
|
12
|
+
//# sourceMappingURL=getPackageEntries.d.ts.map
|
|
@@ -0,0 +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,CA6E9D"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import childProc from 'child_process';
|
|
3
|
+
import { copyFile, readFile, writeFile } from 'fs/promises';
|
|
4
|
+
import { basename, join } from 'path';
|
|
5
|
+
import { temporaryDirectory } from 'tempy';
|
|
6
|
+
import { getFolderEntries } from './getFolderEntries.js';
|
|
7
|
+
export async function* getPackageEntries({ archivePath = 'node_modules', ignorePaths, packageLockPath, packageFilePath, packageArch, packagePlatform, packageNames, }) {
|
|
8
|
+
let exec;
|
|
9
|
+
const npmConfig = [];
|
|
10
|
+
const lockBasename = basename(packageLockPath);
|
|
11
|
+
if (lockBasename === 'package-lock.json') {
|
|
12
|
+
exec = ['npm', 'ci'];
|
|
13
|
+
}
|
|
14
|
+
else if (lockBasename === 'yarn.lock') {
|
|
15
|
+
exec = ['yarn', '--frozen-lockfile'];
|
|
16
|
+
}
|
|
17
|
+
else if (lockBasename === 'pnpm-lock.yaml') {
|
|
18
|
+
exec = ['pnpm', 'install', '--frozen-lockfile'];
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
throw new Error(`unknown lockfile type for path '${packageLockPath}'`);
|
|
22
|
+
}
|
|
23
|
+
const pkg = JSON.parse(await readFile(packageFilePath, 'utf-8'));
|
|
24
|
+
const newPackageJson = {
|
|
25
|
+
name: 'build',
|
|
26
|
+
private: true,
|
|
27
|
+
dependencies: {},
|
|
28
|
+
};
|
|
29
|
+
for (const dep of packageNames) {
|
|
30
|
+
const version = (pkg.dependencies && pkg.dependencies[dep]) ||
|
|
31
|
+
(pkg.devDependencies && pkg.devDependencies[dep]);
|
|
32
|
+
if (!version) {
|
|
33
|
+
throw new Error(`cannot find dependency ${dep} in ${packageFilePath}`);
|
|
34
|
+
}
|
|
35
|
+
newPackageJson.dependencies[dep] = version;
|
|
36
|
+
}
|
|
37
|
+
if (packageArch) {
|
|
38
|
+
npmConfig.push(`arch=${packageArch}`);
|
|
39
|
+
}
|
|
40
|
+
if (packagePlatform) {
|
|
41
|
+
npmConfig.push(`platform=${packagePlatform}`);
|
|
42
|
+
}
|
|
43
|
+
const outDir = temporaryDirectory();
|
|
44
|
+
await writeFile(join(outDir, 'package.json'), JSON.stringify(newPackageJson));
|
|
45
|
+
await copyFile(packageLockPath, join(outDir, lockBasename));
|
|
46
|
+
if (npmConfig.length) {
|
|
47
|
+
await writeFile(join(outDir, '.npmrc'), npmConfig.join('\n') + '\n');
|
|
48
|
+
}
|
|
49
|
+
const [cmd, ...args] = exec;
|
|
50
|
+
const flags = npmConfig.join(', ');
|
|
51
|
+
console.log(`\n${chalk.cyan.bold(`${cmd} install`)} ${chalk.gray(flags)}`);
|
|
52
|
+
const proc = childProc.spawn(cmd, args, {
|
|
53
|
+
cwd: outDir,
|
|
54
|
+
stdio: 'inherit',
|
|
55
|
+
});
|
|
56
|
+
await new Promise((resolve, reject) => {
|
|
57
|
+
proc.on('close', (code) => {
|
|
58
|
+
if (code === 0) {
|
|
59
|
+
resolve();
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
reject(new Error(`npm exited with non-zero error code ${code}`));
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
console.log(`\n`);
|
|
67
|
+
yield* getFolderEntries({
|
|
68
|
+
source: join(outDir, 'node_modules'),
|
|
69
|
+
archivePath,
|
|
70
|
+
ignore: ignorePaths,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=getPackageEntries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPackageEntries.js","sourceRoot":"","sources":["../../../src/core/zip/getPackageEntries.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import stream from 'stream';
|
|
3
|
+
import { ZipAssetEntry } from './ZipAssetEntry.js';
|
|
4
|
+
export declare function makeZipPackageStream(entries: AsyncIterable<ZipAssetEntry> | Iterable<ZipAssetEntry>): Promise<stream.Readable>;
|
|
5
|
+
//# sourceMappingURL=makeZipPackageStream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"makeZipPackageStream.d.ts","sourceRoot":"","sources":["../../../src/core/zip/makeZipPackageStream.ts"],"names":[],"mappings":";AACA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAC9D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAkC1B"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import archiver from 'archiver';
|
|
2
|
+
export async function makeZipPackageStream(entries) {
|
|
3
|
+
const zip = archiver('zip', { zlib: { level: 9 } });
|
|
4
|
+
let error;
|
|
5
|
+
zip.on('warning', (err) => {
|
|
6
|
+
console.error(`rollupPackage: WARN: `, err);
|
|
7
|
+
});
|
|
8
|
+
zip.on('error', (err) => {
|
|
9
|
+
error = err || new Error(`unknown error occurred`);
|
|
10
|
+
});
|
|
11
|
+
const sortedEntries = [];
|
|
12
|
+
for await (const entry of entries) {
|
|
13
|
+
sortedEntries.push(entry);
|
|
14
|
+
}
|
|
15
|
+
sortedEntries.sort((a, b) => a.archivePath.localeCompare(b.archivePath));
|
|
16
|
+
for await (const entry of sortedEntries) {
|
|
17
|
+
if (error) {
|
|
18
|
+
throw error;
|
|
19
|
+
}
|
|
20
|
+
const content = typeof entry.content === 'function'
|
|
21
|
+
? await entry.content()
|
|
22
|
+
: entry.content;
|
|
23
|
+
zip.append(content, { name: entry.archivePath, date: new Date(0) });
|
|
24
|
+
}
|
|
25
|
+
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
26
|
+
zip.finalize();
|
|
27
|
+
return zip;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=makeZipPackageStream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"makeZipPackageStream.js","sourceRoot":"","sources":["../../../src/core/zip/makeZipPackageStream.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAIhC,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAA+D;IAE/D,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACpD,IAAI,KAAc,CAAC;IAEnB,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAY,EAAE,EAAE;QACjC,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAY,EAAE,EAAE;QAC/B,KAAK,GAAG,GAAG,IAAI,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAoB,EAAE,CAAC;IAC1C,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,EAAE;QACjC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3B;IACD,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;IAEzE,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,aAAa,EAAE;QACvC,IAAI,KAAK,EAAE;YACT,MAAM,KAAK,CAAC;SACb;QAED,MAAM,OAAO,GACX,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU;YACjC,CAAC,CAAC,MAAM,KAAK,CAAC,OAAO,EAAE;YACvB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;QAEpB,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KACrE;IAED,mEAAmE;IACnE,GAAG,CAAC,QAAQ,EAAE,CAAC;IACf,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zipDir.d.ts","sourceRoot":"","sources":["../../../src/core/zip/zipDir.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,MAAM,CAC1B,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,aAAa,GACnB,OAAO,CAAC,IAAI,CAAC,CAuBf"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import { mkdir } from 'fs/promises';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import { pipeline } from 'stream/promises';
|
|
5
|
+
import { addBundleInfoToPackageJson } from '../../internal/addBundleInfoToPackageJson.js';
|
|
6
|
+
import { readDotIgnoreForFolder } from '../../internal/readDotIgnoreForFolder.js';
|
|
7
|
+
import { getFolderEntries } from './getFolderEntries.js';
|
|
8
|
+
import { makeZipPackageStream } from './makeZipPackageStream.js';
|
|
9
|
+
export async function zipDir(dirname, opts) {
|
|
10
|
+
const outputPath = opts?.outputPath || `dist/${opts?.bundleName || 'bundle'}.zip`;
|
|
11
|
+
const fullOutputPath = path.resolve(outputPath);
|
|
12
|
+
const ignorePaths = opts?.ignorePaths || [];
|
|
13
|
+
ignorePaths.push(...(await readDotIgnoreForFolder(opts?.packagePath || dirname)));
|
|
14
|
+
const zip = await makeZipPackageStream(getFolderEntries({ source: dirname, ignore: ignorePaths }));
|
|
15
|
+
await mkdir(path.dirname(fullOutputPath), { recursive: true });
|
|
16
|
+
await pipeline(zip, fs.createWriteStream(fullOutputPath));
|
|
17
|
+
if (opts?.packagePath) {
|
|
18
|
+
await addBundleInfoToPackageJson(opts?.packagePath, {
|
|
19
|
+
name: opts?.bundleName,
|
|
20
|
+
path: outputPath,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=zipDir.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zipDir.js","sourceRoot":"","sources":["../../../src/core/zip/zipDir.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,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,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AASjE,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,OAAe,EACf,IAAoB;IAEpB,MAAM,UAAU,GACd,IAAI,EAAE,UAAU,IAAI,QAAQ,IAAI,EAAE,UAAU,IAAI,QAAQ,MAAM,CAAC;IACjE,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAEhD,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,EAAE,CAAC;IAC5C,WAAW,CAAC,IAAI,CACd,GAAG,CAAC,MAAM,sBAAsB,CAAC,IAAI,EAAE,WAAW,IAAI,OAAO,CAAC,CAAC,CAChE,CAAC;IAEF,MAAM,GAAG,GAAG,MAAM,oBAAoB,CACpC,gBAAgB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAC3D,CAAC;IAEF,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/D,MAAM,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAC;IAE1D,IAAI,IAAI,EAAE,WAAW,EAAE;QACrB,MAAM,0BAA0B,CAAC,IAAI,EAAE,WAAW,EAAE;YAClD,IAAI,EAAE,IAAI,EAAE,UAAU;YACtB,IAAI,EAAE,UAAU;SACjB,CAAC,CAAC;KACJ;AACH,CAAC"}
|