@hotfusion/modeller 0.0.1

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 (54) hide show
  1. package/dist/connector.js +297 -0
  2. package/dist/connector.js.map +1 -0
  3. package/dist/index.js +12 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/model.js +446 -0
  6. package/dist/model.js.map +1 -0
  7. package/dist/modeller.js +461 -0
  8. package/dist/modeller.js.map +1 -0
  9. package/dist/server.js +364 -0
  10. package/dist/server.js.map +1 -0
  11. package/dist/types/connector.d.ts +54 -0
  12. package/dist/types/connector.d.ts.map +1 -0
  13. package/dist/types/index.d.ts +5 -0
  14. package/dist/types/index.d.ts.map +1 -0
  15. package/dist/types/model.d.ts +106 -0
  16. package/dist/types/model.d.ts.map +1 -0
  17. package/dist/types/modeller.d.ts +88 -0
  18. package/dist/types/modeller.d.ts.map +1 -0
  19. package/dist/types/server.d.ts +22 -0
  20. package/dist/types/server.d.ts.map +1 -0
  21. package/dist/types/utils/bundler.d.ts +41 -0
  22. package/dist/types/utils/bundler.d.ts.map +1 -0
  23. package/dist/types/utils/decode-jwt.d.ts +2 -0
  24. package/dist/types/utils/decode-jwt.d.ts.map +1 -0
  25. package/dist/types/utils/dirname.d.ts +2 -0
  26. package/dist/types/utils/dirname.d.ts.map +1 -0
  27. package/dist/types/utils/encryption.d.ts +4 -0
  28. package/dist/types/utils/encryption.d.ts.map +1 -0
  29. package/dist/types/utils/keygen.d.ts +5 -0
  30. package/dist/types/utils/keygen.d.ts.map +1 -0
  31. package/dist/types/utils/object-collection.d.ts +36 -0
  32. package/dist/types/utils/object-collection.d.ts.map +1 -0
  33. package/dist/types/utils/request.d.ts +2 -0
  34. package/dist/types/utils/request.d.ts.map +1 -0
  35. package/dist/types/utils/sign-jwt.d.ts +2 -0
  36. package/dist/types/utils/sign-jwt.d.ts.map +1 -0
  37. package/dist/utils/_secret.key +1 -0
  38. package/dist/utils/bundler.js +347 -0
  39. package/dist/utils/bundler.js.map +1 -0
  40. package/dist/utils/decode-jwt.js +18 -0
  41. package/dist/utils/decode-jwt.js.map +1 -0
  42. package/dist/utils/dirname.js +4 -0
  43. package/dist/utils/dirname.js.map +1 -0
  44. package/dist/utils/encryption.js +12 -0
  45. package/dist/utils/encryption.js.map +1 -0
  46. package/dist/utils/keygen.js +34 -0
  47. package/dist/utils/keygen.js.map +1 -0
  48. package/dist/utils/object-collection.js +172 -0
  49. package/dist/utils/object-collection.js.map +1 -0
  50. package/dist/utils/request.js +50 -0
  51. package/dist/utils/request.js.map +1 -0
  52. package/dist/utils/sign-jwt.js +14 -0
  53. package/dist/utils/sign-jwt.js.map +1 -0
  54. package/package.json +54 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modeller.d.ts","sourceRoot":"","sources":["../../src/modeller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import Koa from "koa";
2
+ import { EventEmitter } from "eventemitter3";
3
+ import type { IOIDCProvider, IPath, IServerConfig, IServerEvents } from "./types.d.ts";
4
+ export declare class Server extends EventEmitter<IServerEvents> {
5
+ private port;
6
+ private app;
7
+ private router;
8
+ private routes;
9
+ private providers;
10
+ private config;
11
+ private io;
12
+ constructor(port: number, config?: IServerConfig);
13
+ setOIDCProviders(path: string, providers?: IOIDCProvider[]): this;
14
+ upload(path: string, handler: (ctx: Koa.Context, file: Buffer, fields: Record<string, string>) => Promise<any>): this;
15
+ private _streamHandler?;
16
+ private _uploadTmp;
17
+ stream(handler: (buffer: Buffer, meta: Record<string, any>) => Promise<any>): this;
18
+ private _setupStream;
19
+ route(route: IPath): this;
20
+ start(): this;
21
+ }
22
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AAMtB,OAAO,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAE3C,OAAO,KAAK,EAAC,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAS,MAAM,cAAc,CAAC;AAe7F,qBAAa,MAAO,SAAQ,YAAY,CAAC,aAAa,CAAC;IACnD,OAAO,CAAC,IAAI,CAAe;IAC3B,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,EAAE,CAAgB;gBACb,IAAI,EAAE,MAAM,EAAC,MAAM,CAAC,EAAC,aAAa;IAwB/C,gBAAgB,CAAC,IAAI,EAAC,MAAM,EAAC,SAAS,CAAC,EAAC,aAAa,EAAE,GAAE,IAAI;IAkI7D,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI;IAsDrH,OAAO,CAAC,cAAe,CAAC,CAA8D;IACtF,OAAO,CAAC,UAAU,CAA0C;IAE5D,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI;IAKlF,OAAO,CAAC,YAAY;IAiFpB,KAAK,CAAC,KAAK,EAAC,KAAK,GAAG,IAAI;IAKxB,KAAK;CAuER"}
@@ -0,0 +1,41 @@
1
+ export interface BundleOptions {
2
+ format?: 'iife' | 'cjs' | 'es' | 'umd';
3
+ globalName?: string;
4
+ minify?: boolean;
5
+ sourcemap?: boolean;
6
+ props?: {
7
+ [key: string]: any;
8
+ };
9
+ cacheDir?: string;
10
+ noCache?: boolean;
11
+ }
12
+ export interface BundleResult {
13
+ code: string;
14
+ size: number;
15
+ time: number;
16
+ cached: boolean;
17
+ compile: (props?: any) => string;
18
+ }
19
+ export declare class RuntimeBundler {
20
+ private readonly defaultCacheDir;
21
+ constructor(cacheDir?: string);
22
+ /** Remove all cached bundles older than `maxAgeMs` milliseconds. */
23
+ pruneCache(maxAgeMs?: number): number;
24
+ /** Wipe the entire cache directory. */
25
+ clearCache(): void;
26
+ bundle(entryFile: string, options?: BundleOptions): Promise<BundleResult>;
27
+ private _cacheCodePath;
28
+ private _cacheMetaPath;
29
+ private _loadFromCache;
30
+ private _saveToCache;
31
+ }
32
+ export declare class Bundler {
33
+ bundler: RuntimeBundler;
34
+ settings: BundleOptions;
35
+ path: string;
36
+ constructor(filePath: string, cacheDir?: string);
37
+ build(): Promise<BundleResult>;
38
+ /** Force rebuild, ignoring any cached version. */
39
+ rebuild(): Promise<BundleResult>;
40
+ }
41
+ //# sourceMappingURL=bundler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundler.d.ts","sourceRoot":"","sources":["../../../src/utils/bundler.ts"],"names":[],"mappings":"AAoBA,MAAM,WAAW,aAAa;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE;QACJ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACtB,CAAA;IACD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAG,CAAC,KAAK,CAAC,EAAC,GAAG,KAAK,MAAM,CAAA;CACnC;AA+ED,qBAAa,cAAc;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;gBAE7B,QAAQ,CAAC,EAAE,MAAM;IAQ7B,oEAAoE;IACpE,UAAU,CAAC,QAAQ,SAA0B,GAAG,MAAM;IAmBtD,uCAAuC;IACvC,UAAU,IAAI,IAAI;IAOZ,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;IA8JnF,OAAO,CAAC,cAAc;IAGtB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,YAAY;CAyBvB;AAGD,qBAAa,OAAO;IAChB,OAAO,EAAG,cAAc,CAAA;IACxB,QAAQ,EAAE,aAAa,CAGtB;IACD,IAAI,EAAG,MAAM,CAAA;gBAED,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAK/C,KAAK,IAAI,OAAO,CAAC,YAAY,CAAC;IAI9B,kDAAkD;IAClD,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC;CAGnC"}
@@ -0,0 +1,2 @@
1
+ export declare function decodeJWT(token: string): any;
2
+ //# sourceMappingURL=decode-jwt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decode-jwt.d.ts","sourceRoot":"","sources":["../../../src/utils/decode-jwt.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,OAgBtC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dirname.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dirname.d.ts","sourceRoot":"","sources":["../../../src/utils/dirname.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import type { THASH } from "../types.d.ts";
2
+ export declare function encrypt(password: string, secret: Uint8Array): Promise<THASH>;
3
+ export declare function decrypt(password: THASH, secret: Uint8Array): Promise<string>;
4
+ //# sourceMappingURL=encryption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encryption.d.ts","sourceRoot":"","sources":["../../../src/utils/encryption.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,eAAe,CAAC;AAGzC,wBAAsB,OAAO,CAAC,QAAQ,EAAG,MAAM,EAAE,MAAM,EAAC,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAIlF;AACD,wBAAsB,OAAO,CAAC,QAAQ,EAAG,KAAK,EAAI,MAAM,EAAC,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAEpF"}
@@ -0,0 +1,5 @@
1
+ export declare const KeyGen: {
2
+ generateSecret(isRoot: boolean): Uint8Array;
3
+ getSystemSecret<T extends "string" | "uint8Array" = "string">(type?: T): T extends "string" ? string : Uint8Array;
4
+ };
5
+ //# sourceMappingURL=keygen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keygen.d.ts","sourceRoot":"","sources":["../../../src/utils/keygen.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM;2BACQ,OAAO,GAAE,UAAU;oBAwB1B,CAAC,SAAS,QAAQ,GAAG,YAAY,oBACtC,CAAC,GACT,CAAC,SAAS,QAAQ,GAAG,MAAM,GAAG,UAAU;CAM9C,CAAA"}
@@ -0,0 +1,36 @@
1
+ type Hooks<K, V> = {
2
+ onExpire?: (key: K, value: V) => void;
3
+ onEvict?: (key: K, value: V) => void;
4
+ };
5
+ export declare class ObjectCollection<K, V> {
6
+ private map;
7
+ private head?;
8
+ private tail?;
9
+ private cleanupTimer;
10
+ private ttl;
11
+ private maxSize;
12
+ private sliding;
13
+ private cleanupInterval;
14
+ private hooks;
15
+ constructor(ttl: number, // required
16
+ maxSize?: number, // optional, default no limit
17
+ sliding?: boolean, // optional, default sliding TTL
18
+ cleanupInterval?: number, // optional cleanup interval
19
+ hooks?: Hooks<K, V>);
20
+ set(key: K, value: V): void;
21
+ get(key: K): V | undefined;
22
+ find(predicate: (value: V, key: K) => boolean): V | undefined;
23
+ delete(key: K): boolean;
24
+ clear(): void;
25
+ get size(): number;
26
+ stop(): void;
27
+ private append;
28
+ private moveToTail;
29
+ private remove;
30
+ private evictLRU;
31
+ private isExpired;
32
+ private expire;
33
+ private cleanup;
34
+ }
35
+ export {};
36
+ //# sourceMappingURL=object-collection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-collection.d.ts","sourceRoot":"","sources":["../../../src/utils/object-collection.ts"],"names":[],"mappings":"AAQA,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI;IACjB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;IACrC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;CACrC,CAAA;AAED,qBAAa,gBAAgB,CAAC,CAAC,EAAE,CAAC;IAChC,OAAO,CAAC,GAAG,CAA4B;IACvC,OAAO,CAAC,IAAI,CAAC,CAAyB;IACtC,OAAO,CAAC,IAAI,CAAC,CAAyB;IACtC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,GAAG,CAAU;IACrB,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,KAAK,CAAe;gBAEvB,GAAG,EAAE,MAAM,EAAqB,WAAW;IAC3C,OAAO,GAAE,MAAiB,EAAM,6BAA6B;IAC7D,OAAO,GAAE,OAAc,EAAS,gCAAgC;IAChE,eAAe,GAAE,MAAa,EAAE,4BAA4B;IAC5D,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAWxB,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAmB3B,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAiB1B,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,GAAG,CAAC,GAAG,SAAS;IAU7D,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAQvB,KAAK,IAAI,IAAI;IAMb,IAAI,IAAI,IAAI,MAAM,CAGjB;IAED,IAAI,IAAI,IAAI;IAMZ,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,MAAM;IAQd,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,OAAO;CAQhB"}
@@ -0,0 +1,2 @@
1
+ export declare function request(method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD', uri: string, data?: Record<string, any>, session?: string): Promise<any>;
2
+ //# sourceMappingURL=request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/utils/request.ts"],"names":[],"mappings":"AAAA,wBAAsB,OAAO,CACzB,MAAM,EAAO,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,EACjE,GAAG,EAAU,MAAM,EACnB,IAAI,GAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EACrC,OAAU,CAAC,EAAE,MAAM,gBAkDtB"}
@@ -0,0 +1,2 @@
1
+ export declare const signJWT: (payload: Record<any, any>, SECRET: string | undefined, timeout?: any, type?: "string" | "Uint8Array") => Promise<string>;
2
+ //# sourceMappingURL=sign-jwt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sign-jwt.d.ts","sourceRoot":"","sources":["../../../src/utils/sign-jwt.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,GAChB,SAAU,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAC1B,QAAU,MAAM,GAAG,SAAS,EAC5B,UAAU,GAA2C,EACrD,OAAU,QAAQ,GAAG,YAAuB,oBAY/C,CAAA"}
@@ -0,0 +1 @@
1
+ ObbJnE6EnVDKEVNqadTA4ka23fqayR74Z6w+cuyfGFo=
@@ -0,0 +1,347 @@
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 () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.Bundler = exports.RuntimeBundler = void 0;
40
+ // RuntimeBundler.ts
41
+ // @ts-ignore
42
+ const rollup_plugin_terser_1 = require("rollup-plugin-terser");
43
+ const rollup_1 = require("rollup");
44
+ const plugin_node_resolve_1 = require("@rollup/plugin-node-resolve");
45
+ const plugin_commonjs_1 = __importDefault(require("@rollup/plugin-commonjs"));
46
+ const rollup_plugin_vue_1 = __importDefault(require("rollup-plugin-vue"));
47
+ const plugin_replace_1 = __importDefault(require("@rollup/plugin-replace"));
48
+ const rollup_plugin_esbuild_1 = __importDefault(require("rollup-plugin-esbuild"));
49
+ const path = __importStar(require("path"));
50
+ const plugin_json_1 = __importDefault(require("@rollup/plugin-json"));
51
+ const rollup_plugin_postcss_1 = __importDefault(require("rollup-plugin-postcss"));
52
+ const fs = __importStar(require("fs"));
53
+ const less_1 = __importDefault(require("less"));
54
+ const crypto = __importStar(require("crypto"));
55
+ const os = __importStar(require("os"));
56
+ const module_1 = require("module");
57
+ // ---------- helpers ----------
58
+ /** SHA-256 hash of a file's contents (hex, first 16 chars). */
59
+ function hashFile(filePath) {
60
+ const contents = fs.readFileSync(filePath);
61
+ return crypto.createHash('sha256').update(contents).digest('hex').slice(0, 16);
62
+ }
63
+ /**
64
+ * Hash of the entry file PLUS any local .vue / .ts / .js imports found
65
+ * one level deep — catches changes in sub-components without a full dep graph.
66
+ */
67
+ function hashEntry(entryFile) {
68
+ const h = crypto.createHash('sha256');
69
+ h.update(fs.readFileSync(entryFile));
70
+ // Scan for sibling local imports (best-effort, no full AST)
71
+ const src = fs.readFileSync(entryFile, 'utf8');
72
+ const importRe = /from\s+['"](\.[^'"]+)['"]/g;
73
+ let m;
74
+ const dir = path.dirname(entryFile);
75
+ while ((m = importRe.exec(src)) !== null) {
76
+ const match = m[1];
77
+ if (!match)
78
+ continue;
79
+ const candidates = [
80
+ match, `${match}.ts`, `${match}.js`, `${match}.vue`,
81
+ `${match}/index.ts`, `${match}/index.js`,
82
+ ];
83
+ for (const c of candidates) {
84
+ const abs = path.resolve(dir, c);
85
+ if (fs.existsSync(abs) && fs.statSync(abs).isFile()) {
86
+ h.update(fs.readFileSync(abs));
87
+ break;
88
+ }
89
+ }
90
+ }
91
+ return h.digest('hex').slice(0, 24);
92
+ }
93
+ /** Ensure a directory exists (recursive). */
94
+ function ensureDir(dir) {
95
+ fs.mkdirSync(dir, { recursive: true });
96
+ }
97
+ function cacheKey(hash, options) {
98
+ const optHash = crypto
99
+ .createHash('sha256')
100
+ .update(JSON.stringify({
101
+ format: options.format ?? 'iife',
102
+ globalName: options.globalName ?? 'Bundle',
103
+ minify: options.minify ?? false,
104
+ sourcemap: options.sourcemap ?? false,
105
+ }))
106
+ .digest('hex')
107
+ .slice(0, 8);
108
+ return `${hash}_${optHash}`;
109
+ }
110
+ // ---------- main class ----------
111
+ class RuntimeBundler {
112
+ defaultCacheDir;
113
+ constructor(cacheDir) {
114
+ this.defaultCacheDir = cacheDir
115
+ ?? path.join(os.tmpdir(), 'runtime-bundler-cache');
116
+ ensureDir(this.defaultCacheDir);
117
+ }
118
+ // ---- public cache helpers ----
119
+ /** Remove all cached bundles older than `maxAgeMs` milliseconds. */
120
+ pruneCache(maxAgeMs = 7 * 24 * 60 * 60 * 1000) {
121
+ const now = Date.now();
122
+ let removed = 0;
123
+ for (const entry of fs.readdirSync(this.defaultCacheDir)) {
124
+ if (!entry.endsWith('.meta.json'))
125
+ continue;
126
+ const metaPath = path.join(this.defaultCacheDir, entry);
127
+ try {
128
+ const meta = JSON.parse(fs.readFileSync(metaPath, 'utf8'));
129
+ if (now - meta.builtAt > maxAgeMs) {
130
+ const codePath = metaPath.replace('.meta.json', '.js');
131
+ fs.rmSync(metaPath, { force: true });
132
+ fs.rmSync(codePath, { force: true });
133
+ removed++;
134
+ }
135
+ }
136
+ catch { /* corrupt entry — skip */ }
137
+ }
138
+ return removed;
139
+ }
140
+ /** Wipe the entire cache directory. */
141
+ clearCache() {
142
+ fs.rmSync(this.defaultCacheDir, { recursive: true, force: true });
143
+ ensureDir(this.defaultCacheDir);
144
+ }
145
+ // ---- bundle ----
146
+ async bundle(entryFile, options = {}) {
147
+ const startTime = Date.now();
148
+ const sourceFile = entryFile.split('?')[0];
149
+ const cacheDir = options.cacheDir
150
+ ? (ensureDir(options.cacheDir), options.cacheDir)
151
+ : this.defaultCacheDir;
152
+ // ---- cache lookup ----
153
+ if (!options.noCache && fs.existsSync(sourceFile)) {
154
+ const hash = hashEntry(sourceFile);
155
+ const key = cacheKey(hash, options);
156
+ const cached = this._loadFromCache(cacheDir, key);
157
+ if (cached !== null) {
158
+ const code = cached;
159
+ return {
160
+ code: `<div id="app"></div><script>${code};window.__HF_MOUNT__();</script>`,
161
+ size: code.length,
162
+ time: Date.now() - startTime,
163
+ cached: true,
164
+ compile: (props = {}) => `<div id="app"></div><script>window.__HF_PROPS__ = ${JSON.stringify(props)};${code};window.__HF_MOUNT__(window.__HF_PROPS__);</script>`,
165
+ };
166
+ }
167
+ }
168
+ // ---- build ----
169
+ let _entryFile = path.join(path.dirname(sourceFile), `___.entry.${Date.now()}.ts`);
170
+ if (sourceFile.endsWith('.vue')) {
171
+ const relPath = './' + path.basename(sourceFile);
172
+ fs.writeFileSync(_entryFile, fs.readFileSync(path.resolve(__dirname, './entry.js')).toString().replace('${relPath}', relPath));
173
+ entryFile = _entryFile;
174
+ }
175
+ const config = {
176
+ format: options.format ?? 'iife',
177
+ globalName: options.globalName ?? 'Bundle',
178
+ minify: options.minify ?? false,
179
+ sourcemap: options.sourcemap ?? false,
180
+ };
181
+ const plugins = [
182
+ //@ts-ignore
183
+ (0, plugin_json_1.default)(),
184
+ //@ts-ignore
185
+ (0, rollup_plugin_vue_1.default)({ preprocessStyles: true }),
186
+ (0, rollup_plugin_esbuild_1.default)({
187
+ include: /\.[jt]s$/,
188
+ exclude: /node_modules/,
189
+ target: 'es2022',
190
+ }),
191
+ //@ts-ignore
192
+ (0, plugin_replace_1.default)({
193
+ 'process.env.NODE_ENV': JSON.stringify('production'),
194
+ preventAssignment: true
195
+ }),
196
+ (0, plugin_node_resolve_1.nodeResolve)({
197
+ preferBuiltins: false,
198
+ browser: true,
199
+ extensions: ['.js', '.ts', '.vue', '.json']
200
+ }),
201
+ //@ts-ignore
202
+ (0, plugin_commonjs_1.default)({
203
+ include: ['node_modules/**', '**/*.js'],
204
+ transformMixedEsModules: true
205
+ }),
206
+ {
207
+ name: 'less-handler',
208
+ async load(id) {
209
+ if (path.extname(id) !== '.less' || !fs.existsSync(id))
210
+ return null;
211
+ const realPath = fs.realpathSync(id);
212
+ if (!realPath.endsWith('.less'))
213
+ return null;
214
+ try {
215
+ const source = fs.readFileSync(realPath, 'utf8');
216
+ const result = await less_1.default.render(source, {
217
+ filename: realPath,
218
+ paths: [path.dirname(realPath)],
219
+ javascriptEnabled: true
220
+ });
221
+ return `
222
+ let css = ${JSON.stringify(result.css)};
223
+ if (typeof document !== 'undefined') {
224
+ let style = document.createElement('style');
225
+ style.textContent = css;
226
+ document.head.appendChild(style);
227
+ }
228
+ export default css;
229
+ `;
230
+ }
231
+ catch (err) {
232
+ console.error('LESS render failed for', realPath, err);
233
+ throw err;
234
+ }
235
+ }
236
+ },
237
+ //@ts-ignore
238
+ (0, rollup_plugin_postcss_1.default)({
239
+ extensions: ['.css'],
240
+ include: ['**/*.css'],
241
+ exclude: ['dist/**', 'node_modules/**'],
242
+ extract: true,
243
+ minimize: true
244
+ })
245
+ ];
246
+ if (config.minify)
247
+ plugins.push((0, rollup_plugin_terser_1.terser)());
248
+ const bundle = await (0, rollup_1.rollup)({
249
+ plugins,
250
+ input: entryFile,
251
+ cache: false,
252
+ external: [...module_1.builtinModules, /^node:/],
253
+ onwarn(warning, warn) {
254
+ if (warning.code === 'EVAL')
255
+ return;
256
+ warn(warning);
257
+ }
258
+ });
259
+ const outputOptions = {
260
+ format: config.format,
261
+ name: config.globalName,
262
+ sourcemap: config.sourcemap,
263
+ };
264
+ const { output } = await bundle.generate(outputOptions);
265
+ await bundle.close();
266
+ // Clean up temp entry file
267
+ try {
268
+ fs.unlinkSync(_entryFile);
269
+ }
270
+ catch { /* ignore */ }
271
+ const code = output[0].code;
272
+ // ---- persist to cache ----
273
+ if (!options.noCache && fs.existsSync(sourceFile)) {
274
+ const hash = hashEntry(sourceFile);
275
+ const key = cacheKey(hash, options);
276
+ this._saveToCache(cacheDir, key, sourceFile, options, code);
277
+ }
278
+ return {
279
+ code: `<div id="app"></div><script>${code};window.__HF_MOUNT__();</script>`,
280
+ size: code.length,
281
+ time: Date.now() - startTime,
282
+ cached: false,
283
+ compile: (props = {}) => `<div id="app"></div><script>window.__HF_PROPS__ = ${JSON.stringify(props)};${code};window.__HF_MOUNT__(window.__HF_PROPS__);</script>`,
284
+ };
285
+ }
286
+ // ---- private cache I/O ----
287
+ _cacheCodePath(cacheDir, key) {
288
+ return path.join(cacheDir, `${key}.js`);
289
+ }
290
+ _cacheMetaPath(cacheDir, key) {
291
+ return path.join(cacheDir, `${key}.meta.json`);
292
+ }
293
+ _loadFromCache(cacheDir, key) {
294
+ const codePath = this._cacheCodePath(cacheDir, key);
295
+ const metaPath = this._cacheMetaPath(cacheDir, key);
296
+ if (!fs.existsSync(codePath) || !fs.existsSync(metaPath))
297
+ return null;
298
+ try {
299
+ return fs.readFileSync(codePath, 'utf8');
300
+ }
301
+ catch {
302
+ return null;
303
+ }
304
+ }
305
+ _saveToCache(cacheDir, key, entryFile, options, code) {
306
+ try {
307
+ const meta = {
308
+ hash: key,
309
+ entryFile,
310
+ options: {
311
+ format: options.format ?? 'iife',
312
+ globalName: options.globalName ?? 'Bundle',
313
+ minify: options.minify ?? false,
314
+ sourcemap: options.sourcemap ?? false,
315
+ },
316
+ builtAt: Date.now(),
317
+ };
318
+ fs.writeFileSync(this._cacheCodePath(cacheDir, key), code, 'utf8');
319
+ fs.writeFileSync(this._cacheMetaPath(cacheDir, key), JSON.stringify(meta, null, 2), 'utf8');
320
+ }
321
+ catch (err) {
322
+ console.warn('[RuntimeBundler] Failed to write cache:', err);
323
+ }
324
+ }
325
+ }
326
+ exports.RuntimeBundler = RuntimeBundler;
327
+ class Bundler {
328
+ bundler;
329
+ settings = {
330
+ format: 'iife',
331
+ globalName: 'Application'
332
+ };
333
+ path;
334
+ constructor(filePath, cacheDir) {
335
+ this.path = filePath;
336
+ this.bundler = new RuntimeBundler(cacheDir);
337
+ }
338
+ build() {
339
+ return this.bundler.bundle(this.path, this.settings);
340
+ }
341
+ /** Force rebuild, ignoring any cached version. */
342
+ rebuild() {
343
+ return this.bundler.bundle(this.path, { ...this.settings, noCache: true });
344
+ }
345
+ }
346
+ exports.Bundler = Bundler;
347
+ //# sourceMappingURL=bundler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundler.js","sourceRoot":"","sources":["../../src/utils/bundler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decodeJWT = decodeJWT;
4
+ function decodeJWT(token) {
5
+ const parts = token.split('.');
6
+ if (parts.length !== 3)
7
+ throw new Error('Invalid JWT');
8
+ const payload = parts[1];
9
+ // Base64URL → Base64
10
+ const base64 = payload.replace(/-/g, '+').replace(/_/g, '/');
11
+ // Add padding if missing
12
+ const padded = base64.padEnd(base64.length + (4 - (base64.length % 4)) % 4, '=');
13
+ // Decode to string
14
+ const jsonStr = atob(padded);
15
+ // Parse JSON
16
+ return JSON.parse(jsonStr);
17
+ }
18
+ //# sourceMappingURL=decode-jwt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decode-jwt.js","sourceRoot":"","sources":["../../src/utils/decode-jwt.ts"],"names":[],"mappings":";;AAAA,8BAgBC;AAhBD,SAAgB,SAAS,CAAC,KAAa;IACnC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IAEvD,MAAM,OAAO,GAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAE7B,qBAAqB;IACrB,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC7D,yBAAyB;IACzB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAEjF,mBAAmB;IACnB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAE7B,aAAa;IACb,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //export const __dirname = import.meta.url.startsWith("file:") ? resolve(dirname(fileURLToPath(import.meta.url)),"../") : process.cwd();
4
+ //# sourceMappingURL=dirname.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dirname.js","sourceRoot":"","sources":["../../src/utils/dirname.ts"],"names":[],"mappings":";;AAGA,wIAAwI"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.encrypt = encrypt;
4
+ exports.decrypt = decrypt;
5
+ const jose_1 = require("jose");
6
+ async function encrypt(password, secret) {
7
+ return await new jose_1.CompactEncrypt(new TextEncoder().encode(password)).setProtectedHeader({ alg: 'dir', enc: 'A256GCM' }).encrypt(secret);
8
+ }
9
+ async function decrypt(password, secret) {
10
+ return new TextDecoder().decode((await (0, jose_1.compactDecrypt)(password, secret)).plaintext);
11
+ }
12
+ //# sourceMappingURL=encryption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encryption.js","sourceRoot":"","sources":["../../src/utils/encryption.ts"],"names":[],"mappings":";;AAGA,0BAIC;AACD,0BAEC;AATD,+BAAoD;AAE7C,KAAK,UAAU,OAAO,CAAC,QAAiB,EAAE,MAAiB;IAC9D,OAAO,MAAM,IAAI,qBAAc,CAC3B,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CACrC,CAAC,kBAAkB,CAAC,EAAC,GAAG,EAAC,KAAK,EAAC,GAAG,EAAC,SAAS,EAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;AACnE,CAAC;AACM,KAAK,UAAU,OAAO,CAAC,QAAgB,EAAI,MAAiB;IAC/D,OAAQ,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,IAAA,qBAAc,EAAC,QAAQ,EAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;AACvF,CAAC"}
@@ -0,0 +1,34 @@
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.KeyGen = void 0;
7
+ const node_fs_1 = __importDefault(require("node:fs"));
8
+ const crypto_1 = require("crypto");
9
+ exports.KeyGen = {
10
+ generateSecret(isRoot) {
11
+ if (isRoot) {
12
+ let constructor = exports.KeyGen.generateSecret;
13
+ if (constructor.SECRET)
14
+ return constructor.SECRET;
15
+ let filename = node_fs_1.default.readdirSync(__dirname).find(x => x.includes('_secret.'));
16
+ let SECRET = (0, crypto_1.randomBytes)(32);
17
+ if (!filename)
18
+ node_fs_1.default.writeFileSync(__dirname + '/_secret.key', Buffer.from(SECRET).toString("base64"));
19
+ else
20
+ SECRET = new Uint8Array(Buffer.from(node_fs_1.default.readFileSync(__dirname + '/_secret.key').toString(), "base64"));
21
+ if (!constructor.SECRET)
22
+ constructor.SECRET = SECRET;
23
+ return SECRET;
24
+ }
25
+ return (0, crypto_1.randomBytes)(32);
26
+ },
27
+ getSystemSecret(type) {
28
+ const secret = exports.KeyGen.generateSecret(true);
29
+ return (type === "string" || !type
30
+ ? Buffer.from(secret).toString("hex")
31
+ : secret);
32
+ }
33
+ };
34
+ //# sourceMappingURL=keygen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keygen.js","sourceRoot":"","sources":["../../src/utils/keygen.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAyB;AACzB,mCAAmC;AAEtB,QAAA,MAAM,GAAG;IACjB,cAAc,CAAC,MAAc;QACzB,IAAG,MAAM,EAAC,CAAC;YACP,IAAI,WAAW,GAAO,cAAM,CAAC,cAAc,CAAA;YAC3C,IAAG,WAAW,CAAC,MAAM;gBACjB,OAAO,WAAW,CAAC,MAAM,CAAC;YAE9B,IAAI,QAAQ,GACN,iBAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;YAElE,IAAI,MAAM,GACJ,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAA;YAErB,IAAG,CAAC,QAAQ;gBACR,iBAAE,CAAC,aAAa,CAAC,SAAS,GAAG,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;;gBAEpF,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAE,CAAC,YAAY,CAAC,SAAS,GAAG,cAAc,CAAC,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAA;YAE1G,IAAG,CAAC,WAAW,CAAC,MAAM;gBAClB,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC;YAEhC,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,OAAO,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAA;IAC3B,CAAC;IACD,eAAe,CACX,IAAQ;QAER,MAAM,MAAM,GAAG,cAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI;YAC9B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YACrC,CAAC,CAAC,MAAM,CAAQ,CAAC;IACzB,CAAC;CACJ,CAAA"}