@adviser/cement 0.4.51 → 0.4.52-pre
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/cjs/cli/generate-version-ts-cmd.cjs +79 -0
- package/cjs/cli/generate-version-ts-cmd.cjs.map +1 -0
- package/cjs/cli/generate-version-ts-cmd.d.ts +3 -0
- package/cjs/cli/generate-version-ts-cmd.d.ts.map +1 -0
- package/cjs/cli/main.cjs +8 -3
- package/cjs/cli/main.cjs.map +1 -1
- package/cjs/cli/patch-version-cmd.cjs +3 -226
- package/cjs/cli/patch-version-cmd.cjs.map +1 -1
- package/cjs/cli/patch-version-cmd.d.ts +0 -4
- package/cjs/cli/patch-version-cmd.d.ts.map +1 -1
- package/cjs/cli/prepare-pubdir-cmd.cjs +150 -0
- package/cjs/cli/prepare-pubdir-cmd.cjs.map +1 -0
- package/cjs/cli/prepare-pubdir-cmd.d.ts +4 -0
- package/cjs/cli/prepare-pubdir-cmd.d.ts.map +1 -0
- package/cjs/cli/publish-tags-cmd.cjs +94 -0
- package/cjs/cli/publish-tags-cmd.cjs.map +1 -0
- package/cjs/cli/publish-tags-cmd.d.ts +3 -0
- package/cjs/cli/publish-tags-cmd.d.ts.map +1 -0
- package/cjs/cli/setup-deno-json-cmd.cjs +77 -0
- package/cjs/cli/setup-deno-json-cmd.cjs.map +1 -0
- package/cjs/cli/setup-deno-json-cmd.d.ts +3 -0
- package/cjs/cli/setup-deno-json-cmd.d.ts.map +1 -0
- package/cjs/cli/utils.cjs +93 -0
- package/cjs/cli/utils.cjs.map +1 -0
- package/cjs/cli/utils.d.ts +6 -0
- package/cjs/cli/utils.d.ts.map +1 -0
- package/cjs/version.cjs +1 -1
- package/cjs/version.cjs.map +1 -1
- package/cjs/version.d.ts.map +1 -1
- package/deno.json +1 -1
- package/esm/cli/generate-version-ts-cmd.d.ts +3 -0
- package/esm/cli/generate-version-ts-cmd.d.ts.map +1 -0
- package/esm/cli/generate-version-ts-cmd.js +43 -0
- package/esm/cli/generate-version-ts-cmd.js.map +1 -0
- package/esm/cli/main.js +6 -1
- package/esm/cli/main.js.map +1 -1
- package/esm/cli/patch-version-cmd.d.ts +0 -4
- package/esm/cli/patch-version-cmd.d.ts.map +1 -1
- package/esm/cli/patch-version-cmd.js +1 -220
- package/esm/cli/patch-version-cmd.js.map +1 -1
- package/esm/cli/prepare-pubdir-cmd.d.ts +4 -0
- package/esm/cli/prepare-pubdir-cmd.d.ts.map +1 -0
- package/esm/cli/prepare-pubdir-cmd.js +113 -0
- package/esm/cli/prepare-pubdir-cmd.js.map +1 -0
- package/esm/cli/publish-tags-cmd.d.ts +3 -0
- package/esm/cli/publish-tags-cmd.d.ts.map +1 -0
- package/esm/cli/publish-tags-cmd.js +58 -0
- package/esm/cli/publish-tags-cmd.js.map +1 -0
- package/esm/cli/setup-deno-json-cmd.d.ts +3 -0
- package/esm/cli/setup-deno-json-cmd.d.ts.map +1 -0
- package/esm/cli/setup-deno-json-cmd.js +41 -0
- package/esm/cli/setup-deno-json-cmd.js.map +1 -0
- package/esm/cli/utils.d.ts +6 -0
- package/esm/cli/utils.d.ts.map +1 -0
- package/esm/cli/utils.js +54 -0
- package/esm/cli/utils.js.map +1 -0
- package/esm/version.d.ts.map +1 -1
- package/esm/version.js +1 -1
- package/esm/version.js.map +1 -1
- package/package.json +42 -25
- package/src/cli/generate-version-ts-cmd.ts +43 -0
- package/src/cli/main.ts +6 -1
- package/src/cli/patch-version-cmd.ts +1 -289
- package/src/cli/prepare-pubdir-cmd.ts +156 -0
- package/src/cli/publish-tags-cmd.ts +69 -0
- package/src/cli/run.sh +10 -1
- package/src/cli/setup-deno-json-cmd.ts +51 -0
- package/src/cli/utils.ts +70 -0
- package/ts/cjs/cli/generate-version-ts-cmd.d.ts +3 -0
- package/ts/cjs/cli/generate-version-ts-cmd.d.ts.map +1 -0
- package/ts/cjs/cli/generate-version-ts-cmd.js +79 -0
- package/ts/cjs/cli/generate-version-ts-cmd.js.map +1 -0
- package/ts/cjs/cli/main.js +8 -3
- package/ts/cjs/cli/main.js.map +1 -1
- package/ts/cjs/cli/patch-version-cmd.d.ts +0 -4
- package/ts/cjs/cli/patch-version-cmd.d.ts.map +1 -1
- package/ts/cjs/cli/patch-version-cmd.js +3 -226
- package/ts/cjs/cli/patch-version-cmd.js.map +1 -1
- package/ts/cjs/cli/prepare-pubdir-cmd.d.ts +4 -0
- package/ts/cjs/cli/prepare-pubdir-cmd.d.ts.map +1 -0
- package/ts/cjs/cli/prepare-pubdir-cmd.js +150 -0
- package/ts/cjs/cli/prepare-pubdir-cmd.js.map +1 -0
- package/ts/cjs/cli/publish-tags-cmd.d.ts +3 -0
- package/ts/cjs/cli/publish-tags-cmd.d.ts.map +1 -0
- package/ts/cjs/cli/publish-tags-cmd.js +94 -0
- package/ts/cjs/cli/publish-tags-cmd.js.map +1 -0
- package/ts/cjs/cli/setup-deno-json-cmd.d.ts +3 -0
- package/ts/cjs/cli/setup-deno-json-cmd.d.ts.map +1 -0
- package/ts/cjs/cli/setup-deno-json-cmd.js +77 -0
- package/ts/cjs/cli/setup-deno-json-cmd.js.map +1 -0
- package/ts/cjs/cli/utils.d.ts +6 -0
- package/ts/cjs/cli/utils.d.ts.map +1 -0
- package/ts/cjs/cli/utils.js +93 -0
- package/ts/cjs/cli/utils.js.map +1 -0
- package/ts/cjs/version.d.ts.map +1 -1
- package/ts/cjs/version.js +1 -1
- package/ts/cjs/version.js.map +1 -1
- package/ts/esm/cli/generate-version-ts-cmd.d.ts +3 -0
- package/ts/esm/cli/generate-version-ts-cmd.d.ts.map +1 -0
- package/ts/esm/cli/generate-version-ts-cmd.js +43 -0
- package/ts/esm/cli/generate-version-ts-cmd.js.map +1 -0
- package/ts/esm/cli/main.js +6 -1
- package/ts/esm/cli/main.js.map +1 -1
- package/ts/esm/cli/patch-version-cmd.d.ts +0 -4
- package/ts/esm/cli/patch-version-cmd.d.ts.map +1 -1
- package/ts/esm/cli/patch-version-cmd.js +1 -220
- package/ts/esm/cli/patch-version-cmd.js.map +1 -1
- package/ts/esm/cli/prepare-pubdir-cmd.d.ts +4 -0
- package/ts/esm/cli/prepare-pubdir-cmd.d.ts.map +1 -0
- package/ts/esm/cli/prepare-pubdir-cmd.js +113 -0
- package/ts/esm/cli/prepare-pubdir-cmd.js.map +1 -0
- package/ts/esm/cli/publish-tags-cmd.d.ts +3 -0
- package/ts/esm/cli/publish-tags-cmd.d.ts.map +1 -0
- package/ts/esm/cli/publish-tags-cmd.js +58 -0
- package/ts/esm/cli/publish-tags-cmd.js.map +1 -0
- package/ts/esm/cli/setup-deno-json-cmd.d.ts +3 -0
- package/ts/esm/cli/setup-deno-json-cmd.d.ts.map +1 -0
- package/ts/esm/cli/setup-deno-json-cmd.js +41 -0
- package/ts/esm/cli/setup-deno-json-cmd.js.map +1 -0
- package/ts/esm/cli/utils.d.ts +6 -0
- package/ts/esm/cli/utils.d.ts.map +1 -0
- package/ts/esm/cli/utils.js +54 -0
- package/ts/esm/cli/utils.js.map +1 -0
- package/ts/esm/version.d.ts.map +1 -1
- package/ts/esm/version.js +1 -1
- package/ts/esm/version.js.map +1 -1
- package/tsconfig.json +25 -0
|
@@ -1,97 +1,7 @@
|
|
|
1
|
-
import * as ts from "typescript";
|
|
2
1
|
import { command, option, restPositionals, string } from "cmd-ts";
|
|
3
|
-
import * as path from "node:path";
|
|
4
2
|
import * as fs from "node:fs";
|
|
5
3
|
import * as process from "node:process";
|
|
6
|
-
import {
|
|
7
|
-
function createCompilerHost(options, version) {
|
|
8
|
-
const host = ts.createCompilerHost(options);
|
|
9
|
-
const myGetSourceFile = host.getSourceFile;
|
|
10
|
-
host.getSourceFile = (fileName, languageVersion, onError, shouldCreateNewSourceFile) => {
|
|
11
|
-
const sourceFile = myGetSourceFile(fileName, languageVersion, onError, shouldCreateNewSourceFile);
|
|
12
|
-
if (!sourceFile) {
|
|
13
|
-
throw new Error("getSourceFile is not defined");
|
|
14
|
-
}
|
|
15
|
-
if (fileName.endsWith("version.ts") && sourceFile) {
|
|
16
|
-
const newText = `export const VERSION: string = "${version}";`;
|
|
17
|
-
return ts.createSourceFile(fileName, newText, languageVersion);
|
|
18
|
-
}
|
|
19
|
-
return sourceFile;
|
|
20
|
-
};
|
|
21
|
-
return host;
|
|
22
|
-
}
|
|
23
|
-
function readTSConfig(configPath = "./tsconfig.json") {
|
|
24
|
-
const configFile = ts.readConfigFile(configPath, ts.sys.readFile);
|
|
25
|
-
if (configFile.error) {
|
|
26
|
-
throw new Error(`Error reading tsconfig: ${configFile.error.messageText}`);
|
|
27
|
-
}
|
|
28
|
-
const parsedConfig = ts.parseJsonConfigFileContent(configFile.config, ts.sys, path.dirname(configPath), undefined, configPath);
|
|
29
|
-
if (parsedConfig.errors.length > 0) {
|
|
30
|
-
const errors = parsedConfig.errors.map((err) => err.messageText).join("\n");
|
|
31
|
-
throw new Error(`Error parsing tsconfig: ${errors}`);
|
|
32
|
-
}
|
|
33
|
-
return parsedConfig.options;
|
|
34
|
-
}
|
|
35
|
-
function versionFromPackageJson() {
|
|
36
|
-
const packageJson = JSON.parse(fs.readFileSync("package.json").toString());
|
|
37
|
-
return packageJson.version;
|
|
38
|
-
}
|
|
39
|
-
const versionArgs = {
|
|
40
|
-
version: option({
|
|
41
|
-
long: "version",
|
|
42
|
-
short: "v",
|
|
43
|
-
defaultValue: () => getVersion(),
|
|
44
|
-
defaultValueIsSerializable: true,
|
|
45
|
-
type: string,
|
|
46
|
-
description: "Version to patch in, defaults to reading from package.json.",
|
|
47
|
-
}),
|
|
48
|
-
versionFile: option({
|
|
49
|
-
long: "versionFile",
|
|
50
|
-
short: "f",
|
|
51
|
-
defaultValue: () => "src/version.ts",
|
|
52
|
-
defaultValueIsSerializable: true,
|
|
53
|
-
type: string,
|
|
54
|
-
description: "Path to the file containing the version, defaults to './src/version.ts'.",
|
|
55
|
-
}),
|
|
56
|
-
tsconfig: option({
|
|
57
|
-
long: "tsconfig",
|
|
58
|
-
short: "t",
|
|
59
|
-
defaultValue: () => "tsconfig.json",
|
|
60
|
-
defaultValueIsSerializable: true,
|
|
61
|
-
type: string,
|
|
62
|
-
description: "Path to the tsconfig.json file, defaults to './tsconfig.json'.",
|
|
63
|
-
}),
|
|
64
|
-
};
|
|
65
|
-
export function generateVersionTsCmd() {
|
|
66
|
-
return command({
|
|
67
|
-
name: "fireproof build cli",
|
|
68
|
-
description: "helps to build fp",
|
|
69
|
-
version: "1.0.0",
|
|
70
|
-
args: versionArgs,
|
|
71
|
-
handler: (args) => {
|
|
72
|
-
const options = readTSConfig(args.tsconfig);
|
|
73
|
-
const host = createCompilerHost(options, args.version);
|
|
74
|
-
const program = ts.createProgram([args.versionFile], options, host);
|
|
75
|
-
program.emit();
|
|
76
|
-
},
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
function getVersion(iversion) {
|
|
80
|
-
const ghref = iversion || process.env.GITHUB_REF || versionFromPackageJson() || "a/v0.0.0-smoke";
|
|
81
|
-
let lastPart = ghref.split("/").slice(-1)[0];
|
|
82
|
-
if (iversion) {
|
|
83
|
-
return iversion.replace(/^[vdsp]/, "");
|
|
84
|
-
}
|
|
85
|
-
const short = $.sync `git rev-parse --short HEAD`.stdout.trim();
|
|
86
|
-
if (process.env.GITHUB_REF) {
|
|
87
|
-
lastPart = lastPart.replace(/^[vdsp]/, "");
|
|
88
|
-
if (lastPart.match(/^\d+\.\d+\.\d+/)) {
|
|
89
|
-
return lastPart;
|
|
90
|
-
}
|
|
91
|
-
return `0.0.0-dev-ci-${short}`;
|
|
92
|
-
}
|
|
93
|
-
return `0.0.0-dev-local-${Date.now()}`;
|
|
94
|
-
}
|
|
4
|
+
import { getVersion } from "./utils.js";
|
|
95
5
|
export function patchVersionCmd() {
|
|
96
6
|
return command({
|
|
97
7
|
name: "patch-version",
|
|
@@ -123,133 +33,4 @@ export function patchVersionCmd() {
|
|
|
123
33
|
},
|
|
124
34
|
});
|
|
125
35
|
}
|
|
126
|
-
function setupDenoJson(packageJsonFile, jsrJsonFile) {
|
|
127
|
-
const packageJson = JSON.parse(fs.readFileSync(packageJsonFile).toString());
|
|
128
|
-
const jsrJson = JSON.parse(fs.readFileSync(jsrJsonFile).toString());
|
|
129
|
-
const jsrJsonImports = Object.fromEntries(Object.entries(jsrJson.exports ?? {}).map(([k, v]) => [path.join(jsrJson.name, k), v]));
|
|
130
|
-
const nodeJsonImports = Object.fromEntries(Array.from(Object.entries(packageJson.dependencies ?? {})).map(([k, v]) => [k, `npm:${k}@${v.replace(/^npm:/, "")}`]));
|
|
131
|
-
jsrJson.imports = { ...jsrJson.imports, ...jsrJsonImports, ...nodeJsonImports };
|
|
132
|
-
fs.writeFileSync(jsrJsonFile, JSON.stringify(jsrJson, undefined, 2) + "\n");
|
|
133
|
-
}
|
|
134
|
-
export function setUpDenoJsonCmd() {
|
|
135
|
-
return command({
|
|
136
|
-
name: "setup-deno-json",
|
|
137
|
-
description: "setup deno.json",
|
|
138
|
-
version: "1.0.0",
|
|
139
|
-
args: {
|
|
140
|
-
packageJson: option({
|
|
141
|
-
long: "packageJson",
|
|
142
|
-
short: "p",
|
|
143
|
-
defaultValue: () => "package.json",
|
|
144
|
-
defaultValueIsSerializable: true,
|
|
145
|
-
type: string,
|
|
146
|
-
description: "Path to the package.json file, defaults to './package.json'.",
|
|
147
|
-
}),
|
|
148
|
-
jsrJson: option({
|
|
149
|
-
long: "jsrJson",
|
|
150
|
-
short: "j",
|
|
151
|
-
defaultValue: () => "deno.json",
|
|
152
|
-
defaultValueIsSerializable: true,
|
|
153
|
-
type: string,
|
|
154
|
-
description: "Path to the deno.json file, defaults to './deno.json'.",
|
|
155
|
-
}),
|
|
156
|
-
},
|
|
157
|
-
handler: (args) => {
|
|
158
|
-
console.log(`Setup deno.json ${args.jsrJson} from ${args.packageJson}`);
|
|
159
|
-
setupDenoJson(args.packageJson, args.jsrJson);
|
|
160
|
-
},
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
export async function preparePubdir(pubdir, version, baseDir, srcDir) {
|
|
164
|
-
$.verbose = true;
|
|
165
|
-
if (process.env.IN_CI !== "in_ci") {
|
|
166
|
-
await $ `pnpm run build`;
|
|
167
|
-
}
|
|
168
|
-
await $ `rm -rf ${pubdir}`;
|
|
169
|
-
await $ `mkdir -p ${pubdir}`;
|
|
170
|
-
await $ `cp -pr ${path.join(baseDir, ".gitignore")} ${path.join(baseDir, "README.md")} ${path.join(baseDir, "LICENSE")} ./dist/ts/ ${pubdir}/`;
|
|
171
|
-
cd("dist/pkg");
|
|
172
|
-
await $ `cp -pr . ../../${pubdir}/`;
|
|
173
|
-
cd("../..");
|
|
174
|
-
cd(srcDir);
|
|
175
|
-
await $ `cp -pr . ../${pubdir}/${srcDir}/`;
|
|
176
|
-
cd("..");
|
|
177
|
-
const jsFiles = await glob(`${pubdir}/cjs/**/*.js`);
|
|
178
|
-
for (const file of jsFiles) {
|
|
179
|
-
const newFile = file.replace(/\.js$/, ".cjs");
|
|
180
|
-
await $ `mv ${file} ${newFile}`;
|
|
181
|
-
}
|
|
182
|
-
const mapFiles = await glob(`${pubdir}/cjs/**/*.js.map`);
|
|
183
|
-
for (const file of mapFiles) {
|
|
184
|
-
const newFile = file.replace(/\.js\.map$/, ".cjs.map");
|
|
185
|
-
await $ `mv ${file} ${newFile}`;
|
|
186
|
-
}
|
|
187
|
-
const cjsFiles = await glob(`${pubdir}/cjs/**/*.cjs`);
|
|
188
|
-
if (cjsFiles.length > 0) {
|
|
189
|
-
await $ `pnpm exec jscodeshift --parser=babel -t=./to-cjs.js ${cjsFiles}`;
|
|
190
|
-
}
|
|
191
|
-
await $ `cp package.json ${pubdir}/`;
|
|
192
|
-
cd(`${pubdir}/${srcDir}`);
|
|
193
|
-
await $ `rm -f test/test-exit-handler.* ./utils/stream-test-helper.ts`.catch(() => {
|
|
194
|
-
});
|
|
195
|
-
cd("../..");
|
|
196
|
-
const screenshotDirs = await glob(`${pubdir}/${srcDir}/**/__screenshots__`);
|
|
197
|
-
for (const dir of screenshotDirs) {
|
|
198
|
-
await $ `rm -rf ${dir}`;
|
|
199
|
-
}
|
|
200
|
-
const testFiles = await glob(`${pubdir}/${srcDir}/**/*.test.ts`);
|
|
201
|
-
for (const file of testFiles) {
|
|
202
|
-
await $ `rm -f ${file}`;
|
|
203
|
-
}
|
|
204
|
-
await $ `cp ./deno.json ./${pubdir}/`;
|
|
205
|
-
await patchVersionCmd().handler({ version, files: [`${pubdir}/package.json`, `${pubdir}/deno.json`] });
|
|
206
|
-
await setUpDenoJsonCmd().handler({ packageJson: `${pubdir}/package.json`, jsrJson: `${pubdir}/deno.json` });
|
|
207
|
-
cd("pubdir");
|
|
208
|
-
await $ `pnpm pack`;
|
|
209
|
-
await $ `deno publish --dry-run --unstable-sloppy-imports --allow-dirty`;
|
|
210
|
-
}
|
|
211
|
-
export function preparePubdirCmd() {
|
|
212
|
-
return command({
|
|
213
|
-
name: "prepare-pubdir",
|
|
214
|
-
description: "prepare pubdir",
|
|
215
|
-
version: "1.0.0",
|
|
216
|
-
args: {
|
|
217
|
-
pubdir: option({
|
|
218
|
-
long: "pubdir",
|
|
219
|
-
short: "p",
|
|
220
|
-
defaultValue: () => "pubdir",
|
|
221
|
-
defaultValueIsSerializable: true,
|
|
222
|
-
type: string,
|
|
223
|
-
description: "Path to the pubdir, defaults to './pubdir'.",
|
|
224
|
-
}),
|
|
225
|
-
srcDir: option({
|
|
226
|
-
long: "srcDir",
|
|
227
|
-
short: "s",
|
|
228
|
-
defaultValue: () => "src",
|
|
229
|
-
defaultValueIsSerializable: true,
|
|
230
|
-
type: string,
|
|
231
|
-
description: "Path to the src directory, defaults to './src'.",
|
|
232
|
-
}),
|
|
233
|
-
baseDir: option({
|
|
234
|
-
long: "baseDir",
|
|
235
|
-
short: "b",
|
|
236
|
-
defaultValue: () => "../",
|
|
237
|
-
defaultValueIsSerializable: true,
|
|
238
|
-
type: string,
|
|
239
|
-
description: "Path to the base directory of the project, defaults to '../'.",
|
|
240
|
-
}),
|
|
241
|
-
version: option({
|
|
242
|
-
long: "version",
|
|
243
|
-
short: "v",
|
|
244
|
-
defaultValue: () => getVersion(),
|
|
245
|
-
defaultValueIsSerializable: true,
|
|
246
|
-
type: string,
|
|
247
|
-
description: "Version to patch in, defaults to reading from package.json.",
|
|
248
|
-
}),
|
|
249
|
-
},
|
|
250
|
-
handler: async (args) => {
|
|
251
|
-
await preparePubdir(args.pubdir, args.version, args.baseDir, args.srcDir);
|
|
252
|
-
},
|
|
253
|
-
});
|
|
254
|
-
}
|
|
255
36
|
//# sourceMappingURL=patch-version-cmd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patch-version-cmd.js","sourceRoot":"","sources":["../../../../src/cli/patch-version-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"patch-version-cmd.js","sourceRoot":"","sources":["../../../../src/cli/patch-version-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAClE,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,UAAU,eAAe,GAA+B;IAC5D,OAAO,OAAO,CAAC;QACb,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,6CAA6C;QAC1D,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE;YACJ,OAAO,EAAE,MAAM,CAAC;gBACd,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,GAAG;gBACV,YAAY,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;gBAChC,0BAA0B,EAAE,IAAI;gBAChC,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,wEAAwE;aACtF,CAAC;YACF,KAAK,EAAE,eAAe,CAAC;gBACrB,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,kBAAkB;gBAC/B,WAAW,EAAE,+BAA+B;aAC7C,CAAC;SACH;QACD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzC,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAErC,OAAO,CAAC,GAAG,CAAC,SAAS,WAAW,eAAe,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC;gBACrF,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAwB,CAAC;gBAC/F,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC;gBAC9B,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YAClF,CAAC;QAAA,CACF;KACF,CAA+B,CAAC;AAAA,CAClC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { command } from "cmd-ts";
|
|
2
|
+
export declare function preparePubdir(pubdir: string, version: string, baseDir: string, srcDir: string): Promise<void>;
|
|
3
|
+
export declare function preparePubdirCmd(): ReturnType<typeof command>;
|
|
4
|
+
//# sourceMappingURL=prepare-pubdir-cmd.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepare-pubdir-cmd.d.ts","sourceRoot":"","sources":["../../../../src/cli/prepare-pubdir-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAkB,MAAM,QAAQ,CAAC;AAgBjD,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA8FnH;AAED,wBAAgB,gBAAgB,IAAI,UAAU,CAAC,OAAO,OAAO,CAAC,CA2C7D"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { command, option, string } from "cmd-ts";
|
|
2
|
+
import * as path from "node:path";
|
|
3
|
+
import * as process from "node:process";
|
|
4
|
+
import { $, cd, glob } from "zx";
|
|
5
|
+
import { getVersion } from "./utils.js";
|
|
6
|
+
import { setUpDenoJsonCmd } from "./setup-deno-json-cmd.js";
|
|
7
|
+
import { patchVersionCmd } from "./patch-version-cmd.js";
|
|
8
|
+
function disableVerbose(fn) {
|
|
9
|
+
const verbose = $.verbose;
|
|
10
|
+
$.verbose = false;
|
|
11
|
+
return fn().finally(() => {
|
|
12
|
+
$.verbose = verbose;
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
export async function preparePubdir(pubdir, version, baseDir, srcDir) {
|
|
16
|
+
$.verbose = true;
|
|
17
|
+
if (process.env.IN_CI !== "in_ci") {
|
|
18
|
+
await $ `pnpm run build`;
|
|
19
|
+
}
|
|
20
|
+
await $ `rm -rf ${pubdir}`;
|
|
21
|
+
await $ `mkdir -p ${pubdir}`;
|
|
22
|
+
await $ `cp -pr ${path.join(baseDir, ".gitignore")} ${path.join(baseDir, "README.md")} ${path.join(baseDir, "LICENSE")} ./dist/ts/ ${pubdir}/`;
|
|
23
|
+
cd("dist/pkg");
|
|
24
|
+
await $ `cp -pr . ../../${pubdir}/`;
|
|
25
|
+
cd("../..");
|
|
26
|
+
cd(srcDir);
|
|
27
|
+
await $ `cp -pr . ../${pubdir}/${srcDir}/`;
|
|
28
|
+
cd("..");
|
|
29
|
+
const jsFiles = await glob(`${pubdir}/cjs/**/*.js`);
|
|
30
|
+
await disableVerbose(async () => {
|
|
31
|
+
for (const file of jsFiles) {
|
|
32
|
+
const newFile = file.replace(/\.js$/, ".cjs");
|
|
33
|
+
await $ `mv ${file} ${newFile}`;
|
|
34
|
+
}
|
|
35
|
+
const mapFiles = await glob(`${pubdir}/cjs/**/*.js.map`);
|
|
36
|
+
for (const file of mapFiles) {
|
|
37
|
+
const newFile = file.replace(/\.js\.map$/, ".cjs.map");
|
|
38
|
+
await $ `mv ${file} ${newFile}`;
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
const cjsFiles = await glob(`${pubdir}/cjs/**/*.cjs`);
|
|
42
|
+
if (cjsFiles.length > 0) {
|
|
43
|
+
await $ `pnpm exec jscodeshift -s --parser=babel -t=./to-cjs.js ${cjsFiles}`;
|
|
44
|
+
}
|
|
45
|
+
await $ `cp package.json ${pubdir}/`;
|
|
46
|
+
cd(`${pubdir}/${srcDir}`);
|
|
47
|
+
await $ `rm -f test/test-exit-handler.* ./utils/stream-test-helper.ts`.catch(() => {
|
|
48
|
+
});
|
|
49
|
+
cd("../..");
|
|
50
|
+
const screenshotDirs = await glob(`${pubdir}/${srcDir}/**/__screenshots__`);
|
|
51
|
+
for (const dir of screenshotDirs) {
|
|
52
|
+
await $ `rm -rf ${dir}`;
|
|
53
|
+
}
|
|
54
|
+
await disableVerbose(async () => {
|
|
55
|
+
const testFiles = await glob(`${pubdir}/${srcDir}/**/*.test.ts`);
|
|
56
|
+
for (const file of testFiles) {
|
|
57
|
+
await $ `rm -f ${file}`;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
await $ `cp ./tsconfig.json ./${pubdir}/`;
|
|
61
|
+
await $ `cp ./deno.json ./${pubdir}/`;
|
|
62
|
+
await patchVersionCmd().handler({ version, files: [`${pubdir}/package.json`, `${pubdir}/deno.json`] });
|
|
63
|
+
await setUpDenoJsonCmd().handler({ packageJson: `${pubdir}/package.json`, jsrJson: `${pubdir}/deno.json` });
|
|
64
|
+
cd("pubdir");
|
|
65
|
+
await $ `pnpm pack 2>&1 | head -10 && echo "..."`;
|
|
66
|
+
await $ `deno publish --dry-run --unstable-sloppy-imports --allow-dirty --quiet`;
|
|
67
|
+
console.log(`Prepared ${pubdir} for version ${version}`);
|
|
68
|
+
}
|
|
69
|
+
export function preparePubdirCmd() {
|
|
70
|
+
return command({
|
|
71
|
+
name: "prepare-pubdir",
|
|
72
|
+
description: "prepare pubdir",
|
|
73
|
+
version: "1.0.0",
|
|
74
|
+
args: {
|
|
75
|
+
pubdir: option({
|
|
76
|
+
long: "pubdir",
|
|
77
|
+
short: "p",
|
|
78
|
+
defaultValue: () => "pubdir",
|
|
79
|
+
defaultValueIsSerializable: true,
|
|
80
|
+
type: string,
|
|
81
|
+
description: "Path to the pubdir, defaults to './pubdir'.",
|
|
82
|
+
}),
|
|
83
|
+
srcDir: option({
|
|
84
|
+
long: "srcDir",
|
|
85
|
+
short: "s",
|
|
86
|
+
defaultValue: () => "src",
|
|
87
|
+
defaultValueIsSerializable: true,
|
|
88
|
+
type: string,
|
|
89
|
+
description: "Path to the src directory, defaults to './src'.",
|
|
90
|
+
}),
|
|
91
|
+
baseDir: option({
|
|
92
|
+
long: "baseDir",
|
|
93
|
+
short: "b",
|
|
94
|
+
defaultValue: () => "../",
|
|
95
|
+
defaultValueIsSerializable: true,
|
|
96
|
+
type: string,
|
|
97
|
+
description: "Path to the base directory of the project, defaults to '../'.",
|
|
98
|
+
}),
|
|
99
|
+
version: option({
|
|
100
|
+
long: "version",
|
|
101
|
+
short: "v",
|
|
102
|
+
defaultValue: () => getVersion(),
|
|
103
|
+
defaultValueIsSerializable: true,
|
|
104
|
+
type: string,
|
|
105
|
+
description: "Version to patch in, defaults to reading from package.json.",
|
|
106
|
+
}),
|
|
107
|
+
},
|
|
108
|
+
handler: async (args) => {
|
|
109
|
+
await preparePubdir(args.pubdir, args.version, args.baseDir, args.srcDir);
|
|
110
|
+
},
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=prepare-pubdir-cmd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepare-pubdir-cmd.js","sourceRoot":"","sources":["../../../../src/cli/prepare-pubdir-cmd.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish-tags-cmd.d.ts","sourceRoot":"","sources":["../../../../src/cli/publish-tags-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAkB,MAAM,QAAQ,CAAC;AA4BjD,wBAAgB,cAAc,IAAI,UAAU,CAAC,OAAO,OAAO,CAAC,CAwC3D"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { command, option, string } from "cmd-ts";
|
|
2
|
+
import * as process from "node:process";
|
|
3
|
+
import { SemVer } from "semver";
|
|
4
|
+
import { versionFromPackageJson } from "./utils.js";
|
|
5
|
+
const reVersionAlphaStart = /^[a-z](\d+\.\d+\.\d+.*)$/;
|
|
6
|
+
const reScopedVersion = /^[^@]+@(.*)$/;
|
|
7
|
+
const reEndVersion = /.*\/([^/]+)$/;
|
|
8
|
+
function getEnvVersion(version, xenv = process.env) {
|
|
9
|
+
let wversion = version || xenv.GITHUB_REF || versionFromPackageJson();
|
|
10
|
+
if (reEndVersion.test(wversion)) {
|
|
11
|
+
wversion = wversion.match(reEndVersion)[1];
|
|
12
|
+
}
|
|
13
|
+
const calculatedVersion = wversion.replace(reScopedVersion, "$1").replace(reVersionAlphaStart, "$1");
|
|
14
|
+
try {
|
|
15
|
+
new SemVer(calculatedVersion);
|
|
16
|
+
return calculatedVersion;
|
|
17
|
+
}
|
|
18
|
+
catch (e) {
|
|
19
|
+
return versionFromPackageJson();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export function publishTagsCmd() {
|
|
23
|
+
return command({
|
|
24
|
+
name: "publish-tags",
|
|
25
|
+
description: "Calculate npm publish tags based on version",
|
|
26
|
+
version: "1.0.0",
|
|
27
|
+
args: {
|
|
28
|
+
releaseVersion: option({
|
|
29
|
+
long: "release-version",
|
|
30
|
+
short: "r",
|
|
31
|
+
defaultValue: () => undefined,
|
|
32
|
+
defaultValueIsSerializable: true,
|
|
33
|
+
type: string,
|
|
34
|
+
description: "Version string to analyze, defaults to GITHUB_REF or package.json version.",
|
|
35
|
+
}),
|
|
36
|
+
},
|
|
37
|
+
handler: (args) => {
|
|
38
|
+
const calculatedVersion = getEnvVersion(args.releaseVersion);
|
|
39
|
+
const tags = [];
|
|
40
|
+
try {
|
|
41
|
+
const semVer = new SemVer(calculatedVersion);
|
|
42
|
+
if (semVer.prerelease.length > 0) {
|
|
43
|
+
const lastIdentifier = semVer.prerelease[semVer.prerelease.length - 1];
|
|
44
|
+
if (typeof lastIdentifier === "string") {
|
|
45
|
+
tags.push("dev");
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
catch (e) {
|
|
50
|
+
console.warn(`Warn parsing version ${calculatedVersion}:`, e);
|
|
51
|
+
}
|
|
52
|
+
if (tags.length > 0) {
|
|
53
|
+
console.log(tags.map((tag) => `--tag ${tag}`).join(" "));
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=publish-tags-cmd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish-tags-cmd.js","sourceRoot":"","sources":["../../../../src/cli/publish-tags-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACjD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGpD,MAAM,mBAAmB,GAAG,0BAA0B,CAAC;AAEvD,MAAM,eAAe,GAAG,cAAc,CAAC;AACvC,MAAM,YAAY,GAAG,cAAc,CAAC;AAEpC,SAAS,aAAa,CAAC,OAAgB,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,EAAU;IACnE,IAAI,QAAQ,GAAG,OAAO,IAAI,IAAI,CAAC,UAAU,IAAI,sBAAsB,EAAE,CAAC;IACtE,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAEhC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;IACrG,IAAI,CAAC;QAEH,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAC9B,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QAEX,OAAO,sBAAsB,EAAE,CAAC;IAClC,CAAC;AAAA,CACF;AAED,MAAM,UAAU,cAAc,GAA+B;IAC3D,OAAO,OAAO,CAAC;QACb,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,6CAA6C;QAC1D,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE;YACJ,cAAc,EAAE,MAAM,CAAC;gBACrB,IAAI,EAAE,iBAAiB;gBACvB,KAAK,EAAE,GAAG;gBACV,YAAY,EAAE,GAAG,EAAE,CAAC,SAAS;gBAC7B,0BAA0B,EAAE,IAAI;gBAChC,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,4EAA4E;aAC1F,CAAC;SACH;QACD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;YACjB,MAAM,iBAAiB,GAAG,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC7D,MAAM,IAAI,GAAa,EAAE,CAAC;YAE1B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC;gBAE7C,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACjC,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACvE,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;wBACvC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACnB,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBAEX,OAAO,CAAC,IAAI,CAAC,wBAAwB,iBAAiB,GAAG,EAAE,CAAC,CAAC,CAAC;YAChE,CAAC;YAGD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAEpB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3D,CAAC;QAAA,CACF;KACF,CAA+B,CAAC;AAAA,CAClC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-deno-json-cmd.d.ts","sourceRoot":"","sources":["../../../../src/cli/setup-deno-json-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAkB,MAAM,QAAQ,CAAC;AAqBjD,wBAAgB,gBAAgB,IAAI,UAAU,CAAC,OAAO,OAAO,CAAC,CA6B7D"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { command, option, string } from "cmd-ts";
|
|
2
|
+
import * as path from "node:path";
|
|
3
|
+
import * as fs from "node:fs";
|
|
4
|
+
function setupDenoJson(packageJsonFile, jsrJsonFile) {
|
|
5
|
+
const packageJson = JSON.parse(fs.readFileSync(packageJsonFile).toString());
|
|
6
|
+
const jsrJson = JSON.parse(fs.readFileSync(jsrJsonFile).toString());
|
|
7
|
+
const jsrJsonImports = Object.fromEntries(Object.entries(jsrJson.exports ?? {}).map(([k, v]) => [path.join(jsrJson.name, k), v]));
|
|
8
|
+
const nodeJsonImports = Object.fromEntries(Array.from(Object.entries(packageJson.dependencies ?? {})).map(([k, v]) => [k, `npm:${k}@${v.replace(/^npm:/, "")}`]));
|
|
9
|
+
jsrJson.imports = { ...jsrJson.imports, ...jsrJsonImports, ...nodeJsonImports };
|
|
10
|
+
fs.writeFileSync(jsrJsonFile, JSON.stringify(jsrJson, undefined, 2) + "\n");
|
|
11
|
+
}
|
|
12
|
+
export function setUpDenoJsonCmd() {
|
|
13
|
+
return command({
|
|
14
|
+
name: "setup-deno-json",
|
|
15
|
+
description: "setup deno.json",
|
|
16
|
+
version: "1.0.0",
|
|
17
|
+
args: {
|
|
18
|
+
packageJson: option({
|
|
19
|
+
long: "packageJson",
|
|
20
|
+
short: "p",
|
|
21
|
+
defaultValue: () => "package.json",
|
|
22
|
+
defaultValueIsSerializable: true,
|
|
23
|
+
type: string,
|
|
24
|
+
description: "Path to the package.json file, defaults to './package.json'.",
|
|
25
|
+
}),
|
|
26
|
+
jsrJson: option({
|
|
27
|
+
long: "jsrJson",
|
|
28
|
+
short: "j",
|
|
29
|
+
defaultValue: () => "deno.json",
|
|
30
|
+
defaultValueIsSerializable: true,
|
|
31
|
+
type: string,
|
|
32
|
+
description: "Path to the deno.json file, defaults to './deno.json'.",
|
|
33
|
+
}),
|
|
34
|
+
},
|
|
35
|
+
handler: (args) => {
|
|
36
|
+
console.log(`Setup deno.json ${args.jsrJson} from ${args.packageJson}`);
|
|
37
|
+
setupDenoJson(args.packageJson, args.jsrJson);
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=setup-deno-json-cmd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-deno-json-cmd.js","sourceRoot":"","sources":["../../../../src/cli/setup-deno-json-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACjD,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAG9B,SAAS,aAAa,CAAC,eAAuB,EAAE,WAAmB,EAAQ;IACzE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAA6C,CAAC;IACxH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAIjE,CAAC;IAEF,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAClI,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,CACxC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CACtH,CAAC;IACF,OAAO,CAAC,OAAO,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,cAAc,EAAE,GAAG,eAAe,EAAE,CAAC;IAChF,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAAA,CAC7E;AAED,MAAM,UAAU,gBAAgB,GAA+B;IAC7D,OAAO,OAAO,CAAC;QACb,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,iBAAiB;QAC9B,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE;YACJ,WAAW,EAAE,MAAM,CAAC;gBAClB,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE,GAAG;gBACV,YAAY,EAAE,GAAG,EAAE,CAAC,cAAc;gBAClC,0BAA0B,EAAE,IAAI;gBAChC,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,8DAA8D;aAC5E,CAAC;YACF,OAAO,EAAE,MAAM,CAAC;gBACd,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,GAAG;gBACV,YAAY,EAAE,GAAG,EAAE,CAAC,WAAW;gBAC/B,0BAA0B,EAAE,IAAI;gBAChC,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,wDAAwD;aACtE,CAAC;SACH;QACD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;YAEjB,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,OAAO,SAAS,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YACxE,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAAA,CAC/C;KACF,CAA+B,CAAC;AAAA,CAClC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as ts from "typescript";
|
|
2
|
+
export declare function createCompilerHost(options: ts.CompilerOptions, version: string): ts.CompilerHost;
|
|
3
|
+
export declare function readTSConfig(configPath?: string): ts.CompilerOptions;
|
|
4
|
+
export declare function versionFromPackageJson(): string;
|
|
5
|
+
export declare function getVersion(iversion?: string): string;
|
|
6
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/cli/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAOjC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,EAAE,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,EAAE,CAAC,YAAY,CAoBhG;AAED,wBAAgB,YAAY,CAAC,UAAU,SAAoB,GAAG,EAAE,CAAC,eAAe,CAkB/E;AAED,wBAAgB,sBAAsB,IAAI,MAAM,CAG/C;AAED,wBAAgB,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAepD"}
|
package/esm/cli/utils.js
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import * as ts from "typescript";
|
|
2
|
+
import * as path from "node:path";
|
|
3
|
+
import * as fs from "node:fs";
|
|
4
|
+
import * as process from "node:process";
|
|
5
|
+
import { $ } from "zx";
|
|
6
|
+
export function createCompilerHost(options, version) {
|
|
7
|
+
const host = ts.createCompilerHost(options);
|
|
8
|
+
const myGetSourceFile = host.getSourceFile;
|
|
9
|
+
host.getSourceFile = (fileName, languageVersion, onError, shouldCreateNewSourceFile) => {
|
|
10
|
+
const sourceFile = myGetSourceFile(fileName, languageVersion, onError, shouldCreateNewSourceFile);
|
|
11
|
+
if (!sourceFile) {
|
|
12
|
+
throw new Error("getSourceFile is not defined");
|
|
13
|
+
}
|
|
14
|
+
if (fileName.endsWith("version.ts") && sourceFile) {
|
|
15
|
+
const newText = `export const VERSION: string = "${version}";`;
|
|
16
|
+
return ts.createSourceFile(fileName, newText, languageVersion);
|
|
17
|
+
}
|
|
18
|
+
return sourceFile;
|
|
19
|
+
};
|
|
20
|
+
return host;
|
|
21
|
+
}
|
|
22
|
+
export function readTSConfig(configPath = "./tsconfig.json") {
|
|
23
|
+
const configFile = ts.readConfigFile(configPath, ts.sys.readFile);
|
|
24
|
+
if (configFile.error) {
|
|
25
|
+
throw new Error(`Error reading tsconfig: ${configFile.error.messageText}`);
|
|
26
|
+
}
|
|
27
|
+
const parsedConfig = ts.parseJsonConfigFileContent(configFile.config, ts.sys, path.dirname(configPath), undefined, configPath);
|
|
28
|
+
if (parsedConfig.errors.length > 0) {
|
|
29
|
+
const errors = parsedConfig.errors.map((err) => err.messageText).join("\n");
|
|
30
|
+
throw new Error(`Error parsing tsconfig: ${errors}`);
|
|
31
|
+
}
|
|
32
|
+
return parsedConfig.options;
|
|
33
|
+
}
|
|
34
|
+
export function versionFromPackageJson() {
|
|
35
|
+
const packageJson = JSON.parse(fs.readFileSync("package.json").toString());
|
|
36
|
+
return packageJson.version;
|
|
37
|
+
}
|
|
38
|
+
export function getVersion(iversion) {
|
|
39
|
+
const ghref = iversion || process.env.GITHUB_REF || versionFromPackageJson() || "a/v0.0.0-smoke";
|
|
40
|
+
let lastPart = ghref.split("/").slice(-1)[0];
|
|
41
|
+
if (iversion) {
|
|
42
|
+
return iversion.replace(/^[vdsp]/, "");
|
|
43
|
+
}
|
|
44
|
+
const short = $.sync `git rev-parse --short HEAD`.stdout.trim();
|
|
45
|
+
if (process.env.GITHUB_REF) {
|
|
46
|
+
lastPart = lastPart.replace(/^[vdsp]/, "");
|
|
47
|
+
if (lastPart.match(/^\d+\.\d+\.\d+/)) {
|
|
48
|
+
return lastPart;
|
|
49
|
+
}
|
|
50
|
+
return `0.0.0-dev-ci-${short}`;
|
|
51
|
+
}
|
|
52
|
+
return `0.0.0-dev-local-${Date.now()}`;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/cli/utils.ts"],"names":[],"mappings":"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"}
|
package/esm/version.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,EAAE,MAAqB,CAAC"}
|
package/esm/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = "0.4.
|
|
1
|
+
export const VERSION = "0.4.52-pre";
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/esm/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAW,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAW,YAAY,CAAC"}
|