@hapico/cli 0.0.17 → 0.0.19

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,126 @@
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.ALL_FUNCS = void 0;
7
+ const getNewsDetails_1 = __importDefault(require("../src/functions/getNewsDetails"));
8
+ const getNewsFavoriteStatus_1 = __importDefault(require("../src/functions/getNewsFavoriteStatus"));
9
+ const rejectPointRequest_1 = __importDefault(require("../src/functions/rejectPointRequest"));
10
+ const getPhoneNumber_1 = __importDefault(require("../src/functions/getPhoneNumber"));
11
+ const getZaloOaIdConfig_1 = __importDefault(require("../src/functions/getZaloOaIdConfig"));
12
+ const getFlashSalesWithGifts_1 = __importDefault(require("../src/functions/getFlashSalesWithGifts"));
13
+ const getProductDetails_1 = __importDefault(require("../src/functions/getProductDetails"));
14
+ const getLatestGifts_1 = __importDefault(require("../src/functions/getLatestGifts"));
15
+ const updateGiftRedemptionStatus_1 = __importDefault(require("../src/functions/updateGiftRedemptionStatus"));
16
+ const getProducts_1 = __importDefault(require("../src/functions/getProducts"));
17
+ const getVehicleForEdit_1 = __importDefault(require("../src/functions/getVehicleForEdit"));
18
+ const getHomepageBanners_1 = __importDefault(require("../src/functions/getHomepageBanners"));
19
+ const getMembershipRanks_1 = __importDefault(require("../src/functions/getMembershipRanks"));
20
+ const approvePointRequest_1 = __importDefault(require("../src/functions/approvePointRequest"));
21
+ const getRelatedNews_1 = __importDefault(require("../src/functions/getRelatedNews"));
22
+ const getNotifications_1 = __importDefault(require("../src/functions/getNotifications"));
23
+ const deleteVehicle_1 = __importDefault(require("../src/functions/deleteVehicle"));
24
+ const getVehicleModelsByBrand_1 = __importDefault(require("../src/functions/getVehicleModelsByBrand"));
25
+ const getVehiclesByUser_1 = __importDefault(require("../src/functions/getVehiclesByUser"));
26
+ const getUserRedemptions_1 = __importDefault(require("../src/functions/getUserRedemptions"));
27
+ const getOilChangeHistoryByVehicleId_1 = __importDefault(require("../src/functions/getOilChangeHistoryByVehicleId"));
28
+ const getUserRedemptionDetail_1 = __importDefault(require("../src/functions/getUserRedemptionDetail"));
29
+ const recordOilChange_1 = __importDefault(require("../src/functions/recordOilChange"));
30
+ const getGiftCategories_1 = __importDefault(require("../src/functions/getGiftCategories"));
31
+ const getAgencies_1 = __importDefault(require("../src/functions/getAgencies"));
32
+ const redeemGift_1 = __importDefault(require("../src/functions/redeemGift"));
33
+ const getGifts_1 = __importDefault(require("../src/functions/getGifts"));
34
+ const getAgencyDetail_1 = __importDefault(require("../src/functions/getAgencyDetail"));
35
+ const getVehicleBrandsAndModels_1 = __importDefault(require("../src/functions/getVehicleBrandsAndModels"));
36
+ const getNews_1 = __importDefault(require("../src/functions/getNews"));
37
+ const markRedemptionAsUsed_1 = __importDefault(require("../src/functions/markRedemptionAsUsed"));
38
+ const getNearbyAgencies_1 = __importDefault(require("../src/functions/getNearbyAgencies"));
39
+ const addVehicle_1 = __importDefault(require("../src/functions/addVehicle"));
40
+ const claimTask_1 = __importDefault(require("../src/functions/claimTask"));
41
+ const createVehicle_1 = __importDefault(require("../src/functions/createVehicle"));
42
+ const redeemGotitVoucher_1 = __importDefault(require("../src/functions/redeemGotitVoucher"));
43
+ const getGiftDetails_1 = __importDefault(require("../src/functions/getGiftDetails"));
44
+ const markNotificationAsRead_1 = __importDefault(require("../src/functions/markNotificationAsRead"));
45
+ const completeTask_1 = __importDefault(require("../src/functions/completeTask"));
46
+ const getTasks_1 = __importDefault(require("../src/functions/getTasks"));
47
+ const addNewVehicle_1 = __importDefault(require("../src/functions/addNewVehicle"));
48
+ const getQrCodeDetails_1 = __importDefault(require("../src/functions/getQrCodeDetails"));
49
+ const getLocation_1 = __importDefault(require("../src/functions/getLocation"));
50
+ const loginZalo_1 = __importDefault(require("../src/functions/loginZalo"));
51
+ const getOilChangeRecords_1 = __importDefault(require("../src/functions/getOilChangeRecords"));
52
+ const getPendingPointRequests_1 = __importDefault(require("../src/functions/getPendingPointRequests"));
53
+ const getUserLoyaltyInfo_1 = __importDefault(require("../src/functions/getUserLoyaltyInfo"));
54
+ const updateVehicle_1 = __importDefault(require("../src/functions/updateVehicle"));
55
+ const getPointsRedeemed_1 = __importDefault(require("../src/functions/getPointsRedeemed"));
56
+ const getRefreshToken_1 = __importDefault(require("../src/functions/getRefreshToken"));
57
+ const getVehicleBrands_1 = __importDefault(require("../src/functions/getVehicleBrands"));
58
+ const sendMessage_1 = __importDefault(require("../src/functions/sendMessage"));
59
+ const getMembershipBenefits_1 = __importDefault(require("../src/functions/getMembershipBenefits"));
60
+ const updateProfile_1 = __importDefault(require("../src/functions/updateProfile"));
61
+ const processScannedQrCode_1 = __importDefault(require("../src/functions/processScannedQrCode"));
62
+ const toggleNewsFavorite_1 = __importDefault(require("../src/functions/toggleNewsFavorite"));
63
+ const getLoyaltyHistory_1 = __importDefault(require("../src/functions/getLoyaltyHistory"));
64
+ const getNewsDetail_1 = __importDefault(require("../src/functions/getNewsDetail"));
65
+ const getVehicles_1 = __importDefault(require("../src/functions/getVehicles"));
66
+ exports.ALL_FUNCS = {
67
+ getNewsDetails: getNewsDetails_1.default,
68
+ getNewsFavoriteStatus: getNewsFavoriteStatus_1.default,
69
+ rejectPointRequest: rejectPointRequest_1.default,
70
+ getPhoneNumber: getPhoneNumber_1.default,
71
+ getZaloOaIdConfig: getZaloOaIdConfig_1.default,
72
+ getFlashSalesWithGifts: getFlashSalesWithGifts_1.default,
73
+ getProductDetails: getProductDetails_1.default,
74
+ getLatestGifts: getLatestGifts_1.default,
75
+ updateGiftRedemptionStatus: updateGiftRedemptionStatus_1.default,
76
+ getProducts: getProducts_1.default,
77
+ getVehicleForEdit: getVehicleForEdit_1.default,
78
+ getHomepageBanners: getHomepageBanners_1.default,
79
+ getMembershipRanks: getMembershipRanks_1.default,
80
+ approvePointRequest: approvePointRequest_1.default,
81
+ getRelatedNews: getRelatedNews_1.default,
82
+ getNotifications: getNotifications_1.default,
83
+ deleteVehicle: deleteVehicle_1.default,
84
+ getVehicleModelsByBrand: getVehicleModelsByBrand_1.default,
85
+ getVehiclesByUser: getVehiclesByUser_1.default,
86
+ getUserRedemptions: getUserRedemptions_1.default,
87
+ getOilChangeHistoryByVehicleId: getOilChangeHistoryByVehicleId_1.default,
88
+ getUserRedemptionDetail: getUserRedemptionDetail_1.default,
89
+ recordOilChange: recordOilChange_1.default,
90
+ getGiftCategories: getGiftCategories_1.default,
91
+ getAgencies: getAgencies_1.default,
92
+ redeemGift: redeemGift_1.default,
93
+ getGifts: getGifts_1.default,
94
+ getAgencyDetail: getAgencyDetail_1.default,
95
+ getVehicleBrandsAndModels: getVehicleBrandsAndModels_1.default,
96
+ getNews: getNews_1.default,
97
+ markRedemptionAsUsed: markRedemptionAsUsed_1.default,
98
+ getNearbyAgencies: getNearbyAgencies_1.default,
99
+ addVehicle: addVehicle_1.default,
100
+ claimTask: claimTask_1.default,
101
+ createVehicle: createVehicle_1.default,
102
+ redeemGotitVoucher: redeemGotitVoucher_1.default,
103
+ getGiftDetails: getGiftDetails_1.default,
104
+ markNotificationAsRead: markNotificationAsRead_1.default,
105
+ completeTask: completeTask_1.default,
106
+ getTasks: getTasks_1.default,
107
+ addNewVehicle: addNewVehicle_1.default,
108
+ getQrCodeDetails: getQrCodeDetails_1.default,
109
+ getLocation: getLocation_1.default,
110
+ loginZalo: loginZalo_1.default,
111
+ getOilChangeRecords: getOilChangeRecords_1.default,
112
+ getPendingPointRequests: getPendingPointRequests_1.default,
113
+ getUserLoyaltyInfo: getUserLoyaltyInfo_1.default,
114
+ updateVehicle: updateVehicle_1.default,
115
+ getPointsRedeemed: getPointsRedeemed_1.default,
116
+ getRefreshToken: getRefreshToken_1.default,
117
+ getVehicleBrands: getVehicleBrands_1.default,
118
+ sendMessage: sendMessage_1.default,
119
+ getMembershipBenefits: getMembershipBenefits_1.default,
120
+ updateProfile: updateProfile_1.default,
121
+ processScannedQrCode: processScannedQrCode_1.default,
122
+ toggleNewsFavorite: toggleNewsFavorite_1.default,
123
+ getLoyaltyHistory: getLoyaltyHistory_1.default,
124
+ getNewsDetail: getNewsDetail_1.default,
125
+ getVehicles: getVehicles_1.default,
126
+ };
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const functions_1 = require("../functions");
4
+ const funcs = (app) => {
5
+ app.post("/functions/:functionName", async ({ params, body }) => {
6
+ const functionName = params.functionName;
7
+ const response = await functions_1.ALL_FUNCS[functionName](body);
8
+ return response;
9
+ });
10
+ return app;
11
+ };
12
+ exports.default = funcs;
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = appRouterPlugin;
4
+ const path_1 = require("path");
5
+ const fs_1 = require("fs");
6
+ // Function to scan directory and generate routes
7
+ function generateRoutes(dir, basePath = "") {
8
+ const routes = [];
9
+ const entries = (0, fs_1.readdirSync)(dir);
10
+ for (const entry of entries) {
11
+ const fullPath = (0, path_1.join)(dir, entry);
12
+ const stat = (0, fs_1.statSync)(fullPath);
13
+ if (stat.isDirectory()) {
14
+ const subRoutes = generateRoutes(fullPath, `${basePath}/${entry}`);
15
+ routes.push(...subRoutes);
16
+ }
17
+ else if (stat.isFile() &&
18
+ (entry === "page.tsx" || entry === "page.jsx")) {
19
+ const routePath = basePath || "/";
20
+ routes.push({
21
+ path: routePath,
22
+ componentPath: fullPath,
23
+ });
24
+ }
25
+ }
26
+ return routes;
27
+ }
28
+ // Vite plugin
29
+ function appRouterPlugin() {
30
+ let config;
31
+ return {
32
+ name: "vite-plugin-app-router",
33
+ enforce: "pre",
34
+ configResolved(resolvedConfig) {
35
+ config = resolvedConfig;
36
+ },
37
+ // Configure server to handle virtual module
38
+ configureServer(server) {
39
+ server.middlewares.use((req, res, next) => {
40
+ var _a;
41
+ if ((_a = req.url) === null || _a === void 0 ? void 0 : _a.includes("virtual:app-routes")) {
42
+ res.setHeader("Content-Type", "application/javascript");
43
+ next();
44
+ }
45
+ else {
46
+ next();
47
+ }
48
+ });
49
+ },
50
+ // Transform virtual module ID
51
+ resolveId(id) {
52
+ if (id === "virtual:app-routes") {
53
+ return "\0virtual:app-routes.tsx";
54
+ }
55
+ },
56
+ // Load virtual module
57
+ load(id) {
58
+ if (id === "\0virtual:app-routes.tsx") {
59
+ const appDir = (0, path_1.resolve)(config.root, "src/app"); // Changed from 'src/app' to 'app'
60
+ console.log("App Directory:", appDir); // Debug log
61
+ const routes = generateRoutes(appDir);
62
+ console.log("Generated Routes:", routes); // Debug log
63
+ const code = `
64
+ import * as React from 'react';
65
+ import { Routes, Route } from 'react-router-dom';
66
+
67
+ ${routes
68
+ .map((route, i) => `import Component${i} from '${route.componentPath.replace(/\\/g, "/")}';`)
69
+ .join("\n")}
70
+
71
+ export const AppRoutes = () => {
72
+ return React.createElement(
73
+ Routes,
74
+ null,
75
+ ${routes
76
+ .map((route, i) => `React.createElement(Route, { path: '${route.path}', element: React.createElement(Component${i}) })`)
77
+ .join(",\n")}
78
+ );
79
+ };
80
+ `;
81
+ console.log("Generated Code:", code); // Debug log
82
+ return {
83
+ code,
84
+ map: null,
85
+ moduleSideEffects: "no-treeshake",
86
+ };
87
+ }
88
+ },
89
+ // Transform the virtual module to ensure JSX processing
90
+ transform(code, id) {
91
+ if (id === "\0virtual:app-routes.tsx") {
92
+ return {
93
+ code,
94
+ map: null,
95
+ };
96
+ }
97
+ },
98
+ // Hot reload for changes in src/app
99
+ handleHotUpdate({ file, server }) {
100
+ if (file.includes("/src/app/") &&
101
+ (file.endsWith("page.tsx") || file.endsWith("page.jsx"))) {
102
+ server.ws.send({
103
+ type: "full-reload",
104
+ });
105
+ }
106
+ },
107
+ };
108
+ }
@@ -0,0 +1,18 @@
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
+ require("zmp-ui/zaui.css");
7
+ require("@/css/tailwind.scss");
8
+ require("@/css/app.scss");
9
+ const react_1 = __importDefault(require("react"));
10
+ const client_1 = require("react-dom/client");
11
+ require("./app.css");
12
+ const app_config_json_1 = __importDefault(require("../app-config.json"));
13
+ const main_1 = require("./main");
14
+ if (!window.APP_CONFIG) {
15
+ window.APP_CONFIG = app_config_json_1.default;
16
+ }
17
+ const root = (0, client_1.createRoot)(document.getElementById("app"));
18
+ root.render(react_1.default.createElement(main_1.Main));
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.auth = exports.HttpError = exports.db = exports.client = void 0;
4
+ const pglite_1 = require("@electric-sql/pglite");
5
+ const client = new pglite_1.PGlite();
6
+ exports.client = client;
7
+ console.log("Connecting to the database...");
8
+ const MIGRATION = `CREATE SEQUENCE IF NOT EXISTS "public"."users_id_seq";;
9
+ CREATE SEQUENCE IF NOT EXISTS "public"."schools_id_seq";;
10
+ CREATE SEQUENCE IF NOT EXISTS "public"."regions_id_seq";;
11
+ CREATE SEQUENCE IF NOT EXISTS "public"."region_admins_id_seq";;
12
+ CREATE TABLE IF NOT EXISTS "public"."users" (
13
+ "id" integer NOT NULL DEFAULT nextval('users_id_seq'::regclass),
14
+ "username" text NOT NULL,
15
+ "password" text NOT NULL,
16
+ "email" text NOT NULL,
17
+ "created_at" timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
18
+ "updated_at" timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
19
+ "deleted_at" timestamp with time zone,
20
+ CONSTRAINT "users_email_key" UNIQUE ("email"),
21
+ CONSTRAINT "users_pkey" PRIMARY KEY ("id"),
22
+ CONSTRAINT "users_username_key" UNIQUE ("username")
23
+ );;
24
+ COMMENT ON COLUMN "public"."users"."username" IS '{"label": "Username", "type": "short_text", "required": true, "description": "Unique username for the user", "visible": true}';;
25
+ COMMENT ON COLUMN "public"."users"."password" IS '{"label": "Password", "type": "password", "required": true, "description": "User password", "visible": false}';;
26
+ COMMENT ON COLUMN "public"."users"."email" IS '{"label": "Email", "type": "email", "required": true, "description": "User email address", "visible": true}';;
27
+ COMMENT ON COLUMN "public"."users"."created_at" IS '{"label": "Created At", "type": "datetime", "required": true, "description": "Timestamp when the user was created", "visible": false}';;
28
+ COMMENT ON COLUMN "public"."users"."updated_at" IS '{"label": "Updated At", "type": "datetime", "required": true, "description": "Timestamp when the user was last updated", "visible": false}';;
29
+ COMMENT ON COLUMN "public"."users"."deleted_at" IS '{"label": "Deleted At", "type": "datetime", "required": false, "description": "Timestamp when the user was deleted", "visible": false}';;
30
+ CREATE TABLE IF NOT EXISTS "public"."regions" (
31
+ "id" integer NOT NULL DEFAULT nextval('regions_id_seq'::regclass),
32
+ "name" character varying NOT NULL,
33
+ "description" text,
34
+ "created_by" integer,
35
+ "created_at" timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
36
+ "updated_at" timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
37
+ "deleted_at" timestamp with time zone,
38
+ CONSTRAINT "fk_regions_created_by" FOREIGN KEY ("created_by") REFERENCES "users" ("id"),
39
+ CONSTRAINT "regions_pkey" PRIMARY KEY ("id")
40
+ );;
41
+ COMMENT ON COLUMN "public"."regions"."id" IS '{"label": "ID", "type": "number", "required": true, "description": "Mã định danh duy nhất của vùng", "visible": false}';;
42
+ COMMENT ON COLUMN "public"."regions"."name" IS '{"label": "Tên vùng", "type": "short_text", "required": true, "description": "Tên của vùng", "visible": true}';;
43
+ COMMENT ON COLUMN "public"."regions"."description" IS '{"label": "Mô tả", "type": "long_text", "required": false, "description": "Mô tả về vùng", "visible": true}';;
44
+ COMMENT ON COLUMN "public"."regions"."created_by" IS '{"label": "Người tạo", "type": "foreign_key", "required": false, "description": "Người đã tạo bản ghi này", "table": "users", "column": "id", "visible": false}';;
45
+ COMMENT ON COLUMN "public"."regions"."created_at" IS '{"label": "Ngày tạo", "type": "datetime", "required": true, "description": "Thời điểm tạo bản ghi", "visible": false}';;
46
+ COMMENT ON COLUMN "public"."regions"."updated_at" IS '{"label": "Ngày cập nhật", "type": "datetime", "required": true, "description": "Thời điểm cập nhật bản ghi cuối cùng", "visible": false}';;
47
+ COMMENT ON COLUMN "public"."regions"."deleted_at" IS '{"label": "Ngày xoá", "type": "datetime", "required": false, "description": "Thời điểm xoá bản ghi (soft delete)", "visible": false}';;
48
+ CREATE TABLE IF NOT EXISTS "public"."schools" (
49
+ "id" integer NOT NULL DEFAULT nextval('schools_id_seq'::regclass),
50
+ "name" character varying NOT NULL,
51
+ "address" text,
52
+ "latitude" numeric NOT NULL,
53
+ "longitude" numeric NOT NULL,
54
+ "created_by" integer,
55
+ "created_at" timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
56
+ "updated_at" timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
57
+ "deleted_at" timestamp with time zone,
58
+ "region_id" integer,
59
+ CONSTRAINT "fk_schools_created_by" FOREIGN KEY ("created_by") REFERENCES "users" ("id"),
60
+ CONSTRAINT "fk_schools_region_id" FOREIGN KEY ("region_id") REFERENCES "regions" ("id"),
61
+ CONSTRAINT "schools_pkey" PRIMARY KEY ("id")
62
+ );;
63
+ COMMENT ON COLUMN "public"."schools"."id" IS '{"label": "ID", "type": "number", "required": true, "description": "Mã định danh duy nhất của trường học", "visible": false}';;
64
+ COMMENT ON COLUMN "public"."schools"."name" IS '{"label": "Tên trường", "type": "short_text", "required": true, "description": "Tên của trường học", "visible": true}';;
65
+ COMMENT ON COLUMN "public"."schools"."address" IS '{"label": "Địa chỉ", "type": "long_text", "required": false, "description": "Địa chỉ của trường học", "visible": true}';;
66
+ COMMENT ON COLUMN "public"."schools"."latitude" IS '{"label": "Vĩ độ", "type": "decimal", "required": true, "description": "Vĩ độ địa lý của trường học", "visible": true}';;
67
+ COMMENT ON COLUMN "public"."schools"."longitude" IS '{"label": "Kinh độ", "type": "decimal", "required": true, "description": "Kinh độ địa lý của trường học", "visible": true}';;
68
+ COMMENT ON COLUMN "public"."schools"."created_by" IS '{"label": "Người tạo", "type": "foreign_key", "required": false, "description": "Người đã tạo bản ghi này", "table": "users", "column": "id", "visible": false}';;
69
+ COMMENT ON COLUMN "public"."schools"."created_at" IS '{"label": "Ngày tạo", "type": "datetime", "required": true, "description": "Thời điểm tạo bản ghi", "visible": false}';;
70
+ COMMENT ON COLUMN "public"."schools"."updated_at" IS '{"label": "Ngày cập nhật", "type": "datetime", "required": true, "description": "Thời điểm cập nhật bản ghi cuối cùng", "visible": false}';;
71
+ COMMENT ON COLUMN "public"."schools"."deleted_at" IS '{"label": "Ngày xoá", "type": "datetime", "required": false, "description": "Thời điểm xoá bản ghi (soft delete)", "visible": false}';;
72
+ COMMENT ON COLUMN "public"."schools"."region_id" IS '{"label": "Vùng", "type": "foreign_key", "required": false, "description": "Vùng mà trường học thuộc về", "table": "regions", "column": "id", "visible": true}';;
73
+ CREATE TABLE IF NOT EXISTS "public"."region_admins" (
74
+ "id" integer NOT NULL DEFAULT nextval('region_admins_id_seq'::regclass),
75
+ "region_id" integer NOT NULL,
76
+ "user_id" integer NOT NULL,
77
+ "created_by" integer,
78
+ "created_at" timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
79
+ "updated_at" timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
80
+ "deleted_at" timestamp with time zone,
81
+ CONSTRAINT "fk_region_admins_created_by" FOREIGN KEY ("created_by") REFERENCES "users" ("id"),
82
+ CONSTRAINT "fk_region_admins_region_id" FOREIGN KEY ("region_id") REFERENCES "regions" ("id"),
83
+ CONSTRAINT "fk_region_admins_user_id" FOREIGN KEY ("user_id") REFERENCES "users" ("id"),
84
+ CONSTRAINT "region_admins_pkey" PRIMARY KEY ("id"),
85
+ CONSTRAINT "uq_region_admins_region_user" UNIQUE ("region_id", "user_id")
86
+ );;
87
+ COMMENT ON COLUMN "public"."region_admins"."id" IS '{"label": "ID", "type": "number", "required": true, "description": "Mã định danh duy nhất của liên kết admin vùng", "visible": false}';;
88
+ COMMENT ON COLUMN "public"."region_admins"."region_id" IS '{"label": "Vùng", "type": "foreign_key", "required": true, "description": "Mã định danh của vùng", "table": "regions", "column": "id", "visible": true}';;
89
+ COMMENT ON COLUMN "public"."region_admins"."user_id" IS '{"label": "Người dùng (Admin)", "type": "foreign_key", "required": true, "description": "Mã định danh của người dùng là admin cho vùng này", "table": "users", "column": "id", "visible": true}';;
90
+ COMMENT ON COLUMN "public"."region_admins"."created_by" IS '{"label": "Người tạo", "type": "foreign_key", "required": false, "description": "Người đã tạo liên kết này", "table": "users", "column": "id", "visible": false}';;
91
+ COMMENT ON COLUMN "public"."region_admins"."created_at" IS '{"label": "Ngày tạo", "type": "datetime", "required": true, "description": "Thời điểm tạo bản ghi", "visible": false}';;
92
+ COMMENT ON COLUMN "public"."region_admins"."updated_at" IS '{"label": "Ngày cập nhật", "type": "datetime", "required": true, "description": "Thời điểm cập nhật bản ghi cuối cùng", "visible": false}';;
93
+ COMMENT ON COLUMN "public"."region_admins"."deleted_at" IS '{"label": "Ngày xoá", "type": "datetime", "required": false, "description": "Thời điểm xoá bản ghi (soft delete)", "visible": false}';
94
+
95
+ INSERT INTO "public"."users" ("username", "password", "email") VALUES ('admin', '$2a$12$fx1EZ0GDonLi5rv9w3d0F.HWt1j9jmibw1b76TzaYytBZlALXrH0m', 'sohutek@gmaail.com')
96
+ `;
97
+ client.exec(MIGRATION);
98
+ class HttpError extends Error {
99
+ constructor(message, status) {
100
+ super(message);
101
+ this.status = status;
102
+ this.name = "HttpError";
103
+ }
104
+ toJSON() {
105
+ return {
106
+ message: this.message,
107
+ status: this.status,
108
+ };
109
+ }
110
+ toString() {
111
+ return JSON.stringify(this.toJSON());
112
+ }
113
+ static fromError(error) {
114
+ return new HttpError(error.message, 500);
115
+ }
116
+ static fromStatus(status, message) {
117
+ return new HttpError(message, status);
118
+ }
119
+ }
120
+ exports.HttpError = HttpError;
121
+ const auth = async () => {
122
+ // Simulate authentication logic
123
+ // In a real application, you would verify a token or session here
124
+ return {
125
+ id: 1, // Example user ID
126
+ username: "admin", // Example username
127
+ email: "",
128
+ };
129
+ };
130
+ exports.auth = auth;
131
+ const db = client; // Exporting client as db for compatibility
132
+ exports.db = db;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ var _a, _b;
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const elysia_1 = require("elysia");
8
+ const cors_1 = require("@elysiajs/cors");
9
+ const router_plugin_1 = __importDefault(require("../.gen/plugins/router.plugin"));
10
+ const swagger_1 = __importDefault(require("@elysiajs/swagger"));
11
+ const app = new elysia_1.Elysia()
12
+ .use((0, cors_1.cors)())
13
+ .use((0, swagger_1.default)())
14
+ .use(router_plugin_1.default)
15
+ .get("/", () => "Hello Elysia")
16
+ .listen(3006);
17
+ console.log(`🦊 Elysia is running at ${(_a = app.server) === null || _a === void 0 ? void 0 : _a.hostname}:${(_b = app.server) === null || _b === void 0 ? void 0 : _b.port}`);
package/bun.lock CHANGED
@@ -7,9 +7,11 @@
7
7
  "@babel/standalone": "^7.28.2",
8
8
  "axios": "^1.11.0",
9
9
  "commander": "^14.0.0",
10
+ "inquirer": "^12.9.6",
10
11
  "lodash": "^4.17.21",
11
12
  "open": "^10.2.0",
12
13
  "ora": "^8.2.0",
14
+ "pako": "^2.1.0",
13
15
  "prettier": "^3.6.2",
14
16
  "qrcode-terminal": "^0.12.0",
15
17
  "unzipper": "^0.12.3",
@@ -21,6 +23,7 @@
21
23
  "@types/commander": "^2.12.5",
22
24
  "@types/lodash": "^4.17.20",
23
25
  "@types/node": "^24.1.0",
26
+ "@types/pako": "^2.0.4",
24
27
  "@types/qrcode-terminal": "^0.12.2",
25
28
  "@types/unzipper": "^0.10.11",
26
29
  "@types/ws": "^8.18.1",
@@ -39,6 +42,38 @@
39
42
 
40
43
  "@babel/types": ["@babel/types@7.28.2", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1" } }, "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ=="],
41
44
 
45
+ "@inquirer/ansi": ["@inquirer/ansi@1.0.0", "", {}, "sha512-JWaTfCxI1eTmJ1BIv86vUfjVatOdxwD0DAVKYevY8SazeUUZtW+tNbsdejVO1GYE0GXJW1N1ahmiC3TFd+7wZA=="],
46
+
47
+ "@inquirer/checkbox": ["@inquirer/checkbox@4.2.4", "", { "dependencies": { "@inquirer/ansi": "^1.0.0", "@inquirer/core": "^10.2.2", "@inquirer/figures": "^1.0.13", "@inquirer/type": "^3.0.8", "yoctocolors-cjs": "^2.1.2" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-2n9Vgf4HSciFq8ttKXk+qy+GsyTXPV1An6QAwe/8bkbbqvG4VW1I/ZY1pNu2rf+h9bdzMLPbRSfcNxkHBy/Ydw=="],
48
+
49
+ "@inquirer/confirm": ["@inquirer/confirm@5.1.18", "", { "dependencies": { "@inquirer/core": "^10.2.2", "@inquirer/type": "^3.0.8" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-MilmWOzHa3Ks11tzvuAmFoAd/wRuaP3SwlT1IZhyMke31FKLxPiuDWcGXhU+PKveNOpAc4axzAgrgxuIJJRmLw=="],
50
+
51
+ "@inquirer/core": ["@inquirer/core@10.2.2", "", { "dependencies": { "@inquirer/ansi": "^1.0.0", "@inquirer/figures": "^1.0.13", "@inquirer/type": "^3.0.8", "cli-width": "^4.1.0", "mute-stream": "^2.0.0", "signal-exit": "^4.1.0", "wrap-ansi": "^6.2.0", "yoctocolors-cjs": "^2.1.2" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-yXq/4QUnk4sHMtmbd7irwiepjB8jXU0kkFRL4nr/aDBA2mDz13cMakEWdDwX3eSCTkk03kwcndD1zfRAIlELxA=="],
52
+
53
+ "@inquirer/editor": ["@inquirer/editor@4.2.20", "", { "dependencies": { "@inquirer/core": "^10.2.2", "@inquirer/external-editor": "^1.0.2", "@inquirer/type": "^3.0.8" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-7omh5y5bK672Q+Brk4HBbnHNowOZwrb/78IFXdrEB9PfdxL3GudQyDk8O9vQ188wj3xrEebS2M9n18BjJoI83g=="],
54
+
55
+ "@inquirer/expand": ["@inquirer/expand@4.0.20", "", { "dependencies": { "@inquirer/core": "^10.2.2", "@inquirer/type": "^3.0.8", "yoctocolors-cjs": "^2.1.2" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-Dt9S+6qUg94fEvgn54F2Syf0Z3U8xmnBI9ATq2f5h9xt09fs2IJXSCIXyyVHwvggKWFXEY/7jATRo2K6Dkn6Ow=="],
56
+
57
+ "@inquirer/external-editor": ["@inquirer/external-editor@1.0.2", "", { "dependencies": { "chardet": "^2.1.0", "iconv-lite": "^0.7.0" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-yy9cOoBnx58TlsPrIxauKIFQTiyH+0MK4e97y4sV9ERbI+zDxw7i2hxHLCIEGIE/8PPvDxGhgzIOTSOWcs6/MQ=="],
58
+
59
+ "@inquirer/figures": ["@inquirer/figures@1.0.13", "", {}, "sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw=="],
60
+
61
+ "@inquirer/input": ["@inquirer/input@4.2.4", "", { "dependencies": { "@inquirer/core": "^10.2.2", "@inquirer/type": "^3.0.8" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-cwSGpLBMwpwcZZsc6s1gThm0J+it/KIJ+1qFL2euLmSKUMGumJ5TcbMgxEjMjNHRGadouIYbiIgruKoDZk7klw=="],
62
+
63
+ "@inquirer/number": ["@inquirer/number@3.0.20", "", { "dependencies": { "@inquirer/core": "^10.2.2", "@inquirer/type": "^3.0.8" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-bbooay64VD1Z6uMfNehED2A2YOPHSJnQLs9/4WNiV/EK+vXczf/R988itL2XLDGTgmhMF2KkiWZo+iEZmc4jqg=="],
64
+
65
+ "@inquirer/password": ["@inquirer/password@4.0.20", "", { "dependencies": { "@inquirer/ansi": "^1.0.0", "@inquirer/core": "^10.2.2", "@inquirer/type": "^3.0.8" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-nxSaPV2cPvvoOmRygQR+h0B+Av73B01cqYLcr7NXcGXhbmsYfUb8fDdw2Us1bI2YsX+VvY7I7upgFYsyf8+Nug=="],
66
+
67
+ "@inquirer/prompts": ["@inquirer/prompts@7.8.6", "", { "dependencies": { "@inquirer/checkbox": "^4.2.4", "@inquirer/confirm": "^5.1.18", "@inquirer/editor": "^4.2.20", "@inquirer/expand": "^4.0.20", "@inquirer/input": "^4.2.4", "@inquirer/number": "^3.0.20", "@inquirer/password": "^4.0.20", "@inquirer/rawlist": "^4.1.8", "@inquirer/search": "^3.1.3", "@inquirer/select": "^4.3.4" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-68JhkiojicX9SBUD8FE/pSKbOKtwoyaVj1kwqLfvjlVXZvOy3iaSWX4dCLsZyYx/5Ur07Fq+yuDNOen+5ce6ig=="],
68
+
69
+ "@inquirer/rawlist": ["@inquirer/rawlist@4.1.8", "", { "dependencies": { "@inquirer/core": "^10.2.2", "@inquirer/type": "^3.0.8", "yoctocolors-cjs": "^2.1.2" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-CQ2VkIASbgI2PxdzlkeeieLRmniaUU1Aoi5ggEdm6BIyqopE9GuDXdDOj9XiwOqK5qm72oI2i6J+Gnjaa26ejg=="],
70
+
71
+ "@inquirer/search": ["@inquirer/search@3.1.3", "", { "dependencies": { "@inquirer/core": "^10.2.2", "@inquirer/figures": "^1.0.13", "@inquirer/type": "^3.0.8", "yoctocolors-cjs": "^2.1.2" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-D5T6ioybJJH0IiSUK/JXcoRrrm8sXwzrVMjibuPs+AgxmogKslaafy1oxFiorNI4s3ElSkeQZbhYQgLqiL8h6Q=="],
72
+
73
+ "@inquirer/select": ["@inquirer/select@4.3.4", "", { "dependencies": { "@inquirer/ansi": "^1.0.0", "@inquirer/core": "^10.2.2", "@inquirer/figures": "^1.0.13", "@inquirer/type": "^3.0.8", "yoctocolors-cjs": "^2.1.2" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-Qp20nySRmfbuJBBsgPU7E/cL62Hf250vMZRzYDcBHty2zdD1kKCnoDFWRr0WO2ZzaXp3R7a4esaVGJUx0E6zvA=="],
74
+
75
+ "@inquirer/type": ["@inquirer/type@3.0.8", "", { "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-lg9Whz8onIHRthWaN1Q9EGLa/0LFJjyM8mEUbL1eTi6yMGvBf8gvyDLtxSXztQsxMvhxxNpJYrwa1YHdq+w4Jw=="],
76
+
42
77
  "@types/babel__core": ["@types/babel__core@7.20.5", "", { "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA=="],
43
78
 
44
79
  "@types/babel__generator": ["@types/babel__generator@7.27.0", "", { "dependencies": { "@babel/types": "^7.0.0" } }, "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg=="],
@@ -55,6 +90,8 @@
55
90
 
56
91
  "@types/node": ["@types/node@24.1.0", "", { "dependencies": { "undici-types": "~7.8.0" } }, "sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w=="],
57
92
 
93
+ "@types/pako": ["@types/pako@2.0.4", "", {}, "sha512-VWDCbrLeVXJM9fihYodcLiIv0ku+AlOa/TQ1SvYOaBuyrSKgEcro95LJyIsJ4vSo6BXIxOKxiJAat04CmST9Fw=="],
94
+
58
95
  "@types/qrcode-terminal": ["@types/qrcode-terminal@0.12.2", "", {}, "sha512-v+RcIEJ+Uhd6ygSQ0u5YYY7ZM+la7GgPbs0V/7l/kFs2uO4S8BcIUEMoP7za4DNIqNnUD5npf0A/7kBhrCKG5Q=="],
59
96
 
60
97
  "@types/unzipper": ["@types/unzipper@0.10.11", "", { "dependencies": { "@types/node": "*" } }, "sha512-D25im2zjyMCcgL9ag6N46+wbtJBnXIr7SI4zHf9eJD2Dw2tEB5e+p5MYkrxKIVRscs5QV0EhtU9rgXSPx90oJg=="],
@@ -63,6 +100,8 @@
63
100
 
64
101
  "ansi-regex": ["ansi-regex@6.1.0", "", {}, "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA=="],
65
102
 
103
+ "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="],
104
+
66
105
  "asynckit": ["asynckit@0.4.0", "", {}, "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="],
67
106
 
68
107
  "axios": ["axios@1.11.0", "", { "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.4", "proxy-from-env": "^1.1.0" } }, "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA=="],
@@ -75,10 +114,18 @@
75
114
 
76
115
  "chalk": ["chalk@5.4.1", "", {}, "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w=="],
77
116
 
117
+ "chardet": ["chardet@2.1.0", "", {}, "sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA=="],
118
+
78
119
  "cli-cursor": ["cli-cursor@5.0.0", "", { "dependencies": { "restore-cursor": "^5.0.0" } }, "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw=="],
79
120
 
80
121
  "cli-spinners": ["cli-spinners@2.9.2", "", {}, "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg=="],
81
122
 
123
+ "cli-width": ["cli-width@4.1.0", "", {}, "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ=="],
124
+
125
+ "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="],
126
+
127
+ "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="],
128
+
82
129
  "combined-stream": ["combined-stream@1.0.8", "", { "dependencies": { "delayed-stream": "~1.0.0" } }, "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="],
83
130
 
84
131
  "commander": ["commander@14.0.0", "", {}, "sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA=="],
@@ -131,10 +178,16 @@
131
178
 
132
179
  "hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="],
133
180
 
181
+ "iconv-lite": ["iconv-lite@0.7.0", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ=="],
182
+
134
183
  "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="],
135
184
 
185
+ "inquirer": ["inquirer@12.9.6", "", { "dependencies": { "@inquirer/ansi": "^1.0.0", "@inquirer/core": "^10.2.2", "@inquirer/prompts": "^7.8.6", "@inquirer/type": "^3.0.8", "mute-stream": "^2.0.0", "run-async": "^4.0.5", "rxjs": "^7.8.2" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-603xXOgyfxhuis4nfnWaZrMaotNT0Km9XwwBNWUKbIDqeCY89jGr2F9YPEMiNhU6XjIP4VoWISMBFfcc5NgrTw=="],
186
+
136
187
  "is-docker": ["is-docker@3.0.0", "", { "bin": { "is-docker": "cli.js" } }, "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ=="],
137
188
 
189
+ "is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="],
190
+
138
191
  "is-inside-container": ["is-inside-container@1.0.0", "", { "dependencies": { "is-docker": "^3.0.0" }, "bin": { "is-inside-container": "cli.js" } }, "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA=="],
139
192
 
140
193
  "is-interactive": ["is-interactive@2.0.0", "", {}, "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ=="],
@@ -159,6 +212,8 @@
159
212
 
160
213
  "mimic-function": ["mimic-function@5.0.1", "", {}, "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA=="],
161
214
 
215
+ "mute-stream": ["mute-stream@2.0.0", "", {}, "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA=="],
216
+
162
217
  "node-int64": ["node-int64@0.4.0", "", {}, "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw=="],
163
218
 
164
219
  "onetime": ["onetime@7.0.0", "", { "dependencies": { "mimic-function": "^5.0.0" } }, "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ=="],
@@ -167,6 +222,8 @@
167
222
 
168
223
  "ora": ["ora@8.2.0", "", { "dependencies": { "chalk": "^5.3.0", "cli-cursor": "^5.0.0", "cli-spinners": "^2.9.2", "is-interactive": "^2.0.0", "is-unicode-supported": "^2.0.0", "log-symbols": "^6.0.0", "stdin-discarder": "^0.2.2", "string-width": "^7.2.0", "strip-ansi": "^7.1.0" } }, "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw=="],
169
224
 
225
+ "pako": ["pako@2.1.0", "", {}, "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug=="],
226
+
170
227
  "prettier": ["prettier@3.6.2", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ=="],
171
228
 
172
229
  "process-nextick-args": ["process-nextick-args@2.0.1", "", {}, "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="],
@@ -181,8 +238,14 @@
181
238
 
182
239
  "run-applescript": ["run-applescript@7.0.0", "", {}, "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A=="],
183
240
 
241
+ "run-async": ["run-async@4.0.6", "", {}, "sha512-IoDlSLTs3Yq593mb3ZoKWKXMNu3UpObxhgA/Xuid5p4bbfi2jdY1Hj0m1K+0/tEuQTxIGMhQDqGjKb7RuxGpAQ=="],
242
+
243
+ "rxjs": ["rxjs@7.8.2", "", { "dependencies": { "tslib": "^2.1.0" } }, "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA=="],
244
+
184
245
  "safe-buffer": ["safe-buffer@5.1.2", "", {}, "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="],
185
246
 
247
+ "safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="],
248
+
186
249
  "signal-exit": ["signal-exit@4.1.0", "", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="],
187
250
 
188
251
  "stdin-discarder": ["stdin-discarder@0.2.2", "", {}, "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ=="],
@@ -193,6 +256,8 @@
193
256
 
194
257
  "strip-ansi": ["strip-ansi@7.1.0", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ=="],
195
258
 
259
+ "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
260
+
196
261
  "typescript": ["typescript@5.8.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ=="],
197
262
 
198
263
  "undici-types": ["undici-types@7.8.0", "", {}, "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw=="],
@@ -205,10 +270,22 @@
205
270
 
206
271
  "uuid": ["uuid@13.0.0", "", { "bin": { "uuid": "dist-node/bin/uuid" } }, "sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w=="],
207
272
 
273
+ "wrap-ansi": ["wrap-ansi@6.2.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA=="],
274
+
208
275
  "ws": ["ws@8.18.3", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg=="],
209
276
 
210
277
  "wsl-utils": ["wsl-utils@0.1.0", "", { "dependencies": { "is-wsl": "^3.1.0" } }, "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw=="],
211
278
 
279
+ "yoctocolors-cjs": ["yoctocolors-cjs@2.1.3", "", {}, "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw=="],
280
+
212
281
  "log-symbols/is-unicode-supported": ["is-unicode-supported@1.3.0", "", {}, "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ=="],
282
+
283
+ "wrap-ansi/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="],
284
+
285
+ "wrap-ansi/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="],
286
+
287
+ "wrap-ansi/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="],
288
+
289
+ "wrap-ansi/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="],
213
290
  }
214
291
  }