@wvkit/skevdb 0.0.1

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 (152) hide show
  1. package/README.md +68 -0
  2. package/bin/aldb.js +58 -0
  3. package/build/client/_app/immutable/assets/0.4921WYCN.css +2 -0
  4. package/build/client/_app/immutable/assets/0.4921WYCN.css.br +0 -0
  5. package/build/client/_app/immutable/assets/0.4921WYCN.css.gz +0 -0
  6. package/build/client/_app/immutable/assets/codicon.ngg6Pgfi.ttf +0 -0
  7. package/build/client/_app/immutable/assets/editor.DV6jjE6F.css +1 -0
  8. package/build/client/_app/immutable/assets/editor.DV6jjE6F.css.br +0 -0
  9. package/build/client/_app/immutable/assets/editor.DV6jjE6F.css.gz +0 -0
  10. package/build/client/_app/immutable/assets/geist-cyrillic-ext-wght-normal.DjL33-gN.woff2 +0 -0
  11. package/build/client/_app/immutable/assets/geist-cyrillic-wght-normal.BEAKL7Jp.woff2 +0 -0
  12. package/build/client/_app/immutable/assets/geist-latin-ext-wght-normal.DC-KSUi6.woff2 +0 -0
  13. package/build/client/_app/immutable/assets/geist-latin-wght-normal.BgDaEnEv.woff2 +0 -0
  14. package/build/client/_app/immutable/assets/geist-vietnamese-wght-normal.6IgcOCM7.woff2 +0 -0
  15. package/build/client/_app/immutable/assets/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2 +0 -0
  16. package/build/client/_app/immutable/assets/inter-cyrillic-wght-normal.DqGufNeO.woff2 +0 -0
  17. package/build/client/_app/immutable/assets/inter-greek-ext-wght-normal.DlzME5K_.woff2 +0 -0
  18. package/build/client/_app/immutable/assets/inter-greek-wght-normal.CkhJZR-_.woff2 +0 -0
  19. package/build/client/_app/immutable/assets/inter-latin-ext-wght-normal.DO1Apj_S.woff2 +0 -0
  20. package/build/client/_app/immutable/assets/inter-latin-wght-normal.Dx4kXJAl.woff2 +0 -0
  21. package/build/client/_app/immutable/assets/inter-vietnamese-wght-normal.CBcvBZtf.woff2 +0 -0
  22. package/build/client/_app/immutable/assets/noto-sans-cyrillic-ext-wght-normal.DSNfmdVt.woff2 +0 -0
  23. package/build/client/_app/immutable/assets/noto-sans-cyrillic-wght-normal.B2hlT84T.woff2 +0 -0
  24. package/build/client/_app/immutable/assets/noto-sans-devanagari-wght-normal.Cv-Vwajv.woff2 +0 -0
  25. package/build/client/_app/immutable/assets/noto-sans-greek-ext-wght-normal.12T8GTDR.woff2 +0 -0
  26. package/build/client/_app/immutable/assets/noto-sans-greek-wght-normal.Ymb6dZNd.woff2 +0 -0
  27. package/build/client/_app/immutable/assets/noto-sans-latin-ext-wght-normal.W1qJv59z.woff2 +0 -0
  28. package/build/client/_app/immutable/assets/noto-sans-latin-wght-normal.BYSzYMf3.woff2 +0 -0
  29. package/build/client/_app/immutable/assets/noto-sans-vietnamese-wght-normal.DLTJy58D.woff2 +0 -0
  30. package/build/client/_app/immutable/assets/sql.FmGBn3YN.css +1 -0
  31. package/build/client/_app/immutable/assets/sql.FmGBn3YN.css.br +0 -0
  32. package/build/client/_app/immutable/assets/sql.FmGBn3YN.css.gz +0 -0
  33. package/build/client/_app/immutable/chunks/-u0aF6D6.js +1 -0
  34. package/build/client/_app/immutable/chunks/-u0aF6D6.js.br +2 -0
  35. package/build/client/_app/immutable/chunks/-u0aF6D6.js.gz +0 -0
  36. package/build/client/_app/immutable/chunks/BZYon8uW.js +1 -0
  37. package/build/client/_app/immutable/chunks/BZYon8uW.js.br +0 -0
  38. package/build/client/_app/immutable/chunks/BZYon8uW.js.gz +0 -0
  39. package/build/client/_app/immutable/chunks/CT_ExraQ.js +820 -0
  40. package/build/client/_app/immutable/chunks/CT_ExraQ.js.br +0 -0
  41. package/build/client/_app/immutable/chunks/CT_ExraQ.js.gz +0 -0
  42. package/build/client/_app/immutable/chunks/CUXBnqxM.js +53 -0
  43. package/build/client/_app/immutable/chunks/CUXBnqxM.js.br +0 -0
  44. package/build/client/_app/immutable/chunks/CUXBnqxM.js.gz +0 -0
  45. package/build/client/_app/immutable/chunks/CqQuHtWb.js +1 -0
  46. package/build/client/_app/immutable/chunks/CqQuHtWb.js.br +0 -0
  47. package/build/client/_app/immutable/chunks/CqQuHtWb.js.gz +0 -0
  48. package/build/client/_app/immutable/chunks/DDJ7Hsqn.js +1 -0
  49. package/build/client/_app/immutable/chunks/DDJ7Hsqn.js.br +0 -0
  50. package/build/client/_app/immutable/chunks/DDJ7Hsqn.js.gz +0 -0
  51. package/build/client/_app/immutable/chunks/D_beq-47.js +3 -0
  52. package/build/client/_app/immutable/chunks/D_beq-47.js.br +0 -0
  53. package/build/client/_app/immutable/chunks/D_beq-47.js.gz +0 -0
  54. package/build/client/_app/immutable/chunks/NEE52Syq.js +1 -0
  55. package/build/client/_app/immutable/chunks/NEE52Syq.js.br +0 -0
  56. package/build/client/_app/immutable/chunks/NEE52Syq.js.gz +0 -0
  57. package/build/client/_app/immutable/chunks/h8jGUf5s.js +1 -0
  58. package/build/client/_app/immutable/chunks/h8jGUf5s.js.br +0 -0
  59. package/build/client/_app/immutable/chunks/h8jGUf5s.js.gz +0 -0
  60. package/build/client/_app/immutable/chunks/kNaey6uv.js +1 -0
  61. package/build/client/_app/immutable/chunks/kNaey6uv.js.br +0 -0
  62. package/build/client/_app/immutable/chunks/kNaey6uv.js.gz +0 -0
  63. package/build/client/_app/immutable/chunks/xihTtKlq.js +1 -0
  64. package/build/client/_app/immutable/chunks/xihTtKlq.js.br +1 -0
  65. package/build/client/_app/immutable/chunks/xihTtKlq.js.gz +0 -0
  66. package/build/client/_app/immutable/entry/app.DmcKZPoo.js +2 -0
  67. package/build/client/_app/immutable/entry/app.DmcKZPoo.js.br +0 -0
  68. package/build/client/_app/immutable/entry/app.DmcKZPoo.js.gz +0 -0
  69. package/build/client/_app/immutable/entry/start.AWD7U8zX.js +1 -0
  70. package/build/client/_app/immutable/entry/start.AWD7U8zX.js.br +1 -0
  71. package/build/client/_app/immutable/entry/start.AWD7U8zX.js.gz +0 -0
  72. package/build/client/_app/immutable/nodes/0.D42BAFic.js +46 -0
  73. package/build/client/_app/immutable/nodes/0.D42BAFic.js.br +0 -0
  74. package/build/client/_app/immutable/nodes/0.D42BAFic.js.gz +0 -0
  75. package/build/client/_app/immutable/nodes/1.EnR_repC.js +1 -0
  76. package/build/client/_app/immutable/nodes/1.EnR_repC.js.br +0 -0
  77. package/build/client/_app/immutable/nodes/1.EnR_repC.js.gz +0 -0
  78. package/build/client/_app/immutable/nodes/2.Daii4oR8.js +1 -0
  79. package/build/client/_app/immutable/nodes/2.Daii4oR8.js.br +0 -0
  80. package/build/client/_app/immutable/nodes/2.Daii4oR8.js.gz +0 -0
  81. package/build/client/_app/immutable/workers/editor.worker-Cn2oRESe.js +26 -0
  82. package/build/client/_app/immutable/workers/editor.worker-Cn2oRESe.js.br +0 -0
  83. package/build/client/_app/immutable/workers/editor.worker-Cn2oRESe.js.gz +0 -0
  84. package/build/client/_app/version.json +1 -0
  85. package/build/client/_app/version.json.br +0 -0
  86. package/build/client/_app/version.json.gz +0 -0
  87. package/build/client/robots.txt +3 -0
  88. package/build/client/robots.txt.br +0 -0
  89. package/build/client/robots.txt.gz +0 -0
  90. package/build/env.js +94 -0
  91. package/build/handler.js +1494 -0
  92. package/build/index.js +345 -0
  93. package/build/server/chunks/0-2tF2h-sW.js +13 -0
  94. package/build/server/chunks/0-2tF2h-sW.js.map +1 -0
  95. package/build/server/chunks/1-uqT1he7Y.js +9 -0
  96. package/build/server/chunks/1-uqT1he7Y.js.map +1 -0
  97. package/build/server/chunks/2-WinpGkOi.js +9 -0
  98. package/build/server/chunks/2-WinpGkOi.js.map +1 -0
  99. package/build/server/chunks/_layout.svelte-BO0NOSiE.js +43521 -0
  100. package/build/server/chunks/_layout.svelte-BO0NOSiE.js.map +1 -0
  101. package/build/server/chunks/_page.svelte-BP2EdQl3.js +5 -0
  102. package/build/server/chunks/_page.svelte-BP2EdQl3.js.map +1 -0
  103. package/build/server/chunks/_server.ts-6mqhv5WM.js +30 -0
  104. package/build/server/chunks/_server.ts-6mqhv5WM.js.map +1 -0
  105. package/build/server/chunks/_server.ts-B7evxvHU.js +61 -0
  106. package/build/server/chunks/_server.ts-B7evxvHU.js.map +1 -0
  107. package/build/server/chunks/_server.ts-BN5QAzfI.js +89 -0
  108. package/build/server/chunks/_server.ts-BN5QAzfI.js.map +1 -0
  109. package/build/server/chunks/_server.ts-BWe0PPhA.js +26 -0
  110. package/build/server/chunks/_server.ts-BWe0PPhA.js.map +1 -0
  111. package/build/server/chunks/_server.ts-BgrwjIyE.js +84 -0
  112. package/build/server/chunks/_server.ts-BgrwjIyE.js.map +1 -0
  113. package/build/server/chunks/_server.ts-CFzBDuF1.js +52 -0
  114. package/build/server/chunks/_server.ts-CFzBDuF1.js.map +1 -0
  115. package/build/server/chunks/_server.ts-CHBba1cE.js +55 -0
  116. package/build/server/chunks/_server.ts-CHBba1cE.js.map +1 -0
  117. package/build/server/chunks/_server.ts-ChxeqJr9.js +23 -0
  118. package/build/server/chunks/_server.ts-ChxeqJr9.js.map +1 -0
  119. package/build/server/chunks/_server.ts-Cq27_8sR.js +40 -0
  120. package/build/server/chunks/_server.ts-Cq27_8sR.js.map +1 -0
  121. package/build/server/chunks/_server.ts-DGK-tW9e.js +26 -0
  122. package/build/server/chunks/_server.ts-DGK-tW9e.js.map +1 -0
  123. package/build/server/chunks/_server.ts-DNbiBQKI.js +107 -0
  124. package/build/server/chunks/_server.ts-DNbiBQKI.js.map +1 -0
  125. package/build/server/chunks/_server.ts-LPl3rTE2.js +42 -0
  126. package/build/server/chunks/_server.ts-LPl3rTE2.js.map +1 -0
  127. package/build/server/chunks/_server.ts-WS7E0dC9.js +20 -0
  128. package/build/server/chunks/_server.ts-WS7E0dC9.js.map +1 -0
  129. package/build/server/chunks/_server.ts-o5h153l6.js +22 -0
  130. package/build/server/chunks/_server.ts-o5h153l6.js.map +1 -0
  131. package/build/server/chunks/error.svelte-WWFmDYfs.js +77 -0
  132. package/build/server/chunks/error.svelte-WWFmDYfs.js.map +1 -0
  133. package/build/server/chunks/index-DBqjc0Yf.js +77 -0
  134. package/build/server/chunks/index-DBqjc0Yf.js.map +1 -0
  135. package/build/server/chunks/index-Dq7YP_jO.js +134 -0
  136. package/build/server/chunks/index-Dq7YP_jO.js.map +1 -0
  137. package/build/server/chunks/internal2-R0fapQ2T.js +1164 -0
  138. package/build/server/chunks/internal2-R0fapQ2T.js.map +1 -0
  139. package/build/server/chunks/legacy-client-DEBQKXfT.js +5174 -0
  140. package/build/server/chunks/legacy-client-DEBQKXfT.js.map +1 -0
  141. package/build/server/chunks/mysql-DX3ct8Wa.js +74 -0
  142. package/build/server/chunks/mysql-DX3ct8Wa.js.map +1 -0
  143. package/build/server/chunks/plantuml-BT_hcRqZ.js +32 -0
  144. package/build/server/chunks/plantuml-BT_hcRqZ.js.map +1 -0
  145. package/build/server/chunks/shared-server-DkccXZBX.js +22 -0
  146. package/build/server/chunks/shared-server-DkccXZBX.js.map +1 -0
  147. package/build/server/index.js +4421 -0
  148. package/build/server/index.js.map +1 -0
  149. package/build/server/manifest.js +144 -0
  150. package/build/server/manifest.js.map +1 -0
  151. package/build/shims.js +32 -0
  152. package/package.json +61 -0
@@ -0,0 +1,5 @@
1
+ //#region src/routes/+page.svelte
2
+ function _page($$renderer) {}
3
+
4
+ export { _page as default };
5
+ //# sourceMappingURL=_page.svelte-BP2EdQl3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_page.svelte-BP2EdQl3.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/_page.svelte.js"],"sourcesContent":["import \"../../chunks/dev.js\";\n//#region src/routes/+page.svelte\nfunction _page($$renderer) {}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":"AACA;AACA,SAAS,KAAK,CAAC,UAAU,EAAE,CAAC;;;;"}
@@ -0,0 +1,30 @@
1
+ import { n as normalizeConfig, w as withConnection } from './mysql-DX3ct8Wa.js';
2
+ import { j as json } from './index-Dq7YP_jO.js';
3
+ import 'mysql2/promise';
4
+ import './index-DBqjc0Yf.js';
5
+
6
+ //#region src/routes/api/mysql/triggers/+server.ts
7
+ var POST = async ({ request }) => {
8
+ try {
9
+ const body = await request.json();
10
+ const config = normalizeConfig(body.config);
11
+ const database = String(body.database ?? "").trim();
12
+ if (!database) throw new Error("Selecciona una base de datos");
13
+ return json({ triggers: await withConnection(config, null, async (connection) => {
14
+ const [rows] = await connection.execute(`SELECT TRIGGER_NAME, EVENT_MANIPULATION, EVENT_OBJECT_TABLE
15
+ FROM information_schema.TRIGGERS
16
+ WHERE TRIGGER_SCHEMA = ?
17
+ ORDER BY EVENT_OBJECT_TABLE, TRIGGER_NAME`, [database]);
18
+ return rows.map((row) => ({
19
+ name: row.TRIGGER_NAME,
20
+ event: row.EVENT_MANIPULATION,
21
+ table: row.EVENT_OBJECT_TABLE
22
+ }));
23
+ }) });
24
+ } catch (error) {
25
+ return json({ message: error instanceof Error ? error.message : "No se pudieron cargar los triggers" }, { status: 400 });
26
+ }
27
+ };
28
+
29
+ export { POST };
30
+ //# sourceMappingURL=_server.ts-6mqhv5WM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-6mqhv5WM.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/mysql/triggers/_server.ts.js"],"sourcesContent":["import { o as withConnection, r as normalizeConfig } from \"../../../../../chunks/mysql.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/mysql/triggers/+server.ts\nvar POST = async ({ request }) => {\n\ttry {\n\t\tconst body = await request.json();\n\t\tconst config = normalizeConfig(body.config);\n\t\tconst database = String(body.database ?? \"\").trim();\n\t\tif (!database) throw new Error(\"Selecciona una base de datos\");\n\t\treturn json({ triggers: await withConnection(config, null, async (connection) => {\n\t\t\tconst [rows] = await connection.execute(`SELECT TRIGGER_NAME, EVENT_MANIPULATION, EVENT_OBJECT_TABLE\n\t\t\t\t FROM information_schema.TRIGGERS\n\t\t\t\t WHERE TRIGGER_SCHEMA = ?\n\t\t\t\t ORDER BY EVENT_OBJECT_TABLE, TRIGGER_NAME`, [database]);\n\t\t\treturn rows.map((row) => ({\n\t\t\t\tname: row.TRIGGER_NAME,\n\t\t\t\tevent: row.EVENT_MANIPULATION,\n\t\t\t\ttable: row.EVENT_OBJECT_TABLE\n\t\t\t}));\n\t\t}) });\n\t} catch (error) {\n\t\treturn json({ message: error instanceof Error ? error.message : \"No se pudieron cargar los triggers\" }, { status: 400 });\n\t}\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;AAEA;AACG,IAAC,IAAI,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK;AAClC,CAAC,IAAI;AACL,EAAE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AACnC,EAAE,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;AAC7C,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;AACrD,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;AAChE,EAAE,OAAO,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,UAAU,KAAK;AACnF,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;AAC5C;AACA;AACA,8CAA8C,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAC5D,GAAG,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;AAC7B,IAAI,IAAI,EAAE,GAAG,CAAC,YAAY;AAC1B,IAAI,KAAK,EAAE,GAAG,CAAC,kBAAkB;AACjC,IAAI,KAAK,EAAE,GAAG,CAAC;AACf,IAAI,CAAC,CAAC;AACN,EAAE,CAAC,CAAC,EAAE,CAAC;AACP,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE;AACjB,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,oCAAoC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC1H,CAAC;AACD;;;;"}
@@ -0,0 +1,61 @@
1
+ import { n as normalizeConfig, w as withConnection } from './mysql-DX3ct8Wa.js';
2
+ import { j as json } from './index-Dq7YP_jO.js';
3
+ import 'mysql2/promise';
4
+ import './index-DBqjc0Yf.js';
5
+
6
+ //#region src/routes/api/mysql/diagram/+server.ts
7
+ var POST = async ({ request }) => {
8
+ try {
9
+ const body = await request.json();
10
+ const config = normalizeConfig(body.config);
11
+ const database = String(body.database ?? "").trim();
12
+ if (!database) throw new Error("Selecciona una base de datos");
13
+ return json(await withConnection(config, null, async (connection) => {
14
+ const [tableRows] = await connection.execute(`SELECT TABLE_NAME
15
+ FROM information_schema.TABLES
16
+ WHERE TABLE_SCHEMA = ? AND TABLE_TYPE = 'BASE TABLE'
17
+ ORDER BY TABLE_NAME`, [database]);
18
+ const [columnRows] = await connection.execute(`SELECT TABLE_NAME, COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, COLUMN_KEY, COLUMN_DEFAULT, EXTRA
19
+ FROM information_schema.COLUMNS
20
+ WHERE TABLE_SCHEMA = ?
21
+ ORDER BY TABLE_NAME, ORDINAL_POSITION`, [database]);
22
+ const [relationRows] = await connection.execute(`SELECT TABLE_NAME, COLUMN_NAME, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME, CONSTRAINT_NAME
23
+ FROM information_schema.KEY_COLUMN_USAGE
24
+ WHERE TABLE_SCHEMA = ?
25
+ AND REFERENCED_TABLE_NAME IS NOT NULL
26
+ ORDER BY TABLE_NAME, COLUMN_NAME`, [database]);
27
+ const tablesMap = /* @__PURE__ */ new Map();
28
+ tableRows.forEach((row) => {
29
+ tablesMap.set(row.TABLE_NAME, []);
30
+ });
31
+ columnRows.forEach((row) => {
32
+ if (tablesMap.has(row.TABLE_NAME)) tablesMap.get(row.TABLE_NAME).push({
33
+ name: row.COLUMN_NAME,
34
+ type: row.COLUMN_TYPE,
35
+ nullable: row.IS_NULLABLE === "YES",
36
+ key: row.COLUMN_KEY,
37
+ defaultValue: row.COLUMN_DEFAULT,
38
+ extra: row.EXTRA
39
+ });
40
+ });
41
+ return {
42
+ tables: Array.from(tablesMap.entries()).map(([tableName, fields]) => ({
43
+ tableName,
44
+ fields
45
+ })),
46
+ relations: relationRows.map((row) => ({
47
+ referenceTable: row.TABLE_NAME,
48
+ referenceColumn: row.COLUMN_NAME,
49
+ referencedTable: row.REFERENCED_TABLE_NAME,
50
+ referencedColumn: row.REFERENCED_COLUMN_NAME,
51
+ constraint: row.CONSTRAINT_NAME
52
+ }))
53
+ };
54
+ }));
55
+ } catch (error) {
56
+ return json({ message: error instanceof Error ? error.message : "No se pudo cargar el diagrama" }, { status: 400 });
57
+ }
58
+ };
59
+
60
+ export { POST };
61
+ //# sourceMappingURL=_server.ts-B7evxvHU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-B7evxvHU.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/mysql/diagram/_server.ts.js"],"sourcesContent":["import { o as withConnection, r as normalizeConfig } from \"../../../../../chunks/mysql.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/mysql/diagram/+server.ts\nvar POST = async ({ request }) => {\n\ttry {\n\t\tconst body = await request.json();\n\t\tconst config = normalizeConfig(body.config);\n\t\tconst database = String(body.database ?? \"\").trim();\n\t\tif (!database) throw new Error(\"Selecciona una base de datos\");\n\t\treturn json(await withConnection(config, null, async (connection) => {\n\t\t\tconst [tableRows] = await connection.execute(`SELECT TABLE_NAME\n\t\t\t\t FROM information_schema.TABLES\n\t\t\t\t WHERE TABLE_SCHEMA = ? AND TABLE_TYPE = 'BASE TABLE'\n\t\t\t\t ORDER BY TABLE_NAME`, [database]);\n\t\t\tconst [columnRows] = await connection.execute(`SELECT TABLE_NAME, COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, COLUMN_KEY, COLUMN_DEFAULT, EXTRA\n\t\t\t\t FROM information_schema.COLUMNS\n\t\t\t\t WHERE TABLE_SCHEMA = ?\n\t\t\t\t ORDER BY TABLE_NAME, ORDINAL_POSITION`, [database]);\n\t\t\tconst [relationRows] = await connection.execute(`SELECT TABLE_NAME, COLUMN_NAME, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME, CONSTRAINT_NAME\n\t\t\t\t FROM information_schema.KEY_COLUMN_USAGE\n\t\t\t\t WHERE TABLE_SCHEMA = ?\n\t\t\t\t AND REFERENCED_TABLE_NAME IS NOT NULL\n\t\t\t\t ORDER BY TABLE_NAME, COLUMN_NAME`, [database]);\n\t\t\tconst tablesMap = /* @__PURE__ */ new Map();\n\t\t\ttableRows.forEach((row) => {\n\t\t\t\ttablesMap.set(row.TABLE_NAME, []);\n\t\t\t});\n\t\t\tcolumnRows.forEach((row) => {\n\t\t\t\tif (tablesMap.has(row.TABLE_NAME)) tablesMap.get(row.TABLE_NAME).push({\n\t\t\t\t\tname: row.COLUMN_NAME,\n\t\t\t\t\ttype: row.COLUMN_TYPE,\n\t\t\t\t\tnullable: row.IS_NULLABLE === \"YES\",\n\t\t\t\t\tkey: row.COLUMN_KEY,\n\t\t\t\t\tdefaultValue: row.COLUMN_DEFAULT,\n\t\t\t\t\textra: row.EXTRA\n\t\t\t\t});\n\t\t\t});\n\t\t\treturn {\n\t\t\t\ttables: Array.from(tablesMap.entries()).map(([tableName, fields]) => ({\n\t\t\t\t\ttableName,\n\t\t\t\t\tfields\n\t\t\t\t})),\n\t\t\t\trelations: relationRows.map((row) => ({\n\t\t\t\t\treferenceTable: row.TABLE_NAME,\n\t\t\t\t\treferenceColumn: row.COLUMN_NAME,\n\t\t\t\t\treferencedTable: row.REFERENCED_TABLE_NAME,\n\t\t\t\t\treferencedColumn: row.REFERENCED_COLUMN_NAME,\n\t\t\t\t\tconstraint: row.CONSTRAINT_NAME\n\t\t\t\t}))\n\t\t\t};\n\t\t}));\n\t} catch (error) {\n\t\treturn json({ message: error instanceof Error ? error.message : \"No se pudo cargar el diagrama\" }, { status: 400 });\n\t}\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;AAEA;AACG,IAAC,IAAI,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK;AAClC,CAAC,IAAI;AACL,EAAE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AACnC,EAAE,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;AAC7C,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;AACrD,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;AAChE,EAAE,OAAO,IAAI,CAAC,MAAM,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,UAAU,KAAK;AACvE,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;AACjD;AACA;AACA,wBAAwB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AACtC,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;AAClD;AACA;AACA,0CAA0C,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AACxD,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;AACpD;AACA;AACA;AACA,qCAAqC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AACnD,GAAG,MAAM,SAAS,mBAAmB,IAAI,GAAG,EAAE;AAC9C,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AAC9B,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC;AACrC,GAAG,CAAC,CAAC;AACL,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AAC/B,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;AAC1E,KAAK,IAAI,EAAE,GAAG,CAAC,WAAW;AAC1B,KAAK,IAAI,EAAE,GAAG,CAAC,WAAW;AAC1B,KAAK,QAAQ,EAAE,GAAG,CAAC,WAAW,KAAK,KAAK;AACxC,KAAK,GAAG,EAAE,GAAG,CAAC,UAAU;AACxB,KAAK,YAAY,EAAE,GAAG,CAAC,cAAc;AACrC,KAAK,KAAK,EAAE,GAAG,CAAC;AAChB,KAAK,CAAC;AACN,GAAG,CAAC,CAAC;AACL,GAAG,OAAO;AACV,IAAI,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM;AAC1E,KAAK,SAAS;AACd,KAAK;AACL,KAAK,CAAC,CAAC;AACP,IAAI,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;AAC1C,KAAK,cAAc,EAAE,GAAG,CAAC,UAAU;AACnC,KAAK,eAAe,EAAE,GAAG,CAAC,WAAW;AACrC,KAAK,eAAe,EAAE,GAAG,CAAC,qBAAqB;AAC/C,KAAK,gBAAgB,EAAE,GAAG,CAAC,sBAAsB;AACjD,KAAK,UAAU,EAAE,GAAG,CAAC;AACrB,KAAK,CAAC;AACN,IAAI;AACJ,EAAE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE;AACjB,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,+BAA+B,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrH,CAAC;AACD;;;;"}
@@ -0,0 +1,89 @@
1
+ import { w as withConnection, q as quoteIdentifier, a as normalizeValues, g as getColumns, b as getPrimaryColumn, n as normalizeConfig } from './mysql-DX3ct8Wa.js';
2
+ import { j as json } from './index-Dq7YP_jO.js';
3
+ import 'mysql2/promise';
4
+ import './index-DBqjc0Yf.js';
5
+
6
+ //#region src/routes/api/mysql/rows/+server.ts
7
+ function getContext(body) {
8
+ const config = normalizeConfig(body.config);
9
+ const database = String(body.database ?? "").trim();
10
+ const table = String(body.table ?? "").trim();
11
+ if (!database) throw new Error("Selecciona una base de datos");
12
+ if (!table) throw new Error("Selecciona una tabla");
13
+ return {
14
+ config,
15
+ database,
16
+ table
17
+ };
18
+ }
19
+ var POST = async ({ request }) => {
20
+ try {
21
+ const { config, database, table } = getContext(await request.json());
22
+ const columns = await getColumns(config, database, table);
23
+ const primaryColumn = getPrimaryColumn(columns);
24
+ return json({
25
+ columns,
26
+ rows: await withConnection(config, database, async (connection) => {
27
+ const [result] = await connection.query(`SELECT * FROM ${quoteIdentifier(table)} LIMIT 100`);
28
+ return result;
29
+ }),
30
+ primaryKey: primaryColumn?.name ?? null
31
+ });
32
+ } catch (error) {
33
+ return json({ message: error instanceof Error ? error.message : "No se pudieron cargar los registros" }, { status: 400 });
34
+ }
35
+ };
36
+ var PUT = async ({ request }) => {
37
+ try {
38
+ const body = await request.json();
39
+ const { config, database, table } = getContext(body);
40
+ const values = normalizeValues(body.values ?? {});
41
+ const entries = Object.entries(values).filter(([, value]) => value !== void 0);
42
+ if (!entries.length) throw new Error("Agrega al menos un valor");
43
+ const columns = entries.map(([column]) => quoteIdentifier(column)).join(", ");
44
+ const placeholders = entries.map(() => "?").join(", ");
45
+ await withConnection(config, database, async (connection) => {
46
+ await connection.execute(`INSERT INTO ${quoteIdentifier(table)} (${columns}) VALUES (${placeholders})`, entries.map(([, value]) => value));
47
+ });
48
+ return json({ ok: true });
49
+ } catch (error) {
50
+ return json({ message: error instanceof Error ? error.message : "No se pudo agregar el registro" }, { status: 400 });
51
+ }
52
+ };
53
+ var PATCH = async ({ request }) => {
54
+ try {
55
+ const body = await request.json();
56
+ const { config, database, table } = getContext(body);
57
+ const primaryKey = String(body.primaryKey ?? "").trim();
58
+ const primaryValue = body.primaryValue;
59
+ const values = normalizeValues(body.values ?? {});
60
+ const entries = Object.entries(values).filter(([column]) => column !== primaryKey);
61
+ if (!primaryKey) throw new Error("La tabla no tiene columna editable para identificar filas");
62
+ if (!entries.length) throw new Error("No hay cambios para guardar");
63
+ const assignments = entries.map(([column]) => `${quoteIdentifier(column)} = ?`).join(", ");
64
+ await withConnection(config, database, async (connection) => {
65
+ await connection.execute(`UPDATE ${quoteIdentifier(table)} SET ${assignments} WHERE ${quoteIdentifier(primaryKey)} = ? LIMIT 1`, [...entries.map(([, value]) => value), primaryValue]);
66
+ });
67
+ return json({ ok: true });
68
+ } catch (error) {
69
+ return json({ message: error instanceof Error ? error.message : "No se pudo editar el registro" }, { status: 400 });
70
+ }
71
+ };
72
+ var DELETE = async ({ request }) => {
73
+ try {
74
+ const body = await request.json();
75
+ const { config, database, table } = getContext(body);
76
+ const primaryKey = String(body.primaryKey ?? "").trim();
77
+ const primaryValue = body.primaryValue;
78
+ if (!primaryKey) throw new Error("La tabla no tiene columna para identificar filas");
79
+ await withConnection(config, database, async (connection) => {
80
+ await connection.execute(`DELETE FROM ${quoteIdentifier(table)} WHERE ${quoteIdentifier(primaryKey)} = ? LIMIT 1`, [primaryValue]);
81
+ });
82
+ return json({ ok: true });
83
+ } catch (error) {
84
+ return json({ message: error instanceof Error ? error.message : "No se pudo eliminar el registro" }, { status: 400 });
85
+ }
86
+ };
87
+
88
+ export { DELETE, PATCH, POST, PUT };
89
+ //# sourceMappingURL=_server.ts-BN5QAzfI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-BN5QAzfI.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/mysql/rows/_server.ts.js"],"sourcesContent":["import { a as quoteIdentifier, i as normalizeValues, n as getPrimaryColumn, o as withConnection, r as normalizeConfig, t as getColumns } from \"../../../../../chunks/mysql.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/mysql/rows/+server.ts\nfunction getContext(body) {\n\tconst config = normalizeConfig(body.config);\n\tconst database = String(body.database ?? \"\").trim();\n\tconst table = String(body.table ?? \"\").trim();\n\tif (!database) throw new Error(\"Selecciona una base de datos\");\n\tif (!table) throw new Error(\"Selecciona una tabla\");\n\treturn {\n\t\tconfig,\n\t\tdatabase,\n\t\ttable\n\t};\n}\nvar POST = async ({ request }) => {\n\ttry {\n\t\tconst { config, database, table } = getContext(await request.json());\n\t\tconst columns = await getColumns(config, database, table);\n\t\tconst primaryColumn = getPrimaryColumn(columns);\n\t\treturn json({\n\t\t\tcolumns,\n\t\t\trows: await withConnection(config, database, async (connection) => {\n\t\t\t\tconst [result] = await connection.query(`SELECT * FROM ${quoteIdentifier(table)} LIMIT 100`);\n\t\t\t\treturn result;\n\t\t\t}),\n\t\t\tprimaryKey: primaryColumn?.name ?? null\n\t\t});\n\t} catch (error) {\n\t\treturn json({ message: error instanceof Error ? error.message : \"No se pudieron cargar los registros\" }, { status: 400 });\n\t}\n};\nvar PUT = async ({ request }) => {\n\ttry {\n\t\tconst body = await request.json();\n\t\tconst { config, database, table } = getContext(body);\n\t\tconst values = normalizeValues(body.values ?? {});\n\t\tconst entries = Object.entries(values).filter(([, value]) => value !== void 0);\n\t\tif (!entries.length) throw new Error(\"Agrega al menos un valor\");\n\t\tconst columns = entries.map(([column]) => quoteIdentifier(column)).join(\", \");\n\t\tconst placeholders = entries.map(() => \"?\").join(\", \");\n\t\tawait withConnection(config, database, async (connection) => {\n\t\t\tawait connection.execute(`INSERT INTO ${quoteIdentifier(table)} (${columns}) VALUES (${placeholders})`, entries.map(([, value]) => value));\n\t\t});\n\t\treturn json({ ok: true });\n\t} catch (error) {\n\t\treturn json({ message: error instanceof Error ? error.message : \"No se pudo agregar el registro\" }, { status: 400 });\n\t}\n};\nvar PATCH = async ({ request }) => {\n\ttry {\n\t\tconst body = await request.json();\n\t\tconst { config, database, table } = getContext(body);\n\t\tconst primaryKey = String(body.primaryKey ?? \"\").trim();\n\t\tconst primaryValue = body.primaryValue;\n\t\tconst values = normalizeValues(body.values ?? {});\n\t\tconst entries = Object.entries(values).filter(([column]) => column !== primaryKey);\n\t\tif (!primaryKey) throw new Error(\"La tabla no tiene columna editable para identificar filas\");\n\t\tif (!entries.length) throw new Error(\"No hay cambios para guardar\");\n\t\tconst assignments = entries.map(([column]) => `${quoteIdentifier(column)} = ?`).join(\", \");\n\t\tawait withConnection(config, database, async (connection) => {\n\t\t\tawait connection.execute(`UPDATE ${quoteIdentifier(table)} SET ${assignments} WHERE ${quoteIdentifier(primaryKey)} = ? LIMIT 1`, [...entries.map(([, value]) => value), primaryValue]);\n\t\t});\n\t\treturn json({ ok: true });\n\t} catch (error) {\n\t\treturn json({ message: error instanceof Error ? error.message : \"No se pudo editar el registro\" }, { status: 400 });\n\t}\n};\nvar DELETE = async ({ request }) => {\n\ttry {\n\t\tconst body = await request.json();\n\t\tconst { config, database, table } = getContext(body);\n\t\tconst primaryKey = String(body.primaryKey ?? \"\").trim();\n\t\tconst primaryValue = body.primaryValue;\n\t\tif (!primaryKey) throw new Error(\"La tabla no tiene columna para identificar filas\");\n\t\tawait withConnection(config, database, async (connection) => {\n\t\t\tawait connection.execute(`DELETE FROM ${quoteIdentifier(table)} WHERE ${quoteIdentifier(primaryKey)} = ? LIMIT 1`, [primaryValue]);\n\t\t});\n\t\treturn json({ ok: true });\n\t} catch (error) {\n\t\treturn json({ message: error instanceof Error ? error.message : \"No se pudo eliminar el registro\" }, { status: 400 });\n\t}\n};\n//#endregion\nexport { DELETE, PATCH, POST, PUT };\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { n as normalizeConfig, w as withConnection } from './mysql-DX3ct8Wa.js';
2
+ import { j as json } from './index-Dq7YP_jO.js';
3
+ import 'mysql2/promise';
4
+ import './index-DBqjc0Yf.js';
5
+
6
+ //#region src/routes/api/mysql/functions/+server.ts
7
+ var POST = async ({ request }) => {
8
+ try {
9
+ const body = await request.json();
10
+ const config = normalizeConfig(body.config);
11
+ const database = String(body.database ?? "").trim();
12
+ if (!database) throw new Error("Selecciona una base de datos");
13
+ return json({ functions: await withConnection(config, null, async (connection) => {
14
+ const [rows] = await connection.execute(`SELECT ROUTINE_NAME
15
+ FROM information_schema.ROUTINES
16
+ WHERE ROUTINE_SCHEMA = ? AND ROUTINE_TYPE = 'FUNCTION'
17
+ ORDER BY ROUTINE_NAME`, [database]);
18
+ return rows.map((row) => row.ROUTINE_NAME);
19
+ }) });
20
+ } catch (error) {
21
+ return json({ message: error instanceof Error ? error.message : "No se pudieron cargar las funciones" }, { status: 400 });
22
+ }
23
+ };
24
+
25
+ export { POST };
26
+ //# sourceMappingURL=_server.ts-BWe0PPhA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-BWe0PPhA.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/mysql/functions/_server.ts.js"],"sourcesContent":["import { o as withConnection, r as normalizeConfig } from \"../../../../../chunks/mysql.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/mysql/functions/+server.ts\nvar POST = async ({ request }) => {\n\ttry {\n\t\tconst body = await request.json();\n\t\tconst config = normalizeConfig(body.config);\n\t\tconst database = String(body.database ?? \"\").trim();\n\t\tif (!database) throw new Error(\"Selecciona una base de datos\");\n\t\treturn json({ functions: await withConnection(config, null, async (connection) => {\n\t\t\tconst [rows] = await connection.execute(`SELECT ROUTINE_NAME\n\t\t\t\t FROM information_schema.ROUTINES\n\t\t\t\t WHERE ROUTINE_SCHEMA = ? AND ROUTINE_TYPE = 'FUNCTION'\n\t\t\t\t ORDER BY ROUTINE_NAME`, [database]);\n\t\t\treturn rows.map((row) => row.ROUTINE_NAME);\n\t\t}) });\n\t} catch (error) {\n\t\treturn json({ message: error instanceof Error ? error.message : \"No se pudieron cargar las funciones\" }, { status: 400 });\n\t}\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;AAEA;AACG,IAAC,IAAI,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK;AAClC,CAAC,IAAI;AACL,EAAE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AACnC,EAAE,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;AAC7C,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;AACrD,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;AAChE,EAAE,OAAO,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,UAAU,KAAK;AACpF,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;AAC5C;AACA;AACA,0BAA0B,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AACxC,GAAG,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,YAAY,CAAC;AAC7C,EAAE,CAAC,CAAC,EAAE,CAAC;AACP,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE;AACjB,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,qCAAqC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC3H,CAAC;AACD;;;;"}
@@ -0,0 +1,84 @@
1
+ import { n as normalizeConfig, w as withConnection, g as getColumns } from './mysql-DX3ct8Wa.js';
2
+ import { r as renderPlantUmlSvg } from './plantuml-BT_hcRqZ.js';
3
+ import { j as json } from './index-Dq7YP_jO.js';
4
+ import 'mysql2/promise';
5
+ import './shared-server-DkccXZBX.js';
6
+ import 'node:zlib';
7
+ import './index-DBqjc0Yf.js';
8
+
9
+ //#region src/routes/api/plantuml/database/+server.ts
10
+ function renderPlantUmlSource(entities, relations) {
11
+ const lines = [
12
+ "@startuml",
13
+ "left to right direction",
14
+ "skinparam linetype polygon",
15
+ ""
16
+ ];
17
+ for (const entity of entities) {
18
+ lines.push(`entity "${entity.name}" as ${quoteAlias(entity.name)} {`);
19
+ for (const field of entity.fields) {
20
+ const marker = field.primary ? "*" : field.foreign ? "+" : field.nullable ? " " : "!";
21
+ lines.push(` ${marker} ${field.name} : ${field.type}`);
22
+ }
23
+ lines.push("}", "");
24
+ }
25
+ for (const relation of relations) lines.push(`${quoteAlias(relation.referencedTable)} ||---o{ ${quoteAlias(relation.table)}`);
26
+ lines.push("@enduml");
27
+ return lines.join("\n");
28
+ }
29
+ function quoteAlias(name) {
30
+ return `E_${name.replace(/[^a-zA-Z0-9_]/g, "_")}`;
31
+ }
32
+ var POST = async ({ request }) => {
33
+ try {
34
+ const body = await request.json();
35
+ const config = normalizeConfig(body.config);
36
+ const database = String(body.database ?? "").trim();
37
+ if (!database) throw new Error("Selecciona una base de datos");
38
+ const data = await withConnection(config, null, async (connection) => {
39
+ const [tableRows] = await connection.execute(`SELECT TABLE_NAME
40
+ FROM information_schema.TABLES
41
+ WHERE TABLE_SCHEMA = ? AND TABLE_TYPE = 'BASE TABLE'
42
+ ORDER BY TABLE_NAME`, [database]);
43
+ const [relationRows] = await connection.execute(`SELECT TABLE_NAME, COLUMN_NAME, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME, CONSTRAINT_NAME
44
+ FROM information_schema.KEY_COLUMN_USAGE
45
+ WHERE TABLE_SCHEMA = ?
46
+ AND REFERENCED_TABLE_NAME IS NOT NULL
47
+ ORDER BY TABLE_NAME, COLUMN_NAME`, [database]);
48
+ const tables = tableRows.map((row) => row.TABLE_NAME);
49
+ return {
50
+ entities: await Promise.all(tables.map(async (table) => {
51
+ return {
52
+ name: table,
53
+ fields: (await getColumns(config, database, table)).map((column) => ({
54
+ name: column.name,
55
+ type: column.type,
56
+ primary: column.key === "PRI",
57
+ foreign: Boolean(column.foreignKey),
58
+ nullable: column.nullable
59
+ }))
60
+ };
61
+ })),
62
+ relations: relationRows.map((row) => ({
63
+ table: row.TABLE_NAME,
64
+ column: row.COLUMN_NAME,
65
+ referencedTable: row.REFERENCED_TABLE_NAME,
66
+ referencedColumn: row.REFERENCED_COLUMN_NAME,
67
+ constraint: row.CONSTRAINT_NAME
68
+ }))
69
+ };
70
+ });
71
+ const source = renderPlantUmlSource(data.entities, data.relations);
72
+ const svg = await renderPlantUmlSvg(source);
73
+ return json({
74
+ ...data,
75
+ source,
76
+ svg
77
+ });
78
+ } catch (error) {
79
+ return json({ message: error instanceof Error ? error.message : "No se pudo generar la preview" }, { status: 400 });
80
+ }
81
+ };
82
+
83
+ export { POST };
84
+ //# sourceMappingURL=_server.ts-BgrwjIyE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-BgrwjIyE.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/plantuml/database/_server.ts.js"],"sourcesContent":["import { o as withConnection, r as normalizeConfig, t as getColumns } from \"../../../../../chunks/mysql.js\";\nimport { t as renderPlantUmlSvg } from \"../../../../../chunks/plantuml.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/plantuml/database/+server.ts\nfunction renderPlantUmlSource(entities, relations) {\n\tconst lines = [\n\t\t\"@startuml\",\n\t\t\"left to right direction\",\n\t\t\"skinparam linetype polygon\",\n\t\t\"\"\n\t];\n\tfor (const entity of entities) {\n\t\tlines.push(`entity \"${entity.name}\" as ${quoteAlias(entity.name)} {`);\n\t\tfor (const field of entity.fields) {\n\t\t\tconst marker = field.primary ? \"*\" : field.foreign ? \"+\" : field.nullable ? \" \" : \"!\";\n\t\t\tlines.push(` ${marker} ${field.name} : ${field.type}`);\n\t\t}\n\t\tlines.push(\"}\", \"\");\n\t}\n\tfor (const relation of relations) lines.push(`${quoteAlias(relation.referencedTable)} ||---o{ ${quoteAlias(relation.table)}`);\n\tlines.push(\"@enduml\");\n\treturn lines.join(\"\\n\");\n}\nfunction quoteAlias(name) {\n\treturn `E_${name.replace(/[^a-zA-Z0-9_]/g, \"_\")}`;\n}\nvar POST = async ({ request }) => {\n\ttry {\n\t\tconst body = await request.json();\n\t\tconst config = normalizeConfig(body.config);\n\t\tconst database = String(body.database ?? \"\").trim();\n\t\tif (!database) throw new Error(\"Selecciona una base de datos\");\n\t\tconst data = await withConnection(config, null, async (connection) => {\n\t\t\tconst [tableRows] = await connection.execute(`SELECT TABLE_NAME\n\t\t\t\t FROM information_schema.TABLES\n\t\t\t\t WHERE TABLE_SCHEMA = ? AND TABLE_TYPE = 'BASE TABLE'\n\t\t\t\t ORDER BY TABLE_NAME`, [database]);\n\t\t\tconst [relationRows] = await connection.execute(`SELECT TABLE_NAME, COLUMN_NAME, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME, CONSTRAINT_NAME\n\t\t\t\t FROM information_schema.KEY_COLUMN_USAGE\n\t\t\t\t WHERE TABLE_SCHEMA = ?\n\t\t\t\t AND REFERENCED_TABLE_NAME IS NOT NULL\n\t\t\t\t ORDER BY TABLE_NAME, COLUMN_NAME`, [database]);\n\t\t\tconst tables = tableRows.map((row) => row.TABLE_NAME);\n\t\t\treturn {\n\t\t\t\tentities: await Promise.all(tables.map(async (table) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tname: table,\n\t\t\t\t\t\tfields: (await getColumns(config, database, table)).map((column) => ({\n\t\t\t\t\t\t\tname: column.name,\n\t\t\t\t\t\t\ttype: column.type,\n\t\t\t\t\t\t\tprimary: column.key === \"PRI\",\n\t\t\t\t\t\t\tforeign: Boolean(column.foreignKey),\n\t\t\t\t\t\t\tnullable: column.nullable\n\t\t\t\t\t\t}))\n\t\t\t\t\t};\n\t\t\t\t})),\n\t\t\t\trelations: relationRows.map((row) => ({\n\t\t\t\t\ttable: row.TABLE_NAME,\n\t\t\t\t\tcolumn: row.COLUMN_NAME,\n\t\t\t\t\treferencedTable: row.REFERENCED_TABLE_NAME,\n\t\t\t\t\treferencedColumn: row.REFERENCED_COLUMN_NAME,\n\t\t\t\t\tconstraint: row.CONSTRAINT_NAME\n\t\t\t\t}))\n\t\t\t};\n\t\t});\n\t\tconst source = renderPlantUmlSource(data.entities, data.relations);\n\t\tconst svg = await renderPlantUmlSvg(source);\n\t\treturn json({\n\t\t\t...data,\n\t\t\tsource,\n\t\t\tsvg\n\t\t});\n\t} catch (error) {\n\t\treturn json({ message: error instanceof Error ? error.message : \"No se pudo generar la preview\" }, { status: 400 });\n\t}\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import { n as normalizeConfig, w as withConnection, q as quoteIdentifier } from './mysql-DX3ct8Wa.js';
2
+ import { j as json } from './index-Dq7YP_jO.js';
3
+ import 'mysql2/promise';
4
+ import './index-DBqjc0Yf.js';
5
+
6
+ //#region src/routes/api/mysql/databases/+server.ts
7
+ var POST = async ({ request }) => {
8
+ try {
9
+ return json({ databases: await withConnection(normalizeConfig((await request.json()).config), null, async (connection) => {
10
+ const [rows] = await connection.query("SHOW DATABASES");
11
+ return rows.map((row) => Object.values(row)[0]).filter((name) => typeof name === "string").filter((name) => ![
12
+ "information_schema",
13
+ "mysql",
14
+ "performance_schema",
15
+ "sys"
16
+ ].includes(name));
17
+ }) });
18
+ } catch (error) {
19
+ return json({ message: error instanceof Error ? error.message : "No se pudo conectar a MySQL" }, { status: 400 });
20
+ }
21
+ };
22
+ var PUT = async ({ request }) => {
23
+ try {
24
+ const body = await request.json();
25
+ const config = normalizeConfig(body.config);
26
+ const database = String(body.database ?? "").trim();
27
+ if (!database) throw new Error("El nombre de la base de datos es obligatorio");
28
+ await withConnection(config, null, async (connection) => {
29
+ await connection.query(`CREATE DATABASE ${quoteIdentifier(database)}`);
30
+ });
31
+ return json({ ok: true });
32
+ } catch (error) {
33
+ return json({ message: error instanceof Error ? error.message : "No se pudo crear la base de datos" }, { status: 400 });
34
+ }
35
+ };
36
+ var DELETE = async ({ request }) => {
37
+ try {
38
+ const body = await request.json();
39
+ const config = normalizeConfig(body.config);
40
+ const database = String(body.database ?? "").trim();
41
+ if (!database) throw new Error("Selecciona una base de datos");
42
+ await withConnection(config, null, async (connection) => {
43
+ await connection.query(`DROP DATABASE ${quoteIdentifier(database)}`);
44
+ });
45
+ return json({ ok: true });
46
+ } catch (error) {
47
+ return json({ message: error instanceof Error ? error.message : "No se pudo eliminar la base de datos" }, { status: 400 });
48
+ }
49
+ };
50
+
51
+ export { DELETE, POST, PUT };
52
+ //# sourceMappingURL=_server.ts-CFzBDuF1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-CFzBDuF1.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/mysql/databases/_server.ts.js"],"sourcesContent":["import { a as quoteIdentifier, o as withConnection, r as normalizeConfig } from \"../../../../../chunks/mysql.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/mysql/databases/+server.ts\nvar POST = async ({ request }) => {\n\ttry {\n\t\treturn json({ databases: await withConnection(normalizeConfig((await request.json()).config), null, async (connection) => {\n\t\t\tconst [rows] = await connection.query(\"SHOW DATABASES\");\n\t\t\treturn rows.map((row) => Object.values(row)[0]).filter((name) => typeof name === \"string\").filter((name) => ![\n\t\t\t\t\"information_schema\",\n\t\t\t\t\"mysql\",\n\t\t\t\t\"performance_schema\",\n\t\t\t\t\"sys\"\n\t\t\t].includes(name));\n\t\t}) });\n\t} catch (error) {\n\t\treturn json({ message: error instanceof Error ? error.message : \"No se pudo conectar a MySQL\" }, { status: 400 });\n\t}\n};\nvar PUT = async ({ request }) => {\n\ttry {\n\t\tconst body = await request.json();\n\t\tconst config = normalizeConfig(body.config);\n\t\tconst database = String(body.database ?? \"\").trim();\n\t\tif (!database) throw new Error(\"El nombre de la base de datos es obligatorio\");\n\t\tawait withConnection(config, null, async (connection) => {\n\t\t\tawait connection.query(`CREATE DATABASE ${quoteIdentifier(database)}`);\n\t\t});\n\t\treturn json({ ok: true });\n\t} catch (error) {\n\t\treturn json({ message: error instanceof Error ? error.message : \"No se pudo crear la base de datos\" }, { status: 400 });\n\t}\n};\nvar DELETE = async ({ request }) => {\n\ttry {\n\t\tconst body = await request.json();\n\t\tconst config = normalizeConfig(body.config);\n\t\tconst database = String(body.database ?? \"\").trim();\n\t\tif (!database) throw new Error(\"Selecciona una base de datos\");\n\t\tawait withConnection(config, null, async (connection) => {\n\t\t\tawait connection.query(`DROP DATABASE ${quoteIdentifier(database)}`);\n\t\t});\n\t\treturn json({ ok: true });\n\t} catch (error) {\n\t\treturn json({ message: error instanceof Error ? error.message : \"No se pudo eliminar la base de datos\" }, { status: 400 });\n\t}\n};\n//#endregion\nexport { DELETE, POST, PUT };\n"],"names":[],"mappings":";;;;;AAEA;AACG,IAAC,IAAI,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK;AAClC,CAAC,IAAI;AACL,EAAE,OAAO,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,UAAU,KAAK;AAC5H,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,gBAAgB,CAAC;AAC1D,GAAG,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC;AAChH,IAAI,oBAAoB;AACxB,IAAI,OAAO;AACX,IAAI,oBAAoB;AACxB,IAAI;AACJ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACpB,EAAE,CAAC,CAAC,EAAE,CAAC;AACP,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE;AACjB,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,6BAA6B,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACnH,CAAC;AACD;AACG,IAAC,GAAG,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK;AACjC,CAAC,IAAI;AACL,EAAE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AACnC,EAAE,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;AAC7C,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;AACrD,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC;AAChF,EAAE,MAAM,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,UAAU,KAAK;AAC3D,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC,gBAAgB,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACzE,EAAE,CAAC,CAAC;AACJ,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE;AACjB,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,mCAAmC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACzH,CAAC;AACD;AACG,IAAC,MAAM,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK;AACpC,CAAC,IAAI;AACL,EAAE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AACnC,EAAE,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;AAC7C,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;AACrD,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;AAChE,EAAE,MAAM,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,UAAU,KAAK;AAC3D,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvE,EAAE,CAAC,CAAC;AACJ,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE;AACjB,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,sCAAsC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC5H,CAAC;AACD;;;;"}
@@ -0,0 +1,55 @@
1
+ import { n as normalizeConfig, w as withConnection } from './mysql-DX3ct8Wa.js';
2
+ import { j as json } from './index-Dq7YP_jO.js';
3
+ import { createConnection } from 'node:net';
4
+ import 'mysql2/promise';
5
+ import './index-DBqjc0Yf.js';
6
+
7
+ //#region src/routes/api/connections/test/+server.ts
8
+ function normalizeType(value) {
9
+ if (value === "postgresql" || value === "redis" || value === "mysql") return value;
10
+ return "mysql";
11
+ }
12
+ function testTcpConnection(config) {
13
+ return new Promise((resolve, reject) => {
14
+ const socket = createConnection({
15
+ host: config.host,
16
+ port: config.port
17
+ });
18
+ const timeout = setTimeout(() => {
19
+ socket.destroy();
20
+ reject(/* @__PURE__ */ new Error("Tiempo de espera agotado"));
21
+ }, 5e3);
22
+ socket.once("connect", () => {
23
+ clearTimeout(timeout);
24
+ socket.end();
25
+ resolve();
26
+ });
27
+ socket.once("error", (error) => {
28
+ clearTimeout(timeout);
29
+ reject(error);
30
+ });
31
+ });
32
+ }
33
+ var POST = async ({ request }) => {
34
+ try {
35
+ const body = await request.json();
36
+ const connection = body.connection ?? body;
37
+ const config = normalizeConfig(connection);
38
+ if (normalizeType(connection.type) === "mysql") await withConnection(config, null, async (client) => {
39
+ await client.ping();
40
+ });
41
+ else await testTcpConnection(config);
42
+ return json({
43
+ ok: true,
44
+ message: "Conexion exitosa"
45
+ });
46
+ } catch (error) {
47
+ return json({
48
+ ok: false,
49
+ message: error instanceof Error ? error.message : "No se pudo probar la conexion"
50
+ }, { status: 400 });
51
+ }
52
+ };
53
+
54
+ export { POST };
55
+ //# sourceMappingURL=_server.ts-CHBba1cE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-CHBba1cE.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/connections/test/_server.ts.js"],"sourcesContent":["import { o as withConnection, r as normalizeConfig } from \"../../../../../chunks/mysql.js\";\nimport { json } from \"@sveltejs/kit\";\nimport { createConnection } from \"node:net\";\n//#region src/routes/api/connections/test/+server.ts\nfunction normalizeType(value) {\n\tif (value === \"postgresql\" || value === \"redis\" || value === \"mysql\") return value;\n\treturn \"mysql\";\n}\nfunction testTcpConnection(config) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst socket = createConnection({\n\t\t\thost: config.host,\n\t\t\tport: config.port\n\t\t});\n\t\tconst timeout = setTimeout(() => {\n\t\t\tsocket.destroy();\n\t\t\treject(/* @__PURE__ */ new Error(\"Tiempo de espera agotado\"));\n\t\t}, 5e3);\n\t\tsocket.once(\"connect\", () => {\n\t\t\tclearTimeout(timeout);\n\t\t\tsocket.end();\n\t\t\tresolve();\n\t\t});\n\t\tsocket.once(\"error\", (error) => {\n\t\t\tclearTimeout(timeout);\n\t\t\treject(error);\n\t\t});\n\t});\n}\nvar POST = async ({ request }) => {\n\ttry {\n\t\tconst body = await request.json();\n\t\tconst connection = body.connection ?? body;\n\t\tconst config = normalizeConfig(connection);\n\t\tif (normalizeType(connection.type) === \"mysql\") await withConnection(config, null, async (client) => {\n\t\t\tawait client.ping();\n\t\t});\n\t\telse await testTcpConnection(config);\n\t\treturn json({\n\t\t\tok: true,\n\t\t\tmessage: \"Conexion exitosa\"\n\t\t});\n\t} catch (error) {\n\t\treturn json({\n\t\t\tok: false,\n\t\t\tmessage: error instanceof Error ? error.message : \"No se pudo probar la conexion\"\n\t\t}, { status: 400 });\n\t}\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;AAGA;AACA,SAAS,aAAa,CAAC,KAAK,EAAE;AAC9B,CAAC,IAAI,KAAK,KAAK,YAAY,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,OAAO,EAAE,OAAO,KAAK;AACnF,CAAC,OAAO,OAAO;AACf;AACA,SAAS,iBAAiB,CAAC,MAAM,EAAE;AACnC,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AACzC,EAAE,MAAM,MAAM,GAAG,gBAAgB,CAAC;AAClC,GAAG,IAAI,EAAE,MAAM,CAAC,IAAI;AACpB,GAAG,IAAI,EAAE,MAAM,CAAC;AAChB,GAAG,CAAC;AACJ,EAAE,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM;AACnC,GAAG,MAAM,CAAC,OAAO,EAAE;AACnB,GAAG,MAAM,iBAAiB,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAChE,EAAE,CAAC,EAAE,GAAG,CAAC;AACT,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM;AAC/B,GAAG,YAAY,CAAC,OAAO,CAAC;AACxB,GAAG,MAAM,CAAC,GAAG,EAAE;AACf,GAAG,OAAO,EAAE;AACZ,EAAE,CAAC,CAAC;AACJ,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,KAAK;AAClC,GAAG,YAAY,CAAC,OAAO,CAAC;AACxB,GAAG,MAAM,CAAC,KAAK,CAAC;AAChB,EAAE,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AACH;AACG,IAAC,IAAI,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK;AAClC,CAAC,IAAI;AACL,EAAE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AACnC,EAAE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI;AAC5C,EAAE,MAAM,MAAM,GAAG,eAAe,CAAC,UAAU,CAAC;AAC5C,EAAE,IAAI,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,MAAM,KAAK;AACvG,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE;AACtB,EAAE,CAAC,CAAC;AACJ,OAAO,MAAM,iBAAiB,CAAC,MAAM,CAAC;AACtC,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,OAAO,EAAE;AACZ,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE;AACjB,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,OAAO,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG;AACrD,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrB,CAAC;AACD;;;;"}
@@ -0,0 +1,23 @@
1
+ import { n as normalizeConfig, w as withConnection } from './mysql-DX3ct8Wa.js';
2
+ import { j as json } from './index-Dq7YP_jO.js';
3
+ import 'mysql2/promise';
4
+ import './index-DBqjc0Yf.js';
5
+
6
+ //#region src/routes/api/mysql/views/+server.ts
7
+ var POST = async ({ request }) => {
8
+ try {
9
+ const body = await request.json();
10
+ const config = normalizeConfig(body.config);
11
+ const database = String(body.database ?? "").trim();
12
+ if (!database) throw new Error("Selecciona una base de datos");
13
+ return json({ views: await withConnection(config, database, async (connection) => {
14
+ const [rows] = await connection.query("SHOW FULL TABLES WHERE Table_type = \"VIEW\"");
15
+ return rows.map((row) => Object.values(row)[0]).filter((name) => typeof name === "string");
16
+ }) });
17
+ } catch (error) {
18
+ return json({ message: error instanceof Error ? error.message : "No se pudieron cargar las vistas" }, { status: 400 });
19
+ }
20
+ };
21
+
22
+ export { POST };
23
+ //# sourceMappingURL=_server.ts-ChxeqJr9.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-ChxeqJr9.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/mysql/views/_server.ts.js"],"sourcesContent":["import { o as withConnection, r as normalizeConfig } from \"../../../../../chunks/mysql.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/mysql/views/+server.ts\nvar POST = async ({ request }) => {\n\ttry {\n\t\tconst body = await request.json();\n\t\tconst config = normalizeConfig(body.config);\n\t\tconst database = String(body.database ?? \"\").trim();\n\t\tif (!database) throw new Error(\"Selecciona una base de datos\");\n\t\treturn json({ views: await withConnection(config, database, async (connection) => {\n\t\t\tconst [rows] = await connection.query(\"SHOW FULL TABLES WHERE Table_type = \\\"VIEW\\\"\");\n\t\t\treturn rows.map((row) => Object.values(row)[0]).filter((name) => typeof name === \"string\");\n\t\t}) });\n\t} catch (error) {\n\t\treturn json({ message: error instanceof Error ? error.message : \"No se pudieron cargar las vistas\" }, { status: 400 });\n\t}\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;AAEA;AACG,IAAC,IAAI,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK;AAClC,CAAC,IAAI;AACL,EAAE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AACnC,EAAE,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;AAC7C,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;AACrD,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;AAChE,EAAE,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,UAAU,KAAK;AACpF,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,8CAA8C,CAAC;AACxF,GAAG,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,QAAQ,CAAC;AAC7F,EAAE,CAAC,CAAC,EAAE,CAAC;AACP,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE;AACjB,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,kCAAkC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACxH,CAAC;AACD;;;;"}
@@ -0,0 +1,40 @@
1
+ import { n as normalizeConfig, w as withConnection } from './mysql-DX3ct8Wa.js';
2
+ import { j as json } from './index-Dq7YP_jO.js';
3
+ import 'mysql2/promise';
4
+ import './index-DBqjc0Yf.js';
5
+
6
+ //#region src/routes/api/mysql/query/+server.ts
7
+ function isResultSet(rows) {
8
+ return Array.isArray(rows);
9
+ }
10
+ var POST = async ({ request }) => {
11
+ try {
12
+ const body = await request.json();
13
+ const config = normalizeConfig(body.config);
14
+ const database = String(body.database ?? "").trim();
15
+ const sql = String(body.sql ?? "").trim();
16
+ if (!database) throw new Error("Selecciona una base de datos");
17
+ if (!sql) throw new Error("Escribe una sentencia SQL");
18
+ return json(await withConnection(config, database, async (connection) => {
19
+ const [rows, fields] = await connection.query(sql);
20
+ if (isResultSet(rows)) return {
21
+ type: "rows",
22
+ columns: fields.map((field) => field.name),
23
+ rows
24
+ };
25
+ const header = rows;
26
+ return {
27
+ type: "result",
28
+ affectedRows: header.affectedRows ?? 0,
29
+ changedRows: header.changedRows ?? 0,
30
+ insertId: header.insertId ?? 0,
31
+ warningStatus: header.warningStatus ?? 0
32
+ };
33
+ }));
34
+ } catch (error) {
35
+ return json({ message: error instanceof Error ? error.message : "No se pudo ejecutar SQL" }, { status: 400 });
36
+ }
37
+ };
38
+
39
+ export { POST };
40
+ //# sourceMappingURL=_server.ts-Cq27_8sR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-Cq27_8sR.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/mysql/query/_server.ts.js"],"sourcesContent":["import { o as withConnection, r as normalizeConfig } from \"../../../../../chunks/mysql.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/mysql/query/+server.ts\nfunction isResultSet(rows) {\n\treturn Array.isArray(rows);\n}\nvar POST = async ({ request }) => {\n\ttry {\n\t\tconst body = await request.json();\n\t\tconst config = normalizeConfig(body.config);\n\t\tconst database = String(body.database ?? \"\").trim();\n\t\tconst sql = String(body.sql ?? \"\").trim();\n\t\tif (!database) throw new Error(\"Selecciona una base de datos\");\n\t\tif (!sql) throw new Error(\"Escribe una sentencia SQL\");\n\t\treturn json(await withConnection(config, database, async (connection) => {\n\t\t\tconst [rows, fields] = await connection.query(sql);\n\t\t\tif (isResultSet(rows)) return {\n\t\t\t\ttype: \"rows\",\n\t\t\t\tcolumns: fields.map((field) => field.name),\n\t\t\t\trows\n\t\t\t};\n\t\t\tconst header = rows;\n\t\t\treturn {\n\t\t\t\ttype: \"result\",\n\t\t\t\taffectedRows: header.affectedRows ?? 0,\n\t\t\t\tchangedRows: header.changedRows ?? 0,\n\t\t\t\tinsertId: header.insertId ?? 0,\n\t\t\t\twarningStatus: header.warningStatus ?? 0\n\t\t\t};\n\t\t}));\n\t} catch (error) {\n\t\treturn json({ message: error instanceof Error ? error.message : \"No se pudo ejecutar SQL\" }, { status: 400 });\n\t}\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;AAEA;AACA,SAAS,WAAW,CAAC,IAAI,EAAE;AAC3B,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;AAC3B;AACG,IAAC,IAAI,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK;AAClC,CAAC,IAAI;AACL,EAAE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AACnC,EAAE,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;AAC7C,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;AACrD,EAAE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;AAC3C,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;AAChE,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC;AACxD,EAAE,OAAO,IAAI,CAAC,MAAM,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,UAAU,KAAK;AAC3E,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;AACrD,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,OAAO;AACjC,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC;AAC9C,IAAI;AACJ,IAAI;AACJ,GAAG,MAAM,MAAM,GAAG,IAAI;AACtB,GAAG,OAAO;AACV,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,CAAC;AAC1C,IAAI,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,CAAC;AACxC,IAAI,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC;AAClC,IAAI,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI;AAC3C,IAAI;AACJ,EAAE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE;AACjB,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,yBAAyB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC/G,CAAC;AACD;;;;"}
@@ -0,0 +1,26 @@
1
+ import { n as normalizeConfig, w as withConnection } from './mysql-DX3ct8Wa.js';
2
+ import { j as json } from './index-Dq7YP_jO.js';
3
+ import 'mysql2/promise';
4
+ import './index-DBqjc0Yf.js';
5
+
6
+ //#region src/routes/api/mysql/procedures/+server.ts
7
+ var POST = async ({ request }) => {
8
+ try {
9
+ const body = await request.json();
10
+ const config = normalizeConfig(body.config);
11
+ const database = String(body.database ?? "").trim();
12
+ if (!database) throw new Error("Selecciona una base de datos");
13
+ return json({ procedures: await withConnection(config, null, async (connection) => {
14
+ const [rows] = await connection.execute(`SELECT ROUTINE_NAME
15
+ FROM information_schema.ROUTINES
16
+ WHERE ROUTINE_SCHEMA = ? AND ROUTINE_TYPE = 'PROCEDURE'
17
+ ORDER BY ROUTINE_NAME`, [database]);
18
+ return rows.map((row) => row.ROUTINE_NAME);
19
+ }) });
20
+ } catch (error) {
21
+ return json({ message: error instanceof Error ? error.message : "No se pudieron cargar los procedimientos" }, { status: 400 });
22
+ }
23
+ };
24
+
25
+ export { POST };
26
+ //# sourceMappingURL=_server.ts-DGK-tW9e.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-DGK-tW9e.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/mysql/procedures/_server.ts.js"],"sourcesContent":["import { o as withConnection, r as normalizeConfig } from \"../../../../../chunks/mysql.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/mysql/procedures/+server.ts\nvar POST = async ({ request }) => {\n\ttry {\n\t\tconst body = await request.json();\n\t\tconst config = normalizeConfig(body.config);\n\t\tconst database = String(body.database ?? \"\").trim();\n\t\tif (!database) throw new Error(\"Selecciona una base de datos\");\n\t\treturn json({ procedures: await withConnection(config, null, async (connection) => {\n\t\t\tconst [rows] = await connection.execute(`SELECT ROUTINE_NAME\n\t\t\t\t FROM information_schema.ROUTINES\n\t\t\t\t WHERE ROUTINE_SCHEMA = ? AND ROUTINE_TYPE = 'PROCEDURE'\n\t\t\t\t ORDER BY ROUTINE_NAME`, [database]);\n\t\t\treturn rows.map((row) => row.ROUTINE_NAME);\n\t\t}) });\n\t} catch (error) {\n\t\treturn json({ message: error instanceof Error ? error.message : \"No se pudieron cargar los procedimientos\" }, { status: 400 });\n\t}\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;AAEA;AACG,IAAC,IAAI,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK;AAClC,CAAC,IAAI;AACL,EAAE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AACnC,EAAE,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;AAC7C,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;AACrD,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;AAChE,EAAE,OAAO,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,UAAU,KAAK;AACrF,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;AAC5C;AACA;AACA,0BAA0B,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AACxC,GAAG,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,YAAY,CAAC;AAC7C,EAAE,CAAC,CAAC,EAAE,CAAC;AACP,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE;AACjB,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,0CAA0C,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAChI,CAAC;AACD;;;;"}