@eclipse-docks/extension-pglite 0.7.136 → 0.7.139

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.
Files changed (150) hide show
  1. package/dist/assets/__vite-browser-external-DU35AV1a.js +10 -0
  2. package/dist/assets/__vite-browser-external-DU35AV1a.js.map +1 -0
  3. package/dist/assets/age.tar-DHXR14R_.gz +0 -0
  4. package/dist/assets/amcheck-Chs_3pXv.js +12 -0
  5. package/dist/assets/amcheck-Chs_3pXv.js.map +1 -0
  6. package/dist/assets/amcheck.tar-bkPYZsQP.gz +0 -0
  7. package/dist/assets/auto_explain-6tyjumrw.js +12 -0
  8. package/dist/assets/auto_explain-6tyjumrw.js.map +1 -0
  9. package/dist/assets/auto_explain.tar-DrYO8nKA.gz +0 -0
  10. package/dist/assets/bloom-XxEnxlPj.js +12 -0
  11. package/dist/assets/bloom-XxEnxlPj.js.map +1 -0
  12. package/dist/assets/bloom.tar-DGGnUI4S.gz +0 -0
  13. package/dist/assets/btree_gin-Ta-5Il_O.js +12 -0
  14. package/dist/assets/btree_gin-Ta-5Il_O.js.map +1 -0
  15. package/dist/assets/btree_gin.tar-B0oYTLwP.gz +0 -0
  16. package/dist/assets/btree_gist-BJUqnbIX.js +12 -0
  17. package/dist/assets/btree_gist-BJUqnbIX.js.map +1 -0
  18. package/dist/assets/btree_gist.tar-B1uoUmQS.gz +0 -0
  19. package/dist/assets/chunk-QY3QWFKW-CzLN3CwB.js +56 -0
  20. package/dist/assets/chunk-QY3QWFKW-CzLN3CwB.js.map +1 -0
  21. package/dist/assets/citext-Dzu-hNhG.js +12 -0
  22. package/dist/assets/citext-Dzu-hNhG.js.map +1 -0
  23. package/dist/assets/citext.tar-9R6jfWSw.gz +0 -0
  24. package/dist/assets/cube-D863RPAa.js +12 -0
  25. package/dist/assets/cube-D863RPAa.js.map +1 -0
  26. package/dist/assets/cube.tar-BO33aRI2.gz +0 -0
  27. package/dist/assets/dict_int-CNYxDcNR.js +12 -0
  28. package/dist/assets/dict_int-CNYxDcNR.js.map +1 -0
  29. package/dist/assets/dict_int.tar-DCOi_C-q.gz +0 -0
  30. package/dist/assets/dict_xsyn-CcxvVTRy.js +12 -0
  31. package/dist/assets/dict_xsyn-CcxvVTRy.js.map +1 -0
  32. package/dist/assets/dict_xsyn.tar-CjD8eFQ0.gz +0 -0
  33. package/dist/assets/dist-BCQ6Wh8S.js +14 -0
  34. package/dist/assets/dist-BCQ6Wh8S.js.map +1 -0
  35. package/dist/assets/dist-BLltsTuh.js +13 -0
  36. package/dist/assets/dist-BLltsTuh.js.map +1 -0
  37. package/dist/assets/dist-CMTWXTt1.js +13 -0
  38. package/dist/assets/dist-CMTWXTt1.js.map +1 -0
  39. package/dist/assets/dist-CqoABa9W.js +13 -0
  40. package/dist/assets/dist-CqoABa9W.js.map +1 -0
  41. package/dist/assets/dist-CtbVzd1s.js +13 -0
  42. package/dist/assets/dist-CtbVzd1s.js.map +1 -0
  43. package/dist/assets/dist-D-mSEDwN.js +13 -0
  44. package/dist/assets/dist-D-mSEDwN.js.map +1 -0
  45. package/dist/assets/dist-DfH9_rDF.js +104 -0
  46. package/dist/assets/dist-DfH9_rDF.js.map +1 -0
  47. package/dist/assets/dist-EuUfsBBN.js +13 -0
  48. package/dist/assets/dist-EuUfsBBN.js.map +1 -0
  49. package/dist/assets/dist-huZHlIuv.js +13 -0
  50. package/dist/assets/dist-huZHlIuv.js.map +1 -0
  51. package/dist/assets/earthdistance-BXpIJJLA.js +12 -0
  52. package/dist/assets/earthdistance-BXpIJJLA.js.map +1 -0
  53. package/dist/assets/earthdistance.tar-GJETA-rZ.gz +0 -0
  54. package/dist/assets/file_fdw-BDXsyWdr.js +12 -0
  55. package/dist/assets/file_fdw-BDXsyWdr.js.map +1 -0
  56. package/dist/assets/file_fdw.tar-Bl7yIYHR.gz +0 -0
  57. package/dist/assets/fuzzystrmatch-Cy1QzV_3.js +12 -0
  58. package/dist/assets/fuzzystrmatch-Cy1QzV_3.js.map +1 -0
  59. package/dist/assets/fuzzystrmatch.tar-DDyYEOww.gz +0 -0
  60. package/dist/assets/hstore-wpIoIJu2.js +12 -0
  61. package/dist/assets/hstore-wpIoIJu2.js.map +1 -0
  62. package/dist/assets/hstore.tar-DqONstR5.gz +0 -0
  63. package/dist/assets/initdb-DwLcS450.wasm +0 -0
  64. package/dist/assets/intarray-C5yhCwa1.js +12 -0
  65. package/dist/assets/intarray-C5yhCwa1.js.map +1 -0
  66. package/dist/assets/intarray.tar-BVIfG_7Z.gz +0 -0
  67. package/dist/assets/isn-DLMjGncM.js +12 -0
  68. package/dist/assets/isn-DLMjGncM.js.map +1 -0
  69. package/dist/assets/isn.tar-CRIU4EEO.gz +0 -0
  70. package/dist/assets/live-C0vaPQ9d.js +352 -0
  71. package/dist/assets/live-C0vaPQ9d.js.map +1 -0
  72. package/dist/assets/lo-BCYhDwhC.js +12 -0
  73. package/dist/assets/lo-BCYhDwhC.js.map +1 -0
  74. package/dist/assets/lo.tar-Wbg4cu0O.gz +0 -0
  75. package/dist/assets/ltree-CXf3JCHu.js +12 -0
  76. package/dist/assets/ltree-CXf3JCHu.js.map +1 -0
  77. package/dist/assets/ltree.tar-BoFMdBkQ.gz +0 -0
  78. package/dist/assets/nodefs-DJNldqq6.js +28 -0
  79. package/dist/assets/nodefs-DJNldqq6.js.map +1 -0
  80. package/dist/assets/opfs-ahp-BChkt0Jk.js +391 -0
  81. package/dist/assets/opfs-ahp-BChkt0Jk.js.map +1 -0
  82. package/dist/assets/pageinspect-wzPiKoU5.js +12 -0
  83. package/dist/assets/pageinspect-wzPiKoU5.js.map +1 -0
  84. package/dist/assets/pageinspect.tar-DQi4UsSZ.gz +0 -0
  85. package/dist/assets/pg_buffercache-hTjRC-4z.js +12 -0
  86. package/dist/assets/pg_buffercache-hTjRC-4z.js.map +1 -0
  87. package/dist/assets/pg_buffercache.tar-BtszenWA.gz +0 -0
  88. package/dist/assets/pg_freespacemap-BLGz5BWM.js +12 -0
  89. package/dist/assets/pg_freespacemap-BLGz5BWM.js.map +1 -0
  90. package/dist/assets/pg_freespacemap.tar-CoFHM5P7.gz +0 -0
  91. package/dist/assets/pg_hashids.tar-BVVcQiqb.gz +0 -0
  92. package/dist/assets/pg_ivm.tar-CGRyLt_v.gz +0 -0
  93. package/dist/assets/pg_surgery-Db1eeQck.js +12 -0
  94. package/dist/assets/pg_surgery-Db1eeQck.js.map +1 -0
  95. package/dist/assets/pg_surgery.tar-DU0pz_TF.gz +0 -0
  96. package/dist/assets/pg_textsearch.tar-DiBEZ2o9.gz +0 -0
  97. package/dist/assets/pg_trgm-CD7OXKVS.js +12 -0
  98. package/dist/assets/pg_trgm-CD7OXKVS.js.map +1 -0
  99. package/dist/assets/pg_trgm.tar-CowYIgmw.gz +0 -0
  100. package/dist/assets/pg_uuidv7.tar-Cp_eHZBk.gz +0 -0
  101. package/dist/assets/pg_visibility-Cq7XreoH.js +12 -0
  102. package/dist/assets/pg_visibility-Cq7XreoH.js.map +1 -0
  103. package/dist/assets/pg_visibility.tar-Gh1ZHM3_.gz +0 -0
  104. package/dist/assets/pg_walinspect-BRIXivxJ.js +12 -0
  105. package/dist/assets/pg_walinspect-BRIXivxJ.js.map +1 -0
  106. package/dist/assets/pg_walinspect.tar-AM5oqVpu.gz +0 -0
  107. package/dist/assets/pgcrypto-CoOfvXOm.js +12 -0
  108. package/dist/assets/pgcrypto-CoOfvXOm.js.map +1 -0
  109. package/dist/assets/pgcrypto.tar-GStv9t6F.gz +0 -0
  110. package/dist/assets/pglite-DgipwPsY.wasm +0 -0
  111. package/dist/assets/pglite-n8RDJ3Sw.data +37667 -8
  112. package/dist/assets/pglite-opfs-worker-BR5YL-9f.js +15072 -0
  113. package/dist/assets/pglite-opfs-worker-BR5YL-9f.js.map +1 -0
  114. package/dist/assets/pgmq.tar-DOMpPWFR.gz +0 -0
  115. package/dist/assets/pgtap.tar-DoEIyOXh.gz +0 -0
  116. package/dist/assets/postgis.tar-D7JwQ6g-.gz +0 -0
  117. package/dist/assets/rolldown-runtime-BPOCksWG.js +24 -0
  118. package/dist/assets/seg-C7Rr9XP9.js +12 -0
  119. package/dist/assets/seg-C7Rr9XP9.js.map +1 -0
  120. package/dist/assets/seg.tar-CmC28jvu.gz +0 -0
  121. package/dist/assets/tablefunc-HYglxjBj.js +12 -0
  122. package/dist/assets/tablefunc-HYglxjBj.js.map +1 -0
  123. package/dist/assets/tablefunc.tar-DHKflfn5.gz +0 -0
  124. package/dist/assets/tcn-nJDhGLwY.js +12 -0
  125. package/dist/assets/tcn-nJDhGLwY.js.map +1 -0
  126. package/dist/assets/tcn.tar-BOSs4MrR.gz +0 -0
  127. package/dist/assets/tsm_system_rows-xLCMmGNq.js +12 -0
  128. package/dist/assets/tsm_system_rows-xLCMmGNq.js.map +1 -0
  129. package/dist/assets/tsm_system_rows.tar-CRJD8gLw.gz +0 -0
  130. package/dist/assets/tsm_system_time-BPa6qf32.js +12 -0
  131. package/dist/assets/tsm_system_time-BPa6qf32.js.map +1 -0
  132. package/dist/assets/tsm_system_time.tar-BVpFArXZ.gz +0 -0
  133. package/dist/assets/unaccent-UgEEvnlZ.js +12 -0
  134. package/dist/assets/unaccent-UgEEvnlZ.js.map +1 -0
  135. package/dist/assets/unaccent.tar-DqAzEbFj.gz +0 -0
  136. package/dist/assets/uuid-ossp.tar-D0EYXo2x.gz +0 -0
  137. package/dist/assets/uuid_ossp-DuBDG68q.js +12 -0
  138. package/dist/assets/uuid_ossp-DuBDG68q.js.map +1 -0
  139. package/dist/assets/vector.tar-DveqyHs9.gz +0 -0
  140. package/dist/index.js +1 -1
  141. package/dist/{pglite-extension-BfD6-TQp.js → pglite-extension-DwpdPI49.js} +90 -39
  142. package/dist/pglite-extension-DwpdPI49.js.map +1 -0
  143. package/dist/pglite-extensions.d.ts.map +1 -1
  144. package/dist/pglite-opfs-worker-DETBZBXK.js +11 -0
  145. package/dist/pglite-opfs-worker-DETBZBXK.js.map +1 -0
  146. package/dist/pglite-opfs-worker.d.ts +2 -0
  147. package/dist/pglite-opfs-worker.d.ts.map +1 -0
  148. package/dist/pglite-sqldatabase.d.ts.map +1 -1
  149. package/package.json +11 -2
  150. package/dist/pglite-extension-BfD6-TQp.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hstore-wpIoIJu2.js","names":["e","import.meta.ROLLDOWN_FILE_URL_FKNdLzKnlftW3t_gzo81yw"],"sources":["../../../../node_modules/@electric-sql/pglite/dist/contrib/hstore.js"],"sourcesContent":["import{j as e}from\"../chunk-QY3QWFKW.js\";e();var t=async(s,n)=>({bundlePath:new URL(\"../hstore.tar.gz?no-inline\",import.meta.url)}),o={name:\"hstore\",setup:t};export{o as hstore};\n//# sourceMappingURL=hstore.js.map"],"ignoreList":[0],"mappings":";;AAAyCA,EAAE;AAAE,IAAI,IAAE,OAAM,GAAE,OAAK,EAAC,YAAW,IAAA,IAAA,IAAA,IAAA,0BAAA,YAAA,GAAA,CAAA,CAAAC,MAAA,KAAA,YAAA,GAAA,EAAqD;AAAG,IAAA,IAAE;CAAC,MAAK;CAAS,OAAM;AAAC"}
Binary file
@@ -0,0 +1,12 @@
1
+ import { l as u } from "./chunk-QY3QWFKW-CzLN3CwB.js";
2
+ //#region ../../node_modules/@electric-sql/pglite/dist/contrib/intarray.js
3
+ u();
4
+ var t = async (n, r) => ({ bundlePath: new URL(new URL("intarray.tar-BVIfG_7Z.gz", import.meta.url).href, "" + import.meta.url) });
5
+ var i = {
6
+ name: "intarray",
7
+ setup: t
8
+ };
9
+ //#endregion
10
+ export { i as intarray };
11
+
12
+ //# sourceMappingURL=intarray-C5yhCwa1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intarray-C5yhCwa1.js","names":["e","import.meta.ROLLDOWN_FILE_URL_P4DPfwIRieI8P6q8r4JZRw"],"sources":["../../../../node_modules/@electric-sql/pglite/dist/contrib/intarray.js"],"sourcesContent":["import{j as e}from\"../chunk-QY3QWFKW.js\";e();var t=async(n,r)=>({bundlePath:new URL(\"../intarray.tar.gz?no-inline\",import.meta.url)}),i={name:\"intarray\",setup:t};export{i as intarray};\n//# sourceMappingURL=intarray.js.map"],"ignoreList":[0],"mappings":";;AAAyCA,EAAE;AAAE,IAAI,IAAE,OAAM,GAAE,OAAK,EAAC,YAAW,IAAA,IAAA,IAAA,IAAA,4BAAA,YAAA,GAAA,CAAA,CAAAC,MAAA,KAAA,YAAA,GAAA,EAAuD;AAAG,IAAA,IAAE;CAAC,MAAK;CAAW,OAAM;AAAC"}
@@ -0,0 +1,12 @@
1
+ import { l as u } from "./chunk-QY3QWFKW-CzLN3CwB.js";
2
+ //#region ../../node_modules/@electric-sql/pglite/dist/contrib/isn.js
3
+ u();
4
+ var t = async (n, s) => ({ bundlePath: new URL(new URL("isn.tar-CRIU4EEO.gz", import.meta.url).href, "" + import.meta.url) });
5
+ var a = {
6
+ name: "isn",
7
+ setup: t
8
+ };
9
+ //#endregion
10
+ export { a as isn };
11
+
12
+ //# sourceMappingURL=isn-DLMjGncM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isn-DLMjGncM.js","names":["e","import.meta.ROLLDOWN_FILE_URL_cn7IAAGY294pWGc7MpElVg"],"sources":["../../../../node_modules/@electric-sql/pglite/dist/contrib/isn.js"],"sourcesContent":["import{j as e}from\"../chunk-QY3QWFKW.js\";e();var t=async(n,s)=>({bundlePath:new URL(\"../isn.tar.gz?no-inline\",import.meta.url)}),a={name:\"isn\",setup:t};export{a as isn};\n//# sourceMappingURL=isn.js.map"],"ignoreList":[0],"mappings":";;AAAyCA,EAAE;AAAE,IAAI,IAAE,OAAM,GAAE,OAAK,EAAC,YAAW,IAAA,IAAA,IAAA,IAAA,uBAAA,YAAA,GAAA,CAAA,CAAAC,MAAA,KAAA,YAAA,GAAA,EAAkD;AAAG,IAAA,IAAE;CAAC,MAAK;CAAM,OAAM;AAAC"}
Binary file
@@ -0,0 +1,352 @@
1
+ import { l as u } from "./chunk-QY3QWFKW-CzLN3CwB.js";
2
+ import { n as x, s as p, t as v } from "./pglite-opfs-worker-BR5YL-9f.js";
3
+ //#region ../../node_modules/@electric-sql/pglite/dist/live/index.js
4
+ u();
5
+ var M = 5;
6
+ var U = async (E, y) => {
7
+ let p$1 = /* @__PURE__ */ new Set(), g = {
8
+ async query(e, $, a) {
9
+ let m, c, _;
10
+ if (typeof e != "string" && (m = e.signal, $ = e.params, a = e.callback, c = e.offset, _ = e.limit, e = e.query), c === void 0 != (_ === void 0)) throw new Error("offset and limit must be provided together");
11
+ let t = c !== void 0 && _ !== void 0, T;
12
+ if (t && (typeof c != "number" || isNaN(c) || typeof _ != "number" || isNaN(_))) throw new Error("offset and limit must be numbers");
13
+ let d = a ? [a] : [], o = p.uuid().replace(/-/g, ""), A = !1, v$1, h, S = async () => {
14
+ await E.transaction(async (i) => {
15
+ let s = $ && $.length > 0 ? await v(E, e, $, i) : e;
16
+ await i.exec(`CREATE OR REPLACE TEMP VIEW live_query_${o}_view AS ${s}`);
17
+ let u = await q(i, `live_query_${o}_view`);
18
+ await F(i, u, p$1), t ? (await i.exec(`
19
+ PREPARE live_query_${o}_get(int, int) AS
20
+ SELECT * FROM live_query_${o}_view
21
+ LIMIT $1 OFFSET $2;
22
+ `), await i.exec(`
23
+ PREPARE live_query_${o}_get_total_count AS
24
+ SELECT COUNT(*) FROM live_query_${o}_view;
25
+ `), T = (await i.query(`EXECUTE live_query_${o}_get_total_count;`)).rows[0].count, v$1 = {
26
+ ...await i.query(`EXECUTE live_query_${o}_get(${_}, ${c});`),
27
+ offset: c,
28
+ limit: _,
29
+ totalCount: T
30
+ }) : (await i.exec(`
31
+ PREPARE live_query_${o}_get AS
32
+ SELECT * FROM live_query_${o}_view;
33
+ `), v$1 = await i.query(`EXECUTE live_query_${o}_get;`)), h = await Promise.all(u.map((f) => i.listen(`"table_change__${f.schema_oid}__${f.table_oid}"`, async () => {
34
+ R();
35
+ })));
36
+ });
37
+ };
38
+ await S();
39
+ let R = x(async ({ offset: i, limit: s } = {}) => {
40
+ if (!t && (i !== void 0 || s !== void 0)) throw new Error("offset and limit cannot be provided for non-windowed queries");
41
+ if (i && (typeof i != "number" || isNaN(i)) || s && (typeof s != "number" || isNaN(s))) throw new Error("offset and limit must be numbers");
42
+ c = i ?? c, _ = s ?? _;
43
+ let u = async (f = 0) => {
44
+ if (d.length !== 0) {
45
+ try {
46
+ t ? v$1 = {
47
+ ...await E.query(`EXECUTE live_query_${o}_get(${_}, ${c});`),
48
+ offset: c,
49
+ limit: _,
50
+ totalCount: T
51
+ } : v$1 = await E.query(`EXECUTE live_query_${o}_get;`);
52
+ } catch (l) {
53
+ let n = l.message;
54
+ if (n.startsWith(`prepared statement "live_query_${o}`) && n.endsWith("does not exist")) {
55
+ if (f > M) throw l;
56
+ await S(), u(f + 1);
57
+ } else throw l;
58
+ }
59
+ if (N(d, v$1), t) {
60
+ let l = (await E.query(`EXECUTE live_query_${o}_get_total_count;`)).rows[0].count;
61
+ l !== T && (T = l, R());
62
+ }
63
+ }
64
+ };
65
+ await u();
66
+ }), w = (i) => {
67
+ if (A) throw new Error("Live query is no longer active and cannot be subscribed to");
68
+ d.push(i);
69
+ }, r = async (i) => {
70
+ i ? d = d.filter((s) => s !== i) : d = [], d.length === 0 && !A && (A = !0, await E.transaction(async (s) => {
71
+ await Promise.all(h.map((u) => u(s))), await s.exec(`
72
+ DROP VIEW IF EXISTS live_query_${o}_view;
73
+ DEALLOCATE live_query_${o}_get;
74
+ `);
75
+ }));
76
+ };
77
+ return m?.aborted ? await r() : m?.addEventListener("abort", () => {
78
+ r();
79
+ }, { once: !0 }), N(d, v$1), {
80
+ initialResults: v$1,
81
+ subscribe: w,
82
+ unsubscribe: r,
83
+ refresh: R
84
+ };
85
+ },
86
+ async changes(e, $, a, m) {
87
+ let c;
88
+ if (typeof e != "string" && (c = e.signal, $ = e.params, a = e.key, m = e.callback, e = e.query), !a) throw new Error("key is required for changes queries");
89
+ let _ = m ? [m] : [], t = p.uuid().replace(/-/g, ""), T = !1, d = 1, o, A, v$2 = async () => {
90
+ await E.transaction(async (r) => {
91
+ let i = await v(E, e, $, r);
92
+ await r.query(`CREATE OR REPLACE TEMP VIEW live_query_${t}_view AS ${i}`);
93
+ let s = await q(r, `live_query_${t}_view`);
94
+ await F(r, s, p$1);
95
+ let u = [...(await r.query(`
96
+ SELECT column_name, data_type, udt_name
97
+ FROM information_schema.columns
98
+ WHERE table_name = 'live_query_${t}_view'
99
+ `)).rows, {
100
+ column_name: "__after__",
101
+ data_type: "integer"
102
+ }];
103
+ await r.exec(`
104
+ CREATE TEMP TABLE live_query_${t}_state1 (LIKE live_query_${t}_view INCLUDING ALL);
105
+ CREATE TEMP TABLE live_query_${t}_state2 (LIKE live_query_${t}_view INCLUDING ALL);
106
+ `);
107
+ for (let f of [1, 2]) {
108
+ let l = f === 1 ? 2 : 1;
109
+ await r.exec(`
110
+ PREPARE live_query_${t}_diff${f} AS
111
+ WITH
112
+ prev AS (SELECT LAG("${a}") OVER () as __after__, * FROM live_query_${t}_state${l}),
113
+ curr AS (SELECT LAG("${a}") OVER () as __after__, * FROM live_query_${t}_state${f}),
114
+ data_diff AS (
115
+ -- INSERT operations: Include all columns
116
+ SELECT
117
+ 'INSERT' AS __op__,
118
+ ${u.map(({ column_name: n }) => `curr."${n}" AS "${n}"`).join(`,
119
+ `)},
120
+ ARRAY[]::text[] AS __changed_columns__
121
+ FROM curr
122
+ LEFT JOIN prev ON curr.${a} = prev.${a}
123
+ WHERE prev.${a} IS NULL
124
+ UNION ALL
125
+ -- DELETE operations: Include only the primary key
126
+ SELECT
127
+ 'DELETE' AS __op__,
128
+ ${u.map(({ column_name: n, data_type: L, udt_name: b }) => n === a ? `prev."${n}" AS "${n}"` : `NULL${L === "USER-DEFINED" ? `::${b}` : ""} AS "${n}"`).join(`,
129
+ `)},
130
+ ARRAY[]::text[] AS __changed_columns__
131
+ FROM prev
132
+ LEFT JOIN curr ON prev.${a} = curr.${a}
133
+ WHERE curr.${a} IS NULL
134
+ UNION ALL
135
+ -- UPDATE operations: Include only changed columns
136
+ SELECT
137
+ 'UPDATE' AS __op__,
138
+ ${u.map(({ column_name: n, data_type: L, udt_name: b }) => n === a ? `curr."${n}" AS "${n}"` : `CASE
139
+ WHEN curr."${n}" IS DISTINCT FROM prev."${n}"
140
+ THEN curr."${n}"
141
+ ELSE NULL${L === "USER-DEFINED" ? `::${b}` : ""}
142
+ END AS "${n}"`).join(`,
143
+ `)},
144
+ ARRAY(SELECT unnest FROM unnest(ARRAY[${u.filter(({ column_name: n }) => n !== a).map(({ column_name: n }) => `CASE
145
+ WHEN curr."${n}" IS DISTINCT FROM prev."${n}"
146
+ THEN '${n}'
147
+ ELSE NULL
148
+ END`).join(", ")}]) WHERE unnest IS NOT NULL) AS __changed_columns__
149
+ FROM curr
150
+ INNER JOIN prev ON curr.${a} = prev.${a}
151
+ WHERE NOT (curr IS NOT DISTINCT FROM prev)
152
+ )
153
+ SELECT * FROM data_diff;
154
+ `);
155
+ }
156
+ A = await Promise.all(s.map((f) => r.listen(`"table_change__${f.schema_oid}__${f.table_oid}"`, async () => {
157
+ h();
158
+ })));
159
+ });
160
+ };
161
+ await v$2();
162
+ let h = x(async () => {
163
+ if (_.length === 0 && o) return;
164
+ let r = !1;
165
+ for (let i = 0; i < 5; i++) try {
166
+ await E.transaction(async (s) => {
167
+ await s.exec(`
168
+ INSERT INTO live_query_${t}_state${d}
169
+ SELECT * FROM live_query_${t}_view;
170
+ `), o = await s.query(`EXECUTE live_query_${t}_diff${d};`), d = d === 1 ? 2 : 1, await s.exec(`
171
+ TRUNCATE live_query_${t}_state${d};
172
+ `);
173
+ });
174
+ break;
175
+ } catch (s) {
176
+ if (s.message === `relation "live_query_${t}_state${d}" does not exist`) {
177
+ r = !0, await v$2();
178
+ continue;
179
+ } else throw s;
180
+ }
181
+ D(_, [...r ? [{ __op__: "RESET" }] : [], ...o.rows]);
182
+ }), S = (r) => {
183
+ if (T) throw new Error("Live query is no longer active and cannot be subscribed to");
184
+ _.push(r);
185
+ }, R = async (r) => {
186
+ r ? _ = _.filter((i) => i !== r) : _ = [], _.length === 0 && !T && (T = !0, await E.transaction(async (i) => {
187
+ await Promise.all(A.map((s) => s(i))), await i.exec(`
188
+ DROP VIEW IF EXISTS live_query_${t}_view;
189
+ DROP TABLE IF EXISTS live_query_${t}_state1;
190
+ DROP TABLE IF EXISTS live_query_${t}_state2;
191
+ DEALLOCATE live_query_${t}_diff1;
192
+ DEALLOCATE live_query_${t}_diff2;
193
+ `);
194
+ }));
195
+ };
196
+ return c?.aborted ? await R() : c?.addEventListener("abort", () => {
197
+ R();
198
+ }, { once: !0 }), await h(), {
199
+ fields: o.fields.filter((r) => ![
200
+ "__after__",
201
+ "__op__",
202
+ "__changed_columns__"
203
+ ].includes(r.name)),
204
+ initialChanges: o.rows,
205
+ subscribe: S,
206
+ unsubscribe: R,
207
+ refresh: h
208
+ };
209
+ },
210
+ async incrementalQuery(e, $, a, m) {
211
+ let c;
212
+ if (typeof e != "string" && (c = e.signal, $ = e.params, a = e.key, m = e.callback, e = e.query), !a) throw new Error("key is required for incremental queries");
213
+ let _ = m ? [m] : [], t = /* @__PURE__ */ new Map(), T = /* @__PURE__ */ new Map(), d = [], o = !0, { fields: A, unsubscribe: v, refresh: h } = await g.changes(e, $, a, (w) => {
214
+ for (let s of w) {
215
+ let { __op__: u, __changed_columns__: f, ...l } = s;
216
+ switch (u) {
217
+ case "RESET":
218
+ t.clear(), T.clear();
219
+ break;
220
+ case "INSERT":
221
+ t.set(l[a], l), T.set(l.__after__, l[a]);
222
+ break;
223
+ case "DELETE": {
224
+ let n = t.get(l[a]);
225
+ t.delete(l[a]), n.__after__ !== null && T.delete(n.__after__);
226
+ break;
227
+ }
228
+ case "UPDATE": {
229
+ let n = { ...t.get(l[a]) ?? {} };
230
+ for (let L of f) n[L] = l[L], L === "__after__" && T.set(l.__after__, l[a]);
231
+ t.set(l[a], n);
232
+ break;
233
+ }
234
+ }
235
+ }
236
+ let r = [], i = null;
237
+ for (let s = 0; s < t.size; s++) {
238
+ let u = T.get(i), f = t.get(u);
239
+ if (!f) break;
240
+ let l = { ...f };
241
+ delete l.__after__, r.push(l), i = u;
242
+ }
243
+ d = r, o || N(_, {
244
+ rows: r,
245
+ fields: A
246
+ });
247
+ });
248
+ o = !1, N(_, {
249
+ rows: d,
250
+ fields: A
251
+ });
252
+ let S = (w) => {
253
+ _.push(w);
254
+ }, R = async (w) => {
255
+ w ? _ = _.filter((r) => r !== w) : _ = [], _.length === 0 && await v();
256
+ };
257
+ return c?.aborted ? await R() : c?.addEventListener("abort", () => {
258
+ R();
259
+ }, { once: !0 }), {
260
+ initialResults: {
261
+ rows: d,
262
+ fields: A
263
+ },
264
+ subscribe: S,
265
+ unsubscribe: R,
266
+ refresh: h
267
+ };
268
+ }
269
+ };
270
+ return { namespaceObj: g };
271
+ };
272
+ var Q = {
273
+ name: "Live Queries",
274
+ setup: U
275
+ };
276
+ async function q(E, y) {
277
+ return (await E.query(`
278
+ WITH RECURSIVE view_dependencies AS (
279
+ -- Base case: Get the initial view's dependencies
280
+ SELECT DISTINCT
281
+ cl.relname AS dependent_name,
282
+ n.nspname AS schema_name,
283
+ cl.oid AS dependent_oid,
284
+ n.oid AS schema_oid,
285
+ cl.relkind = 'v' AS is_view
286
+ FROM pg_rewrite r
287
+ JOIN pg_depend d ON r.oid = d.objid
288
+ JOIN pg_class cl ON d.refobjid = cl.oid
289
+ JOIN pg_namespace n ON cl.relnamespace = n.oid
290
+ WHERE
291
+ r.ev_class = (
292
+ SELECT oid FROM pg_class WHERE relname = $1 AND relkind = 'v'
293
+ )
294
+ AND d.deptype = 'n'
295
+
296
+ UNION ALL
297
+
298
+ -- Recursive case: Traverse dependencies for views
299
+ SELECT DISTINCT
300
+ cl.relname AS dependent_name,
301
+ n.nspname AS schema_name,
302
+ cl.oid AS dependent_oid,
303
+ n.oid AS schema_oid,
304
+ cl.relkind = 'v' AS is_view
305
+ FROM view_dependencies vd
306
+ JOIN pg_rewrite r ON vd.dependent_name = (
307
+ SELECT relname FROM pg_class WHERE oid = r.ev_class AND relkind = 'v'
308
+ )
309
+ JOIN pg_depend d ON r.oid = d.objid
310
+ JOIN pg_class cl ON d.refobjid = cl.oid
311
+ JOIN pg_namespace n ON cl.relnamespace = n.oid
312
+ WHERE d.deptype = 'n'
313
+ )
314
+ SELECT DISTINCT
315
+ dependent_name AS table_name,
316
+ schema_name,
317
+ dependent_oid AS table_oid,
318
+ schema_oid
319
+ FROM view_dependencies
320
+ WHERE NOT is_view; -- Exclude intermediate views
321
+ `, [y])).rows.map((g) => ({
322
+ table_name: g.table_name,
323
+ schema_name: g.schema_name,
324
+ table_oid: g.table_oid,
325
+ schema_oid: g.schema_oid
326
+ }));
327
+ }
328
+ async function F(E, y, p) {
329
+ let g = y.filter((e) => !p.has(`${e.schema_oid}_${e.table_oid}`)).map((e) => `
330
+ CREATE OR REPLACE FUNCTION "_notify_${e.schema_oid}_${e.table_oid}"() RETURNS TRIGGER AS $$
331
+ BEGIN
332
+ PERFORM pg_notify('table_change__${e.schema_oid}__${e.table_oid}', '');
333
+ RETURN NULL;
334
+ END;
335
+ $$ LANGUAGE plpgsql;
336
+ CREATE OR REPLACE TRIGGER "_notify_trigger_${e.schema_oid}_${e.table_oid}"
337
+ AFTER INSERT OR UPDATE OR DELETE ON "${e.schema_name}"."${e.table_name}"
338
+ FOR EACH STATEMENT EXECUTE FUNCTION "_notify_${e.schema_oid}_${e.table_oid}"();
339
+ `).join(`
340
+ `);
341
+ g.trim() !== "" && await E.exec(g), y.map((e) => p.add(`${e.schema_oid}_${e.table_oid}`));
342
+ }
343
+ var N = (E, y) => {
344
+ for (let p of E) p(y);
345
+ };
346
+ var D = (E, y) => {
347
+ for (let p of E) p(y);
348
+ };
349
+ //#endregion
350
+ export { Q as live };
351
+
352
+ //# sourceMappingURL=live-C0vaPQ9d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-C0vaPQ9d.js","names":["P","p","I","v","O","C"],"sources":["../../../../node_modules/@electric-sql/pglite/dist/live/index.js"],"sourcesContent":["import{a as O,b as C}from\"../chunk-RYDTTX3G.js\";import\"../chunk-2BOC2OMW.js\";import{a as I}from\"../chunk-NNS5RQRF.js\";import{j as P}from\"../chunk-QY3QWFKW.js\";P();var M=5,U=async(E,y)=>{let p=new Set,g={async query(e,$,a){let m,c,_;if(typeof e!=\"string\"&&(m=e.signal,$=e.params,a=e.callback,c=e.offset,_=e.limit,e=e.query),c===void 0!=(_===void 0))throw new Error(\"offset and limit must be provided together\");let t=c!==void 0&&_!==void 0,T;if(t&&(typeof c!=\"number\"||isNaN(c)||typeof _!=\"number\"||isNaN(_)))throw new Error(\"offset and limit must be numbers\");let d=a?[a]:[],o=I.uuid().replace(/-/g,\"\"),A=!1,v,h,S=async()=>{await E.transaction(async i=>{let s=$&&$.length>0?await O(E,e,$,i):e;await i.exec(`CREATE OR REPLACE TEMP VIEW live_query_${o}_view AS ${s}`);let u=await q(i,`live_query_${o}_view`);await F(i,u,p),t?(await i.exec(`\n PREPARE live_query_${o}_get(int, int) AS\n SELECT * FROM live_query_${o}_view\n LIMIT $1 OFFSET $2;\n `),await i.exec(`\n PREPARE live_query_${o}_get_total_count AS\n SELECT COUNT(*) FROM live_query_${o}_view;\n `),T=(await i.query(`EXECUTE live_query_${o}_get_total_count;`)).rows[0].count,v={...await i.query(`EXECUTE live_query_${o}_get(${_}, ${c});`),offset:c,limit:_,totalCount:T}):(await i.exec(`\n PREPARE live_query_${o}_get AS\n SELECT * FROM live_query_${o}_view;\n `),v=await i.query(`EXECUTE live_query_${o}_get;`)),h=await Promise.all(u.map(f=>i.listen(`\"table_change__${f.schema_oid}__${f.table_oid}\"`,async()=>{R()})))})};await S();let R=C(async({offset:i,limit:s}={})=>{if(!t&&(i!==void 0||s!==void 0))throw new Error(\"offset and limit cannot be provided for non-windowed queries\");if(i&&(typeof i!=\"number\"||isNaN(i))||s&&(typeof s!=\"number\"||isNaN(s)))throw new Error(\"offset and limit must be numbers\");c=i??c,_=s??_;let u=async(f=0)=>{if(d.length!==0){try{t?v={...await E.query(`EXECUTE live_query_${o}_get(${_}, ${c});`),offset:c,limit:_,totalCount:T}:v=await E.query(`EXECUTE live_query_${o}_get;`)}catch(l){let n=l.message;if(n.startsWith(`prepared statement \"live_query_${o}`)&&n.endsWith(\"does not exist\")){if(f>M)throw l;await S(),u(f+1)}else throw l}if(N(d,v),t){let l=(await E.query(`EXECUTE live_query_${o}_get_total_count;`)).rows[0].count;l!==T&&(T=l,R())}}};await u()}),w=i=>{if(A)throw new Error(\"Live query is no longer active and cannot be subscribed to\");d.push(i)},r=async i=>{i?d=d.filter(s=>s!==i):d=[],d.length===0&&!A&&(A=!0,await E.transaction(async s=>{await Promise.all(h.map(u=>u(s))),await s.exec(`\n DROP VIEW IF EXISTS live_query_${o}_view;\n DEALLOCATE live_query_${o}_get;\n `)}))};return m?.aborted?await r():m?.addEventListener(\"abort\",()=>{r()},{once:!0}),N(d,v),{initialResults:v,subscribe:w,unsubscribe:r,refresh:R}},async changes(e,$,a,m){let c;if(typeof e!=\"string\"&&(c=e.signal,$=e.params,a=e.key,m=e.callback,e=e.query),!a)throw new Error(\"key is required for changes queries\");let _=m?[m]:[],t=I.uuid().replace(/-/g,\"\"),T=!1,d=1,o,A,v=async()=>{await E.transaction(async r=>{let i=await O(E,e,$,r);await r.query(`CREATE OR REPLACE TEMP VIEW live_query_${t}_view AS ${i}`);let s=await q(r,`live_query_${t}_view`);await F(r,s,p);let u=[...(await r.query(`\n SELECT column_name, data_type, udt_name\n FROM information_schema.columns \n WHERE table_name = 'live_query_${t}_view'\n `)).rows,{column_name:\"__after__\",data_type:\"integer\"}];await r.exec(`\n CREATE TEMP TABLE live_query_${t}_state1 (LIKE live_query_${t}_view INCLUDING ALL);\n CREATE TEMP TABLE live_query_${t}_state2 (LIKE live_query_${t}_view INCLUDING ALL);\n `);for(let f of[1,2]){let l=f===1?2:1;await r.exec(`\n PREPARE live_query_${t}_diff${f} AS\n WITH\n prev AS (SELECT LAG(\"${a}\") OVER () as __after__, * FROM live_query_${t}_state${l}),\n curr AS (SELECT LAG(\"${a}\") OVER () as __after__, * FROM live_query_${t}_state${f}),\n data_diff AS (\n -- INSERT operations: Include all columns\n SELECT \n 'INSERT' AS __op__,\n ${u.map(({column_name:n})=>`curr.\"${n}\" AS \"${n}\"`).join(`,\n`)},\n ARRAY[]::text[] AS __changed_columns__\n FROM curr\n LEFT JOIN prev ON curr.${a} = prev.${a}\n WHERE prev.${a} IS NULL\n UNION ALL\n -- DELETE operations: Include only the primary key\n SELECT \n 'DELETE' AS __op__,\n ${u.map(({column_name:n,data_type:L,udt_name:b})=>n===a?`prev.\"${n}\" AS \"${n}\"`:`NULL${L===\"USER-DEFINED\"?`::${b}`:\"\"} AS \"${n}\"`).join(`,\n`)},\n ARRAY[]::text[] AS __changed_columns__\n FROM prev\n LEFT JOIN curr ON prev.${a} = curr.${a}\n WHERE curr.${a} IS NULL\n UNION ALL\n -- UPDATE operations: Include only changed columns\n SELECT \n 'UPDATE' AS __op__,\n ${u.map(({column_name:n,data_type:L,udt_name:b})=>n===a?`curr.\"${n}\" AS \"${n}\"`:`CASE \n WHEN curr.\"${n}\" IS DISTINCT FROM prev.\"${n}\" \n THEN curr.\"${n}\"\n ELSE NULL${L===\"USER-DEFINED\"?`::${b}`:\"\"}\n END AS \"${n}\"`).join(`,\n`)},\n ARRAY(SELECT unnest FROM unnest(ARRAY[${u.filter(({column_name:n})=>n!==a).map(({column_name:n})=>`CASE\n WHEN curr.\"${n}\" IS DISTINCT FROM prev.\"${n}\" \n THEN '${n}' \n ELSE NULL \n END`).join(\", \")}]) WHERE unnest IS NOT NULL) AS __changed_columns__\n FROM curr\n INNER JOIN prev ON curr.${a} = prev.${a}\n WHERE NOT (curr IS NOT DISTINCT FROM prev)\n )\n SELECT * FROM data_diff;\n `)}A=await Promise.all(s.map(f=>r.listen(`\"table_change__${f.schema_oid}__${f.table_oid}\"`,async()=>{h()})))})};await v();let h=C(async()=>{if(_.length===0&&o)return;let r=!1;for(let i=0;i<5;i++)try{await E.transaction(async s=>{await s.exec(`\n INSERT INTO live_query_${t}_state${d} \n SELECT * FROM live_query_${t}_view;\n `),o=await s.query(`EXECUTE live_query_${t}_diff${d};`),d=d===1?2:1,await s.exec(`\n TRUNCATE live_query_${t}_state${d};\n `)});break}catch(s){if(s.message===`relation \"live_query_${t}_state${d}\" does not exist`){r=!0,await v();continue}else throw s}D(_,[...r?[{__op__:\"RESET\"}]:[],...o.rows])}),S=r=>{if(T)throw new Error(\"Live query is no longer active and cannot be subscribed to\");_.push(r)},R=async r=>{r?_=_.filter(i=>i!==r):_=[],_.length===0&&!T&&(T=!0,await E.transaction(async i=>{await Promise.all(A.map(s=>s(i))),await i.exec(`\n DROP VIEW IF EXISTS live_query_${t}_view;\n DROP TABLE IF EXISTS live_query_${t}_state1;\n DROP TABLE IF EXISTS live_query_${t}_state2;\n DEALLOCATE live_query_${t}_diff1;\n DEALLOCATE live_query_${t}_diff2;\n `)}))};return c?.aborted?await R():c?.addEventListener(\"abort\",()=>{R()},{once:!0}),await h(),{fields:o.fields.filter(r=>![\"__after__\",\"__op__\",\"__changed_columns__\"].includes(r.name)),initialChanges:o.rows,subscribe:S,unsubscribe:R,refresh:h}},async incrementalQuery(e,$,a,m){let c;if(typeof e!=\"string\"&&(c=e.signal,$=e.params,a=e.key,m=e.callback,e=e.query),!a)throw new Error(\"key is required for incremental queries\");let _=m?[m]:[],t=new Map,T=new Map,d=[],o=!0,{fields:A,unsubscribe:v,refresh:h}=await g.changes(e,$,a,w=>{for(let s of w){let{__op__:u,__changed_columns__:f,...l}=s;switch(u){case\"RESET\":t.clear(),T.clear();break;case\"INSERT\":t.set(l[a],l),T.set(l.__after__,l[a]);break;case\"DELETE\":{let n=t.get(l[a]);t.delete(l[a]),n.__after__!==null&&T.delete(n.__after__);break}case\"UPDATE\":{let n={...t.get(l[a])??{}};for(let L of f)n[L]=l[L],L===\"__after__\"&&T.set(l.__after__,l[a]);t.set(l[a],n);break}}}let r=[],i=null;for(let s=0;s<t.size;s++){let u=T.get(i),f=t.get(u);if(!f)break;let l={...f};delete l.__after__,r.push(l),i=u}d=r,o||N(_,{rows:r,fields:A})});o=!1,N(_,{rows:d,fields:A});let S=w=>{_.push(w)},R=async w=>{w?_=_.filter(r=>r!==w):_=[],_.length===0&&await v()};return c?.aborted?await R():c?.addEventListener(\"abort\",()=>{R()},{once:!0}),{initialResults:{rows:d,fields:A},subscribe:S,unsubscribe:R,refresh:h}}};return{namespaceObj:g}},Q={name:\"Live Queries\",setup:U};async function q(E,y){return(await E.query(`\n WITH RECURSIVE view_dependencies AS (\n -- Base case: Get the initial view's dependencies\n SELECT DISTINCT\n cl.relname AS dependent_name,\n n.nspname AS schema_name,\n cl.oid AS dependent_oid,\n n.oid AS schema_oid,\n cl.relkind = 'v' AS is_view\n FROM pg_rewrite r\n JOIN pg_depend d ON r.oid = d.objid\n JOIN pg_class cl ON d.refobjid = cl.oid\n JOIN pg_namespace n ON cl.relnamespace = n.oid\n WHERE\n r.ev_class = (\n SELECT oid FROM pg_class WHERE relname = $1 AND relkind = 'v'\n )\n AND d.deptype = 'n'\n\n UNION ALL\n\n -- Recursive case: Traverse dependencies for views\n SELECT DISTINCT\n cl.relname AS dependent_name,\n n.nspname AS schema_name,\n cl.oid AS dependent_oid,\n n.oid AS schema_oid,\n cl.relkind = 'v' AS is_view\n FROM view_dependencies vd\n JOIN pg_rewrite r ON vd.dependent_name = (\n SELECT relname FROM pg_class WHERE oid = r.ev_class AND relkind = 'v'\n )\n JOIN pg_depend d ON r.oid = d.objid\n JOIN pg_class cl ON d.refobjid = cl.oid\n JOIN pg_namespace n ON cl.relnamespace = n.oid\n WHERE d.deptype = 'n'\n )\n SELECT DISTINCT\n dependent_name AS table_name,\n schema_name,\n dependent_oid AS table_oid,\n schema_oid\n FROM view_dependencies\n WHERE NOT is_view; -- Exclude intermediate views\n `,[y])).rows.map(g=>({table_name:g.table_name,schema_name:g.schema_name,table_oid:g.table_oid,schema_oid:g.schema_oid}))}async function F(E,y,p){let g=y.filter(e=>!p.has(`${e.schema_oid}_${e.table_oid}`)).map(e=>`\n CREATE OR REPLACE FUNCTION \"_notify_${e.schema_oid}_${e.table_oid}\"() RETURNS TRIGGER AS $$\n BEGIN\n PERFORM pg_notify('table_change__${e.schema_oid}__${e.table_oid}', '');\n RETURN NULL;\n END;\n $$ LANGUAGE plpgsql;\n CREATE OR REPLACE TRIGGER \"_notify_trigger_${e.schema_oid}_${e.table_oid}\"\n AFTER INSERT OR UPDATE OR DELETE ON \"${e.schema_name}\".\"${e.table_name}\"\n FOR EACH STATEMENT EXECUTE FUNCTION \"_notify_${e.schema_oid}_${e.table_oid}\"();\n `).join(`\n`);g.trim()!==\"\"&&await E.exec(g),y.map(e=>p.add(`${e.schema_oid}_${e.table_oid}`))}var N=(E,y)=>{for(let p of E)p(y)},D=(E,y)=>{for(let p of E)p(y)};export{Q as live};\n//# sourceMappingURL=index.js.map"],"ignoreList":[0],"mappings":";;;AAA+JA,EAAE;AAAE,IAAI,IAAE;AAAE,IAAA,IAAE,OAAM,GAAE,MAAI;CAAC,IAAIC,sBAAE,IAAI,IAAE,GAAE,IAAE;EAAC,MAAM,MAAM,GAAE,GAAE,GAAE;GAAC,IAAI,GAAE,GAAE;GAAE,IAAG,OAAO,KAAG,aAAW,IAAE,EAAE,QAAO,IAAE,EAAE,QAAO,IAAE,EAAE,UAAS,IAAE,EAAE,QAAO,IAAE,EAAE,OAAM,IAAE,EAAE,QAAO,MAAI,KAAK,MAAI,MAAI,KAAK,IAAG,MAAM,IAAI,MAAM,4CAA4C;GAAE,IAAI,IAAE,MAAI,KAAK,KAAG,MAAI,KAAK,GAAE;GAAE,IAAG,MAAI,OAAO,KAAG,YAAU,MAAM,CAAC,KAAG,OAAO,KAAG,YAAU,MAAM,CAAC,IAAG,MAAM,IAAI,MAAM,kCAAkC;GAAE,IAAI,IAAE,IAAE,CAAC,CAAC,IAAE,CAAC,GAAE,IAAEC,EAAE,KAAK,CAAC,CAAC,QAAQ,MAAK,EAAE,GAAE,IAAE,CAAC,GAAEC,KAAE,GAAE,IAAE,YAAS;IAAC,MAAM,EAAE,YAAY,OAAM,MAAG;KAAC,IAAI,IAAE,KAAG,EAAE,SAAO,IAAE,MAAMC,EAAE,GAAE,GAAE,GAAE,CAAC,IAAE;KAAE,MAAM,EAAE,KAAK,0CAA0C,EAAE,WAAW,GAAG;KAAE,IAAI,IAAE,MAAM,EAAE,GAAE,cAAc,EAAE,MAAM;KAAE,MAAM,EAAE,GAAE,GAAEH,GAAC,GAAE,KAAG,MAAM,EAAE,KAAK;mCAClyB,EAAE;yCACI,EAAE;;aAE9B,GAAE,MAAM,EAAE,KAAK;mCACO,EAAE;gDACW,EAAE;aACrC,GAAE,KAAG,MAAM,EAAE,MAAM,sBAAsB,EAAE,kBAAkB,EAAA,CAAG,KAAK,EAAE,CAAC,OAAM,MAAE;MAAC,GAAG,MAAM,EAAE,MAAM,sBAAsB,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG;MAAE,QAAO;MAAE,OAAM;MAAE,YAAW;KAAC,MAAI,MAAM,EAAE,KAAK;mCACtK,EAAE;yCACI,EAAE;aAC9B,GAAE,MAAE,MAAM,EAAE,MAAM,sBAAsB,EAAE,MAAM,IAAG,IAAE,MAAM,QAAQ,IAAI,EAAE,KAAI,MAAG,EAAE,OAAO,kBAAkB,EAAE,WAAW,IAAI,EAAE,UAAU,IAAG,YAAS;MAAC,EAAE;KAAC,CAAC,CAAC,CAAC;IAAC,CAAC;GAAC;GAAE,MAAM,EAAE;GAAE,IAAI,IAAEI,EAAE,OAAM,EAAC,QAAO,GAAE,OAAM,MAAG,CAAC,MAAI;IAAC,IAAG,CAAC,MAAI,MAAI,KAAK,KAAG,MAAI,KAAK,IAAG,MAAM,IAAI,MAAM,8DAA8D;IAAE,IAAG,MAAI,OAAO,KAAG,YAAU,MAAM,CAAC,MAAI,MAAI,OAAO,KAAG,YAAU,MAAM,CAAC,IAAG,MAAM,IAAI,MAAM,kCAAkC;IAAE,IAAE,KAAG,GAAE,IAAE,KAAG;IAAE,IAAI,IAAE,OAAM,IAAE,MAAI;KAAC,IAAG,EAAE,WAAS,GAAE;MAAC,IAAG;OAAC,IAAE,MAAE;QAAC,GAAG,MAAM,EAAE,MAAM,sBAAsB,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG;QAAE,QAAO;QAAE,OAAM;QAAE,YAAW;OAAC,IAAE,MAAE,MAAM,EAAE,MAAM,sBAAsB,EAAE,MAAM;MAAC,SAAO,GAAE;OAAC,IAAI,IAAE,EAAE;OAAQ,IAAG,EAAE,WAAW,kCAAkC,GAAG,KAAG,EAAE,SAAS,gBAAgB,GAAE;QAAC,IAAG,IAAE,GAAE,MAAM;QAAE,MAAM,EAAE,GAAE,EAAE,IAAE,CAAC;OAAC,OAAM,MAAM;MAAC;MAAC,IAAG,EAAE,GAAEF,GAAC,GAAE,GAAE;OAAC,IAAI,KAAG,MAAM,EAAE,MAAM,sBAAsB,EAAE,kBAAkB,EAAA,CAAG,KAAK,EAAE,CAAC;OAAM,MAAI,MAAI,IAAE,GAAE,EAAE;MAAE;KAAC;IAAC;IAAE,MAAM,EAAE;GAAC,CAAC,GAAE,KAAE,MAAG;IAAC,IAAG,GAAE,MAAM,IAAI,MAAM,4DAA4D;IAAE,EAAE,KAAK,CAAC;GAAC,GAAE,IAAE,OAAM,MAAG;IAAC,IAAE,IAAE,EAAE,QAAO,MAAG,MAAI,CAAC,IAAE,IAAE,CAAC,GAAE,EAAE,WAAS,KAAG,CAAC,MAAI,IAAE,CAAC,GAAE,MAAM,EAAE,YAAY,OAAM,MAAG;KAAC,MAAM,QAAQ,IAAI,EAAE,KAAI,MAAG,EAAE,CAAC,CAAC,CAAC,GAAE,MAAM,EAAE,KAAK;+CAC5mC,EAAE;sCACX,EAAE;aAC3B;IAAC,CAAC;GAAE;GAAE,OAAO,GAAG,UAAQ,MAAM,EAAE,IAAE,GAAG,iBAAiB,eAAY;IAAC,EAAE;GAAC,GAAE,EAAC,MAAK,CAAC,EAAC,CAAC,GAAE,EAAE,GAAEA,GAAC,GAAE;IAAC,gBAAeA;IAAE,WAAU;IAAE,aAAY;IAAE,SAAQ;GAAC;EAAC;EAAE,MAAM,QAAQ,GAAE,GAAE,GAAE,GAAE;GAAC,IAAI;GAAE,IAAG,OAAO,KAAG,aAAW,IAAE,EAAE,QAAO,IAAE,EAAE,QAAO,IAAE,EAAE,KAAI,IAAE,EAAE,UAAS,IAAE,EAAE,QAAO,CAAC,GAAE,MAAM,IAAI,MAAM,qCAAqC;GAAE,IAAI,IAAE,IAAE,CAAC,CAAC,IAAE,CAAC,GAAE,IAAED,EAAE,KAAK,CAAC,CAAC,QAAQ,MAAK,EAAE,GAAE,IAAE,CAAC,GAAE,IAAE,GAAE,GAAE,GAAEC,MAAE,YAAS;IAAC,MAAM,EAAE,YAAY,OAAM,MAAG;KAAC,IAAI,IAAE,MAAMC,EAAE,GAAE,GAAE,GAAE,CAAC;KAAE,MAAM,EAAE,MAAM,0CAA0C,EAAE,WAAW,GAAG;KAAE,IAAI,IAAE,MAAM,EAAE,GAAE,cAAc,EAAE,MAAM;KAAE,MAAM,EAAE,GAAE,GAAEH,GAAC;KAAE,IAAI,IAAE,CAAC,IAAI,MAAM,EAAE,MAAM;;;iDAGtiB,EAAE;eACpC,EAAA,CAAG,MAAK;MAAC,aAAY;MAAY,WAAU;KAAS,CAAC;KAAE,MAAM,EAAE,KAAK;2CACxC,EAAE,2BAA2B,EAAE;2CAC/B,EAAE,2BAA2B,EAAE;WAC/D;KAAE,KAAI,IAAI,KAAI,CAAC,GAAE,CAAC,GAAE;MAAC,IAAI,IAAE,MAAI,IAAE,IAAE;MAAE,MAAM,EAAE,KAAK;mCAC1B,EAAE,OAAO,EAAE;;uCAEP,EAAE,6CAA6C,EAAE,QAAQ,EAAE;uCAC3D,EAAE,6CAA6C,EAAE,QAAQ,EAAE;;;;;sBAK5E,EAAE,KAAK,EAAC,aAAY,QAAK,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,KAAK;CAC5E,EAAE;;;2CAGwC,EAAE,UAAU,EAAE;+BAC1B,EAAE;;;;;sBAKX,EAAE,KAAK,EAAC,aAAY,GAAE,WAAU,GAAE,UAAS,QAAK,MAAI,IAAE,SAAS,EAAE,QAAQ,EAAE,KAAG,OAAO,MAAI,iBAAe,KAAK,MAAI,GAAG,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK;CAC3J,EAAE;;;2CAGwC,EAAE,UAAU,EAAE;+BAC1B,EAAE;;;;;sBAKX,EAAE,KAAK,EAAC,aAAY,GAAE,WAAU,GAAE,UAAS,QAAK,MAAI,IAAE,SAAS,EAAE,QAAQ,EAAE,KAAG;2CACzD,EAAE,2BAA2B,EAAE;2CAC/B,EAAE;yCACJ,MAAI,iBAAe,KAAK,MAAI,GAAG;wCAChC,EAAE,EAAE,CAAC,CAAC,KAAK;CAClD,EAAE;8DAC2D,EAAE,QAAQ,EAAC,aAAY,QAAK,MAAI,CAAC,CAAC,CAAC,KAAK,EAAC,aAAY,QAAK;2CAC7E,EAAE,2BAA2B,EAAE;sCACpC,EAAE;;kCAEN,CAAC,CAAC,KAAK,IAAI,EAAE;;4CAEH,EAAE,UAAU,EAAE;;;;aAI7C;KAAC;KAAC,IAAE,MAAM,QAAQ,IAAI,EAAE,KAAI,MAAG,EAAE,OAAO,kBAAkB,EAAE,WAAW,IAAI,EAAE,UAAU,IAAG,YAAS;MAAC,EAAE;KAAC,CAAC,CAAC,CAAC;IAAC,CAAC;GAAC;GAAE,MAAME,IAAE;GAAE,IAAI,IAAEE,EAAE,YAAS;IAAC,IAAG,EAAE,WAAS,KAAG,GAAE;IAAO,IAAI,IAAE,CAAC;IAAE,KAAI,IAAI,IAAE,GAAE,IAAE,GAAE,KAAI,IAAG;KAAC,MAAM,EAAE,YAAY,OAAM,MAAG;MAAC,MAAM,EAAE,KAAK;yCACrN,EAAE,QAAQ,EAAE;6CACR,EAAE;eAChC,GAAE,IAAE,MAAM,EAAE,MAAM,sBAAsB,EAAE,OAAO,EAAE,EAAE,GAAE,IAAE,MAAI,IAAE,IAAE,GAAE,MAAM,EAAE,KAAK;sCACzD,EAAE,QAAQ,EAAE;eACnC;KAAC,CAAC;KAAE;IAAK,SAAO,GAAE;KAAC,IAAG,EAAE,YAAU,wBAAwB,EAAE,QAAQ,EAAE,mBAAkB;MAAC,IAAE,CAAC,GAAE,MAAMF,IAAE;MAAE;KAAQ,OAAM,MAAM;IAAC;IAAC,EAAE,GAAE,CAAC,GAAG,IAAE,CAAC,EAAC,QAAO,QAAO,CAAC,IAAE,CAAC,GAAE,GAAG,EAAE,IAAI,CAAC;GAAC,CAAC,GAAE,KAAE,MAAG;IAAC,IAAG,GAAE,MAAM,IAAI,MAAM,4DAA4D;IAAE,EAAE,KAAK,CAAC;GAAC,GAAE,IAAE,OAAM,MAAG;IAAC,IAAE,IAAE,EAAE,QAAO,MAAG,MAAI,CAAC,IAAE,IAAE,CAAC,GAAE,EAAE,WAAS,KAAG,CAAC,MAAI,IAAE,CAAC,GAAE,MAAM,EAAE,YAAY,OAAM,MAAG;KAAC,MAAM,QAAQ,IAAI,EAAE,KAAI,MAAG,EAAE,CAAC,CAAC,CAAC,GAAE,MAAM,EAAE,KAAK;+CAC7X,EAAE;gDACD,EAAE;gDACF,EAAE;sCACZ,EAAE;sCACF,EAAE;aAC3B;IAAC,CAAC;GAAE;GAAE,OAAO,GAAG,UAAQ,MAAM,EAAE,IAAE,GAAG,iBAAiB,eAAY;IAAC,EAAE;GAAC,GAAE,EAAC,MAAK,CAAC,EAAC,CAAC,GAAE,MAAM,EAAE,GAAE;IAAC,QAAO,EAAE,OAAO,QAAO,MAAG,CAAC;KAAC;KAAY;KAAS;IAAqB,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC;IAAE,gBAAe,EAAE;IAAK,WAAU;IAAE,aAAY;IAAE,SAAQ;GAAC;EAAC;EAAE,MAAM,iBAAiB,GAAE,GAAE,GAAE,GAAE;GAAC,IAAI;GAAE,IAAG,OAAO,KAAG,aAAW,IAAE,EAAE,QAAO,IAAE,EAAE,QAAO,IAAE,EAAE,KAAI,IAAE,EAAE,UAAS,IAAE,EAAE,QAAO,CAAC,GAAE,MAAM,IAAI,MAAM,yCAAyC;GAAE,IAAI,IAAE,IAAE,CAAC,CAAC,IAAE,CAAC,GAAE,oBAAE,IAAI,IAAE,GAAE,oBAAE,IAAI,IAAE,GAAE,IAAE,CAAC,GAAE,IAAE,CAAC,GAAE,EAAC,QAAO,GAAE,aAAY,GAAE,SAAQ,MAAG,MAAM,EAAE,QAAQ,GAAE,GAAE,IAAE,MAAG;IAAC,KAAI,IAAI,KAAK,GAAE;KAAC,IAAG,EAAC,QAAO,GAAE,qBAAoB,GAAE,GAAG,MAAG;KAAE,QAAO,GAAP;MAAU,KAAI;OAAQ,EAAE,MAAM,GAAE,EAAE,MAAM;OAAE;MAAM,KAAI;OAAS,EAAE,IAAI,EAAE,IAAG,CAAC,GAAE,EAAE,IAAI,EAAE,WAAU,EAAE,EAAE;OAAE;MAAM,KAAI,UAAS;OAAC,IAAI,IAAE,EAAE,IAAI,EAAE,EAAE;OAAE,EAAE,OAAO,EAAE,EAAE,GAAE,EAAE,cAAY,QAAM,EAAE,OAAO,EAAE,SAAS;OAAE;MAAK;MAAC,KAAI,UAAS;OAAC,IAAI,IAAE,EAAC,GAAG,EAAE,IAAI,EAAE,EAAE,KAAG,CAAC,EAAC;OAAE,KAAI,IAAI,KAAK,GAAE,EAAE,KAAG,EAAE,IAAG,MAAI,eAAa,EAAE,IAAI,EAAE,WAAU,EAAE,EAAE;OAAE,EAAE,IAAI,EAAE,IAAG,CAAC;OAAE;MAAK;KAAC;IAAC;IAAC,IAAI,IAAE,CAAC,GAAE,IAAE;IAAK,KAAI,IAAI,IAAE,GAAE,IAAE,EAAE,MAAK,KAAI;KAAC,IAAI,IAAE,EAAE,IAAI,CAAC,GAAE,IAAE,EAAE,IAAI,CAAC;KAAE,IAAG,CAAC,GAAE;KAAM,IAAI,IAAE,EAAC,GAAG,EAAC;KAAE,OAAO,EAAE,WAAU,EAAE,KAAK,CAAC,GAAE,IAAE;IAAC;IAAC,IAAE,GAAE,KAAG,EAAE,GAAE;KAAC,MAAK;KAAE,QAAO;IAAC,CAAC;GAAC,CAAC;GAAE,IAAE,CAAC,GAAE,EAAE,GAAE;IAAC,MAAK;IAAE,QAAO;GAAC,CAAC;GAAE,IAAI,KAAE,MAAG;IAAC,EAAE,KAAK,CAAC;GAAC,GAAE,IAAE,OAAM,MAAG;IAAC,IAAE,IAAE,EAAE,QAAO,MAAG,MAAI,CAAC,IAAE,IAAE,CAAC,GAAE,EAAE,WAAS,KAAG,MAAM,EAAE;GAAC;GAAE,OAAO,GAAG,UAAQ,MAAM,EAAE,IAAE,GAAG,iBAAiB,eAAY;IAAC,EAAE;GAAC,GAAE,EAAC,MAAK,CAAC,EAAC,CAAC,GAAE;IAAC,gBAAe;KAAC,MAAK;KAAE,QAAO;IAAC;IAAE,WAAU;IAAE,aAAY;IAAE,SAAQ;GAAC;EAAC;CAAC;CAAE,OAAM,EAAC,cAAa,EAAC;AAAC;AAAE,IAAA,IAAE;CAAC,MAAK;CAAe,OAAM;AAAC;AAAE,eAAe,EAAE,GAAE,GAAE;CAAC,QAAO,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4Cp6C,CAAC,CAAC,CAAC,EAAA,CAAG,KAAK,KAAI,OAAI;EAAC,YAAW,EAAE;EAAW,aAAY,EAAE;EAAY,WAAU,EAAE;EAAU,YAAW,EAAE;CAAU,EAAE;AAAC;AAAC,eAAe,EAAE,GAAE,GAAE,GAAE;CAAC,IAAI,IAAE,EAAE,QAAO,MAAG,CAAC,EAAE,IAAI,GAAG,EAAE,WAAW,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,KAAI,MAAG;4CAC5K,EAAE,WAAW,GAAG,EAAE,UAAU;;2CAE7B,EAAE,WAAW,IAAI,EAAE,UAAU;;;;mDAIrB,EAAE,WAAW,GAAG,EAAE,UAAU;6CAClC,EAAE,YAAY,KAAK,EAAE,WAAW;qDACxB,EAAE,WAAW,GAAG,EAAE,UAAU;OAC1E,CAAC,CAAC,KAAK;CACb;CAAE,EAAE,KAAK,MAAI,MAAI,MAAM,EAAE,KAAK,CAAC,GAAE,EAAE,KAAI,MAAG,EAAE,IAAI,GAAG,EAAE,WAAW,GAAG,EAAE,WAAW,CAAC;AAAC;AAAC,IAAI,KAAG,GAAE,MAAI;CAAC,KAAI,IAAI,KAAK,GAAE,EAAE,CAAC;AAAC;AAAE,IAAA,KAAG,GAAE,MAAI;CAAC,KAAI,IAAI,KAAK,GAAE,EAAE,CAAC;AAAC"}
@@ -0,0 +1,12 @@
1
+ import { l as u } from "./chunk-QY3QWFKW-CzLN3CwB.js";
2
+ //#region ../../node_modules/@electric-sql/pglite/dist/contrib/lo.js
3
+ u();
4
+ var t = async (n, s) => ({ bundlePath: new URL(new URL("lo.tar-Wbg4cu0O.gz", import.meta.url).href, "" + import.meta.url) });
5
+ var r = {
6
+ name: "lo",
7
+ setup: t
8
+ };
9
+ //#endregion
10
+ export { r as lo };
11
+
12
+ //# sourceMappingURL=lo-BCYhDwhC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lo-BCYhDwhC.js","names":["e","import.meta.ROLLDOWN_FILE_URL_$oUiuAXR7gZMKRQU56HW2w"],"sources":["../../../../node_modules/@electric-sql/pglite/dist/contrib/lo.js"],"sourcesContent":["import{j as e}from\"../chunk-QY3QWFKW.js\";e();var t=async(n,s)=>({bundlePath:new URL(\"../lo.tar.gz?no-inline\",import.meta.url)}),r={name:\"lo\",setup:t};export{r as lo};\n//# sourceMappingURL=lo.js.map"],"ignoreList":[0],"mappings":";;AAAyCA,EAAE;AAAE,IAAI,IAAE,OAAM,GAAE,OAAK,EAAC,YAAW,IAAA,IAAA,IAAA,IAAA,sBAAA,YAAA,GAAA,CAAA,CAAAC,MAAA,KAAA,YAAA,GAAA,EAAiD;AAAG,IAAA,IAAE;CAAC,MAAK;CAAK,OAAM;AAAC"}
Binary file
@@ -0,0 +1,12 @@
1
+ import { l as u } from "./chunk-QY3QWFKW-CzLN3CwB.js";
2
+ //#region ../../node_modules/@electric-sql/pglite/dist/contrib/ltree.js
3
+ u();
4
+ var t = async (n, s) => ({ bundlePath: new URL(new URL("ltree.tar-BoFMdBkQ.gz", import.meta.url).href, "" + import.meta.url) });
5
+ var a = {
6
+ name: "ltree",
7
+ setup: t
8
+ };
9
+ //#endregion
10
+ export { a as ltree };
11
+
12
+ //# sourceMappingURL=ltree-CXf3JCHu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ltree-CXf3JCHu.js","names":["e","import.meta.ROLLDOWN_FILE_URL_aLISaAY6NSiJFT$6GdtrfA"],"sources":["../../../../node_modules/@electric-sql/pglite/dist/contrib/ltree.js"],"sourcesContent":["import{j as e}from\"../chunk-QY3QWFKW.js\";e();var t=async(n,s)=>({bundlePath:new URL(\"../ltree.tar.gz?no-inline\",import.meta.url)}),a={name:\"ltree\",setup:t};export{a as ltree};\n//# sourceMappingURL=ltree.js.map"],"ignoreList":[0],"mappings":";;AAAyCA,EAAE;AAAE,IAAI,IAAE,OAAM,GAAE,OAAK,EAAC,YAAW,IAAA,IAAA,IAAA,IAAA,yBAAA,YAAA,GAAA,CAAA,CAAAC,MAAA,KAAA,YAAA,GAAA,EAAoD;AAAG,IAAA,IAAE;CAAC,MAAK;CAAQ,OAAM;AAAC"}
@@ -0,0 +1,28 @@
1
+ import { n as __toESM } from "./rolldown-runtime-BPOCksWG.js";
2
+ import { l as u } from "./chunk-QY3QWFKW-CzLN3CwB.js";
3
+ import { o as Ye, r as B } from "./pglite-opfs-worker-BR5YL-9f.js";
4
+ import { t as require___vite_browser_external } from "./__vite-browser-external-DU35AV1a.js";
5
+ //#region ../../node_modules/@electric-sql/pglite/dist/fs/nodefs.js
6
+ var import___vite_browser_external = /* @__PURE__ */ __toESM(require___vite_browser_external(), 1);
7
+ u();
8
+ var m = class extends Ye {
9
+ constructor(t) {
10
+ super(t), this.rootDir = import___vite_browser_external.resolve(t), import___vite_browser_external.existsSync(import___vite_browser_external.join(this.rootDir)) || import___vite_browser_external.mkdirSync(this.rootDir);
11
+ }
12
+ async init(t, e) {
13
+ return this.pg = t, { emscriptenOpts: {
14
+ ...e,
15
+ preRun: [...e.preRun || [], (r) => {
16
+ let c = r.FS.filesystems.NODEFS;
17
+ r.FS.mkdir(B), r.FS.mount(c, { root: this.rootDir }, B);
18
+ }]
19
+ } };
20
+ }
21
+ async closeFs() {
22
+ this.pg.Module.FS.quit();
23
+ }
24
+ };
25
+ //#endregion
26
+ export { m as NodeFS };
27
+
28
+ //# sourceMappingURL=nodefs-DJNldqq6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodefs-DJNldqq6.js","names":["n","p","o","s","i"],"sources":["../../../../node_modules/@electric-sql/pglite/dist/fs/nodefs.js"],"sourcesContent":["import{d as i,i as p}from\"../chunk-DDJLRBDX.js\";import\"../chunk-NNS5RQRF.js\";import{j as n}from\"../chunk-QY3QWFKW.js\";n();import*as s from\"fs\";import*as o from\"path\";var m=class extends p{constructor(t){super(t),this.rootDir=o.resolve(t),s.existsSync(o.join(this.rootDir))||s.mkdirSync(this.rootDir)}async init(t,e){return this.pg=t,{emscriptenOpts:{...e,preRun:[...e.preRun||[],r=>{let c=r.FS.filesystems.NODEFS;r.FS.mkdir(i),r.FS.mount(c,{root:this.rootDir},i)}]}}}async closeFs(){this.pg.Module.FS.quit()}};export{m as NodeFS};\n//# sourceMappingURL=nodefs.js.map"],"ignoreList":[0],"mappings":";;;;;;AAAsHA,EAAE;AAA8C,IAAI,IAAE,cAAcC,GAAC;CAAC,YAAY,GAAE;EAAC,MAAM,CAAC,GAAE,KAAK,UAAQC,+BAAE,QAAQ,CAAC,GAAEC,+BAAE,WAAWD,+BAAE,KAAK,KAAK,OAAO,CAAC,KAAGC,+BAAE,UAAU,KAAK,OAAO;CAAC;CAAC,MAAM,KAAK,GAAE,GAAE;EAAC,OAAO,KAAK,KAAG,GAAE,EAAC,gBAAe;GAAC,GAAG;GAAE,QAAO,CAAC,GAAG,EAAE,UAAQ,CAAC,IAAE,MAAG;IAAC,IAAI,IAAE,EAAE,GAAG,YAAY;IAAO,EAAE,GAAG,MAAMC,CAAC,GAAE,EAAE,GAAG,MAAM,GAAE,EAAC,MAAK,KAAK,QAAO,GAAEA,CAAC;GAAC,CAAC;EAAC,EAAC;CAAC;CAAC,MAAM,UAAS;EAAC,KAAK,GAAG,OAAO,GAAG,KAAK;CAAC;AAAC"}