mongoku 1.3.0 → 2.0.0

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 (214) hide show
  1. package/README.md +68 -42
  2. package/build/client/_app/immutable/assets/0.BHsXFfsc.css +1 -0
  3. package/build/client/_app/immutable/assets/0.BHsXFfsc.css.br +0 -0
  4. package/build/client/_app/immutable/assets/0.BHsXFfsc.css.gz +0 -0
  5. package/build/client/_app/immutable/assets/3.CRKE8WvY.css +1 -0
  6. package/build/client/_app/immutable/assets/3.CRKE8WvY.css.br +2 -0
  7. package/build/client/_app/immutable/assets/3.CRKE8WvY.css.gz +0 -0
  8. package/build/client/_app/immutable/assets/6.DawdmtJd.css +1 -0
  9. package/build/client/_app/immutable/assets/6.DawdmtJd.css.br +2 -0
  10. package/build/client/_app/immutable/assets/6.DawdmtJd.css.gz +0 -0
  11. package/build/client/_app/immutable/assets/Panel.BDHMtO-3.css +1 -0
  12. package/build/client/_app/immutable/assets/Panel.BDHMtO-3.css.br +0 -0
  13. package/build/client/_app/immutable/assets/Panel.BDHMtO-3.css.gz +0 -0
  14. package/build/client/_app/immutable/assets/PrettyJson.CtngcfyW.css +1 -0
  15. package/build/client/_app/immutable/assets/PrettyJson.CtngcfyW.css.br +0 -0
  16. package/build/client/_app/immutable/assets/PrettyJson.CtngcfyW.css.gz +0 -0
  17. package/build/client/_app/immutable/assets/cuprum-cyrillic-400-normal.Cnibl3-L.woff2 +0 -0
  18. package/build/client/_app/immutable/assets/cuprum-cyrillic-400-normal.RKIjpA76.woff +0 -0
  19. package/build/client/_app/immutable/assets/cuprum-cyrillic-ext-400-normal.CT5q4ZVh.woff2 +0 -0
  20. package/build/client/_app/immutable/assets/cuprum-cyrillic-ext-400-normal.iCCFJ4Gn.woff +0 -0
  21. package/build/client/_app/immutable/assets/cuprum-latin-400-normal.Cbwtr8a4.woff +0 -0
  22. package/build/client/_app/immutable/assets/cuprum-latin-400-normal.CjFvNwMJ.woff2 +0 -0
  23. package/build/client/_app/immutable/assets/cuprum-latin-ext-400-normal.BWTJtpjo.woff2 +0 -0
  24. package/build/client/_app/immutable/assets/cuprum-latin-ext-400-normal.BZXayy47.woff +0 -0
  25. package/build/client/_app/immutable/assets/cuprum-vietnamese-400-normal.uXRi1gw5.woff +0 -0
  26. package/build/client/_app/immutable/assets/rajdhani-devanagari-400-normal.BdIzgbsr.woff +0 -0
  27. package/build/client/_app/immutable/assets/rajdhani-devanagari-400-normal.CTuj2HZW.woff2 +0 -0
  28. package/build/client/_app/immutable/assets/rajdhani-latin-400-normal.C6_q4usG.woff +0 -0
  29. package/build/client/_app/immutable/assets/rajdhani-latin-400-normal.CurJOxDW.woff2 +0 -0
  30. package/build/client/_app/immutable/assets/rajdhani-latin-ext-400-normal.DACPYgMx.woff2 +0 -0
  31. package/build/client/_app/immutable/assets/rajdhani-latin-ext-400-normal.Der7ynDE.woff +0 -0
  32. package/build/client/_app/immutable/chunks/B-Z1NsR7.js +1 -0
  33. package/build/client/_app/immutable/chunks/B-Z1NsR7.js.br +0 -0
  34. package/build/client/_app/immutable/chunks/B-Z1NsR7.js.gz +0 -0
  35. package/build/client/_app/immutable/chunks/BEuO9qGi.js +1 -0
  36. package/build/client/_app/immutable/chunks/BEuO9qGi.js.br +0 -0
  37. package/build/client/_app/immutable/chunks/BEuO9qGi.js.gz +0 -0
  38. package/build/client/_app/immutable/chunks/BN_N9-2s.js +1 -0
  39. package/build/client/_app/immutable/chunks/BN_N9-2s.js.br +0 -0
  40. package/build/client/_app/immutable/chunks/BN_N9-2s.js.gz +0 -0
  41. package/build/client/_app/immutable/chunks/BuIrCFA_.js +1 -0
  42. package/build/client/_app/immutable/chunks/BuIrCFA_.js.br +0 -0
  43. package/build/client/_app/immutable/chunks/BuIrCFA_.js.gz +0 -0
  44. package/build/client/_app/immutable/chunks/C9b4uNov.js +1 -0
  45. package/build/client/_app/immutable/chunks/C9b4uNov.js.br +0 -0
  46. package/build/client/_app/immutable/chunks/C9b4uNov.js.gz +0 -0
  47. package/build/client/_app/immutable/chunks/CIYBIyvN.js +1 -0
  48. package/build/client/_app/immutable/chunks/CIYBIyvN.js.br +0 -0
  49. package/build/client/_app/immutable/chunks/CIYBIyvN.js.gz +0 -0
  50. package/build/client/_app/immutable/chunks/CWUhQKKC.js +1 -0
  51. package/build/client/_app/immutable/chunks/CWUhQKKC.js.br +0 -0
  52. package/build/client/_app/immutable/chunks/CWUhQKKC.js.gz +0 -0
  53. package/build/client/_app/immutable/chunks/CrJSDly5.js +2 -0
  54. package/build/client/_app/immutable/chunks/CrJSDly5.js.br +0 -0
  55. package/build/client/_app/immutable/chunks/CrJSDly5.js.gz +0 -0
  56. package/build/client/_app/immutable/chunks/DRy_44ib.js +1 -0
  57. package/build/client/_app/immutable/chunks/DRy_44ib.js.br +0 -0
  58. package/build/client/_app/immutable/chunks/DRy_44ib.js.gz +0 -0
  59. package/build/client/_app/immutable/chunks/DS5yzhLt.js +1 -0
  60. package/build/client/_app/immutable/chunks/DS5yzhLt.js.br +0 -0
  61. package/build/client/_app/immutable/chunks/DS5yzhLt.js.gz +0 -0
  62. package/build/client/_app/immutable/chunks/DZSJW-Zm.js +1 -0
  63. package/build/client/_app/immutable/chunks/DZSJW-Zm.js.br +0 -0
  64. package/build/client/_app/immutable/chunks/DZSJW-Zm.js.gz +0 -0
  65. package/build/client/_app/immutable/chunks/Dbyirw23.js +14 -0
  66. package/build/client/_app/immutable/chunks/Dbyirw23.js.br +0 -0
  67. package/build/client/_app/immutable/chunks/Dbyirw23.js.gz +0 -0
  68. package/build/client/_app/immutable/chunks/DsnmJJEf.js +1 -0
  69. package/build/client/_app/immutable/chunks/DsnmJJEf.js.br +2 -0
  70. package/build/client/_app/immutable/chunks/DsnmJJEf.js.gz +0 -0
  71. package/build/client/_app/immutable/chunks/DzSHMQR7.js +1 -0
  72. package/build/client/_app/immutable/chunks/DzSHMQR7.js.br +0 -0
  73. package/build/client/_app/immutable/chunks/DzSHMQR7.js.gz +0 -0
  74. package/build/client/_app/immutable/chunks/W-qL5_8w.js +1 -0
  75. package/build/client/_app/immutable/chunks/W-qL5_8w.js.br +0 -0
  76. package/build/client/_app/immutable/chunks/W-qL5_8w.js.gz +0 -0
  77. package/build/client/_app/immutable/chunks/aB6hH3ax.js +3 -0
  78. package/build/client/_app/immutable/chunks/aB6hH3ax.js.br +0 -0
  79. package/build/client/_app/immutable/chunks/aB6hH3ax.js.gz +0 -0
  80. package/build/client/_app/immutable/chunks/nJ6DKbk8.js +1 -0
  81. package/build/client/_app/immutable/chunks/nJ6DKbk8.js.br +0 -0
  82. package/build/client/_app/immutable/chunks/nJ6DKbk8.js.gz +0 -0
  83. package/build/client/_app/immutable/chunks/zeTqHWB5.js +2 -0
  84. package/build/client/_app/immutable/chunks/zeTqHWB5.js.br +0 -0
  85. package/build/client/_app/immutable/chunks/zeTqHWB5.js.gz +0 -0
  86. package/build/client/_app/immutable/entry/app.CW91YXu8.js +2 -0
  87. package/build/client/_app/immutable/entry/app.CW91YXu8.js.br +0 -0
  88. package/build/client/_app/immutable/entry/app.CW91YXu8.js.gz +0 -0
  89. package/build/client/_app/immutable/entry/start.CidwPVgO.js +1 -0
  90. package/build/client/_app/immutable/entry/start.CidwPVgO.js.br +2 -0
  91. package/build/client/_app/immutable/entry/start.CidwPVgO.js.gz +0 -0
  92. package/build/client/_app/immutable/nodes/0.B2lBDs71.js +1 -0
  93. package/build/client/_app/immutable/nodes/0.B2lBDs71.js.br +0 -0
  94. package/build/client/_app/immutable/nodes/0.B2lBDs71.js.gz +0 -0
  95. package/build/client/_app/immutable/nodes/1.CueZCvtl.js +1 -0
  96. package/build/client/_app/immutable/nodes/1.CueZCvtl.js.br +0 -0
  97. package/build/client/_app/immutable/nodes/1.CueZCvtl.js.gz +0 -0
  98. package/build/client/_app/immutable/nodes/3.alYAlI3j.js +1 -0
  99. package/build/client/_app/immutable/nodes/3.alYAlI3j.js.br +0 -0
  100. package/build/client/_app/immutable/nodes/3.alYAlI3j.js.gz +0 -0
  101. package/build/client/_app/immutable/nodes/4.BqBphmVX.js +1 -0
  102. package/build/client/_app/immutable/nodes/4.BqBphmVX.js.br +0 -0
  103. package/build/client/_app/immutable/nodes/4.BqBphmVX.js.gz +0 -0
  104. package/build/client/_app/immutable/nodes/5.BkAWRgl4.js +1 -0
  105. package/build/client/_app/immutable/nodes/5.BkAWRgl4.js.br +0 -0
  106. package/build/client/_app/immutable/nodes/5.BkAWRgl4.js.gz +0 -0
  107. package/build/client/_app/immutable/nodes/6.KI4mq5ln.js +1 -0
  108. package/build/client/_app/immutable/nodes/6.KI4mq5ln.js.br +0 -0
  109. package/build/client/_app/immutable/nodes/6.KI4mq5ln.js.gz +0 -0
  110. package/build/client/_app/immutable/nodes/7.Brjrw0K8.js +1 -0
  111. package/build/client/_app/immutable/nodes/7.Brjrw0K8.js.br +0 -0
  112. package/build/client/_app/immutable/nodes/7.Brjrw0K8.js.gz +0 -0
  113. package/build/client/_app/version.json +1 -0
  114. package/build/client/_app/version.json.br +0 -0
  115. package/build/client/_app/version.json.gz +0 -0
  116. package/build/client/robots.txt +3 -0
  117. package/build/env.js +45 -0
  118. package/build/handler.js +1376 -0
  119. package/build/index.js +334 -0
  120. package/build/server/chunks/0-BGoFMRn2.js +21 -0
  121. package/build/server/chunks/0-BGoFMRn2.js.map +1 -0
  122. package/build/server/chunks/1-Ch0AY58K.js +9 -0
  123. package/build/server/chunks/1-Ch0AY58K.js.map +1 -0
  124. package/build/server/chunks/2-B39zPvzn.js +19 -0
  125. package/build/server/chunks/2-B39zPvzn.js.map +1 -0
  126. package/build/server/chunks/3-Bmk9Qof9.js +69 -0
  127. package/build/server/chunks/3-Bmk9Qof9.js.map +1 -0
  128. package/build/server/chunks/4-DnpScx2e.js +57 -0
  129. package/build/server/chunks/4-DnpScx2e.js.map +1 -0
  130. package/build/server/chunks/5-Bw8bTTBj.js +39 -0
  131. package/build/server/chunks/5-Bw8bTTBj.js.map +1 -0
  132. package/build/server/chunks/6-D8zNoyW_.js +197 -0
  133. package/build/server/chunks/6-D8zNoyW_.js.map +1 -0
  134. package/build/server/chunks/7-Cim4qVL3.js +42 -0
  135. package/build/server/chunks/7-Cim4qVL3.js.map +1 -0
  136. package/build/server/chunks/JsonEncoder-jJ2OBaud.js +62 -0
  137. package/build/server/chunks/JsonEncoder-jJ2OBaud.js.map +1 -0
  138. package/build/server/chunks/Panel-DTdYk-gk.js +37 -0
  139. package/build/server/chunks/Panel-DTdYk-gk.js.map +1 -0
  140. package/build/server/chunks/PrettyJson-wIuHvehp.js +290 -0
  141. package/build/server/chunks/PrettyJson-wIuHvehp.js.map +1 -0
  142. package/build/server/chunks/TooltipTable-J278e1CA.js +15 -0
  143. package/build/server/chunks/TooltipTable-J278e1CA.js.map +1 -0
  144. package/build/server/chunks/_layout.svelte-D7RD9tLN.js +108 -0
  145. package/build/server/chunks/_layout.svelte-D7RD9tLN.js.map +1 -0
  146. package/build/server/chunks/_page.svelte-4PYYtPii.js +119 -0
  147. package/build/server/chunks/_page.svelte-4PYYtPii.js.map +1 -0
  148. package/build/server/chunks/_page.svelte-Be5VTn1e.js +82 -0
  149. package/build/server/chunks/_page.svelte-Be5VTn1e.js.map +1 -0
  150. package/build/server/chunks/_page.svelte-DIPUjSjm.js +118 -0
  151. package/build/server/chunks/_page.svelte-DIPUjSjm.js.map +1 -0
  152. package/build/server/chunks/_page.svelte-DZ59Sr3N.js +192 -0
  153. package/build/server/chunks/_page.svelte-DZ59Sr3N.js.map +1 -0
  154. package/build/server/chunks/_page.svelte-sdKGQrEF.js +91 -0
  155. package/build/server/chunks/_page.svelte-sdKGQrEF.js.map +1 -0
  156. package/build/server/chunks/_server.ts-BIRebnb3.js +20 -0
  157. package/build/server/chunks/_server.ts-BIRebnb3.js.map +1 -0
  158. package/build/server/chunks/_server.ts-MnKJDybo.js +19 -0
  159. package/build/server/chunks/_server.ts-MnKJDybo.js.map +1 -0
  160. package/build/server/chunks/_server.ts-Tog8k3Mh.js +52 -0
  161. package/build/server/chunks/_server.ts-Tog8k3Mh.js.map +1 -0
  162. package/build/server/chunks/client-BZtxOgbR.js +7 -0
  163. package/build/server/chunks/client-BZtxOgbR.js.map +1 -0
  164. package/build/server/chunks/client2-LilSGYJA.js +26 -0
  165. package/build/server/chunks/client2-LilSGYJA.js.map +1 -0
  166. package/build/server/chunks/context-BU6gUbSI.js +137 -0
  167. package/build/server/chunks/context-BU6gUbSI.js.map +1 -0
  168. package/build/server/chunks/error.svelte-BfneeC-d.js +16 -0
  169. package/build/server/chunks/error.svelte-BfneeC-d.js.map +1 -0
  170. package/build/server/chunks/exports-DiyTWREe.js +198 -0
  171. package/build/server/chunks/exports-DiyTWREe.js.map +1 -0
  172. package/build/server/chunks/filters-CbFjTNFI.js +25 -0
  173. package/build/server/chunks/filters-CbFjTNFI.js.map +1 -0
  174. package/build/server/chunks/hooks.server-DNhdbQNi.js +7 -0
  175. package/build/server/chunks/hooks.server-DNhdbQNi.js.map +1 -0
  176. package/build/server/chunks/index-Djsj11qr.js +214 -0
  177. package/build/server/chunks/index-Djsj11qr.js.map +1 -0
  178. package/build/server/chunks/index-XFKuhGxM.js +68 -0
  179. package/build/server/chunks/index-XFKuhGxM.js.map +1 -0
  180. package/build/server/chunks/index3-CUhdJ7wv.js +24 -0
  181. package/build/server/chunks/index3-CUhdJ7wv.js.map +1 -0
  182. package/build/server/chunks/mongo-dLmCShL_.js +234 -0
  183. package/build/server/chunks/mongo-dLmCShL_.js.map +1 -0
  184. package/build/server/chunks/notifications.svelte-CrTIrfvL.js +38 -0
  185. package/build/server/chunks/notifications.svelte-CrTIrfvL.js.map +1 -0
  186. package/build/server/chunks/routing-zIlQn_LN.js +899 -0
  187. package/build/server/chunks/routing-zIlQn_LN.js.map +1 -0
  188. package/build/server/chunks/server2-DfQrrcsk.js +23 -0
  189. package/build/server/chunks/server2-DfQrrcsk.js.map +1 -0
  190. package/build/server/chunks/state.svelte-s-CFCWQX.js +9 -0
  191. package/build/server/chunks/state.svelte-s-CFCWQX.js.map +1 -0
  192. package/build/server/index.js +7451 -0
  193. package/build/server/index.js.map +1 -0
  194. package/build/server/manifest.js +107 -0
  195. package/build/server/manifest.js.map +1 -0
  196. package/build/shims.js +32 -0
  197. package/dist/cli.js +118 -47
  198. package/package.json +80 -38
  199. package/dist/app/3rdpartylicenses.txt +0 -403
  200. package/dist/app/index.html +0 -14
  201. package/dist/app/main.655e64f2fe8da11ef927.js +0 -1
  202. package/dist/app/polyfills.9d6088873d2a3c33ec93.js +0 -1
  203. package/dist/app/runtime.26209474bfa8dc87a77c.js +0 -1
  204. package/dist/app/styles.9e36674febaa92f30d0e.css +0 -6
  205. package/dist/lib/Collection.js +0 -82
  206. package/dist/lib/Database.js +0 -55
  207. package/dist/lib/Factory.js +0 -31
  208. package/dist/lib/HostsManager.js +0 -81
  209. package/dist/lib/JsonEncoder.js +0 -59
  210. package/dist/lib/MongoManager.js +0 -119
  211. package/dist/lib/Server.js +0 -45
  212. package/dist/lib/Utils.js +0 -20
  213. package/dist/routes/api.js +0 -201
  214. package/dist/server.js +0 -57
@@ -0,0 +1,197 @@
1
+ import { J as JsonEncoder } from './JsonEncoder-jJ2OBaud.js';
2
+ import { g as getMongo } from './mongo-dLmCShL_.js';
3
+ import { parseScript } from 'esprima';
4
+ import { e as error } from './index-Djsj11qr.js';
5
+ import 'mongodb';
6
+ import 'url';
7
+ import 'node:fs';
8
+ import 'node:os';
9
+ import 'node:path';
10
+
11
+ function buildObject(node) {
12
+ switch (node.type) {
13
+ case "ObjectExpression": {
14
+ const obj = {};
15
+ for (const prop of node.properties) {
16
+ let name;
17
+ if (prop.type === "SpreadElement") {
18
+ throw new Error(`Expected "Property" but received: ${prop.type}`);
19
+ }
20
+ if (prop.key.type === "Identifier") {
21
+ name = prop.key.name;
22
+ } else if (prop.key.type === "Literal") {
23
+ if (prop.key.value instanceof RegExp || typeof prop.key.value === "bigint" || prop.key.value === false || prop.key.value === null || prop.key.value === true || prop.key.value === void 0) {
24
+ throw new Error(`Expected "Identifier" for object key but received: ${prop.key.type}`);
25
+ }
26
+ name = prop.key.value;
27
+ } else {
28
+ throw new Error(`Expected "Identifier" but received: ${prop.key.type}`);
29
+ }
30
+ obj[name] = buildObject(prop.value);
31
+ }
32
+ return obj;
33
+ }
34
+ case "ArrayExpression": {
35
+ const obj = [];
36
+ for (const prop of node.elements) {
37
+ if (prop === null) {
38
+ throw new Error(`Expected "Expression" but received: ${prop}`);
39
+ }
40
+ obj.push(buildObject(prop));
41
+ }
42
+ return obj;
43
+ }
44
+ case "Literal": {
45
+ if (node.value instanceof RegExp) {
46
+ return {
47
+ $type: "RegExp",
48
+ $value: {
49
+ $pattern: node.value.source,
50
+ $flags: node.value.flags
51
+ }
52
+ };
53
+ }
54
+ return node.value;
55
+ }
56
+ case "UnaryExpression": {
57
+ if (node.operator === "-" && node.argument.type === "Literal" && typeof node.argument.value === "number") {
58
+ return -node.argument.value;
59
+ }
60
+ throw new Error(`${node.type} are not authorized`);
61
+ }
62
+ case "NewExpression":
63
+ case "CallExpression": {
64
+ const authorizedCalls = ["ObjectId", "Date", "RegExp"];
65
+ const callee = node.callee.type === "Identifier" ? node.callee.name : null;
66
+ if (callee && authorizedCalls.includes(callee)) {
67
+ if (callee === "RegExp") {
68
+ const [pattern, flags] = node.arguments.map((arg) => buildObject(arg));
69
+ return {
70
+ $type: "RegExp",
71
+ $value: {
72
+ $pattern: pattern,
73
+ $flags: flags
74
+ }
75
+ };
76
+ }
77
+ return {
78
+ $type: callee,
79
+ $value: buildObject(node.arguments[0])
80
+ };
81
+ } else {
82
+ throw new Error(`Unknown ${node.type}: ${callee}`);
83
+ }
84
+ }
85
+ default:
86
+ throw new Error(`Sorry but ${node.type} are not authorized`);
87
+ }
88
+ }
89
+ function parseJSON(text) {
90
+ const tree = parseScript(`var __JSON__ = ${text};`, {
91
+ tolerant: true
92
+ });
93
+ const varDeclaration = tree.body[0];
94
+ if (varDeclaration.type !== "VariableDeclaration") {
95
+ throw new Error("Expected VariableDeclaration but received: " + varDeclaration.type);
96
+ }
97
+ const objExpression = varDeclaration.declarations[0].init;
98
+ if (objExpression?.type !== "ObjectExpression") {
99
+ throw new Error("Expected ObjectExpression but received: " + objExpression?.type);
100
+ }
101
+ return buildObject(objExpression);
102
+ }
103
+ const load = async ({ params, url }) => {
104
+ const query = url.searchParams.get("query") || "{}";
105
+ const sort = url.searchParams.get("sort") || "{}";
106
+ const project = url.searchParams.get("project") || "{}";
107
+ const skip = parseInt(url.searchParams.get("skip") || "0", 10);
108
+ const limit = parseInt(url.searchParams.get("limit") || "20", 10);
109
+ let queryDoc;
110
+ try {
111
+ queryDoc = parseJSON(query);
112
+ } catch (err) {
113
+ return error(400, `Invalid query: ${query} - ${err}`);
114
+ }
115
+ let sortDoc;
116
+ try {
117
+ sortDoc = parseJSON(sort);
118
+ } catch (err) {
119
+ return error(400, `Invalid sort: ${sort} - ${err}`);
120
+ }
121
+ let projectDoc;
122
+ try {
123
+ projectDoc = parseJSON(project);
124
+ } catch (err) {
125
+ return error(400, `Invalid project: ${project} - ${err}`);
126
+ }
127
+ const mongo = await getMongo();
128
+ const collection = mongo.getCollection(params.server, params.database, params.collection);
129
+ if (!collection) {
130
+ return error(404, `Collection not found: ${params.server}.${params.database}.${params.collection}`);
131
+ }
132
+ const resultsPromise = collection.find(JsonEncoder.decode(queryDoc)).project(projectDoc).sort(JsonEncoder.decode(sortDoc)).limit(limit).skip(skip).map((obj) => JsonEncoder.encode(obj)).toArray().then((results) => ({
133
+ data: results,
134
+ error: null
135
+ })).catch((err) => {
136
+ console.error("Error fetching query results:", err);
137
+ return {
138
+ data: [],
139
+ error: `Failed to fetch query results: ${err instanceof Error ? err.message : String(err)}`
140
+ };
141
+ });
142
+ const countPromise = (async () => {
143
+ try {
144
+ if (queryDoc && Object.keys(queryDoc).length > 0) {
145
+ return {
146
+ data: await collection.countDocuments(JsonEncoder.decode(queryDoc), {
147
+ maxTimeMS: mongo.getCountTimeout()
148
+ }),
149
+ error: null
150
+ };
151
+ } else {
152
+ return {
153
+ data: await collection.estimatedDocumentCount(),
154
+ error: null
155
+ };
156
+ }
157
+ } catch (err) {
158
+ console.error("Error counting documents:", err);
159
+ return {
160
+ data: 0,
161
+ error: `Failed to count documents: ${err instanceof Error ? err.message : String(err)}`
162
+ };
163
+ }
164
+ })();
165
+ return {
166
+ server: params.server,
167
+ database: params.database,
168
+ collection: params.collection,
169
+ // Stream these promises to the client
170
+ results: resultsPromise,
171
+ count: countPromise,
172
+ params: {
173
+ query,
174
+ sort,
175
+ project,
176
+ skip,
177
+ limit
178
+ },
179
+ readOnly: process.env.MONGOKU_READ_ONLY_MODE === "true"
180
+ };
181
+ };
182
+
183
+ var _page_server_ts = /*#__PURE__*/Object.freeze({
184
+ __proto__: null,
185
+ load: load
186
+ });
187
+
188
+ const index = 6;
189
+ let component_cache;
190
+ const component = async () => component_cache ??= (await import('./_page.svelte-DZ59Sr3N.js')).default;
191
+ const server_id = "src/routes/servers/[server]/databases/[database]/collections/[collection]/+page.server.ts";
192
+ const imports = ["_app/immutable/nodes/6.KI4mq5ln.js","_app/immutable/chunks/DsnmJJEf.js","_app/immutable/chunks/zeTqHWB5.js","_app/immutable/chunks/DzSHMQR7.js","_app/immutable/chunks/DRy_44ib.js","_app/immutable/chunks/CrJSDly5.js","_app/immutable/chunks/BEuO9qGi.js","_app/immutable/chunks/aB6hH3ax.js","_app/immutable/chunks/CIYBIyvN.js","_app/immutable/chunks/DZSJW-Zm.js","_app/immutable/chunks/Dbyirw23.js","_app/immutable/chunks/nJ6DKbk8.js","_app/immutable/chunks/BuIrCFA_.js","_app/immutable/chunks/C9b4uNov.js","_app/immutable/chunks/CWUhQKKC.js","_app/immutable/chunks/W-qL5_8w.js","_app/immutable/chunks/BN_N9-2s.js"];
193
+ const stylesheets = ["_app/immutable/assets/Panel.BDHMtO-3.css","_app/immutable/assets/PrettyJson.CtngcfyW.css","_app/immutable/assets/6.DawdmtJd.css"];
194
+ const fonts = [];
195
+
196
+ export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets };
197
+ //# sourceMappingURL=6-D8zNoyW_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"6-D8zNoyW_.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/servers/_server_/databases/_database_/collections/_collection_/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/6.js"],"sourcesContent":["import { J as JsonEncoder } from \"../../../../../../../../chunks/JsonEncoder.js\";\nimport { g as getMongo } from \"../../../../../../../../chunks/mongo.js\";\nimport { parseScript } from \"esprima\";\nimport { error } from \"@sveltejs/kit\";\nfunction buildObject(node) {\n switch (node.type) {\n case \"ObjectExpression\": {\n const obj = {};\n for (const prop of node.properties) {\n let name;\n if (prop.type === \"SpreadElement\") {\n throw new Error(`Expected \"Property\" but received: ${prop.type}`);\n }\n if (prop.key.type === \"Identifier\") {\n name = prop.key.name;\n } else if (prop.key.type === \"Literal\") {\n if (prop.key.value instanceof RegExp || typeof prop.key.value === \"bigint\" || prop.key.value === false || prop.key.value === null || prop.key.value === true || prop.key.value === void 0) {\n throw new Error(`Expected \"Identifier\" for object key but received: ${prop.key.type}`);\n }\n name = prop.key.value;\n } else {\n throw new Error(`Expected \"Identifier\" but received: ${prop.key.type}`);\n }\n obj[name] = buildObject(prop.value);\n }\n return obj;\n }\n case \"ArrayExpression\": {\n const obj = [];\n for (const prop of node.elements) {\n if (prop === null) {\n throw new Error(`Expected \"Expression\" but received: ${prop}`);\n }\n obj.push(buildObject(prop));\n }\n return obj;\n }\n case \"Literal\": {\n if (node.value instanceof RegExp) {\n return {\n $type: \"RegExp\",\n $value: {\n $pattern: node.value.source,\n $flags: node.value.flags\n }\n };\n }\n return node.value;\n }\n case \"UnaryExpression\": {\n if (node.operator === \"-\" && node.argument.type === \"Literal\" && typeof node.argument.value === \"number\") {\n return -node.argument.value;\n }\n throw new Error(`${node.type} are not authorized`);\n }\n case \"NewExpression\":\n case \"CallExpression\": {\n const authorizedCalls = [\"ObjectId\", \"Date\", \"RegExp\"];\n const callee = node.callee.type === \"Identifier\" ? node.callee.name : null;\n if (callee && authorizedCalls.includes(callee)) {\n if (callee === \"RegExp\") {\n const [pattern, flags] = node.arguments.map((arg) => buildObject(arg));\n return {\n $type: \"RegExp\",\n $value: {\n $pattern: pattern,\n $flags: flags\n }\n };\n }\n return {\n $type: callee,\n $value: buildObject(node.arguments[0])\n };\n } else {\n throw new Error(`Unknown ${node.type}: ${callee}`);\n }\n }\n default:\n throw new Error(`Sorry but ${node.type} are not authorized`);\n }\n}\nfunction parseJSON(text) {\n const tree = parseScript(`var __JSON__ = ${text};`, {\n tolerant: true\n });\n const varDeclaration = tree.body[0];\n if (varDeclaration.type !== \"VariableDeclaration\") {\n throw new Error(\"Expected VariableDeclaration but received: \" + varDeclaration.type);\n }\n const objExpression = varDeclaration.declarations[0].init;\n if (objExpression?.type !== \"ObjectExpression\") {\n throw new Error(\"Expected ObjectExpression but received: \" + objExpression?.type);\n }\n return buildObject(objExpression);\n}\nconst load = async ({ params, url }) => {\n const query = url.searchParams.get(\"query\") || \"{}\";\n const sort = url.searchParams.get(\"sort\") || \"{}\";\n const project = url.searchParams.get(\"project\") || \"{}\";\n const skip = parseInt(url.searchParams.get(\"skip\") || \"0\", 10);\n const limit = parseInt(url.searchParams.get(\"limit\") || \"20\", 10);\n let queryDoc;\n try {\n queryDoc = parseJSON(query);\n } catch (err) {\n return error(400, `Invalid query: ${query} - ${err}`);\n }\n let sortDoc;\n try {\n sortDoc = parseJSON(sort);\n } catch (err) {\n return error(400, `Invalid sort: ${sort} - ${err}`);\n }\n let projectDoc;\n try {\n projectDoc = parseJSON(project);\n } catch (err) {\n return error(400, `Invalid project: ${project} - ${err}`);\n }\n const mongo = await getMongo();\n const collection = mongo.getCollection(params.server, params.database, params.collection);\n if (!collection) {\n return error(404, `Collection not found: ${params.server}.${params.database}.${params.collection}`);\n }\n const resultsPromise = collection.find(JsonEncoder.decode(queryDoc)).project(projectDoc).sort(JsonEncoder.decode(sortDoc)).limit(limit).skip(skip).map((obj) => JsonEncoder.encode(obj)).toArray().then((results) => ({\n data: results,\n error: null\n })).catch((err) => {\n console.error(\"Error fetching query results:\", err);\n return {\n data: [],\n error: `Failed to fetch query results: ${err instanceof Error ? err.message : String(err)}`\n };\n });\n const countPromise = (async () => {\n try {\n if (queryDoc && Object.keys(queryDoc).length > 0) {\n return {\n data: await collection.countDocuments(JsonEncoder.decode(queryDoc), {\n maxTimeMS: mongo.getCountTimeout()\n }),\n error: null\n };\n } else {\n return {\n data: await collection.estimatedDocumentCount(),\n error: null\n };\n }\n } catch (err) {\n console.error(\"Error counting documents:\", err);\n return {\n data: 0,\n error: `Failed to count documents: ${err instanceof Error ? err.message : String(err)}`\n };\n }\n })();\n return {\n server: params.server,\n database: params.database,\n collection: params.collection,\n // Stream these promises to the client\n results: resultsPromise,\n count: countPromise,\n params: {\n query,\n sort,\n project,\n skip,\n limit\n },\n readOnly: process.env.MONGOKU_READ_ONLY_MODE === \"true\"\n };\n};\nexport {\n load\n};\n","import * as server from '../entries/pages/servers/_server_/databases/_database_/collections/_collection_/_page.server.ts.js';\n\nexport const index = 6;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/servers/_server_/databases/_database_/collections/_collection_/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/servers/[server]/databases/[database]/collections/[collection]/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/6.KI4mq5ln.js\",\"_app/immutable/chunks/DsnmJJEf.js\",\"_app/immutable/chunks/zeTqHWB5.js\",\"_app/immutable/chunks/DzSHMQR7.js\",\"_app/immutable/chunks/DRy_44ib.js\",\"_app/immutable/chunks/CrJSDly5.js\",\"_app/immutable/chunks/BEuO9qGi.js\",\"_app/immutable/chunks/aB6hH3ax.js\",\"_app/immutable/chunks/CIYBIyvN.js\",\"_app/immutable/chunks/DZSJW-Zm.js\",\"_app/immutable/chunks/Dbyirw23.js\",\"_app/immutable/chunks/nJ6DKbk8.js\",\"_app/immutable/chunks/BuIrCFA_.js\",\"_app/immutable/chunks/C9b4uNov.js\",\"_app/immutable/chunks/CWUhQKKC.js\",\"_app/immutable/chunks/W-qL5_8w.js\",\"_app/immutable/chunks/BN_N9-2s.js\"];\nexport const stylesheets = [\"_app/immutable/assets/Panel.BDHMtO-3.css\",\"_app/immutable/assets/PrettyJson.CtngcfyW.css\",\"_app/immutable/assets/6.DawdmtJd.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { J as JsonEncoder } from './JsonEncoder-jJ2OBaud.js';
2
+ import { g as getMongo } from './mongo-dLmCShL_.js';
3
+ import { ObjectId } from 'mongodb';
4
+ import 'url';
5
+ import 'node:fs';
6
+ import 'node:os';
7
+ import 'node:path';
8
+
9
+ const load = async ({ params }) => {
10
+ const mongo = await getMongo();
11
+ const collection = mongo.getCollection(params.server, params.database, params.collection);
12
+ let document = null;
13
+ if (collection) {
14
+ const obj = await collection.findOne({
15
+ _id: new ObjectId(params.document)
16
+ });
17
+ document = JsonEncoder.encode(obj);
18
+ }
19
+ return {
20
+ server: params.server,
21
+ database: params.database,
22
+ collection: params.collection,
23
+ documentId: params.document,
24
+ document
25
+ };
26
+ };
27
+
28
+ var _page_server_ts = /*#__PURE__*/Object.freeze({
29
+ __proto__: null,
30
+ load: load
31
+ });
32
+
33
+ const index = 7;
34
+ let component_cache;
35
+ const component = async () => component_cache ??= (await import('./_page.svelte-sdKGQrEF.js')).default;
36
+ const server_id = "src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/[document]/+page.server.ts";
37
+ const imports = ["_app/immutable/nodes/7.Brjrw0K8.js","_app/immutable/chunks/DsnmJJEf.js","_app/immutable/chunks/zeTqHWB5.js","_app/immutable/chunks/DRy_44ib.js","_app/immutable/chunks/aB6hH3ax.js","_app/immutable/chunks/CIYBIyvN.js","_app/immutable/chunks/BEuO9qGi.js","_app/immutable/chunks/CrJSDly5.js","_app/immutable/chunks/Dbyirw23.js","_app/immutable/chunks/nJ6DKbk8.js","_app/immutable/chunks/BuIrCFA_.js","_app/immutable/chunks/C9b4uNov.js","_app/immutable/chunks/CWUhQKKC.js","_app/immutable/chunks/DZSJW-Zm.js"];
38
+ const stylesheets = ["_app/immutable/assets/Panel.BDHMtO-3.css","_app/immutable/assets/PrettyJson.CtngcfyW.css"];
39
+ const fonts = [];
40
+
41
+ export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets };
42
+ //# sourceMappingURL=7-Cim4qVL3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"7-Cim4qVL3.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/servers/_server_/databases/_database_/collections/_collection_/documents/_document_/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/7.js"],"sourcesContent":["import { J as JsonEncoder } from \"../../../../../../../../../../chunks/JsonEncoder.js\";\nimport { g as getMongo } from \"../../../../../../../../../../chunks/mongo.js\";\nimport { ObjectId } from \"mongodb\";\nconst load = async ({ params }) => {\n const mongo = await getMongo();\n const collection = mongo.getCollection(params.server, params.database, params.collection);\n let document = null;\n if (collection) {\n const obj = await collection.findOne({\n _id: new ObjectId(params.document)\n });\n document = JsonEncoder.encode(obj);\n }\n return {\n server: params.server,\n database: params.database,\n collection: params.collection,\n documentId: params.document,\n document\n };\n};\nexport {\n load\n};\n","import * as server from '../entries/pages/servers/_server_/databases/_database_/collections/_collection_/documents/_document_/_page.server.ts.js';\n\nexport const index = 7;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/servers/_server_/databases/_database_/collections/_collection_/documents/_document_/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/[document]/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/7.Brjrw0K8.js\",\"_app/immutable/chunks/DsnmJJEf.js\",\"_app/immutable/chunks/zeTqHWB5.js\",\"_app/immutable/chunks/DRy_44ib.js\",\"_app/immutable/chunks/aB6hH3ax.js\",\"_app/immutable/chunks/CIYBIyvN.js\",\"_app/immutable/chunks/BEuO9qGi.js\",\"_app/immutable/chunks/CrJSDly5.js\",\"_app/immutable/chunks/Dbyirw23.js\",\"_app/immutable/chunks/nJ6DKbk8.js\",\"_app/immutable/chunks/BuIrCFA_.js\",\"_app/immutable/chunks/C9b4uNov.js\",\"_app/immutable/chunks/CWUhQKKC.js\",\"_app/immutable/chunks/DZSJW-Zm.js\"];\nexport const stylesheets = [\"_app/immutable/assets/Panel.BDHMtO-3.css\",\"_app/immutable/assets/PrettyJson.CtngcfyW.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":";;;;;;;;AAGA,MAAM,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK;AACnC,EAAE,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE;AAChC,EAAE,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC;AAC3F,EAAE,IAAI,QAAQ,GAAG,IAAI;AACrB,EAAE,IAAI,UAAU,EAAE;AAClB,IAAI,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;AACzC,MAAM,GAAG,EAAE,IAAI,QAAQ,CAAC,MAAM,CAAC,QAAQ;AACvC,KAAK,CAAC;AACN,IAAI,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC;AACtC,EAAE;AACF,EAAE,OAAO;AACT,IAAI,MAAM,EAAE,MAAM,CAAC,MAAM;AACzB,IAAI,QAAQ,EAAE,MAAM,CAAC,QAAQ;AAC7B,IAAI,UAAU,EAAE,MAAM,CAAC,UAAU;AACjC,IAAI,UAAU,EAAE,MAAM,CAAC,QAAQ;AAC/B,IAAI;AACJ,GAAG;AACH,CAAC;;;;;;;AClBW,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAsH,CAAC,EAAE;AAEpL,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACpgB,MAAC,WAAW,GAAG,CAAC,0CAA0C,CAAC,+CAA+C;AAC1G,MAAC,KAAK,GAAG;;;;"}
@@ -0,0 +1,62 @@
1
+ import { ObjectId } from 'mongodb';
2
+
3
+ class JsonEncoder {
4
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
5
+ static encode(obj) {
6
+ if (obj instanceof ObjectId) {
7
+ return {
8
+ $type: "ObjectId",
9
+ $value: obj.toHexString(),
10
+ $date: obj.getTimestamp().getTime()
11
+ };
12
+ }
13
+ if (obj instanceof Date) {
14
+ return {
15
+ $type: "Date",
16
+ $value: obj.toISOString()
17
+ };
18
+ }
19
+ if (obj instanceof RegExp) {
20
+ return {
21
+ $type: "RegExp",
22
+ $value: {
23
+ $pattern: obj.source,
24
+ $flags: obj.flags
25
+ }
26
+ };
27
+ }
28
+ if (Array.isArray(obj)) {
29
+ return [...obj.map(JsonEncoder.encode)];
30
+ }
31
+ if (obj && typeof obj === "object") {
32
+ for (const [key, value] of Object.entries(obj)) {
33
+ obj[key] = JsonEncoder.encode(value);
34
+ }
35
+ }
36
+ return obj;
37
+ }
38
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
39
+ static decode(obj) {
40
+ if (obj && obj.$type === "ObjectId") {
41
+ return ObjectId.createFromHexString(obj.$value);
42
+ }
43
+ if (obj && obj.$type === "Date") {
44
+ return new Date(obj.$value);
45
+ }
46
+ if (obj && obj.$type === "RegExp") {
47
+ return new RegExp(obj.$value.$pattern, obj.$value.$flags);
48
+ }
49
+ if (Array.isArray(obj)) {
50
+ return [...obj.map(JsonEncoder.decode)];
51
+ }
52
+ if (obj && typeof obj === "object") {
53
+ for (const [key, value] of Object.entries(obj)) {
54
+ obj[key] = JsonEncoder.decode(value);
55
+ }
56
+ }
57
+ return obj;
58
+ }
59
+ }
60
+
61
+ export { JsonEncoder as J };
62
+ //# sourceMappingURL=JsonEncoder-jJ2OBaud.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonEncoder-jJ2OBaud.js","sources":["../../../.svelte-kit/adapter-node/chunks/JsonEncoder.js"],"sourcesContent":["import { ObjectId } from \"mongodb\";\nclass JsonEncoder {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n static encode(obj) {\n if (obj instanceof ObjectId) {\n return {\n $type: \"ObjectId\",\n $value: obj.toHexString(),\n $date: obj.getTimestamp().getTime()\n };\n }\n if (obj instanceof Date) {\n return {\n $type: \"Date\",\n $value: obj.toISOString()\n };\n }\n if (obj instanceof RegExp) {\n return {\n $type: \"RegExp\",\n $value: {\n $pattern: obj.source,\n $flags: obj.flags\n }\n };\n }\n if (Array.isArray(obj)) {\n return [...obj.map(JsonEncoder.encode)];\n }\n if (obj && typeof obj === \"object\") {\n for (const [key, value] of Object.entries(obj)) {\n obj[key] = JsonEncoder.encode(value);\n }\n }\n return obj;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n static decode(obj) {\n if (obj && obj.$type === \"ObjectId\") {\n return ObjectId.createFromHexString(obj.$value);\n }\n if (obj && obj.$type === \"Date\") {\n return new Date(obj.$value);\n }\n if (obj && obj.$type === \"RegExp\") {\n return new RegExp(obj.$value.$pattern, obj.$value.$flags);\n }\n if (Array.isArray(obj)) {\n return [...obj.map(JsonEncoder.decode)];\n }\n if (obj && typeof obj === \"object\") {\n for (const [key, value] of Object.entries(obj)) {\n obj[key] = JsonEncoder.decode(value);\n }\n }\n return obj;\n }\n}\nexport {\n JsonEncoder as J\n};\n"],"names":[],"mappings":";;AACA,MAAM,WAAW,CAAC;AAClB;AACA,EAAE,OAAO,MAAM,CAAC,GAAG,EAAE;AACrB,IAAI,IAAI,GAAG,YAAY,QAAQ,EAAE;AACjC,MAAM,OAAO;AACb,QAAQ,KAAK,EAAE,UAAU;AACzB,QAAQ,MAAM,EAAE,GAAG,CAAC,WAAW,EAAE;AACjC,QAAQ,KAAK,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC,OAAO;AACzC,OAAO;AACP,IAAI;AACJ,IAAI,IAAI,GAAG,YAAY,IAAI,EAAE;AAC7B,MAAM,OAAO;AACb,QAAQ,KAAK,EAAE,MAAM;AACrB,QAAQ,MAAM,EAAE,GAAG,CAAC,WAAW;AAC/B,OAAO;AACP,IAAI;AACJ,IAAI,IAAI,GAAG,YAAY,MAAM,EAAE;AAC/B,MAAM,OAAO;AACb,QAAQ,KAAK,EAAE,QAAQ;AACvB,QAAQ,MAAM,EAAE;AAChB,UAAU,QAAQ,EAAE,GAAG,CAAC,MAAM;AAC9B,UAAU,MAAM,EAAE,GAAG,CAAC;AACtB;AACA,OAAO;AACP,IAAI;AACJ,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AAC5B,MAAM,OAAO,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AAC7C,IAAI;AACJ,IAAI,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACxC,MAAM,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACtD,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;AAC5C,MAAM;AACN,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,EAAE;AACF;AACA,EAAE,OAAO,MAAM,CAAC,GAAG,EAAE;AACrB,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,UAAU,EAAE;AACzC,MAAM,OAAO,QAAQ,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC;AACrD,IAAI;AACJ,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,MAAM,EAAE;AACrC,MAAM,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;AACjC,IAAI;AACJ,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE;AACvC,MAAM,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;AAC/D,IAAI;AACJ,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AAC5B,MAAM,OAAO,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AAC7C,IAAI;AACJ,IAAI,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACxC,MAAM,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACtD,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;AAC5C,MAAM;AACN,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,EAAE;AACF;;;;"}
@@ -0,0 +1,37 @@
1
+ import { P as attr_class, Q as stringify } from './routing-zIlQn_LN.js';
2
+ import { j as escape_html } from './context-BU6gUbSI.js';
3
+
4
+ function Panel($$renderer, $$props) {
5
+ let { children, title, actions, class: className } = $$props;
6
+ $$renderer.push(`<div${attr_class(`panel rounded-md ${stringify(className)}`, "svelte-hxsa5u")}>`);
7
+ if (title) {
8
+ $$renderer.push("<!--[-->");
9
+ $$renderer.push(`<div class="px-4 py-2 flex justify-between items-center text-lg uppercase font-medium">`);
10
+ if (typeof title === "string") {
11
+ $$renderer.push("<!--[-->");
12
+ $$renderer.push(`<span>${escape_html(title)}</span>`);
13
+ } else {
14
+ $$renderer.push("<!--[!-->");
15
+ title($$renderer);
16
+ $$renderer.push(`<!---->`);
17
+ }
18
+ $$renderer.push(`<!--]--> `);
19
+ if (actions) {
20
+ $$renderer.push("<!--[-->");
21
+ $$renderer.push(`<div class="flex gap-2 items-center">`);
22
+ actions($$renderer);
23
+ $$renderer.push(`<!----></div>`);
24
+ } else {
25
+ $$renderer.push("<!--[!-->");
26
+ }
27
+ $$renderer.push(`<!--]--></div>`);
28
+ } else {
29
+ $$renderer.push("<!--[!-->");
30
+ }
31
+ $$renderer.push(`<!--]--> `);
32
+ children?.($$renderer);
33
+ $$renderer.push(`<!----></div>`);
34
+ }
35
+
36
+ export { Panel as P };
37
+ //# sourceMappingURL=Panel-DTdYk-gk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Panel-DTdYk-gk.js","sources":["../../../.svelte-kit/adapter-node/chunks/Panel.js"],"sourcesContent":["import { z as attr_class, F as stringify } from \"./index2.js\";\nimport { e as escape_html } from \"./context.js\";\nfunction Panel($$renderer, $$props) {\n let { children, title, actions, class: className } = $$props;\n $$renderer.push(`<div${attr_class(`panel rounded-md ${stringify(className)}`, \"svelte-hxsa5u\")}>`);\n if (title) {\n $$renderer.push(\"<!--[-->\");\n $$renderer.push(`<div class=\"px-4 py-2 flex justify-between items-center text-lg uppercase font-medium\">`);\n if (typeof title === \"string\") {\n $$renderer.push(\"<!--[-->\");\n $$renderer.push(`<span>${escape_html(title)}</span>`);\n } else {\n $$renderer.push(\"<!--[!-->\");\n title($$renderer);\n $$renderer.push(`<!---->`);\n }\n $$renderer.push(`<!--]--> `);\n if (actions) {\n $$renderer.push(\"<!--[-->\");\n $$renderer.push(`<div class=\"flex gap-2 items-center\">`);\n actions($$renderer);\n $$renderer.push(`<!----></div>`);\n } else {\n $$renderer.push(\"<!--[!-->\");\n }\n $$renderer.push(`<!--]--></div>`);\n } else {\n $$renderer.push(\"<!--[!-->\");\n }\n $$renderer.push(`<!--]--> `);\n children?.($$renderer);\n $$renderer.push(`<!----></div>`);\n}\nexport {\n Panel as P\n};\n"],"names":[],"mappings":";;;AAEA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO;AAC9D,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,iBAAiB,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AACpG,EAAE,IAAI,KAAK,EAAE;AACb,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;AAC/B,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,uFAAuF,CAAC,CAAC;AAC9G,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,MAAM,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;AACjC,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;AAC3D,IAAI,CAAC,MAAM;AACX,MAAM,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;AAClC,MAAM,KAAK,CAAC,UAAU,CAAC;AACvB,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;AAChC,IAAI;AACJ,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AAChC,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;AACjC,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC,qCAAqC,CAAC,CAAC;AAC9D,MAAM,OAAO,CAAC,UAAU,CAAC;AACzB,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC;AACtC,IAAI,CAAC,MAAM;AACX,MAAM,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;AAClC,IAAI;AACJ,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC;AACrC,EAAE,CAAC,MAAM;AACT,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;AAChC,EAAE;AACF,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AAC9B,EAAE,QAAQ,GAAG,UAAU,CAAC;AACxB,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC;AAClC;;;;"}