@fctc/interface-logic 4.4.0 → 4.4.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.
package/dist/provider.js CHANGED
@@ -35,9 +35,11 @@ __export(provider_exports, {
35
35
  MetaProvider: () => MetaProvider,
36
36
  ReactQueryProvider: () => ReactQueryProvider,
37
37
  ServiceProvider: () => ServiceProvider,
38
+ SupabaseProvider: () => SupabaseProvider,
38
39
  VersionGate: () => VersionGate,
39
40
  useEnv: () => useEnv,
40
- useService: () => useService
41
+ useService: () => useService,
42
+ useSupabase: () => useSupabase
41
43
  });
42
44
  module.exports = __toCommonJS(provider_exports);
43
45
 
@@ -107,7 +109,7 @@ var initialState2 = {
107
109
  lang: "vi_VN",
108
110
  tz: "Asia/Saigon"
109
111
  },
110
- isLocalMode: false
112
+ isSupaMode: false
111
113
  };
112
114
  var envSlice = (0, import_toolkit2.createSlice)({
113
115
  name: "env",
@@ -698,7 +700,7 @@ var MainProvider = ({ children }) => {
698
700
  };
699
701
 
700
702
  // src/provider/version-gate-provider.tsx
701
- var import_react43 = require("react");
703
+ var import_react44 = require("react");
702
704
  var import_react_query2 = require("@tanstack/react-query");
703
705
 
704
706
  // src/services/action-service/index.ts
@@ -753,6 +755,58 @@ var UriConstants = /* @__PURE__ */ ((UriConstants2) => {
753
755
  // src/utils/format.ts
754
756
  var import_moment = __toESM(require("moment"));
755
757
 
758
+ // src/constants/model/model-constant.ts
759
+ var LoadDataModel = /* @__PURE__ */ ((LoadDataModel2) => {
760
+ LoadDataModel2["ACCOUNT_CASH_ROUNDING"] = "account.cash.rounding";
761
+ LoadDataModel2["ACCOUNT_FISCAL_POSITION"] = "account.fiscal.position";
762
+ LoadDataModel2["ACCOUNT_FISCAL_POSITION_TAX"] = "account.fiscal.position.tax";
763
+ LoadDataModel2["ACCOUNT_TAX"] = "account.tax";
764
+ LoadDataModel2["ACCOUNT_TAX_GROUP"] = "account.tax.group";
765
+ LoadDataModel2["DECIMAL_PRECISION"] = "decimal.precision";
766
+ LoadDataModel2["IR_MODULE_MODULE"] = "ir.module.module";
767
+ LoadDataModel2["IR_UI_VIEW"] = "ir.ui.view";
768
+ LoadDataModel2["POS_BILL"] = "pos.bill";
769
+ LoadDataModel2["POS_CATEGORY"] = "pos.category";
770
+ LoadDataModel2["POS_CONFIG"] = "pos.config";
771
+ LoadDataModel2["POS_NOTE"] = "pos.note";
772
+ LoadDataModel2["POS_ORDER"] = "pos.order";
773
+ LoadDataModel2["POS_ORDER_LINE"] = "pos.order.line";
774
+ LoadDataModel2["POS_PACK_OPERATION_LOT"] = "pos.pack.operation.lot";
775
+ LoadDataModel2["POS_PAYMENT"] = "pos.payment";
776
+ LoadDataModel2["POS_PAYMENT_METHOD"] = "pos.payment.method";
777
+ LoadDataModel2["POS_PRINTER"] = "pos.printer";
778
+ LoadDataModel2["POS_SESSION"] = "pos.session";
779
+ LoadDataModel2["POS_PREPARATION_DISPLAY_DISPLAY"] = "pos_preparation_display.display";
780
+ LoadDataModel2["PRODUCT_ATTRIBUTE"] = "product.attribute";
781
+ LoadDataModel2["PRODUCT_ATTRIBUTE_CUSTOM_VALUE"] = "product.attribute.custom.value";
782
+ LoadDataModel2["PRODUCT_CATEGORY"] = "product.category";
783
+ LoadDataModel2["PRODUCT_COMBO"] = "product.combo";
784
+ LoadDataModel2["PRODUCT_COMBO_ITEM"] = "product.combo.item";
785
+ LoadDataModel2["PRODUCT_PACKAGING"] = "product.packaging";
786
+ LoadDataModel2["PRODUCT_PRICELIST"] = "product.pricelist";
787
+ LoadDataModel2["PRODUCT_PRICELIST_ITEM"] = "product.pricelist.item";
788
+ LoadDataModel2["PRODUCT_PRODUCT"] = "product.product";
789
+ LoadDataModel2["PRODUCT_TAG"] = "product.tag";
790
+ LoadDataModel2["PRODUCT_TEMPLATE_ATTRIBUTE_LINE"] = "product.template.attribute.line";
791
+ LoadDataModel2["PRODUCT_TEMPLATE_ATTRIBUTE_VALUE"] = "product.template.attribute.value";
792
+ LoadDataModel2["RES_COMPANY"] = "res.company";
793
+ LoadDataModel2["RES_COUNTRY"] = "res.country";
794
+ LoadDataModel2["RES_COUNTRY_STATE"] = "res.country.state";
795
+ LoadDataModel2["RES_CURRENCY"] = "res.currency";
796
+ LoadDataModel2["RES_LANG"] = "res.lang";
797
+ LoadDataModel2["RES_PARTNER"] = "res.partner";
798
+ LoadDataModel2["RES_USERS"] = "res.users";
799
+ LoadDataModel2["STOCK_PICKING_TYPE"] = "stock.picking.type";
800
+ LoadDataModel2["UOM_CATEGORY"] = "uom.category";
801
+ LoadDataModel2["UOM_UOM"] = "uom.uom";
802
+ LoadDataModel2["LOYALTY_PROGRAM"] = "loyalty.program";
803
+ LoadDataModel2["LOYALTY_RULE"] = "loyalty.rule";
804
+ LoadDataModel2["RESTAURANT_TABLE"] = "restaurant.table";
805
+ LoadDataModel2["RESTAURANT_FLOOR"] = "restaurant.floor";
806
+ LoadDataModel2["POS_MAKE_PAYMENT"] = "pos.make.payment";
807
+ return LoadDataModel2;
808
+ })(LoadDataModel || {});
809
+
756
810
  // src/constants/widget/widget-avatar-constant.ts
757
811
  var WIDGETAVATAR = /* @__PURE__ */ ((WIDGETAVATAR2) => {
758
812
  WIDGETAVATAR2["many2one_avatar_user"] = "many2one_avatar_user";
@@ -2922,13 +2976,6 @@ function cleanObject(obj) {
2922
2976
  }
2923
2977
  return result;
2924
2978
  }
2925
- var extractIdFromDomain = (domain) => {
2926
- if (!domain || !Array.isArray(domain)) return null;
2927
- const idCond = domain.find(
2928
- ([field, operator]) => field === "id" && operator === "="
2929
- );
2930
- return idCond ? Number(idCond[2]) : null;
2931
- };
2932
2979
 
2933
2980
  // src/utils/storage/local-storage.ts
2934
2981
  var localStorageUtils = () => {
@@ -5211,544 +5258,7 @@ var getASessionService = (env) => {
5211
5258
 
5212
5259
  // src/services/pos-service/add-entity.ts
5213
5260
  var import_react14 = require("react");
5214
-
5215
- // src/services/filesystem-service/file-service.ts
5216
- var import_filesystem = require("@capacitor/filesystem");
5217
- var fileService = {
5218
- read: async (path) => {
5219
- try {
5220
- const res = await import_filesystem.Filesystem.readFile({
5221
- path,
5222
- directory: import_filesystem.Directory.Data,
5223
- encoding: import_filesystem.Encoding.UTF8
5224
- });
5225
- if (typeof res.data === "string") return res.data;
5226
- if (res.data instanceof Blob) return await res.data.text();
5227
- return null;
5228
- } catch {
5229
- return null;
5230
- }
5231
- },
5232
- write: async (path, data) => {
5233
- await import_filesystem.Filesystem.writeFile({
5234
- path,
5235
- data,
5236
- directory: import_filesystem.Directory.Data,
5237
- encoding: import_filesystem.Encoding.UTF8,
5238
- recursive: true
5239
- });
5240
- },
5241
- writeAtomic: async (path, data) => {
5242
- const tempPath = path + ".tmp";
5243
- await import_filesystem.Filesystem.writeFile({
5244
- path: tempPath,
5245
- data,
5246
- directory: import_filesystem.Directory.Data,
5247
- encoding: import_filesystem.Encoding.UTF8,
5248
- recursive: true
5249
- });
5250
- try {
5251
- await import_filesystem.Filesystem.deleteFile({
5252
- path,
5253
- directory: import_filesystem.Directory.Data
5254
- });
5255
- } catch {
5256
- }
5257
- await import_filesystem.Filesystem.rename({
5258
- from: tempPath,
5259
- to: path,
5260
- directory: import_filesystem.Directory.Data
5261
- });
5262
- },
5263
- delete: async (path) => {
5264
- try {
5265
- await import_filesystem.Filesystem.deleteFile({
5266
- path,
5267
- directory: import_filesystem.Directory.Data
5268
- });
5269
- } catch {
5270
- }
5271
- },
5272
- exists: async (path) => {
5273
- try {
5274
- await import_filesystem.Filesystem.stat({
5275
- path,
5276
- directory: import_filesystem.Directory.Data
5277
- });
5278
- return true;
5279
- } catch {
5280
- return false;
5281
- }
5282
- },
5283
- mkdir: async (path) => {
5284
- try {
5285
- await import_filesystem.Filesystem.mkdir({
5286
- path,
5287
- directory: import_filesystem.Directory.Data,
5288
- recursive: true
5289
- });
5290
- } catch (e) {
5291
- if (!String(e?.message).includes("Exists")) {
5292
- throw e;
5293
- }
5294
- }
5295
- },
5296
- list: async (path) => {
5297
- return import_filesystem.Filesystem.readdir({
5298
- path,
5299
- directory: import_filesystem.Directory.Data
5300
- });
5301
- },
5302
- getUri: async (path) => {
5303
- return import_filesystem.Filesystem.getUri({
5304
- path,
5305
- directory: import_filesystem.Directory.Data
5306
- });
5307
- }
5308
- };
5309
-
5310
- // src/services/filesystem-service/json-worker.ts
5311
- function createWorkerBlob() {
5312
- const workerCode = `
5313
- self.addEventListener("message", async (ev) => {
5314
- const { id, cmd, payload } = ev.data;
5315
- try {
5316
- if (cmd === "parse") {
5317
- const parsed = JSON.parse(payload);
5318
- self.postMessage({ id, ok: true, result: parsed });
5319
- } else if (cmd === "stringify") {
5320
- const str = JSON.stringify(payload);
5321
- self.postMessage({ id, ok: true, result: str });
5322
- }
5323
- } catch (err) {
5324
- self.postMessage({ id, ok: false, error: err?.message || String(err) });
5325
- }
5326
- });
5327
- `;
5328
- const blob = new Blob([workerCode], { type: "application/javascript" });
5329
- return URL.createObjectURL(blob);
5330
- }
5331
- function spawnParseWorker(raw) {
5332
- return new Promise((resolve, reject) => {
5333
- const workerUrl = createWorkerBlob();
5334
- const worker = new Worker(workerUrl);
5335
- const id = Math.random().toString(36).slice(2);
5336
- worker.onmessage = (ev) => {
5337
- const { ok, result, error } = ev.data;
5338
- if (ok) {
5339
- resolve(result);
5340
- } else {
5341
- reject(new Error(error));
5342
- }
5343
- URL.revokeObjectURL(workerUrl);
5344
- worker.terminate();
5345
- };
5346
- worker.onerror = (err) => {
5347
- reject(err);
5348
- URL.revokeObjectURL(workerUrl);
5349
- worker.terminate();
5350
- };
5351
- worker.postMessage({ id, cmd: "parse", payload: raw });
5352
- });
5353
- }
5354
- function spawnStringifyWorker(obj) {
5355
- return new Promise((resolve, reject) => {
5356
- const workerUrl = createWorkerBlob();
5357
- const worker = new Worker(workerUrl);
5358
- worker.onmessage = (ev) => {
5359
- const { ok, result, error } = ev.data;
5360
- if (ok) resolve(result);
5361
- else reject(new Error(error));
5362
- URL.revokeObjectURL(workerUrl);
5363
- worker.terminate();
5364
- };
5365
- worker.onerror = (err) => {
5366
- reject(err);
5367
- URL.revokeObjectURL(workerUrl);
5368
- worker.terminate();
5369
- };
5370
- worker.postMessage({ cmd: "stringify", payload: obj });
5371
- });
5372
- }
5373
-
5374
- // src/services/filesystem-service/manifest.ts
5375
- var MANIFEST_PATH = "pos/manifest.json";
5376
- var MANIFEST_BAK_PATH = "pos/manifest.bak.json";
5377
- async function writeManifest(manifest) {
5378
- const oldRaw = await fileService.read(MANIFEST_PATH);
5379
- if (oldRaw !== null) {
5380
- await fileService.writeAtomic(MANIFEST_BAK_PATH, oldRaw);
5381
- }
5382
- await fileService.writeAtomic(MANIFEST_PATH, JSON.stringify(manifest));
5383
- try {
5384
- await fileService.delete(MANIFEST_BAK_PATH);
5385
- } catch {
5386
- }
5387
- }
5388
-
5389
- // src/services/filesystem-service/import-snapshot.ts
5390
- var DATA_DIR = "pos";
5391
- var MODELS_DIR = `${DATA_DIR}/models`;
5392
- var MODELS_META_DIR = `${DATA_DIR}/models_meta`;
5393
- var importSnapshot = async ({ data, onProgress }) => {
5394
- onProgress?.(1, "Parsing snapshot");
5395
- const parsed = await spawnParseWorker(data);
5396
- const modelNames = Object.keys(parsed);
5397
- const total = modelNames.length;
5398
- const manifest = { version: (/* @__PURE__ */ new Date()).toISOString(), models: {} };
5399
- const TMP_PREFIX = `pos/data/tmp_import_${Date.now()}`;
5400
- await fileService.writeAtomic(`${TMP_PREFIX}/.marker`, "1");
5401
- let i = 0;
5402
- for (const model of modelNames) {
5403
- i++;
5404
- onProgress?.(
5405
- Math.round(i / total * 100),
5406
- `Processing ${model} (${i}/${total})`
5407
- );
5408
- const block = parsed[model];
5409
- const dataPart = block?.data ?? block ?? [];
5410
- const fields = block?.fields ?? [];
5411
- const relations = block?.relations ?? {};
5412
- const serialized = await spawnStringifyWorker(dataPart);
5413
- const tmpModelPath = `${TMP_PREFIX}/${encodeURIComponent(model)}.json`;
5414
- await fileService.writeAtomic(tmpModelPath, serialized);
5415
- const meta = {
5416
- fields,
5417
- relations,
5418
- count: Array.isArray(dataPart) ? dataPart.length : 0,
5419
- writtenAt: (/* @__PURE__ */ new Date()).toISOString()
5420
- };
5421
- const tmpMetaPath = `${TMP_PREFIX}/${encodeURIComponent(model)}.meta.json`;
5422
- await fileService.writeAtomic(tmpMetaPath, JSON.stringify(meta));
5423
- manifest.models[model] = {
5424
- file: `${MODELS_DIR}/${encodeURIComponent(model)}.json`,
5425
- metaFile: `${MODELS_META_DIR}/${encodeURIComponent(model)}.meta.json`,
5426
- count: meta.count,
5427
- updatedAt: meta.writtenAt
5428
- };
5429
- }
5430
- onProgress?.(95, "Committing import (moving files)");
5431
- for (const model of modelNames) {
5432
- const tmpModelPath = `${TMP_PREFIX}/${encodeURIComponent(model)}.json`;
5433
- const finalModelPath = `${MODELS_DIR}/${encodeURIComponent(model)}.json`;
5434
- const tmpMetaPath = `${TMP_PREFIX}/${encodeURIComponent(model)}.meta.json`;
5435
- const finalMetaPath = `${MODELS_META_DIR}/${encodeURIComponent(
5436
- model
5437
- )}.meta.json`;
5438
- const tmpRaw = await fileService.read(tmpModelPath);
5439
- if (tmpRaw !== null) await fileService.writeAtomic(finalModelPath, tmpRaw);
5440
- const tmpMetaRaw = await fileService.read(tmpMetaPath);
5441
- if (tmpMetaRaw !== null)
5442
- await fileService.writeAtomic(finalMetaPath, tmpMetaRaw);
5443
- onProgress?.(
5444
- 95 + Math.round(
5445
- (Object.keys(manifest.models).indexOf(model) + 1) / modelNames.length * 5
5446
- ),
5447
- `Committed ${model}`
5448
- );
5449
- }
5450
- await writeManifest(manifest);
5451
- try {
5452
- for (const model of modelNames) {
5453
- await fileService.delete(
5454
- `${TMP_PREFIX}/${encodeURIComponent(model)}.json`
5455
- );
5456
- await fileService.delete(
5457
- `${TMP_PREFIX}/${encodeURIComponent(model)}.meta.json`
5458
- );
5459
- }
5460
- await fileService.delete(`${TMP_PREFIX}/.marker`);
5461
- } catch (e) {
5462
- console.log("Failed to cleanup tmp import files:", e);
5463
- }
5464
- onProgress?.(100, "Import complete");
5465
- return manifest;
5466
- };
5467
- var import_snapshot_default = importSnapshot;
5468
-
5469
- // src/services/filesystem-service/memory-cache.ts
5470
- var MemoryCache = class {
5471
- map = /* @__PURE__ */ new Map();
5472
- get(k) {
5473
- const e = this.map.get(k);
5474
- if (!e) return null;
5475
- if (e.ttl && Date.now() - e.t > e.ttl) {
5476
- this.map.delete(k);
5477
- return null;
5478
- }
5479
- return e.value;
5480
- }
5481
- set(k, v, ttl = 5 * 60 * 1e3) {
5482
- this.map.set(k, { value: v, t: Date.now(), ttl });
5483
- }
5484
- del(k) {
5485
- this.map.delete(k);
5486
- }
5487
- clear() {
5488
- this.map.clear();
5489
- }
5490
- };
5491
- var memoryCache = new MemoryCache();
5492
-
5493
- // src/services/filesystem-service/model-loader.ts
5494
- var MODELS_DIR2 = "pos/models";
5495
- var MODELS_META_DIR2 = "pos/models_meta";
5496
- async function loadModelData(modelName, includeMeta = true) {
5497
- const key = `model:${modelName}:meta:${includeMeta}`;
5498
- const cached = memoryCache.get(key);
5499
- if (cached) return cached;
5500
- const dataPath = `${MODELS_DIR2}/${encodeURIComponent(modelName)}.json`;
5501
- const metaPath = `${MODELS_META_DIR2}/${encodeURIComponent(
5502
- modelName
5503
- )}.meta.json`;
5504
- const rawData = await fileService.read(dataPath);
5505
- if (!rawData) return null;
5506
- const parsedData = await spawnParseWorker(rawData);
5507
- const data = Array.isArray(parsedData) ? parsedData : [];
5508
- if (!includeMeta) {
5509
- const result2 = { data };
5510
- memoryCache.set(key, result2, 1e3 * 60 * 60);
5511
- return result2;
5512
- }
5513
- const rawMeta = await fileService.read(metaPath);
5514
- let fields = [];
5515
- let relations = {};
5516
- if (rawMeta) {
5517
- const parsedMeta = await spawnParseWorker(rawMeta);
5518
- fields = parsedMeta?.fields ?? [];
5519
- relations = parsedMeta?.relations ?? {};
5520
- }
5521
- const result = {
5522
- data,
5523
- fields,
5524
- relations
5525
- };
5526
- memoryCache.set(key, result, 1e3 * 60 * 60);
5527
- return result;
5528
- }
5529
- async function loadData(includeMeta = true) {
5530
- try {
5531
- const listResult = await fileService.list(MODELS_DIR2);
5532
- if (!listResult || !Array.isArray(listResult.files)) {
5533
- console.log("No models found");
5534
- return {};
5535
- }
5536
- const result = {};
5537
- for (const file of listResult.files) {
5538
- if (file.type !== "file") continue;
5539
- if (!file.name.endsWith(".json")) continue;
5540
- const fileName = file.name;
5541
- const modelName = fileName.replace(/\.json$/, "");
5542
- const dataPath = `${MODELS_DIR2}/${fileName}`;
5543
- const rawData = await fileService.read(dataPath);
5544
- if (!rawData) continue;
5545
- const parsedData = await spawnParseWorker(rawData);
5546
- const data = Array.isArray(parsedData) ? parsedData : [];
5547
- if (!includeMeta) {
5548
- result[modelName] = { data };
5549
- continue;
5550
- }
5551
- const metaPath = `${MODELS_META_DIR2}/${encodeURIComponent(
5552
- modelName
5553
- )}.meta.json`;
5554
- const rawMeta = await fileService.read(metaPath);
5555
- let fields = [];
5556
- let relations = {};
5557
- if (rawMeta) {
5558
- const parsedMeta = await spawnParseWorker(rawMeta);
5559
- fields = parsedMeta?.fields ?? [];
5560
- relations = parsedMeta?.relations ?? {};
5561
- }
5562
- result[modelName] = {
5563
- data,
5564
- fields,
5565
- relations
5566
- };
5567
- }
5568
- return result;
5569
- } catch (error) {
5570
- console.error("Error loading data:", error);
5571
- throw error;
5572
- }
5573
- }
5574
-
5575
- // src/services/filesystem-service/snapshot-helper.ts
5576
- var createEmptySnapshot = () => {
5577
- return {
5578
- data: []
5579
- };
5580
- };
5581
- var generateNextId = (existingIds, startFrom = 1) => {
5582
- if (!existingIds || existingIds.length === 0) {
5583
- return startFrom;
5584
- }
5585
- const maxId = Math.max(...existingIds, startFrom - 1);
5586
- return maxId + 1;
5587
- };
5588
- var loadSnapshot = async ({
5589
- modelName
5590
- }) => {
5591
- try {
5592
- const snapshot = await loadModelData(modelName);
5593
- if (!snapshot || typeof snapshot !== "object") {
5594
- console.warn("invalid snapshot, creating new one");
5595
- return createEmptySnapshot();
5596
- }
5597
- return {
5598
- data: Array.isArray(snapshot.data) ? snapshot.data : []
5599
- };
5600
- } catch (error) {
5601
- console.error("Failed to load snapshot:", error);
5602
- return createEmptySnapshot();
5603
- }
5604
- };
5605
- var getExistingIds = (snapshot) => {
5606
- return snapshot.data.map((order) => order.id).filter((id) => typeof id === "number");
5607
- };
5608
- var saveSnapshot = async ({
5609
- snapshot,
5610
- modelName
5611
- }) => {
5612
- try {
5613
- await import_snapshot_default({
5614
- data: JSON.stringify({
5615
- [modelName]: snapshot
5616
- })
5617
- });
5618
- return true;
5619
- } catch (error) {
5620
- console.error("failed to save snapshot:", error);
5621
- return false;
5622
- }
5623
- };
5624
- var addRecordResponseHandler = ({
5625
- modelName,
5626
- id,
5627
- data
5628
- }) => {
5629
- if (modelName === "restaurant.floor" /* RESTAURANT_FLOOR */ || modelName === "res.partner" /* RES_PARTNER */) {
5630
- return [[id, ""]];
5631
- }
5632
- return data;
5633
- };
5634
-
5635
- // src/services/filesystem-service/model-repository.ts
5636
- var ModelRepository = class {
5637
- getAll = async ({ modelName }) => {
5638
- try {
5639
- const snapshot = await loadSnapshot({
5640
- modelName
5641
- });
5642
- return snapshot.data;
5643
- } catch (error) {
5644
- console.error("failed to get all records:", error);
5645
- return [];
5646
- }
5647
- };
5648
- getRecord = async ({
5649
- id,
5650
- modelName
5651
- }) => {
5652
- try {
5653
- const snapshot = await loadSnapshot({
5654
- modelName
5655
- });
5656
- return snapshot.data.find((record) => record.id === id) || null;
5657
- } catch (error) {
5658
- console.error("failed to get record:", error);
5659
- return null;
5660
- }
5661
- };
5662
- addRecord = async ({
5663
- newRecord,
5664
- modelName
5665
- }) => {
5666
- try {
5667
- const snapshot = await loadSnapshot({
5668
- modelName
5669
- });
5670
- const existingIds = getExistingIds(snapshot);
5671
- const newId = generateNextId(existingIds, snapshot.data.length);
5672
- snapshot.data.push({
5673
- ...newRecord,
5674
- id: newId
5675
- });
5676
- const saved = await saveSnapshot({
5677
- snapshot,
5678
- modelName
5679
- });
5680
- if (!saved) {
5681
- console.error("failed to add new record");
5682
- return [];
5683
- }
5684
- console.log("lib data:", snapshot.data);
5685
- const response = addRecordResponseHandler({
5686
- id: newId,
5687
- modelName,
5688
- data: snapshot.data
5689
- });
5690
- return response;
5691
- } catch (error) {
5692
- console.error("failed to add new record:", error);
5693
- return [];
5694
- }
5695
- };
5696
- updateRecord = async ({
5697
- id,
5698
- update,
5699
- modelName
5700
- }) => {
5701
- try {
5702
- const snapshot = await loadSnapshot({
5703
- modelName
5704
- });
5705
- const index = snapshot.data.findIndex((record) => record.id === id);
5706
- if (index === -1) {
5707
- console.error(`record with id ${id} not found`);
5708
- return false;
5709
- }
5710
- snapshot.data[index] = {
5711
- ...snapshot.data[index],
5712
- ...update
5713
- };
5714
- return await saveSnapshot({
5715
- snapshot,
5716
- modelName
5717
- });
5718
- } catch (error) {
5719
- console.error("error updating record:", error);
5720
- return false;
5721
- }
5722
- };
5723
- deleteRecord = async ({
5724
- id,
5725
- modelName
5726
- }) => {
5727
- try {
5728
- const snapshot = await loadSnapshot({
5729
- modelName
5730
- });
5731
- const before = snapshot.data.length;
5732
- snapshot.data = snapshot.data.filter((record) => record.id !== id);
5733
- if (snapshot.data.length === before) {
5734
- console.error(`record with id ${id} not found`);
5735
- return false;
5736
- }
5737
- return await saveSnapshot({
5738
- snapshot,
5739
- modelName
5740
- });
5741
- } catch (error) {
5742
- console.error("error deleting record:", error);
5743
- return false;
5744
- }
5745
- };
5746
- };
5747
-
5748
- // src/services/pos-service/add-entity.ts
5749
5261
  var addEntityService = (env) => {
5750
- const isLocalMode = env?.isLocalMode;
5751
- const repo = new ModelRepository();
5752
5262
  const addEntity = (0, import_react14.useCallback)(
5753
5263
  ({
5754
5264
  model,
@@ -5757,12 +5267,6 @@ var addEntityService = (env) => {
5757
5267
  service,
5758
5268
  isCreateEndpoint = false
5759
5269
  }) => {
5760
- if (isLocalMode) {
5761
- return repo.addRecord({
5762
- newRecord: values,
5763
- modelName: model
5764
- });
5765
- }
5766
5270
  const jsonData = {
5767
5271
  model,
5768
5272
  values
@@ -5779,7 +5283,7 @@ var addEntityService = (env) => {
5779
5283
  service
5780
5284
  );
5781
5285
  },
5782
- [env, isLocalMode]
5286
+ [env]
5783
5287
  );
5784
5288
  return {
5785
5289
  addEntity
@@ -5901,8 +5405,6 @@ var createEInvoiceService = (env) => {
5901
5405
  // src/services/pos-service/create-entity.ts
5902
5406
  var import_react18 = require("react");
5903
5407
  var createEntityService = (env) => {
5904
- const isLocalMode = env?.isLocalMode;
5905
- const repo = new ModelRepository();
5906
5408
  const createEntity = (0, import_react18.useCallback)(
5907
5409
  ({
5908
5410
  model,
@@ -5910,12 +5412,6 @@ var createEntityService = (env) => {
5910
5412
  xNode,
5911
5413
  service
5912
5414
  }) => {
5913
- if (isLocalMode) {
5914
- return repo.addRecord({
5915
- newRecord: args[0],
5916
- modelName: model
5917
- });
5918
- }
5919
5415
  const jsonData = {
5920
5416
  model,
5921
5417
  method: "create" /* CREATE */,
@@ -5933,7 +5429,7 @@ var createEntityService = (env) => {
5933
5429
  service
5934
5430
  );
5935
5431
  },
5936
- [env, isLocalMode]
5432
+ [env]
5937
5433
  );
5938
5434
  return {
5939
5435
  createEntity
@@ -6018,8 +5514,6 @@ var createSessionService = (env) => {
6018
5514
  // src/services/pos-service/delete-entity.ts
6019
5515
  var import_react21 = require("react");
6020
5516
  var deleteEntityService = (env) => {
6021
- const isLocalMode = env?.isLocalMode;
6022
- const repo = new ModelRepository();
6023
5517
  const deleteEntity = (0, import_react21.useCallback)(
6024
5518
  ({
6025
5519
  model,
@@ -6028,14 +5522,6 @@ var deleteEntityService = (env) => {
6028
5522
  service,
6029
5523
  method
6030
5524
  }) => {
6031
- if (isLocalMode) {
6032
- const id = ids[0];
6033
- if (!id) return;
6034
- return repo.deleteRecord({
6035
- modelName: model,
6036
- id
6037
- });
6038
- }
6039
5525
  const jsonData = {
6040
5526
  model,
6041
5527
  ids,
@@ -6053,7 +5539,7 @@ var deleteEntityService = (env) => {
6053
5539
  service
6054
5540
  );
6055
5541
  },
6056
- [env, isLocalMode]
5542
+ [env]
6057
5543
  );
6058
5544
  return {
6059
5545
  deleteEntity
@@ -6130,8 +5616,6 @@ var getCurrentUserService = (env) => {
6130
5616
  // src/services/pos-service/get-list.ts
6131
5617
  var import_react24 = require("react");
6132
5618
  var getListService = (env) => {
6133
- const isLocalMode = env?.isLocalMode;
6134
- const repo = new ModelRepository();
6135
5619
  const getList = (0, import_react24.useCallback)(
6136
5620
  async ({
6137
5621
  model,
@@ -6142,12 +5626,6 @@ var getListService = (env) => {
6142
5626
  offset,
6143
5627
  limit
6144
5628
  }) => {
6145
- if (isLocalMode) {
6146
- const data = await repo.getAll({
6147
- modelName: model
6148
- });
6149
- return data;
6150
- }
6151
5629
  const jsonData = {
6152
5630
  model,
6153
5631
  method: "web_search_read" /* WEB_SEARCH_READ */,
@@ -6170,7 +5648,7 @@ var getListService = (env) => {
6170
5648
  service
6171
5649
  );
6172
5650
  },
6173
- [env, isLocalMode]
5651
+ [env]
6174
5652
  );
6175
5653
  return {
6176
5654
  getList
@@ -6498,10 +5976,54 @@ var handleClosingSessionService = (env) => {
6498
5976
  };
6499
5977
 
6500
5978
  // src/services/pos-service/load-data-pos-session.ts
5979
+ var import_react34 = require("react");
5980
+
5981
+ // src/provider/supabase-provider.tsx
6501
5982
  var import_react33 = require("react");
5983
+ var import_supabase_js = require("@supabase/supabase-js");
5984
+ var import_jsx_runtime4 = require("react/jsx-runtime");
5985
+ var SupabaseContext = (0, import_react33.createContext)(null);
5986
+ var SupabaseProvider = ({
5987
+ supabaseUrl,
5988
+ supabaseKey,
5989
+ children
5990
+ }) => {
5991
+ const supabase = (0, import_react33.useMemo)(() => {
5992
+ if (!supabaseUrl || !supabaseKey) return null;
5993
+ return (0, import_supabase_js.createClient)(supabaseUrl, supabaseKey);
5994
+ }, [supabaseUrl, supabaseKey]);
5995
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(SupabaseContext.Provider, { value: supabase, children });
5996
+ };
5997
+ var useSupabase = () => {
5998
+ const context = (0, import_react33.useContext)(SupabaseContext);
5999
+ if (!context) {
6000
+ throw new Error(
6001
+ "useSupabase must be used within a SupabaseProvider or check your env config"
6002
+ );
6003
+ }
6004
+ return context;
6005
+ };
6006
+
6007
+ // src/services/pos-service/load-data-pos-session.ts
6008
+ var MODEL_TO_TABLE = {
6009
+ ["account.tax" /* ACCOUNT_TAX */]: "account_taxes",
6010
+ ["res.company" /* RES_COMPANY */]: "companies",
6011
+ ["res.partner" /* RES_PARTNER */]: "customers",
6012
+ ["res.users" /* RES_USERS */]: "employees",
6013
+ ["loyalty.program" /* LOYALTY_PROGRAM */]: "loyalty_programs",
6014
+ ["loyalty.rule" /* LOYALTY_RULE */]: "loyalty_rules",
6015
+ ["pos.order.line" /* POS_ORDER_LINE */]: "order_lines",
6016
+ ["pos.order" /* POS_ORDER */]: "orders",
6017
+ ["pos.payment.method" /* POS_PAYMENT_METHOD */]: "payment_methods",
6018
+ ["pos.payment" /* POS_PAYMENT */]: "payments",
6019
+ ["product.category" /* PRODUCT_CATEGORY */]: "product_categories",
6020
+ ["product.product" /* PRODUCT_PRODUCT */]: "products",
6021
+ ["restaurant.floor" /* RESTAURANT_FLOOR */]: "restaurant_floors",
6022
+ ["restaurant.table" /* RESTAURANT_TABLE */]: "restaurant_tables"
6023
+ };
6502
6024
  var loadDataPosSessionService = (env) => {
6503
- const isLocalMode = env?.isLocalMode;
6504
- const loadDataPosSession = (0, import_react33.useCallback)(
6025
+ const supabase = useSupabase();
6026
+ const loadDataPosSession = (0, import_react34.useCallback)(
6505
6027
  async ({
6506
6028
  model,
6507
6029
  ids,
@@ -6511,10 +6033,6 @@ var loadDataPosSessionService = (env) => {
6511
6033
  modelsToLoad = [],
6512
6034
  searchParams
6513
6035
  }) => {
6514
- if (isLocalMode) {
6515
- const data = await loadData();
6516
- return data;
6517
- }
6518
6036
  const jsonData = {
6519
6037
  model,
6520
6038
  method: "load_data" /* LOAD_DATA */,
@@ -6541,17 +6059,66 @@ var loadDataPosSessionService = (env) => {
6541
6059
  service
6542
6060
  );
6543
6061
  },
6544
- [env, isLocalMode]
6062
+ [env]
6545
6063
  );
6064
+ const loadDataPosSessionSupabase = (0, import_react34.useCallback)(async () => {
6065
+ try {
6066
+ const allModels = Object.values(LoadDataModel);
6067
+ const promises = allModels.map(async (modelName) => {
6068
+ const tableName = MODEL_TO_TABLE[modelName];
6069
+ if (!tableName) {
6070
+ return {
6071
+ modelName,
6072
+ data: [],
6073
+ fields: {},
6074
+ relations: {}
6075
+ };
6076
+ }
6077
+ const { data, error } = await supabase.from(tableName).select("*");
6078
+ if (error) {
6079
+ console.error(`Error loading ${modelName}:`, error);
6080
+ return {
6081
+ modelName,
6082
+ data: [],
6083
+ fields: {},
6084
+ relations: {}
6085
+ };
6086
+ }
6087
+ return {
6088
+ modelName,
6089
+ data: data || [],
6090
+ fields: {},
6091
+ relations: {}
6092
+ };
6093
+ });
6094
+ const results = await Promise.all(promises);
6095
+ const response = results.reduce(
6096
+ (acc, { modelName, data, fields, relations }) => {
6097
+ acc[modelName] = {
6098
+ data,
6099
+ fields,
6100
+ relations
6101
+ };
6102
+ return acc;
6103
+ },
6104
+ {}
6105
+ );
6106
+ return response;
6107
+ } catch (error) {
6108
+ console.error("Error loading data from Supabase:", error);
6109
+ return {};
6110
+ }
6111
+ }, [supabase]);
6546
6112
  return {
6547
- loadDataPosSession
6113
+ loadDataPosSession,
6114
+ loadDataPosSessionSupabase
6548
6115
  };
6549
6116
  };
6550
6117
 
6551
6118
  // src/services/pos-service/manage-onchange.ts
6552
- var import_react34 = require("react");
6119
+ var import_react35 = require("react");
6553
6120
  var manageOnchangeService = (env) => {
6554
- const manageOnChange = (0, import_react34.useCallback)(
6121
+ const manageOnChange = (0, import_react35.useCallback)(
6555
6122
  ({
6556
6123
  model,
6557
6124
  ids,
@@ -6585,9 +6152,9 @@ var manageOnchangeService = (env) => {
6585
6152
  };
6586
6153
 
6587
6154
  // src/services/pos-service/manage-session.ts
6588
- var import_react35 = require("react");
6155
+ var import_react36 = require("react");
6589
6156
  var manageSessionService = (env) => {
6590
- const manageSession = (0, import_react35.useCallback)(
6157
+ const manageSession = (0, import_react36.useCallback)(
6591
6158
  ({
6592
6159
  model,
6593
6160
  method,
@@ -6624,9 +6191,9 @@ var manageSessionService = (env) => {
6624
6191
  };
6625
6192
 
6626
6193
  // src/services/pos-service/process-order.ts
6627
- var import_react36 = require("react");
6194
+ var import_react37 = require("react");
6628
6195
  var processOrderService = (env) => {
6629
- const processOrder = (0, import_react36.useCallback)(
6196
+ const processOrder = (0, import_react37.useCallback)(
6630
6197
  ({
6631
6198
  orderId,
6632
6199
  xNode,
@@ -6659,9 +6226,9 @@ var processOrderService = (env) => {
6659
6226
  };
6660
6227
 
6661
6228
  // src/services/pos-service/save-pin-code.ts
6662
- var import_react37 = require("react");
6229
+ var import_react38 = require("react");
6663
6230
  var savePinCodeService = (env) => {
6664
- const savePinCode = (0, import_react37.useCallback)(
6231
+ const savePinCode = (0, import_react38.useCallback)(
6665
6232
  ({
6666
6233
  serialNumber,
6667
6234
  pinCode,
@@ -6692,9 +6259,9 @@ var savePinCodeService = (env) => {
6692
6259
  };
6693
6260
 
6694
6261
  // src/services/pos-service/search-journal.ts
6695
- var import_react38 = require("react");
6262
+ var import_react39 = require("react");
6696
6263
  var searchJournalService = (env) => {
6697
- const searchJournal = (0, import_react38.useCallback)(
6264
+ const searchJournal = (0, import_react39.useCallback)(
6698
6265
  ({
6699
6266
  model,
6700
6267
  method,
@@ -6729,9 +6296,9 @@ var searchJournalService = (env) => {
6729
6296
  };
6730
6297
 
6731
6298
  // src/services/pos-service/update-closed-session.ts
6732
- var import_react39 = require("react");
6299
+ var import_react40 = require("react");
6733
6300
  var updateClosedSessionService = (env) => {
6734
- const updateClosedSession = (0, import_react39.useCallback)(
6301
+ const updateClosedSession = (0, import_react40.useCallback)(
6735
6302
  ({
6736
6303
  model,
6737
6304
  domain,
@@ -6764,11 +6331,9 @@ var updateClosedSessionService = (env) => {
6764
6331
  };
6765
6332
 
6766
6333
  // src/services/pos-service/update-entity.ts
6767
- var import_react40 = require("react");
6334
+ var import_react41 = require("react");
6768
6335
  var updateEntityService = (env) => {
6769
- const isLocalMode = env?.isLocalMode;
6770
- const repo = new ModelRepository();
6771
- const updateEntity = (0, import_react40.useCallback)(
6336
+ const updateEntity = (0, import_react41.useCallback)(
6772
6337
  ({
6773
6338
  model,
6774
6339
  domain,
@@ -6777,15 +6342,6 @@ var updateEntityService = (env) => {
6777
6342
  xNode,
6778
6343
  service
6779
6344
  }) => {
6780
- if (isLocalMode) {
6781
- const id = extractIdFromDomain(domain);
6782
- if (!id) return;
6783
- return repo.updateRecord({
6784
- update: values,
6785
- modelName: model,
6786
- id
6787
- });
6788
- }
6789
6345
  const jsonData = {
6790
6346
  model,
6791
6347
  domain,
@@ -6803,7 +6359,7 @@ var updateEntityService = (env) => {
6803
6359
  service
6804
6360
  );
6805
6361
  },
6806
- [env, isLocalMode]
6362
+ [env]
6807
6363
  );
6808
6364
  return {
6809
6365
  updateEntity
@@ -6811,9 +6367,9 @@ var updateEntityService = (env) => {
6811
6367
  };
6812
6368
 
6813
6369
  // src/services/pos-service/update-order-status.ts
6814
- var import_react41 = require("react");
6370
+ var import_react42 = require("react");
6815
6371
  var updateOrderStatusService = (env) => {
6816
- const updateOrderStatus = (0, import_react41.useCallback)(
6372
+ const updateOrderStatus = (0, import_react42.useCallback)(
6817
6373
  ({
6818
6374
  orderId,
6819
6375
  state,
@@ -6844,9 +6400,9 @@ var updateOrderStatusService = (env) => {
6844
6400
  };
6845
6401
 
6846
6402
  // src/services/pos-service/complete-current-stage.ts
6847
- var import_react42 = require("react");
6403
+ var import_react43 = require("react");
6848
6404
  var completeCurrentStageService = (env) => {
6849
- const completeCurrentStage = (0, import_react42.useCallback)(
6405
+ const completeCurrentStage = (0, import_react43.useCallback)(
6850
6406
  ({
6851
6407
  ids,
6852
6408
  withContext,
@@ -6929,57 +6485,13 @@ var usePosService = () => {
6929
6485
  return service;
6930
6486
  };
6931
6487
 
6932
- // src/services/filesystem-service/init-snapshot.ts
6933
- var isSnapshotReady = async () => {
6934
- try {
6935
- const raw = await fileService.read("pos/manifest.json");
6936
- if (!raw) return false;
6937
- const manifest = JSON.parse(raw);
6938
- if (!manifest.models || typeof manifest.models !== "object") {
6939
- return false;
6940
- }
6941
- const modelEntries = Object.values(manifest.models);
6942
- if (modelEntries.length === 0) return false;
6943
- const firstModel = modelEntries[0];
6944
- if (!firstModel.file) return false;
6945
- const modelExists = await fileService.exists(firstModel.file);
6946
- return modelExists;
6947
- } catch {
6948
- return false;
6949
- }
6950
- };
6951
- async function initSnapshot(onProgress) {
6952
- const ready = await isSnapshotReady();
6953
- if (ready) {
6954
- console.log("skip initialization.");
6955
- return;
6956
- }
6957
- console.log("initializing from data.json...");
6958
- const jsonData = await fetch("/data.json").then((r) => r.text());
6959
- if (!jsonData) {
6960
- console.error("cannot load data.json");
6961
- return;
6962
- }
6963
- await import_snapshot_default({
6964
- data: jsonData,
6965
- onProgress
6966
- });
6967
- }
6968
-
6969
- // src/services/filesystem-service/index.ts
6970
- var useFileSystemService = () => {
6971
- return {
6972
- initSnapshot
6973
- };
6974
- };
6975
-
6976
6488
  // src/provider/version-gate-provider.tsx
6977
- var import_jsx_runtime4 = require("react/jsx-runtime");
6489
+ var import_jsx_runtime5 = require("react/jsx-runtime");
6978
6490
  var VersionGate = ({ children }) => {
6979
6491
  const queryClient = (0, import_react_query2.useQueryClient)();
6980
- const [ready, setReady] = (0, import_react43.useState)(false);
6492
+ const [ready, setReady] = (0, import_react44.useState)(false);
6981
6493
  const { getVersion } = useViewService();
6982
- (0, import_react43.useEffect)(() => {
6494
+ (0, import_react44.useEffect)(() => {
6983
6495
  const clearVersion = () => {
6984
6496
  queryClient.clear();
6985
6497
  localStorage.removeItem("__api_version__");
@@ -7006,11 +6518,11 @@ var VersionGate = ({ children }) => {
7006
6518
  return () => window.removeEventListener("keydown", onKey);
7007
6519
  }
7008
6520
  }, [queryClient]);
7009
- return ready ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_jsx_runtime4.Fragment, { children }) : null;
6521
+ return ready ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_jsx_runtime5.Fragment, { children }) : null;
7010
6522
  };
7011
6523
 
7012
6524
  // src/provider/env-provider.tsx
7013
- var import_react44 = require("react");
6525
+ var import_react45 = require("react");
7014
6526
 
7015
6527
  // src/configs/axios-client.ts
7016
6528
  var import_axios = __toESM(require("axios"));
@@ -7339,7 +6851,7 @@ var axiosClient = {
7339
6851
  };
7340
6852
 
7341
6853
  // src/provider/env-provider.tsx
7342
- var import_jsx_runtime5 = require("react/jsx-runtime");
6854
+ var import_jsx_runtime6 = require("react/jsx-runtime");
7343
6855
  var initialEnvState = {
7344
6856
  env: null,
7345
6857
  baseUrl: "",
@@ -7361,20 +6873,20 @@ var initialEnvState = {
7361
6873
  tz: "Asia/Saigon"
7362
6874
  },
7363
6875
  excludeLanguages: [],
7364
- isLocalMode: false
6876
+ isSupaMode: false
7365
6877
  };
7366
- var EnvContext = (0, import_react44.createContext)(null);
6878
+ var EnvContext = (0, import_react45.createContext)(null);
7367
6879
  function EnvProvider({
7368
6880
  children,
7369
6881
  localStorageUtils: localStorageUtil = localStorageUtils(),
7370
6882
  sessionStorageUtils: sessionStorageUtil = sessionStorageUtils
7371
6883
  }) {
7372
- const [env, setEnvState] = (0, import_react44.useState)({
6884
+ const [env, setEnvState] = (0, import_react45.useState)({
7373
6885
  ...initialEnvState,
7374
6886
  localStorageUtils: localStorageUtil,
7375
6887
  sessionStorageUtils: sessionStorageUtil
7376
6888
  });
7377
- const setupEnv = (0, import_react44.useCallback)(
6889
+ const setupEnv = (0, import_react45.useCallback)(
7378
6890
  (envConfig) => {
7379
6891
  const updatedEnv = {
7380
6892
  ...env,
@@ -7388,31 +6900,31 @@ function EnvProvider({
7388
6900
  },
7389
6901
  [env, localStorageUtil, sessionStorageUtil]
7390
6902
  );
7391
- const setUid2 = (0, import_react44.useCallback)((uid) => {
6903
+ const setUid2 = (0, import_react45.useCallback)((uid) => {
7392
6904
  setEnvState((prev) => ({
7393
6905
  ...prev,
7394
6906
  context: { ...prev.context, uid }
7395
6907
  }));
7396
6908
  }, []);
7397
- const setLang2 = (0, import_react44.useCallback)((lang) => {
6909
+ const setLang2 = (0, import_react45.useCallback)((lang) => {
7398
6910
  setEnvState((prev) => ({
7399
6911
  ...prev,
7400
6912
  context: { ...prev.context, lang }
7401
6913
  }));
7402
6914
  }, []);
7403
- const setAllowCompanies2 = (0, import_react44.useCallback)((allowed_company_ids) => {
6915
+ const setAllowCompanies2 = (0, import_react45.useCallback)((allowed_company_ids) => {
7404
6916
  setEnvState((prev) => ({
7405
6917
  ...prev,
7406
6918
  context: { ...prev.context, allowed_company_ids }
7407
6919
  }));
7408
6920
  }, []);
7409
- const setCompanies2 = (0, import_react44.useCallback)((companies) => {
6921
+ const setCompanies2 = (0, import_react45.useCallback)((companies) => {
7410
6922
  setEnvState((prev) => ({
7411
6923
  ...prev,
7412
6924
  companies
7413
6925
  }));
7414
6926
  }, []);
7415
- const setDefaultCompany2 = (0, import_react44.useCallback)(
6927
+ const setDefaultCompany2 = (0, import_react45.useCallback)(
7416
6928
  (defaultCompany) => {
7417
6929
  setEnvState((prev) => ({
7418
6930
  ...prev,
@@ -7421,25 +6933,25 @@ function EnvProvider({
7421
6933
  },
7422
6934
  []
7423
6935
  );
7424
- const setUserInfo = (0, import_react44.useCallback)((user) => {
6936
+ const setUserInfo = (0, import_react45.useCallback)((user) => {
7425
6937
  setEnvState((prev) => ({
7426
6938
  ...prev,
7427
6939
  user
7428
6940
  }));
7429
6941
  }, []);
7430
- const setConfig2 = (0, import_react44.useCallback)((config) => {
6942
+ const setConfig2 = (0, import_react45.useCallback)((config) => {
7431
6943
  setEnvState((prev) => ({
7432
6944
  ...prev,
7433
6945
  config
7434
6946
  }));
7435
6947
  }, []);
7436
- const setEnvFile2 = (0, import_react44.useCallback)((envFile) => {
6948
+ const setEnvFile2 = (0, import_react45.useCallback)((envFile) => {
7437
6949
  setEnvState((prev) => ({
7438
6950
  ...prev,
7439
6951
  envFile
7440
6952
  }));
7441
6953
  }, []);
7442
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6954
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
7443
6955
  EnvContext.Provider,
7444
6956
  {
7445
6957
  value: {
@@ -7459,7 +6971,7 @@ function EnvProvider({
7459
6971
  );
7460
6972
  }
7461
6973
  function useEnv() {
7462
- const context = (0, import_react44.useContext)(EnvContext);
6974
+ const context = (0, import_react45.useContext)(EnvContext);
7463
6975
  if (!context) {
7464
6976
  throw new Error("useEnv must be used within an EnvProvider");
7465
6977
  }
@@ -7467,7 +6979,7 @@ function useEnv() {
7467
6979
  }
7468
6980
 
7469
6981
  // src/provider/service-provider.tsx
7470
- var import_react46 = require("react");
6982
+ var import_react47 = require("react");
7471
6983
 
7472
6984
  // src/hooks/auth/use-forgot-password.ts
7473
6985
  var import_react_query3 = require("@tanstack/react-query");
@@ -8339,9 +7851,9 @@ var BaseModel = class {
8339
7851
  };
8340
7852
 
8341
7853
  // src/hooks/model/use-model.ts
8342
- var import_react45 = require("react");
7854
+ var import_react46 = require("react");
8343
7855
  var useModel = () => {
8344
- const initModel = (0, import_react45.useCallback)((modelData) => {
7856
+ const initModel = (0, import_react46.useCallback)((modelData) => {
8345
7857
  switch (modelData?.name) {
8346
7858
  default:
8347
7859
  return new BaseModel(modelData);
@@ -9358,8 +8870,9 @@ var use_handle_closing_session_default = useHandleClosingSession;
9358
8870
  var import_react_query104 = require("@tanstack/react-query");
9359
8871
  var useLoadDataPosSession = () => {
9360
8872
  const pos = usePosService();
8873
+ const { env } = useEnv();
9361
8874
  return (0, import_react_query104.useMutation)({
9362
- mutationFn: pos.loadDataPosSession
8875
+ mutationFn: env.isSupaMode ? pos.loadDataPosSessionSupabase : pos.loadDataPosSession
9363
8876
  });
9364
8877
  };
9365
8878
  var use_load_data_pos_session_default = useLoadDataPosSession;
@@ -9444,29 +8957,19 @@ var useUpdateOrderStatus = () => {
9444
8957
  };
9445
8958
  var use_update_order_status_default = useUpdateOrderStatus;
9446
8959
 
9447
- // src/hooks/pos/use-init-snapshot.ts
9448
- var import_react_query113 = require("@tanstack/react-query");
9449
- var useInitSnapshot = () => {
9450
- const fileSystem = useFileSystemService();
9451
- return (0, import_react_query113.useMutation)({
9452
- mutationFn: fileSystem.initSnapshot
9453
- });
9454
- };
9455
- var use_init_snapshot_default = useInitSnapshot;
9456
-
9457
8960
  // src/hooks/pos/use-complete-current-stage.ts
9458
- var import_react_query114 = require("@tanstack/react-query");
8961
+ var import_react_query113 = require("@tanstack/react-query");
9459
8962
  var useCompleteCurrentStage = () => {
9460
8963
  const pos = usePosService();
9461
- return (0, import_react_query114.useMutation)({
8964
+ return (0, import_react_query113.useMutation)({
9462
8965
  mutationFn: pos.completeCurrentStage
9463
8966
  });
9464
8967
  };
9465
8968
  var use_complete_current_stage_default = useCompleteCurrentStage;
9466
8969
 
9467
8970
  // src/provider/service-provider.tsx
9468
- var import_jsx_runtime6 = require("react/jsx-runtime");
9469
- var ServiceContext = (0, import_react46.createContext)(null);
8971
+ var import_jsx_runtime7 = require("react/jsx-runtime");
8972
+ var ServiceContext = (0, import_react47.createContext)(null);
9470
8973
  var ServiceProvider = ({
9471
8974
  children
9472
8975
  }) => {
@@ -9583,13 +9086,12 @@ var ServiceProvider = ({
9583
9086
  useGetWard: use_get_ward_default,
9584
9087
  useGetCountry: use_get_country_default,
9585
9088
  useGetPartnerTitle: use_get_partner_title_default,
9586
- useInitSnapshot: use_init_snapshot_default,
9587
9089
  useCompleteCurrentStage: use_complete_current_stage_default
9588
9090
  };
9589
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(ServiceContext.Provider, { value: services, children });
9091
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(ServiceContext.Provider, { value: services, children });
9590
9092
  };
9591
9093
  var useService = () => {
9592
- const context = (0, import_react46.useContext)(ServiceContext);
9094
+ const context = (0, import_react47.useContext)(ServiceContext);
9593
9095
  if (!context) {
9594
9096
  throw new Error("useService must be used within a ServiceProvider");
9595
9097
  }
@@ -9597,8 +9099,8 @@ var useService = () => {
9597
9099
  };
9598
9100
 
9599
9101
  // src/provider/meta-provider.tsx
9600
- var import_react47 = require("react");
9601
- var import_jsx_runtime7 = require("react/jsx-runtime");
9102
+ var import_react48 = require("react");
9103
+ var import_jsx_runtime8 = require("react/jsx-runtime");
9602
9104
  var MetaProvider = ({ children }) => {
9603
9105
  const { env } = useEnv();
9604
9106
  function updateMetadata() {
@@ -9646,10 +9148,10 @@ var MetaProvider = ({ children }) => {
9646
9148
  }
9647
9149
  }
9648
9150
  }
9649
- (0, import_react47.useEffect)(() => {
9151
+ (0, import_react48.useEffect)(() => {
9650
9152
  updateMetadata();
9651
9153
  }, [env?.defaultCompany]);
9652
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_jsx_runtime7.Fragment, { children });
9154
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_jsx_runtime8.Fragment, { children });
9653
9155
  };
9654
9156
  // Annotate the CommonJS export names for ESM import in node:
9655
9157
  0 && (module.exports = {
@@ -9658,7 +9160,9 @@ var MetaProvider = ({ children }) => {
9658
9160
  MetaProvider,
9659
9161
  ReactQueryProvider,
9660
9162
  ServiceProvider,
9163
+ SupabaseProvider,
9661
9164
  VersionGate,
9662
9165
  useEnv,
9663
- useService
9166
+ useService,
9167
+ useSupabase
9664
9168
  });