@fctc/interface-logic 4.4.0 → 4.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/environment.d.mts +1 -1
- package/dist/environment.d.ts +1 -1
- package/dist/hooks.d.mts +1 -4
- package/dist/hooks.d.ts +1 -4
- package/dist/hooks.js +301 -813
- package/dist/hooks.mjs +147 -658
- package/dist/provider.d.mts +13 -6
- package/dist/provider.d.ts +13 -6
- package/dist/provider.js +226 -711
- package/dist/provider.mjs +187 -674
- package/dist/services.d.mts +8 -8
- package/dist/services.d.ts +8 -8
- package/dist/services.js +262 -766
- package/dist/services.mjs +150 -653
- package/dist/store.js +1 -1
- package/dist/store.mjs +1 -1
- package/package.json +3 -2
- package/dist/import-snapshot-Ds0gqFFm.d.mts +0 -3
- package/dist/import-snapshot-Ds0gqFFm.d.ts +0 -3
package/dist/hooks.mjs
CHANGED
|
@@ -53,6 +53,58 @@ var UriConstants = /* @__PURE__ */ ((UriConstants2) => {
|
|
|
53
53
|
// src/utils/format.ts
|
|
54
54
|
import moment from "moment";
|
|
55
55
|
|
|
56
|
+
// src/constants/model/model-constant.ts
|
|
57
|
+
var LoadDataModel = /* @__PURE__ */ ((LoadDataModel2) => {
|
|
58
|
+
LoadDataModel2["ACCOUNT_CASH_ROUNDING"] = "account.cash.rounding";
|
|
59
|
+
LoadDataModel2["ACCOUNT_FISCAL_POSITION"] = "account.fiscal.position";
|
|
60
|
+
LoadDataModel2["ACCOUNT_FISCAL_POSITION_TAX"] = "account.fiscal.position.tax";
|
|
61
|
+
LoadDataModel2["ACCOUNT_TAX"] = "account.tax";
|
|
62
|
+
LoadDataModel2["ACCOUNT_TAX_GROUP"] = "account.tax.group";
|
|
63
|
+
LoadDataModel2["DECIMAL_PRECISION"] = "decimal.precision";
|
|
64
|
+
LoadDataModel2["IR_MODULE_MODULE"] = "ir.module.module";
|
|
65
|
+
LoadDataModel2["IR_UI_VIEW"] = "ir.ui.view";
|
|
66
|
+
LoadDataModel2["POS_BILL"] = "pos.bill";
|
|
67
|
+
LoadDataModel2["POS_CATEGORY"] = "pos.category";
|
|
68
|
+
LoadDataModel2["POS_CONFIG"] = "pos.config";
|
|
69
|
+
LoadDataModel2["POS_NOTE"] = "pos.note";
|
|
70
|
+
LoadDataModel2["POS_ORDER"] = "pos.order";
|
|
71
|
+
LoadDataModel2["POS_ORDER_LINE"] = "pos.order.line";
|
|
72
|
+
LoadDataModel2["POS_PACK_OPERATION_LOT"] = "pos.pack.operation.lot";
|
|
73
|
+
LoadDataModel2["POS_PAYMENT"] = "pos.payment";
|
|
74
|
+
LoadDataModel2["POS_PAYMENT_METHOD"] = "pos.payment.method";
|
|
75
|
+
LoadDataModel2["POS_PRINTER"] = "pos.printer";
|
|
76
|
+
LoadDataModel2["POS_SESSION"] = "pos.session";
|
|
77
|
+
LoadDataModel2["POS_PREPARATION_DISPLAY_DISPLAY"] = "pos_preparation_display.display";
|
|
78
|
+
LoadDataModel2["PRODUCT_ATTRIBUTE"] = "product.attribute";
|
|
79
|
+
LoadDataModel2["PRODUCT_ATTRIBUTE_CUSTOM_VALUE"] = "product.attribute.custom.value";
|
|
80
|
+
LoadDataModel2["PRODUCT_CATEGORY"] = "product.category";
|
|
81
|
+
LoadDataModel2["PRODUCT_COMBO"] = "product.combo";
|
|
82
|
+
LoadDataModel2["PRODUCT_COMBO_ITEM"] = "product.combo.item";
|
|
83
|
+
LoadDataModel2["PRODUCT_PACKAGING"] = "product.packaging";
|
|
84
|
+
LoadDataModel2["PRODUCT_PRICELIST"] = "product.pricelist";
|
|
85
|
+
LoadDataModel2["PRODUCT_PRICELIST_ITEM"] = "product.pricelist.item";
|
|
86
|
+
LoadDataModel2["PRODUCT_PRODUCT"] = "product.product";
|
|
87
|
+
LoadDataModel2["PRODUCT_TAG"] = "product.tag";
|
|
88
|
+
LoadDataModel2["PRODUCT_TEMPLATE_ATTRIBUTE_LINE"] = "product.template.attribute.line";
|
|
89
|
+
LoadDataModel2["PRODUCT_TEMPLATE_ATTRIBUTE_VALUE"] = "product.template.attribute.value";
|
|
90
|
+
LoadDataModel2["RES_COMPANY"] = "res.company";
|
|
91
|
+
LoadDataModel2["RES_COUNTRY"] = "res.country";
|
|
92
|
+
LoadDataModel2["RES_COUNTRY_STATE"] = "res.country.state";
|
|
93
|
+
LoadDataModel2["RES_CURRENCY"] = "res.currency";
|
|
94
|
+
LoadDataModel2["RES_LANG"] = "res.lang";
|
|
95
|
+
LoadDataModel2["RES_PARTNER"] = "res.partner";
|
|
96
|
+
LoadDataModel2["RES_USERS"] = "res.users";
|
|
97
|
+
LoadDataModel2["STOCK_PICKING_TYPE"] = "stock.picking.type";
|
|
98
|
+
LoadDataModel2["UOM_CATEGORY"] = "uom.category";
|
|
99
|
+
LoadDataModel2["UOM_UOM"] = "uom.uom";
|
|
100
|
+
LoadDataModel2["LOYALTY_PROGRAM"] = "loyalty.program";
|
|
101
|
+
LoadDataModel2["LOYALTY_RULE"] = "loyalty.rule";
|
|
102
|
+
LoadDataModel2["RESTAURANT_TABLE"] = "restaurant.table";
|
|
103
|
+
LoadDataModel2["RESTAURANT_FLOOR"] = "restaurant.floor";
|
|
104
|
+
LoadDataModel2["POS_MAKE_PAYMENT"] = "pos.make.payment";
|
|
105
|
+
return LoadDataModel2;
|
|
106
|
+
})(LoadDataModel || {});
|
|
107
|
+
|
|
56
108
|
// src/constants/widget/widget-avatar-constant.ts
|
|
57
109
|
var WIDGETAVATAR = /* @__PURE__ */ ((WIDGETAVATAR2) => {
|
|
58
110
|
WIDGETAVATAR2["many2one_avatar_user"] = "many2one_avatar_user";
|
|
@@ -2203,13 +2255,6 @@ function cleanObject(obj) {
|
|
|
2203
2255
|
}
|
|
2204
2256
|
return result;
|
|
2205
2257
|
}
|
|
2206
|
-
var extractIdFromDomain = (domain) => {
|
|
2207
|
-
if (!domain || !Array.isArray(domain)) return null;
|
|
2208
|
-
const idCond = domain.find(
|
|
2209
|
-
([field, operator]) => field === "id" && operator === "="
|
|
2210
|
-
);
|
|
2211
|
-
return idCond ? Number(idCond[2]) : null;
|
|
2212
|
-
};
|
|
2213
2258
|
|
|
2214
2259
|
// src/provider/react-query-provider.tsx
|
|
2215
2260
|
import { useState as useState2 } from "react";
|
|
@@ -2262,7 +2307,7 @@ var initialState2 = {
|
|
|
2262
2307
|
lang: "vi_VN",
|
|
2263
2308
|
tz: "Asia/Saigon"
|
|
2264
2309
|
},
|
|
2265
|
-
|
|
2310
|
+
isSupaMode: false
|
|
2266
2311
|
};
|
|
2267
2312
|
var envSlice = createSlice2({
|
|
2268
2313
|
name: "env",
|
|
@@ -2877,6 +2922,15 @@ var ServiceContext = createContext2(null);
|
|
|
2877
2922
|
import { useEffect as useEffect3 } from "react";
|
|
2878
2923
|
import { Fragment as Fragment2, jsx as jsx7 } from "react/jsx-runtime";
|
|
2879
2924
|
|
|
2925
|
+
// src/provider/supabase-provider.tsx
|
|
2926
|
+
import { createContext as createContext3, useContext as useContext3, useMemo } from "react";
|
|
2927
|
+
import { createClient } from "@supabase/supabase-js";
|
|
2928
|
+
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
2929
|
+
var SupabaseContext = createContext3(null);
|
|
2930
|
+
var useSupabaseOptional = () => {
|
|
2931
|
+
return useContext3(SupabaseContext);
|
|
2932
|
+
};
|
|
2933
|
+
|
|
2880
2934
|
// src/services/action-service/index.ts
|
|
2881
2935
|
function useActionService() {
|
|
2882
2936
|
const { env } = useEnv();
|
|
@@ -5081,544 +5135,7 @@ var getASessionService = (env) => {
|
|
|
5081
5135
|
|
|
5082
5136
|
// src/services/pos-service/add-entity.ts
|
|
5083
5137
|
import { useCallback as useCallback13 } from "react";
|
|
5084
|
-
|
|
5085
|
-
// src/services/filesystem-service/file-service.ts
|
|
5086
|
-
import { Directory, Encoding, Filesystem } from "@capacitor/filesystem";
|
|
5087
|
-
var fileService = {
|
|
5088
|
-
read: async (path) => {
|
|
5089
|
-
try {
|
|
5090
|
-
const res = await Filesystem.readFile({
|
|
5091
|
-
path,
|
|
5092
|
-
directory: Directory.Data,
|
|
5093
|
-
encoding: Encoding.UTF8
|
|
5094
|
-
});
|
|
5095
|
-
if (typeof res.data === "string") return res.data;
|
|
5096
|
-
if (res.data instanceof Blob) return await res.data.text();
|
|
5097
|
-
return null;
|
|
5098
|
-
} catch {
|
|
5099
|
-
return null;
|
|
5100
|
-
}
|
|
5101
|
-
},
|
|
5102
|
-
write: async (path, data) => {
|
|
5103
|
-
await Filesystem.writeFile({
|
|
5104
|
-
path,
|
|
5105
|
-
data,
|
|
5106
|
-
directory: Directory.Data,
|
|
5107
|
-
encoding: Encoding.UTF8,
|
|
5108
|
-
recursive: true
|
|
5109
|
-
});
|
|
5110
|
-
},
|
|
5111
|
-
writeAtomic: async (path, data) => {
|
|
5112
|
-
const tempPath = path + ".tmp";
|
|
5113
|
-
await Filesystem.writeFile({
|
|
5114
|
-
path: tempPath,
|
|
5115
|
-
data,
|
|
5116
|
-
directory: Directory.Data,
|
|
5117
|
-
encoding: Encoding.UTF8,
|
|
5118
|
-
recursive: true
|
|
5119
|
-
});
|
|
5120
|
-
try {
|
|
5121
|
-
await Filesystem.deleteFile({
|
|
5122
|
-
path,
|
|
5123
|
-
directory: Directory.Data
|
|
5124
|
-
});
|
|
5125
|
-
} catch {
|
|
5126
|
-
}
|
|
5127
|
-
await Filesystem.rename({
|
|
5128
|
-
from: tempPath,
|
|
5129
|
-
to: path,
|
|
5130
|
-
directory: Directory.Data
|
|
5131
|
-
});
|
|
5132
|
-
},
|
|
5133
|
-
delete: async (path) => {
|
|
5134
|
-
try {
|
|
5135
|
-
await Filesystem.deleteFile({
|
|
5136
|
-
path,
|
|
5137
|
-
directory: Directory.Data
|
|
5138
|
-
});
|
|
5139
|
-
} catch {
|
|
5140
|
-
}
|
|
5141
|
-
},
|
|
5142
|
-
exists: async (path) => {
|
|
5143
|
-
try {
|
|
5144
|
-
await Filesystem.stat({
|
|
5145
|
-
path,
|
|
5146
|
-
directory: Directory.Data
|
|
5147
|
-
});
|
|
5148
|
-
return true;
|
|
5149
|
-
} catch {
|
|
5150
|
-
return false;
|
|
5151
|
-
}
|
|
5152
|
-
},
|
|
5153
|
-
mkdir: async (path) => {
|
|
5154
|
-
try {
|
|
5155
|
-
await Filesystem.mkdir({
|
|
5156
|
-
path,
|
|
5157
|
-
directory: Directory.Data,
|
|
5158
|
-
recursive: true
|
|
5159
|
-
});
|
|
5160
|
-
} catch (e) {
|
|
5161
|
-
if (!String(e?.message).includes("Exists")) {
|
|
5162
|
-
throw e;
|
|
5163
|
-
}
|
|
5164
|
-
}
|
|
5165
|
-
},
|
|
5166
|
-
list: async (path) => {
|
|
5167
|
-
return Filesystem.readdir({
|
|
5168
|
-
path,
|
|
5169
|
-
directory: Directory.Data
|
|
5170
|
-
});
|
|
5171
|
-
},
|
|
5172
|
-
getUri: async (path) => {
|
|
5173
|
-
return Filesystem.getUri({
|
|
5174
|
-
path,
|
|
5175
|
-
directory: Directory.Data
|
|
5176
|
-
});
|
|
5177
|
-
}
|
|
5178
|
-
};
|
|
5179
|
-
|
|
5180
|
-
// src/services/filesystem-service/json-worker.ts
|
|
5181
|
-
function createWorkerBlob() {
|
|
5182
|
-
const workerCode = `
|
|
5183
|
-
self.addEventListener("message", async (ev) => {
|
|
5184
|
-
const { id, cmd, payload } = ev.data;
|
|
5185
|
-
try {
|
|
5186
|
-
if (cmd === "parse") {
|
|
5187
|
-
const parsed = JSON.parse(payload);
|
|
5188
|
-
self.postMessage({ id, ok: true, result: parsed });
|
|
5189
|
-
} else if (cmd === "stringify") {
|
|
5190
|
-
const str = JSON.stringify(payload);
|
|
5191
|
-
self.postMessage({ id, ok: true, result: str });
|
|
5192
|
-
}
|
|
5193
|
-
} catch (err) {
|
|
5194
|
-
self.postMessage({ id, ok: false, error: err?.message || String(err) });
|
|
5195
|
-
}
|
|
5196
|
-
});
|
|
5197
|
-
`;
|
|
5198
|
-
const blob = new Blob([workerCode], { type: "application/javascript" });
|
|
5199
|
-
return URL.createObjectURL(blob);
|
|
5200
|
-
}
|
|
5201
|
-
function spawnParseWorker(raw) {
|
|
5202
|
-
return new Promise((resolve, reject) => {
|
|
5203
|
-
const workerUrl = createWorkerBlob();
|
|
5204
|
-
const worker = new Worker(workerUrl);
|
|
5205
|
-
const id = Math.random().toString(36).slice(2);
|
|
5206
|
-
worker.onmessage = (ev) => {
|
|
5207
|
-
const { ok, result, error } = ev.data;
|
|
5208
|
-
if (ok) {
|
|
5209
|
-
resolve(result);
|
|
5210
|
-
} else {
|
|
5211
|
-
reject(new Error(error));
|
|
5212
|
-
}
|
|
5213
|
-
URL.revokeObjectURL(workerUrl);
|
|
5214
|
-
worker.terminate();
|
|
5215
|
-
};
|
|
5216
|
-
worker.onerror = (err) => {
|
|
5217
|
-
reject(err);
|
|
5218
|
-
URL.revokeObjectURL(workerUrl);
|
|
5219
|
-
worker.terminate();
|
|
5220
|
-
};
|
|
5221
|
-
worker.postMessage({ id, cmd: "parse", payload: raw });
|
|
5222
|
-
});
|
|
5223
|
-
}
|
|
5224
|
-
function spawnStringifyWorker(obj) {
|
|
5225
|
-
return new Promise((resolve, reject) => {
|
|
5226
|
-
const workerUrl = createWorkerBlob();
|
|
5227
|
-
const worker = new Worker(workerUrl);
|
|
5228
|
-
worker.onmessage = (ev) => {
|
|
5229
|
-
const { ok, result, error } = ev.data;
|
|
5230
|
-
if (ok) resolve(result);
|
|
5231
|
-
else reject(new Error(error));
|
|
5232
|
-
URL.revokeObjectURL(workerUrl);
|
|
5233
|
-
worker.terminate();
|
|
5234
|
-
};
|
|
5235
|
-
worker.onerror = (err) => {
|
|
5236
|
-
reject(err);
|
|
5237
|
-
URL.revokeObjectURL(workerUrl);
|
|
5238
|
-
worker.terminate();
|
|
5239
|
-
};
|
|
5240
|
-
worker.postMessage({ cmd: "stringify", payload: obj });
|
|
5241
|
-
});
|
|
5242
|
-
}
|
|
5243
|
-
|
|
5244
|
-
// src/services/filesystem-service/manifest.ts
|
|
5245
|
-
var MANIFEST_PATH = "pos/manifest.json";
|
|
5246
|
-
var MANIFEST_BAK_PATH = "pos/manifest.bak.json";
|
|
5247
|
-
async function writeManifest(manifest) {
|
|
5248
|
-
const oldRaw = await fileService.read(MANIFEST_PATH);
|
|
5249
|
-
if (oldRaw !== null) {
|
|
5250
|
-
await fileService.writeAtomic(MANIFEST_BAK_PATH, oldRaw);
|
|
5251
|
-
}
|
|
5252
|
-
await fileService.writeAtomic(MANIFEST_PATH, JSON.stringify(manifest));
|
|
5253
|
-
try {
|
|
5254
|
-
await fileService.delete(MANIFEST_BAK_PATH);
|
|
5255
|
-
} catch {
|
|
5256
|
-
}
|
|
5257
|
-
}
|
|
5258
|
-
|
|
5259
|
-
// src/services/filesystem-service/import-snapshot.ts
|
|
5260
|
-
var DATA_DIR = "pos";
|
|
5261
|
-
var MODELS_DIR = `${DATA_DIR}/models`;
|
|
5262
|
-
var MODELS_META_DIR = `${DATA_DIR}/models_meta`;
|
|
5263
|
-
var importSnapshot = async ({ data, onProgress }) => {
|
|
5264
|
-
onProgress?.(1, "Parsing snapshot");
|
|
5265
|
-
const parsed = await spawnParseWorker(data);
|
|
5266
|
-
const modelNames = Object.keys(parsed);
|
|
5267
|
-
const total = modelNames.length;
|
|
5268
|
-
const manifest = { version: (/* @__PURE__ */ new Date()).toISOString(), models: {} };
|
|
5269
|
-
const TMP_PREFIX = `pos/data/tmp_import_${Date.now()}`;
|
|
5270
|
-
await fileService.writeAtomic(`${TMP_PREFIX}/.marker`, "1");
|
|
5271
|
-
let i = 0;
|
|
5272
|
-
for (const model of modelNames) {
|
|
5273
|
-
i++;
|
|
5274
|
-
onProgress?.(
|
|
5275
|
-
Math.round(i / total * 100),
|
|
5276
|
-
`Processing ${model} (${i}/${total})`
|
|
5277
|
-
);
|
|
5278
|
-
const block = parsed[model];
|
|
5279
|
-
const dataPart = block?.data ?? block ?? [];
|
|
5280
|
-
const fields = block?.fields ?? [];
|
|
5281
|
-
const relations = block?.relations ?? {};
|
|
5282
|
-
const serialized = await spawnStringifyWorker(dataPart);
|
|
5283
|
-
const tmpModelPath = `${TMP_PREFIX}/${encodeURIComponent(model)}.json`;
|
|
5284
|
-
await fileService.writeAtomic(tmpModelPath, serialized);
|
|
5285
|
-
const meta = {
|
|
5286
|
-
fields,
|
|
5287
|
-
relations,
|
|
5288
|
-
count: Array.isArray(dataPart) ? dataPart.length : 0,
|
|
5289
|
-
writtenAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
5290
|
-
};
|
|
5291
|
-
const tmpMetaPath = `${TMP_PREFIX}/${encodeURIComponent(model)}.meta.json`;
|
|
5292
|
-
await fileService.writeAtomic(tmpMetaPath, JSON.stringify(meta));
|
|
5293
|
-
manifest.models[model] = {
|
|
5294
|
-
file: `${MODELS_DIR}/${encodeURIComponent(model)}.json`,
|
|
5295
|
-
metaFile: `${MODELS_META_DIR}/${encodeURIComponent(model)}.meta.json`,
|
|
5296
|
-
count: meta.count,
|
|
5297
|
-
updatedAt: meta.writtenAt
|
|
5298
|
-
};
|
|
5299
|
-
}
|
|
5300
|
-
onProgress?.(95, "Committing import (moving files)");
|
|
5301
|
-
for (const model of modelNames) {
|
|
5302
|
-
const tmpModelPath = `${TMP_PREFIX}/${encodeURIComponent(model)}.json`;
|
|
5303
|
-
const finalModelPath = `${MODELS_DIR}/${encodeURIComponent(model)}.json`;
|
|
5304
|
-
const tmpMetaPath = `${TMP_PREFIX}/${encodeURIComponent(model)}.meta.json`;
|
|
5305
|
-
const finalMetaPath = `${MODELS_META_DIR}/${encodeURIComponent(
|
|
5306
|
-
model
|
|
5307
|
-
)}.meta.json`;
|
|
5308
|
-
const tmpRaw = await fileService.read(tmpModelPath);
|
|
5309
|
-
if (tmpRaw !== null) await fileService.writeAtomic(finalModelPath, tmpRaw);
|
|
5310
|
-
const tmpMetaRaw = await fileService.read(tmpMetaPath);
|
|
5311
|
-
if (tmpMetaRaw !== null)
|
|
5312
|
-
await fileService.writeAtomic(finalMetaPath, tmpMetaRaw);
|
|
5313
|
-
onProgress?.(
|
|
5314
|
-
95 + Math.round(
|
|
5315
|
-
(Object.keys(manifest.models).indexOf(model) + 1) / modelNames.length * 5
|
|
5316
|
-
),
|
|
5317
|
-
`Committed ${model}`
|
|
5318
|
-
);
|
|
5319
|
-
}
|
|
5320
|
-
await writeManifest(manifest);
|
|
5321
|
-
try {
|
|
5322
|
-
for (const model of modelNames) {
|
|
5323
|
-
await fileService.delete(
|
|
5324
|
-
`${TMP_PREFIX}/${encodeURIComponent(model)}.json`
|
|
5325
|
-
);
|
|
5326
|
-
await fileService.delete(
|
|
5327
|
-
`${TMP_PREFIX}/${encodeURIComponent(model)}.meta.json`
|
|
5328
|
-
);
|
|
5329
|
-
}
|
|
5330
|
-
await fileService.delete(`${TMP_PREFIX}/.marker`);
|
|
5331
|
-
} catch (e) {
|
|
5332
|
-
console.log("Failed to cleanup tmp import files:", e);
|
|
5333
|
-
}
|
|
5334
|
-
onProgress?.(100, "Import complete");
|
|
5335
|
-
return manifest;
|
|
5336
|
-
};
|
|
5337
|
-
var import_snapshot_default = importSnapshot;
|
|
5338
|
-
|
|
5339
|
-
// src/services/filesystem-service/memory-cache.ts
|
|
5340
|
-
var MemoryCache = class {
|
|
5341
|
-
map = /* @__PURE__ */ new Map();
|
|
5342
|
-
get(k) {
|
|
5343
|
-
const e = this.map.get(k);
|
|
5344
|
-
if (!e) return null;
|
|
5345
|
-
if (e.ttl && Date.now() - e.t > e.ttl) {
|
|
5346
|
-
this.map.delete(k);
|
|
5347
|
-
return null;
|
|
5348
|
-
}
|
|
5349
|
-
return e.value;
|
|
5350
|
-
}
|
|
5351
|
-
set(k, v, ttl = 5 * 60 * 1e3) {
|
|
5352
|
-
this.map.set(k, { value: v, t: Date.now(), ttl });
|
|
5353
|
-
}
|
|
5354
|
-
del(k) {
|
|
5355
|
-
this.map.delete(k);
|
|
5356
|
-
}
|
|
5357
|
-
clear() {
|
|
5358
|
-
this.map.clear();
|
|
5359
|
-
}
|
|
5360
|
-
};
|
|
5361
|
-
var memoryCache = new MemoryCache();
|
|
5362
|
-
|
|
5363
|
-
// src/services/filesystem-service/model-loader.ts
|
|
5364
|
-
var MODELS_DIR2 = "pos/models";
|
|
5365
|
-
var MODELS_META_DIR2 = "pos/models_meta";
|
|
5366
|
-
async function loadModelData(modelName, includeMeta = true) {
|
|
5367
|
-
const key = `model:${modelName}:meta:${includeMeta}`;
|
|
5368
|
-
const cached = memoryCache.get(key);
|
|
5369
|
-
if (cached) return cached;
|
|
5370
|
-
const dataPath = `${MODELS_DIR2}/${encodeURIComponent(modelName)}.json`;
|
|
5371
|
-
const metaPath = `${MODELS_META_DIR2}/${encodeURIComponent(
|
|
5372
|
-
modelName
|
|
5373
|
-
)}.meta.json`;
|
|
5374
|
-
const rawData = await fileService.read(dataPath);
|
|
5375
|
-
if (!rawData) return null;
|
|
5376
|
-
const parsedData = await spawnParseWorker(rawData);
|
|
5377
|
-
const data = Array.isArray(parsedData) ? parsedData : [];
|
|
5378
|
-
if (!includeMeta) {
|
|
5379
|
-
const result2 = { data };
|
|
5380
|
-
memoryCache.set(key, result2, 1e3 * 60 * 60);
|
|
5381
|
-
return result2;
|
|
5382
|
-
}
|
|
5383
|
-
const rawMeta = await fileService.read(metaPath);
|
|
5384
|
-
let fields = [];
|
|
5385
|
-
let relations = {};
|
|
5386
|
-
if (rawMeta) {
|
|
5387
|
-
const parsedMeta = await spawnParseWorker(rawMeta);
|
|
5388
|
-
fields = parsedMeta?.fields ?? [];
|
|
5389
|
-
relations = parsedMeta?.relations ?? {};
|
|
5390
|
-
}
|
|
5391
|
-
const result = {
|
|
5392
|
-
data,
|
|
5393
|
-
fields,
|
|
5394
|
-
relations
|
|
5395
|
-
};
|
|
5396
|
-
memoryCache.set(key, result, 1e3 * 60 * 60);
|
|
5397
|
-
return result;
|
|
5398
|
-
}
|
|
5399
|
-
async function loadData(includeMeta = true) {
|
|
5400
|
-
try {
|
|
5401
|
-
const listResult = await fileService.list(MODELS_DIR2);
|
|
5402
|
-
if (!listResult || !Array.isArray(listResult.files)) {
|
|
5403
|
-
console.log("No models found");
|
|
5404
|
-
return {};
|
|
5405
|
-
}
|
|
5406
|
-
const result = {};
|
|
5407
|
-
for (const file of listResult.files) {
|
|
5408
|
-
if (file.type !== "file") continue;
|
|
5409
|
-
if (!file.name.endsWith(".json")) continue;
|
|
5410
|
-
const fileName = file.name;
|
|
5411
|
-
const modelName = fileName.replace(/\.json$/, "");
|
|
5412
|
-
const dataPath = `${MODELS_DIR2}/${fileName}`;
|
|
5413
|
-
const rawData = await fileService.read(dataPath);
|
|
5414
|
-
if (!rawData) continue;
|
|
5415
|
-
const parsedData = await spawnParseWorker(rawData);
|
|
5416
|
-
const data = Array.isArray(parsedData) ? parsedData : [];
|
|
5417
|
-
if (!includeMeta) {
|
|
5418
|
-
result[modelName] = { data };
|
|
5419
|
-
continue;
|
|
5420
|
-
}
|
|
5421
|
-
const metaPath = `${MODELS_META_DIR2}/${encodeURIComponent(
|
|
5422
|
-
modelName
|
|
5423
|
-
)}.meta.json`;
|
|
5424
|
-
const rawMeta = await fileService.read(metaPath);
|
|
5425
|
-
let fields = [];
|
|
5426
|
-
let relations = {};
|
|
5427
|
-
if (rawMeta) {
|
|
5428
|
-
const parsedMeta = await spawnParseWorker(rawMeta);
|
|
5429
|
-
fields = parsedMeta?.fields ?? [];
|
|
5430
|
-
relations = parsedMeta?.relations ?? {};
|
|
5431
|
-
}
|
|
5432
|
-
result[modelName] = {
|
|
5433
|
-
data,
|
|
5434
|
-
fields,
|
|
5435
|
-
relations
|
|
5436
|
-
};
|
|
5437
|
-
}
|
|
5438
|
-
return result;
|
|
5439
|
-
} catch (error) {
|
|
5440
|
-
console.error("Error loading data:", error);
|
|
5441
|
-
throw error;
|
|
5442
|
-
}
|
|
5443
|
-
}
|
|
5444
|
-
|
|
5445
|
-
// src/services/filesystem-service/snapshot-helper.ts
|
|
5446
|
-
var createEmptySnapshot = () => {
|
|
5447
|
-
return {
|
|
5448
|
-
data: []
|
|
5449
|
-
};
|
|
5450
|
-
};
|
|
5451
|
-
var generateNextId = (existingIds, startFrom = 1) => {
|
|
5452
|
-
if (!existingIds || existingIds.length === 0) {
|
|
5453
|
-
return startFrom;
|
|
5454
|
-
}
|
|
5455
|
-
const maxId = Math.max(...existingIds, startFrom - 1);
|
|
5456
|
-
return maxId + 1;
|
|
5457
|
-
};
|
|
5458
|
-
var loadSnapshot = async ({
|
|
5459
|
-
modelName
|
|
5460
|
-
}) => {
|
|
5461
|
-
try {
|
|
5462
|
-
const snapshot = await loadModelData(modelName);
|
|
5463
|
-
if (!snapshot || typeof snapshot !== "object") {
|
|
5464
|
-
console.warn("invalid snapshot, creating new one");
|
|
5465
|
-
return createEmptySnapshot();
|
|
5466
|
-
}
|
|
5467
|
-
return {
|
|
5468
|
-
data: Array.isArray(snapshot.data) ? snapshot.data : []
|
|
5469
|
-
};
|
|
5470
|
-
} catch (error) {
|
|
5471
|
-
console.error("Failed to load snapshot:", error);
|
|
5472
|
-
return createEmptySnapshot();
|
|
5473
|
-
}
|
|
5474
|
-
};
|
|
5475
|
-
var getExistingIds = (snapshot) => {
|
|
5476
|
-
return snapshot.data.map((order) => order.id).filter((id) => typeof id === "number");
|
|
5477
|
-
};
|
|
5478
|
-
var saveSnapshot = async ({
|
|
5479
|
-
snapshot,
|
|
5480
|
-
modelName
|
|
5481
|
-
}) => {
|
|
5482
|
-
try {
|
|
5483
|
-
await import_snapshot_default({
|
|
5484
|
-
data: JSON.stringify({
|
|
5485
|
-
[modelName]: snapshot
|
|
5486
|
-
})
|
|
5487
|
-
});
|
|
5488
|
-
return true;
|
|
5489
|
-
} catch (error) {
|
|
5490
|
-
console.error("failed to save snapshot:", error);
|
|
5491
|
-
return false;
|
|
5492
|
-
}
|
|
5493
|
-
};
|
|
5494
|
-
var addRecordResponseHandler = ({
|
|
5495
|
-
modelName,
|
|
5496
|
-
id,
|
|
5497
|
-
data
|
|
5498
|
-
}) => {
|
|
5499
|
-
if (modelName === "restaurant.floor" /* RESTAURANT_FLOOR */ || modelName === "res.partner" /* RES_PARTNER */) {
|
|
5500
|
-
return [[id, ""]];
|
|
5501
|
-
}
|
|
5502
|
-
return data;
|
|
5503
|
-
};
|
|
5504
|
-
|
|
5505
|
-
// src/services/filesystem-service/model-repository.ts
|
|
5506
|
-
var ModelRepository = class {
|
|
5507
|
-
getAll = async ({ modelName }) => {
|
|
5508
|
-
try {
|
|
5509
|
-
const snapshot = await loadSnapshot({
|
|
5510
|
-
modelName
|
|
5511
|
-
});
|
|
5512
|
-
return snapshot.data;
|
|
5513
|
-
} catch (error) {
|
|
5514
|
-
console.error("failed to get all records:", error);
|
|
5515
|
-
return [];
|
|
5516
|
-
}
|
|
5517
|
-
};
|
|
5518
|
-
getRecord = async ({
|
|
5519
|
-
id,
|
|
5520
|
-
modelName
|
|
5521
|
-
}) => {
|
|
5522
|
-
try {
|
|
5523
|
-
const snapshot = await loadSnapshot({
|
|
5524
|
-
modelName
|
|
5525
|
-
});
|
|
5526
|
-
return snapshot.data.find((record) => record.id === id) || null;
|
|
5527
|
-
} catch (error) {
|
|
5528
|
-
console.error("failed to get record:", error);
|
|
5529
|
-
return null;
|
|
5530
|
-
}
|
|
5531
|
-
};
|
|
5532
|
-
addRecord = async ({
|
|
5533
|
-
newRecord,
|
|
5534
|
-
modelName
|
|
5535
|
-
}) => {
|
|
5536
|
-
try {
|
|
5537
|
-
const snapshot = await loadSnapshot({
|
|
5538
|
-
modelName
|
|
5539
|
-
});
|
|
5540
|
-
const existingIds = getExistingIds(snapshot);
|
|
5541
|
-
const newId = generateNextId(existingIds, snapshot.data.length);
|
|
5542
|
-
snapshot.data.push({
|
|
5543
|
-
...newRecord,
|
|
5544
|
-
id: newId
|
|
5545
|
-
});
|
|
5546
|
-
const saved = await saveSnapshot({
|
|
5547
|
-
snapshot,
|
|
5548
|
-
modelName
|
|
5549
|
-
});
|
|
5550
|
-
if (!saved) {
|
|
5551
|
-
console.error("failed to add new record");
|
|
5552
|
-
return [];
|
|
5553
|
-
}
|
|
5554
|
-
console.log("lib data:", snapshot.data);
|
|
5555
|
-
const response = addRecordResponseHandler({
|
|
5556
|
-
id: newId,
|
|
5557
|
-
modelName,
|
|
5558
|
-
data: snapshot.data
|
|
5559
|
-
});
|
|
5560
|
-
return response;
|
|
5561
|
-
} catch (error) {
|
|
5562
|
-
console.error("failed to add new record:", error);
|
|
5563
|
-
return [];
|
|
5564
|
-
}
|
|
5565
|
-
};
|
|
5566
|
-
updateRecord = async ({
|
|
5567
|
-
id,
|
|
5568
|
-
update,
|
|
5569
|
-
modelName
|
|
5570
|
-
}) => {
|
|
5571
|
-
try {
|
|
5572
|
-
const snapshot = await loadSnapshot({
|
|
5573
|
-
modelName
|
|
5574
|
-
});
|
|
5575
|
-
const index = snapshot.data.findIndex((record) => record.id === id);
|
|
5576
|
-
if (index === -1) {
|
|
5577
|
-
console.error(`record with id ${id} not found`);
|
|
5578
|
-
return false;
|
|
5579
|
-
}
|
|
5580
|
-
snapshot.data[index] = {
|
|
5581
|
-
...snapshot.data[index],
|
|
5582
|
-
...update
|
|
5583
|
-
};
|
|
5584
|
-
return await saveSnapshot({
|
|
5585
|
-
snapshot,
|
|
5586
|
-
modelName
|
|
5587
|
-
});
|
|
5588
|
-
} catch (error) {
|
|
5589
|
-
console.error("error updating record:", error);
|
|
5590
|
-
return false;
|
|
5591
|
-
}
|
|
5592
|
-
};
|
|
5593
|
-
deleteRecord = async ({
|
|
5594
|
-
id,
|
|
5595
|
-
modelName
|
|
5596
|
-
}) => {
|
|
5597
|
-
try {
|
|
5598
|
-
const snapshot = await loadSnapshot({
|
|
5599
|
-
modelName
|
|
5600
|
-
});
|
|
5601
|
-
const before = snapshot.data.length;
|
|
5602
|
-
snapshot.data = snapshot.data.filter((record) => record.id !== id);
|
|
5603
|
-
if (snapshot.data.length === before) {
|
|
5604
|
-
console.error(`record with id ${id} not found`);
|
|
5605
|
-
return false;
|
|
5606
|
-
}
|
|
5607
|
-
return await saveSnapshot({
|
|
5608
|
-
snapshot,
|
|
5609
|
-
modelName
|
|
5610
|
-
});
|
|
5611
|
-
} catch (error) {
|
|
5612
|
-
console.error("error deleting record:", error);
|
|
5613
|
-
return false;
|
|
5614
|
-
}
|
|
5615
|
-
};
|
|
5616
|
-
};
|
|
5617
|
-
|
|
5618
|
-
// src/services/pos-service/add-entity.ts
|
|
5619
5138
|
var addEntityService = (env) => {
|
|
5620
|
-
const isLocalMode = env?.isLocalMode;
|
|
5621
|
-
const repo = new ModelRepository();
|
|
5622
5139
|
const addEntity = useCallback13(
|
|
5623
5140
|
({
|
|
5624
5141
|
model,
|
|
@@ -5627,12 +5144,6 @@ var addEntityService = (env) => {
|
|
|
5627
5144
|
service,
|
|
5628
5145
|
isCreateEndpoint = false
|
|
5629
5146
|
}) => {
|
|
5630
|
-
if (isLocalMode) {
|
|
5631
|
-
return repo.addRecord({
|
|
5632
|
-
newRecord: values,
|
|
5633
|
-
modelName: model
|
|
5634
|
-
});
|
|
5635
|
-
}
|
|
5636
5147
|
const jsonData = {
|
|
5637
5148
|
model,
|
|
5638
5149
|
values
|
|
@@ -5649,7 +5160,7 @@ var addEntityService = (env) => {
|
|
|
5649
5160
|
service
|
|
5650
5161
|
);
|
|
5651
5162
|
},
|
|
5652
|
-
[env
|
|
5163
|
+
[env]
|
|
5653
5164
|
);
|
|
5654
5165
|
return {
|
|
5655
5166
|
addEntity
|
|
@@ -5771,8 +5282,6 @@ var createEInvoiceService = (env) => {
|
|
|
5771
5282
|
// src/services/pos-service/create-entity.ts
|
|
5772
5283
|
import { useCallback as useCallback17 } from "react";
|
|
5773
5284
|
var createEntityService = (env) => {
|
|
5774
|
-
const isLocalMode = env?.isLocalMode;
|
|
5775
|
-
const repo = new ModelRepository();
|
|
5776
5285
|
const createEntity = useCallback17(
|
|
5777
5286
|
({
|
|
5778
5287
|
model,
|
|
@@ -5780,12 +5289,6 @@ var createEntityService = (env) => {
|
|
|
5780
5289
|
xNode,
|
|
5781
5290
|
service
|
|
5782
5291
|
}) => {
|
|
5783
|
-
if (isLocalMode) {
|
|
5784
|
-
return repo.addRecord({
|
|
5785
|
-
newRecord: args[0],
|
|
5786
|
-
modelName: model
|
|
5787
|
-
});
|
|
5788
|
-
}
|
|
5789
5292
|
const jsonData = {
|
|
5790
5293
|
model,
|
|
5791
5294
|
method: "create" /* CREATE */,
|
|
@@ -5803,7 +5306,7 @@ var createEntityService = (env) => {
|
|
|
5803
5306
|
service
|
|
5804
5307
|
);
|
|
5805
5308
|
},
|
|
5806
|
-
[env
|
|
5309
|
+
[env]
|
|
5807
5310
|
);
|
|
5808
5311
|
return {
|
|
5809
5312
|
createEntity
|
|
@@ -5888,8 +5391,6 @@ var createSessionService = (env) => {
|
|
|
5888
5391
|
// src/services/pos-service/delete-entity.ts
|
|
5889
5392
|
import { useCallback as useCallback20 } from "react";
|
|
5890
5393
|
var deleteEntityService = (env) => {
|
|
5891
|
-
const isLocalMode = env?.isLocalMode;
|
|
5892
|
-
const repo = new ModelRepository();
|
|
5893
5394
|
const deleteEntity = useCallback20(
|
|
5894
5395
|
({
|
|
5895
5396
|
model,
|
|
@@ -5898,14 +5399,6 @@ var deleteEntityService = (env) => {
|
|
|
5898
5399
|
service,
|
|
5899
5400
|
method
|
|
5900
5401
|
}) => {
|
|
5901
|
-
if (isLocalMode) {
|
|
5902
|
-
const id = ids[0];
|
|
5903
|
-
if (!id) return;
|
|
5904
|
-
return repo.deleteRecord({
|
|
5905
|
-
modelName: model,
|
|
5906
|
-
id
|
|
5907
|
-
});
|
|
5908
|
-
}
|
|
5909
5402
|
const jsonData = {
|
|
5910
5403
|
model,
|
|
5911
5404
|
ids,
|
|
@@ -5923,7 +5416,7 @@ var deleteEntityService = (env) => {
|
|
|
5923
5416
|
service
|
|
5924
5417
|
);
|
|
5925
5418
|
},
|
|
5926
|
-
[env
|
|
5419
|
+
[env]
|
|
5927
5420
|
);
|
|
5928
5421
|
return {
|
|
5929
5422
|
deleteEntity
|
|
@@ -6000,8 +5493,6 @@ var getCurrentUserService = (env) => {
|
|
|
6000
5493
|
// src/services/pos-service/get-list.ts
|
|
6001
5494
|
import { useCallback as useCallback23 } from "react";
|
|
6002
5495
|
var getListService = (env) => {
|
|
6003
|
-
const isLocalMode = env?.isLocalMode;
|
|
6004
|
-
const repo = new ModelRepository();
|
|
6005
5496
|
const getList = useCallback23(
|
|
6006
5497
|
async ({
|
|
6007
5498
|
model,
|
|
@@ -6012,12 +5503,6 @@ var getListService = (env) => {
|
|
|
6012
5503
|
offset,
|
|
6013
5504
|
limit
|
|
6014
5505
|
}) => {
|
|
6015
|
-
if (isLocalMode) {
|
|
6016
|
-
const data = await repo.getAll({
|
|
6017
|
-
modelName: model
|
|
6018
|
-
});
|
|
6019
|
-
return data;
|
|
6020
|
-
}
|
|
6021
5506
|
const jsonData = {
|
|
6022
5507
|
model,
|
|
6023
5508
|
method: "web_search_read" /* WEB_SEARCH_READ */,
|
|
@@ -6040,7 +5525,7 @@ var getListService = (env) => {
|
|
|
6040
5525
|
service
|
|
6041
5526
|
);
|
|
6042
5527
|
},
|
|
6043
|
-
[env
|
|
5528
|
+
[env]
|
|
6044
5529
|
);
|
|
6045
5530
|
return {
|
|
6046
5531
|
getList
|
|
@@ -6369,8 +5854,24 @@ var handleClosingSessionService = (env) => {
|
|
|
6369
5854
|
|
|
6370
5855
|
// src/services/pos-service/load-data-pos-session.ts
|
|
6371
5856
|
import { useCallback as useCallback32 } from "react";
|
|
5857
|
+
var MODEL_TO_TABLE = {
|
|
5858
|
+
["account.tax" /* ACCOUNT_TAX */]: "account_taxes",
|
|
5859
|
+
["res.company" /* RES_COMPANY */]: "companies",
|
|
5860
|
+
["res.partner" /* RES_PARTNER */]: "customers",
|
|
5861
|
+
["res.users" /* RES_USERS */]: "employees",
|
|
5862
|
+
["loyalty.program" /* LOYALTY_PROGRAM */]: "loyalty_programs",
|
|
5863
|
+
["loyalty.rule" /* LOYALTY_RULE */]: "loyalty_rules",
|
|
5864
|
+
["pos.order.line" /* POS_ORDER_LINE */]: "order_lines",
|
|
5865
|
+
["pos.order" /* POS_ORDER */]: "orders",
|
|
5866
|
+
["pos.payment.method" /* POS_PAYMENT_METHOD */]: "payment_methods",
|
|
5867
|
+
["pos.payment" /* POS_PAYMENT */]: "payments",
|
|
5868
|
+
["product.category" /* PRODUCT_CATEGORY */]: "product_categories",
|
|
5869
|
+
["product.product" /* PRODUCT_PRODUCT */]: "products",
|
|
5870
|
+
["restaurant.floor" /* RESTAURANT_FLOOR */]: "restaurant_floors",
|
|
5871
|
+
["restaurant.table" /* RESTAURANT_TABLE */]: "restaurant_tables"
|
|
5872
|
+
};
|
|
6372
5873
|
var loadDataPosSessionService = (env) => {
|
|
6373
|
-
const
|
|
5874
|
+
const supabase = useSupabaseOptional();
|
|
6374
5875
|
const loadDataPosSession = useCallback32(
|
|
6375
5876
|
async ({
|
|
6376
5877
|
model,
|
|
@@ -6381,10 +5882,6 @@ var loadDataPosSessionService = (env) => {
|
|
|
6381
5882
|
modelsToLoad = [],
|
|
6382
5883
|
searchParams
|
|
6383
5884
|
}) => {
|
|
6384
|
-
if (isLocalMode) {
|
|
6385
|
-
const data = await loadData();
|
|
6386
|
-
return data;
|
|
6387
|
-
}
|
|
6388
5885
|
const jsonData = {
|
|
6389
5886
|
model,
|
|
6390
5887
|
method: "load_data" /* LOAD_DATA */,
|
|
@@ -6411,10 +5908,67 @@ var loadDataPosSessionService = (env) => {
|
|
|
6411
5908
|
service
|
|
6412
5909
|
);
|
|
6413
5910
|
},
|
|
6414
|
-
[env
|
|
5911
|
+
[env]
|
|
6415
5912
|
);
|
|
5913
|
+
const loadDataPosSessionSupabase = useCallback32(async () => {
|
|
5914
|
+
try {
|
|
5915
|
+
const allModels = Object.values(LoadDataModel);
|
|
5916
|
+
const promises = allModels.map(async (modelName) => {
|
|
5917
|
+
const tableName = MODEL_TO_TABLE[modelName];
|
|
5918
|
+
if (!tableName) {
|
|
5919
|
+
return {
|
|
5920
|
+
modelName,
|
|
5921
|
+
data: [],
|
|
5922
|
+
fields: {},
|
|
5923
|
+
relations: {}
|
|
5924
|
+
};
|
|
5925
|
+
}
|
|
5926
|
+
if (!supabase) {
|
|
5927
|
+
return {
|
|
5928
|
+
modelName,
|
|
5929
|
+
data: [],
|
|
5930
|
+
fields: {},
|
|
5931
|
+
relations: {}
|
|
5932
|
+
};
|
|
5933
|
+
}
|
|
5934
|
+
const { data, error } = await supabase.from(tableName).select("*");
|
|
5935
|
+
if (error) {
|
|
5936
|
+
console.error(`Error loading ${modelName}:`, error);
|
|
5937
|
+
return {
|
|
5938
|
+
modelName,
|
|
5939
|
+
data: [],
|
|
5940
|
+
fields: {},
|
|
5941
|
+
relations: {}
|
|
5942
|
+
};
|
|
5943
|
+
}
|
|
5944
|
+
return {
|
|
5945
|
+
modelName,
|
|
5946
|
+
data: data || [],
|
|
5947
|
+
fields: {},
|
|
5948
|
+
relations: {}
|
|
5949
|
+
};
|
|
5950
|
+
});
|
|
5951
|
+
const results = await Promise.all(promises);
|
|
5952
|
+
const response = results.reduce(
|
|
5953
|
+
(acc, { modelName, data, fields, relations }) => {
|
|
5954
|
+
acc[modelName] = {
|
|
5955
|
+
data,
|
|
5956
|
+
fields,
|
|
5957
|
+
relations
|
|
5958
|
+
};
|
|
5959
|
+
return acc;
|
|
5960
|
+
},
|
|
5961
|
+
{}
|
|
5962
|
+
);
|
|
5963
|
+
return response;
|
|
5964
|
+
} catch (error) {
|
|
5965
|
+
console.error("Error loading data from Supabase:", error);
|
|
5966
|
+
return {};
|
|
5967
|
+
}
|
|
5968
|
+
}, [supabase]);
|
|
6416
5969
|
return {
|
|
6417
|
-
loadDataPosSession
|
|
5970
|
+
loadDataPosSession,
|
|
5971
|
+
loadDataPosSessionSupabase
|
|
6418
5972
|
};
|
|
6419
5973
|
};
|
|
6420
5974
|
|
|
@@ -6636,8 +6190,6 @@ var updateClosedSessionService = (env) => {
|
|
|
6636
6190
|
// src/services/pos-service/update-entity.ts
|
|
6637
6191
|
import { useCallback as useCallback39 } from "react";
|
|
6638
6192
|
var updateEntityService = (env) => {
|
|
6639
|
-
const isLocalMode = env?.isLocalMode;
|
|
6640
|
-
const repo = new ModelRepository();
|
|
6641
6193
|
const updateEntity = useCallback39(
|
|
6642
6194
|
({
|
|
6643
6195
|
model,
|
|
@@ -6647,15 +6199,6 @@ var updateEntityService = (env) => {
|
|
|
6647
6199
|
xNode,
|
|
6648
6200
|
service
|
|
6649
6201
|
}) => {
|
|
6650
|
-
if (isLocalMode) {
|
|
6651
|
-
const id = extractIdFromDomain(domain);
|
|
6652
|
-
if (!id) return;
|
|
6653
|
-
return repo.updateRecord({
|
|
6654
|
-
update: values,
|
|
6655
|
-
modelName: model,
|
|
6656
|
-
id
|
|
6657
|
-
});
|
|
6658
|
-
}
|
|
6659
6202
|
const jsonData = {
|
|
6660
6203
|
model,
|
|
6661
6204
|
domain,
|
|
@@ -6673,7 +6216,7 @@ var updateEntityService = (env) => {
|
|
|
6673
6216
|
service
|
|
6674
6217
|
);
|
|
6675
6218
|
},
|
|
6676
|
-
[env
|
|
6219
|
+
[env]
|
|
6677
6220
|
);
|
|
6678
6221
|
return {
|
|
6679
6222
|
updateEntity
|
|
@@ -6799,50 +6342,6 @@ var usePosService = () => {
|
|
|
6799
6342
|
return service;
|
|
6800
6343
|
};
|
|
6801
6344
|
|
|
6802
|
-
// src/services/filesystem-service/init-snapshot.ts
|
|
6803
|
-
var isSnapshotReady = async () => {
|
|
6804
|
-
try {
|
|
6805
|
-
const raw = await fileService.read("pos/manifest.json");
|
|
6806
|
-
if (!raw) return false;
|
|
6807
|
-
const manifest = JSON.parse(raw);
|
|
6808
|
-
if (!manifest.models || typeof manifest.models !== "object") {
|
|
6809
|
-
return false;
|
|
6810
|
-
}
|
|
6811
|
-
const modelEntries = Object.values(manifest.models);
|
|
6812
|
-
if (modelEntries.length === 0) return false;
|
|
6813
|
-
const firstModel = modelEntries[0];
|
|
6814
|
-
if (!firstModel.file) return false;
|
|
6815
|
-
const modelExists = await fileService.exists(firstModel.file);
|
|
6816
|
-
return modelExists;
|
|
6817
|
-
} catch {
|
|
6818
|
-
return false;
|
|
6819
|
-
}
|
|
6820
|
-
};
|
|
6821
|
-
async function initSnapshot(onProgress) {
|
|
6822
|
-
const ready = await isSnapshotReady();
|
|
6823
|
-
if (ready) {
|
|
6824
|
-
console.log("skip initialization.");
|
|
6825
|
-
return;
|
|
6826
|
-
}
|
|
6827
|
-
console.log("initializing from data.json...");
|
|
6828
|
-
const jsonData = await fetch("/data.json").then((r) => r.text());
|
|
6829
|
-
if (!jsonData) {
|
|
6830
|
-
console.error("cannot load data.json");
|
|
6831
|
-
return;
|
|
6832
|
-
}
|
|
6833
|
-
await import_snapshot_default({
|
|
6834
|
-
data: jsonData,
|
|
6835
|
-
onProgress
|
|
6836
|
-
});
|
|
6837
|
-
}
|
|
6838
|
-
|
|
6839
|
-
// src/services/filesystem-service/index.ts
|
|
6840
|
-
var useFileSystemService = () => {
|
|
6841
|
-
return {
|
|
6842
|
-
initSnapshot
|
|
6843
|
-
};
|
|
6844
|
-
};
|
|
6845
|
-
|
|
6846
6345
|
// src/hooks/auth/use-forgot-password.ts
|
|
6847
6346
|
var useForgotPassword = () => {
|
|
6848
6347
|
const { forgotPassword } = useAuthService();
|
|
@@ -8731,8 +8230,9 @@ var use_handle_closing_session_default = useHandleClosingSession;
|
|
|
8731
8230
|
import { useMutation as useMutation77 } from "@tanstack/react-query";
|
|
8732
8231
|
var useLoadDataPosSession = () => {
|
|
8733
8232
|
const pos = usePosService();
|
|
8233
|
+
const { env } = useEnv();
|
|
8734
8234
|
return useMutation77({
|
|
8735
|
-
mutationFn: pos.loadDataPosSession
|
|
8235
|
+
mutationFn: env.isSupaMode ? pos.loadDataPosSessionSupabase : pos.loadDataPosSession
|
|
8736
8236
|
});
|
|
8737
8237
|
};
|
|
8738
8238
|
var use_load_data_pos_session_default = useLoadDataPosSession;
|
|
@@ -8817,21 +8317,11 @@ var useUpdateOrderStatus = () => {
|
|
|
8817
8317
|
};
|
|
8818
8318
|
var use_update_order_status_default = useUpdateOrderStatus;
|
|
8819
8319
|
|
|
8820
|
-
// src/hooks/pos/use-init-snapshot.ts
|
|
8821
|
-
import { useMutation as useMutation86 } from "@tanstack/react-query";
|
|
8822
|
-
var useInitSnapshot = () => {
|
|
8823
|
-
const fileSystem = useFileSystemService();
|
|
8824
|
-
return useMutation86({
|
|
8825
|
-
mutationFn: fileSystem.initSnapshot
|
|
8826
|
-
});
|
|
8827
|
-
};
|
|
8828
|
-
var use_init_snapshot_default = useInitSnapshot;
|
|
8829
|
-
|
|
8830
8320
|
// src/hooks/pos/use-complete-current-stage.ts
|
|
8831
|
-
import { useMutation as
|
|
8321
|
+
import { useMutation as useMutation86 } from "@tanstack/react-query";
|
|
8832
8322
|
var useCompleteCurrentStage = () => {
|
|
8833
8323
|
const pos = usePosService();
|
|
8834
|
-
return
|
|
8324
|
+
return useMutation86({
|
|
8835
8325
|
mutationFn: pos.completeCurrentStage
|
|
8836
8326
|
});
|
|
8837
8327
|
};
|
|
@@ -8910,7 +8400,6 @@ export {
|
|
|
8910
8400
|
use_handle_close_session_default as useHandleCloseSession,
|
|
8911
8401
|
use_handle_closing_detail_session_default as useHandleClosingDetailSession,
|
|
8912
8402
|
use_handle_closing_session_default as useHandleClosingSession,
|
|
8913
|
-
use_init_snapshot_default as useInitSnapshot,
|
|
8914
8403
|
use_isvalid_token_default as useIsValidToken,
|
|
8915
8404
|
use_load_action_default as useLoadAction,
|
|
8916
8405
|
use_load_data_pos_session_default as useLoadDataPosSession,
|