@tantawowa/hosanna-tools 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +69 -0
- package/dist/build-info.json +3 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +128 -0
- package/dist/cli.js.map +1 -0
- package/dist/generation/command-handler-generator.d.ts +3 -0
- package/dist/generation/command-handler-generator.js +169 -0
- package/dist/generation/command-handler-generator.js.map +1 -0
- package/dist/generation/generation-utils.d.ts +9 -0
- package/dist/generation/generation-utils.js +114 -0
- package/dist/generation/generation-utils.js.map +1 -0
- package/dist/generation/struct-generator.d.ts +10 -0
- package/dist/generation/struct-generator.js +553 -0
- package/dist/generation/struct-generator.js.map +1 -0
- package/dist/generation/view-generator.d.ts +1 -0
- package/dist/generation/view-generator.js +71 -0
- package/dist/generation/view-generator.js.map +1 -0
- package/dist/hosanna-tools/cli.d.ts +0 -0
- package/dist/hosanna-tools/cli.js +2 -0
- package/dist/hosanna-tools/cli.js.map +1 -0
- package/dist/lib/hosanna-tools-utils.d.ts +1 -0
- package/dist/lib/hosanna-tools-utils.js +87 -0
- package/dist/lib/hosanna-tools-utils.js.map +1 -0
- package/dist/updater/sdk-manager.d.ts +3 -0
- package/dist/updater/sdk-manager.js +196 -0
- package/dist/updater/sdk-manager.js.map +1 -0
- package/package.json +42 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view-generator.js","sourceRoot":"","sources":["../../src/generation/view-generator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAC7B,mDAAqC;AAErC,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;IAClC,KAAK,EAAE,OAAO,CAAC,KAAK;IACpB,MAAM,EAAE,OAAO,CAAC,MAAM;CACvB,CAAC,CAAC;AAEH,SAAS,MAAM,CAAC,QAAgB;IAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAClE,CAAC;AAEM,KAAK,UAAU,YAAY,CAAC,UAAkB;IACnD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,oEAAoE,CAAC,CAAC;IAExG,MAAM,aAAa,GAAG,GAAG,QAAQ,MAAM,CAAC;IACxC,MAAM,kBAAkB,GAAG,GAAG,QAAQ,OAAO,CAAC;IAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,QAAQ,KAAK,CAAC,CAAC;IAE9E,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAChH,MAAM,sBAAsB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAC3H,MAAM,OAAO,GAAG;4CAC0B,iBAAiB;4BACjC,sBAAsB;yCACT,sBAAsB;;;mBAG5C,kBAAkB;;;SAG5B,QAAQ;eACF,aAAa,qBAAqB,kBAAkB;;;;;;GAMhE,CAAC;IAEF,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC7C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;QAC7B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;KAC9C;IAED,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,QAAQ,QAAQ,eAAe,YAAY,EAAE,CAAC,CAAC;IAE3D,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,oCAAoC;AAClD,CAAC;AArCD,oCAqCC"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/hosanna-tools/cli.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function findAllTSFiles(dir: string): string[];
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.findAllTSFiles = void 0;
|
|
27
|
+
const fs = __importStar(require("fs"));
|
|
28
|
+
const path = __importStar(require("path"));
|
|
29
|
+
// Recursively find all .ts files in the directory
|
|
30
|
+
function findAllTSFiles(dir) {
|
|
31
|
+
const results = [];
|
|
32
|
+
let files;
|
|
33
|
+
try {
|
|
34
|
+
files = fs.readdirSync(dir);
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
console.error(`Error reading directory: ${dir}`, err);
|
|
38
|
+
return results;
|
|
39
|
+
}
|
|
40
|
+
files.forEach(file => {
|
|
41
|
+
const filePath = path.join(dir, file);
|
|
42
|
+
// console.log(`looking at ${filePath}`);
|
|
43
|
+
let stat;
|
|
44
|
+
try {
|
|
45
|
+
stat = fs.lstatSync(filePath);
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
console.error(`Error reading file stats: ${filePath}`, err);
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (stat.isSymbolicLink()) {
|
|
52
|
+
// Handle symbolic link
|
|
53
|
+
try {
|
|
54
|
+
const linkString = fs.readlinkSync(filePath);
|
|
55
|
+
const realPath = path.resolve(path.dirname(filePath), linkString);
|
|
56
|
+
let realStat;
|
|
57
|
+
try {
|
|
58
|
+
realStat = fs.statSync(realPath);
|
|
59
|
+
}
|
|
60
|
+
catch (err) {
|
|
61
|
+
console.error(`Error reading symlink path ${filePath} which points to path: ${realPath}`, err);
|
|
62
|
+
console.info('continuing...');
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
if (realStat.isDirectory()) {
|
|
66
|
+
results.push(...findAllTSFiles(realPath));
|
|
67
|
+
}
|
|
68
|
+
else if (realPath.endsWith('.ts') && !realPath.endsWith('.d.ts')) {
|
|
69
|
+
results.push(realPath);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch (err) {
|
|
73
|
+
console.error(`Error reading symlink: ${filePath}`, err);
|
|
74
|
+
}
|
|
75
|
+
;
|
|
76
|
+
}
|
|
77
|
+
else if (stat.isDirectory()) {
|
|
78
|
+
results.push(...findAllTSFiles(filePath));
|
|
79
|
+
}
|
|
80
|
+
else if (filePath.endsWith('.ts') && !filePath.endsWith('.d.ts')) {
|
|
81
|
+
results.push(filePath);
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
return results;
|
|
85
|
+
}
|
|
86
|
+
exports.findAllTSFiles = findAllTSFiles;
|
|
87
|
+
//# sourceMappingURL=hosanna-tools-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hosanna-tools-utils.js","sourceRoot":"","sources":["../../src/lib/hosanna-tools-utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAG7B,kDAAkD;AAClD,SAAgB,cAAc,CAAC,GAAW;IACxC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,KAAe,CAAC;IAEpB,IAAI;QACF,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;KAC7B;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,CAAC,KAAK,CAAC,4BAA4B,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;QACtD,OAAO,OAAO,CAAC;KAChB;IAED,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtC,yCAAyC;QAEzC,IAAI,IAAc,CAAC;QAEnB,IAAI;YACF,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;SAC/B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,6BAA6B,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC;YAC5D,OAAO;SACR;QAED,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;YACzB,uBAAuB;YACvB,IAAI;gBACF,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC;gBAClE,IAAI,QAAkB,CAAC;gBAEvB,IAAI;oBACF,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;iBAClC;gBAAC,OAAO,GAAG,EAAE;oBACZ,OAAO,CAAC,KAAK,CAAC,8BAA8B,QAAQ,0BAA0B,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC;oBAC/F,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAC9B,OAAO;iBACR;gBAED,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE;oBAC1B,OAAO,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;iBAC3C;qBAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;oBAClE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBACxB;aACF;YAAC,OAAO,GAAG,EAAE;gBACZ,OAAO,CAAC,KAAK,CAAC,0BAA0B,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC;aAC1D;YAAA,CAAC;SACH;aAAM,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YAC7B,OAAO,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;SAC3C;aAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAClE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACxB;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAvDD,wCAuDC"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.installSdk = exports.prepareGitIgnore = exports.updateSdk = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const child_process_1 = require("child_process");
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const console_1 = require("console");
|
|
11
|
+
const node_process_1 = __importDefault(require("node:process"));
|
|
12
|
+
const readline_sync_1 = __importDefault(require("readline-sync"));
|
|
13
|
+
const console = new console_1.Console(node_process_1.default.stdout, node_process_1.default.stderr);
|
|
14
|
+
function loadHosannaConfig() {
|
|
15
|
+
const configPath = 'hosanna.json';
|
|
16
|
+
if (!fs_1.default.existsSync(configPath)) {
|
|
17
|
+
throw new Error(`Configuration file not found: ${configPath}`);
|
|
18
|
+
}
|
|
19
|
+
return JSON.parse(fs_1.default.readFileSync(configPath, 'utf8'));
|
|
20
|
+
}
|
|
21
|
+
const hosannaFoldersToSymlink = [
|
|
22
|
+
'/src/hosanna-bridge-lib',
|
|
23
|
+
'/src/hosanna-bridge-http',
|
|
24
|
+
'/src/hosanna-bridge-targets',
|
|
25
|
+
'/src/hosanna-list',
|
|
26
|
+
'/src/hosanna-ui',
|
|
27
|
+
];
|
|
28
|
+
function runCommand(command, args, options = {}) {
|
|
29
|
+
const result = (0, child_process_1.spawnSync)(command, args, Object.assign({ stdio: 'inherit' }, options));
|
|
30
|
+
if (result.error) {
|
|
31
|
+
throw result.error;
|
|
32
|
+
}
|
|
33
|
+
if (result.status !== 0) {
|
|
34
|
+
throw new Error(`Command "${command} ${args.join(' ')}" failed with exit code ${result.status}`);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function updateSdk() {
|
|
38
|
+
console.log('process.cwd() - ', node_process_1.default.cwd());
|
|
39
|
+
const hosannaConfig = loadHosannaConfig();
|
|
40
|
+
// eslint-disable-next-line prefer-const
|
|
41
|
+
let { 'sdk-version': sdkVersion, 'git-url': repoUrl, branch } = hosannaConfig;
|
|
42
|
+
const repoDir = path_1.default.join(node_process_1.default.cwd(), 'hosanna-ui');
|
|
43
|
+
try {
|
|
44
|
+
// Handle @latest by resolving the latest tag
|
|
45
|
+
if (sdkVersion === "@latest") {
|
|
46
|
+
console.log("Resolving the latest version...");
|
|
47
|
+
try {
|
|
48
|
+
const latestTag = (0, child_process_1.spawnSync)('git', ['ls-remote', '--tags', repoUrl], { encoding: 'utf8' })
|
|
49
|
+
.stdout.split('\n')
|
|
50
|
+
.map(line => line.split('/').pop())
|
|
51
|
+
.filter(Boolean)
|
|
52
|
+
.sort()
|
|
53
|
+
.pop();
|
|
54
|
+
sdkVersion = latestTag || "main"; // Fallback to "main" if no tags are found
|
|
55
|
+
console.log(`Using the latest version: ${sdkVersion}`);
|
|
56
|
+
}
|
|
57
|
+
catch (err) {
|
|
58
|
+
console.error("Failed to resolve the latest version. Defaulting to 'main'.", err);
|
|
59
|
+
sdkVersion = "main";
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// Clone the repo if not already cloned
|
|
63
|
+
if (!fs_1.default.existsSync(repoDir)) {
|
|
64
|
+
console.log('Cloning repository...');
|
|
65
|
+
runCommand('git', ['clone', repoUrl, repoDir]);
|
|
66
|
+
}
|
|
67
|
+
// Checkout branch or tag
|
|
68
|
+
if (branch) {
|
|
69
|
+
console.log(`Checking out branch: ${branch}`);
|
|
70
|
+
runCommand('git', ['-C', repoDir, 'fetch', 'origin']);
|
|
71
|
+
runCommand('git', ['-C', repoDir, 'checkout', branch]);
|
|
72
|
+
runCommand('git', ['-C', repoDir, 'pull', 'origin', branch]);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
console.log(`Checking out tag: ${sdkVersion}`);
|
|
76
|
+
runCommand('git', ['-C', repoDir, 'checkout', `tags/${sdkVersion}`]);
|
|
77
|
+
}
|
|
78
|
+
// Execute npm install in the root folder of repoDir
|
|
79
|
+
console.log('Running npm install...');
|
|
80
|
+
runCommand('npm', ['install'], { cwd: repoDir });
|
|
81
|
+
// Ensure the src folder exists
|
|
82
|
+
const srcFolder = path_1.default.join(node_process_1.default.cwd(), 'src');
|
|
83
|
+
if (!fs_1.default.existsSync(srcFolder)) {
|
|
84
|
+
console.log(`Creating src folder at ${srcFolder}...`);
|
|
85
|
+
fs_1.default.mkdirSync(srcFolder, { recursive: true });
|
|
86
|
+
}
|
|
87
|
+
// Delete and recreate symlink folders
|
|
88
|
+
hosannaFoldersToSymlink.forEach(folder => {
|
|
89
|
+
const targetDir = path_1.default.join(node_process_1.default.cwd(), folder);
|
|
90
|
+
const sourceDir = path_1.default.join(repoDir, '..', folder);
|
|
91
|
+
let targetExists = false;
|
|
92
|
+
try {
|
|
93
|
+
fs_1.default.lstatSync(targetDir); // Check if the path exists
|
|
94
|
+
targetExists = true;
|
|
95
|
+
}
|
|
96
|
+
catch (_a) {
|
|
97
|
+
targetExists = false; // Path does not exist
|
|
98
|
+
}
|
|
99
|
+
if (targetExists) {
|
|
100
|
+
if (fs_1.default.lstatSync(targetDir).isSymbolicLink()) {
|
|
101
|
+
const existingLink = fs_1.default.readlinkSync(targetDir);
|
|
102
|
+
if (existingLink === sourceDir) {
|
|
103
|
+
console.log(`Symlink already exists and points to the correct target: ${targetDir}`);
|
|
104
|
+
return; // Skip creating the symlink
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
console.log(`Removing incorrect symlink: ${targetDir}`);
|
|
108
|
+
fs_1.default.unlinkSync(targetDir);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
console.log(`Removing existing directory or file: ${targetDir}`);
|
|
113
|
+
fs_1.default.rmSync(targetDir, { recursive: true, force: true });
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
console.log(`Creating symlink from ${sourceDir} to ${targetDir}`);
|
|
117
|
+
fs_1.default.symlinkSync(sourceDir, targetDir, 'dir');
|
|
118
|
+
});
|
|
119
|
+
prepareGitIgnore();
|
|
120
|
+
console.log('Update completed successfully.');
|
|
121
|
+
console.log();
|
|
122
|
+
console.log(`Installed version is ${sdkVersion}`);
|
|
123
|
+
node_process_1.default.exit(0); // Exit the CLI after successful completion
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
if (error instanceof Error) {
|
|
127
|
+
console.error('An error occurred:', error.message);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
console.error('An unknown error occurred:', error);
|
|
131
|
+
}
|
|
132
|
+
node_process_1.default.exit(1); // Exit with error code on failure
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
exports.updateSdk = updateSdk;
|
|
136
|
+
function prepareGitIgnore() {
|
|
137
|
+
const gitIgnorePath = path_1.default.join(node_process_1.default.cwd(), '.gitignore');
|
|
138
|
+
const requiredEntries = [
|
|
139
|
+
...hosannaFoldersToSymlink.map(folder => folder.replace(/^\//, '')),
|
|
140
|
+
'# hosanna sources',
|
|
141
|
+
'source_*.brs',
|
|
142
|
+
'source_*.brs.map',
|
|
143
|
+
'hs_bridge*.brs',
|
|
144
|
+
'hs_bridge*.brs.map',
|
|
145
|
+
'platforms/roku/src/assets',
|
|
146
|
+
'platforms/roku/.vscode/launch.json',
|
|
147
|
+
'platforms/roku/src/components',
|
|
148
|
+
'coverage',
|
|
149
|
+
'hosanna_ui'
|
|
150
|
+
];
|
|
151
|
+
let gitIgnoreContent = '';
|
|
152
|
+
if (fs_1.default.existsSync(gitIgnorePath)) {
|
|
153
|
+
gitIgnoreContent = fs_1.default.readFileSync(gitIgnorePath, 'utf8');
|
|
154
|
+
}
|
|
155
|
+
const gitIgnoreLines = new Set(gitIgnoreContent.split('\n').map(line => line.trim()));
|
|
156
|
+
let updated = false;
|
|
157
|
+
requiredEntries.forEach(entry => {
|
|
158
|
+
if (!gitIgnoreLines.has(entry)) {
|
|
159
|
+
gitIgnoreLines.add(entry);
|
|
160
|
+
updated = true;
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
if (updated) {
|
|
164
|
+
console.log('Updating .gitignore with required entries...');
|
|
165
|
+
fs_1.default.writeFileSync(gitIgnorePath, Array.from(gitIgnoreLines).join('\n') + '\n', 'utf8');
|
|
166
|
+
console.log('.gitignore updated successfully.');
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
console.log('.gitignore already contains all required entries.');
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
exports.prepareGitIgnore = prepareGitIgnore;
|
|
173
|
+
async function promptUser(question) {
|
|
174
|
+
return new Promise(resolve => {
|
|
175
|
+
const answer = readline_sync_1.default.question(question);
|
|
176
|
+
resolve(answer);
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
async function installSdk() {
|
|
180
|
+
console.log("Welcome to the Hosanna SDK installer! Let's get started 🎉");
|
|
181
|
+
const hosannaUiUrl = await promptUser("What is your hosanna-ui URL? (default: git@github.com:TantaWowa/hosanna-ui.git):\n");
|
|
182
|
+
const tag = await promptUser("What is your tag? (default: @latest):\n");
|
|
183
|
+
const branch = await promptUser("What is your branch? (default: leave blank):\n");
|
|
184
|
+
const hosannaConfig = {
|
|
185
|
+
'git-url': hosannaUiUrl || 'git@github.com:TantaWowa/hosanna-ui.git',
|
|
186
|
+
'sdk-version': tag || '@latest',
|
|
187
|
+
branch: branch || ''
|
|
188
|
+
};
|
|
189
|
+
fs_1.default.writeFileSync('hosanna.json', JSON.stringify(hosannaConfig, null, 2), 'utf8');
|
|
190
|
+
console.log("hosanna.json created successfully! 🎉");
|
|
191
|
+
console.log("\nIn the future, you can update the SDK by changing the sdk-version or branch in the hosanna.json file.");
|
|
192
|
+
console.log("\nRunning updateSdk to complete the installation...");
|
|
193
|
+
await updateSdk();
|
|
194
|
+
}
|
|
195
|
+
exports.installSdk = installSdk;
|
|
196
|
+
//# sourceMappingURL=sdk-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk-manager.js","sourceRoot":"","sources":["../../src/updater/sdk-manager.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@tantawowa/hosanna-tools",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "commonjs",
|
|
5
|
+
"main": "dist/cli.js",
|
|
6
|
+
"types": "dist/cli.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist"
|
|
9
|
+
],
|
|
10
|
+
"bin": {
|
|
11
|
+
"hst": "dist/cli.js"
|
|
12
|
+
},
|
|
13
|
+
"repository": {
|
|
14
|
+
"url": "https://github.com/Tantawowa/hosanna-tools.git"
|
|
15
|
+
},
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "rm -rf dist && tsc --project tsconfig.build.json && chmod +x dist/cli.js && node scripts/generateBuildInfo.js",
|
|
18
|
+
"start": "node dist/cli.js",
|
|
19
|
+
"test": "vitest --maxWorkers=20",
|
|
20
|
+
"testFast": "vitest --maxWorkers=40",
|
|
21
|
+
"lint": "eslint --config eslint.config.mjs --ignore-pattern \"node_modules/**\" --ignore-pattern \"dist/**\" --ignore-pattern \"**/*.d.ts\" --ignore-pattern \"**/*.js\"",
|
|
22
|
+
"lint-fix": "eslint --config eslint.config.mjs --ignore-pattern \"node_modules/**\" --ignore-pattern \"dist/**\" --ignore-pattern \"**/*.d.ts\" --ignore-pattern \"**/*.js\" --fix",
|
|
23
|
+
"lint-ide": "eslint --config eslint.config.mjs --ignore-pattern \"node_modules/**\" --ignore-pattern \"dist/**\" --ignore-pattern \"**/*.d.ts\" --ignore-pattern \"**/*.js\" --format compact"
|
|
24
|
+
},
|
|
25
|
+
"devDependencies": {
|
|
26
|
+
"@types/readline-sync": "^1.4.8",
|
|
27
|
+
"chokidar": "^4.0.3",
|
|
28
|
+
"eslint": "^9.17.0",
|
|
29
|
+
"eslint-formatter-compact": "^8.40.0",
|
|
30
|
+
"eslint-plugin-unused-imports": "^4.1.4",
|
|
31
|
+
"ts-jest": "^29.2.5",
|
|
32
|
+
"ts-node": "^10.9.2",
|
|
33
|
+
"typescript": "5.2.2",
|
|
34
|
+
"typescript-eslint": "^8.18.1",
|
|
35
|
+
"uuid": "10.0.0",
|
|
36
|
+
"vitest": "2.1.3",
|
|
37
|
+
"yargs": "^17.7.2"
|
|
38
|
+
},
|
|
39
|
+
"dependencies": {
|
|
40
|
+
"readline-sync": "^1.4.10"
|
|
41
|
+
}
|
|
42
|
+
}
|