tina4ruby 3.11.13 → 3.11.15

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 (132) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +80 -80
  3. data/LICENSE.txt +21 -21
  4. data/README.md +137 -137
  5. data/exe/tina4ruby +5 -5
  6. data/lib/tina4/ai.rb +696 -696
  7. data/lib/tina4/api.rb +189 -189
  8. data/lib/tina4/auth.rb +305 -305
  9. data/lib/tina4/auto_crud.rb +244 -244
  10. data/lib/tina4/cache.rb +154 -154
  11. data/lib/tina4/cli.rb +1449 -1449
  12. data/lib/tina4/constants.rb +46 -46
  13. data/lib/tina4/container.rb +74 -74
  14. data/lib/tina4/cors.rb +74 -74
  15. data/lib/tina4/crud.rb +692 -692
  16. data/lib/tina4/database/sqlite3_adapter.rb +165 -165
  17. data/lib/tina4/database.rb +625 -625
  18. data/lib/tina4/database_result.rb +208 -208
  19. data/lib/tina4/debug.rb +8 -8
  20. data/lib/tina4/dev.rb +14 -14
  21. data/lib/tina4/dev_admin.rb +935 -935
  22. data/lib/tina4/dev_mailbox.rb +191 -191
  23. data/lib/tina4/drivers/firebird_driver.rb +124 -110
  24. data/lib/tina4/drivers/mongodb_driver.rb +561 -561
  25. data/lib/tina4/drivers/mssql_driver.rb +112 -112
  26. data/lib/tina4/drivers/mysql_driver.rb +90 -90
  27. data/lib/tina4/drivers/odbc_driver.rb +191 -191
  28. data/lib/tina4/drivers/postgres_driver.rb +116 -106
  29. data/lib/tina4/drivers/sqlite_driver.rb +122 -122
  30. data/lib/tina4/env.rb +95 -95
  31. data/lib/tina4/error_overlay.rb +252 -252
  32. data/lib/tina4/events.rb +109 -109
  33. data/lib/tina4/field_types.rb +154 -154
  34. data/lib/tina4/frond.rb +2025 -2025
  35. data/lib/tina4/gallery/auth/meta.json +1 -1
  36. data/lib/tina4/gallery/auth/src/routes/api/gallery_auth.rb +114 -114
  37. data/lib/tina4/gallery/database/meta.json +1 -1
  38. data/lib/tina4/gallery/database/src/routes/api/gallery_db.rb +43 -43
  39. data/lib/tina4/gallery/error-overlay/meta.json +1 -1
  40. data/lib/tina4/gallery/error-overlay/src/routes/api/gallery_crash.rb +17 -17
  41. data/lib/tina4/gallery/orm/meta.json +1 -1
  42. data/lib/tina4/gallery/orm/src/routes/api/gallery_products.rb +16 -16
  43. data/lib/tina4/gallery/queue/meta.json +1 -1
  44. data/lib/tina4/gallery/queue/src/routes/api/gallery_queue.rb +325 -325
  45. data/lib/tina4/gallery/rest-api/meta.json +1 -1
  46. data/lib/tina4/gallery/rest-api/src/routes/api/gallery_hello.rb +14 -14
  47. data/lib/tina4/gallery/templates/meta.json +1 -1
  48. data/lib/tina4/gallery/templates/src/routes/gallery_page.rb +12 -12
  49. data/lib/tina4/gallery/templates/src/templates/gallery_page.twig +257 -257
  50. data/lib/tina4/graphql.rb +966 -966
  51. data/lib/tina4/health.rb +39 -39
  52. data/lib/tina4/html_element.rb +170 -170
  53. data/lib/tina4/job.rb +80 -80
  54. data/lib/tina4/localization.rb +168 -168
  55. data/lib/tina4/log.rb +203 -203
  56. data/lib/tina4/mcp.rb +696 -696
  57. data/lib/tina4/messenger.rb +587 -587
  58. data/lib/tina4/metrics.rb +793 -793
  59. data/lib/tina4/middleware.rb +445 -445
  60. data/lib/tina4/migration.rb +451 -451
  61. data/lib/tina4/orm.rb +790 -790
  62. data/lib/tina4/public/css/tina4.css +2463 -2463
  63. data/lib/tina4/public/css/tina4.min.css +1 -1
  64. data/lib/tina4/public/images/logo.svg +5 -5
  65. data/lib/tina4/public/js/frond.min.js +2 -2
  66. data/lib/tina4/public/js/tina4-dev-admin.js +565 -565
  67. data/lib/tina4/public/js/tina4-dev-admin.min.js +480 -480
  68. data/lib/tina4/public/js/tina4.min.js +92 -92
  69. data/lib/tina4/public/js/tina4js.min.js +48 -48
  70. data/lib/tina4/public/swagger/index.html +90 -90
  71. data/lib/tina4/public/swagger/oauth2-redirect.html +63 -63
  72. data/lib/tina4/query_builder.rb +380 -380
  73. data/lib/tina4/queue.rb +366 -366
  74. data/lib/tina4/queue_backends/kafka_backend.rb +80 -80
  75. data/lib/tina4/queue_backends/lite_backend.rb +298 -298
  76. data/lib/tina4/queue_backends/mongo_backend.rb +126 -126
  77. data/lib/tina4/queue_backends/rabbitmq_backend.rb +73 -73
  78. data/lib/tina4/rack_app.rb +817 -817
  79. data/lib/tina4/rate_limiter.rb +130 -130
  80. data/lib/tina4/request.rb +268 -255
  81. data/lib/tina4/response.rb +346 -346
  82. data/lib/tina4/response_cache.rb +551 -551
  83. data/lib/tina4/router.rb +406 -406
  84. data/lib/tina4/scss/tina4css/_alerts.scss +34 -34
  85. data/lib/tina4/scss/tina4css/_badges.scss +22 -22
  86. data/lib/tina4/scss/tina4css/_buttons.scss +69 -69
  87. data/lib/tina4/scss/tina4css/_cards.scss +49 -49
  88. data/lib/tina4/scss/tina4css/_forms.scss +156 -156
  89. data/lib/tina4/scss/tina4css/_grid.scss +81 -81
  90. data/lib/tina4/scss/tina4css/_modals.scss +84 -84
  91. data/lib/tina4/scss/tina4css/_nav.scss +149 -149
  92. data/lib/tina4/scss/tina4css/_reset.scss +94 -94
  93. data/lib/tina4/scss/tina4css/_tables.scss +54 -54
  94. data/lib/tina4/scss/tina4css/_typography.scss +55 -55
  95. data/lib/tina4/scss/tina4css/_utilities.scss +197 -197
  96. data/lib/tina4/scss/tina4css/_variables.scss +117 -117
  97. data/lib/tina4/scss/tina4css/base.scss +1 -1
  98. data/lib/tina4/scss/tina4css/colors.scss +48 -48
  99. data/lib/tina4/scss/tina4css/tina4.scss +17 -17
  100. data/lib/tina4/scss_compiler.rb +178 -178
  101. data/lib/tina4/seeder.rb +567 -567
  102. data/lib/tina4/service_runner.rb +303 -303
  103. data/lib/tina4/session.rb +297 -297
  104. data/lib/tina4/session_handlers/database_handler.rb +72 -72
  105. data/lib/tina4/session_handlers/file_handler.rb +67 -67
  106. data/lib/tina4/session_handlers/mongo_handler.rb +49 -49
  107. data/lib/tina4/session_handlers/redis_handler.rb +43 -43
  108. data/lib/tina4/session_handlers/valkey_handler.rb +43 -43
  109. data/lib/tina4/shutdown.rb +84 -84
  110. data/lib/tina4/sql_translation.rb +158 -158
  111. data/lib/tina4/swagger.rb +124 -124
  112. data/lib/tina4/template.rb +894 -894
  113. data/lib/tina4/templates/base.twig +26 -26
  114. data/lib/tina4/templates/errors/302.twig +14 -14
  115. data/lib/tina4/templates/errors/401.twig +9 -9
  116. data/lib/tina4/templates/errors/403.twig +29 -29
  117. data/lib/tina4/templates/errors/404.twig +29 -29
  118. data/lib/tina4/templates/errors/500.twig +38 -38
  119. data/lib/tina4/templates/errors/502.twig +9 -9
  120. data/lib/tina4/templates/errors/503.twig +12 -12
  121. data/lib/tina4/templates/errors/base.twig +37 -37
  122. data/lib/tina4/test_client.rb +159 -159
  123. data/lib/tina4/testing.rb +340 -340
  124. data/lib/tina4/validator.rb +174 -174
  125. data/lib/tina4/version.rb +1 -1
  126. data/lib/tina4/webserver.rb +312 -312
  127. data/lib/tina4/websocket.rb +343 -343
  128. data/lib/tina4/websocket_backplane.rb +190 -190
  129. data/lib/tina4/wsdl.rb +564 -564
  130. data/lib/tina4.rb +458 -458
  131. data/lib/tina4ruby.rb +4 -4
  132. metadata +3 -3
@@ -1,94 +1,94 @@
1
- // Tina4 CSS Framework - Modern Reset
2
- // ------------------------------------
3
-
4
- *,
5
- *::before,
6
- *::after {
7
- box-sizing: border-box;
8
- }
9
-
10
- html {
11
- line-height: $line-height-base;
12
- -webkit-text-size-adjust: 100%;
13
- -moz-tab-size: 4;
14
- tab-size: 4;
15
- scroll-behavior: smooth;
16
- }
17
-
18
- body {
19
- margin: 0;
20
- font-family: $font-family-base;
21
- font-size: $font-size-base;
22
- font-weight: $font-weight-normal;
23
- line-height: $line-height-base;
24
- color: $body-color;
25
- background-color: $body-bg;
26
- -webkit-font-smoothing: antialiased;
27
- -moz-osx-font-smoothing: grayscale;
28
- }
29
-
30
- h1, h2, h3, h4, h5, h6 {
31
- margin-top: 0;
32
- margin-bottom: 0.5rem;
33
- font-weight: 500;
34
- line-height: $line-height-sm;
35
- }
36
-
37
- p {
38
- margin-top: 0;
39
- margin-bottom: 1rem;
40
- }
41
-
42
- ol, ul {
43
- padding-left: 2rem;
44
- margin-top: 0;
45
- margin-bottom: 1rem;
46
- }
47
-
48
- a {
49
- color: $link-color;
50
- text-decoration: none;
51
- &:hover {
52
- color: $link-hover-color;
53
- text-decoration: underline;
54
- }
55
- }
56
-
57
- img, svg {
58
- max-width: 100%;
59
- height: auto;
60
- vertical-align: middle;
61
- }
62
-
63
- table {
64
- border-collapse: collapse;
65
- caption-side: bottom;
66
- }
67
-
68
- button, input, optgroup, select, textarea {
69
- margin: 0;
70
- font-family: inherit;
71
- font-size: inherit;
72
- line-height: inherit;
73
- }
74
-
75
- button, select {
76
- text-transform: none;
77
- }
78
-
79
- button, [type="button"], [type="reset"], [type="submit"] {
80
- -webkit-appearance: button;
81
- cursor: pointer;
82
- }
83
-
84
- hr {
85
- margin: 1rem 0;
86
- color: inherit;
87
- border: 0;
88
- border-top: 1px solid rgba($black, 0.1);
89
- opacity: 0.25;
90
- }
91
-
92
- pre, code, kbd, samp { font-family: $font-family-mono; font-size: 1em; }
93
- pre { margin-top: 0; margin-bottom: 1rem; overflow: auto; }
94
- [hidden] { display: none !important; }
1
+ // Tina4 CSS Framework - Modern Reset
2
+ // ------------------------------------
3
+
4
+ *,
5
+ *::before,
6
+ *::after {
7
+ box-sizing: border-box;
8
+ }
9
+
10
+ html {
11
+ line-height: $line-height-base;
12
+ -webkit-text-size-adjust: 100%;
13
+ -moz-tab-size: 4;
14
+ tab-size: 4;
15
+ scroll-behavior: smooth;
16
+ }
17
+
18
+ body {
19
+ margin: 0;
20
+ font-family: $font-family-base;
21
+ font-size: $font-size-base;
22
+ font-weight: $font-weight-normal;
23
+ line-height: $line-height-base;
24
+ color: $body-color;
25
+ background-color: $body-bg;
26
+ -webkit-font-smoothing: antialiased;
27
+ -moz-osx-font-smoothing: grayscale;
28
+ }
29
+
30
+ h1, h2, h3, h4, h5, h6 {
31
+ margin-top: 0;
32
+ margin-bottom: 0.5rem;
33
+ font-weight: 500;
34
+ line-height: $line-height-sm;
35
+ }
36
+
37
+ p {
38
+ margin-top: 0;
39
+ margin-bottom: 1rem;
40
+ }
41
+
42
+ ol, ul {
43
+ padding-left: 2rem;
44
+ margin-top: 0;
45
+ margin-bottom: 1rem;
46
+ }
47
+
48
+ a {
49
+ color: $link-color;
50
+ text-decoration: none;
51
+ &:hover {
52
+ color: $link-hover-color;
53
+ text-decoration: underline;
54
+ }
55
+ }
56
+
57
+ img, svg {
58
+ max-width: 100%;
59
+ height: auto;
60
+ vertical-align: middle;
61
+ }
62
+
63
+ table {
64
+ border-collapse: collapse;
65
+ caption-side: bottom;
66
+ }
67
+
68
+ button, input, optgroup, select, textarea {
69
+ margin: 0;
70
+ font-family: inherit;
71
+ font-size: inherit;
72
+ line-height: inherit;
73
+ }
74
+
75
+ button, select {
76
+ text-transform: none;
77
+ }
78
+
79
+ button, [type="button"], [type="reset"], [type="submit"] {
80
+ -webkit-appearance: button;
81
+ cursor: pointer;
82
+ }
83
+
84
+ hr {
85
+ margin: 1rem 0;
86
+ color: inherit;
87
+ border: 0;
88
+ border-top: 1px solid rgba($black, 0.1);
89
+ opacity: 0.25;
90
+ }
91
+
92
+ pre, code, kbd, samp { font-family: $font-family-mono; font-size: 1em; }
93
+ pre { margin-top: 0; margin-bottom: 1rem; overflow: auto; }
94
+ [hidden] { display: none !important; }
@@ -1,54 +1,54 @@
1
- // Tina4 CSS Framework - Tables
2
- // -------------------------------
3
-
4
- .table {
5
- width: 100%;
6
- margin-bottom: 1rem;
7
- vertical-align: top;
8
- border-color: rgba($black, 0.1);
9
-
10
- > :not(caption) > * > * {
11
- padding: 0.5rem;
12
- border-bottom-width: 1px;
13
- border-bottom-style: solid;
14
- border-bottom-color: inherit;
15
- }
16
-
17
- > thead {
18
- vertical-align: bottom;
19
- border-bottom: 2px solid currentColor;
20
- }
21
-
22
- > tbody > tr:last-child > * {
23
- border-bottom-color: transparent;
24
- }
25
- }
26
-
27
- .table-sm {
28
- > :not(caption) > * > * {
29
- padding: 0.25rem;
30
- }
31
- }
32
-
33
- .table-bordered {
34
- border: 1px solid rgba($black, 0.1);
35
- > :not(caption) > * > * {
36
- border-width: 1px;
37
- border-style: solid;
38
- border-color: inherit;
39
- }
40
- }
41
-
42
- .table-striped > tbody > tr:nth-of-type(odd) > * {
43
- background-color: rgba($black, 0.02);
44
- }
45
-
46
- .table-hover > tbody > tr:hover > * {
47
- background-color: rgba($black, 0.04);
48
- }
49
-
50
- .table-responsive {
51
- overflow-x: auto;
52
- -webkit-overflow-scrolling: touch;
53
- }
54
-
1
+ // Tina4 CSS Framework - Tables
2
+ // -------------------------------
3
+
4
+ .table {
5
+ width: 100%;
6
+ margin-bottom: 1rem;
7
+ vertical-align: top;
8
+ border-color: rgba($black, 0.1);
9
+
10
+ > :not(caption) > * > * {
11
+ padding: 0.5rem;
12
+ border-bottom-width: 1px;
13
+ border-bottom-style: solid;
14
+ border-bottom-color: inherit;
15
+ }
16
+
17
+ > thead {
18
+ vertical-align: bottom;
19
+ border-bottom: 2px solid currentColor;
20
+ }
21
+
22
+ > tbody > tr:last-child > * {
23
+ border-bottom-color: transparent;
24
+ }
25
+ }
26
+
27
+ .table-sm {
28
+ > :not(caption) > * > * {
29
+ padding: 0.25rem;
30
+ }
31
+ }
32
+
33
+ .table-bordered {
34
+ border: 1px solid rgba($black, 0.1);
35
+ > :not(caption) > * > * {
36
+ border-width: 1px;
37
+ border-style: solid;
38
+ border-color: inherit;
39
+ }
40
+ }
41
+
42
+ .table-striped > tbody > tr:nth-of-type(odd) > * {
43
+ background-color: rgba($black, 0.02);
44
+ }
45
+
46
+ .table-hover > tbody > tr:hover > * {
47
+ background-color: rgba($black, 0.04);
48
+ }
49
+
50
+ .table-responsive {
51
+ overflow-x: auto;
52
+ -webkit-overflow-scrolling: touch;
53
+ }
54
+
@@ -1,55 +1,55 @@
1
- // Tina4 CSS Framework - Typography
2
- // ------------------------------------
3
-
4
- h1 { font-size: $font-size-4xl; }
5
- h2 { font-size: $font-size-3xl; }
6
- h3 { font-size: $font-size-2xl; }
7
- h4 { font-size: $font-size-xl; }
8
- h5 { font-size: $font-size-lg; }
9
- h6 { font-size: $font-size-base; }
10
-
11
- small, .small {
12
- font-size: 0.875em;
13
- }
14
-
15
- mark, .mark {
16
- padding: 0.2em;
17
- background-color: rgba($warning, 0.3);
18
- }
19
-
20
- blockquote {
21
- margin: 0 0 1rem;
22
- padding: 0.5rem 1rem;
23
- border-left: 0.25rem solid rgba($black, 0.1);
24
- font-size: $font-size-lg;
25
- }
26
-
27
- code {
28
- font-size: 0.875em;
29
- color: $danger;
30
- word-wrap: break-word;
31
- }
32
-
33
- pre {
34
- display: block;
35
- padding: 1rem;
36
- font-size: 0.875em;
37
- color: $dark;
38
- background-color: $light;
39
- border-radius: $border-radius;
40
- }
41
-
42
- .list-unstyled {
43
- padding-left: 0;
44
- list-style: none;
45
- }
46
-
47
- .list-inline {
48
- padding-left: 0;
49
- list-style: none;
50
- }
51
-
52
- .list-inline-item {
53
- display: inline-block;
54
- &:not(:last-child) { margin-right: 0.5rem; }
55
- }
1
+ // Tina4 CSS Framework - Typography
2
+ // ------------------------------------
3
+
4
+ h1 { font-size: $font-size-4xl; }
5
+ h2 { font-size: $font-size-3xl; }
6
+ h3 { font-size: $font-size-2xl; }
7
+ h4 { font-size: $font-size-xl; }
8
+ h5 { font-size: $font-size-lg; }
9
+ h6 { font-size: $font-size-base; }
10
+
11
+ small, .small {
12
+ font-size: 0.875em;
13
+ }
14
+
15
+ mark, .mark {
16
+ padding: 0.2em;
17
+ background-color: rgba($warning, 0.3);
18
+ }
19
+
20
+ blockquote {
21
+ margin: 0 0 1rem;
22
+ padding: 0.5rem 1rem;
23
+ border-left: 0.25rem solid rgba($black, 0.1);
24
+ font-size: $font-size-lg;
25
+ }
26
+
27
+ code {
28
+ font-size: 0.875em;
29
+ color: $danger;
30
+ word-wrap: break-word;
31
+ }
32
+
33
+ pre {
34
+ display: block;
35
+ padding: 1rem;
36
+ font-size: 0.875em;
37
+ color: $dark;
38
+ background-color: $light;
39
+ border-radius: $border-radius;
40
+ }
41
+
42
+ .list-unstyled {
43
+ padding-left: 0;
44
+ list-style: none;
45
+ }
46
+
47
+ .list-inline {
48
+ padding-left: 0;
49
+ list-style: none;
50
+ }
51
+
52
+ .list-inline-item {
53
+ display: inline-block;
54
+ &:not(:last-child) { margin-right: 0.5rem; }
55
+ }