tina4-nodejs 3.13.98 → 3.13.100

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 (97) hide show
  1. package/CLAUDE.md +24 -25
  2. package/package.json +1 -2
  3. package/packages/cli/dist/bin.js +20698 -18983
  4. package/packages/cli/src/bin.ts +28 -71
  5. package/packages/cli/src/commands/migrate.ts +36 -75
  6. package/packages/cli/src/commands/migrateRollback.ts +10 -1
  7. package/packages/cli/src/commands/test.ts +92 -21
  8. package/packages/core/dist/index.js +20561 -18828
  9. package/packages/core/public/js/tina4-dev-admin.min.js +23 -19
  10. package/packages/core/src/ai.ts +38 -13
  11. package/packages/core/src/api.ts +13 -5
  12. package/packages/core/src/background.ts +9 -3
  13. package/packages/core/src/devAdmin.ts +135 -20
  14. package/packages/core/src/dispatchPipeline.ts +185 -1
  15. package/packages/core/src/docs.ts +33 -5
  16. package/packages/core/src/env.ts +1 -1
  17. package/packages/core/src/errorOverlay.ts +39 -48
  18. package/packages/core/src/fakeData.ts +15 -0
  19. package/packages/core/src/index.ts +17 -6
  20. package/packages/core/src/logger.ts +892 -572
  21. package/packages/core/src/mcp.ts +9 -1
  22. package/packages/core/src/messenger.ts +31 -4
  23. package/packages/core/src/middleware.ts +169 -43
  24. package/packages/core/src/portTakeover.ts +232 -0
  25. package/packages/core/src/request.ts +57 -8
  26. package/packages/core/src/response.ts +67 -0
  27. package/packages/core/src/router.ts +35 -7
  28. package/packages/core/src/server.ts +450 -190
  29. package/packages/core/src/static.ts +81 -12
  30. package/packages/core/src/testClient.ts +126 -137
  31. package/packages/core/src/testing.ts +16 -12
  32. package/packages/core/src/types.ts +21 -9
  33. package/packages/core/src/version.ts +66 -0
  34. package/packages/core/src/websocket.ts +2 -2
  35. package/packages/core/src/websocketBackplane.ts +2 -2
  36. package/packages/frond/dist/index.js +149 -49
  37. package/packages/frond/src/engine.ts +234 -52
  38. package/packages/orm/dist/index.js +10941 -9231
  39. package/packages/orm/src/adapters/firebird.ts +200 -27
  40. package/packages/orm/src/adapters/mongodb.ts +160 -10
  41. package/packages/orm/src/adapters/mssql.ts +38 -11
  42. package/packages/orm/src/adapters/mysql.ts +24 -1
  43. package/packages/orm/src/adapters/odbc.ts +127 -29
  44. package/packages/orm/src/adapters/postgres.ts +18 -0
  45. package/packages/orm/src/adapters/sqlite.ts +93 -14
  46. package/packages/orm/src/autoCrud.ts +72 -8
  47. package/packages/orm/src/baseModel.ts +323 -71
  48. package/packages/orm/src/cachedDatabase.ts +48 -1
  49. package/packages/orm/src/database.ts +162 -59
  50. package/packages/orm/src/fakeData.ts +6 -2
  51. package/packages/orm/src/index.ts +4 -1
  52. package/packages/orm/src/migration.ts +95 -52
  53. package/packages/orm/src/query.ts +16 -4
  54. package/packages/orm/src/seeder.ts +43 -25
  55. package/packages/orm/src/sqlTranslator.ts +104 -19
  56. package/packages/orm/src/types.ts +97 -21
  57. package/packages/orm/src/validation.ts +5 -1
  58. package/packages/swagger/dist/index.js +3 -2
  59. package/packages/swagger/src/generator.ts +19 -4
  60. package/packages/swagger/src/ui.ts +6 -4
  61. package/types/cli/src/bin.d.ts +0 -22
  62. package/types/core/src/ai.d.ts +29 -0
  63. package/types/core/src/api.d.ts +11 -4
  64. package/types/core/src/background.d.ts +5 -2
  65. package/types/core/src/devAdmin.d.ts +35 -0
  66. package/types/core/src/dispatchPipeline.d.ts +41 -1
  67. package/types/core/src/errorOverlay.d.ts +13 -13
  68. package/types/core/src/index.d.ts +9 -6
  69. package/types/core/src/logger.d.ts +111 -185
  70. package/types/core/src/middleware.d.ts +40 -5
  71. package/types/core/src/portTakeover.d.ts +50 -0
  72. package/types/core/src/request.d.ts +15 -0
  73. package/types/core/src/response.d.ts +29 -0
  74. package/types/core/src/server.d.ts +92 -0
  75. package/types/core/src/testClient.d.ts +29 -3
  76. package/types/core/src/testing.d.ts +16 -12
  77. package/types/core/src/types.d.ts +21 -9
  78. package/types/core/src/version.d.ts +11 -0
  79. package/types/core/src/websocketBackplane.d.ts +1 -1
  80. package/types/frond/src/engine.d.ts +60 -8
  81. package/types/orm/src/adapters/firebird.d.ts +61 -2
  82. package/types/orm/src/adapters/mongodb.d.ts +20 -0
  83. package/types/orm/src/adapters/mssql.d.ts +11 -0
  84. package/types/orm/src/adapters/mysql.d.ts +11 -0
  85. package/types/orm/src/adapters/odbc.d.ts +35 -4
  86. package/types/orm/src/adapters/postgres.d.ts +11 -0
  87. package/types/orm/src/adapters/sqlite.d.ts +23 -4
  88. package/types/orm/src/baseModel.d.ts +45 -25
  89. package/types/orm/src/cachedDatabase.d.ts +27 -1
  90. package/types/orm/src/database.d.ts +56 -6
  91. package/types/orm/src/index.d.ts +3 -2
  92. package/types/orm/src/migration.d.ts +23 -5
  93. package/types/orm/src/query.d.ts +3 -0
  94. package/types/orm/src/seeder.d.ts +15 -2
  95. package/types/orm/src/sqlTranslator.d.ts +17 -4
  96. package/types/orm/src/types.d.ts +75 -16
  97. package/packages/core/src/errorOverlay.test.ts +0 -122
@@ -1,122 +0,0 @@
1
- /**
2
- * Tests for errorOverlay module.
3
- */
4
-
5
- import { renderErrorOverlay, renderProductionError, isDebugMode } from "./errorOverlay.js";
6
-
7
- let passed = 0;
8
- let failed = 0;
9
-
10
- function assert(condition: boolean, message: string): void {
11
- if (condition) {
12
- passed++;
13
- } else {
14
- failed++;
15
- console.error(` FAIL: ${message}`);
16
- }
17
- }
18
-
19
- function assertIncludes(html: string, needle: string, label: string): void {
20
- assert(html.includes(needle), `${label}: expected HTML to include "${needle}"`);
21
- }
22
-
23
- function assertNotIncludes(html: string, needle: string, label: string): void {
24
- assert(!html.includes(needle), `${label}: expected HTML NOT to include "${needle}"`);
25
- }
26
-
27
- function makeError(): Error {
28
- try {
29
- throw new TypeError("something broke");
30
- } catch (e) {
31
- return e as Error;
32
- }
33
- }
34
-
35
- // ── renderErrorOverlay ──
36
-
37
- const err = makeError();
38
- const html = renderErrorOverlay(err);
39
-
40
- assert(typeof html === "string", "returns a string");
41
- assert(html.startsWith("<!DOCTYPE html>"), "starts with DOCTYPE");
42
- assertIncludes(html, "TypeError", "contains exception type");
43
- assertIncludes(html, "something broke", "contains exception message");
44
- assertIncludes(html, "errorOverlay.test", "contains file path");
45
- assertIncludes(html, "&#x25b6;", "contains error line marker");
46
- assertIncludes(html, "Stack Trace", "contains stack trace section");
47
- assertIncludes(html, "<details", "uses details element");
48
- assertIncludes(html, "open", "stack trace open by default");
49
- assertIncludes(html, "Environment", "contains environment section");
50
- assertIncludes(html, "Tina4 Node.js", "contains framework name");
51
- assertIncludes(html, "TINA4_DEBUG", "contains debug reference");
52
-
53
- // With request
54
- const htmlWithReq = renderErrorOverlay(err, {
55
- method: "GET",
56
- url: "/api/users",
57
- headers: { host: "localhost" },
58
- });
59
- assertIncludes(htmlWithReq, "GET", "request method shown");
60
- assertIncludes(htmlWithReq, "/api/users", "request URL shown");
61
- assertIncludes(htmlWithReq, "localhost", "request header shown");
62
- assertIncludes(htmlWithReq, "Request Details", "request section present");
63
-
64
- // Without request
65
- assertNotIncludes(html, "Request Details", "no request section when no request");
66
-
67
- // XSS escaping
68
- const xssErr = new Error('<script>alert("xss")</script>');
69
- const xssHtml = renderErrorOverlay(xssErr);
70
- assertNotIncludes(xssHtml, "<script>", "escapes script tags");
71
- assertIncludes(xssHtml, "&lt;script&gt;", "HTML-encodes script tags");
72
-
73
- // ── renderProductionError ──
74
-
75
- const prodHtml = renderProductionError();
76
- assert(prodHtml.startsWith("<!DOCTYPE html>"), "production: starts with DOCTYPE");
77
- assertIncludes(prodHtml, "500", "production: contains 500");
78
- assertIncludes(prodHtml, "Internal Server Error", "production: default message");
79
- assertNotIncludes(prodHtml, "Stack Trace", "production: no stack trace");
80
-
81
- const prod404 = renderProductionError(404, "Not Found");
82
- assertIncludes(prod404, "404", "production 404: contains code");
83
- assertIncludes(prod404, "Not Found", "production 404: contains message");
84
-
85
- // ── isDebugMode ──
86
-
87
- const origDebug = process.env.TINA4_DEBUG;
88
-
89
- process.env.TINA4_DEBUG = "true";
90
- assert(isDebugMode() === true, "isDebugMode: true => true");
91
-
92
- process.env.TINA4_DEBUG = "false";
93
- assert(isDebugMode() === false, "isDebugMode: false => false");
94
-
95
- process.env.TINA4_DEBUG = "TRUE";
96
- assert(isDebugMode() === true, "isDebugMode: TRUE (uppercase) => true (case insensitive)");
97
-
98
- process.env.TINA4_DEBUG = "1";
99
- assert(isDebugMode() === true, "isDebugMode: 1 => true");
100
-
101
- process.env.TINA4_DEBUG = "yes";
102
- assert(isDebugMode() === true, "isDebugMode: yes => true");
103
-
104
- process.env.TINA4_DEBUG = "on";
105
- assert(isDebugMode() === true, "isDebugMode: on => true");
106
-
107
- process.env.TINA4_DEBUG = "0";
108
- assert(isDebugMode() === false, "isDebugMode: 0 => false");
109
-
110
- delete process.env.TINA4_DEBUG;
111
- assert(isDebugMode() === false, "isDebugMode: unset => false");
112
-
113
- // Restore
114
- if (origDebug !== undefined) {
115
- process.env.TINA4_DEBUG = origDebug;
116
- }
117
-
118
- // ── Summary ──
119
- console.log(`\nerrorOverlay tests: ${passed} passed, ${failed} failed`);
120
- if (failed > 0) {
121
- process.exit(1);
122
- }