@rock-js/tools 0.8.13
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 +7 -0
- package/dist/src/index.d.ts +19 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +20 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/lib/build-cache/common.d.ts +79 -0
- package/dist/src/lib/build-cache/common.d.ts.map +1 -0
- package/dist/src/lib/build-cache/common.js +44 -0
- package/dist/src/lib/build-cache/common.js.map +1 -0
- package/dist/src/lib/build-cache/fetchCachedBuild.d.ts +12 -0
- package/dist/src/lib/build-cache/fetchCachedBuild.d.ts.map +1 -0
- package/dist/src/lib/build-cache/fetchCachedBuild.js +128 -0
- package/dist/src/lib/build-cache/fetchCachedBuild.js.map +1 -0
- package/dist/src/lib/build-cache/getBinaryPath.d.ts +10 -0
- package/dist/src/lib/build-cache/getBinaryPath.d.ts.map +1 -0
- package/dist/src/lib/build-cache/getBinaryPath.js +60 -0
- package/dist/src/lib/build-cache/getBinaryPath.js.map +1 -0
- package/dist/src/lib/build-cache/localBuildCache.d.ts +8 -0
- package/dist/src/lib/build-cache/localBuildCache.d.ts.map +1 -0
- package/dist/src/lib/build-cache/localBuildCache.js +50 -0
- package/dist/src/lib/build-cache/localBuildCache.js.map +1 -0
- package/dist/src/lib/cacheManager.d.ts +15 -0
- package/dist/src/lib/cacheManager.d.ts.map +1 -0
- package/dist/src/lib/cacheManager.js +63 -0
- package/dist/src/lib/cacheManager.js.map +1 -0
- package/dist/src/lib/color.d.ts +3 -0
- package/dist/src/lib/color.d.ts.map +1 -0
- package/dist/src/lib/color.js +6 -0
- package/dist/src/lib/color.js.map +1 -0
- package/dist/src/lib/dev-server/findDevServerPort.d.ts +4 -0
- package/dist/src/lib/dev-server/findDevServerPort.d.ts.map +1 -0
- package/dist/src/lib/dev-server/findDevServerPort.js +27 -0
- package/dist/src/lib/dev-server/findDevServerPort.js.map +1 -0
- package/dist/src/lib/dev-server/getDevMiddleware.d.ts +1 -0
- package/dist/src/lib/dev-server/getDevMiddleware.js +10 -0
- package/dist/src/lib/dev-server/getDevMiddleware.js.map +1 -0
- package/dist/src/lib/dev-server/getNextPort.d.ts +11 -0
- package/dist/src/lib/dev-server/getNextPort.d.ts.map +1 -0
- package/dist/src/lib/dev-server/getNextPort.js +22 -0
- package/dist/src/lib/dev-server/getNextPort.js.map +1 -0
- package/dist/src/lib/dev-server/getReactNativeCommunityCliPlugin.d.ts +1 -0
- package/dist/src/lib/dev-server/getReactNativeCommunityCliPlugin.js +5 -0
- package/dist/src/lib/dev-server/getReactNativeCommunityCliPlugin.js.map +1 -0
- package/dist/src/lib/dev-server/getReactNativeCommunityCliServerApi.d.ts +1 -0
- package/dist/src/lib/dev-server/getReactNativeCommunityCliServerApi.js +8 -0
- package/dist/src/lib/dev-server/getReactNativeCommunityCliServerApi.js.map +1 -0
- package/dist/src/lib/dev-server/getReactNativeCommunityDevServerApi.d.ts +1 -0
- package/dist/src/lib/dev-server/getReactNativeCommunityDevServerApi.js +8 -0
- package/dist/src/lib/dev-server/getReactNativeCommunityDevServerApi.js.map +1 -0
- package/dist/src/lib/dev-server/handlePortUnavailable.d.ts +4 -0
- package/dist/src/lib/dev-server/handlePortUnavailable.d.ts.map +1 -0
- package/dist/src/lib/dev-server/handlePortUnavailable.js +33 -0
- package/dist/src/lib/dev-server/handlePortUnavailable.js.map +1 -0
- package/dist/src/lib/dev-server/isDevServerRunning.d.ts +13 -0
- package/dist/src/lib/dev-server/isDevServerRunning.d.ts.map +1 -0
- package/dist/src/lib/dev-server/isDevServerRunning.js +29 -0
- package/dist/src/lib/dev-server/isDevServerRunning.js.map +1 -0
- package/dist/src/lib/dev-server/logAlreadyRunningBundler.d.ts +1 -0
- package/dist/src/lib/dev-server/logAlreadyRunningBundler.d.ts.map +1 -0
- package/dist/src/lib/dev-server/logAlreadyRunningBundler.js +5 -0
- package/dist/src/lib/dev-server/logAlreadyRunningBundler.js.map +1 -0
- package/dist/src/lib/env.d.ts +2 -0
- package/dist/src/lib/env.d.ts.map +1 -0
- package/dist/src/lib/env.js +11 -0
- package/dist/src/lib/env.js.map +1 -0
- package/dist/src/lib/error.d.ts +6 -0
- package/dist/src/lib/error.d.ts.map +1 -0
- package/dist/src/lib/error.js +11 -0
- package/dist/src/lib/error.js.map +1 -0
- package/dist/src/lib/fingerprint/index.d.ts +20 -0
- package/dist/src/lib/fingerprint/index.d.ts.map +1 -0
- package/dist/src/lib/fingerprint/index.js +128 -0
- package/dist/src/lib/fingerprint/index.js.map +1 -0
- package/dist/src/lib/fingerprint/processExtraSources.d.ts +9 -0
- package/dist/src/lib/fingerprint/processExtraSources.d.ts.map +1 -0
- package/dist/src/lib/fingerprint/processExtraSources.js +76 -0
- package/dist/src/lib/fingerprint/processExtraSources.js.map +1 -0
- package/dist/src/lib/hermes.d.ts +4 -0
- package/dist/src/lib/hermes.d.ts.map +1 -0
- package/dist/src/lib/hermes.js +141 -0
- package/dist/src/lib/hermes.js.map +1 -0
- package/dist/src/lib/isInteractive.d.ts +8 -0
- package/dist/src/lib/isInteractive.d.ts.map +1 -0
- package/dist/src/lib/isInteractive.js +10 -0
- package/dist/src/lib/isInteractive.js.map +1 -0
- package/dist/src/lib/logger.d.ts +11 -0
- package/dist/src/lib/logger.d.ts.map +1 -0
- package/dist/src/lib/logger.js +58 -0
- package/dist/src/lib/logger.js.map +1 -0
- package/dist/src/lib/parse-args.d.ts +1 -0
- package/dist/src/lib/parse-args.d.ts.map +1 -0
- package/dist/src/lib/parse-args.js +5 -0
- package/dist/src/lib/parse-args.js.map +1 -0
- package/dist/src/lib/path.d.ts +4 -0
- package/dist/src/lib/path.d.ts.map +1 -0
- package/dist/src/lib/path.js +36 -0
- package/dist/src/lib/path.js.map +1 -0
- package/dist/src/lib/project.d.ts +9 -0
- package/dist/src/lib/project.d.ts.map +1 -0
- package/dist/src/lib/project.js +33 -0
- package/dist/src/lib/project.js.map +1 -0
- package/dist/src/lib/prompts.d.ts +25 -0
- package/dist/src/lib/prompts.d.ts.map +1 -0
- package/dist/src/lib/prompts.js +106 -0
- package/dist/src/lib/prompts.js.map +1 -0
- package/dist/src/lib/spawn.d.ts +4 -0
- package/dist/src/lib/spawn.d.ts.map +1 -0
- package/dist/src/lib/spawn.js +43 -0
- package/dist/src/lib/spawn.js.map +1 -0
- package/package.json +39 -0
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { getLocalOS } from './env.js';
|
|
5
|
+
import { RockError } from './error.js';
|
|
6
|
+
import { getProjectRoot } from './project.js';
|
|
7
|
+
import { spawn } from './spawn.js';
|
|
8
|
+
function getReactNativePackagePath() {
|
|
9
|
+
const require = createRequire(import.meta.url);
|
|
10
|
+
const root = getProjectRoot();
|
|
11
|
+
const input = require.resolve('react-native', { paths: [root] });
|
|
12
|
+
return path.dirname(input);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Returns the path to the react-native compose-source-maps.js script.
|
|
16
|
+
*/
|
|
17
|
+
function getComposeSourceMapsPath() {
|
|
18
|
+
const rnPackagePath = getReactNativePackagePath();
|
|
19
|
+
const composeSourceMapsPath = path.join(rnPackagePath, 'scripts', 'compose-source-maps.js');
|
|
20
|
+
if (!fs.existsSync(composeSourceMapsPath)) {
|
|
21
|
+
throw new RockError("Could not find react-native's compose-source-maps.js script.");
|
|
22
|
+
}
|
|
23
|
+
return composeSourceMapsPath;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Extracts debugId from sourcemap file.
|
|
27
|
+
* @see https://github.com/tc39/ecma426/blob/main/proposals/debug-id.md
|
|
28
|
+
* @param sourceMapPath - Sourcemap file path
|
|
29
|
+
* @returns debugId value. Returns null if extraction fails
|
|
30
|
+
*/
|
|
31
|
+
function extractDebugId(sourceMapPath) {
|
|
32
|
+
try {
|
|
33
|
+
const sourceMapContent = fs.readFileSync(sourceMapPath, 'utf-8');
|
|
34
|
+
const sourceMap = JSON.parse(sourceMapContent);
|
|
35
|
+
return sourceMap.debugId;
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Inject debugId into sourcemap file at the top level.
|
|
43
|
+
* @see https://github.com/tc39/ecma426/blob/main/proposals/debug-id.md
|
|
44
|
+
* @param sourceMapPath - Sourcemap file path
|
|
45
|
+
* @param debugId - debugId value to inject
|
|
46
|
+
* @throws {RockError} Throws an error if injection fails
|
|
47
|
+
*/
|
|
48
|
+
function injectDebugId(sourceMapPath, debugId) {
|
|
49
|
+
try {
|
|
50
|
+
const sourceMapContent = fs.readFileSync(sourceMapPath, 'utf-8');
|
|
51
|
+
const sourceMap = JSON.parse(sourceMapContent);
|
|
52
|
+
sourceMap.debugId = debugId;
|
|
53
|
+
fs.writeFileSync(sourceMapPath, JSON.stringify(sourceMap));
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
throw new RockError(`Failed to inject debugId into sourcemap: ${sourceMapPath}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
export async function runHermes({ bundleOutputPath, sourcemapOutputPath, }) {
|
|
60
|
+
const hermescPath = getHermescPath();
|
|
61
|
+
if (!hermescPath) {
|
|
62
|
+
throw new RockError('Hermesc binary not found. Use `--no-hermes` flag to disable Hermes.');
|
|
63
|
+
}
|
|
64
|
+
// Output will be .hbc file
|
|
65
|
+
const hbcOutputPath = `${bundleOutputPath}.hbc`;
|
|
66
|
+
const hermescArgs = [
|
|
67
|
+
'-emit-binary',
|
|
68
|
+
'-max-diagnostic-width=80',
|
|
69
|
+
'-O',
|
|
70
|
+
'-w',
|
|
71
|
+
'-out',
|
|
72
|
+
hbcOutputPath,
|
|
73
|
+
bundleOutputPath,
|
|
74
|
+
];
|
|
75
|
+
// Add sourcemap flag if enabled
|
|
76
|
+
if (sourcemapOutputPath) {
|
|
77
|
+
hermescArgs.push('-output-source-map');
|
|
78
|
+
}
|
|
79
|
+
try {
|
|
80
|
+
await spawn(hermescPath, hermescArgs);
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
throw new RockError('Compiling JS bundle with Hermes failed. Use `--no-hermes` flag to disable Hermes.', { cause: error.stderr });
|
|
84
|
+
}
|
|
85
|
+
// Handle sourcemap composition if enabled
|
|
86
|
+
if (sourcemapOutputPath) {
|
|
87
|
+
const hermesSourceMapFile = `${hbcOutputPath}.map`;
|
|
88
|
+
const composeSourceMapsPath = getComposeSourceMapsPath();
|
|
89
|
+
try {
|
|
90
|
+
// Extract debugId from original sourcemap
|
|
91
|
+
const debugId = extractDebugId(sourcemapOutputPath);
|
|
92
|
+
await spawn('node', [
|
|
93
|
+
composeSourceMapsPath,
|
|
94
|
+
sourcemapOutputPath,
|
|
95
|
+
hermesSourceMapFile,
|
|
96
|
+
'-o',
|
|
97
|
+
sourcemapOutputPath,
|
|
98
|
+
]);
|
|
99
|
+
// Inject debugId back into the composed sourcemap
|
|
100
|
+
if (debugId) {
|
|
101
|
+
injectDebugId(sourcemapOutputPath, debugId);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
throw new RockError('Failed to run compose-source-maps script', {
|
|
106
|
+
cause: error.stderr,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// Move .hbc file to overwrite the original bundle file
|
|
111
|
+
try {
|
|
112
|
+
if (fs.existsSync(bundleOutputPath)) {
|
|
113
|
+
fs.unlinkSync(bundleOutputPath);
|
|
114
|
+
}
|
|
115
|
+
fs.renameSync(hbcOutputPath, bundleOutputPath);
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
throw new RockError(`Failed to move compiled Hermes bytecode to bundle output path: ${error}`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Get `hermesc` binary path.
|
|
123
|
+
* Based on: https://github.com/facebook/react-native/blob/f2c78af56ae492f49b90d0af61ca9bf4d124fca0/packages/gradle-plugin/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/utils/PathUtils.kt#L48-L55
|
|
124
|
+
*/
|
|
125
|
+
function getHermescPath() {
|
|
126
|
+
const reactNativePath = getReactNativePackagePath();
|
|
127
|
+
// Local build from source: node_modules/react-native/sdks/hermes/build/bin/hermesc
|
|
128
|
+
const localBuildPath = path.join(reactNativePath, 'sdks/hermes/build/bin/hermesc');
|
|
129
|
+
if (fs.existsSync(localBuildPath)) {
|
|
130
|
+
return localBuildPath;
|
|
131
|
+
}
|
|
132
|
+
// Precompiled binaries: node_modules/react-native/sdks/hermesc/%OS-BIN%/hermesc
|
|
133
|
+
const prebuildPaths = {
|
|
134
|
+
macos: `${reactNativePath}/sdks/hermesc/osx-bin/hermesc`,
|
|
135
|
+
linux: `${reactNativePath}/sdks/hermesc/linux64-bin/hermesc`,
|
|
136
|
+
windows: `${reactNativePath}/sdks/hermesc/win64-bin/hermesc.exe`,
|
|
137
|
+
};
|
|
138
|
+
const os = getLocalOS();
|
|
139
|
+
return prebuildPaths[os];
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=hermes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hermes.js","sourceRoot":"","sources":["../../../src/lib/hermes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isInteractive.d.ts","sourceRoot":"","sources":["../../../src/lib/isInteractive.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,MAAuB,EAAE;;;;CAAK,WAO7D"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Source from https://github.com/sindresorhus/is-interactive/blob/main/index.js
|
|
3
|
+
*/
|
|
4
|
+
export function isInteractive({ stream = process.stdout } = {}) {
|
|
5
|
+
return Boolean(stream &&
|
|
6
|
+
stream.isTTY &&
|
|
7
|
+
process.env['TERM'] !== 'dumb' &&
|
|
8
|
+
!('CI' in process.env));
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=isInteractive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isInteractive.js","sourceRoot":"","sources":["../../../src/lib/isInteractive.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE;IAC5D,OAAO,OAAO,CACZ,MAAM;QACJ,MAAM,CAAC,KAAK;QACZ,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,MAAM;QAC9B,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,CACzB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
success: (...messages: Array<unknown>) => void;
|
|
3
|
+
info: (...messages: Array<unknown>) => void;
|
|
4
|
+
warn: (...messages: Array<unknown>) => void;
|
|
5
|
+
error: (...messages: Array<unknown>) => void;
|
|
6
|
+
debug: (...messages: Array<unknown>) => void;
|
|
7
|
+
log: (...messages: Array<unknown>) => void;
|
|
8
|
+
setVerbose: (level: boolean) => void;
|
|
9
|
+
isVerbose: () => boolean;
|
|
10
|
+
};
|
|
11
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/lib/logger.ts"],"names":[],"mappings":";2BAe8B,KAAK,CAAC,OAAO,CAAC;wBAKjB,KAAK,CAAC,OAAO,CAAC;wBAKd,KAAK,CAAC,OAAO,CAAC;yBAKb,KAAK,CAAC,OAAO,CAAC;yBAUd,KAAK,CAAC,OAAO,CAAC;uBALhB,KAAK,CAAC,OAAO,CAAC;wBAcb,OAAO;;;AASlC,wBASE"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import util from 'node:util';
|
|
2
|
+
import { log as clackLog } from '@clack/prompts';
|
|
3
|
+
import isUnicodeSupported from 'is-unicode-supported';
|
|
4
|
+
import { color } from './color.js';
|
|
5
|
+
import { isInteractive } from './isInteractive.js';
|
|
6
|
+
const unicode = isUnicodeSupported();
|
|
7
|
+
const unicodeWithFallback = (c, fallback) => unicode ? c : fallback;
|
|
8
|
+
const SYMBOL_DEBUG = unicodeWithFallback('●', '•');
|
|
9
|
+
let verbose = false;
|
|
10
|
+
const success = (...messages) => {
|
|
11
|
+
const output = util.format(...messages);
|
|
12
|
+
clackLog.success(output);
|
|
13
|
+
};
|
|
14
|
+
const info = (...messages) => {
|
|
15
|
+
const output = util.format(...messages);
|
|
16
|
+
clackLog.info(output);
|
|
17
|
+
};
|
|
18
|
+
const warn = (...messages) => {
|
|
19
|
+
const output = util.format(...messages);
|
|
20
|
+
clackLog.warn(mapLines(output, color.yellow));
|
|
21
|
+
};
|
|
22
|
+
const error = (...messages) => {
|
|
23
|
+
const output = util.format(...messages);
|
|
24
|
+
clackLog.error(mapLines(output, color.red));
|
|
25
|
+
};
|
|
26
|
+
const log = (...messages) => {
|
|
27
|
+
const output = util.format(...messages);
|
|
28
|
+
clackLog.step(output);
|
|
29
|
+
};
|
|
30
|
+
const debug = (...messages) => {
|
|
31
|
+
if (verbose) {
|
|
32
|
+
const output = util.format(...messages);
|
|
33
|
+
clackLog.message(mapLines(output, color.dim), {
|
|
34
|
+
symbol: color.dim(SYMBOL_DEBUG),
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
const setVerbose = (level) => {
|
|
39
|
+
verbose = level;
|
|
40
|
+
};
|
|
41
|
+
const isVerbose = () => {
|
|
42
|
+
// For non-interactive environments, always show verbose logs
|
|
43
|
+
return !isInteractive() || verbose;
|
|
44
|
+
};
|
|
45
|
+
export default {
|
|
46
|
+
success,
|
|
47
|
+
info,
|
|
48
|
+
warn,
|
|
49
|
+
error,
|
|
50
|
+
debug,
|
|
51
|
+
log,
|
|
52
|
+
setVerbose,
|
|
53
|
+
isVerbose,
|
|
54
|
+
};
|
|
55
|
+
function mapLines(text, colorFn) {
|
|
56
|
+
return text.split('\n').map(colorFn).join('\n');
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/lib/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function parseArgs(args: string): string[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-args.d.ts","sourceRoot":"","sources":["../../../src/lib/parse-args.ts"],"names":[],"mappings":"AAEA,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,YAErC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-args.js","sourceRoot":"","sources":["../../../src/lib/parse-args.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function relativeToCwd(path: string): string;
|
|
2
|
+
export declare function resolveAbsolutePath(path: string): string;
|
|
3
|
+
export declare function resolveFilenameUp(path: string, filename: string): string;
|
|
4
|
+
export declare function findDirectoriesWithPattern(path: string, pattern: RegExp): string[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../../src/lib/path.ts"],"names":[],"mappings":"AAIA,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,UAEzC;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,UAE/C;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAa/D;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,YAcvE"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import * as fs from 'node:fs';
|
|
2
|
+
import * as nodePath from 'node:path';
|
|
3
|
+
import { RockError } from './error.js';
|
|
4
|
+
export function relativeToCwd(path) {
|
|
5
|
+
return nodePath.relative(process.cwd(), path);
|
|
6
|
+
}
|
|
7
|
+
export function resolveAbsolutePath(path) {
|
|
8
|
+
return nodePath.isAbsolute(path) ? path : nodePath.join(process.cwd(), path);
|
|
9
|
+
}
|
|
10
|
+
export function resolveFilenameUp(path, filename) {
|
|
11
|
+
const filePath = nodePath.join(path, filename);
|
|
12
|
+
if (fs.existsSync(filePath)) {
|
|
13
|
+
return filePath;
|
|
14
|
+
}
|
|
15
|
+
const parentDir = nodePath.dirname(path);
|
|
16
|
+
if (parentDir === path) {
|
|
17
|
+
throw new RockError(`${filename} not found in any parent directory of ${path}`);
|
|
18
|
+
}
|
|
19
|
+
return resolveFilenameUp(parentDir, filename);
|
|
20
|
+
}
|
|
21
|
+
export function findDirectoriesWithPattern(path, pattern) {
|
|
22
|
+
const files = fs.readdirSync(path);
|
|
23
|
+
const result = [];
|
|
24
|
+
for (const file of files) {
|
|
25
|
+
const filePath = nodePath.join(path, file);
|
|
26
|
+
const stat = fs.statSync(filePath);
|
|
27
|
+
if (stat.isDirectory()) {
|
|
28
|
+
if (file.match(pattern)) {
|
|
29
|
+
result.push(filePath);
|
|
30
|
+
}
|
|
31
|
+
result.push(...findDirectoriesWithPattern(filePath, pattern));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path.js","sourceRoot":"","sources":["../../../src/lib/path.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,QAAgB;IAC9D,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC/C,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,SAAS,CACjB,GAAG,QAAQ,yCAAyC,IAAI,EAAE,CAC3D,CAAC;IACJ,CAAC;IAED,OAAO,iBAAiB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAAY,EAAE,OAAe;IACtE,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxB,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,GAAG,0BAA0B,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function getProjectConfig(dir?: string): string;
|
|
2
|
+
export declare function getProjectRoot(dir?: string): string;
|
|
3
|
+
export declare function getDotRockPath(): string;
|
|
4
|
+
/**
|
|
5
|
+
* Returns path to cache root.
|
|
6
|
+
*
|
|
7
|
+
* Cache is stored in: `.rock/cache` directory in the project root.
|
|
8
|
+
*/
|
|
9
|
+
export declare function getCacheRootPath(): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../../src/lib/project.ts"],"names":[],"mappings":"AAMA,wBAAgB,gBAAgB,CAAC,GAAG,GAAE,MAAsB,UAc3D;AAED,wBAAgB,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,UAG1C;AAED,wBAAgB,cAAc,WAE7B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,WAE/B"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import * as fs from 'node:fs';
|
|
2
|
+
import * as path from 'node:path';
|
|
3
|
+
const PROJECT_CONFIG_BASE_NAME = 'rock.config';
|
|
4
|
+
const PROJECT_CONFIG_FILE_EXTENSIONS = ['js', 'ts', 'mjs', 'mts', 'cjs', `cts`];
|
|
5
|
+
export function getProjectConfig(dir = process.cwd()) {
|
|
6
|
+
for (const ext of PROJECT_CONFIG_FILE_EXTENSIONS) {
|
|
7
|
+
const configPath = path.join(dir, `${PROJECT_CONFIG_BASE_NAME}.${ext}`);
|
|
8
|
+
if (fs.existsSync(configPath)) {
|
|
9
|
+
return configPath;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
const parentDir = path.dirname(dir);
|
|
13
|
+
if (parentDir === dir) {
|
|
14
|
+
throw new Error(`Project config not found`);
|
|
15
|
+
}
|
|
16
|
+
return getProjectConfig(parentDir);
|
|
17
|
+
}
|
|
18
|
+
export function getProjectRoot(dir) {
|
|
19
|
+
const configPath = getProjectConfig(dir);
|
|
20
|
+
return path.dirname(configPath);
|
|
21
|
+
}
|
|
22
|
+
export function getDotRockPath() {
|
|
23
|
+
return path.join(getProjectRoot(), '.rock');
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Returns path to cache root.
|
|
27
|
+
*
|
|
28
|
+
* Cache is stored in: `.rock/cache` directory in the project root.
|
|
29
|
+
*/
|
|
30
|
+
export function getCacheRootPath() {
|
|
31
|
+
return path.join(getProjectRoot(), '.rock/cache');
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../../src/lib/project.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,MAAM,wBAAwB,GAAG,aAAa,CAAC;AAC/C,MAAM,8BAA8B,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAEhF,MAAM,UAAU,gBAAgB,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IAC1D,KAAK,MAAM,GAAG,IAAI,8BAA8B,EAAE,CAAC;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,wBAAwB,IAAI,GAAG,EAAE,CAAC,CAAC;QACxE,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACzC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,aAAa,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as clack from '@clack/prompts';
|
|
2
|
+
export declare function intro(title?: string): void;
|
|
3
|
+
export declare function outro(message?: string): void;
|
|
4
|
+
export declare function note(message?: string, title?: string): void;
|
|
5
|
+
export declare function promptText(options: clack.TextOptions): Promise<string>;
|
|
6
|
+
export declare function promptPassword(options: clack.PasswordOptions): Promise<string>;
|
|
7
|
+
export declare function promptSelect<T>(options: clack.SelectOptions<T>): Promise<T>;
|
|
8
|
+
type ConfirmOptions = {
|
|
9
|
+
message: string;
|
|
10
|
+
confirmLabel?: string;
|
|
11
|
+
cancelLabel?: string;
|
|
12
|
+
};
|
|
13
|
+
export declare function promptConfirm(options: ConfirmOptions): Promise<boolean>;
|
|
14
|
+
export declare function promptMultiselect<T>(options: clack.MultiSelectOptions<T>): Promise<T[]>;
|
|
15
|
+
export declare function promptGroup<T>(prompts: clack.PromptGroup<T>, options?: clack.PromptGroupOptions<T> | undefined): Promise<{ [P in keyof clack.PromptGroupAwaitedReturn<T>]: clack.PromptGroupAwaitedReturn<T>[P]; }>;
|
|
16
|
+
export declare function spinner(options?: clack.SpinnerOptions & {
|
|
17
|
+
silent?: boolean;
|
|
18
|
+
}): {
|
|
19
|
+
start: (message?: string) => void;
|
|
20
|
+
stop: (message?: string, code?: number) => void;
|
|
21
|
+
message: (message?: string) => void;
|
|
22
|
+
};
|
|
23
|
+
export declare function formatStartMessage(text: string | undefined): string | undefined;
|
|
24
|
+
export declare function cancelPromptAndExit(message?: string): never;
|
|
25
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/lib/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AAIxC,wBAAgB,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,QAEnC;AAED,wBAAgB,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,QAErC;AAED,wBAAgB,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,QAEpD;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAO5E;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,KAAK,CAAC,eAAe,GAC7B,OAAO,CAAC,MAAM,CAAC,CAOjB;AAED,wBAAsB,YAAY,CAAC,CAAC,EAClC,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,GAC9B,OAAO,CAAC,CAAC,CAAC,CAYZ;AAED,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAsB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAc7E;AAED,wBAAsB,iBAAiB,CAAC,CAAC,EACvC,OAAO,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,GACnC,OAAO,CAAC,CAAC,EAAE,CAAC,CAOd;AAED,wBAAsB,WAAW,CAAC,CAAC,EACjC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAC7B,OAAO,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,SAAS,sGAQlD;AAED,wBAAgB,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,cAAc;sBAG9B,MAAM;qBACP,MAAM;wBAGH,MAAM;EAiB/B;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,GAAG,SAAS,GACvB,MAAM,GAAG,SAAS,CAOpB;AAED,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,KAAK,CAG3D"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import * as clack from '@clack/prompts';
|
|
2
|
+
import { isInteractive } from './isInteractive.js';
|
|
3
|
+
import logger from './logger.js';
|
|
4
|
+
export function intro(title) {
|
|
5
|
+
return clack.intro(title);
|
|
6
|
+
}
|
|
7
|
+
export function outro(message) {
|
|
8
|
+
return clack.outro(message);
|
|
9
|
+
}
|
|
10
|
+
export function note(message, title) {
|
|
11
|
+
return clack.note(message, title);
|
|
12
|
+
}
|
|
13
|
+
export async function promptText(options) {
|
|
14
|
+
const result = await clack.text(options);
|
|
15
|
+
if (clack.isCancel(result)) {
|
|
16
|
+
cancelPromptAndExit();
|
|
17
|
+
}
|
|
18
|
+
return result;
|
|
19
|
+
}
|
|
20
|
+
export async function promptPassword(options) {
|
|
21
|
+
const result = await clack.password(options);
|
|
22
|
+
if (clack.isCancel(result)) {
|
|
23
|
+
cancelPromptAndExit();
|
|
24
|
+
}
|
|
25
|
+
return result;
|
|
26
|
+
}
|
|
27
|
+
export async function promptSelect(options) {
|
|
28
|
+
// If there is only one option, return it immediately
|
|
29
|
+
if (options.options.length === 1) {
|
|
30
|
+
return options.options[0].value;
|
|
31
|
+
}
|
|
32
|
+
const result = await clack.select(options);
|
|
33
|
+
if (clack.isCancel(result)) {
|
|
34
|
+
cancelPromptAndExit();
|
|
35
|
+
}
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
export async function promptConfirm(options) {
|
|
39
|
+
const result = await clack.select({
|
|
40
|
+
message: options.message,
|
|
41
|
+
options: [
|
|
42
|
+
{ value: true, label: options.confirmLabel ?? 'Confirm' },
|
|
43
|
+
{ value: false, label: options.cancelLabel ?? 'Cancel' },
|
|
44
|
+
],
|
|
45
|
+
});
|
|
46
|
+
if (clack.isCancel(result)) {
|
|
47
|
+
cancelPromptAndExit();
|
|
48
|
+
}
|
|
49
|
+
return result === true;
|
|
50
|
+
}
|
|
51
|
+
export async function promptMultiselect(options) {
|
|
52
|
+
const result = await clack.multiselect(options);
|
|
53
|
+
if (clack.isCancel(result)) {
|
|
54
|
+
cancelPromptAndExit();
|
|
55
|
+
}
|
|
56
|
+
return result;
|
|
57
|
+
}
|
|
58
|
+
export async function promptGroup(prompts, options) {
|
|
59
|
+
const result = await clack.group(prompts, options);
|
|
60
|
+
if (clack.isCancel(result)) {
|
|
61
|
+
cancelPromptAndExit();
|
|
62
|
+
}
|
|
63
|
+
return result;
|
|
64
|
+
}
|
|
65
|
+
export function spinner(options) {
|
|
66
|
+
if (options?.silent) {
|
|
67
|
+
return {
|
|
68
|
+
start: () => { },
|
|
69
|
+
stop: () => { },
|
|
70
|
+
message: () => { },
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
if (logger.isVerbose() || !isInteractive()) {
|
|
74
|
+
return {
|
|
75
|
+
start: (message) => logger.log(formatStartMessage(message)),
|
|
76
|
+
stop: (message, code = 0) => {
|
|
77
|
+
return code === 0 ? logger.log(message) : logger.error(message);
|
|
78
|
+
},
|
|
79
|
+
message: (message) => logger.log(formatStartMessage(message)),
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
const clackSpinner = clack.spinner(options);
|
|
83
|
+
return {
|
|
84
|
+
start: (message) => {
|
|
85
|
+
clackSpinner.start(message);
|
|
86
|
+
},
|
|
87
|
+
stop: (message, code) => {
|
|
88
|
+
clackSpinner.stop(message, code);
|
|
89
|
+
},
|
|
90
|
+
message: (message) => {
|
|
91
|
+
clackSpinner.message(message);
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
export function formatStartMessage(text) {
|
|
96
|
+
if (text === undefined) {
|
|
97
|
+
return undefined;
|
|
98
|
+
}
|
|
99
|
+
const messageWithoutDots = text.replace(/\.+$/, '');
|
|
100
|
+
return `${messageWithoutDots}...`;
|
|
101
|
+
}
|
|
102
|
+
export function cancelPromptAndExit(message) {
|
|
103
|
+
clack.cancel(message ?? 'Operation cancelled by user.');
|
|
104
|
+
process.exit(0);
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/lib/prompts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spawn.d.ts","sourceRoot":"","sources":["../../../src/lib/spawn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACtD,OAAkB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGxD,wBAAgB,KAAK,CACnB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,CAAC,EAAE,OAAO,GAChB,UAAU,CAYZ;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import nanoSpawn, { SubprocessError } from 'nano-spawn';
|
|
2
|
+
import logger from './logger.js';
|
|
3
|
+
export function spawn(file, args, options) {
|
|
4
|
+
const defaultStream = logger.isVerbose() ? 'inherit' : 'pipe';
|
|
5
|
+
const defaultOptions = {
|
|
6
|
+
stdin: defaultStream,
|
|
7
|
+
stdout: defaultStream,
|
|
8
|
+
// Always 'pipe' stderr to handle errors properly down the line
|
|
9
|
+
stderr: 'pipe',
|
|
10
|
+
};
|
|
11
|
+
logger.debug(`Running: ${file}`, ...(args ?? []));
|
|
12
|
+
const childProcess = nanoSpawn(file, args, { ...defaultOptions, ...options });
|
|
13
|
+
setupChildProcessCleanup(childProcess);
|
|
14
|
+
return childProcess;
|
|
15
|
+
}
|
|
16
|
+
export { SubprocessError };
|
|
17
|
+
function setupChildProcessCleanup(childProcess) {
|
|
18
|
+
// https://stackoverflow.com/questions/53049939/node-daemon-wont-start-with-process-stdin-setrawmodetrue/53050098#53050098
|
|
19
|
+
if (process.stdin.isTTY) {
|
|
20
|
+
// overwrite @clack/prompts setting raw mode for spinner and prompts,
|
|
21
|
+
// which prevents listening for SIGINT and SIGTERM
|
|
22
|
+
process.stdin.setRawMode(false);
|
|
23
|
+
}
|
|
24
|
+
const terminate = async () => {
|
|
25
|
+
try {
|
|
26
|
+
(await childProcess.nodeChildProcess).kill();
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
// ignore
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
const sigintHandler = () => terminate();
|
|
34
|
+
const sigtermHandler = () => terminate();
|
|
35
|
+
process.on('SIGINT', sigintHandler);
|
|
36
|
+
process.on('SIGTERM', sigtermHandler);
|
|
37
|
+
const cleanup = () => {
|
|
38
|
+
process.off('SIGINT', sigintHandler);
|
|
39
|
+
process.off('SIGTERM', sigtermHandler);
|
|
40
|
+
};
|
|
41
|
+
childProcess.nodeChildProcess.finally(cleanup);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=spawn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../../src/lib/spawn.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,EAAE,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,MAAM,UAAU,KAAK,CACnB,IAAY,EACZ,IAAwB,EACxB,OAAiB;IAEjB,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9D,MAAM,cAAc,GAAY;QAC9B,KAAK,EAAE,aAAa;QACpB,MAAM,EAAE,aAAa;QACrB,+DAA+D;QAC/D,MAAM,EAAE,MAAM;KACf,CAAC;IACF,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC9E,wBAAwB,CAAC,YAAY,CAAC,CAAC;IACvC,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B,SAAS,wBAAwB,CAAC,YAAwB;IACxD,0HAA0H;IAC1H,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACxB,qEAAqE;QACrE,kDAAkD;QAClD,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;QAC3B,IAAI,CAAC;YACH,CAAC,MAAM,YAAY,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;IACxC,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;IAEzC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACpC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAEtC,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACzC,CAAC,CAAC;IAEF,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACjD,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@rock-js/tools",
|
|
3
|
+
"version": "0.8.13",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"types": "./dist/src/index.d.ts",
|
|
6
|
+
"exports": {
|
|
7
|
+
"types": "./dist/src/index.d.ts",
|
|
8
|
+
"default": "./dist/src/index.js"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist"
|
|
12
|
+
],
|
|
13
|
+
"scripts": {
|
|
14
|
+
"build": "tsc -p tsconfig.lib.json",
|
|
15
|
+
"dev": "tsc -p tsconfig.lib.json --watch",
|
|
16
|
+
"publish:npm": "npm publish --access public",
|
|
17
|
+
"publish:verdaccio": "npm publish --registry http://localhost:4873 --userconfig ../../.npmrc"
|
|
18
|
+
},
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"@clack/prompts": "^0.11.0",
|
|
21
|
+
"@expo/fingerprint": "^0.11.6",
|
|
22
|
+
"@types/adm-zip": "^0.5.7",
|
|
23
|
+
"adm-zip": "^0.5.16",
|
|
24
|
+
"appdirsjs": "^1.2.7",
|
|
25
|
+
"fast-glob": "^3.3.2",
|
|
26
|
+
"is-unicode-supported": "^2.1.0",
|
|
27
|
+
"nano-spawn": "^0.2.0",
|
|
28
|
+
"picocolors": "^1.1.1",
|
|
29
|
+
"string-argv": "^0.3.2",
|
|
30
|
+
"tar": "^7.4.3",
|
|
31
|
+
"tslib": "^2.3.0"
|
|
32
|
+
},
|
|
33
|
+
"devDependencies": {
|
|
34
|
+
"@rock-js/test-helpers": "^0.8.13"
|
|
35
|
+
},
|
|
36
|
+
"publishConfig": {
|
|
37
|
+
"access": "public"
|
|
38
|
+
}
|
|
39
|
+
}
|