@onetype/framework 2.0.41 → 2.0.43

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 (354) hide show
  1. package/addons/ai/addon.js +78 -0
  2. package/addons/ai/addons/agents/item/functions/describe.js +28 -0
  3. package/addons/ai/addons/agents/item/functions/execute.js +41 -0
  4. package/addons/ai/addons/agents/item/functions/messages.js +38 -0
  5. package/addons/ai/addons/agents/item/functions/run.js +49 -0
  6. package/addons/ai/addons/agents/item/functions/schema.js +45 -0
  7. package/addons/ai/addons/agents/load.js +9 -0
  8. package/addons/ai/addons/orchestrators/item/functions/agents/execute.js +14 -0
  9. package/addons/ai/addons/orchestrators/item/functions/agents/steps.js +23 -0
  10. package/addons/ai/addons/orchestrators/item/functions/modes/action.js +131 -0
  11. package/addons/ai/addons/orchestrators/item/functions/run.js +28 -0
  12. package/addons/ai/addons/orchestrators/item/functions/utils/emit.js +11 -0
  13. package/addons/ai/addons/orchestrators/item/functions/utils/history.js +8 -0
  14. package/addons/ai/addons/orchestrators/item/functions/utils/state.js +29 -0
  15. package/addons/ai/addons/orchestrators/load.js +15 -0
  16. package/addons/ai/addons/pipelines/functions/execute.js +56 -0
  17. package/addons/ai/addons/pipelines/functions/run.js +72 -0
  18. package/addons/ai/addons/pipelines/load.js +6 -0
  19. package/addons/ai/addons/providers/functions/default.js +8 -0
  20. package/addons/ai/addons/providers/item/functions/request.js +108 -0
  21. package/addons/ai/addons/providers/items/nue.js +69 -0
  22. package/addons/ai/addons/providers/items/ollama.js +79 -0
  23. package/addons/ai/addons/providers/load.js +8 -0
  24. package/addons/ai/items/agents/steps.js +159 -0
  25. package/addons/ai/items/agents/summary.js +29 -0
  26. package/addons/ai/items/orchestrators/general.js +7 -0
  27. package/addons/ai/load.js +13 -0
  28. package/addons/ai/test/agents.js +149 -0
  29. package/addons/ai/test/index.js +63 -0
  30. package/addons/core/assets/back/functions/utils/transform.js +21 -23
  31. package/addons/core/assets/back/items/html/css.js +2 -2
  32. package/addons/core/assets/back/items/html/js.js +2 -2
  33. package/addons/core/clients/back/http/item/functions/gRPC/create.js +3 -3
  34. package/addons/core/clients/back/http/item/functions/http/create.js +3 -3
  35. package/addons/core/commands/back/functions/grpc/client.js +3 -3
  36. package/addons/core/commands/back/functions/grpc/server.js +2 -2
  37. package/addons/core/commands/core/addon.js +4 -1
  38. package/addons/core/commands/core/functions/run.js +1 -1
  39. package/addons/core/commands/core/item/functions/run.js +1 -1
  40. package/addons/core/commands/core/load.js +27 -9
  41. package/addons/core/database/back/events/addon.add.js +1 -1
  42. package/addons/core/database/back/events/middleware/addon.items.find.js +2 -2
  43. package/addons/core/database/back/events/middleware/item.crud.create.js +2 -2
  44. package/addons/core/database/back/events/middleware/item.crud.delete.js +2 -2
  45. package/addons/core/database/back/events/middleware/item.crud.update.js +2 -2
  46. package/addons/core/database/back/item/functions/create.js +4 -3
  47. package/addons/core/database/back/item/functions/delete.js +1 -1
  48. package/addons/core/database/back/item/functions/find.js +1 -1
  49. package/addons/core/database/back/item/functions/update.js +3 -3
  50. package/addons/core/database/front/events/addon.add.js +1 -1
  51. package/addons/core/servers/back/grpc/item/functions/start.js +1 -1
  52. package/addons/core/servers/back/http/item/functions/start.js +6 -6
  53. package/addons/float/overlays/css/overlay.css +35 -0
  54. package/addons/float/overlays/js/addon.js +18 -0
  55. package/addons/float/overlays/js/events/click.js +27 -0
  56. package/addons/float/overlays/js/events/escape.js +18 -0
  57. package/addons/float/overlays/js/functions/flip.js +51 -0
  58. package/addons/float/overlays/js/functions/index.js +17 -0
  59. package/addons/float/overlays/js/functions/position.js +62 -0
  60. package/addons/float/overlays/js/functions/reposition.js +29 -0
  61. package/addons/float/overlays/js/item/catch/add.js +123 -0
  62. package/addons/float/overlays/js/item/catch/remove.js +29 -0
  63. package/addons/float/popup/css/popup.css +93 -0
  64. package/addons/float/popup/js/addon.js +34 -0
  65. package/addons/float/popup/js/functions/close.js +25 -0
  66. package/addons/float/popup/js/functions/modal.js +31 -0
  67. package/addons/float/popup/js/functions/popup.js +21 -0
  68. package/addons/float/popup/js/functions/toast.js +55 -0
  69. package/addons/float/popup/js/functions/tooltip.js +34 -0
  70. package/addons/float/popup/js/items/directives/popup.js +58 -0
  71. package/addons/float/popup/js/items/directives/tooltip.js +72 -0
  72. package/addons/render/directives/front/{js/#register/addon.js → addon.js} +8 -8
  73. package/addons/render/directives/front/{js/functions → functions}/process/attributes.js +7 -2
  74. package/addons/render/directives/front/{js/functions → functions}/process/match.js +8 -8
  75. package/addons/render/directives/front/functions/process.js +88 -0
  76. package/{lib/items/directives → addons/render/directives/front/items/self}/1000-render.js +1 -0
  77. package/{lib/items/directives → addons/render/directives/front/items/self}/110-show.js +3 -5
  78. package/{lib/items/directives → addons/render/directives/front/items/self}/160-slot.js +2 -1
  79. package/{lib/items/directives → addons/render/directives/front/items/self}/200-for.js +3 -3
  80. package/addons/render/directives/front/items/self/500-click-outside.js +45 -0
  81. package/addons/render/directives/front/items/self/500-events.js +68 -0
  82. package/addons/render/directives/front/items/self/500-mouse-enter.js +62 -0
  83. package/addons/render/directives/front/items/self/500-mouse-leave.js +62 -0
  84. package/{lib/items/directives → addons/render/directives/front/items/self}/650-fetch.js +2 -3
  85. package/{lib/items/directives → addons/render/directives/front/items/self}/660-form.js +5 -6
  86. package/addons/render/{elements/front/items/directives → directives/front/items/self}/element.js +7 -1
  87. package/addons/render/directives/front/items/self/node.js +43 -0
  88. package/addons/render/elements/front/functions/runtime.js +25 -0
  89. package/addons/render/elements/front/items/self/cards/pricing/pricing.css +174 -0
  90. package/{lib/items/elements/sections → addons/render/elements/front/items/self/cards}/pricing/pricing.js +30 -11
  91. package/addons/render/elements/front/items/self/core/builder/builder.css +180 -0
  92. package/addons/render/elements/front/items/self/core/builder/builder.js +257 -0
  93. package/addons/render/elements/front/items/self/core/repeater/repeater.css +197 -0
  94. package/addons/render/elements/front/items/self/core/repeater/repeater.js +224 -0
  95. package/addons/render/elements/front/items/self/form/button/button.css +250 -0
  96. package/{lib/items/elements → addons/render/elements/front/items/self}/form/button/button.js +16 -21
  97. package/addons/render/elements/front/items/self/form/checkbox/checkbox.css +109 -0
  98. package/addons/render/elements/front/items/self/form/checkbox/checkbox.js +75 -0
  99. package/addons/render/elements/front/items/self/form/color/color.css +156 -0
  100. package/addons/render/elements/front/items/self/form/color/color.js +122 -0
  101. package/addons/render/elements/front/items/self/form/date/date.css +84 -0
  102. package/addons/render/elements/front/items/self/form/date/date.js +68 -0
  103. package/addons/render/elements/front/items/self/form/field/field.css +72 -0
  104. package/{lib/items/elements → addons/render/elements/front/items/self}/form/field/field.js +4 -4
  105. package/addons/render/elements/front/items/self/form/input/input.css +86 -0
  106. package/addons/render/elements/front/items/self/form/input/input.js +124 -0
  107. package/addons/render/elements/front/items/self/form/radio/radio.css +118 -0
  108. package/addons/render/elements/front/items/self/form/radio/radio.js +80 -0
  109. package/addons/render/elements/front/items/self/form/rating/rating.css +57 -0
  110. package/{lib/items/elements → addons/render/elements/front/items/self}/form/rating/rating.js +18 -21
  111. package/addons/render/elements/front/items/self/form/section/section.css +86 -0
  112. package/{lib/items/elements → addons/render/elements/front/items/self}/form/section/section.js +5 -5
  113. package/addons/render/elements/front/items/self/form/select/select.css +186 -0
  114. package/addons/render/elements/front/items/self/form/select/select.js +161 -0
  115. package/addons/render/elements/front/items/self/form/slider/slider.css +123 -0
  116. package/{lib/items/elements → addons/render/elements/front/items/self}/form/slider/slider.js +89 -70
  117. package/addons/render/elements/front/items/self/form/tags/tags.css +152 -0
  118. package/addons/render/elements/front/items/self/form/tags/tags.js +166 -0
  119. package/addons/render/elements/front/items/self/form/textarea/textarea.css +80 -0
  120. package/addons/render/elements/front/items/self/form/textarea/textarea.js +113 -0
  121. package/addons/render/elements/front/items/self/form/toggle/toggle.css +105 -0
  122. package/addons/render/elements/front/items/self/form/toggle/toggle.js +66 -0
  123. package/addons/render/elements/front/items/self/global/code/code.css +97 -0
  124. package/{lib/items/elements → addons/render/elements/front/items/self}/global/code/code.js +10 -6
  125. package/addons/render/elements/front/items/self/global/faq/faq.css +98 -0
  126. package/{lib/items/elements → addons/render/elements/front/items/self}/global/faq/faq.js +16 -4
  127. package/{lib/items/elements → addons/render/elements/front/items/self}/global/heading/heading.css +37 -14
  128. package/addons/render/elements/front/items/self/global/heading/heading.js +46 -0
  129. package/{lib/items/elements → addons/render/elements/front/items/self}/global/markdown/markdown.css +22 -15
  130. package/addons/render/elements/front/items/self/global/markdown/markdown.js +26 -0
  131. package/addons/render/elements/front/items/self/global/menu/menu.css +173 -0
  132. package/addons/render/elements/front/items/self/global/menu/menu.js +103 -0
  133. package/addons/render/elements/front/items/self/global/notice/notice.css +57 -0
  134. package/{lib/items/elements → addons/render/elements/front/items/self}/global/notice/notice.js +4 -4
  135. package/addons/render/elements/front/items/self/global/parameters/parameters.css +96 -0
  136. package/{lib/items/elements → addons/render/elements/front/items/self}/global/parameters/parameters.js +15 -6
  137. package/{lib/items/elements → addons/render/elements/front/items/self}/global/tags/tags.css +18 -5
  138. package/{lib/items/elements → addons/render/elements/front/items/self}/global/tags/tags.js +11 -3
  139. package/{lib/items/elements → addons/render/elements/front/items/self}/navigation/navbar/navbar.css +39 -17
  140. package/{lib/items/elements → addons/render/elements/front/items/self}/navigation/navbar/navbar.js +24 -10
  141. package/{lib/items/elements → addons/render/elements/front/items/self}/navigation/sidebar/sidebar.css +25 -39
  142. package/{lib/items/elements → addons/render/elements/front/items/self}/navigation/sidebar/sidebar.js +29 -7
  143. package/addons/render/elements/front/items/self/navigation/tabs/tabs.css +66 -0
  144. package/{lib/items/elements → addons/render/elements/front/items/self}/navigation/tabs/tabs.js +17 -3
  145. package/{lib/items/elements → addons/render/elements/front/items/self}/status/code/code.css +21 -12
  146. package/{lib/items/elements → addons/render/elements/front/items/self}/status/empty/empty.css +23 -18
  147. package/{lib/items/elements → addons/render/elements/front/items/self}/status/empty/empty.js +5 -1
  148. package/{lib/items/elements → addons/render/elements/front/items/self}/status/error/error.css +22 -12
  149. package/{lib/items/elements → addons/render/elements/front/items/self}/status/error/error.js +2 -2
  150. package/{lib/items/elements → addons/render/elements/front/items/self}/status/loading/loading.css +31 -14
  151. package/{lib/items/elements → addons/render/elements/front/items/self}/status/loading/loading.js +4 -4
  152. package/addons/render/pages/core/load.js +1 -1
  153. package/addons/render/pages/front/events/click.js +1 -1
  154. package/addons/render/pages/front/events/load.js +6 -16
  155. package/addons/render/pages/front/functions/change.js +21 -110
  156. package/addons/render/pages/front/functions/match.js +2 -3
  157. package/addons/render/pages/front/functions/open.js +3 -35
  158. package/addons/render/pages/front/functions/resolve.js +30 -0
  159. package/addons/render/pages/front/item/catch/add.js +12 -10
  160. package/addons/render/pages/front/item/catch/remove.js +5 -7
  161. package/addons/render/pages/front/item/functions/enter.js +15 -28
  162. package/addons/render/pages/front/item/functions/leave.js +6 -8
  163. package/addons/render/pages/front/items/commands/change.js +60 -0
  164. package/addons/render/pages/front/items/commands/list.js +38 -0
  165. package/addons/render/pages/front/items/directives/change.js +1 -1
  166. package/addons/render/transforms/css/transforms.css +4 -0
  167. package/addons/render/transforms/{addon.js → js/addon.js} +7 -0
  168. package/addons/render/transforms/js/item/functions/run.js +87 -0
  169. package/addons/services/cloudflare/images/back/addon.js +23 -0
  170. package/addons/services/cloudflare/images/back/expose.js +22 -0
  171. package/addons/services/cloudflare/images/back/functions/api.js +47 -0
  172. package/addons/services/cloudflare/images/back/functions/meta/detect.js +28 -0
  173. package/addons/services/cloudflare/images/back/functions/meta/dimensions/gif.js +11 -0
  174. package/addons/services/cloudflare/images/back/functions/meta/dimensions/jpeg.js +31 -0
  175. package/addons/services/cloudflare/images/back/functions/meta/dimensions/png.js +11 -0
  176. package/addons/services/cloudflare/images/back/functions/meta/dimensions/webp.js +36 -0
  177. package/addons/services/cloudflare/images/back/functions/meta.js +16 -0
  178. package/addons/services/cloudflare/images/back/items/commands/delete.js +38 -0
  179. package/addons/services/cloudflare/images/back/items/commands/get.js +56 -0
  180. package/addons/services/cloudflare/images/back/items/commands/list.js +49 -0
  181. package/addons/services/cloudflare/images/back/items/commands/upload.js +79 -0
  182. package/addons/services/cloudflare/images/back/load.js +21 -0
  183. package/addons/services/cloudflare/images/front/items/elements/browse/browse.css +235 -0
  184. package/addons/services/cloudflare/images/front/items/elements/browse/browse.js +193 -0
  185. package/addons/services/cloudflare/images/front/items/elements/input/input.css +154 -0
  186. package/addons/services/cloudflare/images/front/items/elements/input/input.js +147 -0
  187. package/addons/services/cloudflare/images/sql.txt +43 -0
  188. package/lib/browser.js +1 -24
  189. package/lib/events.js +12 -12
  190. package/lib/load.js +12 -42
  191. package/lib/src/classes/addon/class.js +1 -2
  192. package/lib/src/classes/addon/classes/item/mixins/get.js +3 -3
  193. package/lib/src/classes/addon/classes/item/mixins/set.js +3 -5
  194. package/lib/src/classes/addon/classes/item/mixins/store.js +1 -1
  195. package/lib/src/classes/addon/classes/render/class.js +8 -22
  196. package/lib/src/classes/addon/classes/render/mixins/compile.js +6 -4
  197. package/lib/src/classes/addon/classes/render/mixins/dom.js +3 -1
  198. package/lib/src/classes/addon/classes/render/mixins/events.js +30 -43
  199. package/lib/src/classes/addon/classes/render/mixins/get.js +0 -5
  200. package/lib/src/classes/addon/classes/render/mixins/methods.js +105 -40
  201. package/lib/src/classes/addon/classes/render/mixins/process.js +7 -3
  202. package/lib/src/classes/addon/classes/render/mixins/set.js +3 -1
  203. package/lib/src/classes/addon/mixins/fields.js +4 -6
  204. package/lib/src/classes/addon/mixins/functions.js +11 -11
  205. package/lib/src/classes/addon/mixins/items.js +17 -9
  206. package/lib/src/classes/addon/mixins/render.js +1 -1
  207. package/lib/src/classes/addon/mixins/table.js +1 -1
  208. package/lib/src/classes/error/class.js +10 -0
  209. package/lib/src/mixins/addons.js +7 -20
  210. package/lib/src/mixins/assets.js +1 -1
  211. package/lib/src/mixins/data.js +14 -14
  212. package/lib/src/mixins/dependencies.js +5 -5
  213. package/lib/src/mixins/dom.js +204 -201
  214. package/lib/src/mixins/emitter.js +13 -14
  215. package/lib/src/mixins/error.js +14 -1
  216. package/lib/src/mixins/function.js +1 -0
  217. package/lib/src/mixins/generate.js +1 -1
  218. package/lib/src/mixins/helper.js +3 -31
  219. package/lib/{items/elements/global/markdown → src/mixins}/markdown.js +90 -139
  220. package/lib/src/mixins/middleware.js +2 -2
  221. package/lib/src/mixins/observer.js +337 -0
  222. package/lib/src/mixins/request.js +2 -2
  223. package/lib/src/mixins/route.js +11 -2
  224. package/lib/src/mixins/state.js +17 -3
  225. package/lib/src/onetype.js +11 -18
  226. package/lib/styles/classes/layout.css +1 -3
  227. package/lib/styles/reset.css +1 -1
  228. package/lib/styles/variables.css +2 -1
  229. package/package.json +7 -3
  230. package/README.md +0 -86
  231. package/addons/core/queue/index.js +0 -66
  232. package/addons/float/modals/front/css/modals.css +0 -26
  233. package/addons/float/modals/front/js/addon.js +0 -10
  234. package/addons/float/modals/front/js/item/catch/add.js +0 -48
  235. package/addons/float/modals/front/js/item/catch/remove.js +0 -9
  236. package/addons/float/overlays/front/css/overlays.css +0 -29
  237. package/addons/float/overlays/front/js/addon.js +0 -17
  238. package/addons/float/overlays/front/js/events/click.js +0 -27
  239. package/addons/float/overlays/front/js/events/escape.js +0 -18
  240. package/addons/float/overlays/front/js/functions/flip.js +0 -74
  241. package/addons/float/overlays/front/js/functions/index.js +0 -17
  242. package/addons/float/overlays/front/js/functions/position.js +0 -63
  243. package/addons/float/overlays/front/js/item/catch/add.js +0 -121
  244. package/addons/float/overlays/front/js/item/catch/remove.js +0 -16
  245. package/addons/float/popups/css/popups.css +0 -4
  246. package/addons/float/popups/js/addon.js +0 -18
  247. package/addons/float/popups/js/item/catch/add.js +0 -7
  248. package/addons/float/popups/js/item/catch/remove.js +0 -7
  249. package/addons/float/popups/js/item/catch/set.js +0 -73
  250. package/addons/float/popups/js/items/directives/popup.js +0 -54
  251. package/addons/float/toasts/addon.js +0 -17
  252. package/addons/float/toasts/item/catch/add.js +0 -7
  253. package/addons/float/toasts/item/catch/remove.js +0 -7
  254. package/addons/float/toasts/item/catch/set.js +0 -86
  255. package/addons/float/toasts/items/elements/toast/toast.css +0 -84
  256. package/addons/float/toasts/items/elements/toast/toast.js +0 -61
  257. package/addons/float/tooltips/addon.js +0 -15
  258. package/addons/float/tooltips/item/catch/add.js +0 -7
  259. package/addons/float/tooltips/item/catch/remove.js +0 -26
  260. package/addons/float/tooltips/item/catch/set.js +0 -65
  261. package/addons/float/tooltips/items/directives/tooltip.js +0 -74
  262. package/addons/float/tooltips/items/elements/tooltip.css +0 -64
  263. package/addons/float/tooltips/items/elements/tooltip.js +0 -42
  264. package/addons/render/directives/front/js/functions/process.js +0 -57
  265. package/addons/render/transforms/item/functions/run.js +0 -18
  266. package/docs/addons.md +0 -281
  267. package/docs/architecture.md +0 -238
  268. package/docs/commands.md +0 -308
  269. package/docs/database.md +0 -171
  270. package/docs/frontend.md +0 -396
  271. package/docs/servers.md +0 -187
  272. package/examples/basic-api/README.md +0 -34
  273. package/examples/basic-api/addons/tasks/addon.js +0 -10
  274. package/examples/basic-api/addons/tasks/items/commands/create.js +0 -22
  275. package/examples/basic-api/addons/tasks/items/commands/delete.js +0 -26
  276. package/examples/basic-api/addons/tasks/items/commands/list.js +0 -17
  277. package/examples/basic-api/addons/tasks/items/commands/toggle.js +0 -26
  278. package/examples/basic-api/addons/tasks/load.js +0 -8
  279. package/examples/basic-api/index.js +0 -15
  280. package/examples/basic-api/package.json +0 -7
  281. package/examples/basic-front/back/assets.js +0 -12
  282. package/examples/basic-front/back/index.js +0 -13
  283. package/examples/basic-front/back/items/commands/html.js +0 -14
  284. package/examples/basic-front/back/items/commands/test.js +0 -19
  285. package/examples/basic-front/back/items/html/fonts.js +0 -12
  286. package/examples/basic-front/front/pages/home.js +0 -16
  287. package/examples/basic-front/front/styles/main.css +0 -31
  288. package/examples/basic-front/front/test.js +0 -7
  289. package/examples/basic-front/package.json +0 -7
  290. package/lib/items/directives/500-blur.js +0 -46
  291. package/lib/items/directives/500-change.js +0 -53
  292. package/lib/items/directives/500-click-outside.js +0 -50
  293. package/lib/items/directives/500-click.js +0 -52
  294. package/lib/items/directives/500-double-click.js +0 -52
  295. package/lib/items/directives/500-focus.js +0 -46
  296. package/lib/items/directives/500-input.js +0 -46
  297. package/lib/items/directives/500-keydown.js +0 -53
  298. package/lib/items/directives/500-keyup.js +0 -53
  299. package/lib/items/directives/500-mouse-enter.js +0 -61
  300. package/lib/items/directives/500-mouse-leave.js +0 -61
  301. package/lib/items/directives/500-mouse-move.js +0 -45
  302. package/lib/items/directives/500-scroll.js +0 -45
  303. package/lib/items/directives/500-submit.js +0 -52
  304. package/lib/items/elements/form/button/styles/base.css +0 -176
  305. package/lib/items/elements/form/button/styles/sizes.css +0 -78
  306. package/lib/items/elements/form/button/styles/variants.css +0 -421
  307. package/lib/items/elements/form/checkbox/checkbox.js +0 -58
  308. package/lib/items/elements/form/checkbox/styles/base.css +0 -52
  309. package/lib/items/elements/form/checkbox/styles/sizes.css +0 -39
  310. package/lib/items/elements/form/checkbox/styles/variants.css +0 -121
  311. package/lib/items/elements/form/field/field.css +0 -96
  312. package/lib/items/elements/form/input/input.css +0 -111
  313. package/lib/items/elements/form/input/input.js +0 -79
  314. package/lib/items/elements/form/input/styles/base.css +0 -26
  315. package/lib/items/elements/form/input/styles/sizes.css +0 -15
  316. package/lib/items/elements/form/input/styles/variants.css +0 -98
  317. package/lib/items/elements/form/radio/radio.js +0 -58
  318. package/lib/items/elements/form/radio/styles/base.css +0 -48
  319. package/lib/items/elements/form/radio/styles/sizes.css +0 -36
  320. package/lib/items/elements/form/radio/styles/variants.css +0 -121
  321. package/lib/items/elements/form/rating/rating.css +0 -95
  322. package/lib/items/elements/form/section/section.css +0 -129
  323. package/lib/items/elements/form/slider/slider.css +0 -244
  324. package/lib/items/elements/form/textarea/textarea.css +0 -117
  325. package/lib/items/elements/form/textarea/textarea.js +0 -70
  326. package/lib/items/elements/global/card/card.css +0 -57
  327. package/lib/items/elements/global/card/card.js +0 -48
  328. package/lib/items/elements/global/code/code.css +0 -66
  329. package/lib/items/elements/global/faq/faq.css +0 -76
  330. package/lib/items/elements/global/heading/heading.js +0 -52
  331. package/lib/items/elements/global/notice/notice.css +0 -91
  332. package/lib/items/elements/global/parameters/parameters.css +0 -77
  333. package/lib/items/elements/navigation/tabs/tabs.css +0 -47
  334. package/lib/items/elements/sections/footer/footer.css +0 -205
  335. package/lib/items/elements/sections/footer/footer.js +0 -109
  336. package/lib/items/elements/sections/hero/hero.css +0 -100
  337. package/lib/items/elements/sections/hero/hero.js +0 -54
  338. package/lib/items/elements/sections/pricing/pricing.css +0 -148
  339. package/lib/items/elements/sections/stats/stats.css +0 -34
  340. package/lib/items/elements/sections/stats/stats.js +0 -74
  341. package/lib/src/mixins/logger.js +0 -83
  342. package/lib/styles/queries.css +0 -6
  343. /package/addons/modules/shortcuts/front/{#register/addon.js → addon.js} +0 -0
  344. /package/addons/render/directives/front/{js/functions → functions}/process/data.js +0 -0
  345. /package/{lib/items/directives → addons/render/directives/front/items/self}/100-if.js +0 -0
  346. /package/{lib/items/directives → addons/render/directives/front/items/self}/700-text.js +0 -0
  347. /package/{lib/items/directives → addons/render/directives/front/items/self}/750-html.js +0 -0
  348. /package/addons/render/elements/front/{#register/addon.js → addon.js} +0 -0
  349. /package/{lib/items/elements → addons/render/elements/front/items/self}/status/code/code.js +0 -0
  350. /package/addons/render/transforms/{functions → js/functions}/data.js +0 -0
  351. /package/addons/render/transforms/{functions → js/functions}/run.js +0 -0
  352. /package/addons/render/transforms/{functions → js/functions}/runtime.js +0 -0
  353. /package/addons/render/transforms/{item → js/item}/functions/load.js +0 -0
  354. /package/addons/render/transforms/{items/directives → js/items/self}/transform.js +0 -0
@@ -1,238 +0,0 @@
1
- # Architecture
2
-
3
- ## File structure
4
-
5
- ```
6
- lib/ Core OneType class + mixins
7
- load.js Entry point — creates OneType instance, registers all assets, handles signals
8
- src/
9
- onetype.js Main class (mixin-composed)
10
- mixins/ Addons, Emitter, Middleware, Data, DOM, Route,
11
- Function, Generate, Binaries, Helper, Cookie, Assets, and more
12
- classes/
13
- addon/ OneTypeAddon + mixins (fields, items, functions, find, render, store)
14
- classes/
15
- item/ OneTypeAddonItem + mixins (get, set, crud, functions, store)
16
- render/ OneTypeAddonRender + mixins (compile, dom, process, events)
17
- styles/ Shared CSS (variables, reset, queries, utility classes)
18
- items/
19
- elements/ Shared UI elements (grouped, IDs are group-prefixed)
20
- form/ button, checkbox, field, input, radio, rating, section, slider, textarea
21
- global/ card, code, faq, heading, markdown, notice, parameters, tabs, tags
22
- sections/ footer, hero, navbar, stats
23
- status/ code, empty, error, loading
24
- transforms/ Shared transforms
25
- accordion, chart, codeflask, codemirror, comparison,
26
- heatmap, interact, particles, sparkline, swiper, tabs, typed
27
-
28
- addons/ Built-in addon library
29
- core/
30
- database/ PostgreSQL ORM (Knex, fluent query builder, 17+ operators)
31
- servers/ HTTP + gRPC servers
32
- clients/ HTTP + gRPC clients
33
- commands/ Typed API command system
34
- queue/ Concurrency task queue
35
- assets/ Convention-based asset bundler (terser)
36
- render/
37
- directives/ ot-if, ot-for, ot-click, ot-fetch, ot-show, ot-html, ot-text
38
- pages/ SPA page router with CSS Grid layouts + async data loading
39
- elements/ UI component addon (registration, directives)
40
- html/ HTML document builder
41
- tags/ HTML tag system
42
- transforms/ Transform addon (registration, loading, directives)
43
- modules/
44
- variables/ Named variable registry
45
- actions/ Action triggers
46
- events/ Event bindings
47
- schedules/ Cron-like scheduling
48
- shortcuts/ Keyboard shortcut bindings
49
- sources/ Data source registry
50
- float/
51
- modals/ Modal dialogs
52
- toasts/ Toast notifications
53
- tooltips/ Tooltip system
54
- popups/ Popup menus
55
- overlays/ Overlay backdrops
56
- ```
57
-
58
- ## Application structure
59
-
60
- A typical application built on the framework:
61
-
62
- ```
63
- my-app/
64
- package.json Import aliases (#framework/*, #database/*, etc.)
65
- index.js Entry point — imports framework, addons, database, servers
66
- addons/
67
- users/ Application addon
68
- addon.js
69
- load.js
70
- functions/
71
- items/commands/
72
- item/catch/
73
- events/
74
- items/
75
- database/
76
- primary.js Database connection
77
- servers/
78
- http.js HTTP server config
79
- ```
80
-
81
- Entry point:
82
-
83
- ```js
84
- import onetype from '#framework/load.js';
85
- import commands from '#commands/load.js';
86
- import database from '#database/load.js';
87
-
88
- import './addons/users/load.js';
89
- import './addons/offers/load.js';
90
-
91
- import './items/database/primary.js';
92
- import './items/servers/http.js';
93
- ```
94
-
95
- ## Import aliases
96
-
97
- The framework uses Node.js package imports (`#` prefix) defined in `package.json`:
98
-
99
- ```json
100
- {
101
- "imports": {
102
- "#framework/*": "./lib/*",
103
- "#database/*": "./addons/core/database/back/*",
104
- "#servers/*": "./addons/core/servers/back/*",
105
- "#clients/*": "./addons/core/clients/back/*",
106
- "#commands/*": "./addons/core/commands/*",
107
- "#queue/*": "./addons/core/queue/back/*",
108
- "#assets/*": "./addons/core/assets/back/*",
109
- "#html/*": "./addons/render/html/*",
110
- "#directives/*": "./addons/render/directives/*",
111
- "#pages/*": "./addons/render/pages/*",
112
- "#elements/*": "./addons/render/elements/*",
113
- "#tags/*": "./addons/render/tags/*",
114
- "#sources/*": "./addons/modules/sources/*",
115
- "#variables/*": "./addons/modules/variables/*"
116
- }
117
- }
118
- ```
119
-
120
- ## Design decisions
121
-
122
- ### Mixin composition over inheritance
123
-
124
- Both `OneType` and `OneTypeAddon` use `Object.assign(Class.prototype, mixin)`. No class hierarchies, no diamond problems. Each mixin is a plain object of methods merged onto the prototype:
125
-
126
- ```js
127
- import AddonItemGet from './mixins/get.js';
128
- import AddonItemSet from './mixins/set.js';
129
- import AddonItemCrud from './mixins/crud.js';
130
-
131
- Object.assign(OneTypeAddonItem.prototype, AddonItemGet);
132
- Object.assign(OneTypeAddonItem.prototype, AddonItemSet);
133
- Object.assign(OneTypeAddonItem.prototype, AddonItemCrud);
134
- ```
135
-
136
- ### Middleware as the extension point
137
-
138
- CRUD operations and queries are middleware chains:
139
- - `item.crud.create` — intercepted by database addon for INSERT
140
- - `item.crud.update` — intercepted for UPDATE
141
- - `item.crud.delete` — intercepted for DELETE
142
- - `addon.items.find` — intercepted for SELECT
143
-
144
- Without the database addon, everything works in-memory. Swap storage without touching business logic.
145
-
146
- ### Self-registering imports
147
-
148
- Importing an addon's `load.js` registers it with the framework. No manual wiring, no dependency injection container, no configuration object. `AddonReady` handles async dependency resolution — import order doesn't matter.
149
-
150
- ### Field transforms
151
-
152
- Every field has `get[]` and `set[]` arrays of transform functions plus a `define` schema:
153
-
154
- ```
155
- Set('name', value)
156
- → run set[] transforms
157
- → validate against define schema
158
- → fire lifecycle callbacks
159
- → store in item.data
160
- ```
161
-
162
- Computed fields, type coercion, and normalization are declared at the field level.
163
-
164
- ### Proxy-driven reactivity
165
-
166
- Render components return a `Proxy`. Setting a property schedules a debounced `Update()`:
167
-
168
- ```
169
- this.count++
170
- → Proxy trap
171
- → schedule Update() (16ms debounce)
172
- → re-compile template
173
- → DOM diff
174
- → patch changes
175
- ```
176
-
177
- Batched updates, no virtual DOM overhead.
178
-
179
- ### Binary transport over gRPC
180
-
181
- gRPC messages are JSON strings. Buffers can't be embedded directly. The framework extracts all Buffer instances into a separate `map<string, bytes>` field before sending:
182
-
183
- ```
184
- Send: { data: { file: <Buffer> } }
185
- → extract: { data: { file: "$$bin_0" }, binaries: { "$$bin_0": <Buffer> } }
186
- → send JSON + binaries separately
187
-
188
- Receive:
189
- → inject: { data: { file: <Buffer> } }
190
- ```
191
-
192
- Transparent binary transport over the same stream.
193
-
194
- ### Centralized asset registry
195
-
196
- All asset paths are registered centrally in `lib/load.js` via `onetype.Assets(id, url, config)`. This decouples asset path knowledge from individual addons — the framework controls what gets bundled, regardless of whether a backend addon is loaded.
197
-
198
- ```js
199
- // lib/load.js — top-level registrations
200
- onetype.Assets('framework', import.meta.url, { js: { path: '.', exclude: ['load.js', 'items', 'styles'] } });
201
- onetype.Assets('styles', import.meta.url, { css: 'styles' });
202
- onetype.Assets('commands', import.meta.url, { js: { path: '../addons/core/commands', exclude: ['../addons/core/commands/back'] } });
203
- ```
204
-
205
- Shared elements and transforms use `onetype.AddonReady` to register only after their parent addon is loaded. The JS files themselves contain the wrapper:
206
-
207
- ```js
208
- // lib/items/elements/form/button/button.js
209
- onetype.AddonReady('elements', (elements) =>
210
- {
211
- elements.ItemAdd({ id: 'form-button', ... });
212
- });
213
-
214
- // lib/items/transforms/swiper/swiper.js
215
- onetype.AddonReady('transforms', (transforms) =>
216
- {
217
- transforms.ItemAdd({ id: 'swiper', ... });
218
- });
219
- ```
220
-
221
- Element IDs are group-prefixed: `form-button`, `global-card`, `sections-navbar`, `status-loading`. HTML tags follow the same pattern: `<e-form-button>`, `<e-global-card>`, `<e-status-loading>`.
222
-
223
- The import function reads from the registry to resolve paths:
224
-
225
- ```js
226
- assets.Fn('import', ['framework', 'styles', 'commands', 'elements/form/input', 'transforms/swiper']);
227
- ```
228
-
229
- ### Convention-based bundling
230
-
231
- No webpack, no build configuration. The asset bundler:
232
- 1. Scans directories recursively
233
- 2. Prioritizes `addon.js` files
234
- 3. Strips `import`/`export` statements
235
- 4. Concatenates by priority order
236
- 5. Minifies via terser
237
-
238
- ES module source files become a browser-loadable bundle.
package/docs/commands.md DELETED
@@ -1,308 +0,0 @@
1
- # Commands
2
-
3
- Every API endpoint is a typed, named operation with validated input and output. Commands work over both HTTP and gRPC.
4
-
5
- ## Defining a command
6
-
7
- ```js
8
- import onetype from '#framework/load.js';
9
- import users from './addon.js';
10
-
11
- onetype.AddonReady('commands', (commands) => {
12
- commands.Item({
13
- id: 'users:create',
14
- method: 'POST',
15
- endpoint: '/api/users',
16
- in: {
17
- name: ['string', null, true],
18
- email: ['string', null, true],
19
- password: ['string', null, true]
20
- },
21
- out: {
22
- user: {
23
- type: 'object',
24
- config: 'user',
25
- required: true
26
- }
27
- },
28
- callback: async function(properties, resolve) {
29
- const user = users.Item({
30
- name: properties.name,
31
- email: properties.email,
32
- password: properties.password
33
- });
34
-
35
- await user.Create();
36
-
37
- resolve({
38
- user: user.Get(['id', 'name', 'email', 'created_at'])
39
- });
40
- }
41
- });
42
- });
43
- ```
44
-
45
- ## Command properties
46
-
47
- | Property | Description |
48
- |---|---|
49
- | `id` | Unique command identifier |
50
- | `method` | HTTP method: `GET`, `POST`, `PUT`, `DELETE` |
51
- | `endpoint` | URL pattern, supports `:params` (e.g., `/api/users/:id`) |
52
- | `exposed` | If `true`, accessible without authentication |
53
- | `type` | Response type: `'JSON'` (default) or `'HTML'` |
54
- | `in` | Input schema — validated before callback runs |
55
- | `out` | Output schema — validated before response is sent |
56
- | `callback` | `async function(properties, resolve)` |
57
-
58
- ## Input schema
59
-
60
- ```js
61
- in: {
62
- // Simple: [type, default, required]
63
- name: ['string', null, true],
64
- limit: ['number', 20],
65
-
66
- // Complex: object with type + config
67
- filters: {
68
- type: 'array',
69
- each: {
70
- type: 'object',
71
- config: 'filter'
72
- }
73
- }
74
- }
75
- ```
76
-
77
- Use `'query'` as shorthand for standard list endpoints:
78
-
79
- ```js
80
- in: 'query' // accepts filters, sort_field, sort_direction, page, limit
81
- ```
82
-
83
- ## Output schema
84
-
85
- ```js
86
- out: {
87
- // Reference a DataSchema
88
- user: {
89
- type: 'object',
90
- config: 'user',
91
- required: true
92
- },
93
-
94
- // Array of schema objects
95
- users: {
96
- type: 'array',
97
- each: {
98
- type: 'object',
99
- config: 'user'
100
- }
101
- },
102
-
103
- // Simple fields
104
- total: ['number', null, true],
105
- page: ['number', null, true]
106
- }
107
- ```
108
-
109
- ## Resolve
110
-
111
- ```js
112
- // Success
113
- resolve({ user: userData });
114
-
115
- // Error with status code
116
- resolve(null, 'Not found', 404);
117
-
118
- // Streaming (partial response)
119
- resolve(chunk.data, chunk.message, chunk.code, false);
120
- // false = don't close the response
121
- ```
122
-
123
- ## Route params
124
-
125
- ```js
126
- commands.Item({
127
- id: 'users:get:one',
128
- method: 'GET',
129
- endpoint: '/api/users/:id',
130
- in: {
131
- id: ['number', null, true]
132
- },
133
- callback: async function(properties, resolve) {
134
- const user = await users.Find().filter('id', properties.id).one();
135
-
136
- if (!user) return resolve(null, null, 404);
137
-
138
- resolve({
139
- user: user.Get(['id', 'name', 'email', 'created_at'])
140
- });
141
- }
142
- });
143
- ```
144
-
145
- ## CRUD pattern
146
-
147
- A complete CRUD set for an addon:
148
-
149
- **Create:**
150
- ```js
151
- commands.Item({
152
- id: 'tools:create',
153
- method: 'POST',
154
- endpoint: '/api/tools',
155
- in: {
156
- name: ['string', null, true],
157
- slug: ['string', null, true],
158
- description: ['string']
159
- },
160
- callback: async function(properties, resolve) {
161
- const tool = tools.Item({
162
- name: properties.name,
163
- slug: properties.slug,
164
- description: properties.description
165
- });
166
- await tool.Create();
167
- resolve({ tool: tool.Get(['id', 'name', 'slug', 'description', 'created_at']) });
168
- }
169
- });
170
- ```
171
-
172
- **Read many:**
173
- ```js
174
- commands.Item({
175
- id: 'tools:get:many',
176
- method: 'GET',
177
- endpoint: '/api/tools',
178
- exposed: true,
179
- callback: async function(properties, resolve) {
180
- let query = tools.Find().sort('name', 'asc');
181
-
182
- if (properties.filters) {
183
- properties.filters.forEach(f => {
184
- query = query.filter(f.field, f.value, f.operator || 'EQUALS');
185
- });
186
- }
187
-
188
- const total = await query.count();
189
- const items = await query
190
- .page(properties.page || 1)
191
- .limit(properties.limit || 10)
192
- .many();
193
-
194
- resolve({
195
- tools: items.map(item => item.Get(['id', 'name', 'slug', 'description'])),
196
- total,
197
- page: properties.page || 1,
198
- limit: properties.limit || 10
199
- });
200
- }
201
- });
202
- ```
203
-
204
- **Update:**
205
- ```js
206
- commands.Item({
207
- id: 'tools:update',
208
- method: 'PUT',
209
- endpoint: '/api/tools/:id',
210
- in: { id: ['number', null, true], name: ['string'], description: ['string'] },
211
- callback: async function(properties, resolve) {
212
- const tool = await tools.Find().filter('id', properties.id).one();
213
- if (!tool) return resolve(null, null, 404);
214
-
215
- if (properties.name !== undefined) tool.Set('name', properties.name);
216
- if (properties.description !== undefined) tool.Set('description', properties.description);
217
- await tool.Update();
218
-
219
- resolve({ tool: tool.Get(['id', 'name', 'description', 'updated_at']) });
220
- }
221
- });
222
- ```
223
-
224
- **Delete (soft):**
225
- ```js
226
- commands.Item({
227
- id: 'tools:delete',
228
- method: 'DELETE',
229
- endpoint: '/api/tools/:id',
230
- in: { id: ['number', null, true] },
231
- callback: async function(properties, resolve) {
232
- const tool = await tools.Find().filter('id', properties.id).one();
233
- if (!tool) return resolve(null, null, 404);
234
-
235
- tool.Set('deleted_at', new Date().toISOString());
236
- await tool.Update();
237
-
238
- resolve({ tool: tool.Get(['id', 'name', 'deleted_at']) });
239
- }
240
- });
241
- ```
242
-
243
- ## Dynamic API registration
244
-
245
- Register endpoints at runtime when items are added:
246
-
247
- ```js
248
- tools.ItemOn('add', function(item) {
249
- commands.Item({
250
- exposed: true,
251
- id: 'tool:' + item.Get('slug'),
252
- method: 'POST',
253
- endpoint: '/api/run/' + item.Get('slug'),
254
- in: item.Get('config_in'),
255
- out: item.Get('config_out'),
256
- callback: async function(properties, resolve) {
257
- // Route to a worker node via gRPC
258
- const connections = Object.values(streams.Items()).filter(s =>
259
- s.StoreGet('node').Get('tools').includes(item.Get('id'))
260
- );
261
-
262
- const stream = connections[Math.floor(Math.random() * connections.length)]
263
- .StoreGet('stream');
264
- const response = await stream.request(item.Get('slug'), properties);
265
- resolve(response.data, response.message, response.code);
266
- }
267
- });
268
- });
269
- ```
270
-
271
- When a tool is added to the database, an API endpoint appears automatically. Remove the tool, the endpoint disappears.
272
-
273
- ## HTML commands
274
-
275
- Serve HTML responses (for SSR):
276
-
277
- ```js
278
- commands.Item({
279
- id: 'html',
280
- exposed: true,
281
- method: 'GET',
282
- endpoint: '*',
283
- type: 'HTML',
284
- callback: async function(properties, resolve) {
285
- resolve(html.Fn('render', {
286
- head: () => '<title>My App</title>',
287
- body: () => '<div id="app"></div>'
288
- }));
289
- }
290
- });
291
- ```
292
-
293
- ## HTTP context
294
-
295
- Inside a command callback, access the HTTP request:
296
-
297
- ```js
298
- callback: async function(properties, resolve) {
299
- const pathname = this.http.url.pathname;
300
- const ip = this.http?.user?.ip;
301
-
302
- // Raw response for custom handling
303
- this.http.raw.writeHead(301, { 'Location': '/new-url' });
304
- this.http.raw.end();
305
- this.http.prevent = true;
306
- resolve({});
307
- }
308
- ```