@positron-js/cli 1.0.3
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/LICENSE +201 -0
- package/README.md +3 -0
- package/build-android.config.js +30 -0
- package/build-android.jsx +86 -0
- package/build-ios.config.js +27 -0
- package/build-ios.jsx +108 -0
- package/content/app/PositronApp/App.xaml +14 -0
- package/content/app/PositronApp/App.xaml.cs +42 -0
- package/content/app/PositronApp/MauiProgram.cs +35 -0
- package/content/app/PositronApp/Platforms/Android/AndroidManifest.xml +17 -0
- package/content/app/PositronApp/Platforms/Android/MainActivity.cs +59 -0
- package/content/app/PositronApp/Platforms/Android/MainApplication.cs +15 -0
- package/content/app/PositronApp/Platforms/Android/Resources/values/colors.xml +6 -0
- package/content/app/PositronApp/Platforms/Android/Resources/values/string.xml +4 -0
- package/content/app/PositronApp/Platforms/MacCatalyst/AppDelegate.cs +9 -0
- package/content/app/PositronApp/Platforms/MacCatalyst/Info.plist +30 -0
- package/content/app/PositronApp/Platforms/MacCatalyst/Program.cs +15 -0
- package/content/app/PositronApp/Platforms/Tizen/Main.cs +16 -0
- package/content/app/PositronApp/Platforms/Tizen/tizen-manifest.xml +15 -0
- package/content/app/PositronApp/Platforms/Windows/App.xaml +8 -0
- package/content/app/PositronApp/Platforms/Windows/App.xaml.cs +24 -0
- package/content/app/PositronApp/Platforms/Windows/Package.appxmanifest +46 -0
- package/content/app/PositronApp/Platforms/Windows/app.manifest +15 -0
- package/content/app/PositronApp/Platforms/iOS/AppDelegate.cs +20 -0
- package/content/app/PositronApp/Platforms/iOS/Info.plist +34 -0
- package/content/app/PositronApp/Platforms/iOS/Program.cs +15 -0
- package/content/app/PositronApp/PositronApp.csproj +99 -0
- package/content/app/PositronApp/Properties/launchSettings.json +8 -0
- package/content/app/PositronApp/Resources/AppIcon/appicon.svg +42 -0
- package/content/app/PositronApp/Resources/AppIcon/appiconfg.svg +41 -0
- package/content/app/PositronApp/Resources/Fonts/OpenSans-Regular.ttf +0 -0
- package/content/app/PositronApp/Resources/Fonts/OpenSans-Semibold.ttf +0 -0
- package/content/app/PositronApp/Resources/Images/dotnet_bot.svg +8 -0
- package/content/app/PositronApp/Resources/Raw/AboutAssets.txt +15 -0
- package/content/app/PositronApp/Resources/Splash/splash.svg +41 -0
- package/content/app/PositronApp/Resources/Styles/Colors.xaml +44 -0
- package/content/app/PositronApp/Resources/Styles/Styles.xaml +384 -0
- package/content/app/PositronApp/appsettings.json +5 -0
- package/content/app/PositronApp/config/google-services.json +3 -0
- package/content/app/PositronApp.sln +39 -0
- package/dist/App.d.ts +3 -0
- package/dist/App.d.ts.map +1 -0
- package/dist/App.js +5 -0
- package/dist/App.js.map +1 -0
- package/dist/AppCommand.d.ts +3 -0
- package/dist/AppCommand.d.ts.map +1 -0
- package/dist/AppCommand.js +8 -0
- package/dist/AppCommand.js.map +1 -0
- package/dist/AppInfo.d.ts +5 -0
- package/dist/AppInfo.d.ts.map +1 -0
- package/dist/AppInfo.js +10 -0
- package/dist/AppInfo.js.map +1 -0
- package/dist/cli.d.ts +39 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +155 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/init/init.d.ts +2 -0
- package/dist/commands/init/init.d.ts.map +1 -0
- package/dist/commands/init/init.js +29 -0
- package/dist/commands/init/init.js.map +1 -0
- package/dist/commands/sync/sync.d.ts +2 -0
- package/dist/commands/sync/sync.d.ts.map +1 -0
- package/dist/commands/sync/sync.js +61 -0
- package/dist/commands/sync/sync.js.map +1 -0
- package/dist/core/LocalFile.d.ts +17 -0
- package/dist/core/LocalFile.d.ts.map +1 -0
- package/dist/core/LocalFile.js +42 -0
- package/dist/core/LocalFile.js.map +1 -0
- package/dist/cwd/cwd.d.ts +13 -0
- package/dist/cwd/cwd.d.ts.map +1 -0
- package/dist/cwd/cwd.js +84 -0
- package/dist/cwd/cwd.js.map +1 -0
- package/dist/schema/appConfig.d.ts +6 -0
- package/dist/schema/appConfig.d.ts.map +1 -0
- package/dist/schema/appConfig.js +6 -0
- package/dist/schema/appConfig.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/index.js +1 -0
- package/package.json +23 -0
- package/src/App.ts +4 -0
- package/src/AppCommand.ts +9 -0
- package/src/AppInfo.ts +12 -0
- package/src/cli.ts +202 -0
- package/src/commands/init/init.ts +40 -0
- package/src/commands/sync/sync.ts +83 -0
- package/src/core/LocalFile.ts +59 -0
- package/src/cwd/cwd.ts +102 -0
- package/src/schema/appConfig.ts +5 -0
- package/tsconfig.json +31 -0
package/dist/cli.js
ADDED
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import prompts from "prompts";
|
|
2
|
+
class Command {
|
|
3
|
+
constructor(name) {
|
|
4
|
+
this.cmd = { name: "", options: [], execute: () => { throw new Error("Execute not defined"); } };
|
|
5
|
+
this.cmd.name = name;
|
|
6
|
+
}
|
|
7
|
+
async executeCommand(options) {
|
|
8
|
+
const received = {};
|
|
9
|
+
for (const element of options) {
|
|
10
|
+
if (!element.startsWith("--")) {
|
|
11
|
+
continue;
|
|
12
|
+
}
|
|
13
|
+
let option = element.substring(2);
|
|
14
|
+
const index = option.indexOf("=");
|
|
15
|
+
let value = "";
|
|
16
|
+
if (index !== -1) {
|
|
17
|
+
value = option.substring(index + 1);
|
|
18
|
+
option = option.substring(0, index);
|
|
19
|
+
}
|
|
20
|
+
received[option] = value;
|
|
21
|
+
}
|
|
22
|
+
for (const element of this.cmd.options) {
|
|
23
|
+
let { option } = element;
|
|
24
|
+
if (option.startsWith("--")) {
|
|
25
|
+
option = option.substring(2);
|
|
26
|
+
}
|
|
27
|
+
if (received[option]) {
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
if (element.defaultValue) {
|
|
31
|
+
received[option] = element.defaultValue;
|
|
32
|
+
}
|
|
33
|
+
if (element.required) {
|
|
34
|
+
// prompt...
|
|
35
|
+
while (true) {
|
|
36
|
+
const text = await prompts({
|
|
37
|
+
message: element.prompt || element.option,
|
|
38
|
+
name: "value",
|
|
39
|
+
type: "text",
|
|
40
|
+
});
|
|
41
|
+
if (!text.value) {
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
received[option] = text.value;
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
await this.cmd.execute(this.cmd.name, received);
|
|
50
|
+
}
|
|
51
|
+
description(description) {
|
|
52
|
+
this.cmd.description = description;
|
|
53
|
+
return this;
|
|
54
|
+
}
|
|
55
|
+
execute(fx) {
|
|
56
|
+
this.cmd.execute = fx;
|
|
57
|
+
return this;
|
|
58
|
+
}
|
|
59
|
+
flag(option, description) {
|
|
60
|
+
this.cmd.options.push({
|
|
61
|
+
option,
|
|
62
|
+
description
|
|
63
|
+
});
|
|
64
|
+
return this;
|
|
65
|
+
}
|
|
66
|
+
prompt(option, prompt, defaultValue, description) {
|
|
67
|
+
this.cmd.options.push({
|
|
68
|
+
option,
|
|
69
|
+
prompt,
|
|
70
|
+
defaultValue,
|
|
71
|
+
description
|
|
72
|
+
});
|
|
73
|
+
return this;
|
|
74
|
+
}
|
|
75
|
+
requiredOption(option, prompt, description) {
|
|
76
|
+
this.cmd.options.push({
|
|
77
|
+
option,
|
|
78
|
+
prompt,
|
|
79
|
+
required: true,
|
|
80
|
+
description
|
|
81
|
+
});
|
|
82
|
+
return this;
|
|
83
|
+
}
|
|
84
|
+
toDetailedString() {
|
|
85
|
+
let options = this.cmd.options.length ? "\nOptions:" : "";
|
|
86
|
+
for (const i of this.cmd.options) {
|
|
87
|
+
let option = `\n\t--${i.option}`;
|
|
88
|
+
if (i.prompt) {
|
|
89
|
+
option += `=${i.prompt}\t\t${i.description ?? ""}`;
|
|
90
|
+
}
|
|
91
|
+
options += `${option}`;
|
|
92
|
+
}
|
|
93
|
+
if (this.cmd.description) {
|
|
94
|
+
return `${this.cmd.name}\n\t${this.cmd.description}${options}\t${this.cmd.description}\n\n`;
|
|
95
|
+
}
|
|
96
|
+
return `${this.cmd.name} ${options}\n\n`;
|
|
97
|
+
}
|
|
98
|
+
toString() {
|
|
99
|
+
return `${this.cmd.name} [options]`;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
export class CLI {
|
|
103
|
+
constructor() {
|
|
104
|
+
this.name = "CLI Name";
|
|
105
|
+
this.description = "CLI Description";
|
|
106
|
+
this.commands = [];
|
|
107
|
+
}
|
|
108
|
+
async execute(argv = process.argv) {
|
|
109
|
+
if (argv.length <= 2) {
|
|
110
|
+
for (const element of this.commands) {
|
|
111
|
+
console.log(element.toString());
|
|
112
|
+
}
|
|
113
|
+
process.exit(0);
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
try {
|
|
117
|
+
const [program, script, command, ...options] = argv;
|
|
118
|
+
if (/^help$/i.test(command)) {
|
|
119
|
+
if (options.length) {
|
|
120
|
+
const cmd = this.findCommand(options[0]);
|
|
121
|
+
console.log(cmd.toDetailedString());
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
for (const element of this.commands) {
|
|
125
|
+
console.log(element.toDetailedString());
|
|
126
|
+
}
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
const c = this.findCommand(command);
|
|
130
|
+
await c.executeCommand(options);
|
|
131
|
+
process.exit(0);
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
console.error(error);
|
|
136
|
+
process.exit(1);
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
findCommand(name) {
|
|
141
|
+
for (const element of this.commands) {
|
|
142
|
+
if (name === element.cmd.name) {
|
|
143
|
+
return element;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
console.error(`Command ${name} not found`);
|
|
147
|
+
}
|
|
148
|
+
command(name) {
|
|
149
|
+
const cmd = new Command(name);
|
|
150
|
+
this.commands.push(cmd);
|
|
151
|
+
return cmd;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
export let cli = new CLI();
|
|
155
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/init/init.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { cwd } from "../../cwd/cwd.js";
|
|
2
|
+
import { cli } from "../../cli.js";
|
|
3
|
+
import { AppInfo, packageContentFile, packagePath } from "../../AppInfo.js";
|
|
4
|
+
import { spawnSync } from "child_process";
|
|
5
|
+
import { join } from "path";
|
|
6
|
+
cli
|
|
7
|
+
.command("init")
|
|
8
|
+
.execute(async (command, options) => {
|
|
9
|
+
// update package.json
|
|
10
|
+
const pkg = await cwd.readJson("package.json");
|
|
11
|
+
pkg.dependencies ??= {};
|
|
12
|
+
pkg.devDependencies ??= {};
|
|
13
|
+
pkg.devDependencies["@dot-web-shell/cli"] = "^" + AppInfo.version;
|
|
14
|
+
pkg.dependencies["@neurospeech/jex"] = AppInfo.dependencies["@neurospeech/jex"];
|
|
15
|
+
pkg.scripts ??= {};
|
|
16
|
+
pkg.scripts.postversion = "git push --follow-tags";
|
|
17
|
+
await cwd.writeFile("package.json", JSON.stringify(pkg, void 0, 4));
|
|
18
|
+
// run npm install....
|
|
19
|
+
spawnSync("npm", ["install"]);
|
|
20
|
+
const contentAppFolder = join(packagePath, "content", "app");
|
|
21
|
+
if (!cwd.exists("maui")) {
|
|
22
|
+
await cwd.copyFolder(contentAppFolder, "maui", {});
|
|
23
|
+
}
|
|
24
|
+
await cwd.createTextFileIfNotExists("build-android.config.js", await packageContentFile("build-android.config.js").readFile());
|
|
25
|
+
await cwd.createTextFileIfNotExists("build-ios.config.js", await packageContentFile("build-ios.config.js").readFile());
|
|
26
|
+
await packageContentFile("build-android.jsx").copyTo("build-android.jsx");
|
|
27
|
+
await packageContentFile("build-ios.jsx").copyTo("build-ios.jsx");
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,GAAG;KACE,OAAO,CAAC,MAAM,CAAC;KACf,OAAO,CAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;IAEjC,sBAAsB;IAEtB,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAC/C,GAAG,CAAC,YAAY,KAAK,EAAE,CAAC;IACxB,GAAG,CAAC,eAAe,KAAK,EAAE,CAAC;IAC3B,GAAG,CAAC,eAAe,CAAC,oBAAoB,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAClE,GAAG,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;IAChF,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC;IACnB,GAAG,CAAC,OAAO,CAAC,WAAW,GAAG,wBAAwB,CAAC;IAEnD,MAAM,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEpE,sBAAsB;IACtB,SAAS,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAE9B,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAE7D,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAEtB,MAAM,GAAG,CAAC,UAAU,CAAC,gBAAgB,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAEvD,CAAC;IAED,MAAM,GAAG,CAAC,yBAAyB,CAAC,yBAAyB,EAAE,MAAM,kBAAkB,CAAC,yBAAyB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC9H,MAAM,GAAG,CAAC,yBAAyB,CAAC,qBAAqB,EAAE,MAAM,kBAAkB,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;IAEtH,MAAM,kBAAkB,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC1E,MAAM,kBAAkB,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AACtE,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/sync.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { join } from "path";
|
|
2
|
+
import { AppInfo, packagePath } from "../../AppInfo.js";
|
|
3
|
+
import { cli } from "../../cli.js";
|
|
4
|
+
import { cwd } from "../../cwd/cwd.js";
|
|
5
|
+
import { copyFile } from "fs/promises";
|
|
6
|
+
import { spawnSync } from "child_process";
|
|
7
|
+
import * as cheerio from "cheerio";
|
|
8
|
+
cli
|
|
9
|
+
.command("sync")
|
|
10
|
+
.description("Generate the Mobile App Source Code for the App, Warning, this will override existing files")
|
|
11
|
+
.execute(async (command, options) => {
|
|
12
|
+
const contentAppFolder = join(packagePath, "content", "app");
|
|
13
|
+
if (!cwd.exists("maui")) {
|
|
14
|
+
await cwd.copyFolder(contentAppFolder, "maui", {});
|
|
15
|
+
}
|
|
16
|
+
const setupFile = join(packagePath, "setup-build.mjs");
|
|
17
|
+
const destSetupFile = cwd.file("setup-build.mjs");
|
|
18
|
+
await copyFile(setupFile, destSetupFile.path);
|
|
19
|
+
const pkgFile = cwd.file("package.json");
|
|
20
|
+
const pkg = await pkgFile.readJson();
|
|
21
|
+
pkg.devDependencies ??= {};
|
|
22
|
+
pkg.devDependencies["@dot-web-shell/cli"] = "^" + AppInfo.version;
|
|
23
|
+
pkg.scripts ??= {};
|
|
24
|
+
pkg.scripts.sync = "node ./node_modules/@dot-web-shell/cli sync";
|
|
25
|
+
pkg.scripts.postversion = "npm run sync && git push --follow-tags";
|
|
26
|
+
pkg.scripts.build = "node ./setup-build.mjs";
|
|
27
|
+
await pkgFile.writeJson(pkg);
|
|
28
|
+
const dotConfig = cwd.file("dot-web-shell.config.json");
|
|
29
|
+
const config = await dotConfig.readJson();
|
|
30
|
+
const tokens = pkg.version.split(".");
|
|
31
|
+
tokens.pop();
|
|
32
|
+
config.version = tokens.join(".");
|
|
33
|
+
config.buildNumber ??= 1;
|
|
34
|
+
config.buildNumber = (parseInt(config.buildNumber, 10) + 1).toString();
|
|
35
|
+
await dotConfig.writeJson(config);
|
|
36
|
+
// update relevant files...
|
|
37
|
+
await updateProjectFile(config);
|
|
38
|
+
await updateConfigUrl(config);
|
|
39
|
+
spawnSync("git", ["add", "-A"]);
|
|
40
|
+
spawnSync("git", ["commit", "-m", `Build Updated to ${config.buildNumber}`]);
|
|
41
|
+
});
|
|
42
|
+
async function updateProjectFile(config) {
|
|
43
|
+
const projectFile = cwd.file("maui/PositronApp/PositronApp.csproj");
|
|
44
|
+
const $ = cheerio.load(await projectFile.readFile("utf8"), {
|
|
45
|
+
xmlMode: true,
|
|
46
|
+
xml: {
|
|
47
|
+
xmlMode: true,
|
|
48
|
+
decodeEntities: false
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
$("Project > PropertyGroup > ApplicationDisplayVersion").text(config.version);
|
|
52
|
+
$("Project > PropertyGroup > ApplicationVersion").text(config.buildNumber);
|
|
53
|
+
await projectFile.writeFile($.xml(), "utf8");
|
|
54
|
+
}
|
|
55
|
+
async function updateConfigUrl(config) {
|
|
56
|
+
const appSettingsFile = cwd.file("maui/PositronApp/appsettings.json");
|
|
57
|
+
const appSettings = await appSettingsFile.readJson();
|
|
58
|
+
appSettings.App.Url = config.url;
|
|
59
|
+
await appSettingsFile.writeJson(appSettings);
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/commands/sync/sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export default class LocalFile {
|
|
2
|
+
readonly path: any;
|
|
3
|
+
static readDir(src: string): Generator<LocalFile>;
|
|
4
|
+
readonly dir: string;
|
|
5
|
+
readonly ext: string;
|
|
6
|
+
readonly name: string;
|
|
7
|
+
readonly onlyName: string;
|
|
8
|
+
constructor(path: any);
|
|
9
|
+
exists(): boolean;
|
|
10
|
+
writeFile(content: Buffer | string, encoding?: BufferEncoding): Promise<void>;
|
|
11
|
+
readFile(): Promise<Buffer>;
|
|
12
|
+
readFile(encoding: BufferEncoding): Promise<string>;
|
|
13
|
+
readJson(): Promise<any>;
|
|
14
|
+
writeJson(json: any): Promise<void>;
|
|
15
|
+
copyTo(dest: string): Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=LocalFile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalFile.d.ts","sourceRoot":"","sources":["../../src/core/LocalFile.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,OAAO,SAAS;aAmBE,IAAI;IAjBhC,MAAM,CAAE,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC;IAYlD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEE,IAAI,KAAA;IAShC,MAAM;IAIN,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc;IAI7D,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAK7C,QAAQ;IAIR,SAAS,CAAC,IAAI,KAAA;IAId,MAAM,CAAC,IAAI,EAAE,MAAM;CAI5B"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { existsSync, readdirSync } from "fs";
|
|
2
|
+
import { copyFile, readFile, writeFile } from "fs/promises";
|
|
3
|
+
import { join, parse } from "path";
|
|
4
|
+
export default class LocalFile {
|
|
5
|
+
static *readDir(src) {
|
|
6
|
+
for (const d of readdirSync(src, { withFileTypes: true })) {
|
|
7
|
+
const c = join(src, d.name);
|
|
8
|
+
if (d.isDirectory()) {
|
|
9
|
+
yield* LocalFile.readDir(c);
|
|
10
|
+
continue;
|
|
11
|
+
}
|
|
12
|
+
yield new LocalFile(c);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
constructor(path) {
|
|
16
|
+
this.path = path;
|
|
17
|
+
const { dir, ext, base, name } = parse(this.path);
|
|
18
|
+
this.dir = dir;
|
|
19
|
+
this.ext = ext;
|
|
20
|
+
this.name = base;
|
|
21
|
+
this.onlyName = name;
|
|
22
|
+
}
|
|
23
|
+
exists() {
|
|
24
|
+
return existsSync(this.path);
|
|
25
|
+
}
|
|
26
|
+
writeFile(content, encoding) {
|
|
27
|
+
return writeFile(this.path, content, encoding);
|
|
28
|
+
}
|
|
29
|
+
readFile(encoding) {
|
|
30
|
+
return readFile(this.path, encoding);
|
|
31
|
+
}
|
|
32
|
+
async readJson() {
|
|
33
|
+
return JSON.parse(await this.readFile("utf8"));
|
|
34
|
+
}
|
|
35
|
+
async writeJson(json) {
|
|
36
|
+
return this.writeFile(JSON.stringify(json, void 0, 4));
|
|
37
|
+
}
|
|
38
|
+
async copyTo(dest) {
|
|
39
|
+
await copyFile(this.path, dest);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=LocalFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalFile.js","sourceRoot":"","sources":["../../src/core/LocalFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAEnC,MAAM,CAAC,OAAO,OAAO,SAAS;IAE1B,MAAM,CAAC,CAAC,OAAO,CAAC,GAAW;QACvB,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACxD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;gBAClB,KAAM,CAAC,CAAA,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC5B,SAAS;YACb,CAAC;YACD,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;IAEL,CAAC;IAOD,YAA4B,IAAI;QAAJ,SAAI,GAAJ,IAAI,CAAA;QAC5B,MAAM,EAAE,GAAG,EAAE,GAAG,EAAG,IAAI,EAAE,IAAI,EAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAElD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,MAAM;QACF,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,SAAS,CAAC,OAAwB,EAAE,QAAyB;QACzD,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC;IAID,QAAQ,CAAC,QAAc;QACnB,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAI;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY;QACrB,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;CAEJ"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import LocalFile from "../core/LocalFile.js";
|
|
2
|
+
export declare const cwd: {
|
|
3
|
+
readonly path: string;
|
|
4
|
+
createTextFileIfNotExists(file: any, data: string | Buffer): void;
|
|
5
|
+
exists(path: any): boolean;
|
|
6
|
+
file(path: any): LocalFile;
|
|
7
|
+
copyFolder(src: any, dest: any, config: any): Promise<void>;
|
|
8
|
+
readFile(path: any): Promise<string>;
|
|
9
|
+
readJson(path: any): Promise<any>;
|
|
10
|
+
writeFile(path: any, content: any, encoding?: BufferEncoding): Promise<void>;
|
|
11
|
+
readDir(path: any): Generator<string, any, unknown>;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=cwd.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cwd.d.ts","sourceRoot":"","sources":["../../src/cwd/cwd.ts"],"names":[],"mappings":"AAGA,OAAO,SAAS,MAAM,sBAAsB,CAAC;AA+C7C,eAAO,MAAM,GAAG;;+CAM0B,MAAM,GAAG,MAAM;;;;;;kDAqCP,cAAc;;CAQ/D,CAAC"}
|
package/dist/cwd/cwd.js
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, readdirSync, writeFileSync } from "fs";
|
|
2
|
+
import { copyFile, readdir, readFile, writeFile } from "fs/promises";
|
|
3
|
+
import { join } from "path";
|
|
4
|
+
import LocalFile from "../core/LocalFile.js";
|
|
5
|
+
function* dirList(src) {
|
|
6
|
+
for (const d of readdirSync(src, { withFileTypes: true })) {
|
|
7
|
+
const c = join(src, d.name);
|
|
8
|
+
if (d.isDirectory()) {
|
|
9
|
+
yield* dirList(c);
|
|
10
|
+
continue;
|
|
11
|
+
}
|
|
12
|
+
yield c;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
const copyDir = async (src, dest, replace) => {
|
|
16
|
+
if (!existsSync(dest)) {
|
|
17
|
+
mkdirSync(dest, { recursive: true });
|
|
18
|
+
}
|
|
19
|
+
for (const item of await readdir(src, { withFileTypes: true })) {
|
|
20
|
+
const srcPath = join(src, item.name);
|
|
21
|
+
const destPath = join(dest, item.name);
|
|
22
|
+
if (item.isDirectory()) {
|
|
23
|
+
await copyDir(srcPath, destPath, replace);
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
await copyFile(srcPath, destPath);
|
|
27
|
+
if (/\.(cs|xaml|json|xml|csproj)$/i.test(destPath)) {
|
|
28
|
+
// update config...
|
|
29
|
+
const buffer = await readFile(destPath);
|
|
30
|
+
const text = buffer.toString("utf8");
|
|
31
|
+
let replaced = text;
|
|
32
|
+
for (const [k, v] of replace) {
|
|
33
|
+
replaced = replaced.replaceAll(k, v);
|
|
34
|
+
}
|
|
35
|
+
if (replaced !== text) {
|
|
36
|
+
await writeFile(destPath, replaced);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
console.log(`copy ${destPath}`);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
export const cwd = {
|
|
43
|
+
get path() {
|
|
44
|
+
return process.cwd();
|
|
45
|
+
},
|
|
46
|
+
createTextFileIfNotExists(file, data) {
|
|
47
|
+
const path = join(this.path, file);
|
|
48
|
+
if (existsSync(path)) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
writeFileSync(file, data);
|
|
52
|
+
},
|
|
53
|
+
exists(path) {
|
|
54
|
+
return existsSync(join(this.path, path));
|
|
55
|
+
},
|
|
56
|
+
file(path) {
|
|
57
|
+
return new LocalFile(join(this.path, path));
|
|
58
|
+
},
|
|
59
|
+
async copyFolder(src, dest, config) {
|
|
60
|
+
const path = join(this.path, dest);
|
|
61
|
+
const replace = [];
|
|
62
|
+
for (const key in config) {
|
|
63
|
+
if (Object.prototype.hasOwnProperty.call(config, key)) {
|
|
64
|
+
const element = config[key];
|
|
65
|
+
replace.push([`$$config.${key}$$`, element]);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
await copyDir(src, path, replace);
|
|
69
|
+
},
|
|
70
|
+
async readFile(path) {
|
|
71
|
+
path = join(this.path, path);
|
|
72
|
+
return await readFile(path, "utf8");
|
|
73
|
+
},
|
|
74
|
+
async readJson(path) {
|
|
75
|
+
return JSON.parse(await readFile(path, "utf8"));
|
|
76
|
+
},
|
|
77
|
+
writeFile(path, content, encoding = "utf8") {
|
|
78
|
+
return writeFile(path, content, encoding);
|
|
79
|
+
},
|
|
80
|
+
readDir(path) {
|
|
81
|
+
return dirList(join(this.path, path));
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
//# sourceMappingURL=cwd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cwd.js","sourceRoot":"","sources":["../../src/cwd/cwd.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appConfig.d.ts","sourceRoot":"","sources":["../../src/schema/appConfig.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS;;;;CAIrB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appConfig.js","sourceRoot":"","sources":["../../src/schema/appConfig.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG;IACrB,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,qBAAqB;IAC3B,KAAK,EAAE,uBAAuB;CACjC,CAAA"}
|