@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/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,57 @@ 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
+ var useSupabaseOptional = () => {
6007
+ return (0, import_react33.useContext)(SupabaseContext);
6008
+ };
6009
+
6010
+ // src/services/pos-service/load-data-pos-session.ts
6011
+ var MODEL_TO_TABLE = {
6012
+ ["account.tax" /* ACCOUNT_TAX */]: "account_taxes",
6013
+ ["res.company" /* RES_COMPANY */]: "companies",
6014
+ ["res.partner" /* RES_PARTNER */]: "customers",
6015
+ ["res.users" /* RES_USERS */]: "employees",
6016
+ ["loyalty.program" /* LOYALTY_PROGRAM */]: "loyalty_programs",
6017
+ ["loyalty.rule" /* LOYALTY_RULE */]: "loyalty_rules",
6018
+ ["pos.order.line" /* POS_ORDER_LINE */]: "order_lines",
6019
+ ["pos.order" /* POS_ORDER */]: "orders",
6020
+ ["pos.payment.method" /* POS_PAYMENT_METHOD */]: "payment_methods",
6021
+ ["pos.payment" /* POS_PAYMENT */]: "payments",
6022
+ ["product.category" /* PRODUCT_CATEGORY */]: "product_categories",
6023
+ ["product.product" /* PRODUCT_PRODUCT */]: "products",
6024
+ ["restaurant.floor" /* RESTAURANT_FLOOR */]: "restaurant_floors",
6025
+ ["restaurant.table" /* RESTAURANT_TABLE */]: "restaurant_tables"
6026
+ };
6502
6027
  var loadDataPosSessionService = (env) => {
6503
- const isLocalMode = env?.isLocalMode;
6504
- const loadDataPosSession = (0, import_react33.useCallback)(
6028
+ const supabase = useSupabaseOptional();
6029
+ const loadDataPosSession = (0, import_react34.useCallback)(
6505
6030
  async ({
6506
6031
  model,
6507
6032
  ids,
@@ -6511,10 +6036,6 @@ var loadDataPosSessionService = (env) => {
6511
6036
  modelsToLoad = [],
6512
6037
  searchParams
6513
6038
  }) => {
6514
- if (isLocalMode) {
6515
- const data = await loadData();
6516
- return data;
6517
- }
6518
6039
  const jsonData = {
6519
6040
  model,
6520
6041
  method: "load_data" /* LOAD_DATA */,
@@ -6541,17 +6062,74 @@ var loadDataPosSessionService = (env) => {
6541
6062
  service
6542
6063
  );
6543
6064
  },
6544
- [env, isLocalMode]
6065
+ [env]
6545
6066
  );
6067
+ const loadDataPosSessionSupabase = (0, import_react34.useCallback)(async () => {
6068
+ try {
6069
+ const allModels = Object.values(LoadDataModel);
6070
+ const promises = allModels.map(async (modelName) => {
6071
+ const tableName = MODEL_TO_TABLE[modelName];
6072
+ if (!tableName) {
6073
+ return {
6074
+ modelName,
6075
+ data: [],
6076
+ fields: {},
6077
+ relations: {}
6078
+ };
6079
+ }
6080
+ if (!supabase) {
6081
+ return {
6082
+ modelName,
6083
+ data: [],
6084
+ fields: {},
6085
+ relations: {}
6086
+ };
6087
+ }
6088
+ const { data, error } = await supabase.from(tableName).select("*");
6089
+ if (error) {
6090
+ console.error(`Error loading ${modelName}:`, error);
6091
+ return {
6092
+ modelName,
6093
+ data: [],
6094
+ fields: {},
6095
+ relations: {}
6096
+ };
6097
+ }
6098
+ return {
6099
+ modelName,
6100
+ data: data || [],
6101
+ fields: {},
6102
+ relations: {}
6103
+ };
6104
+ });
6105
+ const results = await Promise.all(promises);
6106
+ const response = results.reduce(
6107
+ (acc, { modelName, data, fields, relations }) => {
6108
+ acc[modelName] = {
6109
+ data,
6110
+ fields,
6111
+ relations
6112
+ };
6113
+ return acc;
6114
+ },
6115
+ {}
6116
+ );
6117
+ return response;
6118
+ } catch (error) {
6119
+ console.error("Error loading data from Supabase:", error);
6120
+ return {};
6121
+ }
6122
+ }, [supabase]);
6546
6123
  return {
6547
- loadDataPosSession
6124
+ loadDataPosSession,
6125
+ loadDataPosSessionSupabase
6548
6126
  };
6549
6127
  };
6550
6128
 
6551
6129
  // src/services/pos-service/manage-onchange.ts
6552
- var import_react34 = require("react");
6130
+ var import_react35 = require("react");
6553
6131
  var manageOnchangeService = (env) => {
6554
- const manageOnChange = (0, import_react34.useCallback)(
6132
+ const manageOnChange = (0, import_react35.useCallback)(
6555
6133
  ({
6556
6134
  model,
6557
6135
  ids,
@@ -6585,9 +6163,9 @@ var manageOnchangeService = (env) => {
6585
6163
  };
6586
6164
 
6587
6165
  // src/services/pos-service/manage-session.ts
6588
- var import_react35 = require("react");
6166
+ var import_react36 = require("react");
6589
6167
  var manageSessionService = (env) => {
6590
- const manageSession = (0, import_react35.useCallback)(
6168
+ const manageSession = (0, import_react36.useCallback)(
6591
6169
  ({
6592
6170
  model,
6593
6171
  method,
@@ -6624,9 +6202,9 @@ var manageSessionService = (env) => {
6624
6202
  };
6625
6203
 
6626
6204
  // src/services/pos-service/process-order.ts
6627
- var import_react36 = require("react");
6205
+ var import_react37 = require("react");
6628
6206
  var processOrderService = (env) => {
6629
- const processOrder = (0, import_react36.useCallback)(
6207
+ const processOrder = (0, import_react37.useCallback)(
6630
6208
  ({
6631
6209
  orderId,
6632
6210
  xNode,
@@ -6659,9 +6237,9 @@ var processOrderService = (env) => {
6659
6237
  };
6660
6238
 
6661
6239
  // src/services/pos-service/save-pin-code.ts
6662
- var import_react37 = require("react");
6240
+ var import_react38 = require("react");
6663
6241
  var savePinCodeService = (env) => {
6664
- const savePinCode = (0, import_react37.useCallback)(
6242
+ const savePinCode = (0, import_react38.useCallback)(
6665
6243
  ({
6666
6244
  serialNumber,
6667
6245
  pinCode,
@@ -6692,9 +6270,9 @@ var savePinCodeService = (env) => {
6692
6270
  };
6693
6271
 
6694
6272
  // src/services/pos-service/search-journal.ts
6695
- var import_react38 = require("react");
6273
+ var import_react39 = require("react");
6696
6274
  var searchJournalService = (env) => {
6697
- const searchJournal = (0, import_react38.useCallback)(
6275
+ const searchJournal = (0, import_react39.useCallback)(
6698
6276
  ({
6699
6277
  model,
6700
6278
  method,
@@ -6729,9 +6307,9 @@ var searchJournalService = (env) => {
6729
6307
  };
6730
6308
 
6731
6309
  // src/services/pos-service/update-closed-session.ts
6732
- var import_react39 = require("react");
6310
+ var import_react40 = require("react");
6733
6311
  var updateClosedSessionService = (env) => {
6734
- const updateClosedSession = (0, import_react39.useCallback)(
6312
+ const updateClosedSession = (0, import_react40.useCallback)(
6735
6313
  ({
6736
6314
  model,
6737
6315
  domain,
@@ -6764,11 +6342,9 @@ var updateClosedSessionService = (env) => {
6764
6342
  };
6765
6343
 
6766
6344
  // src/services/pos-service/update-entity.ts
6767
- var import_react40 = require("react");
6345
+ var import_react41 = require("react");
6768
6346
  var updateEntityService = (env) => {
6769
- const isLocalMode = env?.isLocalMode;
6770
- const repo = new ModelRepository();
6771
- const updateEntity = (0, import_react40.useCallback)(
6347
+ const updateEntity = (0, import_react41.useCallback)(
6772
6348
  ({
6773
6349
  model,
6774
6350
  domain,
@@ -6777,15 +6353,6 @@ var updateEntityService = (env) => {
6777
6353
  xNode,
6778
6354
  service
6779
6355
  }) => {
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
6356
  const jsonData = {
6790
6357
  model,
6791
6358
  domain,
@@ -6803,7 +6370,7 @@ var updateEntityService = (env) => {
6803
6370
  service
6804
6371
  );
6805
6372
  },
6806
- [env, isLocalMode]
6373
+ [env]
6807
6374
  );
6808
6375
  return {
6809
6376
  updateEntity
@@ -6811,9 +6378,9 @@ var updateEntityService = (env) => {
6811
6378
  };
6812
6379
 
6813
6380
  // src/services/pos-service/update-order-status.ts
6814
- var import_react41 = require("react");
6381
+ var import_react42 = require("react");
6815
6382
  var updateOrderStatusService = (env) => {
6816
- const updateOrderStatus = (0, import_react41.useCallback)(
6383
+ const updateOrderStatus = (0, import_react42.useCallback)(
6817
6384
  ({
6818
6385
  orderId,
6819
6386
  state,
@@ -6844,9 +6411,9 @@ var updateOrderStatusService = (env) => {
6844
6411
  };
6845
6412
 
6846
6413
  // src/services/pos-service/complete-current-stage.ts
6847
- var import_react42 = require("react");
6414
+ var import_react43 = require("react");
6848
6415
  var completeCurrentStageService = (env) => {
6849
- const completeCurrentStage = (0, import_react42.useCallback)(
6416
+ const completeCurrentStage = (0, import_react43.useCallback)(
6850
6417
  ({
6851
6418
  ids,
6852
6419
  withContext,
@@ -6929,57 +6496,13 @@ var usePosService = () => {
6929
6496
  return service;
6930
6497
  };
6931
6498
 
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
6499
  // src/provider/version-gate-provider.tsx
6977
- var import_jsx_runtime4 = require("react/jsx-runtime");
6500
+ var import_jsx_runtime5 = require("react/jsx-runtime");
6978
6501
  var VersionGate = ({ children }) => {
6979
6502
  const queryClient = (0, import_react_query2.useQueryClient)();
6980
- const [ready, setReady] = (0, import_react43.useState)(false);
6503
+ const [ready, setReady] = (0, import_react44.useState)(false);
6981
6504
  const { getVersion } = useViewService();
6982
- (0, import_react43.useEffect)(() => {
6505
+ (0, import_react44.useEffect)(() => {
6983
6506
  const clearVersion = () => {
6984
6507
  queryClient.clear();
6985
6508
  localStorage.removeItem("__api_version__");
@@ -7006,11 +6529,11 @@ var VersionGate = ({ children }) => {
7006
6529
  return () => window.removeEventListener("keydown", onKey);
7007
6530
  }
7008
6531
  }, [queryClient]);
7009
- return ready ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_jsx_runtime4.Fragment, { children }) : null;
6532
+ return ready ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_jsx_runtime5.Fragment, { children }) : null;
7010
6533
  };
7011
6534
 
7012
6535
  // src/provider/env-provider.tsx
7013
- var import_react44 = require("react");
6536
+ var import_react45 = require("react");
7014
6537
 
7015
6538
  // src/configs/axios-client.ts
7016
6539
  var import_axios = __toESM(require("axios"));
@@ -7339,7 +6862,7 @@ var axiosClient = {
7339
6862
  };
7340
6863
 
7341
6864
  // src/provider/env-provider.tsx
7342
- var import_jsx_runtime5 = require("react/jsx-runtime");
6865
+ var import_jsx_runtime6 = require("react/jsx-runtime");
7343
6866
  var initialEnvState = {
7344
6867
  env: null,
7345
6868
  baseUrl: "",
@@ -7361,20 +6884,20 @@ var initialEnvState = {
7361
6884
  tz: "Asia/Saigon"
7362
6885
  },
7363
6886
  excludeLanguages: [],
7364
- isLocalMode: false
6887
+ isSupaMode: false
7365
6888
  };
7366
- var EnvContext = (0, import_react44.createContext)(null);
6889
+ var EnvContext = (0, import_react45.createContext)(null);
7367
6890
  function EnvProvider({
7368
6891
  children,
7369
6892
  localStorageUtils: localStorageUtil = localStorageUtils(),
7370
6893
  sessionStorageUtils: sessionStorageUtil = sessionStorageUtils
7371
6894
  }) {
7372
- const [env, setEnvState] = (0, import_react44.useState)({
6895
+ const [env, setEnvState] = (0, import_react45.useState)({
7373
6896
  ...initialEnvState,
7374
6897
  localStorageUtils: localStorageUtil,
7375
6898
  sessionStorageUtils: sessionStorageUtil
7376
6899
  });
7377
- const setupEnv = (0, import_react44.useCallback)(
6900
+ const setupEnv = (0, import_react45.useCallback)(
7378
6901
  (envConfig) => {
7379
6902
  const updatedEnv = {
7380
6903
  ...env,
@@ -7388,31 +6911,31 @@ function EnvProvider({
7388
6911
  },
7389
6912
  [env, localStorageUtil, sessionStorageUtil]
7390
6913
  );
7391
- const setUid2 = (0, import_react44.useCallback)((uid) => {
6914
+ const setUid2 = (0, import_react45.useCallback)((uid) => {
7392
6915
  setEnvState((prev) => ({
7393
6916
  ...prev,
7394
6917
  context: { ...prev.context, uid }
7395
6918
  }));
7396
6919
  }, []);
7397
- const setLang2 = (0, import_react44.useCallback)((lang) => {
6920
+ const setLang2 = (0, import_react45.useCallback)((lang) => {
7398
6921
  setEnvState((prev) => ({
7399
6922
  ...prev,
7400
6923
  context: { ...prev.context, lang }
7401
6924
  }));
7402
6925
  }, []);
7403
- const setAllowCompanies2 = (0, import_react44.useCallback)((allowed_company_ids) => {
6926
+ const setAllowCompanies2 = (0, import_react45.useCallback)((allowed_company_ids) => {
7404
6927
  setEnvState((prev) => ({
7405
6928
  ...prev,
7406
6929
  context: { ...prev.context, allowed_company_ids }
7407
6930
  }));
7408
6931
  }, []);
7409
- const setCompanies2 = (0, import_react44.useCallback)((companies) => {
6932
+ const setCompanies2 = (0, import_react45.useCallback)((companies) => {
7410
6933
  setEnvState((prev) => ({
7411
6934
  ...prev,
7412
6935
  companies
7413
6936
  }));
7414
6937
  }, []);
7415
- const setDefaultCompany2 = (0, import_react44.useCallback)(
6938
+ const setDefaultCompany2 = (0, import_react45.useCallback)(
7416
6939
  (defaultCompany) => {
7417
6940
  setEnvState((prev) => ({
7418
6941
  ...prev,
@@ -7421,25 +6944,25 @@ function EnvProvider({
7421
6944
  },
7422
6945
  []
7423
6946
  );
7424
- const setUserInfo = (0, import_react44.useCallback)((user) => {
6947
+ const setUserInfo = (0, import_react45.useCallback)((user) => {
7425
6948
  setEnvState((prev) => ({
7426
6949
  ...prev,
7427
6950
  user
7428
6951
  }));
7429
6952
  }, []);
7430
- const setConfig2 = (0, import_react44.useCallback)((config) => {
6953
+ const setConfig2 = (0, import_react45.useCallback)((config) => {
7431
6954
  setEnvState((prev) => ({
7432
6955
  ...prev,
7433
6956
  config
7434
6957
  }));
7435
6958
  }, []);
7436
- const setEnvFile2 = (0, import_react44.useCallback)((envFile) => {
6959
+ const setEnvFile2 = (0, import_react45.useCallback)((envFile) => {
7437
6960
  setEnvState((prev) => ({
7438
6961
  ...prev,
7439
6962
  envFile
7440
6963
  }));
7441
6964
  }, []);
7442
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6965
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
7443
6966
  EnvContext.Provider,
7444
6967
  {
7445
6968
  value: {
@@ -7459,7 +6982,7 @@ function EnvProvider({
7459
6982
  );
7460
6983
  }
7461
6984
  function useEnv() {
7462
- const context = (0, import_react44.useContext)(EnvContext);
6985
+ const context = (0, import_react45.useContext)(EnvContext);
7463
6986
  if (!context) {
7464
6987
  throw new Error("useEnv must be used within an EnvProvider");
7465
6988
  }
@@ -7467,7 +6990,7 @@ function useEnv() {
7467
6990
  }
7468
6991
 
7469
6992
  // src/provider/service-provider.tsx
7470
- var import_react46 = require("react");
6993
+ var import_react47 = require("react");
7471
6994
 
7472
6995
  // src/hooks/auth/use-forgot-password.ts
7473
6996
  var import_react_query3 = require("@tanstack/react-query");
@@ -8339,9 +7862,9 @@ var BaseModel = class {
8339
7862
  };
8340
7863
 
8341
7864
  // src/hooks/model/use-model.ts
8342
- var import_react45 = require("react");
7865
+ var import_react46 = require("react");
8343
7866
  var useModel = () => {
8344
- const initModel = (0, import_react45.useCallback)((modelData) => {
7867
+ const initModel = (0, import_react46.useCallback)((modelData) => {
8345
7868
  switch (modelData?.name) {
8346
7869
  default:
8347
7870
  return new BaseModel(modelData);
@@ -9358,8 +8881,9 @@ var use_handle_closing_session_default = useHandleClosingSession;
9358
8881
  var import_react_query104 = require("@tanstack/react-query");
9359
8882
  var useLoadDataPosSession = () => {
9360
8883
  const pos = usePosService();
8884
+ const { env } = useEnv();
9361
8885
  return (0, import_react_query104.useMutation)({
9362
- mutationFn: pos.loadDataPosSession
8886
+ mutationFn: env.isSupaMode ? pos.loadDataPosSessionSupabase : pos.loadDataPosSession
9363
8887
  });
9364
8888
  };
9365
8889
  var use_load_data_pos_session_default = useLoadDataPosSession;
@@ -9444,29 +8968,19 @@ var useUpdateOrderStatus = () => {
9444
8968
  };
9445
8969
  var use_update_order_status_default = useUpdateOrderStatus;
9446
8970
 
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
8971
  // src/hooks/pos/use-complete-current-stage.ts
9458
- var import_react_query114 = require("@tanstack/react-query");
8972
+ var import_react_query113 = require("@tanstack/react-query");
9459
8973
  var useCompleteCurrentStage = () => {
9460
8974
  const pos = usePosService();
9461
- return (0, import_react_query114.useMutation)({
8975
+ return (0, import_react_query113.useMutation)({
9462
8976
  mutationFn: pos.completeCurrentStage
9463
8977
  });
9464
8978
  };
9465
8979
  var use_complete_current_stage_default = useCompleteCurrentStage;
9466
8980
 
9467
8981
  // src/provider/service-provider.tsx
9468
- var import_jsx_runtime6 = require("react/jsx-runtime");
9469
- var ServiceContext = (0, import_react46.createContext)(null);
8982
+ var import_jsx_runtime7 = require("react/jsx-runtime");
8983
+ var ServiceContext = (0, import_react47.createContext)(null);
9470
8984
  var ServiceProvider = ({
9471
8985
  children
9472
8986
  }) => {
@@ -9583,13 +9097,12 @@ var ServiceProvider = ({
9583
9097
  useGetWard: use_get_ward_default,
9584
9098
  useGetCountry: use_get_country_default,
9585
9099
  useGetPartnerTitle: use_get_partner_title_default,
9586
- useInitSnapshot: use_init_snapshot_default,
9587
9100
  useCompleteCurrentStage: use_complete_current_stage_default
9588
9101
  };
9589
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(ServiceContext.Provider, { value: services, children });
9102
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(ServiceContext.Provider, { value: services, children });
9590
9103
  };
9591
9104
  var useService = () => {
9592
- const context = (0, import_react46.useContext)(ServiceContext);
9105
+ const context = (0, import_react47.useContext)(ServiceContext);
9593
9106
  if (!context) {
9594
9107
  throw new Error("useService must be used within a ServiceProvider");
9595
9108
  }
@@ -9597,8 +9110,8 @@ var useService = () => {
9597
9110
  };
9598
9111
 
9599
9112
  // src/provider/meta-provider.tsx
9600
- var import_react47 = require("react");
9601
- var import_jsx_runtime7 = require("react/jsx-runtime");
9113
+ var import_react48 = require("react");
9114
+ var import_jsx_runtime8 = require("react/jsx-runtime");
9602
9115
  var MetaProvider = ({ children }) => {
9603
9116
  const { env } = useEnv();
9604
9117
  function updateMetadata() {
@@ -9646,10 +9159,10 @@ var MetaProvider = ({ children }) => {
9646
9159
  }
9647
9160
  }
9648
9161
  }
9649
- (0, import_react47.useEffect)(() => {
9162
+ (0, import_react48.useEffect)(() => {
9650
9163
  updateMetadata();
9651
9164
  }, [env?.defaultCompany]);
9652
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_jsx_runtime7.Fragment, { children });
9165
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_jsx_runtime8.Fragment, { children });
9653
9166
  };
9654
9167
  // Annotate the CommonJS export names for ESM import in node:
9655
9168
  0 && (module.exports = {
@@ -9658,7 +9171,9 @@ var MetaProvider = ({ children }) => {
9658
9171
  MetaProvider,
9659
9172
  ReactQueryProvider,
9660
9173
  ServiceProvider,
9174
+ SupabaseProvider,
9661
9175
  VersionGate,
9662
9176
  useEnv,
9663
- useService
9177
+ useService,
9178
+ useSupabase
9664
9179
  });