xavren 1.0.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.
@@ -0,0 +1,9 @@
1
+ export declare const DOMAIN = "http://localhost:3000";
2
+ export declare const DOMAINAPI: string;
3
+ export declare const LOGINWITHPHRASE: string;
4
+ export declare const UPDATEENVURL: string;
5
+ export declare const ADDENVURL: string;
6
+ export declare const GETPROJECTBYIDURL: string;
7
+ export declare const FETCHENVURL: string;
8
+ export declare const APPNAME = "xavren";
9
+ //# sourceMappingURL=const.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,MAAM,0BAA0B,CAAC;AAC9C,eAAO,MAAM,SAAS,QAAiB,CAAC;AACxC,eAAO,MAAM,eAAe,QAAyC,CAAA;AACrE,eAAO,MAAM,YAAY,QAAoC,CAAA;AAC7D,eAAO,MAAM,SAAS,QAAiC,CAAA;AACvD,eAAO,MAAM,iBAAiB,QAA6B,CAAA;AAC3D,eAAO,MAAM,WAAW,QAA6B,CAAA;AACrD,eAAO,MAAM,OAAO,WAAY,CAAA"}
package/dist/const.js ADDED
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.APPNAME = exports.FETCHENVURL = exports.GETPROJECTBYIDURL = exports.ADDENVURL = exports.UPDATEENVURL = exports.LOGINWITHPHRASE = exports.DOMAINAPI = exports.DOMAIN = void 0;
4
+ exports.DOMAIN = "http://localhost:3000";
5
+ exports.DOMAINAPI = exports.DOMAIN + "/api";
6
+ exports.LOGINWITHPHRASE = exports.DOMAINAPI + "/auth/login-secret-phrase";
7
+ exports.UPDATEENVURL = exports.DOMAINAPI + "/projects/env/update";
8
+ exports.ADDENVURL = exports.DOMAINAPI + "/projects/env/add";
9
+ exports.GETPROJECTBYIDURL = exports.DOMAINAPI + "/projects/one";
10
+ exports.FETCHENVURL = exports.DOMAINAPI + "/projects/env";
11
+ exports.APPNAME = "xavren";
12
+ //# sourceMappingURL=const.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"const.js","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":";;;AACa,QAAA,MAAM,GAAG,uBAAuB,CAAC;AACjC,QAAA,SAAS,GAAG,cAAM,GAAE,MAAM,CAAC;AAC3B,QAAA,eAAe,GAAG,iBAAS,GAAE,2BAA2B,CAAA;AACxD,QAAA,YAAY,GAAG,iBAAS,GAAE,sBAAsB,CAAA;AAChD,QAAA,SAAS,GAAG,iBAAS,GAAE,mBAAmB,CAAA;AAC1C,QAAA,iBAAiB,GAAG,iBAAS,GAAE,eAAe,CAAA;AAC9C,QAAA,WAAW,GAAG,iBAAS,GAAE,eAAe,CAAA;AACxC,QAAA,OAAO,GAAI,QAAQ,CAAA"}
@@ -0,0 +1,19 @@
1
+ export declare function handleDecrypt({ encrypted: encryptedData, passphrase, }: {
2
+ encrypted: any;
3
+ passphrase: string;
4
+ }): string;
5
+ export declare function deriveKey(passphrase: string, salt: Buffer): Buffer<ArrayBufferLike>;
6
+ export declare function handleEncryptEnv({ data: obj, passphrase: secretPhrase, }: {
7
+ data: Record<string, string>;
8
+ passphrase: string;
9
+ }): {
10
+ title: string;
11
+ value: string;
12
+ salt: string;
13
+ ivTitle: string;
14
+ ivValue: string;
15
+ authTagTitle: string;
16
+ authTagValue: string;
17
+ };
18
+ export declare function handleDecryptEnv({ title, value, salt, ivTitle, ivValue, authTagTitle, authTagValue, }: Record<string, string>, passphrase: string): Record<string, any>;
19
+ //# sourceMappingURL=cryption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cryption.d.ts","sourceRoot":"","sources":["../src/cryption.ts"],"names":[],"mappings":"AAIA,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EAAE,aAAa,EACxB,UAAU,GACX,EAAE;IACD,SAAS,EAAE,GAAG,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,MAAM,CAkBT;AAED,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,2BAEzD;AACD,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EAAE,GAAG,EACT,UAAU,EAAE,YAAY,GACzB,EAAE;IACD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB;;;;;;;;EAyCA;AAED,wBAAgB,gBAAgB,CAC9B,EACE,KAAK,EACL,KAAK,EACL,IAAI,EACJ,OAAO,EACP,OAAO,EACP,YAAY,EACZ,YAAY,GACb,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACzB,UAAU,EAAE,MAAM,GACjB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAwCrB"}
@@ -0,0 +1,92 @@
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.handleDecrypt = handleDecrypt;
7
+ exports.deriveKey = deriveKey;
8
+ exports.handleEncryptEnv = handleEncryptEnv;
9
+ exports.handleDecryptEnv = handleDecryptEnv;
10
+ const crypto_1 = __importDefault(require("crypto"));
11
+ const ALGORITHM = "aes-256-gcm";
12
+ function handleDecrypt({ encrypted: encryptedData, passphrase, }) {
13
+ let { salt: saltHex, iv: ivHex, authTag: tagHex, encrypted } = encryptedData;
14
+ encrypted = encrypted || encryptedData?.key;
15
+ const salt = Buffer.from(saltHex, "hex");
16
+ const iv = Buffer.from(ivHex, "hex");
17
+ const tag = Buffer.from(tagHex, "hex");
18
+ const key = crypto_1.default.scryptSync(passphrase, salt, 32);
19
+ const decipher = crypto_1.default.createDecipheriv(ALGORITHM, key, iv);
20
+ decipher.setAuthTag(tag);
21
+ let decrypted = decipher.update(encrypted, "hex", "utf8");
22
+ decrypted += decipher.final("utf8");
23
+ // return tagHex
24
+ return decrypted;
25
+ }
26
+ function deriveKey(passphrase, salt) {
27
+ return crypto_1.default.scryptSync(passphrase, salt, 32);
28
+ }
29
+ function handleEncryptEnv({ data: obj, passphrase: secretPhrase, }) {
30
+ // Generate a random salt
31
+ const salt = crypto_1.default.randomBytes(16);
32
+ // Derive a key from secret phrase + salt
33
+ const key = deriveKey(secretPhrase, salt);
34
+ // Extract key-value
35
+ const title = obj.title;
36
+ const value = obj.value;
37
+ // Generate random IV for each field
38
+ const iv1 = crypto_1.default.randomBytes(16);
39
+ const iv2 = crypto_1.default.randomBytes(16);
40
+ // Encrypt title
41
+ const cipher1 = crypto_1.default.createCipheriv("aes-256-gcm", key, iv1);
42
+ const encryptedTitle = Buffer.concat([
43
+ cipher1.update(title, "utf8"),
44
+ cipher1.final(),
45
+ ]);
46
+ const authTag1 = cipher1.getAuthTag();
47
+ // Encrypt value
48
+ const cipher2 = crypto_1.default.createCipheriv("aes-256-gcm", key, iv2);
49
+ const encryptedValue = Buffer.concat([
50
+ cipher2.update(value, "utf8"),
51
+ cipher2.final(),
52
+ ]);
53
+ const authTag2 = cipher2.getAuthTag();
54
+ return {
55
+ title: encryptedTitle.toString("hex"),
56
+ value: encryptedValue.toString("hex"),
57
+ salt: salt.toString("hex"),
58
+ ivTitle: iv1.toString("hex"),
59
+ ivValue: iv2.toString("hex"),
60
+ authTagTitle: authTag1.toString("hex"),
61
+ authTagValue: authTag2.toString("hex"),
62
+ // _id:obj?.item?._id
63
+ };
64
+ }
65
+ function handleDecryptEnv({ title, value, salt, ivTitle, ivValue, authTagTitle, authTagValue, }, passphrase) {
66
+ const saltBuf = Buffer.from(salt, "hex");
67
+ const key = deriveKey(passphrase, saltBuf);
68
+ // --- Decrypt title ---
69
+ const decipherTitle = crypto_1.default.createDecipheriv(ALGORITHM, key, Buffer.from(ivTitle, "hex"));
70
+ decipherTitle.setAuthTag(Buffer.from(authTagTitle, "hex"));
71
+ let decryptedTitle = decipherTitle.update(Buffer.from(title, "hex"));
72
+ decryptedTitle = Buffer.concat([decryptedTitle, decipherTitle.final()]);
73
+ // --- Decrypt value ---
74
+ const decipherValue = crypto_1.default.createDecipheriv(ALGORITHM, key, Buffer.from(ivValue, "hex"));
75
+ decipherValue.setAuthTag(Buffer.from(authTagValue, "hex"));
76
+ let decryptedValue = decipherValue.update(Buffer.from(value, "hex"));
77
+ decryptedValue = Buffer.concat([decryptedValue, decipherValue.final()]);
78
+ return {
79
+ title: decryptedTitle.toString(),
80
+ value: decryptedValue.toString(),
81
+ // item:{
82
+ // title,
83
+ // value,
84
+ // salt,
85
+ // ivTitle,
86
+ // ivValue,
87
+ // authTagTitle,
88
+ // authTagValue,
89
+ // }
90
+ };
91
+ }
92
+ //# sourceMappingURL=cryption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cryption.js","sourceRoot":"","sources":["../src/cryption.ts"],"names":[],"mappings":";;;;;AAIA,sCAwBC;AAED,8BAEC;AACD,4CA+CC;AAED,4CAmDC;AArID,oDAA4B;AAE5B,MAAM,SAAS,GAAG,aAAa,CAAC;AAEhC,SAAgB,aAAa,CAAC,EAC5B,SAAS,EAAE,aAAa,EACxB,UAAU,GAIX;IACC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC;IAC7E,SAAS,GAAG,SAAS,IAAI,aAAa,EAAE,GAAG,CAAC;IAE5C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACzC,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACrC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAEvC,MAAM,GAAG,GAAG,gBAAM,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,gBAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAE7D,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAEzB,IAAI,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC1D,SAAS,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpC,gBAAgB;IAEhB,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAgB,SAAS,CAAC,UAAkB,EAAE,IAAY;IACxD,OAAO,gBAAM,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AACjD,CAAC;AACD,SAAgB,gBAAgB,CAAC,EAC/B,IAAI,EAAE,GAAG,EACT,UAAU,EAAE,YAAY,GAIzB;IACC,yBAAyB;IACzB,MAAM,IAAI,GAAG,gBAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAEpC,yCAAyC;IACzC,MAAM,GAAG,GAAG,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAE1C,oBAAoB;IACpB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IACxB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IAExB,oCAAoC;IACpC,MAAM,GAAG,GAAG,gBAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,gBAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAEnC,gBAAgB;IAChB,MAAM,OAAO,GAAG,gBAAM,CAAC,cAAc,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC/D,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;QACnC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;QAC7B,OAAO,CAAC,KAAK,EAAE;KAChB,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAEtC,gBAAgB;IAChB,MAAM,OAAO,GAAG,gBAAM,CAAC,cAAc,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC/D,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;QACnC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;QAC7B,OAAO,CAAC,KAAK,EAAE;KAChB,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAEtC,OAAO;QACL,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC;QACrC,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC;QACrC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC1B,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC5B,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC5B,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;QACtC,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;QACtC,qBAAqB;KACtB,CAAC;AACJ,CAAC;AAED,SAAgB,gBAAgB,CAC9B,EACE,KAAK,EACL,KAAK,EACL,IAAI,EACJ,OAAO,EACP,OAAO,EACP,YAAY,EACZ,YAAY,GACW,EACzB,UAAkB;IAElB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAE3C,wBAAwB;IACxB,MAAM,aAAa,GAAG,gBAAM,CAAC,gBAAgB,CAC3C,SAAS,EACT,GAAG,EACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAC5B,CAAC;IACF,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;IAC3D,IAAI,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACrE,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAExE,wBAAwB;IACxB,MAAM,aAAa,GAAG,gBAAM,CAAC,gBAAgB,CAC3C,SAAS,EACT,GAAG,EACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAC5B,CAAC;IACF,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;IAC3D,IAAI,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACrE,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAExE,OAAO;QACL,KAAK,EAAE,cAAc,CAAC,QAAQ,EAAE;QAChC,KAAK,EAAE,cAAc,CAAC,QAAQ,EAAE;QAEhC,aAAa;QAEb,aAAa;QACb,WAAW;QACX,UAAU;QACV,aAAa;QACb,aAAa;QACb,kBAAkB;QAClB,kBAAkB;QAElB,IAAI;KACL,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { ISyncData } from "./types";
2
+ export declare const config: ({ authPhrase, updateCloud, projectKey, env, sync, onSync, omit }: {
3
+ authPhrase: string;
4
+ projectKey: string;
5
+ env?: string;
6
+ sync?: boolean;
7
+ omit?: string[];
8
+ updateCloud?: boolean;
9
+ onSync?: (data: ISyncData) => void;
10
+ }) => Promise<{
11
+ getEnvs: () => Record<string, string>;
12
+ }>;
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAkFpC,eAAO,MAAM,MAAM,GAAU,kEAQ1B;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAC,MAAM,EAAE,CAAC;IACf,WAAW,CAAC,EAAC,OAAO,CAAA;IACrB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;CACpC,KAAG,OAAO,CAAC;IAAC,OAAO,EAAC,MAAI,MAAM,CAAC,MAAM,EAAC,MAAM,CAAC,CAAA;CAAC,CAsD9C,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,113 @@
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.config = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const chokidar_1 = __importDefault(require("chokidar"));
9
+ const dotenv_1 = __importDefault(require("dotenv"));
10
+ dotenv_1.default.config();
11
+ const utils_1 = require("./utils");
12
+ const state_1 = require("./state");
13
+ const websocket_1 = require("./websocket");
14
+ function watchEnv({ filePath = ".env", onChange, secretPhrase, key, }) {
15
+ if (!fs_1.default.existsSync(filePath)) {
16
+ console.warn(`⚠️ Env file not found at path: ${filePath}`);
17
+ }
18
+ const watcher = chokidar_1.default.watch(filePath, { persistent: true });
19
+ watcher.on("change", (path) => {
20
+ try {
21
+ if (onChange) {
22
+ const content = fs_1.default.readFileSync(path, "utf8"); // read file content
23
+ onChange(content, path);
24
+ }
25
+ }
26
+ catch (err) {
27
+ console.warn(`⚠️ Failed to read env file: ${err.message || err}`);
28
+ }
29
+ });
30
+ watcher.on("error", (err) => {
31
+ console.warn(`⚠️ Watcher error: ${err.message || err}`);
32
+ });
33
+ return watcher; // return watcher in case you want to close it later
34
+ }
35
+ // const readandsave
36
+ const mount = async ({ path, secretPhrase, key, sync, project, fetchproject, }) => {
37
+ const content = fs_1.default.readFileSync(path, "utf8");
38
+ await onChange({ content, secretPhrase, key, sync, project, fetchproject });
39
+ };
40
+ const onChange = async ({ content, secretPhrase, key, sync, project, fetchproject, }) => {
41
+ let c = (0, utils_1.parseAndUniqueEnv)(content);
42
+ await (0, utils_1.addEnv)({ key: fetchproject, secretPhrase, sync, body: c, project });
43
+ };
44
+ const readenv = () => {
45
+ let path = state_1.sessionStore.getState().config.envfile;
46
+ const content = fs_1.default.readFileSync(path, "utf8");
47
+ let c = (0, utils_1.parseAndUniqueEnv)(content);
48
+ return c;
49
+ };
50
+ const setinitalEnv = () => {
51
+ let c = readenv();
52
+ state_1.envStore.getState().setEnvs(c);
53
+ };
54
+ const config = async ({ authPhrase, updateCloud = true, projectKey, env = ".env", sync = false, onSync = () => { }, omit = [] }) => {
55
+ const [secretPhrase, email] = authPhrase.split("_kk_");
56
+ state_1.sessionStore.getState().setSecretPhrase(secretPhrase);
57
+ state_1.sessionStore.getState().setEmail(email);
58
+ const [keyy, project] = projectKey.split("_kk_");
59
+ let fetchproject = await (0, utils_1.getProjectById)(project);
60
+ state_1.sessionStore.getState().setProject(fetchproject.data);
61
+ state_1.sessionStore
62
+ .getState()
63
+ .setConfig({ envfile: env, sync, projectKey, authPhrase, onSync, omit, updateCloud });
64
+ setinitalEnv();
65
+ let socket = new websocket_1.SocketClient();
66
+ if (fetchproject?.success) {
67
+ socket.socket.emit("joinproject", { project: project });
68
+ }
69
+ else {
70
+ console.warn("Invalid project");
71
+ return;
72
+ }
73
+ await (0, utils_1.getEnvs)({ project: project, key: fetchproject.data });
74
+ await mount({
75
+ path: env,
76
+ secretPhrase,
77
+ key: keyy,
78
+ sync,
79
+ project,
80
+ fetchproject: fetchproject.data,
81
+ });
82
+ watchEnv({
83
+ onChange: async (content) => {
84
+ await onChange({
85
+ content,
86
+ secretPhrase,
87
+ key: keyy,
88
+ sync,
89
+ project,
90
+ fetchproject: fetchproject.data,
91
+ });
92
+ },
93
+ secretPhrase,
94
+ });
95
+ let getEnvs_ = () => {
96
+ let envs = state_1.envStore.getState().envs;
97
+ return (0, utils_1.getenvObject)(envs);
98
+ };
99
+ return {
100
+ getEnvs: getEnvs_
101
+ };
102
+ };
103
+ exports.config = config;
104
+ (0, exports.config)({
105
+ // sync:true,
106
+ projectKey: "4c6350c2d63f8c2705b6bee6447108af5872552c30b2350f54f5aea79f609aacb41ac9d3b3af8c787eb3e5c5_kk_68b58256949d3b3c484f2eac",
107
+ authPhrase: "123456_kk_princewillasotibe123@gmail.com",
108
+ onSync: (data) => {
109
+ console.log(data, "Dataaammma");
110
+ },
111
+ // omit:["secret"]
112
+ });
113
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ // dotenv-cloud/index.js
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ // import fs from 'fs';
8
+ // import path from 'path';
9
+ // import WebSocket from 'ws';
10
+ // import crypto from 'crypto';
11
+ // const fs = require("fs");
12
+ // const chokidar = require("chokidar");
13
+ const fs_1 = __importDefault(require("fs"));
14
+ const chokidar_1 = __importDefault(require("chokidar"));
15
+ // const watcher = chokidar.watch(".env", { persistent: true });
16
+ // watcher.on("change", (path) => {
17
+ // console.log(`${path} changed, syncing with cloud DB...`);
18
+ // // 👉 trigger your sync
19
+ // });
20
+ function watchEnv({ filePath = ".env", onChange }) {
21
+ const watcher = chokidar_1.default.watch(filePath, { persistent: true });
22
+ watcher.on("change", (path) => {
23
+ console.log(`${path} changed, syncing with cloud DB...`);
24
+ if (onChange) {
25
+ const content = fs_1.default.readFileSync(path, "utf8"); // read file content
26
+ onChange(content, path);
27
+ }
28
+ });
29
+ return watcher; // return watcher in case you want to close it later
30
+ }
31
+ watchEnv({ onChange: (content) => {
32
+ console.log(content);
33
+ } });
34
+ // function encrypt(text, key, secret) {
35
+ // const cipher = crypto.createCipher('aes-256-cbc', key + secret);
36
+ // let encrypted = cipher.update(text, 'utf8', 'hex');
37
+ // encrypted += cipher.final('hex');
38
+ // return encrypted;
39
+ // }
40
+ // function decrypt(text, key, secret) {
41
+ // const decipher = crypto.createDecipher('aes-256-cbc', key + secret);
42
+ // let decrypted = decipher.update(text, 'hex', 'utf8');
43
+ // decrypted += decipher.final('utf8');
44
+ // return decrypted;
45
+ // }
46
+ // function parseEnvFile(envPath) {
47
+ // if (!fs.existsSync(envPath)) return {};
48
+ // const raw = fs.readFileSync(envPath, 'utf8');
49
+ // const lines = raw.split('\n');
50
+ // const parsed = {};
51
+ // for (const line of lines) {
52
+ // if (!line || line.startsWith('#')) continue;
53
+ // const [k, ...v] = line.split('=');
54
+ // parsed[k.trim()] = v.join('=').trim();
55
+ // }
56
+ // return parsed;
57
+ // }
58
+ // function writeProcessEnv(parsedEnv, key, secret) {
59
+ // Object.keys(parsedEnv).forEach(k => {
60
+ // try {
61
+ // process.env[k] = decrypt(parsedEnv[k], key, secret);
62
+ // } catch {
63
+ // process.env[k] = parsedEnv[k];
64
+ // }
65
+ // });
66
+ // }
67
+ // export function config({ env, onChange, key, secret }) {
68
+ // const envPath = env || path.resolve(process.cwd(), '.env');
69
+ // let envVars = parseEnvFile(envPath);
70
+ // writeProcessEnv(envVars, key, secret);
71
+ // // WebSocket connection for real-time sync
72
+ // const ws = new WebSocket('wss://your-dotenv-cloud-server.com');
73
+ // ws.on('open', () => {
74
+ // console.log('Connected to dotenv-cloud server');
75
+ // const encryptedEnv = encrypt(JSON.stringify(envVars), key, secret);
76
+ // ws.send(JSON.stringify({ type: 'init', env: encryptedEnv }));
77
+ // });
78
+ // ws.on('message', message => {
79
+ // try {
80
+ // const data = JSON.parse(message);
81
+ // if (data.type === 'update') {
82
+ // const updatedEnv = JSON.parse(decrypt(data.env, key, secret));
83
+ // const changedEnv = {};
84
+ // Object.keys(updatedEnv).forEach(k => {
85
+ // if (envVars[k] !== updatedEnv[k]) {
86
+ // changedEnv[k] = updatedEnv[k];
87
+ // }
88
+ // });
89
+ // envVars = { ...envVars, ...updatedEnv };
90
+ // writeProcessEnv(envVars, key, secret);
91
+ // if (onChange) onChange({ env: envVars, changedEnv });
92
+ // }
93
+ // } catch (err) {
94
+ // console.error('Failed to process update from server:', err);
95
+ // }
96
+ // });
97
+ // // Watch local env file changes and sync to server
98
+ // fs.watch(envPath, (eventType) => {
99
+ // if (eventType === 'change') {
100
+ // const newEnv = parseEnvFile(envPath);
101
+ // const changedEnv = {};
102
+ // Object.keys(newEnv).forEach(k => {
103
+ // if (envVars[k] !== newEnv[k]) changedEnv[k] = newEnv[k];
104
+ // });
105
+ // if (Object.keys(changedEnv).length === 0) return;
106
+ // envVars = { ...envVars, ...newEnv };
107
+ // writeProcessEnv(envVars, key, secret);
108
+ // if (onChange) onChange({ env: envVars, changedEnv });
109
+ // // Send updated env to server
110
+ // const encryptedEnv = encrypt(JSON.stringify(envVars), key, secret);
111
+ // ws.send(JSON.stringify({ type: 'update', env: encryptedEnv }));
112
+ // }
113
+ // });
114
+ // }
115
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,wBAAwB;;;;;AAExB,uBAAuB;AACvB,2BAA2B;AAC3B,8BAA8B;AAC9B,+BAA+B;AAE/B,4BAA4B;AAC5B,wCAAwC;AACxC,4CAAoB;AACpB,wDAAgC;AAEhC,gEAAgE;AAEhE,mCAAmC;AACnC,8DAA8D;AAC9D,4BAA4B;AAC5B,MAAM;AAEN,SAAS,QAAQ,CAAC,EAAC,QAAQ,GAAE,MAAM,EAAE,QAAQ,EAAiC;IAC5E,MAAM,OAAO,GAAG,kBAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/D,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAW,EAAE,EAAE;QACnC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,oCAAoC,CAAC,CAAC;QACzD,IAAI,QAAQ,EAAE,CAAC;YAEZ,MAAM,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,oBAAoB;YACvE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,CAAC,oDAAoD;AACtE,CAAC;AAGD,QAAQ,CAAC,EAAC,QAAQ,EAAC,CAAC,OAAO,EAAC,EAAE;QAC5B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAEtB,CAAC,EAAC,CAAC,CAAA;AAGH,wCAAwC;AACxC,qEAAqE;AACrE,wDAAwD;AACxD,sCAAsC;AACtC,sBAAsB;AACtB,IAAI;AAEJ,wCAAwC;AACxC,yEAAyE;AACzE,0DAA0D;AAC1D,yCAAyC;AACzC,sBAAsB;AACtB,IAAI;AAEJ,mCAAmC;AACnC,4CAA4C;AAC5C,kDAAkD;AAClD,mCAAmC;AACnC,uBAAuB;AACvB,gCAAgC;AAChC,mDAAmD;AACnD,yCAAyC;AACzC,6CAA6C;AAC7C,MAAM;AACN,mBAAmB;AACnB,IAAI;AAEJ,qDAAqD;AACrD,0CAA0C;AAC1C,YAAY;AACZ,6DAA6D;AAC7D,gBAAgB;AAChB,uCAAuC;AACvC,QAAQ;AACR,QAAQ;AACR,IAAI;AAEJ,2DAA2D;AAC3D,gEAAgE;AAChE,yCAAyC;AACzC,2CAA2C;AAE3C,+CAA+C;AAC/C,oEAAoE;AAEpE,0BAA0B;AAC1B,uDAAuD;AACvD,0EAA0E;AAC1E,oEAAoE;AACpE,QAAQ;AAER,kCAAkC;AAClC,YAAY;AACZ,0CAA0C;AAC1C,sCAAsC;AACtC,yEAAyE;AACzE,iCAAiC;AACjC,iDAAiD;AACjD,gDAAgD;AAChD,6CAA6C;AAC7C,cAAc;AACd,cAAc;AACd,mDAAmD;AACnD,iDAAiD;AACjD,gEAAgE;AAChE,UAAU;AACV,sBAAsB;AACtB,qEAAqE;AACrE,QAAQ;AACR,QAAQ;AAER,uDAAuD;AACvD,uCAAuC;AACvC,oCAAoC;AACpC,8CAA8C;AAC9C,+BAA+B;AAC/B,2CAA2C;AAC3C,mEAAmE;AACnE,YAAY;AACZ,0DAA0D;AAC1D,6CAA6C;AAC7C,+CAA+C;AAC/C,8DAA8D;AAC9D,sCAAsC;AACtC,4EAA4E;AAC5E,wEAAwE;AACxE,QAAQ;AACR,QAAQ;AACR,IAAI"}
@@ -0,0 +1,4 @@
1
+ import { EnvStore, SessionStore } from "./types";
2
+ export declare const sessionStore: import("zustand/vanilla").StoreApi<SessionStore>;
3
+ export declare const envStore: import("zustand/vanilla").StoreApi<EnvStore>;
4
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAKjD,eAAO,MAAM,YAAY,kDActB,CAAC;AAUJ,eAAO,MAAM,QAAQ,8CAuBlB,CAAC"}
package/dist/state.js ADDED
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.envStore = exports.sessionStore = void 0;
4
+ const vanilla_1 = require("zustand/vanilla");
5
+ // Create store without React
6
+ exports.sessionStore = (0, vanilla_1.createStore)((set) => ({
7
+ user: null,
8
+ project: null,
9
+ token: null,
10
+ email: null,
11
+ secretPhrase: null,
12
+ config: null,
13
+ login: (user, token) => set({ user, token }),
14
+ logout: () => set({ user: null, token: null }),
15
+ setSecretPhrase: (secretPhrase) => set({ secretPhrase }),
16
+ setEmail: (email) => set({ email }),
17
+ setProject: (project) => set({ project }),
18
+ setConfig: (config) => set({ config }),
19
+ }));
20
+ // Vanilla zustand store
21
+ exports.envStore = (0, vanilla_1.createStore)((set, get) => ({
22
+ envs: [],
23
+ addEnv: (env) => set((state) => ({
24
+ envs: [...state.envs, env],
25
+ })),
26
+ setEnvs: (env) => set({
27
+ envs: env,
28
+ }),
29
+ removeEnv: (index) => set((state) => ({
30
+ envs: state.envs.filter((_, i) => i !== index),
31
+ })),
32
+ clearEnvs: () => set({ envs: [] }),
33
+ getEnv: (index) => {
34
+ const envs = get().envs;
35
+ return envs[index] || null;
36
+ },
37
+ }));
38
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":";;;AAAA,6CAA8C;AAK9C,6BAA6B;AAChB,QAAA,YAAY,GAAG,IAAA,qBAAW,EAAe,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC9D,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,YAAY,EAAE,IAAI;IAClB,MAAM,EAAC,IAAI;IAEX,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC5C,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC9C,eAAe,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC;IACxD,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;IACnC,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC;IACzC,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;CACvC,CAAC,CAAC,CAAC;AASJ,wBAAwB;AACX,QAAA,QAAQ,GAAG,IAAA,qBAAW,EAAW,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAC3D,IAAI,EAAE,EAAE;IAER,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CACd,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACd,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC;KAC3B,CAAC,CAAC;IACL,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CACf,GAAG,CAAC;QACF,IAAI,EAAE,GAAG;KACV,CAAC;IAEJ,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CACnB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACd,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC;KAC/C,CAAC,CAAC;IAEL,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAElC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;QAChB,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;IAC7B,CAAC;CACF,CAAC,CAAC,CAAC"}
@@ -0,0 +1,28 @@
1
+ export type SessionStore = {
2
+ user: any | null;
3
+ project: any | null;
4
+ token: string | null;
5
+ config: any | null;
6
+ secretPhrase: string | null;
7
+ email: string | null;
8
+ login: (user: any, token: string) => void;
9
+ logout: () => void;
10
+ setSecretPhrase: (secretPhrase: string) => void;
11
+ setEmail: (email: string) => void;
12
+ setProject: (project: string) => void;
13
+ setConfig: (config: any) => void;
14
+ };
15
+ export type EnvItem = Record<string, any>;
16
+ export type EnvStore = {
17
+ envs: EnvItem[];
18
+ addEnv: (env: EnvItem) => void;
19
+ setEnvs: (env: EnvItem[]) => void;
20
+ removeEnv: (index: number) => void;
21
+ clearEnvs: () => void;
22
+ getEnv: (index: number) => EnvItem | null;
23
+ };
24
+ export type ISyncData = {
25
+ list: EnvItem[];
26
+ changes: Record<string, string>;
27
+ };
28
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC;IACjB,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,GAAG,GAAE,IAAI,CAAC;IAClB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,eAAe,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,SAAS,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;CAClC,CAAC;AAGF,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE1C,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,MAAM,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/B,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAClC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,CAAC;CAC3C,CAAC;AAED,MAAM,MAAM,SAAS,GAAG;IAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAC,MAAM,CAAC,CAAA;CAAE,CAAC"}
package/dist/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,50 @@
1
+ export declare const getreadabledate: (date: string) => string;
2
+ export declare function parseEnvToList(envContent: string): {
3
+ title: string;
4
+ value: string;
5
+ }[];
6
+ export declare const parseAndUniqueEnv: (envContent: string) => any;
7
+ export declare function cleanEnvString(envContent: string): string;
8
+ export declare function listToEnvString(list: any[]): string;
9
+ export declare const getProjectById: (id: string) => Promise<any>;
10
+ export declare const addEnv: ({ project, body, key, sync, secretPhrase, }: {
11
+ project: String;
12
+ body: Record<string, any>[];
13
+ key: Record<string, any>;
14
+ secretPhrase: string;
15
+ sync?: boolean;
16
+ }) => Promise<{
17
+ data: any;
18
+ }>;
19
+ export declare const getEnvs: ({ project, key, }: {
20
+ project: string;
21
+ key: Record<string, any>;
22
+ }) => Promise<{
23
+ decripted: any[];
24
+ }>;
25
+ export declare const loginWithPhrase: (phrase: string, email: string) => Promise<void>;
26
+ export declare function httpRequest<T = any>(data_: {
27
+ url: string;
28
+ method?: string;
29
+ login?: boolean;
30
+ params?: Record<string, any>;
31
+ body?: any;
32
+ headers?: Record<string, string>;
33
+ }): Promise<T>;
34
+ export declare const getchangeEnv: (updatedenvs?: any[]) => Promise<any>;
35
+ export interface EnvItem {
36
+ title: string;
37
+ value: string;
38
+ }
39
+ /**
40
+ * Write env objects to .env file
41
+ * @param envs array of {title, value}
42
+ * @param filePath optional path to env file
43
+ */
44
+ export declare const writeEnvFile: (envs: EnvItem[], filePath?: string) => Promise<{
45
+ success: boolean;
46
+ error?: string;
47
+ }>;
48
+ export declare const getenvObject: (envList: any) => any;
49
+ export declare const updateProcessEnv: (envList: EnvItem[]) => void;
50
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,WAE3C,CAAC;AAEF,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,GACjB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAwBpC;AAED,eAAO,MAAM,iBAAiB,GAAI,YAAY,MAAM,QAMnD,CAAC;AAEF,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAoBzD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,CAGnD;AAED,eAAO,MAAM,cAAc,GAAU,IAAI,MAAM,iBAgB9C,CAAC;AAEF,eAAO,MAAM,MAAM,GAAU,6CAM1B;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;;EAuFA,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,mBAG3B;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC1B;;EAsCA,CAAC;AAgBF,eAAO,MAAM,eAAe,GAC1B,QAAQ,MAAM,EACd,OAAO,MAAM,KACZ,OAAO,CAAC,IAAI,CAsBd,CAAC;AAKF,wBAAsB,WAAW,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC,GAAG,OAAO,CAAC,CAAC,CAAC,CA6Cb;AAED,eAAO,MAAM,YAAY,GAAU,mBAAgB,iBA2ClD,CAAC;AAKF,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,GACvB,MAAM,OAAO,EAAE,EACf,WAAU,MAA4C,KACrD,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAmB9C,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,YAAO,QAKnC,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,SAAS,OAAO,EAAE,SAQlD,CAAC"}
package/dist/utils.js ADDED
@@ -0,0 +1,338 @@
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.updateProcessEnv = exports.getenvObject = exports.writeEnvFile = exports.getchangeEnv = exports.loginWithPhrase = exports.getEnvs = exports.addEnv = exports.getProjectById = exports.parseAndUniqueEnv = exports.getreadabledate = void 0;
7
+ exports.parseEnvToList = parseEnvToList;
8
+ exports.cleanEnvString = cleanEnvString;
9
+ exports.listToEnvString = listToEnvString;
10
+ exports.httpRequest = httpRequest;
11
+ const moment_1 = __importDefault(require("moment"));
12
+ const lodash_1 = __importDefault(require("lodash"));
13
+ const cryption_1 = require("./cryption");
14
+ const getreadabledate = (date) => {
15
+ return (0, moment_1.default)(date).fromNow();
16
+ };
17
+ exports.getreadabledate = getreadabledate;
18
+ function parseEnvToList(envContent) {
19
+ return lodash_1.default.uniqBy(envContent
20
+ .split("\n")
21
+ .map((line) => line.trim())
22
+ .filter((line) => line && !line.startsWith("#"))
23
+ .map((line) => {
24
+ const [key, ...rest] = line.split("=");
25
+ let value = rest.join("=").trim();
26
+ // Remove wrapping quotes if present
27
+ if ((value.startsWith('"') && value.endsWith('"')) ||
28
+ (value.startsWith("'") && value.endsWith("'"))) {
29
+ value = value.slice(1, -1);
30
+ }
31
+ return { title: key.trim(), value };
32
+ }), "title");
33
+ }
34
+ const parseAndUniqueEnv = (envContent) => {
35
+ let v = state_1.envStore.getState().envs;
36
+ let parseContent = parseEnvToList(envContent);
37
+ return lodash_1.default.uniqBy(parseContent, "title");
38
+ };
39
+ exports.parseAndUniqueEnv = parseAndUniqueEnv;
40
+ function cleanEnvString(envContent) {
41
+ return envContent
42
+ .split("\n")
43
+ .map((line) => line.trim())
44
+ .filter((line) => line && !line.startsWith("#"))
45
+ .map((line) => {
46
+ const [key, ...rest] = line.split("=");
47
+ let value = rest.join("=").trim();
48
+ // Strip surrounding quotes if present
49
+ if ((value.startsWith('"') && value.endsWith('"')) ||
50
+ (value.startsWith("'") && value.endsWith("'"))) {
51
+ value = value.slice(1, -1);
52
+ }
53
+ return `${key.trim()}=${value}`;
54
+ })
55
+ .join("\n");
56
+ }
57
+ function listToEnvString(list) {
58
+ const raw = list.map((item) => `${item.title}=${item.value}`).join("\n");
59
+ return cleanEnvString(raw);
60
+ }
61
+ const getProjectById = async (id) => {
62
+ try {
63
+ let secretPhrase = state_1.sessionStore.getState();
64
+ if (!secretPhrase) {
65
+ return;
66
+ }
67
+ let data = await httpRequest({ url: const_1.GETPROJECTBYIDURL + `?id=${id}` });
68
+ if (data.success) {
69
+ }
70
+ else {
71
+ }
72
+ return data;
73
+ }
74
+ catch (e) {
75
+ throw e;
76
+ }
77
+ finally {
78
+ }
79
+ };
80
+ exports.getProjectById = getProjectById;
81
+ const addEnv = async ({ project, body, key, sync = false, secretPhrase, }) => {
82
+ try {
83
+ let envs = state_1.envStore.getState().envs;
84
+ if (!secretPhrase) {
85
+ return;
86
+ }
87
+ let deHashedKey = (await (0, cryption_1.handleDecrypt)({
88
+ encrypted: key,
89
+ passphrase: secretPhrase,
90
+ }));
91
+ if (!deHashedKey) {
92
+ return;
93
+ }
94
+ let omit = state_1.sessionStore.getState().config.omit || [];
95
+ const hashedData_ = await Promise.all(body.map(async (item) => {
96
+ const encryptedKey = (0, cryption_1.handleEncryptEnv)({
97
+ data: item,
98
+ passphrase: deHashedKey,
99
+ });
100
+ let v = envs.find((e) => e.title == item.title);
101
+ return {
102
+ ...encryptedKey,
103
+ item: { ...item, ...(v?._id ? { _id: v?._id } : {}) },
104
+ ...(v?._id ? { _id: v?._id } : {}),
105
+ };
106
+ }));
107
+ const hashedData = hashedData_.filter((item) => !omit.includes(item.item.title));
108
+ state_1.envStore
109
+ .getState()
110
+ .setEnvs(lodash_1.default.uniqBy([
111
+ ...hashedData.filter((e) => e.item).map((e) => e.item),
112
+ ...(envs || []),
113
+ ], "title"));
114
+ let config = state_1.sessionStore.getState().config;
115
+ if (!config.updateCloud) {
116
+ return;
117
+ }
118
+ let data = await httpRequest({
119
+ url: (sync ? const_1.UPDATEENVURL : const_1.ADDENVURL) + `?id=${project}`,
120
+ method: "PUT",
121
+ body: hashedData.map((e) => lodash_1.default.omit(e, ["item"])),
122
+ });
123
+ if (data.success) {
124
+ let v = data?.data || [];
125
+ const decripted = await Promise.all(v.map(async (item) => {
126
+ let c = (0, cryption_1.handleDecryptEnv)(item, deHashedKey);
127
+ return { ...item, ...c };
128
+ }));
129
+ state_1.envStore
130
+ .getState()
131
+ .setEnvs(lodash_1.default.uniqBy([...decripted, ...(envs || [])], "title"));
132
+ return {
133
+ data: hashedData.map((e) => {
134
+ let c = v.find((ee) => ee.title == e.title);
135
+ if (c) {
136
+ return { ...c, ...e.item };
137
+ }
138
+ return e;
139
+ }),
140
+ };
141
+ }
142
+ else {
143
+ }
144
+ }
145
+ catch (e) {
146
+ throw e;
147
+ }
148
+ finally {
149
+ }
150
+ };
151
+ exports.addEnv = addEnv;
152
+ const getEnvs = async ({ project, key, }) => {
153
+ const secretPhrase = state_1.sessionStore.getState().secretPhrase;
154
+ const config = state_1.sessionStore.getState().config;
155
+ try {
156
+ if (!secretPhrase) {
157
+ return;
158
+ }
159
+ let deHashedKey = (await (0, cryption_1.handleDecrypt)({
160
+ encrypted: key,
161
+ passphrase: secretPhrase,
162
+ }));
163
+ if (!deHashedKey) {
164
+ return;
165
+ }
166
+ let data = await httpRequest({ url: const_1.FETCHENVURL + `?id=${project}` });
167
+ if (data.success) {
168
+ const decripted = await Promise.all(data.data.map(async (item) => {
169
+ let c = (0, cryption_1.handleDecryptEnv)(item, deHashedKey);
170
+ return { ...item, ...c };
171
+ }));
172
+ (0, exports.updateProcessEnv)(decripted);
173
+ let envs = state_1.envStore.getState().envs;
174
+ await (0, exports.writeEnvFile)(lodash_1.default.uniqBy([...decripted, ...(envs || [])], "title"), config.envfile);
175
+ state_1.envStore.getState().setEnvs(decripted);
176
+ return { decripted };
177
+ }
178
+ else {
179
+ return null;
180
+ }
181
+ }
182
+ catch (e) {
183
+ }
184
+ finally {
185
+ }
186
+ };
187
+ exports.getEnvs = getEnvs;
188
+ const axios_1 = __importDefault(require("axios"));
189
+ const state_1 = require("./state");
190
+ const const_1 = require("./const");
191
+ function sleep(ms) {
192
+ return new Promise((resolve) => setTimeout(resolve, ms));
193
+ }
194
+ const loginWithPhrase = async (phrase, email) => {
195
+ try {
196
+ let req = await httpRequest({
197
+ url: const_1.LOGINWITHPHRASE,
198
+ login: false,
199
+ method: "POST",
200
+ body: { secret: phrase, email },
201
+ });
202
+ if (req.success) {
203
+ state_1.sessionStore.getState().login(req.data.user, req.data.token);
204
+ }
205
+ else {
206
+ console.warn("Login failed, retrying in 3s...");
207
+ await sleep(3000);
208
+ await (0, exports.loginWithPhrase)(phrase, email);
209
+ }
210
+ }
211
+ catch (e) {
212
+ console.error("Error in loginWithPhrase:", e);
213
+ console.warn("Retrying in 3s...");
214
+ await sleep(3000);
215
+ await (0, exports.loginWithPhrase)(phrase, email);
216
+ }
217
+ };
218
+ exports.loginWithPhrase = loginWithPhrase;
219
+ // General HTTP function
220
+ // your re-login fn
221
+ async function httpRequest(data_) {
222
+ let { url, method = "GET", login = true, params, body, headers = {} } = data_;
223
+ // 🔑 Get token from session
224
+ let token = state_1.sessionStore.getState().token;
225
+ // If login required but no token → try re-login
226
+ if (!token && login) {
227
+ const phrase = state_1.sessionStore.getState().secretPhrase;
228
+ const email = state_1.sessionStore.getState().email;
229
+ if (phrase) {
230
+ let data = await (0, exports.loginWithPhrase)(phrase, email);
231
+ token = state_1.sessionStore.getState().token; // refresh token after login
232
+ }
233
+ if (!token) {
234
+ throw new Error("Unauthorized: No token available");
235
+ }
236
+ }
237
+ // Merge Authorization header
238
+ const authHeaders = token
239
+ ? { Authorization: `Bearer ${token}`, ...headers }
240
+ : headers;
241
+ // ---- Axios request ----
242
+ const config = {
243
+ url,
244
+ method: method,
245
+ headers: authHeaders,
246
+ params, // Axios handles params automatically
247
+ data: body,
248
+ };
249
+ try {
250
+ const response = await axios_1.default.request(config);
251
+ return response.data;
252
+ }
253
+ catch (e) {
254
+ console.error(e?.response?.data?.message || e?.message || "An error occured");
255
+ // throw(e)
256
+ return e.response.data || { success: false };
257
+ // process.kill(0)
258
+ }
259
+ }
260
+ const getchangeEnv = async (updatedenvs = []) => {
261
+ const secretPhrase = state_1.sessionStore.getState().secretPhrase;
262
+ const project = state_1.sessionStore.getState().project;
263
+ const envs = state_1.envStore.getState().envs;
264
+ try {
265
+ if (!secretPhrase) {
266
+ return;
267
+ }
268
+ let deHashedKey = (await (0, cryption_1.handleDecrypt)({
269
+ encrypted: project,
270
+ passphrase: secretPhrase,
271
+ }));
272
+ if (!deHashedKey) {
273
+ return;
274
+ }
275
+ const decriptedenvs = await Promise.all(updatedenvs.map(async (item) => {
276
+ let c = (0, cryption_1.handleDecryptEnv)(item, deHashedKey);
277
+ return { ...item, ...c };
278
+ }));
279
+ let v = decriptedenvs.reduce((acc, env) => {
280
+ const existing = envs.find((e) => e.title === env.title);
281
+ if (!existing || existing.value !== env.value) {
282
+ acc.changes.push(env);
283
+ }
284
+ return acc;
285
+ }, {
286
+ list: lodash_1.default.uniqBy(lodash_1.default.uniqBy([...decriptedenvs, ...envs], "title"), "_id"),
287
+ changes: [],
288
+ });
289
+ state_1.envStore.getState().setEnvs(v.list);
290
+ return v;
291
+ }
292
+ catch (e) { }
293
+ };
294
+ exports.getchangeEnv = getchangeEnv;
295
+ const fs_1 = __importDefault(require("fs"));
296
+ const path_1 = __importDefault(require("path"));
297
+ /**
298
+ * Write env objects to .env file
299
+ * @param envs array of {title, value}
300
+ * @param filePath optional path to env file
301
+ */
302
+ const writeEnvFile = async (envs, filePath = path_1.default.resolve(process.cwd(), ".env")) => {
303
+ try {
304
+ // Convert env objects to "KEY=VALUE" lines
305
+ if (!fs_1.default.existsSync(filePath)) {
306
+ console.warn(`⚠️ Env file not found at path: ${filePath}`);
307
+ }
308
+ const lines = envs.map((env) => `${env.title}=${env.value}`);
309
+ // Join lines with newlines
310
+ const content = lines.join("\n");
311
+ // Write to file
312
+ await fs_1.default.promises.writeFile(filePath, content, { encoding: "utf8" });
313
+ return { success: true };
314
+ }
315
+ catch (err) {
316
+ console.error("Error writing .env file:", err);
317
+ return { success: false, error: err.message || String(err) };
318
+ }
319
+ };
320
+ exports.writeEnvFile = writeEnvFile;
321
+ const getenvObject = (envList) => {
322
+ return envList.reduce((acc, env) => {
323
+ acc[env.title] = env.value;
324
+ return acc;
325
+ }, {});
326
+ };
327
+ exports.getenvObject = getenvObject;
328
+ const updateProcessEnv = (envList) => {
329
+ if (!Array.isArray(envList))
330
+ return;
331
+ envList.forEach(({ title, value }) => {
332
+ if (title) {
333
+ process.env[title] = value;
334
+ }
335
+ });
336
+ };
337
+ exports.updateProcessEnv = updateProcessEnv;
338
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Socket as ClientSocket } from "socket.io-client";
2
+ export declare class SocketClient {
3
+ socket: ClientSocket;
4
+ constructor();
5
+ private registerEvents;
6
+ }
7
+ //# sourceMappingURL=websocket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../src/websocket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,MAAM,IAAI,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAW9D,qBAAa,YAAY;IAChB,MAAM,EAAE,YAAY,CAAC;;IAa5B,OAAO,CAAC,cAAc;CAmCvB"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SocketClient = void 0;
4
+ const socket_io_client_1 = require("socket.io-client");
5
+ const state_1 = require("./state");
6
+ const utils_1 = require("./utils");
7
+ const SERVER_URL = "http://172.20.10.2:5002";
8
+ class SocketClient {
9
+ socket;
10
+ constructor() {
11
+ // Initialize the socket inside the constructor
12
+ this.socket = (0, socket_io_client_1.io)(SERVER_URL, {
13
+ reconnection: true,
14
+ transports: ["websocket"], // force websocket
15
+ auth: { token: state_1.sessionStore.getState().token }, // make sure token exists
16
+ });
17
+ this.registerEvents();
18
+ }
19
+ registerEvents() {
20
+ this.socket.on("connect", () => {
21
+ console.log("Connected to server:", this.socket.id);
22
+ this.socket.emit("message", "Hello from Node.js client!");
23
+ });
24
+ this.socket.on("connect_error", (err) => {
25
+ console.error("Connection error:", err.message);
26
+ });
27
+ this.socket.on("connect_timeout", () => {
28
+ console.error("Connection timed out");
29
+ });
30
+ this.socket.on("envupdated", async (msg) => {
31
+ setTimeout(async () => {
32
+ console.log("envupdated:");
33
+ let config = state_1.sessionStore.getState().config;
34
+ let envs = await (0, utils_1.getchangeEnv)(JSON.parse(msg));
35
+ if (config.onSync) {
36
+ config.onSync({ list: envs.list, changes: (0, utils_1.getenvObject)(envs.changes) });
37
+ }
38
+ (0, utils_1.updateProcessEnv)(envs.changes);
39
+ if (envs.changes.length > 0) {
40
+ await (0, utils_1.writeEnvFile)(envs.list, config.envfile);
41
+ }
42
+ }, 5000);
43
+ });
44
+ this.socket.on("disconnect", () => {
45
+ console.log("Disconnected from server");
46
+ });
47
+ }
48
+ }
49
+ exports.SocketClient = SocketClient;
50
+ //# sourceMappingURL=websocket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../src/websocket.ts"],"names":[],"mappings":";;;AAAA,uDAA8D;AAC9D,mCAAuC;AACvC,mCAKiB;AAEjB,MAAM,UAAU,GAAG,yBAAyB,CAAC;AAE7C,MAAa,YAAY;IAChB,MAAM,CAAe;IAE5B;QACE,+CAA+C;QAC/C,IAAI,CAAC,MAAM,GAAG,IAAA,qBAAE,EAAC,UAAU,EAAE;YAC3B,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,CAAC,WAAW,CAAC,EAAE,kBAAkB;YAC7C,IAAI,EAAE,EAAE,KAAK,EAAE,oBAAY,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,yBAAyB;SAC1E,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YAC7B,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACpD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,4BAA4B,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE;YACtC,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;YACrC,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACzC,UAAU,CAAC,KAAK,IAAI,EAAE;gBACpB,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBAC3B,IAAI,MAAM,GAAG,oBAAY,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;gBAC5C,IAAI,IAAI,GAAG,MAAM,IAAA,oBAAY,EAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC/C,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClB,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAA,oBAAY,EAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC1E,CAAC;gBAED,IAAA,wBAAgB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAE/B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5B,MAAM,IAAA,oBAAY,EAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;YAChC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAjDD,oCAiDC"}
package/package.json ADDED
@@ -0,0 +1,54 @@
1
+ {
2
+
3
+ "name": "xavren",
4
+ "author": "princewill",
5
+ "license": "MIT",
6
+ "version": "1.0.0",
7
+
8
+ "main": "dist/index.js",
9
+
10
+ "types": "dist/index.d.ts",
11
+ "keywords": ["env", "vault", "xavren"],
12
+
13
+ "dependencies": {
14
+
15
+ "axios": "^1.12.2",
16
+
17
+ "chokidar": "^4.0.3",
18
+
19
+ "dotenv": "^17.2.2",
20
+
21
+ "lodash": "^4.17.21",
22
+
23
+ "moment": "^2.30.1",
24
+
25
+ "socket.io-client": "^4.8.1",
26
+
27
+ "zustand": "^5.0.8"
28
+
29
+ },
30
+
31
+ "scripts": {
32
+
33
+ "build": "tsc",
34
+
35
+ "prepublishOnly": "npm run build"
36
+
37
+ },
38
+
39
+ "files": [
40
+
41
+ "dist"
42
+
43
+ ],
44
+
45
+ "devDependencies": {
46
+
47
+ "@types/node": "^24.5.2",
48
+
49
+ "typescript": "^5.9.2"
50
+
51
+ }
52
+
53
+ }
54
+