datapos-connector-file-store-emulator 0.2.280 → 0.2.288

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/README.md CHANGED
@@ -9,6 +9,14 @@
9
9
 
10
10
  A TypeScript library that implements the File Store Emulator connector. It provides easy access to a curated set of files for demonstration and evaluation purposes.
11
11
 
12
+ ## Rust WebAssembly Helpers
13
+
14
+ The connector now ships with a lightweight Rust crate located in [rust/datapos-connector-file-store-emulator-core](rust/datapos-connector-file-store-emulator-core). It is compiled to WebAssembly with `wasm-pack` so TypeScript can call native Rust logic.
15
+
16
+ - Run `npm run build:rust` (requires the [`wasm-pack` CLI](https://rustwasm.github.io/wasm-pack/installer/)) whenever you change the Rust sources. The command rebuilds the package into [rust/datapos-connector-file-store-emulator-core/pkg](rust/datapos-connector-file-store-emulator-core/pkg).
17
+ - The async wrapper in [src/rustBridge.ts](src/rustBridge.ts) lazy-loads the generated bindings and surfaces helpers like `addNumbersWithRust()` and `checksumWithRust()`.
18
+ - `FileStoreEmulatorConnector` exposes `addUsingRust()` and `versionChecksumUsingRust()` so consumers can exercise the Rust-backed functionality without dealing with low-level WebAssembly plumbing.
19
+
12
20
  ## Installation
13
21
 
14
22
  There’s no need to install this connector manually. Once released, it’s uploaded to the Data Positioning Engine cloud and becomes instantly available to all new instances of the browser app. A notification about the new version is also sent to all existing browser apps.
@@ -48,6 +56,7 @@ The following list details the repository management commands implementation by
48
56
  | -------------------- | ---------------- | --------------------------------------------------------------------------------------------------------------- |
49
57
  | audit | alt+ctrl+shift+a | Audit the project's dependencies for known security vulnerabilities. |
50
58
  | build | alt+ctrl+shift+b | Type-check, compile and minify for production. Output in '/dist' directory. |
59
+ | build:rust | | Compile the Rust helper crate to WebAssembly via `wasm-pack`. Requires the `wasm-pack` CLI in your PATH. |
51
60
  | buildConnectorConfig | | |
52
61
  | bumpVersion | alt+ctrl+shift+v | |
53
62
  | check | alt+ctrl+shift+c | List the dependencies in the project that are outdated. |
@@ -1,6 +1,6 @@
1
1
  let z;
2
2
  // @__NO_SIDE_EFFECTS__
3
- function S(t) {
3
+ function x(t) {
4
4
  return {
5
5
  lang: t?.lang ?? z?.lang,
6
6
  message: t?.message,
@@ -8,70 +8,70 @@ function S(t) {
8
8
  abortPipeEarly: t?.abortPipeEarly ?? z?.abortPipeEarly
9
9
  };
10
10
  }
11
- let _;
11
+ let k;
12
12
  // @__NO_SIDE_EFFECTS__
13
- function x(t) {
14
- return _?.get(t);
13
+ function T(t) {
14
+ return k?.get(t);
15
15
  }
16
- let T;
16
+ let O;
17
17
  // @__NO_SIDE_EFFECTS__
18
- function k(t) {
19
- return T?.get(t);
18
+ function F(t) {
19
+ return O?.get(t);
20
20
  }
21
- let O;
21
+ let U;
22
22
  // @__NO_SIDE_EFFECTS__
23
- function F(t, e) {
24
- return O?.get(t)?.get(e);
23
+ function L(t, e) {
24
+ return U?.get(t)?.get(e);
25
25
  }
26
26
  // @__NO_SIDE_EFFECTS__
27
- function E(t) {
27
+ function w(t) {
28
28
  const e = typeof t;
29
29
  return e === "string" ? `"${t}"` : e === "number" || e === "bigint" || e === "boolean" ? `${t}` : e === "object" || e === "function" ? (t && Object.getPrototypeOf(t)?.constructor?.name) ?? "null" : e;
30
30
  }
31
- function v(t, e, i, d, a) {
32
- const s = a && "input" in a ? a.input : i.value, o = a?.expected ?? t.expects ?? null, r = a?.received ?? /* @__PURE__ */ E(s), n = {
31
+ function v(t, e, i, d, s) {
32
+ const a = s && "input" in s ? s.input : i.value, o = s?.expected ?? t.expects ?? null, r = s?.received ?? /* @__PURE__ */ w(a), n = {
33
33
  kind: t.kind,
34
34
  type: t.type,
35
- input: s,
35
+ input: a,
36
36
  expected: o,
37
37
  received: r,
38
38
  message: `Invalid ${e}: ${o ? `Expected ${o} but r` : "R"}eceived ${r}`,
39
39
  requirement: t.requirement,
40
- path: a?.path,
41
- issues: a?.issues,
40
+ path: s?.path,
41
+ issues: s?.issues,
42
42
  lang: d.lang,
43
43
  abortEarly: d.abortEarly,
44
44
  abortPipeEarly: d.abortPipeEarly
45
- }, l = t.kind === "schema", y = a?.message ?? t.message ?? /* @__PURE__ */ F(t.reference, n.lang) ?? (l ? /* @__PURE__ */ k(n.lang) : null) ?? d.message ?? /* @__PURE__ */ x(n.lang);
45
+ }, l = t.kind === "schema", y = s?.message ?? t.message ?? /* @__PURE__ */ L(t.reference, n.lang) ?? (l ? /* @__PURE__ */ F(n.lang) : null) ?? d.message ?? /* @__PURE__ */ T(n.lang);
46
46
  y !== void 0 && (n.message = typeof y == "function" ? y(n) : y), l && (i.typed = !1), i.issues ? i.issues.push(n) : i.issues = [n];
47
47
  }
48
48
  // @__NO_SIDE_EFFECTS__
49
- function w(t) {
49
+ function R(t) {
50
50
  return {
51
51
  version: 1,
52
52
  vendor: "valibot",
53
53
  validate(e) {
54
- return t["~run"]({ value: e }, /* @__PURE__ */ S());
54
+ return t["~run"]({ value: e }, /* @__PURE__ */ x());
55
55
  }
56
56
  };
57
57
  }
58
58
  // @__NO_SIDE_EFFECTS__
59
- function U(t, e) {
59
+ function N(t, e) {
60
60
  const i = [...new Set(t)];
61
61
  return i.length > 1 ? `(${i.join(` ${e} `)})` : i[0] ?? "never";
62
62
  }
63
63
  // @__NO_SIDE_EFFECTS__
64
- function R(t, e) {
64
+ function P(t, e) {
65
65
  return {
66
66
  kind: "schema",
67
67
  type: "literal",
68
- reference: R,
69
- expects: /* @__PURE__ */ E(t),
68
+ reference: P,
69
+ expects: /* @__PURE__ */ w(t),
70
70
  async: !1,
71
71
  literal: t,
72
72
  message: e,
73
73
  get "~standard"() {
74
- return /* @__PURE__ */ w(this);
74
+ return /* @__PURE__ */ R(this);
75
75
  },
76
76
  "~run"(i, d) {
77
77
  return i.value === this.literal ? i.typed = !0 : v(this, "type", i, d), i;
@@ -85,33 +85,33 @@ function g(t) {
85
85
  return e;
86
86
  }
87
87
  // @__NO_SIDE_EFFECTS__
88
- function P(t, e) {
88
+ function S(t, e) {
89
89
  return {
90
90
  kind: "schema",
91
91
  type: "union",
92
- reference: P,
93
- expects: /* @__PURE__ */ U(t.map((i) => i.expects), "|"),
92
+ reference: S,
93
+ expects: /* @__PURE__ */ N(t.map((i) => i.expects), "|"),
94
94
  async: !1,
95
95
  options: t,
96
96
  message: e,
97
97
  get "~standard"() {
98
- return /* @__PURE__ */ w(this);
98
+ return /* @__PURE__ */ R(this);
99
99
  },
100
100
  "~run"(i, d) {
101
- let a, s, o;
101
+ let s, a, o;
102
102
  for (const r of this.options) {
103
103
  const n = r["~run"]({ value: i.value }, d);
104
- if (n.typed) if (n.issues) s ? s.push(n) : s = [n];
104
+ if (n.typed) if (n.issues) a ? a.push(n) : a = [n];
105
105
  else {
106
- a = n;
106
+ s = n;
107
107
  break;
108
108
  }
109
109
  else o ? o.push(n) : o = [n];
110
110
  }
111
- if (a) return a;
112
- if (s) {
113
- if (s.length === 1) return s[0];
114
- v(this, "type", i, d, { issues: /* @__PURE__ */ g(s) }), i.typed = !0;
111
+ if (s) return s;
112
+ if (a) {
113
+ if (a.length === 1) return a[0];
114
+ v(this, "type", i, d, { issues: /* @__PURE__ */ g(a) }), i.typed = !0;
115
115
  } else {
116
116
  if (o?.length === 1) return o[0];
117
117
  v(this, "type", i, d, { issues: /* @__PURE__ */ g(o) });
@@ -120,7 +120,7 @@ function P(t, e) {
120
120
  }
121
121
  };
122
122
  }
123
- const b = (t) => /* @__PURE__ */ P(t.map((e) => /* @__PURE__ */ R(e)));
123
+ const b = (t) => /* @__PURE__ */ S(t.map((e) => /* @__PURE__ */ P(e)));
124
124
  b(["amber", "green", "red", "other"]);
125
125
  b([
126
126
  "alpha",
@@ -206,25 +206,25 @@ const c = (t) => new Map(Object.entries(t));
206
206
  c({ "en-gb": "Delimited Text" }), c({ "en-gb": "Entity/Event" }), c({ "en-gb": "JSON Array" }), c({ "en-gb": "SPSS" }), c({ "en-gb": "XLS" }), c({ "en-gb": "XLSX" }), c({ "en-gb": "XML" });
207
207
  c({ "en-gb": "Newline" }), c({ "en-gb": "Carriage Return" }), c({ "en-gb": "Carriage Return/Newline" });
208
208
  c({ "en-gb": "Colon" }), c({ "en-gb": "Comma" }), c({ "en-gb": "Exclamation Mark" }), c({ "en-gb": "Record Separator" }), c({ "en-gb": "Semicolon" }), c({ "en-gb": "Space" }), c({ "en-gb": "Tab" }), c({ "en-gb": "Underscore" }), c({ "en-gb": "Unit Separator" }), c({ "en-gb": "Vertical Bar" });
209
- const L = "datapos-connector-file-store-emulator", N = { en: "File Store Emulator" }, D = { "en-gb": "Imitates a cloud-based file storage solution. It hosts a read-only set of files for demonstration, evaluation and testing purposes and is freely available to all users." }, V = null, G = "fileStore", B = { default: { authMethodId: "none", maxConnectionCount: 1 } }, q = '<svg fill="#000000" height="100%" viewBox="0 0 576 512"><path d="M320 32H64C46.33 32 32 46.33 32 64V448C32 465.7 46.33 480 64 480H296.2C305.1 491.8 317.3 502.3 329.7 511.3C326.6 511.7 323.3 512 320 512H64C28.65 512 0 483.3 0 448V64C0 28.65 28.65 0 64 0H320C355.3 0 384 28.65 384 64V198.6C372.8 201.8 362.1 206 352 211.2V64C352 46.33 337.7 32 320 32V32zM64 144C64 135.2 71.16 128 80 128H304C312.8 128 320 135.2 320 144C320 152.8 312.8 160 304 160H80C71.16 160 64 152.8 64 144zM272 224C280.8 224 288 231.2 288 240C288 248.8 280.8 256 272 256H80C71.16 256 64 248.8 64 240C64 231.2 71.16 224 80 224H272zM208 320C216.8 320 224 327.2 224 336C224 344.8 216.8 352 208 352H80C71.16 352 64 344.8 64 336C64 327.2 71.16 320 80 320H208zM476.7 324.7C482.9 318.4 493.1 318.4 499.3 324.7C505.6 330.9 505.6 341.1 499.3 347.3L427.3 419.3C421.1 425.6 410.9 425.6 404.7 419.3L364.7 379.3C358.4 373.1 358.4 362.9 364.7 356.7C370.9 350.4 381.1 350.4 387.3 356.7L416 385.4L476.7 324.7zM288 368C288 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368C576 447.5 511.5 512 432 512C352.5 512 288 447.5 288 368zM432 480C493.9 480 544 429.9 544 368C544 306.1 493.9 256 432 256C370.1 256 320 306.1 320 368C320 429.9 370.1 480 432 480z"/></svg>', H = '<svg fill="#ffffff" height="100%" viewBox="0 0 576 512"><path d="M320 32H64C46.33 32 32 46.33 32 64V448C32 465.7 46.33 480 64 480H296.2C305.1 491.8 317.3 502.3 329.7 511.3C326.6 511.7 323.3 512 320 512H64C28.65 512 0 483.3 0 448V64C0 28.65 28.65 0 64 0H320C355.3 0 384 28.65 384 64V198.6C372.8 201.8 362.1 206 352 211.2V64C352 46.33 337.7 32 320 32V32zM64 144C64 135.2 71.16 128 80 128H304C312.8 128 320 135.2 320 144C320 152.8 312.8 160 304 160H80C71.16 160 64 152.8 64 144zM272 224C280.8 224 288 231.2 288 240C288 248.8 280.8 256 272 256H80C71.16 256 64 248.8 64 240C64 231.2 71.16 224 80 224H272zM208 320C216.8 320 224 327.2 224 336C224 344.8 216.8 352 208 352H80C71.16 352 64 344.8 64 336C64 327.2 71.16 320 80 320H208zM476.7 324.7C482.9 318.4 493.1 318.4 499.3 324.7C505.6 330.9 505.6 341.1 499.3 347.3L427.3 419.3C421.1 425.6 410.9 425.6 404.7 419.3L364.7 379.3C358.4 373.1 358.4 362.9 364.7 356.7C370.9 350.4 381.1 350.4 387.3 356.7L416 385.4L476.7 324.7zM288 368C288 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368C576 447.5 511.5 512 432 512C352.5 512 288 447.5 288 368zM432 480C493.9 480 544 429.9 544 368C544 306.1 493.9 256 432 256C370.1 256 320 306.1 320 368C320 429.9 370.1 480 432 480z"/></svg>', Z = null, K = ["abortOperation", "findObject", "getReader", "listNodes", "previewObject", "retrieveRecords"], Q = null, J = "beta", X = "connector", Y = "source", W = null, $ = null, ee = null, te = "0.2.280", ie = {
210
- id: L,
211
- label: N,
212
- description: D,
213
- category: V,
214
- categoryId: G,
215
- implementations: B,
216
- icon: q,
217
- iconDark: H,
218
- lastUpdatedAt: Z,
219
- operations: K,
220
- status: Q,
221
- statusId: J,
222
- typeId: X,
223
- usageId: Y,
224
- vendorAccountURL: W,
225
- vendorDocumentationURL: $,
226
- vendorHomeURL: ee,
227
- version: te
209
+ const D = "datapos-connector-file-store-emulator", V = { en: "File Store Emulator" }, G = { "en-gb": "Imitates a cloud-based file storage solution. It hosts a read-only set of files for demonstration, evaluation and testing purposes and is freely available to all users." }, B = null, q = "fileStore", H = { default: { authMethodId: "none", maxConnectionCount: 1 } }, Z = '<svg fill="#000000" height="100%" viewBox="0 0 576 512"><path d="M320 32H64C46.33 32 32 46.33 32 64V448C32 465.7 46.33 480 64 480H296.2C305.1 491.8 317.3 502.3 329.7 511.3C326.6 511.7 323.3 512 320 512H64C28.65 512 0 483.3 0 448V64C0 28.65 28.65 0 64 0H320C355.3 0 384 28.65 384 64V198.6C372.8 201.8 362.1 206 352 211.2V64C352 46.33 337.7 32 320 32V32zM64 144C64 135.2 71.16 128 80 128H304C312.8 128 320 135.2 320 144C320 152.8 312.8 160 304 160H80C71.16 160 64 152.8 64 144zM272 224C280.8 224 288 231.2 288 240C288 248.8 280.8 256 272 256H80C71.16 256 64 248.8 64 240C64 231.2 71.16 224 80 224H272zM208 320C216.8 320 224 327.2 224 336C224 344.8 216.8 352 208 352H80C71.16 352 64 344.8 64 336C64 327.2 71.16 320 80 320H208zM476.7 324.7C482.9 318.4 493.1 318.4 499.3 324.7C505.6 330.9 505.6 341.1 499.3 347.3L427.3 419.3C421.1 425.6 410.9 425.6 404.7 419.3L364.7 379.3C358.4 373.1 358.4 362.9 364.7 356.7C370.9 350.4 381.1 350.4 387.3 356.7L416 385.4L476.7 324.7zM288 368C288 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368C576 447.5 511.5 512 432 512C352.5 512 288 447.5 288 368zM432 480C493.9 480 544 429.9 544 368C544 306.1 493.9 256 432 256C370.1 256 320 306.1 320 368C320 429.9 370.1 480 432 480z"/></svg>', K = '<svg fill="#ffffff" height="100%" viewBox="0 0 576 512"><path d="M320 32H64C46.33 32 32 46.33 32 64V448C32 465.7 46.33 480 64 480H296.2C305.1 491.8 317.3 502.3 329.7 511.3C326.6 511.7 323.3 512 320 512H64C28.65 512 0 483.3 0 448V64C0 28.65 28.65 0 64 0H320C355.3 0 384 28.65 384 64V198.6C372.8 201.8 362.1 206 352 211.2V64C352 46.33 337.7 32 320 32V32zM64 144C64 135.2 71.16 128 80 128H304C312.8 128 320 135.2 320 144C320 152.8 312.8 160 304 160H80C71.16 160 64 152.8 64 144zM272 224C280.8 224 288 231.2 288 240C288 248.8 280.8 256 272 256H80C71.16 256 64 248.8 64 240C64 231.2 71.16 224 80 224H272zM208 320C216.8 320 224 327.2 224 336C224 344.8 216.8 352 208 352H80C71.16 352 64 344.8 64 336C64 327.2 71.16 320 80 320H208zM476.7 324.7C482.9 318.4 493.1 318.4 499.3 324.7C505.6 330.9 505.6 341.1 499.3 347.3L427.3 419.3C421.1 425.6 410.9 425.6 404.7 419.3L364.7 379.3C358.4 373.1 358.4 362.9 364.7 356.7C370.9 350.4 381.1 350.4 387.3 356.7L416 385.4L476.7 324.7zM288 368C288 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368C576 447.5 511.5 512 432 512C352.5 512 288 447.5 288 368zM432 480C493.9 480 544 429.9 544 368C544 306.1 493.9 256 432 256C370.1 256 320 306.1 320 368C320 429.9 370.1 480 432 480z"/></svg>', Q = null, J = ["abortOperation", "findObject", "getReader", "listNodes", "previewObject", "retrieveRecords"], X = null, W = "beta", Y = "connector", $ = "source", ee = null, te = null, ie = null, de = "0.2.288", oe = {
210
+ id: D,
211
+ label: V,
212
+ description: G,
213
+ category: B,
214
+ categoryId: q,
215
+ implementations: H,
216
+ icon: Z,
217
+ iconDark: K,
218
+ lastUpdatedAt: Q,
219
+ operations: J,
220
+ status: X,
221
+ statusId: W,
222
+ typeId: Y,
223
+ usageId: $,
224
+ vendorAccountURL: ee,
225
+ vendorDocumentationURL: te,
226
+ vendorHomeURL: ie,
227
+ version: de
228
228
  }, M = {
229
229
  "": [{ id: "cpB45vx36UWghglh18MUS", lastModifiedAt: 17435076862165598e-4, name: "ENGAGEMENT_START_EVENTS_202405121858.csv", size: 122800, typeId: "object" }, { id: "GUIHoZJcLIFZ6B7A1bu0r", lastModifiedAt: 1743507686221789e-3, name: "PEOPLE_BIRTH_EVENTS_202405121857.csv", size: 114287, typeId: "object" }, { childCount: 3, name: "AUDATACY Interchange Format", typeId: "folder" }, { childCount: 12, name: "Formula 1", typeId: "folder" }, { childCount: 7, name: "Salesforce API", typeId: "folder" }, { childCount: 156, name: "Salesforce Extract", typeId: "folder" }, { childCount: 20, name: "SAP Employee Central Extract", typeId: "folder" }, { childCount: 7, name: "SAP SuccessFactors API", typeId: "folder" }, { childCount: 12, name: "Test Files", typeId: "folder" }],
230
230
  "/AUDATACY Interchange Format": [{ childCount: 11, name: "Coded Data", typeId: "folder" }, { childCount: 1, name: "Human Resources", typeId: "folder" }, { childCount: 1, name: "Party", typeId: "folder" }],
@@ -243,14 +243,27 @@ const L = "datapos-connector-file-store-emulator", N = { en: "File Store Emulato
243
243
  "/Test Files/Encoding": [{ id: "VDPKvgp8-hYHAyD5Lspqx", lastModifiedAt: 17435076862472607e-4, name: "big5", size: 614, typeId: "object" }, { id: "BuaHWD5GhE1tR4h50Sgjb", lastModifiedAt: 1743507686247412e-3, name: "euc-jp", size: 3919, typeId: "object" }, { id: "4zP5NrMMQKfEImM1ql9rh", lastModifiedAt: 1743507686247461e-3, name: "euc-kr", size: 2480, typeId: "object" }, { id: "4ddofaJBAo3000bUD4l_-", lastModifiedAt: 17435076862475098e-4, name: "gb18030", size: 1665, typeId: "object" }, { id: "yk7BqZOfbjw1lrOWkYMX8", lastModifiedAt: 17435076862475715e-4, name: "iso-2022-jp", size: 2924, typeId: "object" }, { id: "A52Tx9PVrjFXZAzEyska1", lastModifiedAt: 17435076862476187e-4, name: "iso-8859-2", size: 1600, typeId: "object" }, { id: "CzzBPKwpdex-8NIdpgC0b", lastModifiedAt: 1743507686247666e-3, name: "iso-8859-5", size: 1024, typeId: "object" }, { id: "6LYPo_5Ux6C7olOqf0caX", lastModifiedAt: 17435076862477134e-4, name: "iso-8859-6", size: 2241, typeId: "object" }, { id: "bfAhVWgQoJ4gK1WpgMI-O", lastModifiedAt: 1743507686247772e-3, name: "iso-8859-7", size: 1033, typeId: "object" }, { id: "94cPoDWerynVP5nYqQok5", lastModifiedAt: 17435076862478198e-4, name: "koi8-r", size: 1024, typeId: "object" }, { id: "wZP8uYiw71--vBcvc8mr-", lastModifiedAt: 17435076862478694e-4, name: "shift_jis", size: 2816, typeId: "object" }, { id: "8N1hAcknG5QTCBGAb_DgC", lastModifiedAt: 17435076862479082e-4, name: "utf-16be", size: 1334, typeId: "object" }, { id: "b0wcTK1T3jAS_FMhx74-L", lastModifiedAt: 1743507686247954e-3, name: "utf-16le", size: 1334, typeId: "object" }, { id: "Ar8QcfiznCHcGUZqvc4Xt", lastModifiedAt: 1743507686247995e-3, name: "utf-8", size: 1125, typeId: "object" }, { id: "MFdztx3Hn_W0cZ-FvJAlb", lastModifiedAt: 17435076862480386e-4, name: "windows-1250", size: 1617, typeId: "object" }, { id: "Hh7pKXC0Y-_OyT_zwSmMK", lastModifiedAt: 17435076862480842e-4, name: "windows-1251", size: 1024, typeId: "object" }, { id: "OcIEHmkSVO8lOX7srKkPn", lastModifiedAt: 1743507686248141e-3, name: "windows-1252", size: 2976, typeId: "object" }, { id: "Fr-FOrJwjhwh-RrejQG2y", lastModifiedAt: 1743507686248181e-3, name: "windows-1253", size: 1052, typeId: "object" }, { id: "fJnDU4alQlSZ4x-nojhp1", lastModifiedAt: 17435076862482227e-4, name: "windows-1254", size: 2445, typeId: "object" }, { id: "vI70VbY2bLWPSppUJ27pX", lastModifiedAt: 17435076862482617e-4, name: "windows-1255", size: 2405, typeId: "object" }, { id: "CBX69u7zo_sNZTLSXL_Ok", lastModifiedAt: 17435076862483171e-4, name: "windows-1256", size: 2241, typeId: "object" }],
244
244
  "/Test Files/Encoding Test Files": [{ id: "2TJo3wC-qs3eQ4Q1LiC4p", lastModifiedAt: 17435076862436587e-4, name: "ascii.txt", size: 44, typeId: "object" }, { id: "lrrRdBkfNLjxDpgGBJafD", lastModifiedAt: 17435076862436975e-4, name: "big5.txt", size: 37, typeId: "object" }, { id: "kcfwAkKq1bMepTQIMmX-f", lastModifiedAt: 17435076862459814e-4, name: "euc-jp.txt", size: 218, typeId: "object" }, { id: "bciRqR0P6iJyQ_vtOop3Y", lastModifiedAt: 17435076862460261e-4, name: "euc-kr.txt", size: 153, typeId: "object" }, { id: "f4Q9QEcVNnx0hSGJrhOIV", lastModifiedAt: 17435076862460706e-4, name: "gb2312.txt", size: 105, typeId: "object" }, { id: "PcztjI4G2NZOYCdLSD5kA", lastModifiedAt: 17435076862461167e-4, name: "hz-gb-2312.txt", size: 117, typeId: "object" }, { id: "lLzl7OwIayebmkDf_johR", lastModifiedAt: 17435076862461694e-4, name: "ibm855.txt", size: 290, typeId: "object" }, { id: "Mq7D4ZWQsTMRsTX7_CsvU", lastModifiedAt: 17435076862462126e-4, name: "ibm866.txt", size: 290, typeId: "object" }, { id: "We9LB0aWPrd-IODoVKoRt", lastModifiedAt: 1743507686246254e-3, name: "iso-2022-jp.txt", size: 224, typeId: "object" }, { id: "W0qTlIiYoioBujG6zw8_Y", lastModifiedAt: 17435076862462983e-4, name: "iso-2022-kr.txt", size: 198, typeId: "object" }, { id: "I6IMhKsT4Uz4wGEJvW36C", lastModifiedAt: 17435076862463481e-4, name: "iso-8859-2.txt", size: 273, typeId: "object" }, { id: "Xwkvh13qNNKRwu7jYmzjR", lastModifiedAt: 17435076862463884e-4, name: "iso-8859-5-bulgarian.txt", size: 304, typeId: "object" }, { id: "asxDjWbs34mTKaGTkbNfw", lastModifiedAt: 17435076862464302e-4, name: "iso-8859-5-russian.txt", size: 290, typeId: "object" }, { id: "kgbViYQ9OX4w5SpLdskgZ", lastModifiedAt: 17435076862464714e-4, name: "iso-8859-7.txt", size: 319, typeId: "object" }, { id: "Bq0Gn-1G5BrhTxBUOQ7DF", lastModifiedAt: 17435076862465222e-4, name: "iso-8859-8.txt", size: 307, typeId: "object" }, { id: "jCtOU9WWV8jHWMgr_Oq7r", lastModifiedAt: 17435076862465593e-4, name: "koi8-r.txt", size: 290, typeId: "object" }, { id: "--cTZDZwr5BgECFgDGIo2", lastModifiedAt: 17435076862465964e-4, name: "shift_jis.txt", size: 216, typeId: "object" }, { id: "8mdQ36gjXep2wGj_kuQHx", lastModifiedAt: 1743507686246642e-3, name: "tis-620.txt", size: 68, typeId: "object" }, { id: "5rUGdrjGK4v6hZ1qwH2KJ", lastModifiedAt: 17435076862466946e-4, name: "utf-16be.txt", size: 2, typeId: "object" }, { id: "NtUpxZ5XGC1UAa0bJU4Cd", lastModifiedAt: 17435076862467427e-4, name: "utf-16le.txt", size: 84, typeId: "object" }, { id: "djicGUE7J59cQmEz22Lw2", lastModifiedAt: 1743507686246787e-3, name: "utf-32be.txt", size: 4, typeId: "object" }, { id: "E4ewVZr3kM5JfkCNHhaHv", lastModifiedAt: 17435076862468293e-4, name: "utf-32le.txt", size: 18, typeId: "object" }, { id: "T0gS9i2pl9OCYmqJdcEx-", lastModifiedAt: 17435076862468833e-4, name: "utf-8-with-bom.txt", size: 58, typeId: "object" }, { id: "ctcPwumVXy1mYV1fht5yD", lastModifiedAt: 17435076862469265e-4, name: "utf-8-without-bom.txt", size: 58, typeId: "object" }, { id: "V0aG5TkpxwM3_Q1di66Nz", lastModifiedAt: 1743507686246975e-3, name: "windows-1251.txt", size: 290, typeId: "object" }, { id: "LSFzaM5jL_I544Ol4mErA", lastModifiedAt: 17435076862470168e-4, name: "windows-1252.txt", size: 433, typeId: "object" }, { id: "SF10JGkRZ1rVLdm5LVBrl", lastModifiedAt: 17435076862470657e-4, name: "windows-1255.txt", size: 36, typeId: "object" }, { id: "kEx_hKy6rjhn97BwN07Ip", lastModifiedAt: 1743507686247103e-3, name: "x-iso-10646-ucs-4-2143.txt", size: 20, typeId: "object" }, { id: "XFbR4pbjpQwlmlKFmRqDC", lastModifiedAt: 1743507686247142e-3, name: "x-iso-10646-ucs-4-3412.txt", size: 20, typeId: "object" }, { id: "BuqENK-iJAXc1noTneDzz", lastModifiedAt: 17435076862471843e-4, name: "x-mac-cyrillic.txt", size: 290, typeId: "object" }, { childCount: 38, name: "encodings", typeId: "folder" }],
245
245
  "/Test Files/Encoding Test Files/encodings": [{ id: "irBUQdMBx4ZhLXyti4t0W", lastModifiedAt: 1743507686243765e-3, name: "big5", size: 614, typeId: "object" }, { id: "BPyMwzoNSnGdUV_dzYEWz", lastModifiedAt: 17435076862438152e-4, name: "euc_jp", size: 3919, typeId: "object" }, { id: "FXjFtwUcRxKmH_ZCAaNz6", lastModifiedAt: 1743507686243867e-3, name: "euc_kr", size: 2480, typeId: "object" }, { id: "5fBDsObvTXORIIgptb-sl", lastModifiedAt: 17435076862439092e-4, name: "gb18030", size: 1665, typeId: "object" }, { id: "7Jt6_ku8bzWNBFjRaagdR", lastModifiedAt: 17435076862439512e-4, name: "iso2022cn", size: 1749, typeId: "object" }, { id: "WLvdjjUGMGnEv3FmDQJ9p", lastModifiedAt: 1743507686243999e-3, name: "iso2022jp", size: 2924, typeId: "object" }, { id: "6CsULI8SIvo4zwFjKAA1_", lastModifiedAt: 17435076862440513e-4, name: "iso2022kr", size: 3172, typeId: "object" }, { id: "SqbmllHEuS76me2jsWjLI", lastModifiedAt: 17435076862440952e-4, name: "iso88591_en", size: 2955, typeId: "object" }, { id: "5oCOldZaxX2XoavVBBgdc", lastModifiedAt: 1743507686244138e-3, name: "iso88592_cs", size: 1600, typeId: "object" }, { id: "UATsUFbSUtqVhVhMJ2sec", lastModifiedAt: 1743507686244182e-3, name: "iso88595_ru", size: 1024, typeId: "object" }, { id: "wC1_pjcjj0NZZWTxqiGaw", lastModifiedAt: 17435076862442336e-4, name: "iso88596_ar", size: 2241, typeId: "object" }, { id: "Pe8RK8l_zBAjLODUX34IB", lastModifiedAt: 1743507686244275e-3, name: "iso88597_el", size: 1033, typeId: "object" }, { id: "Ga6Z1yRgs99Vpa5QrR70_", lastModifiedAt: 17435076862445083e-4, name: "iso88598", size: 2352, typeId: "object" }, { id: "XmtdLSxT84HsoF7OIqye4", lastModifiedAt: 1743507686244566e-3, name: "iso88598_he", size: 2353, typeId: "object" }, { id: "3HCk8XXlua9KEOtc5iseJ", lastModifiedAt: 1743507686244627e-3, name: "iso88599_tr", size: 2424, typeId: "object" }, { id: "zjfA3EHpzaPHAvTkBICWG", lastModifiedAt: 17435076862446736e-4, name: "koi8r", size: 1024, typeId: "object" }, { id: "IRnhQiGe4mxsoQpaJCdRM", lastModifiedAt: 17435076862447236e-4, name: "lang_arabic", size: 4059, typeId: "object" }, { id: "ih-RgplBSErEYOcna-NlI", lastModifiedAt: 17435076862447717e-4, name: "lang_chinese", size: 916, typeId: "object" }, { id: "9EYQqNjgOksavPn--KH46", lastModifiedAt: 17435076862448289e-4, name: "lang_czech", size: 1795, typeId: "object" }, { id: "Xaeq_CiSthaccRyGw22Bx", lastModifiedAt: 17435076862448726e-4, name: "lang_greek", size: 1895, typeId: "object" }, { id: "421DaSaIy8ywB26Rc2GV1", lastModifiedAt: 1743507686244933e-3, name: "lang_hebrew", size: 4124, typeId: "object" }, { id: "N01Ggo186R8phM3c0zLa2", lastModifiedAt: 17435076862449873e-4, name: "lang_japanese", size: 3978, typeId: "object" }, { id: "T8jzTqgGlU30YQd1QvMm3", lastModifiedAt: 17435076862450503e-4, name: "lang_korean", size: 3466, typeId: "object" }, { id: "R-Fkzl2BW0o9Hios70WwI", lastModifiedAt: 17435076862450947e-4, name: "lang_russian", size: 1873, typeId: "object" }, { id: "KiKbYoPDMht0f9ElSfTYZ", lastModifiedAt: 1743507686245141e-3, name: "lang_turkish", size: 2678, typeId: "object" }, { id: "a_RPqwZdZ5DmZOCDUVeiZ", lastModifiedAt: 17435076862451846e-4, name: "shiftjis", size: 2816, typeId: "object" }, { id: "rXd90uYo_IZSqu9U_3Sr6", lastModifiedAt: 1743507686245242e-3, name: "utf16be", size: 1334, typeId: "object" }, { id: "83XbTcV0_WKdvcPEKeuDy", lastModifiedAt: 17435076862452773e-4, name: "utf16le", size: 1334, typeId: "object" }, { id: "Upq9-WDaQTs--Ogg1Qtev", lastModifiedAt: 17435076862453193e-4, name: "utf32be", size: 2664, typeId: "object" }, { id: "mm0RGQoiYeYc7ORPPI2S8", lastModifiedAt: 17435076862453613e-4, name: "utf32le", size: 2664, typeId: "object" }, { id: "J9FIyiit-zK4HquqAwGNE", lastModifiedAt: 17435076862454148e-4, name: "utf8", size: 1125, typeId: "object" }, { id: "pZQOaI1tOrcy2Km0Z7Enb", lastModifiedAt: 17435076862454595e-4, name: "windows_1250", size: 1617, typeId: "object" }, { id: "da-PPmwaWqLyqUz6SRw1v", lastModifiedAt: 1743507686245507e-3, name: "windows_1251", size: 1024, typeId: "object" }, { id: "aw_8vVm1CvdxaiiI3CX-L", lastModifiedAt: 17435076862456494e-4, name: "windows_1252", size: 2976, typeId: "object" }, { id: "-JYzWLdhtRIWC0vwZFj0I", lastModifiedAt: 17435076862456982e-4, name: "windows_1253", size: 1052, typeId: "object" }, { id: "ImvMAQPnb13Mf7mqB7t6m", lastModifiedAt: 17435076862458247e-4, name: "windows_1254", size: 2445, typeId: "object" }, { id: "mYnEtUyasG7Cub5f7WgsT", lastModifiedAt: 17435076862458765e-4, name: "windows_1255", size: 2405, typeId: "object" }, { id: "clQEg9g9e9QiBJcsOcKcs", lastModifiedAt: 17435076862459272e-4, name: "windows_1256", size: 2241, typeId: "object" }]
246
- }, de = "0.2.280", oe = "Connector failed to abort preview object operation.", se = "Connector failed to abort retrieve all records operation.", ae = 4096, ne = 1e3, h = "https://sample-data-eu.datapos.app";
247
- class ce {
246
+ }, se = "0.2.288";
247
+ let h;
248
+ async function _() {
249
+ return h ??= import("./datapos_connector_file_store_emulator_core-tvgNVoxR.js"), h;
250
+ }
251
+ async function ae(t, e) {
252
+ const { add_numbers: i } = await _();
253
+ return i(Math.trunc(t), Math.trunc(e));
254
+ }
255
+ async function ne(t) {
256
+ const { checksum_from_rust: e } = await _();
257
+ return e(t);
258
+ }
259
+ const ce = "Connector failed to abort preview object operation.", le = "Connector failed to abort retrieve all records operation.", re = 4096, pe = 1e3, E = "https://sample-data-eu.datapos.app";
260
+ class be {
248
261
  abortController;
249
262
  config;
250
263
  connectionConfig;
251
264
  tools;
252
265
  constructor(e, i) {
253
- this.abortController = void 0, this.config = ie, this.config.version = de, this.connectionConfig = e, this.tools = i;
266
+ this.abortController = void 0, this.config = oe, this.config.version = se, this.connectionConfig = e, this.tools = i;
254
267
  }
255
268
  // Operations - Abort operation.
256
269
  abortOperation(e) {
@@ -269,17 +282,19 @@ class ce {
269
282
  console.log("getReader", "connector", e), console.log("getReader", "settings", i);
270
283
  const d = await fetch("https://sample-data-eu.datapos.app/fileStore/ENGAGEMENT_START_EVENTS_202405121858.csv");
271
284
  if (console.log("getReader", "response", d), !d.body) throw new Error("ReadableStream not supported by this browser.");
272
- return await Promise.resolve({ readable: d.body });
285
+ await this.addUsingRust(12, 56);
286
+ const s = await this.versionChecksumUsingRust();
287
+ return console.log("sum", s), await Promise.resolve({ readable: d.body });
273
288
  } catch (d) {
274
289
  throw e.abortController = void 0, d;
275
290
  }
276
291
  }
277
292
  // Operations - List nodes.
278
293
  listNodes(e, i) {
279
- const d = M[i.folderPath] ?? [], a = [];
280
- for (const s of d)
281
- s.typeId === "folder" ? a.push(this.constructFolderNodeConfig(i.folderPath, s.name, s.childCount)) : a.push(this.constructObjectNodeConfig(i.folderPath, s.id, s.name, s.lastModifiedAt, s.size));
282
- return Promise.resolve({ cursor: void 0, isMore: !1, connectionNodeConfigs: a, totalCount: a.length });
294
+ const d = M[i.folderPath] ?? [], s = [];
295
+ for (const a of d)
296
+ a.typeId === "folder" ? s.push(this.constructFolderNodeConfig(i.folderPath, a.name, a.childCount)) : s.push(this.constructObjectNodeConfig(i.folderPath, a.id, a.name, a.lastModifiedAt, a.size));
297
+ return Promise.resolve({ cursor: void 0, isMore: !1, connectionNodeConfigs: s, totalCount: s.length });
283
298
  }
284
299
  // Operations - Preview object.
285
300
  async previewObject(e, i) {
@@ -287,9 +302,9 @@ class ce {
287
302
  e.abortController = new AbortController();
288
303
  const d = e.abortController.signal;
289
304
  d.addEventListener("abort", () => {
290
- throw new this.tools.dataPos.OperationalError(oe, "datapos-connector-file-store-emulator|Connector|preview.abort");
305
+ throw new this.tools.dataPos.OperationalError(ce, "datapos-connector-file-store-emulator|Connector|preview.abort");
291
306
  });
292
- const a = `${h}/fileStore${i.path}`, s = { Range: `bytes=0-${i.chunkSize != null || ae}` }, o = await fetch(encodeURI(a), { headers: s, signal: d });
307
+ const s = `${E}/fileStore${i.path}`, a = { Range: `bytes=0-${i.chunkSize != null || re}` }, o = await fetch(encodeURI(s), { headers: a, signal: d });
293
308
  if (o.ok)
294
309
  return e.abortController = void 0, { data: new Uint8Array(await o.arrayBuffer()), typeId: "uint8Array" };
295
310
  throw await this.tools.dataPos.buildFetchError(o, `Failed to fetch '${i.path}' file.`, "datapos-connector-file-store-emulator|Connector|preview");
@@ -298,15 +313,15 @@ class ce {
298
313
  }
299
314
  }
300
315
  // Operations - Retrieve records.
301
- async retrieveRecords(e, i, d, a) {
302
- return new Promise((s, o) => {
316
+ async retrieveRecords(e, i, d, s) {
317
+ return new Promise((a, o) => {
303
318
  try {
304
319
  e.abortController = new AbortController();
305
320
  const r = e.abortController.signal;
306
321
  r.addEventListener(
307
322
  "abort",
308
323
  () => {
309
- e.abortController = void 0, o(new e.tools.dataPos.OperationalError(se, "datapos-connector-file-store-emulator|Connector|retrieve.abort"));
324
+ e.abortController = void 0, o(new e.tools.dataPos.OperationalError(le, "datapos-connector-file-store-emulator|Connector|retrieve.abort"));
310
325
  },
311
326
  { once: !0 }
312
327
  );
@@ -321,7 +336,7 @@ class ce {
321
336
  try {
322
337
  let p;
323
338
  for (; (p = l.read()) !== null; )
324
- r.throwIfAborted(), n.push(p), !(n.length < ne) && (d([]), n = []);
339
+ r.throwIfAborted(), n.push(p), !(n.length < pe) && (d([]), n = []);
325
340
  } catch (p) {
326
341
  e.abortController = void 0, o(f(p));
327
342
  }
@@ -329,19 +344,19 @@ class ce {
329
344
  e.abortController = void 0, o(f(p));
330
345
  }), l.on("end", () => {
331
346
  try {
332
- r.throwIfAborted(), e.abortController = void 0, n.length > 0 && (d([]), n = []), a({
347
+ r.throwIfAborted(), e.abortController = void 0, n.length > 0 && (d([]), n = []), s({
333
348
  byteCount: l.info.bytes,
334
349
  commentLineCount: l.info.comment_lines,
335
350
  emptyLineCount: l.info.empty_lines,
336
351
  invalidFieldLengthCount: l.info.invalid_field_length,
337
352
  lineCount: l.info.lines,
338
353
  recordCount: l.info.records
339
- }), s();
354
+ }), a();
340
355
  } catch (p) {
341
356
  e.abortController = void 0, o(f(p));
342
357
  }
343
358
  });
344
- const y = `${h}/fileStore${i.path}`;
359
+ const y = `${E}/fileStore${i.path}`;
345
360
  fetch(encodeURI(y), { signal: r }).then(async (p) => {
346
361
  try {
347
362
  if (p.ok && p.body) {
@@ -371,17 +386,24 @@ class ce {
371
386
  }
372
387
  });
373
388
  }
389
+ /** Utilities - Rust helpers. */
390
+ async addUsingRust(e, i) {
391
+ return ae(e, i);
392
+ }
393
+ async versionChecksumUsingRust() {
394
+ return ne(this.config.version);
395
+ }
374
396
  /** Utilities - Construct folder node configuration. */
375
397
  constructFolderNodeConfig(e, i, d) {
376
398
  return { id: this.tools.nanoid(), childCount: d, folderPath: e, label: i, name: i, typeId: "folder" };
377
399
  }
378
400
  /** Utilities - Construct object (file) node configuration. */
379
- constructObjectNodeConfig(e, i, d, a, s) {
380
- const o = this.tools.dataPos.extractNameFromPath(d) ?? "", r = this.tools.dataPos.extractExtensionFromPath(d), n = a, l = this.tools.dataPos.lookupMimeTypeForExtension(r);
381
- return { id: i, extension: r, folderPath: e, label: d, lastModifiedAt: n, mimeType: l, name: o, size: s, typeId: "object" };
401
+ constructObjectNodeConfig(e, i, d, s, a) {
402
+ const o = this.tools.dataPos.extractNameFromPath(d) ?? "", r = this.tools.dataPos.extractExtensionFromPath(d), n = s, l = this.tools.dataPos.lookupMimeTypeForExtension(r);
403
+ return { id: i, extension: r, folderPath: e, label: d, lastModifiedAt: n, mimeType: l, name: o, size: a, typeId: "object" };
382
404
  }
383
405
  }
384
406
  export {
385
- ce as default
407
+ be as default
386
408
  };
387
409
  //# sourceMappingURL=datapos-connector-file-store-emulator.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"datapos-connector-file-store-emulator.es.js","sources":["../node_modules/@datapos/datapos-shared/dist/datapos-shared.es.js","../src/index.ts"],"sourcesContent":["let j;\n// @__NO_SIDE_EFFECTS__\nfunction H(e) {\n return {\n lang: e?.lang ?? j?.lang,\n message: e?.message,\n abortEarly: e?.abortEarly ?? j?.abortEarly,\n abortPipeEarly: e?.abortPipeEarly ?? j?.abortPipeEarly\n };\n}\nlet K;\n// @__NO_SIDE_EFFECTS__\nfunction W(e) {\n return K?.get(e);\n}\nlet X;\n// @__NO_SIDE_EFFECTS__\nfunction J(e) {\n return X?.get(e);\n}\nlet q;\n// @__NO_SIDE_EFFECTS__\nfunction Q(e, r) {\n return q?.get(e)?.get(r);\n}\n// @__NO_SIDE_EFFECTS__\nfunction U(e) {\n const r = typeof e;\n return r === \"string\" ? `\"${e}\"` : r === \"number\" || r === \"bigint\" || r === \"boolean\" ? `${e}` : r === \"object\" || r === \"function\" ? (e && Object.getPrototypeOf(e)?.constructor?.name) ?? \"null\" : r;\n}\nfunction g(e, r, t, n, s) {\n const o = s && \"input\" in s ? s.input : t.value, i = s?.expected ?? e.expects ?? null, u = s?.received ?? /* @__PURE__ */ U(o), a = {\n kind: e.kind,\n type: e.type,\n input: o,\n expected: i,\n received: u,\n message: `Invalid ${r}: ${i ? `Expected ${i} but r` : \"R\"}eceived ${u}`,\n requirement: e.requirement,\n path: s?.path,\n issues: s?.issues,\n lang: n.lang,\n abortEarly: n.abortEarly,\n abortPipeEarly: n.abortPipeEarly\n }, p = e.kind === \"schema\", d = s?.message ?? e.message ?? /* @__PURE__ */ Q(e.reference, a.lang) ?? (p ? /* @__PURE__ */ J(a.lang) : null) ?? n.message ?? /* @__PURE__ */ W(a.lang);\n d !== void 0 && (a.message = typeof d == \"function\" ? d(a) : d), p && (t.typed = !1), t.issues ? t.issues.push(a) : t.issues = [a];\n}\n// @__NO_SIDE_EFFECTS__\nfunction h(e) {\n return {\n version: 1,\n vendor: \"valibot\",\n validate(r) {\n return e[\"~run\"]({ value: r }, /* @__PURE__ */ H());\n }\n };\n}\n// @__NO_SIDE_EFFECTS__\nfunction Y(e, r) {\n return Object.hasOwn(e, r) && r !== \"__proto__\" && r !== \"prototype\" && r !== \"constructor\";\n}\n// @__NO_SIDE_EFFECTS__\nfunction Z(e, r) {\n const t = [...new Set(e)];\n return t.length > 1 ? `(${t.join(` ${r} `)})` : t[0] ?? \"never\";\n}\n// @__NO_SIDE_EFFECTS__\nfunction ee(e, r, t) {\n return typeof e.fallback == \"function\" ? e.fallback(r, t) : e.fallback;\n}\n// @__NO_SIDE_EFFECTS__\nfunction A(e, r, t) {\n return typeof e.default == \"function\" ? e.default(r, t) : e.default;\n}\n// @__NO_SIDE_EFFECTS__\nfunction x(e, r) {\n return {\n kind: \"schema\",\n type: \"array\",\n reference: x,\n expects: \"Array\",\n async: !1,\n item: e,\n message: r,\n get \"~standard\"() {\n return /* @__PURE__ */ h(this);\n },\n \"~run\"(t, n) {\n const s = t.value;\n if (Array.isArray(s)) {\n t.typed = !0, t.value = [];\n for (let o = 0; o < s.length; o++) {\n const i = s[o], u = this.item[\"~run\"]({ value: i }, n);\n if (u.issues) {\n const a = {\n type: \"array\",\n origin: \"value\",\n input: s,\n key: o,\n value: i\n };\n for (const p of u.issues)\n p.path ? p.path.unshift(a) : p.path = [a], t.issues?.push(p);\n if (t.issues || (t.issues = u.issues), n.abortEarly) {\n t.typed = !1;\n break;\n }\n }\n u.typed || (t.typed = !1), t.value.push(u.value);\n }\n } else g(this, \"type\", t, n);\n return t;\n }\n };\n}\n// @__NO_SIDE_EFFECTS__\nfunction B(e) {\n return {\n kind: \"schema\",\n type: \"boolean\",\n reference: B,\n expects: \"boolean\",\n async: !1,\n message: e,\n get \"~standard\"() {\n return /* @__PURE__ */ h(this);\n },\n \"~run\"(r, t) {\n return typeof r.value == \"boolean\" ? r.typed = !0 : g(this, \"type\", r, t), r;\n }\n };\n}\n// @__NO_SIDE_EFFECTS__\nfunction k(e, r) {\n return {\n kind: \"schema\",\n type: \"literal\",\n reference: k,\n expects: /* @__PURE__ */ U(e),\n async: !1,\n literal: e,\n message: r,\n get \"~standard\"() {\n return /* @__PURE__ */ h(this);\n },\n \"~run\"(t, n) {\n return t.value === this.literal ? t.typed = !0 : g(this, \"type\", t, n), t;\n }\n };\n}\n// @__NO_SIDE_EFFECTS__\nfunction y(e, r) {\n return {\n kind: \"schema\",\n type: \"nullable\",\n reference: y,\n expects: `(${e.expects} | null)`,\n async: !1,\n wrapped: e,\n default: r,\n get \"~standard\"() {\n return /* @__PURE__ */ h(this);\n },\n \"~run\"(t, n) {\n return t.value === null && (this.default !== void 0 && (t.value = /* @__PURE__ */ A(this, t, n)), t.value === null) ? (t.typed = !0, t) : this.wrapped[\"~run\"](t, n);\n }\n };\n}\n// @__NO_SIDE_EFFECTS__\nfunction D(e) {\n return {\n kind: \"schema\",\n type: \"number\",\n reference: D,\n expects: \"number\",\n async: !1,\n message: e,\n get \"~standard\"() {\n return /* @__PURE__ */ h(this);\n },\n \"~run\"(r, t) {\n return typeof r.value == \"number\" && !isNaN(r.value) ? r.typed = !0 : g(this, \"type\", r, t), r;\n }\n };\n}\n// @__NO_SIDE_EFFECTS__\nfunction b(e, r) {\n return {\n kind: \"schema\",\n type: \"object\",\n reference: b,\n expects: \"Object\",\n async: !1,\n entries: e,\n message: r,\n get \"~standard\"() {\n return /* @__PURE__ */ h(this);\n },\n \"~run\"(t, n) {\n const s = t.value;\n if (s && typeof s == \"object\") {\n t.typed = !0, t.value = {};\n for (const o in this.entries) {\n const i = this.entries[o];\n if (o in s || (i.type === \"exact_optional\" || i.type === \"optional\" || i.type === \"nullish\") && i.default !== void 0) {\n const u = o in s ? s[o] : /* @__PURE__ */ A(i), a = i[\"~run\"]({ value: u }, n);\n if (a.issues) {\n const p = {\n type: \"object\",\n origin: \"value\",\n input: s,\n key: o,\n value: u\n };\n for (const d of a.issues)\n d.path ? d.path.unshift(p) : d.path = [p], t.issues?.push(d);\n if (t.issues || (t.issues = a.issues), n.abortEarly) {\n t.typed = !1;\n break;\n }\n }\n a.typed || (t.typed = !1), t.value[o] = a.value;\n } else if (i.fallback !== void 0) t.value[o] = /* @__PURE__ */ ee(i);\n else if (i.type !== \"exact_optional\" && i.type !== \"optional\" && i.type !== \"nullish\" && (g(this, \"key\", t, n, {\n input: void 0,\n expected: `\"${o}\"`,\n path: [{\n type: \"object\",\n origin: \"key\",\n input: s,\n key: o,\n value: s[o]\n }]\n }), n.abortEarly))\n break;\n }\n } else g(this, \"type\", t, n);\n return t;\n }\n };\n}\n// @__NO_SIDE_EFFECTS__\nfunction f(e, r) {\n return {\n kind: \"schema\",\n type: \"optional\",\n reference: f,\n expects: `(${e.expects} | undefined)`,\n async: !1,\n wrapped: e,\n default: r,\n get \"~standard\"() {\n return /* @__PURE__ */ h(this);\n },\n \"~run\"(t, n) {\n return t.value === void 0 && (this.default !== void 0 && (t.value = /* @__PURE__ */ A(this, t, n)), t.value === void 0) ? (t.typed = !0, t) : this.wrapped[\"~run\"](t, n);\n }\n };\n}\n// @__NO_SIDE_EFFECTS__\nfunction R(e, r, t) {\n return {\n kind: \"schema\",\n type: \"record\",\n reference: R,\n expects: \"Object\",\n async: !1,\n key: e,\n value: r,\n message: t,\n get \"~standard\"() {\n return /* @__PURE__ */ h(this);\n },\n \"~run\"(n, s) {\n const o = n.value;\n if (o && typeof o == \"object\") {\n n.typed = !0, n.value = {};\n for (const i in o) if (/* @__PURE__ */ Y(o, i)) {\n const u = o[i], a = this.key[\"~run\"]({ value: i }, s);\n if (a.issues) {\n const d = {\n type: \"object\",\n origin: \"key\",\n input: o,\n key: i,\n value: u\n };\n for (const S of a.issues)\n S.path = [d], n.issues?.push(S);\n if (n.issues || (n.issues = a.issues), s.abortEarly) {\n n.typed = !1;\n break;\n }\n }\n const p = this.value[\"~run\"]({ value: u }, s);\n if (p.issues) {\n const d = {\n type: \"object\",\n origin: \"value\",\n input: o,\n key: i,\n value: u\n };\n for (const S of p.issues)\n S.path ? S.path.unshift(d) : S.path = [d], n.issues?.push(S);\n if (n.issues || (n.issues = p.issues), s.abortEarly) {\n n.typed = !1;\n break;\n }\n }\n (!a.typed || !p.typed) && (n.typed = !1), a.typed && (n.value[a.value] = p.value);\n }\n } else g(this, \"type\", n, s);\n return n;\n }\n };\n}\n// @__NO_SIDE_EFFECTS__\nfunction l(e) {\n return {\n kind: \"schema\",\n type: \"string\",\n reference: l,\n expects: \"string\",\n async: !1,\n message: e,\n get \"~standard\"() {\n return /* @__PURE__ */ h(this);\n },\n \"~run\"(r, t) {\n return typeof r.value == \"string\" ? r.typed = !0 : g(this, \"type\", r, t), r;\n }\n };\n}\n// @__NO_SIDE_EFFECTS__\nfunction _(e) {\n let r;\n if (e) for (const t of e) r ? r.push(...t.issues) : r = t.issues;\n return r;\n}\n// @__NO_SIDE_EFFECTS__\nfunction G(e, r) {\n return {\n kind: \"schema\",\n type: \"union\",\n reference: G,\n expects: /* @__PURE__ */ Z(e.map((t) => t.expects), \"|\"),\n async: !1,\n options: e,\n message: r,\n get \"~standard\"() {\n return /* @__PURE__ */ h(this);\n },\n \"~run\"(t, n) {\n let s, o, i;\n for (const u of this.options) {\n const a = u[\"~run\"]({ value: t.value }, n);\n if (a.typed) if (a.issues) o ? o.push(a) : o = [a];\n else {\n s = a;\n break;\n }\n else i ? i.push(a) : i = [a];\n }\n if (s) return s;\n if (o) {\n if (o.length === 1) return o[0];\n g(this, \"type\", t, n, { issues: /* @__PURE__ */ _(o) }), t.typed = !0;\n } else {\n if (i?.length === 1) return i[0];\n g(this, \"type\", t, n, { issues: /* @__PURE__ */ _(i) });\n }\n return t;\n }\n };\n}\nconst v = (e) => /* @__PURE__ */ G(e.map((r) => /* @__PURE__ */ k(r))), te = /* @__PURE__ */ b({\n \"en-au\": /* @__PURE__ */ l(),\n \"en-gb\": /* @__PURE__ */ l(),\n \"en-us\": /* @__PURE__ */ l(),\n \"es-es\": /* @__PURE__ */ l()\n}), O = /* @__PURE__ */ b({\n \"en-au\": /* @__PURE__ */ f(/* @__PURE__ */ l()),\n \"en-gb\": /* @__PURE__ */ f(/* @__PURE__ */ l()),\n \"en-us\": /* @__PURE__ */ f(/* @__PURE__ */ l()),\n \"es-es\": /* @__PURE__ */ f(/* @__PURE__ */ l())\n}), re = v([\"amber\", \"green\", \"red\", \"other\"]), ne = v([\n \"alpha\",\n \"beta\",\n \"generalAvailability\",\n \"notApplicable\",\n \"preAlpha\",\n \"proposed\",\n \"releaseCandidate\",\n \"unavailable\",\n \"underReview\"\n]), se = v([\n \"app\",\n \"connector\",\n \"connectorConnection\",\n \"context\",\n \"contextModelGroup\",\n \"contextModel\",\n \"contextModelDimensionGroup\",\n \"contextModelDimension\",\n \"contextModelDimensionHierarchy\",\n \"contextModelEntityGroup\",\n \"contextModelEntity\",\n \"contextModelEntityDataItem\",\n \"contextModelEntityEvent\",\n \"contextModelEntityPrimaryMeasure\",\n \"contextModelSecondaryMeasureGroup\",\n \"contextModelSecondaryMeasure\",\n \"dataView\",\n \"dimension\",\n \"engine\",\n \"eventQuery\",\n \"presenter\",\n \"presenterPresentation\",\n \"tool\"\n]);\nv([\"app\", \"engine\", \"connector\", \"context\", \"presenter\", \"tool\"]);\nconst oe = /* @__PURE__ */ b({\n id: /* @__PURE__ */ l(),\n color: re,\n label: /* @__PURE__ */ l()\n}), T = {\n id: /* @__PURE__ */ l(),\n label: O,\n description: O,\n firstCreatedAt: /* @__PURE__ */ f(/* @__PURE__ */ D()),\n icon: /* @__PURE__ */ y(/* @__PURE__ */ l()),\n iconDark: /* @__PURE__ */ y(/* @__PURE__ */ l()),\n lastUpdatedAt: /* @__PURE__ */ y(/* @__PURE__ */ D()),\n status: /* @__PURE__ */ y(oe),\n statusId: ne\n}, De = /* @__PURE__ */ b({\n ...T,\n typeId: se\n}), $ = {\n ...T,\n version: /* @__PURE__ */ l()\n}, P = /* @__PURE__ */ b({\n id: /* @__PURE__ */ l(),\n label: O,\n description: O,\n icon: /* @__PURE__ */ y(/* @__PURE__ */ l()),\n iconDark: /* @__PURE__ */ y(/* @__PURE__ */ l()),\n order: /* @__PURE__ */ D(),\n path: /* @__PURE__ */ l()\n}), E = (e) => {\n const r = Object.entries(e).filter((t) => typeof t[1] == \"string\");\n return new Map(r);\n}, ie = (e, r, t = I) => {\n const n = e.get(r);\n if (n !== void 0) return n;\n if (t !== r)\n return e.get(t);\n}, ae = [\n { id: \"alpha\", color: \"red\", labels: E({ \"en-gb\": \"alpha\" }) },\n { id: \"beta\", color: \"amber\", labels: E({ \"en-gb\": \"beta\" }) },\n { id: \"generalAvailability\", color: \"green\", labels: E({ \"en-gb\": \"\" }) },\n { id: \"notApplicable\", color: \"green\", labels: E({ \"en-gb\": \"not-applicable\" }) },\n { id: \"preAlpha\", color: \"red\", labels: E({ \"en-gb\": \"pre-alpha\" }) },\n { id: \"proposed\", color: \"other\", labels: E({ \"en-gb\": \"proposed\" }) },\n { id: \"releaseCandidate\", color: \"green\", labels: E({ \"en-gb\": \"release-candidate\" }) },\n { id: \"unavailable\", color: \"other\", labels: E({ \"en-gb\": \"unavailable\" }) },\n { id: \"underReview\", color: \"other\", labels: E({ \"en-gb\": \"under-review\" }) }\n], ke = (e, r = I) => {\n const t = ae.find((n) => n.id === e);\n if (t) {\n const n = ie(t.labels, r);\n return { id: t.id, color: t.color, label: n ?? t.id };\n }\n return { id: e, color: \"other\", label: e };\n}, le = v([\"application\", \"curatedDataset\", \"database\", \"fileStore\"]), ce = v([\n \"abortOperation\",\n \"authenticateConnection\",\n \"createObject\",\n \"describeConnection\",\n \"dropObject\",\n \"findObject\",\n \"getReader\",\n \"getRecord\",\n \"listNodes\",\n \"previewObject\",\n \"removeRecords\",\n \"retrieveRecords\",\n \"upsertRecords\"\n]), ue = v([\"bidirectional\", \"destination\", \"source\", \"unknown\"]), pe = v([\"apiKey\", \"disabled\", \"oAuth2\", \"none\"]), de = /* @__PURE__ */ b({\n id: /* @__PURE__ */ l(),\n label: /* @__PURE__ */ l()\n}), fe = /* @__PURE__ */ b({\n authMethodId: pe,\n activeConnectionCount: /* @__PURE__ */ f(/* @__PURE__ */ D()),\n canDescribe: /* @__PURE__ */ f(/* @__PURE__ */ B()),\n id: /* @__PURE__ */ f(/* @__PURE__ */ l()),\n label: /* @__PURE__ */ f(te),\n maxConnectionCount: /* @__PURE__ */ f(/* @__PURE__ */ D()),\n params: /* @__PURE__ */ f(/* @__PURE__ */ x(/* @__PURE__ */ R(/* @__PURE__ */ l(), /* @__PURE__ */ l())))\n}), we = /* @__PURE__ */ b({\n ...$,\n typeId: /* @__PURE__ */ k(\"connector\"),\n category: /* @__PURE__ */ y(de),\n categoryId: le,\n implementations: /* @__PURE__ */ R(/* @__PURE__ */ l(), fe),\n operations: /* @__PURE__ */ x(ce),\n usageId: ue,\n vendorAccountURL: /* @__PURE__ */ y(/* @__PURE__ */ l()),\n vendorDocumentationURL: /* @__PURE__ */ y(/* @__PURE__ */ l()),\n vendorHomeURL: /* @__PURE__ */ y(/* @__PURE__ */ l())\n}), Ie = [\"createObject\", \"dropObject\", \"removeRecords\", \"upsertRecords\"], Me = [\"findObject\", \"getRecord\", \"listNodes\", \"previewObject\", \"retrieveRecords\"], M = (e) => {\n const r = Object.entries(e).filter((t) => typeof t[1] == \"string\");\n return new Map(r);\n};\nM({ \"en-gb\": \"Application\" }), M({ \"en-gb\": \"Curated Dataset\" }), M({ \"en-gb\": \"Database\" }), M({ \"en-gb\": \"File Store\" });\nconst me = v([\"list\"]), be = /* @__PURE__ */ b({\n ...T,\n typeId: /* @__PURE__ */ k(\"contextModelGroup\"),\n modelRefs: /* @__PURE__ */ x(P),\n order: /* @__PURE__ */ D()\n}), Oe = /* @__PURE__ */ b({\n ...$,\n typeId: /* @__PURE__ */ k(\"context\"),\n models: /* @__PURE__ */ x(be),\n operations: /* @__PURE__ */ x(me)\n});\nclass F extends Error {\n locator;\n constructor(r, t, n) {\n super(r, n), this.name = \"DataPosError\", this.locator = t;\n }\n}\nclass w extends F {\n constructor(r, t, n) {\n super(r, t, n), this.name = \"ApplicationError\";\n }\n}\nclass Ce extends w {\n constructor(r, t, n) {\n super(r, t, n), this.name = \"APIError\";\n }\n}\nclass Ne extends w {\n constructor(r, t, n) {\n super(r, t, n), this.name = \"EngineError\";\n }\n}\nclass z extends w {\n body;\n constructor(r, t, n, s) {\n super(r, t, s), this.name = \"FetchError\", this.body = n;\n }\n}\nclass ye extends w {\n componentName;\n info;\n constructor(r, t, n, s, o) {\n super(r, t, o), this.name = \"VueHandledError\", this.info = n, this.componentName = s;\n }\n}\nclass je extends w {\n constructor(r, t, n) {\n super(r, t, n), this.name = \"WindowHandledRuntimeError\";\n }\n}\nclass Ae extends w {\n constructor(r, t, n) {\n super(r, t, n), this.name = \"WindowHandledPromiseRejectionError\";\n }\n}\nclass Re extends F {\n constructor(r, t, n) {\n super(r, t, n), this.name = \"OperationalError\";\n }\n}\nasync function Te(e, r, t) {\n const n = ` - ${e.statusText}`, s = `${r} Response status '${e.status}${e.statusText ? n : \"\"}' received.`, o = await e.text();\n return new z(s, t, o);\n}\nfunction $e(e) {\n return e.map((r) => r.message).join(\" \");\n}\nfunction Fe(e) {\n if (e instanceof Error) return e;\n if (typeof e == \"string\") return new Error(e);\n if (typeof e == \"number\" || typeof e == \"boolean\" || typeof e == \"bigint\") return new Error(String(e));\n if (typeof e == \"symbol\") return new Error(e.description ?? \"Unknown error\");\n if (e && typeof e == \"object\")\n try {\n return new Error(JSON.stringify(e));\n } catch {\n return new Error(\"Unknown error\");\n }\n return new Error(\"Unknown error\");\n}\nfunction Le(e) {\n const r = /* @__PURE__ */ new Set(), t = [];\n let n = e;\n for (; n && !r.has(n); ) {\n r.add(n);\n let s;\n if (n instanceof z)\n s = { body: n.body, locator: n.locator, message: n.message, name: n.name, stack: n.stack }, n = n.cause;\n else if (n instanceof ye)\n s = { componentName: n.componentName, info: n.info, locator: n.locator, message: n.message, name: n.name, stack: n.stack }, n = n.cause;\n else if (n instanceof F)\n s = { locator: n.locator, message: n.message, name: n.name, stack: n.stack }, n = n.cause;\n else if (n instanceof Error) {\n const o = n;\n s = { locator: \"\", message: o.message, name: o.name, stack: o.stack }, n = o.cause;\n } else\n s = { locator: \"\", message: String(n), name: \"Error\" }, n = void 0;\n /(?:\\.{3}|[.!?])$/.test(s.message) || (s.message += \".\"), t.push(s);\n }\n return t;\n}\nconst ge = v([\"list\", \"render\", \"setColorMode\"]), _e = /* @__PURE__ */ b({\n ...$,\n typeId: /* @__PURE__ */ k(\"presenter\"),\n presentations: /* @__PURE__ */ x(P),\n operations: /* @__PURE__ */ x(ge)\n});\nfunction Ue() {\n return { render: he };\n}\nfunction he(e, r, t) {\n t.textContent = \"Cytoscape.js diagram goes here...\";\n}\nfunction Be() {\n return { render: ve };\n}\nfunction ve(e, r) {\n console.log(1111, e), console.log(2222, r), console.log(3333, r.childNodes), console.log(4444, r.children);\n}\nconst V = \"en-US\", C = /* @__PURE__ */ new Map();\nfunction Ge(e) {\n switch (e) {\n case \"Edm.Binary\":\n return \"unknown\";\n // Binary...\n case \"Edm.Boolean\":\n return \"boolean\";\n case \"Edm.Byte\":\n return \"wholeNumber\";\n case \"Edm.DateTime\":\n return \"moment\";\n // DateTime...\n case \"Edm.DateTimeOffset\":\n return \"moment\";\n // DateTimeOffset...\n case \"Edm.Decimal\":\n return \"decimalNumber\";\n case \"Edm.Double\":\n return \"decimalNumber\";\n case \"Edm.Guid\":\n return \"string\";\n case \"Edm.Int16\":\n return \"wholeNumber\";\n case \"Edm.Int32\":\n return \"wholeNumber\";\n case \"Edm.Int64\":\n return \"wholeNumber\";\n case \"Edm.SByte\":\n return \"wholeNumber\";\n case \"Edm.Single\":\n return \"decimalNumber\";\n case \"Edm.String\":\n return \"string\";\n case \"Edm.Time\":\n return \"momentTime\";\n // Time...\n default:\n return \"unknown\";\n }\n}\nfunction Pe(e) {\n if (e) {\n const r = e.lastIndexOf(\"/\"), t = e.lastIndexOf(\".\", r === -1 ? e.length : r);\n return t === -1 ? e : e.slice(0, Math.max(0, t));\n }\n}\nfunction ze(e) {\n if (e) {\n const r = e.lastIndexOf(\".\");\n if (r !== -1) return e.slice(Math.max(0, r + 1));\n }\n}\nfunction m(e, r = 2, t = r, n = V) {\n if (e == null) return \"\";\n const s = `${n}decimal${r}.${t}`;\n let o = C.get(s);\n return o || (o = new Intl.NumberFormat(n, {\n localeMatcher: \"best fit\",\n maximumFractionDigits: r,\n minimumFractionDigits: t,\n minimumIntegerDigits: 1,\n style: \"decimal\",\n useGrouping: !0\n }), C.set(s, o)), o.format(e);\n}\nfunction Ve(e) {\n return e == null ? \"\" : e < 1e3 ? N(e) : e < 1e6 ? `${m(e / 1e3, 2, 0)}K` : e < 1e9 ? `${m(e / 1e6, 2, 0)}M` : e < 1e12 ? `${m(e / 1e9, 2, 0)}B` : `${m(e / 1e12, 2, 0)}T`;\n}\nfunction He(e) {\n return e == null ? \"\" : e === 1 ? \"1 byte\" : e < 1024 ? `${N(e)} bytes` : e < 1048576 ? `${m(e / 1024, 2, 0)} KB` : e < 1073741824 ? `${m(e / 1048576, 2, 0)} MB` : e < 1099511627776 ? `${m(e / 1073741824, 2, 0)} GB` : `${m(e / 1099511627776, 2, 0)} TB`;\n}\nfunction Ke(e) {\n return e == null ? \"\" : e < 1e3 ? `${N(e)} ms` : e === 1e3 ? `${N(e)} sec` : e < 6e4 ? `${m(e / 1e3, 2, 0)} secs` : e === 6e4 ? \"1 min\" : e < 36e5 ? `${m(e / 6e4, 2, 0)} mins` : e === 36e5 ? \"1 hr\" : e < 864e5 ? `${m(e / 36e5, 2, 0)} hrs` : e === 864e5 ? \"1 day\" : `${m(e / 864e5, 2, 0)} days`;\n}\nfunction N(e, r = V) {\n if (e == null) return \"\";\n const t = `${r}decimal0.0`;\n let n = C.get(t);\n return n || (n = new Intl.NumberFormat(r, {\n localeMatcher: \"best fit\",\n maximumFractionDigits: 0,\n minimumFractionDigits: 0,\n minimumIntegerDigits: 1,\n style: \"decimal\",\n useGrouping: !0\n }), C.set(t, n)), n.format(e);\n}\nfunction We(e) {\n switch (e) {\n case \"csv\":\n return \"text/csv\";\n case \"tab\":\n case \"tsv\":\n return \"text/tab-separated-values\";\n case \"xls\":\n return \"application/vnd.ms-excel\";\n case \"xlsx\":\n return \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\";\n default:\n return \"application/octet-stream\";\n }\n}\nconst c = (e) => new Map(Object.entries(e)), L = (e, r, t = I) => {\n const n = e.get(r);\n if (n !== void 0) return n;\n if (t !== r)\n return e.get(t);\n}, Ee = [\n { id: \"dtv\", labels: c({ \"en-gb\": \"Delimited Text\" }) },\n { id: \"e/e\", labels: c({ \"en-gb\": \"Entity/Event\" }) },\n { id: \"jsonArray\", labels: c({ \"en-gb\": \"JSON Array\" }) },\n { id: \"spss\", labels: c({ \"en-gb\": \"SPSS\" }) },\n { id: \"xls\", labels: c({ \"en-gb\": \"XLS\" }) },\n { id: \"xlsx\", labels: c({ \"en-gb\": \"XLSX\" }) },\n { id: \"xml\", labels: c({ \"en-gb\": \"XML\" }) }\n], Xe = (e = I) => {\n const r = [];\n for (const t of Ee) {\n const n = L(t.labels, e);\n r.push({ id: t.id, label: n ?? t.id });\n }\n return r;\n}, xe = [\n { id: `\n`, labels: c({ \"en-gb\": \"Newline\" }) },\n { id: \"\\r\", labels: c({ \"en-gb\": \"Carriage Return\" }) },\n { id: `\\r\n`, labels: c({ \"en-gb\": \"Carriage Return/Newline\" }) }\n], Je = (e = I) => {\n const r = [];\n for (const t of xe) {\n const n = L(t.labels, e);\n r.push({ id: t.id, label: n ?? t.id });\n }\n return r;\n}, Se = [\n { id: \":\", labels: c({ \"en-gb\": \"Colon\" }) },\n { id: \",\", labels: c({ \"en-gb\": \"Comma\" }) },\n { id: \"!\", labels: c({ \"en-gb\": \"Exclamation Mark\" }) },\n // { id: '', label: { 'en-gb': 'Other' } }, // TODO: Maybe set this to a 'not printing' or special ascii character when there is a user supplied delimited, rather than ''?\n { id: \"0x1E\", labels: c({ \"en-gb\": \"Record Separator\" }) },\n { id: \";\", labels: c({ \"en-gb\": \"Semicolon\" }) },\n { id: \" \", labels: c({ \"en-gb\": \"Space\" }) },\n { id: \"\t\", labels: c({ \"en-gb\": \"Tab\" }) },\n { id: \"_\", labels: c({ \"en-gb\": \"Underscore\" }) },\n { id: \"0x1F\", labels: c({ \"en-gb\": \"Unit Separator\" }) },\n { id: \"|\", labels: c({ \"en-gb\": \"Vertical Bar\" }) }\n], qe = (e = I) => {\n const r = [];\n for (const t of Se) {\n const n = L(t.labels, e);\n r.push({ id: t.id, label: n ?? t.id });\n }\n return r;\n}, I = \"en-gb\";\nexport {\n Ce as APIError,\n w as ApplicationError,\n Ie as CONNECTOR_DESTINATION_OPERATIONS,\n Me as CONNECTOR_SOURCE_OPERATIONS,\n I as DEFAULT_LOCALE_CODE,\n Ne as EngineError,\n z as FetchError,\n Re as OperationalError,\n ye as VueError,\n Ae as WindowPromiseRejectionError,\n je as WindowRuntimeError,\n Te as buildFetchError,\n De as componentConfigSchema,\n $e as concatenateSerialisedErrorMessages,\n we as connectorConfigSchema,\n Oe as contextConfigSchema,\n Ge as convertODataTypeIdToUsageTypeId,\n ze as extractExtensionFromPath,\n Pe as extractNameFromPath,\n m as formatNumberAsDecimalNumber,\n Ke as formatNumberAsDuration,\n Ve as formatNumberAsSize,\n He as formatNumberAsStorageSize,\n N as formatNumberAsWholeNumber,\n ke as getComponentStatus,\n Xe as getDataFormats,\n Je as getRecordDelimiters,\n qe as getValueDelimiters,\n We as lookupMimeTypeForExtension,\n Fe as normalizeToError,\n _e as presenterConfigSchema,\n Le as serialiseError,\n Ue as useCytoscapeJS,\n Be as useDataTable\n};\n","/*\n * File store emulator connector class.\n */\n\n// NOTE: Consider Cloudflare R2 Download URL: https://plugins-eu.datapositioning.app/connectors/datapos-connector-file-store-emulator-es.js. This would allow us to secure the bucket?\n\n// Dependencies - Vendor.\nimport type { HeadersInit } from 'undici';\n\n/** Dependencies - Framework. */\nimport { normalizeToError } from '@datapos/datapos-shared';\nimport type {\n ConnectionConfig,\n ConnectionNodeConfig,\n Connector,\n ConnectorConfig,\n ConnectorTools,\n FindResult,\n FindSettings,\n GetReaderResult,\n GetReaderSettings,\n ListResult,\n ListSettings,\n PreviewResult,\n PreviewSettings,\n RetrieveSettings,\n RetrieveSummary\n} from '@datapos/datapos-shared';\n\n/** Dependencies - Data. */\nimport config from '~/config.json';\nimport fileStoreIndex from '@/fileStoreIndex.json';\nimport { version } from '~/package.json';\n\n/** Interfaces/Types - File store index. */\ntype FileStoreIndexItem =\n | ({ typeId: 'folder'; childCount: number } & { name: string })\n | ({ typeId: 'object'; id: string; lastModifiedAt: number; size: number } & { name: string });\ntype FileStoreIndex = Record<string, FileStoreIndexItem[]>;\n\n/** Constants */\nconst CALLBACK_PREVIEW_ABORTED = 'Connector failed to abort preview object operation.';\nconst CALLBACK_RETRIEVE_ABORTED = 'Connector failed to abort retrieve all records operation.';\nconst DEFAULT_PREVIEW_CHUNK_SIZE = 4096;\nconst DEFAULT_RETRIEVE_CHUNK_SIZE = 1000;\nconst URL_PREFIX = 'https://sample-data-eu.datapos.app';\n\n/** Classes - File store emulator connector. */\nexport default class FileStoreEmulatorConnector implements Connector {\n abortController: AbortController | undefined;\n readonly config: ConnectorConfig;\n readonly connectionConfig: ConnectionConfig;\n readonly tools: ConnectorTools;\n\n constructor(connectionConfig: ConnectionConfig, tools: ConnectorTools) {\n this.abortController = undefined;\n this.config = config as ConnectorConfig;\n this.config.version = version;\n this.connectionConfig = connectionConfig;\n this.tools = tools;\n }\n\n // Operations - Abort operation.\n abortOperation(connector: FileStoreEmulatorConnector): void {\n if (!connector.abortController) return;\n connector.abortController.abort();\n connector.abortController = undefined;\n }\n\n // Operations - Find object.\n findObject(connector: FileStoreEmulatorConnector, settings: FindSettings): Promise<FindResult> {\n // Loop through the file store index checking for an object entry with an identifier equal to the object name.\n for (const folderPath in fileStoreIndex) {\n if (Object.prototype.hasOwnProperty.call(fileStoreIndex, folderPath)) {\n // eslint-disable-next-line security/detect-object-injection\n const indexItems = (fileStoreIndex as FileStoreIndex)[folderPath];\n const indexItem = indexItems?.find((indexItem) => indexItem.typeId === 'object' && indexItem.id === settings.objectName);\n if (indexItem) return Promise.resolve({ folderPath }); // Found, return folder path.\n }\n }\n return Promise.resolve({}); // Not found, return undefined folder path.\n }\n\n // Operations - Get reader.\n async getReader(connector: FileStoreEmulatorConnector, settings: GetReaderSettings): Promise<GetReaderResult> {\n try {\n console.log('getReader', 'connector', connector);\n console.log('getReader', 'settings', settings);\n const response = await fetch('https://sample-data-eu.datapos.app/fileStore/ENGAGEMENT_START_EVENTS_202405121858.csv');\n // const response = await fetch('https://sample-data-eu.datapos.app/WDI_Data.csv');\n console.log('getReader', 'response', response);\n if (!response.body) throw new Error('ReadableStream not supported by this browser.');\n\n return await Promise.resolve({ readable: response.body }); // Not found, return undefined folder path.\n } catch (error) {\n connector.abortController = undefined;\n throw error;\n }\n }\n\n // Operations - List nodes.\n listNodes(connector: FileStoreEmulatorConnector, settings: ListSettings): Promise<ListResult> {\n const indexItems = (fileStoreIndex as FileStoreIndex)[settings.folderPath] ?? [];\n const connectionNodeConfigs: ConnectionNodeConfig[] = [];\n for (const indexItem of indexItems) {\n if (indexItem.typeId === 'folder') {\n connectionNodeConfigs.push(this.constructFolderNodeConfig(settings.folderPath, indexItem.name, indexItem.childCount));\n } else {\n connectionNodeConfigs.push(this.constructObjectNodeConfig(settings.folderPath, indexItem.id, indexItem.name, indexItem.lastModifiedAt, indexItem.size));\n }\n }\n return Promise.resolve({ cursor: undefined, isMore: false, connectionNodeConfigs, totalCount: connectionNodeConfigs.length });\n }\n\n // Operations - Preview object.\n async previewObject(connector: FileStoreEmulatorConnector, settings: PreviewSettings): Promise<PreviewResult> {\n try {\n // Create an abort controller. Get the signal for the abort controller and add an abort listener.\n connector.abortController = new AbortController();\n const signal = connector.abortController.signal;\n signal.addEventListener('abort', () => {\n throw new this.tools.dataPos.OperationalError(CALLBACK_PREVIEW_ABORTED, 'datapos-connector-file-store-emulator|Connector|preview.abort');\n });\n\n // Fetch chunk from start of file.\n const url = `${URL_PREFIX}/fileStore${settings.path}`;\n const headers: HeadersInit = { Range: `bytes=0-${settings.chunkSize != null || DEFAULT_PREVIEW_CHUNK_SIZE}` };\n const response = await fetch(encodeURI(url), { headers, signal });\n if (response.ok) {\n connector.abortController = undefined;\n return { data: new Uint8Array(await response.arrayBuffer()), typeId: 'uint8Array' };\n } else {\n throw await this.tools.dataPos.buildFetchError(response, `Failed to fetch '${settings.path}' file.`, 'datapos-connector-file-store-emulator|Connector|preview');\n }\n } catch (error) {\n connector.abortController = undefined;\n throw error;\n }\n }\n\n // Operations - Retrieve records.\n async retrieveRecords(\n connector: FileStoreEmulatorConnector,\n settings: RetrieveSettings,\n chunk: (records: string[][]) => void,\n complete: (result: RetrieveSummary) => void\n ): Promise<void> {\n return new Promise((resolve, reject) => {\n try {\n // Create an abort controller and get the signal. Add an abort listener to the signal.\n connector.abortController = new AbortController();\n const signal = connector.abortController.signal;\n signal.addEventListener(\n 'abort',\n () => {\n connector.abortController = undefined;\n reject(new connector.tools.dataPos.OperationalError(CALLBACK_RETRIEVE_ABORTED, 'datapos-connector-file-store-emulator|Connector|retrieve.abort'));\n },\n { once: true }\n );\n\n // Parser - Declare variables.\n let pendingRows: string[][] = []; // Array to store rows of parsed field values and associated information.\n\n // Parser - Create a parser object for CSV parsing.\n const parser = connector.tools.csvParse({\n delimiter: settings.valueDelimiterId,\n info: true,\n relax_column_count: true,\n relax_quotes: true\n });\n\n // Parser - Event listener for the 'readable' (data available) event.\n parser.on('readable', () => {\n try {\n let data: string[] | null;\n while ((data = parser.read() as string[] | null) !== null) {\n signal.throwIfAborted(); // Check if the abort signal has been triggered.\n pendingRows.push(data); // Append the row of parsed values and associated information to the pending rows array.\n if (pendingRows.length < DEFAULT_RETRIEVE_CHUNK_SIZE) continue; // Continue with next iteration if the pending rows array is not yet full.\n chunk([]); // Pass the pending rows to the engine using the 'chunk' callback.\n pendingRows = []; // Clear the pending rows array in preparation for the next batch of data.\n }\n } catch (error) {\n connector.abortController = undefined;\n reject(normalizeToError(error));\n }\n });\n\n // Parser - Event listener for the 'error' event.\n parser.on('error', (error) => {\n connector.abortController = undefined;\n reject(normalizeToError(error));\n });\n\n // Parser - Event listener for the 'end' (end of data) event.\n parser.on('end', () => {\n try {\n signal.throwIfAborted(); // Check if the abort signal has been triggered.\n connector.abortController = undefined; // Clear the abort controller.\n if (pendingRows.length > 0) {\n chunk([]);\n pendingRows = [];\n }\n complete({\n byteCount: parser.info.bytes,\n commentLineCount: parser.info.comment_lines,\n emptyLineCount: parser.info.empty_lines,\n invalidFieldLengthCount: parser.info.invalid_field_length,\n lineCount: parser.info.lines,\n recordCount: parser.info.records\n });\n resolve();\n } catch (error) {\n connector.abortController = undefined;\n reject(normalizeToError(error));\n }\n });\n\n // Fetch, decode and forward the contents of the file to the parser.\n const url = `${URL_PREFIX}/fileStore${settings.path}`;\n fetch(encodeURI(url), { signal })\n .then(async (response) => {\n try {\n if (response.ok && response.body) {\n const stream = response.body.pipeThrough(new TextDecoderStream(settings.encodingId));\n const decodedStreamReader = stream.getReader();\n let result = await decodedStreamReader.read();\n while (!result.done) {\n signal.throwIfAborted(); // Check if the abort signal has been triggered.\n // Write the decoded data to the parser and terminate if there is an error.\n parser.write(result.value, (error) => {\n if (error) {\n connector.abortController = undefined;\n reject(normalizeToError(error));\n }\n });\n result = await decodedStreamReader.read();\n }\n parser.end(); // Signal no more data will be written.\n } else {\n const error = await connector.tools.dataPos.buildFetchError(\n response,\n `Failed to fetch '${settings.path}' file.`,\n 'datapos-connector-file-store-emulator|Connector|retrieve'\n );\n connector.abortController = undefined;\n reject(error);\n }\n } catch (error) {\n connector.abortController = undefined;\n reject(normalizeToError(error));\n }\n })\n .catch((error: unknown) => {\n connector.abortController = undefined;\n reject(normalizeToError(error));\n });\n } catch (error) {\n connector.abortController = undefined;\n reject(normalizeToError(error));\n }\n });\n }\n\n /** Utilities - Construct folder node configuration. */\n private constructFolderNodeConfig(folderPath: string, name: string, childCount: number): ConnectionNodeConfig {\n return { id: this.tools.nanoid(), childCount, folderPath, label: name, name, typeId: 'folder' };\n }\n\n /** Utilities - Construct object (file) node configuration. */\n private constructObjectNodeConfig(folderPath: string, id: string, fullName: string, lastModifiedAt: number, size: number): ConnectionNodeConfig {\n const name = this.tools.dataPos.extractNameFromPath(fullName) ?? '';\n const extension = this.tools.dataPos.extractExtensionFromPath(fullName);\n const lastModifiedAtTimestamp = lastModifiedAt;\n const mimeType = this.tools.dataPos.lookupMimeTypeForExtension(extension);\n return { id, extension, folderPath, label: fullName, lastModifiedAt: lastModifiedAtTimestamp, mimeType, name, size, typeId: 'object' };\n }\n}\n"],"names":["j","H","e","K","W","X","J","q","Q","r","U","g","t","n","s","o","i","u","a","p","d","h","Z","k","_","G","v","E","M","Fe","CALLBACK_PREVIEW_ABORTED","CALLBACK_RETRIEVE_ABORTED","DEFAULT_PREVIEW_CHUNK_SIZE","DEFAULT_RETRIEVE_CHUNK_SIZE","URL_PREFIX","FileStoreEmulatorConnector","connectionConfig","tools","config","version","connector","settings","folderPath","fileStoreIndex","indexItem","response","error","indexItems","connectionNodeConfigs","signal","url","headers","chunk","complete","resolve","reject","pendingRows","parser","data","normalizeToError","decodedStreamReader","result","name","childCount","id","fullName","lastModifiedAt","size","extension","lastModifiedAtTimestamp","mimeType"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"datapos-connector-file-store-emulator.es.js","sources":["../node_modules/@datapos/datapos-shared/dist/datapos-shared.es.js","../src/rustBridge.ts","../src/index.ts"],"sourcesContent":["let j;\n// @__NO_SIDE_EFFECTS__\nfunction H(e) {\n return {\n lang: e?.lang ?? j?.lang,\n message: e?.message,\n abortEarly: e?.abortEarly ?? j?.abortEarly,\n abortPipeEarly: e?.abortPipeEarly ?? j?.abortPipeEarly\n };\n}\nlet K;\n// @__NO_SIDE_EFFECTS__\nfunction W(e) {\n return K?.get(e);\n}\nlet X;\n// @__NO_SIDE_EFFECTS__\nfunction J(e) {\n return X?.get(e);\n}\nlet q;\n// @__NO_SIDE_EFFECTS__\nfunction Q(e, r) {\n return q?.get(e)?.get(r);\n}\n// @__NO_SIDE_EFFECTS__\nfunction U(e) {\n const r = typeof e;\n return r === \"string\" ? `\"${e}\"` : r === \"number\" || r === \"bigint\" || r === \"boolean\" ? `${e}` : r === \"object\" || r === \"function\" ? (e && Object.getPrototypeOf(e)?.constructor?.name) ?? \"null\" : r;\n}\nfunction g(e, r, t, n, s) {\n const o = s && \"input\" in s ? s.input : t.value, i = s?.expected ?? e.expects ?? null, u = s?.received ?? /* @__PURE__ */ U(o), a = {\n kind: e.kind,\n type: e.type,\n input: o,\n expected: i,\n received: u,\n message: `Invalid ${r}: ${i ? `Expected ${i} but r` : \"R\"}eceived ${u}`,\n requirement: e.requirement,\n path: s?.path,\n issues: s?.issues,\n lang: n.lang,\n abortEarly: n.abortEarly,\n abortPipeEarly: n.abortPipeEarly\n }, p = e.kind === \"schema\", d = s?.message ?? e.message ?? /* @__PURE__ */ Q(e.reference, a.lang) ?? (p ? /* @__PURE__ */ J(a.lang) : null) ?? n.message ?? /* @__PURE__ */ W(a.lang);\n d !== void 0 && (a.message = typeof d == \"function\" ? d(a) : d), p && (t.typed = !1), t.issues ? t.issues.push(a) : t.issues = [a];\n}\n// @__NO_SIDE_EFFECTS__\nfunction h(e) {\n return {\n version: 1,\n vendor: \"valibot\",\n validate(r) {\n return e[\"~run\"]({ value: r }, /* @__PURE__ */ H());\n }\n };\n}\n// @__NO_SIDE_EFFECTS__\nfunction Y(e, r) {\n return Object.hasOwn(e, r) && r !== \"__proto__\" && r !== \"prototype\" && r !== \"constructor\";\n}\n// @__NO_SIDE_EFFECTS__\nfunction Z(e, r) {\n const t = [...new Set(e)];\n return t.length > 1 ? `(${t.join(` ${r} `)})` : t[0] ?? \"never\";\n}\n// @__NO_SIDE_EFFECTS__\nfunction ee(e, r, t) {\n return typeof e.fallback == \"function\" ? e.fallback(r, t) : e.fallback;\n}\n// @__NO_SIDE_EFFECTS__\nfunction A(e, r, t) {\n return typeof e.default == \"function\" ? e.default(r, t) : e.default;\n}\n// @__NO_SIDE_EFFECTS__\nfunction x(e, r) {\n return {\n kind: \"schema\",\n type: \"array\",\n reference: x,\n expects: \"Array\",\n async: !1,\n item: e,\n message: r,\n get \"~standard\"() {\n return /* @__PURE__ */ h(this);\n },\n \"~run\"(t, n) {\n const s = t.value;\n if (Array.isArray(s)) {\n t.typed = !0, t.value = [];\n for (let o = 0; o < s.length; o++) {\n const i = s[o], u = this.item[\"~run\"]({ value: i }, n);\n if (u.issues) {\n const a = {\n type: \"array\",\n origin: \"value\",\n input: s,\n key: o,\n value: i\n };\n for (const p of u.issues)\n p.path ? p.path.unshift(a) : p.path = [a], t.issues?.push(p);\n if (t.issues || (t.issues = u.issues), n.abortEarly) {\n t.typed = !1;\n break;\n }\n }\n u.typed || (t.typed = !1), t.value.push(u.value);\n }\n } else g(this, \"type\", t, n);\n return t;\n }\n };\n}\n// @__NO_SIDE_EFFECTS__\nfunction B(e) {\n return {\n kind: \"schema\",\n type: \"boolean\",\n reference: B,\n expects: \"boolean\",\n async: !1,\n message: e,\n get \"~standard\"() {\n return /* @__PURE__ */ h(this);\n },\n \"~run\"(r, t) {\n return typeof r.value == \"boolean\" ? r.typed = !0 : g(this, \"type\", r, t), r;\n }\n };\n}\n// @__NO_SIDE_EFFECTS__\nfunction k(e, r) {\n return {\n kind: \"schema\",\n type: \"literal\",\n reference: k,\n expects: /* @__PURE__ */ U(e),\n async: !1,\n literal: e,\n message: r,\n get \"~standard\"() {\n return /* @__PURE__ */ h(this);\n },\n \"~run\"(t, n) {\n return t.value === this.literal ? t.typed = !0 : g(this, \"type\", t, n), t;\n }\n };\n}\n// @__NO_SIDE_EFFECTS__\nfunction y(e, r) {\n return {\n kind: \"schema\",\n type: \"nullable\",\n reference: y,\n expects: `(${e.expects} | null)`,\n async: !1,\n wrapped: e,\n default: r,\n get \"~standard\"() {\n return /* @__PURE__ */ h(this);\n },\n \"~run\"(t, n) {\n return t.value === null && (this.default !== void 0 && (t.value = /* @__PURE__ */ A(this, t, n)), t.value === null) ? (t.typed = !0, t) : this.wrapped[\"~run\"](t, n);\n }\n };\n}\n// @__NO_SIDE_EFFECTS__\nfunction D(e) {\n return {\n kind: \"schema\",\n type: \"number\",\n reference: D,\n expects: \"number\",\n async: !1,\n message: e,\n get \"~standard\"() {\n return /* @__PURE__ */ h(this);\n },\n \"~run\"(r, t) {\n return typeof r.value == \"number\" && !isNaN(r.value) ? r.typed = !0 : g(this, \"type\", r, t), r;\n }\n };\n}\n// @__NO_SIDE_EFFECTS__\nfunction b(e, r) {\n return {\n kind: \"schema\",\n type: \"object\",\n reference: b,\n expects: \"Object\",\n async: !1,\n entries: e,\n message: r,\n get \"~standard\"() {\n return /* @__PURE__ */ h(this);\n },\n \"~run\"(t, n) {\n const s = t.value;\n if (s && typeof s == \"object\") {\n t.typed = !0, t.value = {};\n for (const o in this.entries) {\n const i = this.entries[o];\n if (o in s || (i.type === \"exact_optional\" || i.type === \"optional\" || i.type === \"nullish\") && i.default !== void 0) {\n const u = o in s ? s[o] : /* @__PURE__ */ A(i), a = i[\"~run\"]({ value: u }, n);\n if (a.issues) {\n const p = {\n type: \"object\",\n origin: \"value\",\n input: s,\n key: o,\n value: u\n };\n for (const d of a.issues)\n d.path ? d.path.unshift(p) : d.path = [p], t.issues?.push(d);\n if (t.issues || (t.issues = a.issues), n.abortEarly) {\n t.typed = !1;\n break;\n }\n }\n a.typed || (t.typed = !1), t.value[o] = a.value;\n } else if (i.fallback !== void 0) t.value[o] = /* @__PURE__ */ ee(i);\n else if (i.type !== \"exact_optional\" && i.type !== \"optional\" && i.type !== \"nullish\" && (g(this, \"key\", t, n, {\n input: void 0,\n expected: `\"${o}\"`,\n path: [{\n type: \"object\",\n origin: \"key\",\n input: s,\n key: o,\n value: s[o]\n }]\n }), n.abortEarly))\n break;\n }\n } else g(this, \"type\", t, n);\n return t;\n }\n };\n}\n// @__NO_SIDE_EFFECTS__\nfunction f(e, r) {\n return {\n kind: \"schema\",\n type: \"optional\",\n reference: f,\n expects: `(${e.expects} | undefined)`,\n async: !1,\n wrapped: e,\n default: r,\n get \"~standard\"() {\n return /* @__PURE__ */ h(this);\n },\n \"~run\"(t, n) {\n return t.value === void 0 && (this.default !== void 0 && (t.value = /* @__PURE__ */ A(this, t, n)), t.value === void 0) ? (t.typed = !0, t) : this.wrapped[\"~run\"](t, n);\n }\n };\n}\n// @__NO_SIDE_EFFECTS__\nfunction R(e, r, t) {\n return {\n kind: \"schema\",\n type: \"record\",\n reference: R,\n expects: \"Object\",\n async: !1,\n key: e,\n value: r,\n message: t,\n get \"~standard\"() {\n return /* @__PURE__ */ h(this);\n },\n \"~run\"(n, s) {\n const o = n.value;\n if (o && typeof o == \"object\") {\n n.typed = !0, n.value = {};\n for (const i in o) if (/* @__PURE__ */ Y(o, i)) {\n const u = o[i], a = this.key[\"~run\"]({ value: i }, s);\n if (a.issues) {\n const d = {\n type: \"object\",\n origin: \"key\",\n input: o,\n key: i,\n value: u\n };\n for (const S of a.issues)\n S.path = [d], n.issues?.push(S);\n if (n.issues || (n.issues = a.issues), s.abortEarly) {\n n.typed = !1;\n break;\n }\n }\n const p = this.value[\"~run\"]({ value: u }, s);\n if (p.issues) {\n const d = {\n type: \"object\",\n origin: \"value\",\n input: o,\n key: i,\n value: u\n };\n for (const S of p.issues)\n S.path ? S.path.unshift(d) : S.path = [d], n.issues?.push(S);\n if (n.issues || (n.issues = p.issues), s.abortEarly) {\n n.typed = !1;\n break;\n }\n }\n (!a.typed || !p.typed) && (n.typed = !1), a.typed && (n.value[a.value] = p.value);\n }\n } else g(this, \"type\", n, s);\n return n;\n }\n };\n}\n// @__NO_SIDE_EFFECTS__\nfunction l(e) {\n return {\n kind: \"schema\",\n type: \"string\",\n reference: l,\n expects: \"string\",\n async: !1,\n message: e,\n get \"~standard\"() {\n return /* @__PURE__ */ h(this);\n },\n \"~run\"(r, t) {\n return typeof r.value == \"string\" ? r.typed = !0 : g(this, \"type\", r, t), r;\n }\n };\n}\n// @__NO_SIDE_EFFECTS__\nfunction _(e) {\n let r;\n if (e) for (const t of e) r ? r.push(...t.issues) : r = t.issues;\n return r;\n}\n// @__NO_SIDE_EFFECTS__\nfunction G(e, r) {\n return {\n kind: \"schema\",\n type: \"union\",\n reference: G,\n expects: /* @__PURE__ */ Z(e.map((t) => t.expects), \"|\"),\n async: !1,\n options: e,\n message: r,\n get \"~standard\"() {\n return /* @__PURE__ */ h(this);\n },\n \"~run\"(t, n) {\n let s, o, i;\n for (const u of this.options) {\n const a = u[\"~run\"]({ value: t.value }, n);\n if (a.typed) if (a.issues) o ? o.push(a) : o = [a];\n else {\n s = a;\n break;\n }\n else i ? i.push(a) : i = [a];\n }\n if (s) return s;\n if (o) {\n if (o.length === 1) return o[0];\n g(this, \"type\", t, n, { issues: /* @__PURE__ */ _(o) }), t.typed = !0;\n } else {\n if (i?.length === 1) return i[0];\n g(this, \"type\", t, n, { issues: /* @__PURE__ */ _(i) });\n }\n return t;\n }\n };\n}\nconst v = (e) => /* @__PURE__ */ G(e.map((r) => /* @__PURE__ */ k(r))), te = /* @__PURE__ */ b({\n \"en-au\": /* @__PURE__ */ l(),\n \"en-gb\": /* @__PURE__ */ l(),\n \"en-us\": /* @__PURE__ */ l(),\n \"es-es\": /* @__PURE__ */ l()\n}), O = /* @__PURE__ */ b({\n \"en-au\": /* @__PURE__ */ f(/* @__PURE__ */ l()),\n \"en-gb\": /* @__PURE__ */ f(/* @__PURE__ */ l()),\n \"en-us\": /* @__PURE__ */ f(/* @__PURE__ */ l()),\n \"es-es\": /* @__PURE__ */ f(/* @__PURE__ */ l())\n}), re = v([\"amber\", \"green\", \"red\", \"other\"]), ne = v([\n \"alpha\",\n \"beta\",\n \"generalAvailability\",\n \"notApplicable\",\n \"preAlpha\",\n \"proposed\",\n \"releaseCandidate\",\n \"unavailable\",\n \"underReview\"\n]), se = v([\n \"app\",\n \"connector\",\n \"connectorConnection\",\n \"context\",\n \"contextModelGroup\",\n \"contextModel\",\n \"contextModelDimensionGroup\",\n \"contextModelDimension\",\n \"contextModelDimensionHierarchy\",\n \"contextModelEntityGroup\",\n \"contextModelEntity\",\n \"contextModelEntityDataItem\",\n \"contextModelEntityEvent\",\n \"contextModelEntityPrimaryMeasure\",\n \"contextModelSecondaryMeasureGroup\",\n \"contextModelSecondaryMeasure\",\n \"dataView\",\n \"dimension\",\n \"engine\",\n \"eventQuery\",\n \"presenter\",\n \"presenterPresentation\",\n \"tool\"\n]);\nv([\"app\", \"engine\", \"connector\", \"context\", \"presenter\", \"tool\"]);\nconst oe = /* @__PURE__ */ b({\n id: /* @__PURE__ */ l(),\n color: re,\n label: /* @__PURE__ */ l()\n}), T = {\n id: /* @__PURE__ */ l(),\n label: O,\n description: O,\n firstCreatedAt: /* @__PURE__ */ f(/* @__PURE__ */ D()),\n icon: /* @__PURE__ */ y(/* @__PURE__ */ l()),\n iconDark: /* @__PURE__ */ y(/* @__PURE__ */ l()),\n lastUpdatedAt: /* @__PURE__ */ y(/* @__PURE__ */ D()),\n status: /* @__PURE__ */ y(oe),\n statusId: ne\n}, De = /* @__PURE__ */ b({\n ...T,\n typeId: se\n}), $ = {\n ...T,\n version: /* @__PURE__ */ l()\n}, P = /* @__PURE__ */ b({\n id: /* @__PURE__ */ l(),\n label: O,\n description: O,\n icon: /* @__PURE__ */ y(/* @__PURE__ */ l()),\n iconDark: /* @__PURE__ */ y(/* @__PURE__ */ l()),\n order: /* @__PURE__ */ D(),\n path: /* @__PURE__ */ l()\n}), E = (e) => {\n const r = Object.entries(e).filter((t) => typeof t[1] == \"string\");\n return new Map(r);\n}, ie = (e, r, t = I) => {\n const n = e.get(r);\n if (n !== void 0) return n;\n if (t !== r)\n return e.get(t);\n}, ae = [\n { id: \"alpha\", color: \"red\", labels: E({ \"en-gb\": \"alpha\" }) },\n { id: \"beta\", color: \"amber\", labels: E({ \"en-gb\": \"beta\" }) },\n { id: \"generalAvailability\", color: \"green\", labels: E({ \"en-gb\": \"\" }) },\n { id: \"notApplicable\", color: \"green\", labels: E({ \"en-gb\": \"not-applicable\" }) },\n { id: \"preAlpha\", color: \"red\", labels: E({ \"en-gb\": \"pre-alpha\" }) },\n { id: \"proposed\", color: \"other\", labels: E({ \"en-gb\": \"proposed\" }) },\n { id: \"releaseCandidate\", color: \"green\", labels: E({ \"en-gb\": \"release-candidate\" }) },\n { id: \"unavailable\", color: \"other\", labels: E({ \"en-gb\": \"unavailable\" }) },\n { id: \"underReview\", color: \"other\", labels: E({ \"en-gb\": \"under-review\" }) }\n], ke = (e, r = I) => {\n const t = ae.find((n) => n.id === e);\n if (t) {\n const n = ie(t.labels, r);\n return { id: t.id, color: t.color, label: n ?? t.id };\n }\n return { id: e, color: \"other\", label: e };\n}, le = v([\"application\", \"curatedDataset\", \"database\", \"fileStore\"]), ce = v([\n \"abortOperation\",\n \"authenticateConnection\",\n \"createObject\",\n \"describeConnection\",\n \"dropObject\",\n \"findObject\",\n \"getReader\",\n \"getRecord\",\n \"listNodes\",\n \"previewObject\",\n \"removeRecords\",\n \"retrieveRecords\",\n \"upsertRecords\"\n]), ue = v([\"bidirectional\", \"destination\", \"source\", \"unknown\"]), pe = v([\"apiKey\", \"disabled\", \"oAuth2\", \"none\"]), de = /* @__PURE__ */ b({\n id: /* @__PURE__ */ l(),\n label: /* @__PURE__ */ l()\n}), fe = /* @__PURE__ */ b({\n authMethodId: pe,\n activeConnectionCount: /* @__PURE__ */ f(/* @__PURE__ */ D()),\n canDescribe: /* @__PURE__ */ f(/* @__PURE__ */ B()),\n id: /* @__PURE__ */ f(/* @__PURE__ */ l()),\n label: /* @__PURE__ */ f(te),\n maxConnectionCount: /* @__PURE__ */ f(/* @__PURE__ */ D()),\n params: /* @__PURE__ */ f(/* @__PURE__ */ x(/* @__PURE__ */ R(/* @__PURE__ */ l(), /* @__PURE__ */ l())))\n}), we = /* @__PURE__ */ b({\n ...$,\n typeId: /* @__PURE__ */ k(\"connector\"),\n category: /* @__PURE__ */ y(de),\n categoryId: le,\n implementations: /* @__PURE__ */ R(/* @__PURE__ */ l(), fe),\n operations: /* @__PURE__ */ x(ce),\n usageId: ue,\n vendorAccountURL: /* @__PURE__ */ y(/* @__PURE__ */ l()),\n vendorDocumentationURL: /* @__PURE__ */ y(/* @__PURE__ */ l()),\n vendorHomeURL: /* @__PURE__ */ y(/* @__PURE__ */ l())\n}), Ie = [\"createObject\", \"dropObject\", \"removeRecords\", \"upsertRecords\"], Me = [\"findObject\", \"getRecord\", \"listNodes\", \"previewObject\", \"retrieveRecords\"], M = (e) => {\n const r = Object.entries(e).filter((t) => typeof t[1] == \"string\");\n return new Map(r);\n};\nM({ \"en-gb\": \"Application\" }), M({ \"en-gb\": \"Curated Dataset\" }), M({ \"en-gb\": \"Database\" }), M({ \"en-gb\": \"File Store\" });\nconst me = v([\"list\"]), be = /* @__PURE__ */ b({\n ...T,\n typeId: /* @__PURE__ */ k(\"contextModelGroup\"),\n modelRefs: /* @__PURE__ */ x(P),\n order: /* @__PURE__ */ D()\n}), Oe = /* @__PURE__ */ b({\n ...$,\n typeId: /* @__PURE__ */ k(\"context\"),\n models: /* @__PURE__ */ x(be),\n operations: /* @__PURE__ */ x(me)\n});\nclass F extends Error {\n locator;\n constructor(r, t, n) {\n super(r, n), this.name = \"DataPosError\", this.locator = t;\n }\n}\nclass w extends F {\n constructor(r, t, n) {\n super(r, t, n), this.name = \"ApplicationError\";\n }\n}\nclass Ce extends w {\n constructor(r, t, n) {\n super(r, t, n), this.name = \"APIError\";\n }\n}\nclass Ne extends w {\n constructor(r, t, n) {\n super(r, t, n), this.name = \"EngineError\";\n }\n}\nclass z extends w {\n body;\n constructor(r, t, n, s) {\n super(r, t, s), this.name = \"FetchError\", this.body = n;\n }\n}\nclass ye extends w {\n componentName;\n info;\n constructor(r, t, n, s, o) {\n super(r, t, o), this.name = \"VueHandledError\", this.info = n, this.componentName = s;\n }\n}\nclass je extends w {\n constructor(r, t, n) {\n super(r, t, n), this.name = \"WindowHandledRuntimeError\";\n }\n}\nclass Ae extends w {\n constructor(r, t, n) {\n super(r, t, n), this.name = \"WindowHandledPromiseRejectionError\";\n }\n}\nclass Re extends F {\n constructor(r, t, n) {\n super(r, t, n), this.name = \"OperationalError\";\n }\n}\nasync function Te(e, r, t) {\n const n = ` - ${e.statusText}`, s = `${r} Response status '${e.status}${e.statusText ? n : \"\"}' received.`, o = await e.text();\n return new z(s, t, o);\n}\nfunction $e(e) {\n return e.map((r) => r.message).join(\" \");\n}\nfunction Fe(e) {\n if (e instanceof Error) return e;\n if (typeof e == \"string\") return new Error(e);\n if (typeof e == \"number\" || typeof e == \"boolean\" || typeof e == \"bigint\") return new Error(String(e));\n if (typeof e == \"symbol\") return new Error(e.description ?? \"Unknown error\");\n if (e && typeof e == \"object\")\n try {\n return new Error(JSON.stringify(e));\n } catch {\n return new Error(\"Unknown error\");\n }\n return new Error(\"Unknown error\");\n}\nfunction Le(e) {\n const r = /* @__PURE__ */ new Set(), t = [];\n let n = e;\n for (; n && !r.has(n); ) {\n r.add(n);\n let s;\n if (n instanceof z)\n s = { body: n.body, locator: n.locator, message: n.message, name: n.name, stack: n.stack }, n = n.cause;\n else if (n instanceof ye)\n s = { componentName: n.componentName, info: n.info, locator: n.locator, message: n.message, name: n.name, stack: n.stack }, n = n.cause;\n else if (n instanceof F)\n s = { locator: n.locator, message: n.message, name: n.name, stack: n.stack }, n = n.cause;\n else if (n instanceof Error) {\n const o = n;\n s = { locator: \"\", message: o.message, name: o.name, stack: o.stack }, n = o.cause;\n } else\n s = { locator: \"\", message: String(n), name: \"Error\" }, n = void 0;\n /(?:\\.{3}|[.!?])$/.test(s.message) || (s.message += \".\"), t.push(s);\n }\n return t;\n}\nconst ge = v([\"list\", \"render\", \"setColorMode\"]), _e = /* @__PURE__ */ b({\n ...$,\n typeId: /* @__PURE__ */ k(\"presenter\"),\n presentations: /* @__PURE__ */ x(P),\n operations: /* @__PURE__ */ x(ge)\n});\nfunction Ue() {\n return { render: he };\n}\nfunction he(e, r, t) {\n t.textContent = \"Cytoscape.js diagram goes here...\";\n}\nfunction Be() {\n return { render: ve };\n}\nfunction ve(e, r) {\n console.log(1111, e), console.log(2222, r), console.log(3333, r.childNodes), console.log(4444, r.children);\n}\nconst V = \"en-US\", C = /* @__PURE__ */ new Map();\nfunction Ge(e) {\n switch (e) {\n case \"Edm.Binary\":\n return \"unknown\";\n // Binary...\n case \"Edm.Boolean\":\n return \"boolean\";\n case \"Edm.Byte\":\n return \"wholeNumber\";\n case \"Edm.DateTime\":\n return \"moment\";\n // DateTime...\n case \"Edm.DateTimeOffset\":\n return \"moment\";\n // DateTimeOffset...\n case \"Edm.Decimal\":\n return \"decimalNumber\";\n case \"Edm.Double\":\n return \"decimalNumber\";\n case \"Edm.Guid\":\n return \"string\";\n case \"Edm.Int16\":\n return \"wholeNumber\";\n case \"Edm.Int32\":\n return \"wholeNumber\";\n case \"Edm.Int64\":\n return \"wholeNumber\";\n case \"Edm.SByte\":\n return \"wholeNumber\";\n case \"Edm.Single\":\n return \"decimalNumber\";\n case \"Edm.String\":\n return \"string\";\n case \"Edm.Time\":\n return \"momentTime\";\n // Time...\n default:\n return \"unknown\";\n }\n}\nfunction Pe(e) {\n if (e) {\n const r = e.lastIndexOf(\"/\"), t = e.lastIndexOf(\".\", r === -1 ? e.length : r);\n return t === -1 ? e : e.slice(0, Math.max(0, t));\n }\n}\nfunction ze(e) {\n if (e) {\n const r = e.lastIndexOf(\".\");\n if (r !== -1) return e.slice(Math.max(0, r + 1));\n }\n}\nfunction m(e, r = 2, t = r, n = V) {\n if (e == null) return \"\";\n const s = `${n}decimal${r}.${t}`;\n let o = C.get(s);\n return o || (o = new Intl.NumberFormat(n, {\n localeMatcher: \"best fit\",\n maximumFractionDigits: r,\n minimumFractionDigits: t,\n minimumIntegerDigits: 1,\n style: \"decimal\",\n useGrouping: !0\n }), C.set(s, o)), o.format(e);\n}\nfunction Ve(e) {\n return e == null ? \"\" : e < 1e3 ? N(e) : e < 1e6 ? `${m(e / 1e3, 2, 0)}K` : e < 1e9 ? `${m(e / 1e6, 2, 0)}M` : e < 1e12 ? `${m(e / 1e9, 2, 0)}B` : `${m(e / 1e12, 2, 0)}T`;\n}\nfunction He(e) {\n return e == null ? \"\" : e === 1 ? \"1 byte\" : e < 1024 ? `${N(e)} bytes` : e < 1048576 ? `${m(e / 1024, 2, 0)} KB` : e < 1073741824 ? `${m(e / 1048576, 2, 0)} MB` : e < 1099511627776 ? `${m(e / 1073741824, 2, 0)} GB` : `${m(e / 1099511627776, 2, 0)} TB`;\n}\nfunction Ke(e) {\n return e == null ? \"\" : e < 1e3 ? `${N(e)} ms` : e === 1e3 ? `${N(e)} sec` : e < 6e4 ? `${m(e / 1e3, 2, 0)} secs` : e === 6e4 ? \"1 min\" : e < 36e5 ? `${m(e / 6e4, 2, 0)} mins` : e === 36e5 ? \"1 hr\" : e < 864e5 ? `${m(e / 36e5, 2, 0)} hrs` : e === 864e5 ? \"1 day\" : `${m(e / 864e5, 2, 0)} days`;\n}\nfunction N(e, r = V) {\n if (e == null) return \"\";\n const t = `${r}decimal0.0`;\n let n = C.get(t);\n return n || (n = new Intl.NumberFormat(r, {\n localeMatcher: \"best fit\",\n maximumFractionDigits: 0,\n minimumFractionDigits: 0,\n minimumIntegerDigits: 1,\n style: \"decimal\",\n useGrouping: !0\n }), C.set(t, n)), n.format(e);\n}\nfunction We(e) {\n switch (e) {\n case \"csv\":\n return \"text/csv\";\n case \"tab\":\n case \"tsv\":\n return \"text/tab-separated-values\";\n case \"xls\":\n return \"application/vnd.ms-excel\";\n case \"xlsx\":\n return \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\";\n default:\n return \"application/octet-stream\";\n }\n}\nconst c = (e) => new Map(Object.entries(e)), L = (e, r, t = I) => {\n const n = e.get(r);\n if (n !== void 0) return n;\n if (t !== r)\n return e.get(t);\n}, Ee = [\n { id: \"dtv\", labels: c({ \"en-gb\": \"Delimited Text\" }) },\n { id: \"e/e\", labels: c({ \"en-gb\": \"Entity/Event\" }) },\n { id: \"jsonArray\", labels: c({ \"en-gb\": \"JSON Array\" }) },\n { id: \"spss\", labels: c({ \"en-gb\": \"SPSS\" }) },\n { id: \"xls\", labels: c({ \"en-gb\": \"XLS\" }) },\n { id: \"xlsx\", labels: c({ \"en-gb\": \"XLSX\" }) },\n { id: \"xml\", labels: c({ \"en-gb\": \"XML\" }) }\n], Xe = (e = I) => {\n const r = [];\n for (const t of Ee) {\n const n = L(t.labels, e);\n r.push({ id: t.id, label: n ?? t.id });\n }\n return r;\n}, xe = [\n { id: `\n`, labels: c({ \"en-gb\": \"Newline\" }) },\n { id: \"\\r\", labels: c({ \"en-gb\": \"Carriage Return\" }) },\n { id: `\\r\n`, labels: c({ \"en-gb\": \"Carriage Return/Newline\" }) }\n], Je = (e = I) => {\n const r = [];\n for (const t of xe) {\n const n = L(t.labels, e);\n r.push({ id: t.id, label: n ?? t.id });\n }\n return r;\n}, Se = [\n { id: \":\", labels: c({ \"en-gb\": \"Colon\" }) },\n { id: \",\", labels: c({ \"en-gb\": \"Comma\" }) },\n { id: \"!\", labels: c({ \"en-gb\": \"Exclamation Mark\" }) },\n // { id: '', label: { 'en-gb': 'Other' } }, // TODO: Maybe set this to a 'not printing' or special ascii character when there is a user supplied delimited, rather than ''?\n { id: \"0x1E\", labels: c({ \"en-gb\": \"Record Separator\" }) },\n { id: \";\", labels: c({ \"en-gb\": \"Semicolon\" }) },\n { id: \" \", labels: c({ \"en-gb\": \"Space\" }) },\n { id: \"\t\", labels: c({ \"en-gb\": \"Tab\" }) },\n { id: \"_\", labels: c({ \"en-gb\": \"Underscore\" }) },\n { id: \"0x1F\", labels: c({ \"en-gb\": \"Unit Separator\" }) },\n { id: \"|\", labels: c({ \"en-gb\": \"Vertical Bar\" }) }\n], qe = (e = I) => {\n const r = [];\n for (const t of Se) {\n const n = L(t.labels, e);\n r.push({ id: t.id, label: n ?? t.id });\n }\n return r;\n}, I = \"en-gb\";\nexport {\n Ce as APIError,\n w as ApplicationError,\n Ie as CONNECTOR_DESTINATION_OPERATIONS,\n Me as CONNECTOR_SOURCE_OPERATIONS,\n I as DEFAULT_LOCALE_CODE,\n Ne as EngineError,\n z as FetchError,\n Re as OperationalError,\n ye as VueError,\n Ae as WindowPromiseRejectionError,\n je as WindowRuntimeError,\n Te as buildFetchError,\n De as componentConfigSchema,\n $e as concatenateSerialisedErrorMessages,\n we as connectorConfigSchema,\n Oe as contextConfigSchema,\n Ge as convertODataTypeIdToUsageTypeId,\n ze as extractExtensionFromPath,\n Pe as extractNameFromPath,\n m as formatNumberAsDecimalNumber,\n Ke as formatNumberAsDuration,\n Ve as formatNumberAsSize,\n He as formatNumberAsStorageSize,\n N as formatNumberAsWholeNumber,\n ke as getComponentStatus,\n Xe as getDataFormats,\n Je as getRecordDelimiters,\n qe as getValueDelimiters,\n We as lookupMimeTypeForExtension,\n Fe as normalizeToError,\n _e as presenterConfigSchema,\n Le as serialiseError,\n Ue as useCytoscapeJS,\n Be as useDataTable\n};\n","// type RustBindings = typeof import('../rust/datapos-connector-file-store-emulator-core/pkg/datapos_connector_file_store_emulator_core.js');\nimport type * as RustModule from '../rust/datapos-connector-file-store-emulator-core/pkg/datapos_connector_file_store_emulator_core.js';\n\ntype RustBindings = typeof RustModule;\n\nlet rustBindingsPromise: Promise<RustBindings> | undefined;\n\nasync function loadRustBindings(): Promise<RustBindings> {\n rustBindingsPromise ??= import('../rust/datapos-connector-file-store-emulator-core/pkg/datapos_connector_file_store_emulator_core.js');\n return rustBindingsPromise;\n}\n\nexport async function addNumbersWithRust(left: number, right: number): Promise<number> {\n const { add_numbers } = await loadRustBindings();\n return add_numbers(Math.trunc(left), Math.trunc(right));\n}\n\nexport async function checksumWithRust(input: string): Promise<number> {\n const { checksum_from_rust } = await loadRustBindings();\n return checksum_from_rust(input);\n}\n","/*\n * File store emulator connector class.\n */\n\n// NOTE: Consider Cloudflare R2 Download URL: https://plugins-eu.datapositioning.app/connectors/datapos-connector-file-store-emulator-es.js. This would allow us to secure the bucket?\n\n// Dependencies - Vendor.\nimport type { HeadersInit } from 'undici';\n\n/** Dependencies - Framework. */\nimport { normalizeToError } from '@datapos/datapos-shared';\nimport type {\n ConnectionConfig,\n ConnectionNodeConfig,\n Connector,\n ConnectorConfig,\n ConnectorTools,\n FindResult,\n FindSettings,\n GetReaderResult,\n GetReaderSettings,\n ListResult,\n ListSettings,\n PreviewResult,\n PreviewSettings,\n RetrieveSettings,\n RetrieveSummary\n} from '@datapos/datapos-shared';\n\n/** Dependencies - Data. */\nimport config from '~/config.json';\nimport fileStoreIndex from '@/fileStoreIndex.json';\nimport { version } from '~/package.json';\nimport { addNumbersWithRust, checksumWithRust } from '@/rustBridge';\n\n/** Interfaces/Types - File store index. */\ntype FileStoreIndexItem =\n | ({ typeId: 'folder'; childCount: number } & { name: string })\n | ({ typeId: 'object'; id: string; lastModifiedAt: number; size: number } & { name: string });\ntype FileStoreIndex = Record<string, FileStoreIndexItem[]>;\n\n/** Constants */\nconst CALLBACK_PREVIEW_ABORTED = 'Connector failed to abort preview object operation.';\nconst CALLBACK_RETRIEVE_ABORTED = 'Connector failed to abort retrieve all records operation.';\nconst DEFAULT_PREVIEW_CHUNK_SIZE = 4096;\nconst DEFAULT_RETRIEVE_CHUNK_SIZE = 1000;\nconst URL_PREFIX = 'https://sample-data-eu.datapos.app';\n\n/** Classes - File store emulator connector. */\nexport default class FileStoreEmulatorConnector implements Connector {\n abortController: AbortController | undefined;\n readonly config: ConnectorConfig;\n readonly connectionConfig: ConnectionConfig;\n readonly tools: ConnectorTools;\n\n constructor(connectionConfig: ConnectionConfig, tools: ConnectorTools) {\n this.abortController = undefined;\n this.config = config as ConnectorConfig;\n this.config.version = version;\n this.connectionConfig = connectionConfig;\n this.tools = tools;\n }\n\n // Operations - Abort operation.\n abortOperation(connector: FileStoreEmulatorConnector): void {\n if (!connector.abortController) return;\n connector.abortController.abort();\n connector.abortController = undefined;\n }\n\n // Operations - Find object.\n findObject(connector: FileStoreEmulatorConnector, settings: FindSettings): Promise<FindResult> {\n // Loop through the file store index checking for an object entry with an identifier equal to the object name.\n for (const folderPath in fileStoreIndex) {\n if (Object.prototype.hasOwnProperty.call(fileStoreIndex, folderPath)) {\n // eslint-disable-next-line security/detect-object-injection\n const indexItems = (fileStoreIndex as FileStoreIndex)[folderPath];\n const indexItem = indexItems?.find((indexItem) => indexItem.typeId === 'object' && indexItem.id === settings.objectName);\n if (indexItem) return Promise.resolve({ folderPath }); // Found, return folder path.\n }\n }\n return Promise.resolve({}); // Not found, return undefined folder path.\n }\n\n // Operations - Get reader.\n async getReader(connector: FileStoreEmulatorConnector, settings: GetReaderSettings): Promise<GetReaderResult> {\n try {\n console.log('getReader', 'connector', connector);\n console.log('getReader', 'settings', settings);\n const response = await fetch('https://sample-data-eu.datapos.app/fileStore/ENGAGEMENT_START_EVENTS_202405121858.csv');\n // const response = await fetch('https://sample-data-eu.datapos.app/WDI_Data.csv');\n console.log('getReader', 'response', response);\n if (!response.body) throw new Error('ReadableStream not supported by this browser.');\n\n await this.addUsingRust(12, 56);\n const sum = await this.versionChecksumUsingRust();\n console.log('sum', sum);\n\n return await Promise.resolve({ readable: response.body }); // Not found, return undefined folder path.\n } catch (error) {\n connector.abortController = undefined;\n throw error;\n }\n }\n\n // Operations - List nodes.\n listNodes(connector: FileStoreEmulatorConnector, settings: ListSettings): Promise<ListResult> {\n const indexItems = (fileStoreIndex as FileStoreIndex)[settings.folderPath] ?? [];\n const connectionNodeConfigs: ConnectionNodeConfig[] = [];\n for (const indexItem of indexItems) {\n if (indexItem.typeId === 'folder') {\n connectionNodeConfigs.push(this.constructFolderNodeConfig(settings.folderPath, indexItem.name, indexItem.childCount));\n } else {\n connectionNodeConfigs.push(this.constructObjectNodeConfig(settings.folderPath, indexItem.id, indexItem.name, indexItem.lastModifiedAt, indexItem.size));\n }\n }\n return Promise.resolve({ cursor: undefined, isMore: false, connectionNodeConfigs, totalCount: connectionNodeConfigs.length });\n }\n\n // Operations - Preview object.\n async previewObject(connector: FileStoreEmulatorConnector, settings: PreviewSettings): Promise<PreviewResult> {\n try {\n // Create an abort controller. Get the signal for the abort controller and add an abort listener.\n connector.abortController = new AbortController();\n const signal = connector.abortController.signal;\n signal.addEventListener('abort', () => {\n throw new this.tools.dataPos.OperationalError(CALLBACK_PREVIEW_ABORTED, 'datapos-connector-file-store-emulator|Connector|preview.abort');\n });\n\n // Fetch chunk from start of file.\n const url = `${URL_PREFIX}/fileStore${settings.path}`;\n const headers: HeadersInit = { Range: `bytes=0-${settings.chunkSize != null || DEFAULT_PREVIEW_CHUNK_SIZE}` };\n const response = await fetch(encodeURI(url), { headers, signal });\n if (response.ok) {\n connector.abortController = undefined;\n return { data: new Uint8Array(await response.arrayBuffer()), typeId: 'uint8Array' };\n } else {\n throw await this.tools.dataPos.buildFetchError(response, `Failed to fetch '${settings.path}' file.`, 'datapos-connector-file-store-emulator|Connector|preview');\n }\n } catch (error) {\n connector.abortController = undefined;\n throw error;\n }\n }\n\n // Operations - Retrieve records.\n async retrieveRecords(\n connector: FileStoreEmulatorConnector,\n settings: RetrieveSettings,\n chunk: (records: string[][]) => void,\n complete: (result: RetrieveSummary) => void\n ): Promise<void> {\n return new Promise((resolve, reject) => {\n try {\n // Create an abort controller and get the signal. Add an abort listener to the signal.\n connector.abortController = new AbortController();\n const signal = connector.abortController.signal;\n signal.addEventListener(\n 'abort',\n () => {\n connector.abortController = undefined;\n reject(new connector.tools.dataPos.OperationalError(CALLBACK_RETRIEVE_ABORTED, 'datapos-connector-file-store-emulator|Connector|retrieve.abort'));\n },\n { once: true }\n );\n\n // Parser - Declare variables.\n let pendingRows: string[][] = []; // Array to store rows of parsed field values and associated information.\n\n // Parser - Create a parser object for CSV parsing.\n const parser = connector.tools.csvParse({\n delimiter: settings.valueDelimiterId,\n info: true,\n relax_column_count: true,\n relax_quotes: true\n });\n\n // Parser - Event listener for the 'readable' (data available) event.\n parser.on('readable', () => {\n try {\n let data: string[] | null;\n while ((data = parser.read() as string[] | null) !== null) {\n signal.throwIfAborted(); // Check if the abort signal has been triggered.\n pendingRows.push(data); // Append the row of parsed values and associated information to the pending rows array.\n if (pendingRows.length < DEFAULT_RETRIEVE_CHUNK_SIZE) continue; // Continue with next iteration if the pending rows array is not yet full.\n chunk([]); // Pass the pending rows to the engine using the 'chunk' callback.\n pendingRows = []; // Clear the pending rows array in preparation for the next batch of data.\n }\n } catch (error) {\n connector.abortController = undefined;\n reject(normalizeToError(error));\n }\n });\n\n // Parser - Event listener for the 'error' event.\n parser.on('error', (error) => {\n connector.abortController = undefined;\n reject(normalizeToError(error));\n });\n\n // Parser - Event listener for the 'end' (end of data) event.\n parser.on('end', () => {\n try {\n signal.throwIfAborted(); // Check if the abort signal has been triggered.\n connector.abortController = undefined; // Clear the abort controller.\n if (pendingRows.length > 0) {\n chunk([]);\n pendingRows = [];\n }\n complete({\n byteCount: parser.info.bytes,\n commentLineCount: parser.info.comment_lines,\n emptyLineCount: parser.info.empty_lines,\n invalidFieldLengthCount: parser.info.invalid_field_length,\n lineCount: parser.info.lines,\n recordCount: parser.info.records\n });\n resolve();\n } catch (error) {\n connector.abortController = undefined;\n reject(normalizeToError(error));\n }\n });\n\n // Fetch, decode and forward the contents of the file to the parser.\n const url = `${URL_PREFIX}/fileStore${settings.path}`;\n fetch(encodeURI(url), { signal })\n .then(async (response) => {\n try {\n if (response.ok && response.body) {\n const stream = response.body.pipeThrough(new TextDecoderStream(settings.encodingId));\n const decodedStreamReader = stream.getReader();\n let result = await decodedStreamReader.read();\n while (!result.done) {\n signal.throwIfAborted(); // Check if the abort signal has been triggered.\n // Write the decoded data to the parser and terminate if there is an error.\n parser.write(result.value, (error) => {\n if (error) {\n connector.abortController = undefined;\n reject(normalizeToError(error));\n }\n });\n result = await decodedStreamReader.read();\n }\n parser.end(); // Signal no more data will be written.\n } else {\n const error = await connector.tools.dataPos.buildFetchError(\n response,\n `Failed to fetch '${settings.path}' file.`,\n 'datapos-connector-file-store-emulator|Connector|retrieve'\n );\n connector.abortController = undefined;\n reject(error);\n }\n } catch (error) {\n connector.abortController = undefined;\n reject(normalizeToError(error));\n }\n })\n .catch((error: unknown) => {\n connector.abortController = undefined;\n reject(normalizeToError(error));\n });\n } catch (error) {\n connector.abortController = undefined;\n reject(normalizeToError(error));\n }\n });\n }\n\n /** Utilities - Rust helpers. */\n private async addUsingRust(left: number, right: number): Promise<number> {\n return addNumbersWithRust(left, right);\n }\n\n private async versionChecksumUsingRust(): Promise<number> {\n return checksumWithRust(this.config.version);\n }\n\n /** Utilities - Construct folder node configuration. */\n private constructFolderNodeConfig(folderPath: string, name: string, childCount: number): ConnectionNodeConfig {\n return { id: this.tools.nanoid(), childCount, folderPath, label: name, name, typeId: 'folder' };\n }\n\n /** Utilities - Construct object (file) node configuration. */\n private constructObjectNodeConfig(folderPath: string, id: string, fullName: string, lastModifiedAt: number, size: number): ConnectionNodeConfig {\n const name = this.tools.dataPos.extractNameFromPath(fullName) ?? '';\n const extension = this.tools.dataPos.extractExtensionFromPath(fullName);\n const lastModifiedAtTimestamp = lastModifiedAt;\n const mimeType = this.tools.dataPos.lookupMimeTypeForExtension(extension);\n return { id, extension, folderPath, label: fullName, lastModifiedAt: lastModifiedAtTimestamp, mimeType, name, size, typeId: 'object' };\n }\n}\n"],"names":["j","H","e","K","W","X","J","q","Q","r","U","g","t","n","o","i","u","a","p","d","h","Z","k","_","G","v","E","M","Fe","rustBindingsPromise","loadRustBindings","addNumbersWithRust","left","right","add_numbers","checksumWithRust","input","checksum_from_rust","CALLBACK_PREVIEW_ABORTED","CALLBACK_RETRIEVE_ABORTED","DEFAULT_PREVIEW_CHUNK_SIZE","DEFAULT_RETRIEVE_CHUNK_SIZE","URL_PREFIX","FileStoreEmulatorConnector","connectionConfig","tools","config","version","connector","settings","folderPath","fileStoreIndex","indexItem","response","sum","error","indexItems","connectionNodeConfigs","signal","url","headers","chunk","complete","resolve","reject","pendingRows","parser","data","normalizeToError","decodedStreamReader","result","name","childCount","id","fullName","lastModifiedAt","size","extension","lastModifiedAtTimestamp","mimeType"],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,94 @@
1
+ const Y = "data:application/wasm;base64,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LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3dhc20tYmluZGdlbi0wLjIuMTA2L3NyYy9leHRlcm5yZWYucnMAL3J1c3QvZGVwcy9kbG1hbGxvYy0wLjIuMTAvc3JjL2RsbWFsbG9jLnJzAGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplID49IHNpemUgKyBtaW5fb3ZlcmhlYWQAkgAQACoAAACxBAAACQAAAGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplIDw9IHNpemUgKyBtYXhfb3ZlcmhlYWQAAJIAEAAqAAAAtwQAAA0AAAAgABAAcQAAAH8AAAARAAAAIAAQAHEAAACMAAAAEQBB3ILAAAsBBABwCXByb2R1Y2VycwIIbGFuZ3VhZ2UBBFJ1c3QADHByb2Nlc3NlZC1ieQMFcnVzdGMdMS45MS4xIChlZDYxZTdkN2UgMjAyNS0xMS0wNykGd2FscnVzBjAuMjQuNAx3YXNtLWJpbmRnZW4HMC4yLjEwNgBrD3RhcmdldF9mZWF0dXJlcwYrD211dGFibGUtZ2xvYmFscysTbm9udHJhcHBpbmctZnB0b2ludCsLYnVsay1tZW1vcnkrCHNpZ24tZXh0Kw9yZWZlcmVuY2UtdHlwZXMrCm11bHRpdmFsdWU=", t = async (A = {}, I) => {
2
+ let Q;
3
+ if (I.startsWith("data:")) {
4
+ const B = I.replace(/^data:.*?base64,/, "");
5
+ let C;
6
+ if (typeof Buffer == "function" && typeof Buffer.from == "function")
7
+ C = Buffer.from(B, "base64");
8
+ else if (typeof atob == "function") {
9
+ const i = atob(B);
10
+ C = new Uint8Array(i.length);
11
+ for (let g = 0; g < i.length; g++)
12
+ C[g] = i.charCodeAt(g);
13
+ } else
14
+ throw new Error("Cannot decode base64-encoded data URL");
15
+ Q = await WebAssembly.instantiate(C, A);
16
+ } else {
17
+ const B = await fetch(I), C = B.headers.get("Content-Type") || "";
18
+ if ("instantiateStreaming" in WebAssembly && C.startsWith("application/wasm"))
19
+ Q = await WebAssembly.instantiateStreaming(B, A);
20
+ else {
21
+ const i = await B.arrayBuffer();
22
+ Q = await WebAssembly.instantiate(i, A);
23
+ }
24
+ }
25
+ return Q.instance.exports;
26
+ };
27
+ let w;
28
+ function G(A) {
29
+ w = A;
30
+ }
31
+ let D = null;
32
+ function h() {
33
+ return (D === null || D.byteLength === 0) && (D = new Uint8Array(w.memory.buffer)), D;
34
+ }
35
+ function F(A, I, Q) {
36
+ if (Q === void 0) {
37
+ const E = o.encode(A), s = I(E.length, 1) >>> 0;
38
+ return h().subarray(s, s + E.length).set(E), N = E.length, s;
39
+ }
40
+ let B = A.length, C = I(B, 1) >>> 0;
41
+ const i = h();
42
+ let g = 0;
43
+ for (; g < B; g++) {
44
+ const E = A.charCodeAt(g);
45
+ if (E > 127) break;
46
+ i[C + g] = E;
47
+ }
48
+ if (g !== B) {
49
+ g !== 0 && (A = A.slice(g)), C = Q(C, B, B = g + A.length * 3, 1) >>> 0;
50
+ const E = h().subarray(C + g, C + B), s = o.encodeInto(A, E);
51
+ g += s.written, C = Q(C, B, g, 1) >>> 0;
52
+ }
53
+ return N = g, C;
54
+ }
55
+ const o = new TextEncoder();
56
+ "encodeInto" in o || (o.encodeInto = function(A, I) {
57
+ const Q = o.encode(A);
58
+ return I.set(Q), {
59
+ read: A.length,
60
+ written: Q.length
61
+ };
62
+ });
63
+ let N = 0;
64
+ function d(A, I) {
65
+ return w.add_numbers(A, I);
66
+ }
67
+ function S(A) {
68
+ const I = F(A, w.__wbindgen_malloc, w.__wbindgen_realloc), Q = N;
69
+ return w.checksum_from_rust(I, Q) >>> 0;
70
+ }
71
+ function n() {
72
+ const A = w.__wbindgen_externrefs, I = A.grow(4);
73
+ A.set(0, void 0), A.set(I + 0, void 0), A.set(I + 1, null), A.set(I + 2, !0), A.set(I + 3, !1);
74
+ }
75
+ URL = globalThis.URL;
76
+ const c = await t({ "./datapos_connector_file_store_emulator_core_bg.js": { __wbindgen_init_externref_table: n } }, Y), y = c.memory, a = c.add_numbers, R = c.checksum_from_rust, b = c.__wbindgen_externrefs, r = c.__wbindgen_malloc, H = c.__wbindgen_realloc, e = c.__wbindgen_start, f = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
77
+ __proto__: null,
78
+ __wbindgen_externrefs: b,
79
+ __wbindgen_malloc: r,
80
+ __wbindgen_realloc: H,
81
+ __wbindgen_start: e,
82
+ add_numbers: a,
83
+ checksum_from_rust: R,
84
+ memory: y
85
+ }, Symbol.toStringTag, { value: "Module" }));
86
+ G(f);
87
+ e();
88
+ export {
89
+ G as __wbg_set_wasm,
90
+ n as __wbindgen_init_externref_table,
91
+ d as add_numbers,
92
+ S as checksum_from_rust
93
+ };
94
+ //# sourceMappingURL=datapos_connector_file_store_emulator_core-tvgNVoxR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datapos_connector_file_store_emulator_core-tvgNVoxR.js","sources":["../rust/datapos-connector-file-store-emulator-core/pkg/datapos_connector_file_store_emulator_core_bg.wasm?url","../../../../../../../__vite-plugin-wasm-helper","../rust/datapos-connector-file-store-emulator-core/pkg/datapos_connector_file_store_emulator_core_bg.js","../rust/datapos-connector-file-store-emulator-core/pkg/datapos_connector_file_store_emulator_core_bg.wasm","../rust/datapos-connector-file-store-emulator-core/pkg/datapos_connector_file_store_emulator_core.js"],"sourcesContent":["export default \"data:application/wasm;base64,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LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3dhc20tYmluZGdlbi0wLjIuMTA2L3NyYy9leHRlcm5yZWYucnMAL3J1c3QvZGVwcy9kbG1hbGxvYy0wLjIuMTAvc3JjL2RsbWFsbG9jLnJzAGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplID49IHNpemUgKyBtaW5fb3ZlcmhlYWQAkgAQACoAAACxBAAACQAAAGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplIDw9IHNpemUgKyBtYXhfb3ZlcmhlYWQAAJIAEAAqAAAAtwQAAA0AAAAgABAAcQAAAH8AAAARAAAAIAAQAHEAAACMAAAAEQBB3ILAAAsBBABwCXByb2R1Y2VycwIIbGFuZ3VhZ2UBBFJ1c3QADHByb2Nlc3NlZC1ieQMFcnVzdGMdMS45MS4xIChlZDYxZTdkN2UgMjAyNS0xMS0wNykGd2FscnVzBjAuMjQuNAx3YXNtLWJpbmRnZW4HMC4yLjEwNgBrD3RhcmdldF9mZWF0dXJlcwYrD211dGFibGUtZ2xvYmFscysTbm9udHJhcHBpbmctZnB0b2ludCsLYnVsay1tZW1vcnkrCHNpZ24tZXh0Kw9yZWZlcmVuY2UtdHlwZXMrCm11bHRpdmFsdWU=\"","export default async (opts = {}, url) => {\n let result;\n if (url.startsWith(\"data:\")) {\n const urlContent = url.replace(/^data:.*?base64,/, \"\");\n let bytes;\n if (typeof Buffer === \"function\" && typeof Buffer.from === \"function\") {\n bytes = Buffer.from(urlContent, \"base64\");\n }\n else if (typeof atob === \"function\") {\n const binaryString = atob(urlContent);\n bytes = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n }\n else {\n throw new Error(\"Cannot decode base64-encoded data URL\");\n }\n result = await WebAssembly.instantiate(bytes, opts);\n }\n else {\n // https://github.com/mdn/webassembly-examples/issues/5\n // WebAssembly.instantiateStreaming requires the server to provide the\n // correct MIME type for .wasm files, which unfortunately doesn't work for\n // a lot of static file servers, so we just work around it by getting the\n // raw buffer.\n // @ts-ignore\n const response = await fetch(url);\n const contentType = response.headers.get(\"Content-Type\") || \"\";\n if (\"instantiateStreaming\" in WebAssembly && contentType.startsWith(\"application/wasm\")) {\n result = await WebAssembly.instantiateStreaming(response, opts);\n }\n else {\n const buffer = await response.arrayBuffer();\n result = await WebAssembly.instantiate(buffer, opts);\n }\n }\n return result.instance.exports;\n}","let wasm;\nexport function __wbg_set_wasm(val) {\n wasm = val;\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n }\n}\n\nlet WASM_VECTOR_LEN = 0;\n\n/**\n * Adds two signed 32-bit integers using native Rust arithmetic.\n * @param {number} left\n * @param {number} right\n * @returns {number}\n */\nexport function add_numbers(left, right) {\n const ret = wasm.add_numbers(left, right);\n return ret;\n}\n\n/**\n * Computes a simple checksum by summing every byte in the input string.\n * @param {string} input\n * @returns {number}\n */\nexport function checksum_from_rust(input) {\n const ptr0 = passStringToWasm0(input, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.checksum_from_rust(ptr0, len0);\n return ret >>> 0;\n}\n\nexport function __wbindgen_init_externref_table() {\n const table = wasm.__wbindgen_externrefs;\n const offset = table.grow(4);\n table.set(0, undefined);\n table.set(offset + 0, undefined);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n};\n","\nURL = globalThis.URL\nimport __vite__wasmUrl from \"/Users/jonathanterrell/Data Positioning/GitHub/connectors/datapos-connector-file-store-emulator/rust/datapos-connector-file-store-emulator-core/pkg/datapos_connector_file_store_emulator_core_bg.wasm?url\"\nimport __vite__initWasm from \"/__vite-plugin-wasm-helper\"\nimport * as __vite__wasmImport_0 from \"./datapos_connector_file_store_emulator_core_bg.js\";\nconst __vite__wasmModule = await __vite__initWasm({ \"./datapos_connector_file_store_emulator_core_bg.js\": { \"__wbindgen_init_externref_table\": __vite__wasmImport_0[\"__wbindgen_init_externref_table\"] } }, __vite__wasmUrl);\nexport const memory = __vite__wasmModule.memory;\nexport const add_numbers = __vite__wasmModule.add_numbers;\nexport const checksum_from_rust = __vite__wasmModule.checksum_from_rust;\nexport const __wbindgen_externrefs = __vite__wasmModule.__wbindgen_externrefs;\nexport const __wbindgen_malloc = __vite__wasmModule.__wbindgen_malloc;\nexport const __wbindgen_realloc = __vite__wasmModule.__wbindgen_realloc;\nexport const __wbindgen_start = __vite__wasmModule.__wbindgen_start;\n","import * as wasm from \"./datapos_connector_file_store_emulator_core_bg.wasm\";\nexport * from \"./datapos_connector_file_store_emulator_core_bg.js\";\nimport { __wbg_set_wasm } from \"./datapos_connector_file_store_emulator_core_bg.js\";\n__wbg_set_wasm(wasm);\nwasm.__wbindgen_start();\n"],"names":["__vite__wasmUrl","__vite__initWasm","opts","url","result","urlContent","bytes","binaryString","i","response","contentType","buffer","wasm","__wbg_set_wasm","val","cachedUint8ArrayMemory0","getUint8ArrayMemory0","passStringToWasm0","arg","malloc","realloc","buf","cachedTextEncoder","ptr","WASM_VECTOR_LEN","len","mem","offset","code","view","ret","add_numbers","left","right","checksum_from_rust","input","ptr0","len0","__wbindgen_init_externref_table","table","__vite__wasmModule","__vite__wasmImport_0[\"__wbindgen_init_externref_table\"]","memory","__wbindgen_externrefs","__wbindgen_malloc","__wbindgen_realloc","__wbindgen_start","wasm.__wbindgen_start"],"mappings":"AAAA,MAAAA,IAAe,ykbCAfC,IAAe,OAAOC,IAAO,CAAA,GAAIC,MAAQ;AACrC,MAAIC;AACJ,MAAID,EAAI,WAAW,OAAO,GAAG;AACzB,UAAME,IAAaF,EAAI,QAAQ,oBAAoB,EAAE;AACrD,QAAIG;AACJ,QAAI,OAAO,UAAW,cAAc,OAAO,OAAO,QAAS;AACvD,MAAAA,IAAQ,OAAO,KAAKD,GAAY,QAAQ;AAAA,aAEnC,OAAO,QAAS,YAAY;AACjC,YAAME,IAAe,KAAKF,CAAU;AACpC,MAAAC,IAAQ,IAAI,WAAWC,EAAa,MAAM;AAC1C,eAASC,IAAI,GAAGA,IAAID,EAAa,QAAQC;AACrC,QAAAF,EAAME,CAAC,IAAID,EAAa,WAAWC,CAAC;AAAA,IAE5C;AAEI,YAAM,IAAI,MAAM,uCAAuC;AAE3D,IAAAJ,IAAS,MAAM,YAAY,YAAYE,GAAOJ,CAAI;AAAA,EACtD,OACK;AAOD,UAAMO,IAAW,MAAM,MAAMN,CAAG,GAC1BO,IAAcD,EAAS,QAAQ,IAAI,cAAc,KAAK;AAC5D,QAAI,0BAA0B,eAAeC,EAAY,WAAW,kBAAkB;AAClF,MAAAN,IAAS,MAAM,YAAY,qBAAqBK,GAAUP,CAAI;AAAA,SAE7D;AACD,YAAMS,IAAS,MAAMF,EAAS,YAAW;AACzC,MAAAL,IAAS,MAAM,YAAY,YAAYO,GAAQT,CAAI;AAAA,IACvD;AAAA,EACJ;AACA,SAAOE,EAAO,SAAS;AAC3B;ACtCA,IAAIQ;AACG,SAASC,EAAeC,GAAK;AAChCF,EAAAA,IAAOE;AACX;AAEA,IAAIC,IAA0B;AAC9B,SAASC,IAAuB;AAC5B,UAAID,MAA4B,QAAQA,EAAwB,eAAe,OAC3EA,IAA0B,IAAI,WAAWH,EAAK,OAAO,MAAM,IAExDG;AACX;AAEA,SAASE,EAAkBC,GAAKC,GAAQC,GAAS;AAC7C,MAAIA,MAAY,QAAW;AACvB,UAAMC,IAAMC,EAAkB,OAAOJ,CAAG,GAClCK,IAAMJ,EAAOE,EAAI,QAAQ,CAAC,MAAM;AACtC,WAAAL,EAAoB,EAAG,SAASO,GAAKA,IAAMF,EAAI,MAAM,EAAE,IAAIA,CAAG,GAC9DG,IAAkBH,EAAI,QACfE;AAAA,EACX;AAEA,MAAIE,IAAMP,EAAI,QACVK,IAAMJ,EAAOM,GAAK,CAAC,MAAM;AAE7B,QAAMC,IAAMV,EAAoB;AAEhC,MAAIW,IAAS;AAEb,SAAOA,IAASF,GAAKE,KAAU;AAC3B,UAAMC,IAAOV,EAAI,WAAWS,CAAM;AAClC,QAAIC,IAAO,IAAM;AACjB,IAAAF,EAAIH,IAAMI,CAAM,IAAIC;AAAA,EACxB;AACA,MAAID,MAAWF,GAAK;AAChB,IAAIE,MAAW,MACXT,IAAMA,EAAI,MAAMS,CAAM,IAE1BJ,IAAMH,EAAQG,GAAKE,GAAKA,IAAME,IAAST,EAAI,SAAS,GAAG,CAAC,MAAM;AAC9D,UAAMW,IAAOb,IAAuB,SAASO,IAAMI,GAAQJ,IAAME,CAAG,GAC9DK,IAAMR,EAAkB,WAAWJ,GAAKW,CAAI;AAElD,IAAAF,KAAUG,EAAI,SACdP,IAAMH,EAAQG,GAAKE,GAAKE,GAAQ,CAAC,MAAM;AAAA,EAC3C;AAEA,SAAAH,IAAkBG,GACXJ;AACX;AAEA,MAAMD,IAAoB,IAAI,YAAW;AAEnC,gBAAgBA,MAClBA,EAAkB,aAAa,SAAUJ,GAAKW,GAAM;AAChD,QAAMR,IAAMC,EAAkB,OAAOJ,CAAG;AACxC,SAAAW,EAAK,IAAIR,CAAG,GACL;AAAA,IACH,MAAMH,EAAI;AAAA,IACV,SAASG,EAAI;AAAA,EACzB;AACI;AAGJ,IAAIG,IAAkB;AAQf,SAASO,EAAYC,GAAMC,GAAO;AAErC,SADYrB,EAAK,YAAYoB,GAAMC,CAAK;AAE5C;AAOO,SAASC,EAAmBC,GAAO;AACtC,QAAMC,IAAOnB,EAAkBkB,GAAOvB,EAAK,mBAAmBA,EAAK,kBAAkB,GAC/EyB,IAAOb;AAEb,SADYZ,EAAK,mBAAmBwB,GAAMC,CAAI,MAC/B;AACnB;AAEO,SAASC,IAAkC;AAC9C,QAAMC,IAAQ3B,EAAK,uBACbe,IAASY,EAAM,KAAK,CAAC;AAC3B,EAAAA,EAAM,IAAI,GAAG,MAAS,GACtBA,EAAM,IAAIZ,IAAS,GAAG,MAAS,GAC/BY,EAAM,IAAIZ,IAAS,GAAG,IAAI,GAC1BY,EAAM,IAAIZ,IAAS,GAAG,EAAI,GAC1BY,EAAM,IAAIZ,IAAS,GAAG,EAAK;AAC/B;AC/FA,MAAM,WAAW;AAIjB,MAAMa,IAAqB,MAAMvC,EAAiB,EAAE,sDAAsD,EAAE,iCAAmCwC,EAAuD,EAAE,GAAIzC,CAAe,GAC9M0C,IAASF,EAAmB,QAC5BT,IAAcS,EAAmB,aACjCN,IAAqBM,EAAmB,oBACxCG,IAAwBH,EAAmB,uBAC3CI,IAAoBJ,EAAmB,mBACvCK,IAAqBL,EAAmB,oBACxCM,IAAmBN,EAAmB;;;;;;;;;;ACTnD3B,EAAeD,CAAI;AACnBmC,EAAqB;"}
@@ -12,6 +12,9 @@ export default class FileStoreEmulatorConnector implements Connector {
12
12
  listNodes(connector: FileStoreEmulatorConnector, settings: ListSettings): Promise<ListResult>;
13
13
  previewObject(connector: FileStoreEmulatorConnector, settings: PreviewSettings): Promise<PreviewResult>;
14
14
  retrieveRecords(connector: FileStoreEmulatorConnector, settings: RetrieveSettings, chunk: (records: string[][]) => void, complete: (result: RetrieveSummary) => void): Promise<void>;
15
+ /** Utilities - Rust helpers. */
16
+ private addUsingRust;
17
+ private versionChecksumUsingRust;
15
18
  /** Utilities - Construct folder node configuration. */
16
19
  private constructFolderNodeConfig;
17
20
  /** Utilities - Construct object (file) node configuration. */
@@ -0,0 +1,2 @@
1
+ export declare function addNumbersWithRust(left: number, right: number): Promise<number>;
2
+ export declare function checksumWithRust(input: string): Promise<number>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "datapos-connector-file-store-emulator",
3
- "version": "0.2.280",
3
+ "version": "0.2.288",
4
4
  "license": "MIT",
5
5
  "author": "Jonathan Terrell <terrell.jm@gmail.com>",
6
6
  "private": false,
@@ -26,8 +26,8 @@
26
26
  ],
27
27
  "prettier": "@datapos/datapos-development/prettierrc",
28
28
  "devDependencies": {
29
- "@datapos/datapos-development": "^0.3.395",
30
- "@datapos/datapos-shared": "^0.3.329",
29
+ "@datapos/datapos-development": "^0.3.396",
30
+ "@datapos/datapos-shared": "^0.3.330",
31
31
  "@datapos/eslint-config-datapos": "^1.0.27",
32
32
  "@types/node": "^25.0.3",
33
33
  "@typescript-eslint/eslint-plugin": "^8.50.0",
@@ -52,12 +52,14 @@
52
52
  "sonda": "^0.10.1",
53
53
  "typescript": "^5.9.3",
54
54
  "vite": "^7.3.0",
55
+ "vite-plugin-wasm": "^3.5.0",
55
56
  "vite-plugin-dts": "^4.5.4",
56
57
  "vitest": "^4.0.16"
57
58
  },
58
59
  "scripts": {
59
60
  "audit": "op run --env-file=.env -- node -e \"import('@datapos/datapos-development').then(m => m.auditDependencies())\"",
60
61
  "build": "node -e \"import('@datapos/datapos-development').then(m => m.buildProject())\"",
62
+ "build:rust": "wasm-pack build ./rust/datapos-connector-file-store-emulator-core --release --target bundler --out-dir pkg",
61
63
  "check": "node -e \"import('@datapos/datapos-development').then(m => m.checkDependencies())\"",
62
64
  "document": "op run --env-file=.env -- node -e \"import('@datapos/datapos-development').then(m => m.documentDependencies(['MIT']))\"",
63
65
  "format": "node -e \"import('@datapos/datapos-development').then(m => m.formatCode())\"",