@hot-updater/cli-tools 0.21.8

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.
Files changed (71) hide show
  1. package/LICENSE +21 -0
  2. package/dist/ConfigBuilder.cjs +122 -0
  3. package/dist/ConfigBuilder.d.cts +43 -0
  4. package/dist/ConfigBuilder.d.ts +43 -0
  5. package/dist/ConfigBuilder.js +121 -0
  6. package/dist/_virtual/rolldown_runtime.cjs +25 -0
  7. package/dist/banner.cjs +29 -0
  8. package/dist/banner.d.cts +6 -0
  9. package/dist/banner.d.ts +6 -0
  10. package/dist/banner.js +24 -0
  11. package/dist/colors.d.cts +2 -0
  12. package/dist/colors.d.ts +2 -0
  13. package/dist/colors.js +3 -0
  14. package/dist/copyDirToTmp.cjs +28 -0
  15. package/dist/copyDirToTmp.d.cts +7 -0
  16. package/dist/copyDirToTmp.d.ts +7 -0
  17. package/dist/copyDirToTmp.js +25 -0
  18. package/dist/createTarBr.cjs +94 -0
  19. package/dist/createTarBr.d.cts +22 -0
  20. package/dist/createTarBr.d.ts +22 -0
  21. package/dist/createTarBr.js +88 -0
  22. package/dist/createTarGz.cjs +78 -0
  23. package/dist/createTarGz.d.cts +22 -0
  24. package/dist/createTarGz.d.ts +22 -0
  25. package/dist/createTarGz.js +73 -0
  26. package/dist/createZip.cjs +80 -0
  27. package/dist/createZip.d.cts +22 -0
  28. package/dist/createZip.d.ts +22 -0
  29. package/dist/createZip.js +75 -0
  30. package/dist/crypto.cjs +27 -0
  31. package/dist/crypto.d.cts +5 -0
  32. package/dist/crypto.d.ts +5 -0
  33. package/dist/crypto.js +24 -0
  34. package/dist/cwd.cjs +9 -0
  35. package/dist/cwd.d.cts +4 -0
  36. package/dist/cwd.d.ts +4 -0
  37. package/dist/cwd.js +7 -0
  38. package/dist/getAndroidSdkPath.cjs +10 -0
  39. package/dist/getAndroidSdkPath.d.cts +4 -0
  40. package/dist/getAndroidSdkPath.d.ts +4 -0
  41. package/dist/getAndroidSdkPath.js +9 -0
  42. package/dist/index.cjs +48 -0
  43. package/dist/index.d.cts +17 -0
  44. package/dist/index.d.ts +17 -0
  45. package/dist/index.js +18 -0
  46. package/dist/isObject.cjs +8 -0
  47. package/dist/isObject.js +7 -0
  48. package/dist/loadConfig.cjs +100 -0
  49. package/dist/loadConfig.d.cts +12 -0
  50. package/dist/loadConfig.d.ts +12 -0
  51. package/dist/loadConfig.js +93 -0
  52. package/dist/log.cjs +16 -0
  53. package/dist/log.d.cts +11 -0
  54. package/dist/log.d.ts +11 -0
  55. package/dist/log.js +14 -0
  56. package/dist/makeEnv.cjs +57 -0
  57. package/dist/makeEnv.d.cts +8 -0
  58. package/dist/makeEnv.d.ts +8 -0
  59. package/dist/makeEnv.js +55 -0
  60. package/dist/prompts.d.cts +2 -0
  61. package/dist/prompts.d.ts +2 -0
  62. package/dist/prompts.js +3 -0
  63. package/dist/transformEnv.cjs +14 -0
  64. package/dist/transformEnv.d.cts +4 -0
  65. package/dist/transformEnv.d.ts +4 -0
  66. package/dist/transformEnv.js +11 -0
  67. package/dist/transformTemplate.cjs +22 -0
  68. package/dist/transformTemplate.d.cts +15 -0
  69. package/dist/transformTemplate.d.ts +15 -0
  70. package/dist/transformTemplate.js +21 -0
  71. package/package.json +64 -0
@@ -0,0 +1,88 @@
1
+ import fs from "fs/promises";
2
+ import path from "path";
3
+ import * as tar from "tar";
4
+ import { brotliCompressSync, constants } from "zlib";
5
+
6
+ //#region src/createTarBr.ts
7
+ const createTarBrTargetFiles = async ({ outfile, targetFiles }) => {
8
+ await fs.rm(outfile, { force: true });
9
+ const tmpDir = path.join(path.dirname(outfile), `.tmp-tar-${Date.now()}`);
10
+ await fs.mkdir(tmpDir, { recursive: true });
11
+ try {
12
+ for (const target of targetFiles) {
13
+ const sourcePath = target.path;
14
+ const destPath = path.join(tmpDir, target.name);
15
+ await fs.mkdir(path.dirname(destPath), { recursive: true });
16
+ if ((await fs.stat(sourcePath)).isDirectory()) await copyDir(sourcePath, destPath);
17
+ else await fs.copyFile(sourcePath, destPath);
18
+ }
19
+ const tmpTarFile = outfile.replace(/\.tar\.br$/, ".tar");
20
+ await tar.create({
21
+ file: tmpTarFile,
22
+ cwd: tmpDir,
23
+ portable: true,
24
+ mtime: /* @__PURE__ */ new Date(0),
25
+ gzip: false
26
+ }, await fs.readdir(tmpDir));
27
+ const compressedData = brotliCompressSync(await fs.readFile(tmpTarFile), { params: {
28
+ [constants.BROTLI_PARAM_QUALITY]: 11,
29
+ [constants.BROTLI_PARAM_LGWIN]: 24
30
+ } });
31
+ await fs.mkdir(path.dirname(outfile), { recursive: true });
32
+ await fs.writeFile(outfile, compressedData);
33
+ await fs.rm(tmpTarFile, { force: true });
34
+ return outfile;
35
+ } finally {
36
+ await fs.rm(tmpDir, {
37
+ recursive: true,
38
+ force: true
39
+ });
40
+ }
41
+ };
42
+ async function copyDir(src, dest) {
43
+ await fs.mkdir(dest, { recursive: true });
44
+ const entries = await fs.readdir(src, { withFileTypes: true });
45
+ for (const entry of entries) {
46
+ const srcPath = path.join(src, entry.name);
47
+ const destPath = path.join(dest, entry.name);
48
+ if (entry.isDirectory()) await copyDir(srcPath, destPath);
49
+ else await fs.copyFile(srcPath, destPath);
50
+ }
51
+ }
52
+ const createTarBr = async ({ outfile, targetDir, excludeExts = [] }) => {
53
+ await fs.rm(outfile, { force: true });
54
+ const tmpTarFile = outfile.replace(/\.tar\.br$/, ".tar");
55
+ async function getFiles(dir, baseDir = "") {
56
+ const entries = await fs.readdir(dir, { withFileTypes: true });
57
+ const files = [];
58
+ for (const entry of entries) {
59
+ if (excludeExts.some((pattern) => entry.name.includes(pattern))) continue;
60
+ const fullPath = path.join(dir, entry.name);
61
+ const relativePath = path.join(baseDir, entry.name);
62
+ if (entry.isDirectory()) {
63
+ const subFiles = await getFiles(fullPath, relativePath);
64
+ files.push(...subFiles);
65
+ } else files.push(relativePath);
66
+ }
67
+ return files;
68
+ }
69
+ const filesToInclude = await getFiles(targetDir);
70
+ filesToInclude.sort();
71
+ await tar.create({
72
+ file: tmpTarFile,
73
+ cwd: targetDir,
74
+ portable: true,
75
+ mtime: /* @__PURE__ */ new Date(0),
76
+ gzip: false
77
+ }, filesToInclude);
78
+ const compressedData = brotliCompressSync(await fs.readFile(tmpTarFile), { params: {
79
+ [constants.BROTLI_PARAM_QUALITY]: 11,
80
+ [constants.BROTLI_PARAM_LGWIN]: 24
81
+ } });
82
+ await fs.writeFile(outfile, compressedData);
83
+ await fs.rm(tmpTarFile, { force: true });
84
+ return outfile;
85
+ };
86
+
87
+ //#endregion
88
+ export { createTarBr, createTarBrTargetFiles };
@@ -0,0 +1,78 @@
1
+ const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
2
+ let fs_promises = require("fs/promises");
3
+ fs_promises = require_rolldown_runtime.__toESM(fs_promises);
4
+ let path = require("path");
5
+ path = require_rolldown_runtime.__toESM(path);
6
+ let tar = require("tar");
7
+ tar = require_rolldown_runtime.__toESM(tar);
8
+
9
+ //#region src/createTarGz.ts
10
+ const createTarGzTargetFiles = async ({ outfile, targetFiles }) => {
11
+ await fs_promises.default.rm(outfile, { force: true });
12
+ const tmpDir = path.default.join(path.default.dirname(outfile), `.tmp-tar-${Date.now()}`);
13
+ await fs_promises.default.mkdir(tmpDir, { recursive: true });
14
+ try {
15
+ for (const target of targetFiles) {
16
+ const sourcePath = target.path;
17
+ const destPath = path.default.join(tmpDir, target.name);
18
+ await fs_promises.default.mkdir(path.default.dirname(destPath), { recursive: true });
19
+ if ((await fs_promises.default.stat(sourcePath)).isDirectory()) await copyDir(sourcePath, destPath);
20
+ else await fs_promises.default.copyFile(sourcePath, destPath);
21
+ }
22
+ await fs_promises.default.mkdir(path.default.dirname(outfile), { recursive: true });
23
+ await tar.create({
24
+ file: outfile,
25
+ cwd: tmpDir,
26
+ portable: true,
27
+ mtime: /* @__PURE__ */ new Date(0),
28
+ gzip: true
29
+ }, await fs_promises.default.readdir(tmpDir));
30
+ return outfile;
31
+ } finally {
32
+ await fs_promises.default.rm(tmpDir, {
33
+ recursive: true,
34
+ force: true
35
+ });
36
+ }
37
+ };
38
+ async function copyDir(src, dest) {
39
+ await fs_promises.default.mkdir(dest, { recursive: true });
40
+ const entries = await fs_promises.default.readdir(src, { withFileTypes: true });
41
+ for (const entry of entries) {
42
+ const srcPath = path.default.join(src, entry.name);
43
+ const destPath = path.default.join(dest, entry.name);
44
+ if (entry.isDirectory()) await copyDir(srcPath, destPath);
45
+ else await fs_promises.default.copyFile(srcPath, destPath);
46
+ }
47
+ }
48
+ const createTarGz = async ({ outfile, targetDir, excludeExts = [] }) => {
49
+ await fs_promises.default.rm(outfile, { force: true });
50
+ async function getFiles(dir, baseDir = "") {
51
+ const entries = await fs_promises.default.readdir(dir, { withFileTypes: true });
52
+ const files = [];
53
+ for (const entry of entries) {
54
+ if (excludeExts.some((pattern) => entry.name.includes(pattern))) continue;
55
+ const fullPath = path.default.join(dir, entry.name);
56
+ const relativePath = path.default.join(baseDir, entry.name);
57
+ if (entry.isDirectory()) {
58
+ const subFiles = await getFiles(fullPath, relativePath);
59
+ files.push(...subFiles);
60
+ } else files.push(relativePath);
61
+ }
62
+ return files;
63
+ }
64
+ const filesToInclude = await getFiles(targetDir);
65
+ filesToInclude.sort();
66
+ await tar.create({
67
+ file: outfile,
68
+ cwd: targetDir,
69
+ portable: true,
70
+ mtime: /* @__PURE__ */ new Date(0),
71
+ gzip: true
72
+ }, filesToInclude);
73
+ return outfile;
74
+ };
75
+
76
+ //#endregion
77
+ exports.createTarGz = createTarGz;
78
+ exports.createTarGzTargetFiles = createTarGzTargetFiles;
@@ -0,0 +1,22 @@
1
+ //#region src/createTarGz.d.ts
2
+ declare const createTarGzTargetFiles: ({
3
+ outfile,
4
+ targetFiles
5
+ }: {
6
+ targetFiles: {
7
+ path: string;
8
+ name: string;
9
+ }[];
10
+ outfile: string;
11
+ }) => Promise<string>;
12
+ declare const createTarGz: ({
13
+ outfile,
14
+ targetDir,
15
+ excludeExts
16
+ }: {
17
+ targetDir: string;
18
+ outfile: string;
19
+ excludeExts?: string[];
20
+ }) => Promise<string>;
21
+ //#endregion
22
+ export { createTarGz, createTarGzTargetFiles };
@@ -0,0 +1,22 @@
1
+ //#region src/createTarGz.d.ts
2
+ declare const createTarGzTargetFiles: ({
3
+ outfile,
4
+ targetFiles
5
+ }: {
6
+ targetFiles: {
7
+ path: string;
8
+ name: string;
9
+ }[];
10
+ outfile: string;
11
+ }) => Promise<string>;
12
+ declare const createTarGz: ({
13
+ outfile,
14
+ targetDir,
15
+ excludeExts
16
+ }: {
17
+ targetDir: string;
18
+ outfile: string;
19
+ excludeExts?: string[];
20
+ }) => Promise<string>;
21
+ //#endregion
22
+ export { createTarGz, createTarGzTargetFiles };
@@ -0,0 +1,73 @@
1
+ import fs from "fs/promises";
2
+ import path from "path";
3
+ import * as tar from "tar";
4
+
5
+ //#region src/createTarGz.ts
6
+ const createTarGzTargetFiles = async ({ outfile, targetFiles }) => {
7
+ await fs.rm(outfile, { force: true });
8
+ const tmpDir = path.join(path.dirname(outfile), `.tmp-tar-${Date.now()}`);
9
+ await fs.mkdir(tmpDir, { recursive: true });
10
+ try {
11
+ for (const target of targetFiles) {
12
+ const sourcePath = target.path;
13
+ const destPath = path.join(tmpDir, target.name);
14
+ await fs.mkdir(path.dirname(destPath), { recursive: true });
15
+ if ((await fs.stat(sourcePath)).isDirectory()) await copyDir(sourcePath, destPath);
16
+ else await fs.copyFile(sourcePath, destPath);
17
+ }
18
+ await fs.mkdir(path.dirname(outfile), { recursive: true });
19
+ await tar.create({
20
+ file: outfile,
21
+ cwd: tmpDir,
22
+ portable: true,
23
+ mtime: /* @__PURE__ */ new Date(0),
24
+ gzip: true
25
+ }, await fs.readdir(tmpDir));
26
+ return outfile;
27
+ } finally {
28
+ await fs.rm(tmpDir, {
29
+ recursive: true,
30
+ force: true
31
+ });
32
+ }
33
+ };
34
+ async function copyDir(src, dest) {
35
+ await fs.mkdir(dest, { recursive: true });
36
+ const entries = await fs.readdir(src, { withFileTypes: true });
37
+ for (const entry of entries) {
38
+ const srcPath = path.join(src, entry.name);
39
+ const destPath = path.join(dest, entry.name);
40
+ if (entry.isDirectory()) await copyDir(srcPath, destPath);
41
+ else await fs.copyFile(srcPath, destPath);
42
+ }
43
+ }
44
+ const createTarGz = async ({ outfile, targetDir, excludeExts = [] }) => {
45
+ await fs.rm(outfile, { force: true });
46
+ async function getFiles(dir, baseDir = "") {
47
+ const entries = await fs.readdir(dir, { withFileTypes: true });
48
+ const files = [];
49
+ for (const entry of entries) {
50
+ if (excludeExts.some((pattern) => entry.name.includes(pattern))) continue;
51
+ const fullPath = path.join(dir, entry.name);
52
+ const relativePath = path.join(baseDir, entry.name);
53
+ if (entry.isDirectory()) {
54
+ const subFiles = await getFiles(fullPath, relativePath);
55
+ files.push(...subFiles);
56
+ } else files.push(relativePath);
57
+ }
58
+ return files;
59
+ }
60
+ const filesToInclude = await getFiles(targetDir);
61
+ filesToInclude.sort();
62
+ await tar.create({
63
+ file: outfile,
64
+ cwd: targetDir,
65
+ portable: true,
66
+ mtime: /* @__PURE__ */ new Date(0),
67
+ gzip: true
68
+ }, filesToInclude);
69
+ return outfile;
70
+ };
71
+
72
+ //#endregion
73
+ export { createTarGz, createTarGzTargetFiles };
@@ -0,0 +1,80 @@
1
+ const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
2
+ let fs_promises = require("fs/promises");
3
+ fs_promises = require_rolldown_runtime.__toESM(fs_promises);
4
+ let path = require("path");
5
+ path = require_rolldown_runtime.__toESM(path);
6
+ let jszip = require("jszip");
7
+ jszip = require_rolldown_runtime.__toESM(jszip);
8
+
9
+ //#region src/createZip.ts
10
+ const createZipTargetFiles = async ({ outfile, targetFiles }) => {
11
+ const zip = new jszip.default();
12
+ await fs_promises.default.rm(outfile, { force: true });
13
+ async function addFiles(dir, zipFolder) {
14
+ const files = await fs_promises.default.readdir(dir);
15
+ files.sort();
16
+ for (const file of files) {
17
+ const fullPath = path.default.join(dir, file);
18
+ if ((await fs_promises.default.stat(fullPath)).isDirectory()) {
19
+ const folder = zipFolder.folder(file);
20
+ if (!folder) continue;
21
+ await addFiles(fullPath, folder);
22
+ } else {
23
+ const data = await fs_promises.default.readFile(fullPath);
24
+ zipFolder.file(file, data);
25
+ }
26
+ }
27
+ }
28
+ for (const target of targetFiles) if ((await fs_promises.default.stat(target.path)).isDirectory()) {
29
+ const folder = zip.folder(target.name);
30
+ if (folder) await addFiles(target.path, folder);
31
+ } else {
32
+ const data = await fs_promises.default.readFile(target.path);
33
+ zip.file(target.name, data);
34
+ }
35
+ const content = await zip.generateAsync({
36
+ type: "nodebuffer",
37
+ compression: "DEFLATE",
38
+ compressionOptions: { level: 9 },
39
+ platform: "UNIX"
40
+ });
41
+ await fs_promises.default.mkdir(path.default.dirname(outfile), { recursive: true });
42
+ await fs_promises.default.writeFile(outfile, content);
43
+ return outfile;
44
+ };
45
+ const createZip = async ({ outfile, targetDir, excludeExts = [] }) => {
46
+ const zip = new jszip.default();
47
+ await fs_promises.default.rm(outfile, { force: true });
48
+ async function addFiles(dir, zipFolder) {
49
+ const files = await fs_promises.default.readdir(dir);
50
+ files.sort();
51
+ for (const file of files) {
52
+ if (excludeExts.some((pattern) => file.includes(pattern))) continue;
53
+ const fullPath = path.default.join(dir, file);
54
+ if ((await fs_promises.default.stat(fullPath)).isDirectory()) {
55
+ const folder = zipFolder.folder(file);
56
+ if (!folder) continue;
57
+ await addFiles(fullPath, folder);
58
+ } else {
59
+ const data = await fs_promises.default.readFile(fullPath);
60
+ zipFolder.file(file, data);
61
+ }
62
+ }
63
+ }
64
+ await addFiles(targetDir, zip);
65
+ zip.forEach((_, file) => {
66
+ file.date = /* @__PURE__ */ new Date(0);
67
+ });
68
+ const content = await zip.generateAsync({
69
+ type: "nodebuffer",
70
+ compression: "DEFLATE",
71
+ compressionOptions: { level: 9 },
72
+ platform: "UNIX"
73
+ });
74
+ await fs_promises.default.writeFile(outfile, content);
75
+ return outfile;
76
+ };
77
+
78
+ //#endregion
79
+ exports.createZip = createZip;
80
+ exports.createZipTargetFiles = createZipTargetFiles;
@@ -0,0 +1,22 @@
1
+ //#region src/createZip.d.ts
2
+ declare const createZipTargetFiles: ({
3
+ outfile,
4
+ targetFiles
5
+ }: {
6
+ targetFiles: {
7
+ path: string;
8
+ name: string;
9
+ }[];
10
+ outfile: string;
11
+ }) => Promise<string>;
12
+ declare const createZip: ({
13
+ outfile,
14
+ targetDir,
15
+ excludeExts
16
+ }: {
17
+ targetDir: string;
18
+ outfile: string;
19
+ excludeExts?: string[];
20
+ }) => Promise<string>;
21
+ //#endregion
22
+ export { createZip, createZipTargetFiles };
@@ -0,0 +1,22 @@
1
+ //#region src/createZip.d.ts
2
+ declare const createZipTargetFiles: ({
3
+ outfile,
4
+ targetFiles
5
+ }: {
6
+ targetFiles: {
7
+ path: string;
8
+ name: string;
9
+ }[];
10
+ outfile: string;
11
+ }) => Promise<string>;
12
+ declare const createZip: ({
13
+ outfile,
14
+ targetDir,
15
+ excludeExts
16
+ }: {
17
+ targetDir: string;
18
+ outfile: string;
19
+ excludeExts?: string[];
20
+ }) => Promise<string>;
21
+ //#endregion
22
+ export { createZip, createZipTargetFiles };
@@ -0,0 +1,75 @@
1
+ import fs from "fs/promises";
2
+ import path from "path";
3
+ import JSZip from "jszip";
4
+
5
+ //#region src/createZip.ts
6
+ const createZipTargetFiles = async ({ outfile, targetFiles }) => {
7
+ const zip = new JSZip();
8
+ await fs.rm(outfile, { force: true });
9
+ async function addFiles(dir, zipFolder) {
10
+ const files = await fs.readdir(dir);
11
+ files.sort();
12
+ for (const file of files) {
13
+ const fullPath = path.join(dir, file);
14
+ if ((await fs.stat(fullPath)).isDirectory()) {
15
+ const folder = zipFolder.folder(file);
16
+ if (!folder) continue;
17
+ await addFiles(fullPath, folder);
18
+ } else {
19
+ const data = await fs.readFile(fullPath);
20
+ zipFolder.file(file, data);
21
+ }
22
+ }
23
+ }
24
+ for (const target of targetFiles) if ((await fs.stat(target.path)).isDirectory()) {
25
+ const folder = zip.folder(target.name);
26
+ if (folder) await addFiles(target.path, folder);
27
+ } else {
28
+ const data = await fs.readFile(target.path);
29
+ zip.file(target.name, data);
30
+ }
31
+ const content = await zip.generateAsync({
32
+ type: "nodebuffer",
33
+ compression: "DEFLATE",
34
+ compressionOptions: { level: 9 },
35
+ platform: "UNIX"
36
+ });
37
+ await fs.mkdir(path.dirname(outfile), { recursive: true });
38
+ await fs.writeFile(outfile, content);
39
+ return outfile;
40
+ };
41
+ const createZip = async ({ outfile, targetDir, excludeExts = [] }) => {
42
+ const zip = new JSZip();
43
+ await fs.rm(outfile, { force: true });
44
+ async function addFiles(dir, zipFolder) {
45
+ const files = await fs.readdir(dir);
46
+ files.sort();
47
+ for (const file of files) {
48
+ if (excludeExts.some((pattern) => file.includes(pattern))) continue;
49
+ const fullPath = path.join(dir, file);
50
+ if ((await fs.stat(fullPath)).isDirectory()) {
51
+ const folder = zipFolder.folder(file);
52
+ if (!folder) continue;
53
+ await addFiles(fullPath, folder);
54
+ } else {
55
+ const data = await fs.readFile(fullPath);
56
+ zipFolder.file(file, data);
57
+ }
58
+ }
59
+ }
60
+ await addFiles(targetDir, zip);
61
+ zip.forEach((_, file) => {
62
+ file.date = /* @__PURE__ */ new Date(0);
63
+ });
64
+ const content = await zip.generateAsync({
65
+ type: "nodebuffer",
66
+ compression: "DEFLATE",
67
+ compressionOptions: { level: 9 },
68
+ platform: "UNIX"
69
+ });
70
+ await fs.writeFile(outfile, content);
71
+ return outfile;
72
+ };
73
+
74
+ //#endregion
75
+ export { createZip, createZipTargetFiles };
@@ -0,0 +1,27 @@
1
+ const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
2
+ const require_isObject = require('./isObject.cjs');
3
+ let crypto = require("crypto");
4
+ crypto = require_rolldown_runtime.__toESM(crypto);
5
+
6
+ //#region src/crypto.ts
7
+ const encryptJson = (jsonData, secretKey) => {
8
+ if (require_isObject.isObject(jsonData) === false) throw new Error("jsonData must be an object");
9
+ const iv = crypto.default.randomBytes(16);
10
+ const cipher = crypto.default.createCipheriv("aes-256-cbc", Buffer.from(secretKey, "hex"), iv);
11
+ let encrypted = cipher.update(JSON.stringify(jsonData));
12
+ encrypted = Buffer.concat([encrypted, cipher.final()]);
13
+ return [iv.toString("hex"), encrypted.toString("hex")].join(":");
14
+ };
15
+ const decryptJson = (encryptedData, secretKey) => {
16
+ const parts = encryptedData.split(":");
17
+ const iv = Buffer.from(parts[0], "hex");
18
+ const encryptedText = Buffer.from(parts[1], "hex");
19
+ const decipher = crypto.default.createDecipheriv("aes-256-cbc", Buffer.from(secretKey, "hex"), iv);
20
+ let decrypted = decipher.update(encryptedText);
21
+ decrypted = Buffer.concat([decrypted, decipher.final()]);
22
+ return JSON.parse(decrypted.toString());
23
+ };
24
+
25
+ //#endregion
26
+ exports.decryptJson = decryptJson;
27
+ exports.encryptJson = encryptJson;
@@ -0,0 +1,5 @@
1
+ //#region src/crypto.d.ts
2
+ declare const encryptJson: (jsonData: Record<string, any>, secretKey: string) => string;
3
+ declare const decryptJson: <T>(encryptedData: string, secretKey: string) => T;
4
+ //#endregion
5
+ export { decryptJson, encryptJson };
@@ -0,0 +1,5 @@
1
+ //#region src/crypto.d.ts
2
+ declare const encryptJson: (jsonData: Record<string, any>, secretKey: string) => string;
3
+ declare const decryptJson: <T>(encryptedData: string, secretKey: string) => T;
4
+ //#endregion
5
+ export { decryptJson, encryptJson };
package/dist/crypto.js ADDED
@@ -0,0 +1,24 @@
1
+ import { isObject } from "./isObject.js";
2
+ import crypto from "crypto";
3
+
4
+ //#region src/crypto.ts
5
+ const encryptJson = (jsonData, secretKey) => {
6
+ if (isObject(jsonData) === false) throw new Error("jsonData must be an object");
7
+ const iv = crypto.randomBytes(16);
8
+ const cipher = crypto.createCipheriv("aes-256-cbc", Buffer.from(secretKey, "hex"), iv);
9
+ let encrypted = cipher.update(JSON.stringify(jsonData));
10
+ encrypted = Buffer.concat([encrypted, cipher.final()]);
11
+ return [iv.toString("hex"), encrypted.toString("hex")].join(":");
12
+ };
13
+ const decryptJson = (encryptedData, secretKey) => {
14
+ const parts = encryptedData.split(":");
15
+ const iv = Buffer.from(parts[0], "hex");
16
+ const encryptedText = Buffer.from(parts[1], "hex");
17
+ const decipher = crypto.createDecipheriv("aes-256-cbc", Buffer.from(secretKey, "hex"), iv);
18
+ let decrypted = decipher.update(encryptedText);
19
+ decrypted = Buffer.concat([decrypted, decipher.final()]);
20
+ return JSON.parse(decrypted.toString());
21
+ };
22
+
23
+ //#endregion
24
+ export { decryptJson, encryptJson };
package/dist/cwd.cjs ADDED
@@ -0,0 +1,9 @@
1
+ const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
2
+ let workspace_tools = require("workspace-tools");
3
+ workspace_tools = require_rolldown_runtime.__toESM(workspace_tools);
4
+
5
+ //#region src/cwd.ts
6
+ const getCwd = () => (0, workspace_tools.findPackageRoot)(process.cwd());
7
+
8
+ //#endregion
9
+ exports.getCwd = getCwd;
package/dist/cwd.d.cts ADDED
@@ -0,0 +1,4 @@
1
+ //#region src/cwd.d.ts
2
+ declare const getCwd: () => string;
3
+ //#endregion
4
+ export { getCwd };
package/dist/cwd.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ //#region src/cwd.d.ts
2
+ declare const getCwd: () => string;
3
+ //#endregion
4
+ export { getCwd };
package/dist/cwd.js ADDED
@@ -0,0 +1,7 @@
1
+ import { findPackageRoot } from "workspace-tools";
2
+
3
+ //#region src/cwd.ts
4
+ const getCwd = () => findPackageRoot(process.cwd());
5
+
6
+ //#endregion
7
+ export { getCwd };
@@ -0,0 +1,10 @@
1
+
2
+ //#region src/getAndroidSdkPath.ts
3
+ function getAndroidSdkPath() {
4
+ const sdkRoot = process.env["ANDROID_HOME"] || process.env["ANDROID_SDK_ROOT"];
5
+ if (!sdkRoot) throw new Error("ANDROID_HOME or ANDROID_SDK_ROOT environment variable is not set. Please follow instructions at: https://reactnative.dev/docs/set-up-your-environment?platform=android");
6
+ return sdkRoot;
7
+ }
8
+
9
+ //#endregion
10
+ exports.getAndroidSdkPath = getAndroidSdkPath;
@@ -0,0 +1,4 @@
1
+ //#region src/getAndroidSdkPath.d.ts
2
+ declare function getAndroidSdkPath(): string;
3
+ //#endregion
4
+ export { getAndroidSdkPath };
@@ -0,0 +1,4 @@
1
+ //#region src/getAndroidSdkPath.d.ts
2
+ declare function getAndroidSdkPath(): string;
3
+ //#endregion
4
+ export { getAndroidSdkPath };
@@ -0,0 +1,9 @@
1
+ //#region src/getAndroidSdkPath.ts
2
+ function getAndroidSdkPath() {
3
+ const sdkRoot = process.env["ANDROID_HOME"] || process.env["ANDROID_SDK_ROOT"];
4
+ if (!sdkRoot) throw new Error("ANDROID_HOME or ANDROID_SDK_ROOT environment variable is not set. Please follow instructions at: https://reactnative.dev/docs/set-up-your-environment?platform=android");
5
+ return sdkRoot;
6
+ }
7
+
8
+ //#endregion
9
+ export { getAndroidSdkPath };
package/dist/index.cjs ADDED
@@ -0,0 +1,48 @@
1
+ const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
2
+ const require_banner = require('./banner.cjs');
3
+ const require_ConfigBuilder = require('./ConfigBuilder.cjs');
4
+ const require_cwd = require('./cwd.cjs');
5
+ const require_copyDirToTmp = require('./copyDirToTmp.cjs');
6
+ const require_createTarBr = require('./createTarBr.cjs');
7
+ const require_createTarGz = require('./createTarGz.cjs');
8
+ const require_createZip = require('./createZip.cjs');
9
+ const require_crypto = require('./crypto.cjs');
10
+ const require_getAndroidSdkPath = require('./getAndroidSdkPath.cjs');
11
+ const require_loadConfig = require('./loadConfig.cjs');
12
+ const require_log = require('./log.cjs');
13
+ const require_makeEnv = require('./makeEnv.cjs');
14
+ const require_transformEnv = require('./transformEnv.cjs');
15
+ const require_transformTemplate = require('./transformTemplate.cjs');
16
+ let picocolors = require("picocolors");
17
+ picocolors = require_rolldown_runtime.__toESM(picocolors);
18
+ let __clack_prompts = require("@clack/prompts");
19
+ __clack_prompts = require_rolldown_runtime.__toESM(__clack_prompts);
20
+
21
+ exports.ConfigBuilder = require_ConfigBuilder.ConfigBuilder;
22
+ exports.banner = require_banner.banner;
23
+ exports.colors = picocolors.default;
24
+ exports.copyDirToTmp = require_copyDirToTmp.copyDirToTmp;
25
+ exports.createTarBr = require_createTarBr.createTarBr;
26
+ exports.createTarBrTargetFiles = require_createTarBr.createTarBrTargetFiles;
27
+ exports.createTarGz = require_createTarGz.createTarGz;
28
+ exports.createTarGzTargetFiles = require_createTarGz.createTarGzTargetFiles;
29
+ exports.createZip = require_createZip.createZip;
30
+ exports.createZipTargetFiles = require_createZip.createZipTargetFiles;
31
+ exports.decryptJson = require_crypto.decryptJson;
32
+ exports.encryptJson = require_crypto.encryptJson;
33
+ exports.getAndroidSdkPath = require_getAndroidSdkPath.getAndroidSdkPath;
34
+ exports.getCwd = require_cwd.getCwd;
35
+ exports.link = require_banner.link;
36
+ exports.loadConfig = require_loadConfig.loadConfig;
37
+ exports.loadConfigSync = require_loadConfig.loadConfigSync;
38
+ exports.log = require_log.log;
39
+ exports.makeEnv = require_makeEnv.makeEnv;
40
+ Object.defineProperty(exports, 'p', {
41
+ enumerable: true,
42
+ get: function () {
43
+ return __clack_prompts;
44
+ }
45
+ });
46
+ exports.printBanner = require_banner.printBanner;
47
+ exports.transformEnv = require_transformEnv.transformEnv;
48
+ exports.transformTemplate = require_transformTemplate.transformTemplate;