@fctc/interface-logic 4.3.0 → 4.3.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/hooks.d.mts CHANGED
@@ -660,7 +660,7 @@ declare const useHandleClosingSession: () => _tanstack_react_query.UseMutationRe
660
660
  xNode?: string;
661
661
  }, unknown>;
662
662
 
663
- declare const useLoadDataPosSession: () => _tanstack_react_query.UseMutationResult<unknown, Error, {
663
+ declare const useLoadDataPosSession: () => _tanstack_react_query.UseMutationResult<any, Error, {
664
664
  model: string;
665
665
  ids: any;
666
666
  service?: string;
package/dist/hooks.d.ts CHANGED
@@ -660,7 +660,7 @@ declare const useHandleClosingSession: () => _tanstack_react_query.UseMutationRe
660
660
  xNode?: string;
661
661
  }, unknown>;
662
662
 
663
- declare const useLoadDataPosSession: () => _tanstack_react_query.UseMutationResult<unknown, Error, {
663
+ declare const useLoadDataPosSession: () => _tanstack_react_query.UseMutationResult<any, Error, {
664
664
  model: string;
665
665
  ids: any;
666
666
  service?: string;
package/dist/hooks.js CHANGED
@@ -1764,9 +1764,9 @@ function applyBinaryOp(ast, context) {
1764
1764
  var DICT = {
1765
1765
  get(...args) {
1766
1766
  const { key, defValue } = parseArgs(args, ["key", "defValue"]);
1767
- const self2 = this;
1768
- if (key in self2) {
1769
- return self2[key];
1767
+ const self = this;
1768
+ if (key in self) {
1769
+ return self[key];
1770
1770
  } else if (defValue !== void 0) {
1771
1771
  return defValue;
1772
1772
  }
@@ -6042,26 +6042,30 @@ var fileService = {
6042
6042
  };
6043
6043
 
6044
6044
  // src/services/filesystem-service/json-worker.ts
6045
- var import_meta = {};
6046
- self.addEventListener("message", async (ev) => {
6047
- const { id, cmd, payload } = ev.data;
6048
- try {
6049
- if (cmd === "parse") {
6050
- const parsed = JSON.parse(payload);
6051
- self.postMessage({ id, ok: true, result: parsed });
6052
- } else if (cmd === "stringify") {
6053
- const str = JSON.stringify(payload);
6054
- self.postMessage({ id, ok: true, result: str });
6055
- }
6056
- } catch (err) {
6057
- self.postMessage({ id, ok: false, error: err?.message || String(err) });
6058
- }
6059
- });
6045
+ function createWorkerBlob() {
6046
+ const workerCode = `
6047
+ self.addEventListener("message", async (ev) => {
6048
+ const { id, cmd, payload } = ev.data;
6049
+ try {
6050
+ if (cmd === "parse") {
6051
+ const parsed = JSON.parse(payload);
6052
+ self.postMessage({ id, ok: true, result: parsed });
6053
+ } else if (cmd === "stringify") {
6054
+ const str = JSON.stringify(payload);
6055
+ self.postMessage({ id, ok: true, result: str });
6056
+ }
6057
+ } catch (err) {
6058
+ self.postMessage({ id, ok: false, error: err?.message || String(err) });
6059
+ }
6060
+ });
6061
+ `;
6062
+ const blob = new Blob([workerCode], { type: "application/javascript" });
6063
+ return URL.createObjectURL(blob);
6064
+ }
6060
6065
  function spawnParseWorker(raw) {
6061
6066
  return new Promise((resolve, reject) => {
6062
- const worker = new Worker(new URL("./json-worker.ts", import_meta.url), {
6063
- type: "module"
6064
- });
6067
+ const workerUrl = createWorkerBlob();
6068
+ const worker = new Worker(workerUrl);
6065
6069
  const id = Math.random().toString(36).slice(2);
6066
6070
  worker.onmessage = (ev) => {
6067
6071
  const { ok, result, error } = ev.data;
@@ -6070,6 +6074,12 @@ function spawnParseWorker(raw) {
6070
6074
  } else {
6071
6075
  reject(new Error(error));
6072
6076
  }
6077
+ URL.revokeObjectURL(workerUrl);
6078
+ worker.terminate();
6079
+ };
6080
+ worker.onerror = (err) => {
6081
+ reject(err);
6082
+ URL.revokeObjectURL(workerUrl);
6073
6083
  worker.terminate();
6074
6084
  };
6075
6085
  worker.postMessage({ id, cmd: "parse", payload: raw });
@@ -6077,13 +6087,18 @@ function spawnParseWorker(raw) {
6077
6087
  }
6078
6088
  function spawnStringifyWorker(obj) {
6079
6089
  return new Promise((resolve, reject) => {
6080
- const worker = new Worker(new URL("./json-worker.ts", import_meta.url), {
6081
- type: "module"
6082
- });
6090
+ const workerUrl = createWorkerBlob();
6091
+ const worker = new Worker(workerUrl);
6083
6092
  worker.onmessage = (ev) => {
6084
6093
  const { ok, result, error } = ev.data;
6085
6094
  if (ok) resolve(result);
6086
6095
  else reject(new Error(error));
6096
+ URL.revokeObjectURL(workerUrl);
6097
+ worker.terminate();
6098
+ };
6099
+ worker.onerror = (err) => {
6100
+ reject(err);
6101
+ URL.revokeObjectURL(workerUrl);
6087
6102
  worker.terminate();
6088
6103
  };
6089
6104
  worker.postMessage({ cmd: "stringify", payload: obj });
@@ -6118,50 +6133,67 @@ var memoryCache = new MemoryCache();
6118
6133
  var MODELS_DIR = "pos/models";
6119
6134
  var MODELS_META_DIR = "pos/models_meta";
6120
6135
  async function loadData(includeMeta = true) {
6121
- const listResult = await fileService.list(MODELS_DIR);
6122
- if (!listResult || !Array.isArray(listResult.files)) {
6123
- return {};
6124
- }
6125
- const result = {};
6126
- for (const file of listResult.files) {
6127
- if (file.type !== "file") continue;
6128
- if (!file.name.endsWith(".json")) continue;
6129
- const fileName = file.name;
6130
- const modelName = fileName.replace(/\.json$/, "");
6131
- const dataPath = `${MODELS_DIR}/${fileName}`;
6132
- const metaPath = `${MODELS_META_DIR}/${encodeURIComponent(
6133
- modelName
6134
- )}.meta.json`;
6135
- const rawData = await fileService.read(dataPath);
6136
- if (!rawData) continue;
6137
- const parsedData = await spawnParseWorker(rawData);
6138
- const data = Array.isArray(parsedData) ? parsedData : [];
6139
- if (!includeMeta) {
6140
- result[modelName] = { data };
6141
- continue;
6136
+ console.log("\u{1F50D} loadData START");
6137
+ try {
6138
+ const listResult = await fileService.list(MODELS_DIR);
6139
+ console.log("\u{1F4CB} listResult:", listResult);
6140
+ if (!listResult || !Array.isArray(listResult.files)) {
6141
+ console.log("\u26A0\uFE0F No files found");
6142
+ return {};
6142
6143
  }
6143
- const rawMeta = await fileService.read(metaPath);
6144
- let fields = [];
6145
- let relations = {};
6146
- if (rawMeta) {
6147
- const parsedMeta = await spawnParseWorker(rawMeta);
6148
- fields = parsedMeta?.fields ?? [];
6149
- relations = parsedMeta?.relations ?? {};
6144
+ const result = {};
6145
+ for (const file of listResult.files) {
6146
+ console.log("\u{1F4C4} Processing file:", file.name);
6147
+ if (file.type !== "file") continue;
6148
+ if (!file.name.endsWith(".json")) continue;
6149
+ const fileName = file.name;
6150
+ const modelName = fileName.replace(/\.json$/, "");
6151
+ const dataPath = `${MODELS_DIR}/${fileName}`;
6152
+ console.log("\u{1F4C2} Reading data from:", dataPath);
6153
+ const rawData = await fileService.read(dataPath);
6154
+ console.log("\u2705 Data read, length:", rawData?.length);
6155
+ if (!rawData) continue;
6156
+ console.log("\u{1F504} Parsing data...");
6157
+ const parsedData = await spawnParseWorker(rawData);
6158
+ console.log("\u2705 Data parsed");
6159
+ const data = Array.isArray(parsedData) ? parsedData : [];
6160
+ if (!includeMeta) {
6161
+ result[modelName] = { data };
6162
+ continue;
6163
+ }
6164
+ const metaPath = `${MODELS_META_DIR}/${encodeURIComponent(
6165
+ modelName
6166
+ )}.meta.json`;
6167
+ console.log("\u{1F4C2} Reading meta from:", metaPath);
6168
+ const rawMeta = await fileService.read(metaPath);
6169
+ let fields = [];
6170
+ let relations = {};
6171
+ if (rawMeta) {
6172
+ console.log("\u{1F504} Parsing meta...");
6173
+ const parsedMeta = await spawnParseWorker(rawMeta);
6174
+ fields = parsedMeta?.fields ?? [];
6175
+ relations = parsedMeta?.relations ?? {};
6176
+ console.log("\u2705 Meta parsed");
6177
+ }
6178
+ result[modelName] = {
6179
+ data,
6180
+ fields,
6181
+ relations
6182
+ };
6150
6183
  }
6151
- result[modelName] = {
6152
- data,
6153
- fields,
6154
- relations
6155
- };
6184
+ console.log("\u2705 loadData COMPLETE:", Object.keys(result));
6185
+ return result;
6186
+ } catch (error) {
6187
+ console.error("\u274C loadData ERROR:", error);
6188
+ throw error;
6156
6189
  }
6157
- return result;
6158
6190
  }
6159
6191
 
6160
6192
  // src/services/pos-service/load-data-pos-session.ts
6161
6193
  var loadDataPosSessionService = (env) => {
6162
6194
  const isLocalMode = env?.isLocalMode;
6163
6195
  const loadDataPosSession = (0, import_react37.useCallback)(
6164
- ({
6196
+ async ({
6165
6197
  model,
6166
6198
  ids,
6167
6199
  xNode,
@@ -6172,7 +6204,9 @@ var loadDataPosSessionService = (env) => {
6172
6204
  }) => {
6173
6205
  console.log("isLocalMode", isLocalMode);
6174
6206
  if (isLocalMode) {
6175
- return loadData;
6207
+ const data = await loadData();
6208
+ console.log("\u2705 loadData resolved:", data);
6209
+ return data;
6176
6210
  }
6177
6211
  const jsonData = {
6178
6212
  model,
package/dist/hooks.mjs CHANGED
@@ -1616,9 +1616,9 @@ function applyBinaryOp(ast, context) {
1616
1616
  var DICT = {
1617
1617
  get(...args) {
1618
1618
  const { key, defValue } = parseArgs(args, ["key", "defValue"]);
1619
- const self2 = this;
1620
- if (key in self2) {
1621
- return self2[key];
1619
+ const self = this;
1620
+ if (key in self) {
1621
+ return self[key];
1622
1622
  } else if (defValue !== void 0) {
1623
1623
  return defValue;
1624
1624
  }
@@ -5894,25 +5894,30 @@ var fileService = {
5894
5894
  };
5895
5895
 
5896
5896
  // src/services/filesystem-service/json-worker.ts
5897
- self.addEventListener("message", async (ev) => {
5898
- const { id, cmd, payload } = ev.data;
5899
- try {
5900
- if (cmd === "parse") {
5901
- const parsed = JSON.parse(payload);
5902
- self.postMessage({ id, ok: true, result: parsed });
5903
- } else if (cmd === "stringify") {
5904
- const str = JSON.stringify(payload);
5905
- self.postMessage({ id, ok: true, result: str });
5906
- }
5907
- } catch (err) {
5908
- self.postMessage({ id, ok: false, error: err?.message || String(err) });
5909
- }
5910
- });
5897
+ function createWorkerBlob() {
5898
+ const workerCode = `
5899
+ self.addEventListener("message", async (ev) => {
5900
+ const { id, cmd, payload } = ev.data;
5901
+ try {
5902
+ if (cmd === "parse") {
5903
+ const parsed = JSON.parse(payload);
5904
+ self.postMessage({ id, ok: true, result: parsed });
5905
+ } else if (cmd === "stringify") {
5906
+ const str = JSON.stringify(payload);
5907
+ self.postMessage({ id, ok: true, result: str });
5908
+ }
5909
+ } catch (err) {
5910
+ self.postMessage({ id, ok: false, error: err?.message || String(err) });
5911
+ }
5912
+ });
5913
+ `;
5914
+ const blob = new Blob([workerCode], { type: "application/javascript" });
5915
+ return URL.createObjectURL(blob);
5916
+ }
5911
5917
  function spawnParseWorker(raw) {
5912
5918
  return new Promise((resolve, reject) => {
5913
- const worker = new Worker(new URL("./json-worker.ts", import.meta.url), {
5914
- type: "module"
5915
- });
5919
+ const workerUrl = createWorkerBlob();
5920
+ const worker = new Worker(workerUrl);
5916
5921
  const id = Math.random().toString(36).slice(2);
5917
5922
  worker.onmessage = (ev) => {
5918
5923
  const { ok, result, error } = ev.data;
@@ -5921,6 +5926,12 @@ function spawnParseWorker(raw) {
5921
5926
  } else {
5922
5927
  reject(new Error(error));
5923
5928
  }
5929
+ URL.revokeObjectURL(workerUrl);
5930
+ worker.terminate();
5931
+ };
5932
+ worker.onerror = (err) => {
5933
+ reject(err);
5934
+ URL.revokeObjectURL(workerUrl);
5924
5935
  worker.terminate();
5925
5936
  };
5926
5937
  worker.postMessage({ id, cmd: "parse", payload: raw });
@@ -5928,13 +5939,18 @@ function spawnParseWorker(raw) {
5928
5939
  }
5929
5940
  function spawnStringifyWorker(obj) {
5930
5941
  return new Promise((resolve, reject) => {
5931
- const worker = new Worker(new URL("./json-worker.ts", import.meta.url), {
5932
- type: "module"
5933
- });
5942
+ const workerUrl = createWorkerBlob();
5943
+ const worker = new Worker(workerUrl);
5934
5944
  worker.onmessage = (ev) => {
5935
5945
  const { ok, result, error } = ev.data;
5936
5946
  if (ok) resolve(result);
5937
5947
  else reject(new Error(error));
5948
+ URL.revokeObjectURL(workerUrl);
5949
+ worker.terminate();
5950
+ };
5951
+ worker.onerror = (err) => {
5952
+ reject(err);
5953
+ URL.revokeObjectURL(workerUrl);
5938
5954
  worker.terminate();
5939
5955
  };
5940
5956
  worker.postMessage({ cmd: "stringify", payload: obj });
@@ -5969,50 +5985,67 @@ var memoryCache = new MemoryCache();
5969
5985
  var MODELS_DIR = "pos/models";
5970
5986
  var MODELS_META_DIR = "pos/models_meta";
5971
5987
  async function loadData(includeMeta = true) {
5972
- const listResult = await fileService.list(MODELS_DIR);
5973
- if (!listResult || !Array.isArray(listResult.files)) {
5974
- return {};
5975
- }
5976
- const result = {};
5977
- for (const file of listResult.files) {
5978
- if (file.type !== "file") continue;
5979
- if (!file.name.endsWith(".json")) continue;
5980
- const fileName = file.name;
5981
- const modelName = fileName.replace(/\.json$/, "");
5982
- const dataPath = `${MODELS_DIR}/${fileName}`;
5983
- const metaPath = `${MODELS_META_DIR}/${encodeURIComponent(
5984
- modelName
5985
- )}.meta.json`;
5986
- const rawData = await fileService.read(dataPath);
5987
- if (!rawData) continue;
5988
- const parsedData = await spawnParseWorker(rawData);
5989
- const data = Array.isArray(parsedData) ? parsedData : [];
5990
- if (!includeMeta) {
5991
- result[modelName] = { data };
5992
- continue;
5988
+ console.log("\u{1F50D} loadData START");
5989
+ try {
5990
+ const listResult = await fileService.list(MODELS_DIR);
5991
+ console.log("\u{1F4CB} listResult:", listResult);
5992
+ if (!listResult || !Array.isArray(listResult.files)) {
5993
+ console.log("\u26A0\uFE0F No files found");
5994
+ return {};
5993
5995
  }
5994
- const rawMeta = await fileService.read(metaPath);
5995
- let fields = [];
5996
- let relations = {};
5997
- if (rawMeta) {
5998
- const parsedMeta = await spawnParseWorker(rawMeta);
5999
- fields = parsedMeta?.fields ?? [];
6000
- relations = parsedMeta?.relations ?? {};
5996
+ const result = {};
5997
+ for (const file of listResult.files) {
5998
+ console.log("\u{1F4C4} Processing file:", file.name);
5999
+ if (file.type !== "file") continue;
6000
+ if (!file.name.endsWith(".json")) continue;
6001
+ const fileName = file.name;
6002
+ const modelName = fileName.replace(/\.json$/, "");
6003
+ const dataPath = `${MODELS_DIR}/${fileName}`;
6004
+ console.log("\u{1F4C2} Reading data from:", dataPath);
6005
+ const rawData = await fileService.read(dataPath);
6006
+ console.log("\u2705 Data read, length:", rawData?.length);
6007
+ if (!rawData) continue;
6008
+ console.log("\u{1F504} Parsing data...");
6009
+ const parsedData = await spawnParseWorker(rawData);
6010
+ console.log("\u2705 Data parsed");
6011
+ const data = Array.isArray(parsedData) ? parsedData : [];
6012
+ if (!includeMeta) {
6013
+ result[modelName] = { data };
6014
+ continue;
6015
+ }
6016
+ const metaPath = `${MODELS_META_DIR}/${encodeURIComponent(
6017
+ modelName
6018
+ )}.meta.json`;
6019
+ console.log("\u{1F4C2} Reading meta from:", metaPath);
6020
+ const rawMeta = await fileService.read(metaPath);
6021
+ let fields = [];
6022
+ let relations = {};
6023
+ if (rawMeta) {
6024
+ console.log("\u{1F504} Parsing meta...");
6025
+ const parsedMeta = await spawnParseWorker(rawMeta);
6026
+ fields = parsedMeta?.fields ?? [];
6027
+ relations = parsedMeta?.relations ?? {};
6028
+ console.log("\u2705 Meta parsed");
6029
+ }
6030
+ result[modelName] = {
6031
+ data,
6032
+ fields,
6033
+ relations
6034
+ };
6001
6035
  }
6002
- result[modelName] = {
6003
- data,
6004
- fields,
6005
- relations
6006
- };
6036
+ console.log("\u2705 loadData COMPLETE:", Object.keys(result));
6037
+ return result;
6038
+ } catch (error) {
6039
+ console.error("\u274C loadData ERROR:", error);
6040
+ throw error;
6007
6041
  }
6008
- return result;
6009
6042
  }
6010
6043
 
6011
6044
  // src/services/pos-service/load-data-pos-session.ts
6012
6045
  var loadDataPosSessionService = (env) => {
6013
6046
  const isLocalMode = env?.isLocalMode;
6014
6047
  const loadDataPosSession = useCallback32(
6015
- ({
6048
+ async ({
6016
6049
  model,
6017
6050
  ids,
6018
6051
  xNode,
@@ -6023,7 +6056,9 @@ var loadDataPosSessionService = (env) => {
6023
6056
  }) => {
6024
6057
  console.log("isLocalMode", isLocalMode);
6025
6058
  if (isLocalMode) {
6026
- return loadData;
6059
+ const data = await loadData();
6060
+ console.log("\u2705 loadData resolved:", data);
6061
+ return data;
6027
6062
  }
6028
6063
  const jsonData = {
6029
6064
  model,
package/dist/provider.js CHANGED
@@ -2316,9 +2316,9 @@ function applyBinaryOp(ast, context) {
2316
2316
  var DICT = {
2317
2317
  get(...args) {
2318
2318
  const { key, defValue } = parseArgs(args, ["key", "defValue"]);
2319
- const self2 = this;
2320
- if (key in self2) {
2321
- return self2[key];
2319
+ const self = this;
2320
+ if (key in self) {
2321
+ return self[key];
2322
2322
  } else if (defValue !== void 0) {
2323
2323
  return defValue;
2324
2324
  }
@@ -6024,26 +6024,30 @@ var fileService = {
6024
6024
  };
6025
6025
 
6026
6026
  // src/services/filesystem-service/json-worker.ts
6027
- var import_meta = {};
6028
- self.addEventListener("message", async (ev) => {
6029
- const { id, cmd, payload } = ev.data;
6030
- try {
6031
- if (cmd === "parse") {
6032
- const parsed = JSON.parse(payload);
6033
- self.postMessage({ id, ok: true, result: parsed });
6034
- } else if (cmd === "stringify") {
6035
- const str = JSON.stringify(payload);
6036
- self.postMessage({ id, ok: true, result: str });
6037
- }
6038
- } catch (err) {
6039
- self.postMessage({ id, ok: false, error: err?.message || String(err) });
6040
- }
6041
- });
6027
+ function createWorkerBlob() {
6028
+ const workerCode = `
6029
+ self.addEventListener("message", async (ev) => {
6030
+ const { id, cmd, payload } = ev.data;
6031
+ try {
6032
+ if (cmd === "parse") {
6033
+ const parsed = JSON.parse(payload);
6034
+ self.postMessage({ id, ok: true, result: parsed });
6035
+ } else if (cmd === "stringify") {
6036
+ const str = JSON.stringify(payload);
6037
+ self.postMessage({ id, ok: true, result: str });
6038
+ }
6039
+ } catch (err) {
6040
+ self.postMessage({ id, ok: false, error: err?.message || String(err) });
6041
+ }
6042
+ });
6043
+ `;
6044
+ const blob = new Blob([workerCode], { type: "application/javascript" });
6045
+ return URL.createObjectURL(blob);
6046
+ }
6042
6047
  function spawnParseWorker(raw) {
6043
6048
  return new Promise((resolve, reject) => {
6044
- const worker = new Worker(new URL("./json-worker.ts", import_meta.url), {
6045
- type: "module"
6046
- });
6049
+ const workerUrl = createWorkerBlob();
6050
+ const worker = new Worker(workerUrl);
6047
6051
  const id = Math.random().toString(36).slice(2);
6048
6052
  worker.onmessage = (ev) => {
6049
6053
  const { ok, result, error } = ev.data;
@@ -6052,6 +6056,12 @@ function spawnParseWorker(raw) {
6052
6056
  } else {
6053
6057
  reject(new Error(error));
6054
6058
  }
6059
+ URL.revokeObjectURL(workerUrl);
6060
+ worker.terminate();
6061
+ };
6062
+ worker.onerror = (err) => {
6063
+ reject(err);
6064
+ URL.revokeObjectURL(workerUrl);
6055
6065
  worker.terminate();
6056
6066
  };
6057
6067
  worker.postMessage({ id, cmd: "parse", payload: raw });
@@ -6059,13 +6069,18 @@ function spawnParseWorker(raw) {
6059
6069
  }
6060
6070
  function spawnStringifyWorker(obj) {
6061
6071
  return new Promise((resolve, reject) => {
6062
- const worker = new Worker(new URL("./json-worker.ts", import_meta.url), {
6063
- type: "module"
6064
- });
6072
+ const workerUrl = createWorkerBlob();
6073
+ const worker = new Worker(workerUrl);
6065
6074
  worker.onmessage = (ev) => {
6066
6075
  const { ok, result, error } = ev.data;
6067
6076
  if (ok) resolve(result);
6068
6077
  else reject(new Error(error));
6078
+ URL.revokeObjectURL(workerUrl);
6079
+ worker.terminate();
6080
+ };
6081
+ worker.onerror = (err) => {
6082
+ reject(err);
6083
+ URL.revokeObjectURL(workerUrl);
6069
6084
  worker.terminate();
6070
6085
  };
6071
6086
  worker.postMessage({ cmd: "stringify", payload: obj });
@@ -6100,50 +6115,67 @@ var memoryCache = new MemoryCache();
6100
6115
  var MODELS_DIR = "pos/models";
6101
6116
  var MODELS_META_DIR = "pos/models_meta";
6102
6117
  async function loadData(includeMeta = true) {
6103
- const listResult = await fileService.list(MODELS_DIR);
6104
- if (!listResult || !Array.isArray(listResult.files)) {
6105
- return {};
6106
- }
6107
- const result = {};
6108
- for (const file of listResult.files) {
6109
- if (file.type !== "file") continue;
6110
- if (!file.name.endsWith(".json")) continue;
6111
- const fileName = file.name;
6112
- const modelName = fileName.replace(/\.json$/, "");
6113
- const dataPath = `${MODELS_DIR}/${fileName}`;
6114
- const metaPath = `${MODELS_META_DIR}/${encodeURIComponent(
6115
- modelName
6116
- )}.meta.json`;
6117
- const rawData = await fileService.read(dataPath);
6118
- if (!rawData) continue;
6119
- const parsedData = await spawnParseWorker(rawData);
6120
- const data = Array.isArray(parsedData) ? parsedData : [];
6121
- if (!includeMeta) {
6122
- result[modelName] = { data };
6123
- continue;
6118
+ console.log("\u{1F50D} loadData START");
6119
+ try {
6120
+ const listResult = await fileService.list(MODELS_DIR);
6121
+ console.log("\u{1F4CB} listResult:", listResult);
6122
+ if (!listResult || !Array.isArray(listResult.files)) {
6123
+ console.log("\u26A0\uFE0F No files found");
6124
+ return {};
6124
6125
  }
6125
- const rawMeta = await fileService.read(metaPath);
6126
- let fields = [];
6127
- let relations = {};
6128
- if (rawMeta) {
6129
- const parsedMeta = await spawnParseWorker(rawMeta);
6130
- fields = parsedMeta?.fields ?? [];
6131
- relations = parsedMeta?.relations ?? {};
6126
+ const result = {};
6127
+ for (const file of listResult.files) {
6128
+ console.log("\u{1F4C4} Processing file:", file.name);
6129
+ if (file.type !== "file") continue;
6130
+ if (!file.name.endsWith(".json")) continue;
6131
+ const fileName = file.name;
6132
+ const modelName = fileName.replace(/\.json$/, "");
6133
+ const dataPath = `${MODELS_DIR}/${fileName}`;
6134
+ console.log("\u{1F4C2} Reading data from:", dataPath);
6135
+ const rawData = await fileService.read(dataPath);
6136
+ console.log("\u2705 Data read, length:", rawData?.length);
6137
+ if (!rawData) continue;
6138
+ console.log("\u{1F504} Parsing data...");
6139
+ const parsedData = await spawnParseWorker(rawData);
6140
+ console.log("\u2705 Data parsed");
6141
+ const data = Array.isArray(parsedData) ? parsedData : [];
6142
+ if (!includeMeta) {
6143
+ result[modelName] = { data };
6144
+ continue;
6145
+ }
6146
+ const metaPath = `${MODELS_META_DIR}/${encodeURIComponent(
6147
+ modelName
6148
+ )}.meta.json`;
6149
+ console.log("\u{1F4C2} Reading meta from:", metaPath);
6150
+ const rawMeta = await fileService.read(metaPath);
6151
+ let fields = [];
6152
+ let relations = {};
6153
+ if (rawMeta) {
6154
+ console.log("\u{1F504} Parsing meta...");
6155
+ const parsedMeta = await spawnParseWorker(rawMeta);
6156
+ fields = parsedMeta?.fields ?? [];
6157
+ relations = parsedMeta?.relations ?? {};
6158
+ console.log("\u2705 Meta parsed");
6159
+ }
6160
+ result[modelName] = {
6161
+ data,
6162
+ fields,
6163
+ relations
6164
+ };
6132
6165
  }
6133
- result[modelName] = {
6134
- data,
6135
- fields,
6136
- relations
6137
- };
6166
+ console.log("\u2705 loadData COMPLETE:", Object.keys(result));
6167
+ return result;
6168
+ } catch (error) {
6169
+ console.error("\u274C loadData ERROR:", error);
6170
+ throw error;
6138
6171
  }
6139
- return result;
6140
6172
  }
6141
6173
 
6142
6174
  // src/services/pos-service/load-data-pos-session.ts
6143
6175
  var loadDataPosSessionService = (env) => {
6144
6176
  const isLocalMode = env?.isLocalMode;
6145
6177
  const loadDataPosSession = (0, import_react33.useCallback)(
6146
- ({
6178
+ async ({
6147
6179
  model,
6148
6180
  ids,
6149
6181
  xNode,
@@ -6154,7 +6186,9 @@ var loadDataPosSessionService = (env) => {
6154
6186
  }) => {
6155
6187
  console.log("isLocalMode", isLocalMode);
6156
6188
  if (isLocalMode) {
6157
- return loadData;
6189
+ const data = await loadData();
6190
+ console.log("\u2705 loadData resolved:", data);
6191
+ return data;
6158
6192
  }
6159
6193
  const jsonData = {
6160
6194
  model,
package/dist/provider.mjs CHANGED
@@ -2273,9 +2273,9 @@ function applyBinaryOp(ast, context) {
2273
2273
  var DICT = {
2274
2274
  get(...args) {
2275
2275
  const { key, defValue } = parseArgs(args, ["key", "defValue"]);
2276
- const self2 = this;
2277
- if (key in self2) {
2278
- return self2[key];
2276
+ const self = this;
2277
+ if (key in self) {
2278
+ return self[key];
2279
2279
  } else if (defValue !== void 0) {
2280
2280
  return defValue;
2281
2281
  }
@@ -5981,25 +5981,30 @@ var fileService = {
5981
5981
  };
5982
5982
 
5983
5983
  // src/services/filesystem-service/json-worker.ts
5984
- self.addEventListener("message", async (ev) => {
5985
- const { id, cmd, payload } = ev.data;
5986
- try {
5987
- if (cmd === "parse") {
5988
- const parsed = JSON.parse(payload);
5989
- self.postMessage({ id, ok: true, result: parsed });
5990
- } else if (cmd === "stringify") {
5991
- const str = JSON.stringify(payload);
5992
- self.postMessage({ id, ok: true, result: str });
5993
- }
5994
- } catch (err) {
5995
- self.postMessage({ id, ok: false, error: err?.message || String(err) });
5996
- }
5997
- });
5984
+ function createWorkerBlob() {
5985
+ const workerCode = `
5986
+ self.addEventListener("message", async (ev) => {
5987
+ const { id, cmd, payload } = ev.data;
5988
+ try {
5989
+ if (cmd === "parse") {
5990
+ const parsed = JSON.parse(payload);
5991
+ self.postMessage({ id, ok: true, result: parsed });
5992
+ } else if (cmd === "stringify") {
5993
+ const str = JSON.stringify(payload);
5994
+ self.postMessage({ id, ok: true, result: str });
5995
+ }
5996
+ } catch (err) {
5997
+ self.postMessage({ id, ok: false, error: err?.message || String(err) });
5998
+ }
5999
+ });
6000
+ `;
6001
+ const blob = new Blob([workerCode], { type: "application/javascript" });
6002
+ return URL.createObjectURL(blob);
6003
+ }
5998
6004
  function spawnParseWorker(raw) {
5999
6005
  return new Promise((resolve, reject) => {
6000
- const worker = new Worker(new URL("./json-worker.ts", import.meta.url), {
6001
- type: "module"
6002
- });
6006
+ const workerUrl = createWorkerBlob();
6007
+ const worker = new Worker(workerUrl);
6003
6008
  const id = Math.random().toString(36).slice(2);
6004
6009
  worker.onmessage = (ev) => {
6005
6010
  const { ok, result, error } = ev.data;
@@ -6008,6 +6013,12 @@ function spawnParseWorker(raw) {
6008
6013
  } else {
6009
6014
  reject(new Error(error));
6010
6015
  }
6016
+ URL.revokeObjectURL(workerUrl);
6017
+ worker.terminate();
6018
+ };
6019
+ worker.onerror = (err) => {
6020
+ reject(err);
6021
+ URL.revokeObjectURL(workerUrl);
6011
6022
  worker.terminate();
6012
6023
  };
6013
6024
  worker.postMessage({ id, cmd: "parse", payload: raw });
@@ -6015,13 +6026,18 @@ function spawnParseWorker(raw) {
6015
6026
  }
6016
6027
  function spawnStringifyWorker(obj) {
6017
6028
  return new Promise((resolve, reject) => {
6018
- const worker = new Worker(new URL("./json-worker.ts", import.meta.url), {
6019
- type: "module"
6020
- });
6029
+ const workerUrl = createWorkerBlob();
6030
+ const worker = new Worker(workerUrl);
6021
6031
  worker.onmessage = (ev) => {
6022
6032
  const { ok, result, error } = ev.data;
6023
6033
  if (ok) resolve(result);
6024
6034
  else reject(new Error(error));
6035
+ URL.revokeObjectURL(workerUrl);
6036
+ worker.terminate();
6037
+ };
6038
+ worker.onerror = (err) => {
6039
+ reject(err);
6040
+ URL.revokeObjectURL(workerUrl);
6025
6041
  worker.terminate();
6026
6042
  };
6027
6043
  worker.postMessage({ cmd: "stringify", payload: obj });
@@ -6056,50 +6072,67 @@ var memoryCache = new MemoryCache();
6056
6072
  var MODELS_DIR = "pos/models";
6057
6073
  var MODELS_META_DIR = "pos/models_meta";
6058
6074
  async function loadData(includeMeta = true) {
6059
- const listResult = await fileService.list(MODELS_DIR);
6060
- if (!listResult || !Array.isArray(listResult.files)) {
6061
- return {};
6062
- }
6063
- const result = {};
6064
- for (const file of listResult.files) {
6065
- if (file.type !== "file") continue;
6066
- if (!file.name.endsWith(".json")) continue;
6067
- const fileName = file.name;
6068
- const modelName = fileName.replace(/\.json$/, "");
6069
- const dataPath = `${MODELS_DIR}/${fileName}`;
6070
- const metaPath = `${MODELS_META_DIR}/${encodeURIComponent(
6071
- modelName
6072
- )}.meta.json`;
6073
- const rawData = await fileService.read(dataPath);
6074
- if (!rawData) continue;
6075
- const parsedData = await spawnParseWorker(rawData);
6076
- const data = Array.isArray(parsedData) ? parsedData : [];
6077
- if (!includeMeta) {
6078
- result[modelName] = { data };
6079
- continue;
6075
+ console.log("\u{1F50D} loadData START");
6076
+ try {
6077
+ const listResult = await fileService.list(MODELS_DIR);
6078
+ console.log("\u{1F4CB} listResult:", listResult);
6079
+ if (!listResult || !Array.isArray(listResult.files)) {
6080
+ console.log("\u26A0\uFE0F No files found");
6081
+ return {};
6080
6082
  }
6081
- const rawMeta = await fileService.read(metaPath);
6082
- let fields = [];
6083
- let relations = {};
6084
- if (rawMeta) {
6085
- const parsedMeta = await spawnParseWorker(rawMeta);
6086
- fields = parsedMeta?.fields ?? [];
6087
- relations = parsedMeta?.relations ?? {};
6083
+ const result = {};
6084
+ for (const file of listResult.files) {
6085
+ console.log("\u{1F4C4} Processing file:", file.name);
6086
+ if (file.type !== "file") continue;
6087
+ if (!file.name.endsWith(".json")) continue;
6088
+ const fileName = file.name;
6089
+ const modelName = fileName.replace(/\.json$/, "");
6090
+ const dataPath = `${MODELS_DIR}/${fileName}`;
6091
+ console.log("\u{1F4C2} Reading data from:", dataPath);
6092
+ const rawData = await fileService.read(dataPath);
6093
+ console.log("\u2705 Data read, length:", rawData?.length);
6094
+ if (!rawData) continue;
6095
+ console.log("\u{1F504} Parsing data...");
6096
+ const parsedData = await spawnParseWorker(rawData);
6097
+ console.log("\u2705 Data parsed");
6098
+ const data = Array.isArray(parsedData) ? parsedData : [];
6099
+ if (!includeMeta) {
6100
+ result[modelName] = { data };
6101
+ continue;
6102
+ }
6103
+ const metaPath = `${MODELS_META_DIR}/${encodeURIComponent(
6104
+ modelName
6105
+ )}.meta.json`;
6106
+ console.log("\u{1F4C2} Reading meta from:", metaPath);
6107
+ const rawMeta = await fileService.read(metaPath);
6108
+ let fields = [];
6109
+ let relations = {};
6110
+ if (rawMeta) {
6111
+ console.log("\u{1F504} Parsing meta...");
6112
+ const parsedMeta = await spawnParseWorker(rawMeta);
6113
+ fields = parsedMeta?.fields ?? [];
6114
+ relations = parsedMeta?.relations ?? {};
6115
+ console.log("\u2705 Meta parsed");
6116
+ }
6117
+ result[modelName] = {
6118
+ data,
6119
+ fields,
6120
+ relations
6121
+ };
6088
6122
  }
6089
- result[modelName] = {
6090
- data,
6091
- fields,
6092
- relations
6093
- };
6123
+ console.log("\u2705 loadData COMPLETE:", Object.keys(result));
6124
+ return result;
6125
+ } catch (error) {
6126
+ console.error("\u274C loadData ERROR:", error);
6127
+ throw error;
6094
6128
  }
6095
- return result;
6096
6129
  }
6097
6130
 
6098
6131
  // src/services/pos-service/load-data-pos-session.ts
6099
6132
  var loadDataPosSessionService = (env) => {
6100
6133
  const isLocalMode = env?.isLocalMode;
6101
6134
  const loadDataPosSession = useCallback31(
6102
- ({
6135
+ async ({
6103
6136
  model,
6104
6137
  ids,
6105
6138
  xNode,
@@ -6110,7 +6143,9 @@ var loadDataPosSessionService = (env) => {
6110
6143
  }) => {
6111
6144
  console.log("isLocalMode", isLocalMode);
6112
6145
  if (isLocalMode) {
6113
- return loadData;
6146
+ const data = await loadData();
6147
+ console.log("\u2705 loadData resolved:", data);
6148
+ return data;
6114
6149
  }
6115
6150
  const jsonData = {
6116
6151
  model,
@@ -540,7 +540,7 @@ declare const serviceFactories: readonly [(env: any) => {
540
540
  withContext?: any;
541
541
  modelsToLoad?: any;
542
542
  searchParams?: Record<string, string | number | boolean>;
543
- }) => any;
543
+ }) => Promise<any>;
544
544
  }, (env: any) => {
545
545
  manageOnChange: ({ model, ids, args, xNode, service, }: {
546
546
  model: string;
@@ -540,7 +540,7 @@ declare const serviceFactories: readonly [(env: any) => {
540
540
  withContext?: any;
541
541
  modelsToLoad?: any;
542
542
  searchParams?: Record<string, string | number | boolean>;
543
- }) => any;
543
+ }) => Promise<any>;
544
544
  }, (env: any) => {
545
545
  manageOnChange: ({ model, ids, args, xNode, service, }: {
546
546
  model: string;
package/dist/services.js CHANGED
@@ -1653,9 +1653,9 @@ function applyBinaryOp(ast, context) {
1653
1653
  var DICT = {
1654
1654
  get(...args) {
1655
1655
  const { key, defValue } = parseArgs(args, ["key", "defValue"]);
1656
- const self2 = this;
1657
- if (key in self2) {
1658
- return self2[key];
1656
+ const self = this;
1657
+ if (key in self) {
1658
+ return self[key];
1659
1659
  } else if (defValue !== void 0) {
1660
1660
  return defValue;
1661
1661
  }
@@ -4004,26 +4004,30 @@ var fileService = {
4004
4004
  };
4005
4005
 
4006
4006
  // src/services/filesystem-service/json-worker.ts
4007
- var import_meta = {};
4008
- self.addEventListener("message", async (ev) => {
4009
- const { id, cmd, payload } = ev.data;
4010
- try {
4011
- if (cmd === "parse") {
4012
- const parsed = JSON.parse(payload);
4013
- self.postMessage({ id, ok: true, result: parsed });
4014
- } else if (cmd === "stringify") {
4015
- const str = JSON.stringify(payload);
4016
- self.postMessage({ id, ok: true, result: str });
4017
- }
4018
- } catch (err) {
4019
- self.postMessage({ id, ok: false, error: err?.message || String(err) });
4020
- }
4021
- });
4007
+ function createWorkerBlob() {
4008
+ const workerCode = `
4009
+ self.addEventListener("message", async (ev) => {
4010
+ const { id, cmd, payload } = ev.data;
4011
+ try {
4012
+ if (cmd === "parse") {
4013
+ const parsed = JSON.parse(payload);
4014
+ self.postMessage({ id, ok: true, result: parsed });
4015
+ } else if (cmd === "stringify") {
4016
+ const str = JSON.stringify(payload);
4017
+ self.postMessage({ id, ok: true, result: str });
4018
+ }
4019
+ } catch (err) {
4020
+ self.postMessage({ id, ok: false, error: err?.message || String(err) });
4021
+ }
4022
+ });
4023
+ `;
4024
+ const blob = new Blob([workerCode], { type: "application/javascript" });
4025
+ return URL.createObjectURL(blob);
4026
+ }
4022
4027
  function spawnParseWorker(raw) {
4023
4028
  return new Promise((resolve, reject) => {
4024
- const worker = new Worker(new URL("./json-worker.ts", import_meta.url), {
4025
- type: "module"
4026
- });
4029
+ const workerUrl = createWorkerBlob();
4030
+ const worker = new Worker(workerUrl);
4027
4031
  const id = Math.random().toString(36).slice(2);
4028
4032
  worker.onmessage = (ev) => {
4029
4033
  const { ok, result, error } = ev.data;
@@ -4032,6 +4036,12 @@ function spawnParseWorker(raw) {
4032
4036
  } else {
4033
4037
  reject(new Error(error));
4034
4038
  }
4039
+ URL.revokeObjectURL(workerUrl);
4040
+ worker.terminate();
4041
+ };
4042
+ worker.onerror = (err) => {
4043
+ reject(err);
4044
+ URL.revokeObjectURL(workerUrl);
4035
4045
  worker.terminate();
4036
4046
  };
4037
4047
  worker.postMessage({ id, cmd: "parse", payload: raw });
@@ -4039,13 +4049,18 @@ function spawnParseWorker(raw) {
4039
4049
  }
4040
4050
  function spawnStringifyWorker(obj) {
4041
4051
  return new Promise((resolve, reject) => {
4042
- const worker = new Worker(new URL("./json-worker.ts", import_meta.url), {
4043
- type: "module"
4044
- });
4052
+ const workerUrl = createWorkerBlob();
4053
+ const worker = new Worker(workerUrl);
4045
4054
  worker.onmessage = (ev) => {
4046
4055
  const { ok, result, error } = ev.data;
4047
4056
  if (ok) resolve(result);
4048
4057
  else reject(new Error(error));
4058
+ URL.revokeObjectURL(workerUrl);
4059
+ worker.terminate();
4060
+ };
4061
+ worker.onerror = (err) => {
4062
+ reject(err);
4063
+ URL.revokeObjectURL(workerUrl);
4049
4064
  worker.terminate();
4050
4065
  };
4051
4066
  worker.postMessage({ cmd: "stringify", payload: obj });
@@ -4080,50 +4095,67 @@ var memoryCache = new MemoryCache();
4080
4095
  var MODELS_DIR = "pos/models";
4081
4096
  var MODELS_META_DIR = "pos/models_meta";
4082
4097
  async function loadData(includeMeta = true) {
4083
- const listResult = await fileService.list(MODELS_DIR);
4084
- if (!listResult || !Array.isArray(listResult.files)) {
4085
- return {};
4086
- }
4087
- const result = {};
4088
- for (const file of listResult.files) {
4089
- if (file.type !== "file") continue;
4090
- if (!file.name.endsWith(".json")) continue;
4091
- const fileName = file.name;
4092
- const modelName = fileName.replace(/\.json$/, "");
4093
- const dataPath = `${MODELS_DIR}/${fileName}`;
4094
- const metaPath = `${MODELS_META_DIR}/${encodeURIComponent(
4095
- modelName
4096
- )}.meta.json`;
4097
- const rawData = await fileService.read(dataPath);
4098
- if (!rawData) continue;
4099
- const parsedData = await spawnParseWorker(rawData);
4100
- const data = Array.isArray(parsedData) ? parsedData : [];
4101
- if (!includeMeta) {
4102
- result[modelName] = { data };
4103
- continue;
4098
+ console.log("\u{1F50D} loadData START");
4099
+ try {
4100
+ const listResult = await fileService.list(MODELS_DIR);
4101
+ console.log("\u{1F4CB} listResult:", listResult);
4102
+ if (!listResult || !Array.isArray(listResult.files)) {
4103
+ console.log("\u26A0\uFE0F No files found");
4104
+ return {};
4104
4105
  }
4105
- const rawMeta = await fileService.read(metaPath);
4106
- let fields = [];
4107
- let relations = {};
4108
- if (rawMeta) {
4109
- const parsedMeta = await spawnParseWorker(rawMeta);
4110
- fields = parsedMeta?.fields ?? [];
4111
- relations = parsedMeta?.relations ?? {};
4106
+ const result = {};
4107
+ for (const file of listResult.files) {
4108
+ console.log("\u{1F4C4} Processing file:", file.name);
4109
+ if (file.type !== "file") continue;
4110
+ if (!file.name.endsWith(".json")) continue;
4111
+ const fileName = file.name;
4112
+ const modelName = fileName.replace(/\.json$/, "");
4113
+ const dataPath = `${MODELS_DIR}/${fileName}`;
4114
+ console.log("\u{1F4C2} Reading data from:", dataPath);
4115
+ const rawData = await fileService.read(dataPath);
4116
+ console.log("\u2705 Data read, length:", rawData?.length);
4117
+ if (!rawData) continue;
4118
+ console.log("\u{1F504} Parsing data...");
4119
+ const parsedData = await spawnParseWorker(rawData);
4120
+ console.log("\u2705 Data parsed");
4121
+ const data = Array.isArray(parsedData) ? parsedData : [];
4122
+ if (!includeMeta) {
4123
+ result[modelName] = { data };
4124
+ continue;
4125
+ }
4126
+ const metaPath = `${MODELS_META_DIR}/${encodeURIComponent(
4127
+ modelName
4128
+ )}.meta.json`;
4129
+ console.log("\u{1F4C2} Reading meta from:", metaPath);
4130
+ const rawMeta = await fileService.read(metaPath);
4131
+ let fields = [];
4132
+ let relations = {};
4133
+ if (rawMeta) {
4134
+ console.log("\u{1F504} Parsing meta...");
4135
+ const parsedMeta = await spawnParseWorker(rawMeta);
4136
+ fields = parsedMeta?.fields ?? [];
4137
+ relations = parsedMeta?.relations ?? {};
4138
+ console.log("\u2705 Meta parsed");
4139
+ }
4140
+ result[modelName] = {
4141
+ data,
4142
+ fields,
4143
+ relations
4144
+ };
4112
4145
  }
4113
- result[modelName] = {
4114
- data,
4115
- fields,
4116
- relations
4117
- };
4146
+ console.log("\u2705 loadData COMPLETE:", Object.keys(result));
4147
+ return result;
4148
+ } catch (error) {
4149
+ console.error("\u274C loadData ERROR:", error);
4150
+ throw error;
4118
4151
  }
4119
- return result;
4120
4152
  }
4121
4153
 
4122
4154
  // src/services/pos-service/load-data-pos-session.ts
4123
4155
  var loadDataPosSessionService = (env) => {
4124
4156
  const isLocalMode = env?.isLocalMode;
4125
4157
  const loadDataPosSession = (0, import_react26.useCallback)(
4126
- ({
4158
+ async ({
4127
4159
  model,
4128
4160
  ids,
4129
4161
  xNode,
@@ -4134,7 +4166,9 @@ var loadDataPosSessionService = (env) => {
4134
4166
  }) => {
4135
4167
  console.log("isLocalMode", isLocalMode);
4136
4168
  if (isLocalMode) {
4137
- return loadData;
4169
+ const data = await loadData();
4170
+ console.log("\u2705 loadData resolved:", data);
4171
+ return data;
4138
4172
  }
4139
4173
  const jsonData = {
4140
4174
  model,
package/dist/services.mjs CHANGED
@@ -1606,9 +1606,9 @@ function applyBinaryOp(ast, context) {
1606
1606
  var DICT = {
1607
1607
  get(...args) {
1608
1608
  const { key, defValue } = parseArgs(args, ["key", "defValue"]);
1609
- const self2 = this;
1610
- if (key in self2) {
1611
- return self2[key];
1609
+ const self = this;
1610
+ if (key in self) {
1611
+ return self[key];
1612
1612
  } else if (defValue !== void 0) {
1613
1613
  return defValue;
1614
1614
  }
@@ -3957,25 +3957,30 @@ var fileService = {
3957
3957
  };
3958
3958
 
3959
3959
  // src/services/filesystem-service/json-worker.ts
3960
- self.addEventListener("message", async (ev) => {
3961
- const { id, cmd, payload } = ev.data;
3962
- try {
3963
- if (cmd === "parse") {
3964
- const parsed = JSON.parse(payload);
3965
- self.postMessage({ id, ok: true, result: parsed });
3966
- } else if (cmd === "stringify") {
3967
- const str = JSON.stringify(payload);
3968
- self.postMessage({ id, ok: true, result: str });
3969
- }
3970
- } catch (err) {
3971
- self.postMessage({ id, ok: false, error: err?.message || String(err) });
3972
- }
3973
- });
3960
+ function createWorkerBlob() {
3961
+ const workerCode = `
3962
+ self.addEventListener("message", async (ev) => {
3963
+ const { id, cmd, payload } = ev.data;
3964
+ try {
3965
+ if (cmd === "parse") {
3966
+ const parsed = JSON.parse(payload);
3967
+ self.postMessage({ id, ok: true, result: parsed });
3968
+ } else if (cmd === "stringify") {
3969
+ const str = JSON.stringify(payload);
3970
+ self.postMessage({ id, ok: true, result: str });
3971
+ }
3972
+ } catch (err) {
3973
+ self.postMessage({ id, ok: false, error: err?.message || String(err) });
3974
+ }
3975
+ });
3976
+ `;
3977
+ const blob = new Blob([workerCode], { type: "application/javascript" });
3978
+ return URL.createObjectURL(blob);
3979
+ }
3974
3980
  function spawnParseWorker(raw) {
3975
3981
  return new Promise((resolve, reject) => {
3976
- const worker = new Worker(new URL("./json-worker.ts", import.meta.url), {
3977
- type: "module"
3978
- });
3982
+ const workerUrl = createWorkerBlob();
3983
+ const worker = new Worker(workerUrl);
3979
3984
  const id = Math.random().toString(36).slice(2);
3980
3985
  worker.onmessage = (ev) => {
3981
3986
  const { ok, result, error } = ev.data;
@@ -3984,6 +3989,12 @@ function spawnParseWorker(raw) {
3984
3989
  } else {
3985
3990
  reject(new Error(error));
3986
3991
  }
3992
+ URL.revokeObjectURL(workerUrl);
3993
+ worker.terminate();
3994
+ };
3995
+ worker.onerror = (err) => {
3996
+ reject(err);
3997
+ URL.revokeObjectURL(workerUrl);
3987
3998
  worker.terminate();
3988
3999
  };
3989
4000
  worker.postMessage({ id, cmd: "parse", payload: raw });
@@ -3991,13 +4002,18 @@ function spawnParseWorker(raw) {
3991
4002
  }
3992
4003
  function spawnStringifyWorker(obj) {
3993
4004
  return new Promise((resolve, reject) => {
3994
- const worker = new Worker(new URL("./json-worker.ts", import.meta.url), {
3995
- type: "module"
3996
- });
4005
+ const workerUrl = createWorkerBlob();
4006
+ const worker = new Worker(workerUrl);
3997
4007
  worker.onmessage = (ev) => {
3998
4008
  const { ok, result, error } = ev.data;
3999
4009
  if (ok) resolve(result);
4000
4010
  else reject(new Error(error));
4011
+ URL.revokeObjectURL(workerUrl);
4012
+ worker.terminate();
4013
+ };
4014
+ worker.onerror = (err) => {
4015
+ reject(err);
4016
+ URL.revokeObjectURL(workerUrl);
4001
4017
  worker.terminate();
4002
4018
  };
4003
4019
  worker.postMessage({ cmd: "stringify", payload: obj });
@@ -4032,50 +4048,67 @@ var memoryCache = new MemoryCache();
4032
4048
  var MODELS_DIR = "pos/models";
4033
4049
  var MODELS_META_DIR = "pos/models_meta";
4034
4050
  async function loadData(includeMeta = true) {
4035
- const listResult = await fileService.list(MODELS_DIR);
4036
- if (!listResult || !Array.isArray(listResult.files)) {
4037
- return {};
4038
- }
4039
- const result = {};
4040
- for (const file of listResult.files) {
4041
- if (file.type !== "file") continue;
4042
- if (!file.name.endsWith(".json")) continue;
4043
- const fileName = file.name;
4044
- const modelName = fileName.replace(/\.json$/, "");
4045
- const dataPath = `${MODELS_DIR}/${fileName}`;
4046
- const metaPath = `${MODELS_META_DIR}/${encodeURIComponent(
4047
- modelName
4048
- )}.meta.json`;
4049
- const rawData = await fileService.read(dataPath);
4050
- if (!rawData) continue;
4051
- const parsedData = await spawnParseWorker(rawData);
4052
- const data = Array.isArray(parsedData) ? parsedData : [];
4053
- if (!includeMeta) {
4054
- result[modelName] = { data };
4055
- continue;
4051
+ console.log("\u{1F50D} loadData START");
4052
+ try {
4053
+ const listResult = await fileService.list(MODELS_DIR);
4054
+ console.log("\u{1F4CB} listResult:", listResult);
4055
+ if (!listResult || !Array.isArray(listResult.files)) {
4056
+ console.log("\u26A0\uFE0F No files found");
4057
+ return {};
4056
4058
  }
4057
- const rawMeta = await fileService.read(metaPath);
4058
- let fields = [];
4059
- let relations = {};
4060
- if (rawMeta) {
4061
- const parsedMeta = await spawnParseWorker(rawMeta);
4062
- fields = parsedMeta?.fields ?? [];
4063
- relations = parsedMeta?.relations ?? {};
4059
+ const result = {};
4060
+ for (const file of listResult.files) {
4061
+ console.log("\u{1F4C4} Processing file:", file.name);
4062
+ if (file.type !== "file") continue;
4063
+ if (!file.name.endsWith(".json")) continue;
4064
+ const fileName = file.name;
4065
+ const modelName = fileName.replace(/\.json$/, "");
4066
+ const dataPath = `${MODELS_DIR}/${fileName}`;
4067
+ console.log("\u{1F4C2} Reading data from:", dataPath);
4068
+ const rawData = await fileService.read(dataPath);
4069
+ console.log("\u2705 Data read, length:", rawData?.length);
4070
+ if (!rawData) continue;
4071
+ console.log("\u{1F504} Parsing data...");
4072
+ const parsedData = await spawnParseWorker(rawData);
4073
+ console.log("\u2705 Data parsed");
4074
+ const data = Array.isArray(parsedData) ? parsedData : [];
4075
+ if (!includeMeta) {
4076
+ result[modelName] = { data };
4077
+ continue;
4078
+ }
4079
+ const metaPath = `${MODELS_META_DIR}/${encodeURIComponent(
4080
+ modelName
4081
+ )}.meta.json`;
4082
+ console.log("\u{1F4C2} Reading meta from:", metaPath);
4083
+ const rawMeta = await fileService.read(metaPath);
4084
+ let fields = [];
4085
+ let relations = {};
4086
+ if (rawMeta) {
4087
+ console.log("\u{1F504} Parsing meta...");
4088
+ const parsedMeta = await spawnParseWorker(rawMeta);
4089
+ fields = parsedMeta?.fields ?? [];
4090
+ relations = parsedMeta?.relations ?? {};
4091
+ console.log("\u2705 Meta parsed");
4092
+ }
4093
+ result[modelName] = {
4094
+ data,
4095
+ fields,
4096
+ relations
4097
+ };
4064
4098
  }
4065
- result[modelName] = {
4066
- data,
4067
- fields,
4068
- relations
4069
- };
4099
+ console.log("\u2705 loadData COMPLETE:", Object.keys(result));
4100
+ return result;
4101
+ } catch (error) {
4102
+ console.error("\u274C loadData ERROR:", error);
4103
+ throw error;
4070
4104
  }
4071
- return result;
4072
4105
  }
4073
4106
 
4074
4107
  // src/services/pos-service/load-data-pos-session.ts
4075
4108
  var loadDataPosSessionService = (env) => {
4076
4109
  const isLocalMode = env?.isLocalMode;
4077
4110
  const loadDataPosSession = useCallback23(
4078
- ({
4111
+ async ({
4079
4112
  model,
4080
4113
  ids,
4081
4114
  xNode,
@@ -4086,7 +4119,9 @@ var loadDataPosSessionService = (env) => {
4086
4119
  }) => {
4087
4120
  console.log("isLocalMode", isLocalMode);
4088
4121
  if (isLocalMode) {
4089
- return loadData;
4122
+ const data = await loadData();
4123
+ console.log("\u2705 loadData resolved:", data);
4124
+ return data;
4090
4125
  }
4091
4126
  const jsonData = {
4092
4127
  model,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fctc/interface-logic",
3
- "version": "4.3.0",
3
+ "version": "4.3.2",
4
4
  "types": "dist/index.d.ts",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.mjs",