@onetype/framework 2.0.42 → 2.0.44

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 (351) 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 +2 -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 +14 -9
  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 +1 -0
  79. package/{lib/items/directives → addons/render/directives/front/items/self}/200-for.js +3 -3
  80. package/addons/render/directives/front/items/self/2000-base.js +45 -0
  81. package/addons/render/directives/front/items/self/500-click-outside.js +45 -0
  82. package/addons/render/directives/front/items/self/500-events.js +68 -0
  83. package/addons/render/directives/front/items/self/500-mouse-enter.js +62 -0
  84. package/addons/render/directives/front/items/self/500-mouse-leave.js +62 -0
  85. package/{lib/items/directives → addons/render/directives/front/items/self}/650-fetch.js +2 -3
  86. package/{lib/items/directives → addons/render/directives/front/items/self}/660-form.js +5 -6
  87. package/addons/render/directives/front/items/self/750-node.js +43 -0
  88. package/addons/render/elements/front/items/directives/element.js +7 -1
  89. package/{lib/items/elements → addons/render/elements/front/items/self}/cards/pricing/pricing.js +2 -2
  90. package/addons/render/elements/front/items/self/core/builder/builder.css +180 -0
  91. package/addons/render/elements/front/items/self/core/builder/builder.js +257 -0
  92. package/addons/render/elements/front/items/self/core/repeater/repeater.css +197 -0
  93. package/addons/render/elements/front/items/self/core/repeater/repeater.js +224 -0
  94. package/{lib/items/elements → addons/render/elements/front/items/self}/form/button/button.js +2 -2
  95. package/{lib/items/elements → addons/render/elements/front/items/self}/form/checkbox/checkbox.js +21 -8
  96. package/{lib/items/elements → addons/render/elements/front/items/self}/form/color/color.css +28 -0
  97. package/{lib/items/elements → addons/render/elements/front/items/self}/form/color/color.js +35 -13
  98. package/{lib/items/elements → addons/render/elements/front/items/self}/form/date/date.js +3 -4
  99. package/{lib/items/elements → addons/render/elements/front/items/self}/form/input/input.js +40 -4
  100. package/{lib/items/elements → addons/render/elements/front/items/self}/form/radio/radio.js +24 -6
  101. package/{lib/items/elements → addons/render/elements/front/items/self}/form/rating/rating.js +2 -1
  102. package/{lib/items/elements → addons/render/elements/front/items/self}/form/select/select.js +3 -7
  103. package/{lib/items/elements → addons/render/elements/front/items/self}/form/slider/slider.js +89 -74
  104. package/{lib/items/elements → addons/render/elements/front/items/self}/form/tags/tags.js +5 -5
  105. package/{lib/items/elements → addons/render/elements/front/items/self}/form/textarea/textarea.js +41 -6
  106. package/{lib/items/elements → addons/render/elements/front/items/self}/form/toggle/toggle.css +4 -0
  107. package/{lib/items/elements → addons/render/elements/front/items/self}/form/toggle/toggle.js +7 -8
  108. package/{lib/items/elements → addons/render/elements/front/items/self}/global/code/code.js +3 -4
  109. package/{lib/items/elements → addons/render/elements/front/items/self}/global/faq/faq.js +2 -2
  110. package/{lib/items/elements → addons/render/elements/front/items/self}/global/heading/heading.js +6 -17
  111. package/addons/render/elements/front/items/self/global/markdown/markdown.js +26 -0
  112. package/{lib/items/elements → addons/render/elements/front/items/self}/global/menu/menu.js +1 -1
  113. package/{lib/items/elements → addons/render/elements/front/items/self}/global/tags/tags.js +1 -1
  114. package/{lib/items/elements → addons/render/elements/front/items/self}/navigation/navbar/navbar.js +5 -1
  115. package/{lib/items/elements → addons/render/elements/front/items/self}/navigation/sidebar/sidebar.js +1 -1
  116. package/{lib/items/elements → addons/render/elements/front/items/self}/navigation/tabs/tabs.js +1 -1
  117. package/{lib/items/elements → addons/render/elements/front/items/self}/status/code/code.css +1 -1
  118. package/{lib/items/elements → addons/render/elements/front/items/self}/status/empty/empty.css +1 -1
  119. package/{lib/items/elements → addons/render/elements/front/items/self}/status/empty/empty.js +4 -0
  120. package/{lib/items/elements → addons/render/elements/front/items/self}/status/error/error.css +1 -1
  121. package/{lib/items/elements → addons/render/elements/front/items/self}/status/error/error.js +1 -1
  122. package/{lib/items/elements → addons/render/elements/front/items/self}/status/loading/loading.css +8 -1
  123. package/addons/render/html/load.js +0 -1
  124. package/addons/render/pages/core/addon.js +16 -1
  125. package/addons/render/pages/core/load.js +1 -1
  126. package/addons/render/pages/front/events/click.js +2 -2
  127. package/addons/render/pages/front/events/load.js +6 -16
  128. package/addons/render/pages/front/functions/change.js +21 -110
  129. package/addons/render/pages/front/functions/match.js +2 -3
  130. package/addons/render/pages/front/functions/open.js +3 -35
  131. package/addons/render/pages/front/functions/resolve.js +30 -0
  132. package/addons/render/pages/front/item/catch/add.js +12 -10
  133. package/addons/render/pages/front/item/catch/remove.js +5 -7
  134. package/addons/render/pages/front/item/functions/enter.js +15 -28
  135. package/addons/render/pages/front/item/functions/leave.js +6 -8
  136. package/addons/render/pages/front/items/commands/change.js +60 -0
  137. package/addons/render/pages/front/items/commands/list.js +38 -0
  138. package/addons/render/pages/front/items/directives/change.js +1 -1
  139. package/addons/render/transforms/css/transforms.css +4 -0
  140. package/addons/render/transforms/{addon.js → js/addon.js} +7 -0
  141. package/addons/render/transforms/js/item/functions/run.js +87 -0
  142. package/addons/services/cloudflare/images/back/addon.js +23 -0
  143. package/addons/services/cloudflare/images/back/expose.js +22 -0
  144. package/addons/services/cloudflare/images/back/functions/api.js +47 -0
  145. package/addons/services/cloudflare/images/back/functions/meta/detect.js +28 -0
  146. package/addons/services/cloudflare/images/back/functions/meta/dimensions/gif.js +11 -0
  147. package/addons/services/cloudflare/images/back/functions/meta/dimensions/jpeg.js +31 -0
  148. package/addons/services/cloudflare/images/back/functions/meta/dimensions/png.js +11 -0
  149. package/addons/services/cloudflare/images/back/functions/meta/dimensions/webp.js +36 -0
  150. package/addons/services/cloudflare/images/back/functions/meta.js +16 -0
  151. package/addons/services/cloudflare/images/back/items/commands/delete.js +38 -0
  152. package/addons/services/cloudflare/images/back/items/commands/get.js +56 -0
  153. package/addons/services/cloudflare/images/back/items/commands/list.js +49 -0
  154. package/addons/services/cloudflare/images/back/items/commands/upload.js +79 -0
  155. package/addons/services/cloudflare/images/back/load.js +21 -0
  156. package/addons/services/cloudflare/images/front/items/elements/browse/browse.css +235 -0
  157. package/addons/services/cloudflare/images/front/items/elements/browse/browse.js +193 -0
  158. package/addons/services/cloudflare/images/front/items/elements/input/input.css +154 -0
  159. package/addons/services/cloudflare/images/front/items/elements/input/input.js +147 -0
  160. package/addons/services/cloudflare/images/sql.txt +43 -0
  161. package/lib/browser.js +16 -1
  162. package/lib/events.js +12 -12
  163. package/lib/load.js +11 -49
  164. package/lib/src/classes/addon/class.js +1 -2
  165. package/lib/src/classes/addon/classes/item/mixins/get.js +3 -3
  166. package/lib/src/classes/addon/classes/item/mixins/set.js +3 -5
  167. package/lib/src/classes/addon/classes/item/mixins/store.js +1 -1
  168. package/lib/src/classes/addon/classes/render/class.js +8 -22
  169. package/lib/src/classes/addon/classes/render/mixins/compile.js +6 -4
  170. package/lib/src/classes/addon/classes/render/mixins/dom.js +3 -1
  171. package/lib/src/classes/addon/classes/render/mixins/events.js +30 -43
  172. package/lib/src/classes/addon/classes/render/mixins/get.js +0 -5
  173. package/lib/src/classes/addon/classes/render/mixins/methods.js +105 -40
  174. package/lib/src/classes/addon/classes/render/mixins/process.js +7 -3
  175. package/lib/src/classes/addon/classes/render/mixins/set.js +3 -1
  176. package/lib/src/classes/addon/mixins/fields.js +4 -6
  177. package/lib/src/classes/addon/mixins/functions.js +11 -11
  178. package/lib/src/classes/addon/mixins/items.js +17 -9
  179. package/lib/src/classes/addon/mixins/render.js +1 -1
  180. package/lib/src/classes/addon/mixins/table.js +1 -1
  181. package/lib/src/classes/error/class.js +10 -0
  182. package/lib/src/mixins/addons.js +7 -20
  183. package/lib/src/mixins/assets.js +1 -1
  184. package/lib/src/mixins/base.js +14 -0
  185. package/lib/src/mixins/data.js +14 -14
  186. package/lib/src/mixins/dependencies.js +5 -5
  187. package/lib/src/mixins/dom.js +204 -201
  188. package/lib/src/mixins/emitter.js +13 -14
  189. package/lib/src/mixins/error.js +14 -1
  190. package/lib/src/mixins/function.js +1 -0
  191. package/lib/src/mixins/generate.js +1 -1
  192. package/lib/src/mixins/helper.js +3 -31
  193. package/lib/{items/elements/global/markdown → src/mixins}/markdown.js +90 -139
  194. package/lib/src/mixins/middleware.js +2 -2
  195. package/lib/src/mixins/observer.js +337 -0
  196. package/lib/src/mixins/request.js +2 -2
  197. package/lib/src/mixins/state.js +17 -3
  198. package/lib/src/onetype.js +13 -18
  199. package/lib/styles/classes/layout.css +1 -3
  200. package/lib/styles/variables.css +2 -1
  201. package/package.json +5 -7
  202. package/README.md +0 -86
  203. package/addons/ai/agents/addon.js +0 -23
  204. package/addons/ai/agents/functions/parse.js +0 -129
  205. package/addons/ai/agents/item/functions/run.js +0 -218
  206. package/addons/ai/agents/load.js +0 -8
  207. package/addons/ai/orchestrator/addon.js +0 -25
  208. package/addons/ai/orchestrator/item/functions/run.js +0 -277
  209. package/addons/ai/orchestrator/item/functions/state/agent.js +0 -41
  210. package/addons/ai/orchestrator/item/functions/state/conclusion.js +0 -27
  211. package/addons/ai/orchestrator/item/functions/state/done.js +0 -40
  212. package/addons/ai/orchestrator/item/functions/state/execute.js +0 -16
  213. package/addons/ai/orchestrator/item/functions/state/goal.js +0 -34
  214. package/addons/ai/orchestrator/item/functions/state/input.js +0 -55
  215. package/addons/ai/orchestrator/item/functions/state/summary.js +0 -26
  216. package/addons/ai/orchestrator/items/agents/achievable.js +0 -37
  217. package/addons/ai/orchestrator/items/agents/agent.js +0 -46
  218. package/addons/ai/orchestrator/items/agents/conclusion.js +0 -41
  219. package/addons/ai/orchestrator/items/agents/done.js +0 -40
  220. package/addons/ai/orchestrator/items/agents/goal.js +0 -58
  221. package/addons/ai/orchestrator/items/agents/input.js +0 -34
  222. package/addons/ai/orchestrator/items/agents/planner.js +0 -30
  223. package/addons/ai/orchestrator/items/agents/summary.js +0 -29
  224. package/addons/ai/orchestrator/items/chat.js +0 -10
  225. package/addons/ai/orchestrator/load.js +0 -25
  226. package/addons/ai/providers/addon.js +0 -16
  227. package/addons/ai/providers/functions/default.js +0 -14
  228. package/addons/ai/providers/item/functions/request.js +0 -62
  229. package/addons/ai/providers/items/nue.js +0 -98
  230. package/addons/ai/providers/load.js +0 -10
  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/html/items/seo/theme-color.js +0 -12
  266. package/addons/render/transforms/item/functions/run.js +0 -18
  267. package/docs/addons.md +0 -281
  268. package/docs/architecture.md +0 -238
  269. package/docs/commands.md +0 -308
  270. package/docs/database.md +0 -171
  271. package/docs/frontend.md +0 -396
  272. package/docs/servers.md +0 -187
  273. package/examples/basic-api/README.md +0 -34
  274. package/examples/basic-api/addons/tasks/addon.js +0 -10
  275. package/examples/basic-api/addons/tasks/items/commands/create.js +0 -22
  276. package/examples/basic-api/addons/tasks/items/commands/delete.js +0 -26
  277. package/examples/basic-api/addons/tasks/items/commands/list.js +0 -17
  278. package/examples/basic-api/addons/tasks/items/commands/toggle.js +0 -26
  279. package/examples/basic-api/addons/tasks/load.js +0 -8
  280. package/examples/basic-api/index.js +0 -15
  281. package/examples/basic-api/package.json +0 -7
  282. package/examples/basic-front/back/assets.js +0 -12
  283. package/examples/basic-front/back/index.js +0 -13
  284. package/examples/basic-front/back/items/commands/html.js +0 -14
  285. package/examples/basic-front/back/items/commands/test.js +0 -19
  286. package/examples/basic-front/back/items/html/fonts.js +0 -12
  287. package/examples/basic-front/front/pages/home.js +0 -16
  288. package/examples/basic-front/front/styles/main.css +0 -31
  289. package/examples/basic-front/front/test.js +0 -7
  290. package/examples/basic-front/package.json +0 -7
  291. package/lib/items/directives/500-blur.js +0 -46
  292. package/lib/items/directives/500-change.js +0 -53
  293. package/lib/items/directives/500-click-outside.js +0 -50
  294. package/lib/items/directives/500-click.js +0 -52
  295. package/lib/items/directives/500-double-click.js +0 -52
  296. package/lib/items/directives/500-focus.js +0 -46
  297. package/lib/items/directives/500-input.js +0 -46
  298. package/lib/items/directives/500-keydown.js +0 -53
  299. package/lib/items/directives/500-keyup.js +0 -53
  300. package/lib/items/directives/500-mouse-enter.js +0 -61
  301. package/lib/items/directives/500-mouse-leave.js +0 -61
  302. package/lib/items/directives/500-mouse-move.js +0 -45
  303. package/lib/items/directives/500-scroll.js +0 -45
  304. package/lib/items/directives/500-submit.js +0 -52
  305. package/lib/items/elements/ai/chat/chat.css +0 -710
  306. package/lib/items/elements/ai/chat/chat.js +0 -429
  307. package/lib/src/mixins/logger.js +0 -83
  308. package/lib/styles/queries.css +0 -6
  309. package/lists.md +0 -586
  310. package/orchestrator.md +0 -288
  311. /package/addons/modules/shortcuts/front/{#register/addon.js → addon.js} +0 -0
  312. /package/addons/render/directives/front/{js/functions → functions}/process/data.js +0 -0
  313. /package/{lib/items/directives → addons/render/directives/front/items/self}/100-if.js +0 -0
  314. /package/{lib/items/directives → addons/render/directives/front/items/self}/700-text.js +0 -0
  315. /package/{lib/items/directives → addons/render/directives/front/items/self}/750-html.js +0 -0
  316. /package/addons/render/elements/front/{#register/addon.js → addon.js} +0 -0
  317. /package/{lib/items/elements → addons/render/elements/front/items/self}/cards/pricing/pricing.css +0 -0
  318. /package/{lib/items/elements → addons/render/elements/front/items/self}/form/button/button.css +0 -0
  319. /package/{lib/items/elements → addons/render/elements/front/items/self}/form/checkbox/checkbox.css +0 -0
  320. /package/{lib/items/elements → addons/render/elements/front/items/self}/form/date/date.css +0 -0
  321. /package/{lib/items/elements → addons/render/elements/front/items/self}/form/field/field.css +0 -0
  322. /package/{lib/items/elements → addons/render/elements/front/items/self}/form/field/field.js +0 -0
  323. /package/{lib/items/elements → addons/render/elements/front/items/self}/form/input/input.css +0 -0
  324. /package/{lib/items/elements → addons/render/elements/front/items/self}/form/radio/radio.css +0 -0
  325. /package/{lib/items/elements → addons/render/elements/front/items/self}/form/rating/rating.css +0 -0
  326. /package/{lib/items/elements → addons/render/elements/front/items/self}/form/section/section.css +0 -0
  327. /package/{lib/items/elements → addons/render/elements/front/items/self}/form/section/section.js +0 -0
  328. /package/{lib/items/elements → addons/render/elements/front/items/self}/form/select/select.css +0 -0
  329. /package/{lib/items/elements → addons/render/elements/front/items/self}/form/slider/slider.css +0 -0
  330. /package/{lib/items/elements → addons/render/elements/front/items/self}/form/tags/tags.css +0 -0
  331. /package/{lib/items/elements → addons/render/elements/front/items/self}/form/textarea/textarea.css +0 -0
  332. /package/{lib/items/elements → addons/render/elements/front/items/self}/global/code/code.css +0 -0
  333. /package/{lib/items/elements → addons/render/elements/front/items/self}/global/faq/faq.css +0 -0
  334. /package/{lib/items/elements → addons/render/elements/front/items/self}/global/heading/heading.css +0 -0
  335. /package/{lib/items/elements → addons/render/elements/front/items/self}/global/markdown/markdown.css +0 -0
  336. /package/{lib/items/elements → addons/render/elements/front/items/self}/global/menu/menu.css +0 -0
  337. /package/{lib/items/elements → addons/render/elements/front/items/self}/global/notice/notice.css +0 -0
  338. /package/{lib/items/elements → addons/render/elements/front/items/self}/global/notice/notice.js +0 -0
  339. /package/{lib/items/elements → addons/render/elements/front/items/self}/global/parameters/parameters.css +0 -0
  340. /package/{lib/items/elements → addons/render/elements/front/items/self}/global/parameters/parameters.js +0 -0
  341. /package/{lib/items/elements → addons/render/elements/front/items/self}/global/tags/tags.css +0 -0
  342. /package/{lib/items/elements → addons/render/elements/front/items/self}/navigation/navbar/navbar.css +0 -0
  343. /package/{lib/items/elements → addons/render/elements/front/items/self}/navigation/sidebar/sidebar.css +0 -0
  344. /package/{lib/items/elements → addons/render/elements/front/items/self}/navigation/tabs/tabs.css +0 -0
  345. /package/{lib/items/elements → addons/render/elements/front/items/self}/status/code/code.js +0 -0
  346. /package/{lib/items/elements → addons/render/elements/front/items/self}/status/loading/loading.js +0 -0
  347. /package/addons/render/transforms/{functions → js/functions}/data.js +0 -0
  348. /package/addons/render/transforms/{functions → js/functions}/run.js +0 -0
  349. /package/addons/render/transforms/{functions → js/functions}/runtime.js +0 -0
  350. /package/addons/render/transforms/{item → js/item}/functions/load.js +0 -0
  351. /package/addons/render/transforms/{items/directives → js/items/self}/transform.js +0 -0
package/docs/frontend.md DELETED
@@ -1,396 +0,0 @@
1
- # Frontend
2
-
3
- Proxy-based reactivity with DOM diffing, Vue-like directives, SPA page routing, and convention-based asset bundling.
4
-
5
- ## Pages
6
-
7
- Pages define routes with async data loading, CSS Grid layouts, and template areas.
8
-
9
- ```js
10
- pages.ItemAdd({
11
- id: 'home',
12
- route: '/',
13
- title: 'Home',
14
- grid: {
15
- template: '"content"',
16
- columns: '1fr',
17
- rows: '1fr'
18
- },
19
- areas: {
20
- content: function() {
21
- return `
22
- <div class="page-home">
23
- <c-navbar></c-navbar>
24
- <c-hero title="Welcome"></c-hero>
25
- <c-footer></c-footer>
26
- </div>
27
- `;
28
- }
29
- }
30
- });
31
- ```
32
-
33
- ### Route params
34
-
35
- ```js
36
- pages.ItemAdd({
37
- id: 'offer',
38
- route: '/ponuda/:id/:type/:location/:name',
39
- // ...
40
- });
41
- ```
42
-
43
- Params are available in `this.parameters`:
44
-
45
- ```js
46
- areas: {
47
- content: function() {
48
- const id = this.parameters.id;
49
- // ...
50
- }
51
- }
52
- ```
53
-
54
- ### Multiple routes
55
-
56
- ```js
57
- route: ['/offers', '/offers/:type/:value']
58
- ```
59
-
60
- ### Async data loading
61
-
62
- The `data` function runs before render:
63
-
64
- ```js
65
- pages.ItemAdd({
66
- id: 'offer',
67
- route: '/ponuda/:id/:type/:location/:name',
68
-
69
- title: function(parameters, data) {
70
- return data?.offer?.name || 'Offer';
71
- },
72
-
73
- data: async function(parameters) {
74
- const offer = await offers.Find()
75
- .filter('id', parameters.id)
76
- .join('files', 'cover_id', 'cover')
77
- .join('countries', 'countries', 'countries')
78
- .join('cities', 'cities', 'cities')
79
- .one();
80
-
81
- return { offer: offer ? offer.data : null };
82
- },
83
-
84
- areas: {
85
- content: function() {
86
- this.offer = this.data.offer || {};
87
-
88
- return `
89
- <div>
90
- <h1>{{ offer.name }}</h1>
91
- <span ot-if="offer.stars">{{ offer.stars }} stars</span>
92
- </div>
93
- `;
94
- }
95
- }
96
- });
97
- ```
98
-
99
- ### Interactive pages
100
-
101
- Pages can have local state and methods:
102
-
103
- ```js
104
- areas: {
105
- content: function() {
106
- this.items = [];
107
- this.page = 1;
108
- this.total = 0;
109
-
110
- this.fetch = async () => {
111
- const result = await offers.Find()
112
- .filter('status', 'Aktivna')
113
- .sort('score', 'desc')
114
- .page(this.page)
115
- .limit(12)
116
- .plain();
117
-
118
- this.items = result.items;
119
- this.total = result.total;
120
- };
121
-
122
- this.handlePageChange = (newPage) => {
123
- this.page = newPage;
124
- this.fetch();
125
- };
126
-
127
- this.fetch();
128
-
129
- return `
130
- <div>
131
- <span>{{ total }} results</span>
132
-
133
- <div ot-if="items.length > 0" class="grid">
134
- <a ot-for="offer in items" :href="'/offer/' + offer.id">
135
- <c-offer-card :offer="offer"></c-offer-card>
136
- </a>
137
- </div>
138
-
139
- <c-pagination
140
- :page="page"
141
- :pages="Math.ceil(total / 12)"
142
- :_change="handlePageChange"
143
- ></c-pagination>
144
- </div>
145
- `;
146
- }
147
- }
148
- ```
149
-
150
- Setting `this.items`, `this.page`, or `this.total` triggers a 16ms debounced re-render with DOM diffing.
151
-
152
- ## Components
153
-
154
- Reusable UI elements with typed config and template rendering.
155
-
156
- ```js
157
- components.ItemAdd({
158
- id: 'hero',
159
- config: {
160
- title: { type: 'string', value: 'Page Title' },
161
- subtitle: { type: 'string', value: '' },
162
- image: { type: 'string', value: '' },
163
- variant: { type: 'array', value: [], options: ['compact', 'tall'] }
164
- },
165
- render: function() {
166
- return `
167
- <section class="holder" :style="'background-image: url(' + image + ')'">
168
- <div class="overlay"></div>
169
- <div class="content">
170
- <slot name="top"></slot>
171
- <h1>{{ title }}</h1>
172
- <p ot-if="subtitle">{{ subtitle }}</p>
173
- </div>
174
- </section>
175
- `;
176
- }
177
- });
178
- ```
179
-
180
- ### Using components
181
-
182
- Components become custom elements prefixed with `c-`:
183
-
184
- ```html
185
- <c-hero title="Our Offers" subtitle="Find your trip" image="/hero.jpg">
186
- <div slot="top">
187
- <c-breadcrumb :items="[{label: 'Home', href: '/'}, {label: 'Offers'}]"></c-breadcrumb>
188
- </div>
189
- </c-hero>
190
- ```
191
-
192
- ### Config types
193
-
194
- ```js
195
- config: {
196
- title: { type: 'string', value: 'Default' },
197
- count: { type: 'number', value: 0 },
198
- active: { type: 'boolean', value: true },
199
- items: { type: 'array', value: [] },
200
- data: { type: 'object', value: {} },
201
- variant: { type: 'array', value: [], options: ['size-s', 'size-m', 'size-l'] },
202
- _click: { type: 'function' }, // callback (prefixed with _)
203
- _change: { type: 'function' }
204
- }
205
- ```
206
-
207
- ### Component with logic
208
-
209
- ```js
210
- components.ItemAdd({
211
- id: 'pagination',
212
- config: {
213
- page: { type: 'number', value: 1 },
214
- pages: { type: 'number', value: 1 },
215
- _change: { type: 'function' }
216
- },
217
- render: function() {
218
- this.goToPage = (num) => {
219
- if (num >= 1 && num <= this.pages) {
220
- this.page = num;
221
- if (this._change) this._change(num);
222
- }
223
- };
224
-
225
- return `
226
- <div class="pagination">
227
- <button ot-click="() => goToPage(page - 1)" :disabled="page === 1">Prev</button>
228
- <span>{{ page }} / {{ pages }}</span>
229
- <button ot-click="() => goToPage(page + 1)" :disabled="page === pages">Next</button>
230
- </div>
231
- `;
232
- }
233
- });
234
- ```
235
-
236
- ## Directives
237
-
238
- Vue-like syntax, processed during compile with priority ordering.
239
-
240
- ### Conditional rendering
241
-
242
- ```html
243
- <div ot-if="items.length > 0">Has items</div>
244
- <div ot-if="!loading">Content loaded</div>
245
- ```
246
-
247
- ### List rendering
248
-
249
- ```html
250
- <a ot-for="offer in items" :href="'/offer/' + offer.id">
251
- {{ offer.name }}
252
- </a>
253
-
254
- <!-- With index -->
255
- <div ot-for="item, index in items">
256
- {{ index }}: {{ item.name }}
257
- </div>
258
- ```
259
-
260
- ### Event handlers
261
-
262
- ```html
263
- <button ot-click="submit">Send</button>
264
- <button ot-click="() => goToPage(3)">Page 3</button>
265
- <input :_input="(e) => form.name = e.target.value">
266
- ```
267
-
268
- ### Dynamic attributes
269
-
270
- ```html
271
- <img :src="getImage()" :alt="name" loading="lazy">
272
- <div :class="'card ' + (active ? 'active' : '')">
273
- <div :style="'background-image: url(' + image + ')'">
274
- <button :disabled="page === 1">
275
- <article :variant="variant.join(' ')">
276
- ```
277
-
278
- ### Text interpolation
279
-
280
- ```html
281
- <span>{{ total }} results</span>
282
- <h1>{{ offer.name }}</h1>
283
- <span>{{ getStars() }}</span>
284
- ```
285
-
286
- ### All directives
287
-
288
- `ot-if`, `ot-show`, `ot-for`, `ot-click`, `ot-text`, `ot-html`, `ot-fetch`, `ot-render`, `ot-form`, and all DOM event handlers.
289
-
290
- ## Reactivity
291
-
292
- Setting any property on a render context triggers a re-render:
293
-
294
- ```js
295
- this.count = 0;
296
- this.increment = () => this.count++; // triggers DOM update
297
- ```
298
-
299
- Updates are batched with a 16ms debounce. The framework diffs the new DOM against the current DOM and patches only what changed. No virtual DOM — direct DOM diffing.
300
-
301
- Lifecycle: `init → render → compile → ready → mount → update → unmount → destroy`.
302
-
303
- ## Slots
304
-
305
- Components can define named slots:
306
-
307
- ```js
308
- render: function() {
309
- return `
310
- <div>
311
- <slot name="top"></slot>
312
- <div class="content">
313
- <slot></slot>
314
- </div>
315
- </div>
316
- `;
317
- }
318
- ```
319
-
320
- Usage:
321
-
322
- ```html
323
- <c-layout>
324
- <div slot="top">Header content</div>
325
- <p>Default slot content</p>
326
- </c-layout>
327
- ```
328
-
329
- ## Asset bundling
330
-
331
- Convention-based bundler that scans directories, strips ES module syntax, concatenates, and minifies.
332
-
333
- ### Asset registry
334
-
335
- All asset paths are registered centrally in `lib/load.js` via `onetype.Assets()`. The import function resolves IDs to paths from this registry.
336
-
337
- ```js
338
- // In application back/index.js — import by ID
339
- assets.Fn('import', ['framework', 'styles', 'commands', 'elements/input', 'transforms/swiper']);
340
- ```
341
-
342
- Available asset IDs:
343
-
344
- | ID | Type | Description |
345
- |---|---|---|
346
- | `framework` | js | Core framework library |
347
- | `styles` | css | Shared CSS (variables, reset, queries, utilities) |
348
- | `commands` | js | Command system (front-end) |
349
- | `database` | js | Database (front-end) |
350
- | `directives` | js | Directives addon |
351
- | `transforms` | js | Transforms addon |
352
- | `pages` | js+css | Page router addon |
353
- | `elements` | js+css | Elements addon |
354
- | `float` | js+css | Float system (modals, toasts, tooltips, popups, overlays) |
355
- | `elements/form/input` | js+css | Granular element import |
356
- | `transforms/swiper` | js | Granular transform import |
357
-
358
- Granular imports use `elements/<group>/<name>` and `transforms/<name>` format. Element groups: `form`, `global`, `sections`, `status`.
359
-
360
- ### Manual asset items
361
-
362
- ```js
363
- // Scan a custom directory
364
- assets.Item({ type: 'js', order: 2, path: resolve(root, 'front') });
365
- assets.Item({ type: 'css', order: 2, path: resolve(root, 'front') });
366
- ```
367
-
368
- ### Dynamic content injection
369
-
370
- Inject server-side data into the frontend bundle:
371
-
372
- ```js
373
- assets.Item({
374
- type: 'js',
375
- order: 4,
376
- content: function() {
377
- const items = Object.values(settings.Items())
378
- .filter(item => item.Get('organization_id') === 9)
379
- .map(item => item.data);
380
-
381
- return `settings.ItemsAdd(${JSON.stringify(items)}, null, false);`;
382
- }
383
- });
384
- ```
385
-
386
- This runs at bundle time — server-side data becomes available client-side without an API call.
387
-
388
- ### How it works
389
-
390
- 1. Scans directories recursively for `.js` or `.css` files
391
- 2. Prioritizes `addon.js` files (loaded first)
392
- 3. Strips `import`/`export` statements
393
- 4. Concatenates by `order` value
394
- 5. Minifies via terser
395
-
396
- No webpack, no build step, no configuration files.
package/docs/servers.md DELETED
@@ -1,187 +0,0 @@
1
- # Servers
2
-
3
- HTTP and gRPC servers, both configured through the commands addon.
4
-
5
- ## HTTP server
6
-
7
- ```js
8
- import commands from '#commands/load.js';
9
-
10
- commands.Fn('http.server', 3000, {
11
- onStart: (server) => {
12
- console.log('HTTP server started on port 3000');
13
- },
14
- onResponse: (http) => {
15
- // Called after each response
16
- },
17
- onError: (error) => {
18
- console.log('HTTP server error:', error.message);
19
- }
20
- });
21
- ```
22
-
23
- ## HTTP object
24
-
25
- Every request creates an `http` object passed to `onRequest` and command callbacks (via `this.http`):
26
-
27
- | Property | Type | Description |
28
- |---|---|---|
29
- | `request` | IncomingMessage | Node.js request (headers, method, url) |
30
- | `response` | ServerResponse | Node.js response (writeHead, setHeader, end) |
31
- | `data` | object | Parsed request data (query params + body) |
32
- | `url` | URL | Parsed request URL |
33
- | `user` | object | `{ ip, agent, forwarded, referrer }` |
34
- | `respond` | object | `{ type, data, message, code }` — response payload |
35
- | `prevent` | boolean | Set `true` to skip automatic response |
36
-
37
- ## Cookies
38
-
39
- Built-in cookie support via `onetype.Cookie*` methods. Works on both front (browser) and back (server) — detected via `onetype.environment`.
40
-
41
- ### Back (server)
42
-
43
- ```js
44
- // Read from request
45
- const token = onetype.CookieGet('token', this.http.request);
46
-
47
- // Set on response (HttpOnly + Secure by default)
48
- onetype.CookieSet('token', value, {
49
- path: '/',
50
- maxAge: 86400,
51
- sameSite: 'Strict'
52
- }, this.http.response);
53
-
54
- // Clear
55
- onetype.CookieClear('token', { path: '/' }, this.http.response);
56
- ```
57
-
58
- ### Front (browser)
59
-
60
- ```js
61
- onetype.CookieSet('theme', 'dark', { path: '/', maxAge: 86400 });
62
- const theme = onetype.CookieGet('theme');
63
- onetype.CookieClear('theme');
64
- ```
65
-
66
- ### Options
67
-
68
- | Option | Back default | Front default | Description |
69
- |---|---|---|---|
70
- | `path` | — | — | Cookie path |
71
- | `maxAge` | — | — | Lifetime in seconds |
72
- | `domain` | — | — | Cookie domain |
73
- | `httpOnly` | `true` | N/A | JS can't read the cookie |
74
- | `secure` | `true` | `false` | HTTPS only |
75
- | `sameSite` | — | — | `Strict`, `Lax`, or `None` |
76
-
77
- ## gRPC server
78
-
79
- Bidirectional streaming with automatic reconnection and binary data transport.
80
-
81
- ```js
82
- commands.Fn('grpc.server', 50000, {
83
- onStart: function() {
84
- console.log('gRPC server started on port 50000');
85
- },
86
- onStreamConnect: async function(stream) {
87
- // Authenticate via metadata
88
- const node = await nodes.Fn('find', stream.metadata.get('token')[0]);
89
-
90
- // Track the connection as an item
91
- const connection = streams.Item({
92
- gateway_id: gateway.Get('id'),
93
- node_id: node.Get('id')
94
- });
95
- await connection.Create();
96
-
97
- // Attach runtime state via Store
98
- connection.StoreSet('gateway', gateway);
99
- connection.StoreSet('node', node);
100
- connection.StoreSet('stream', stream);
101
-
102
- stream.connection = connection;
103
-
104
- console.log('Connection established:', node.Get('name'));
105
- },
106
- onStreamEnd: function(stream) {
107
- if (stream.connection) {
108
- const node = stream.connection.StoreGet('node');
109
- console.log('Disconnected:', node.Get('name'));
110
-
111
- stream.connection.Delete();
112
- stream.connection.Remove();
113
- }
114
- },
115
- onStreamError: function(stream) {
116
- console.log('Stream error');
117
- },
118
- onError: function(message) {
119
- console.log('Server error:', message);
120
- }
121
- });
122
- ```
123
-
124
- ## Binary transport
125
-
126
- gRPC messages are JSON strings. Binary data (Buffers) is automatically extracted into a separate `map<string, bytes>` field before sending and re-injected on receive.
127
-
128
- ```js
129
- // Extract binaries from a data object
130
- const extracted = onetype.BinariesExtract(data);
131
- // extracted.data → JSON-safe object (Buffers replaced with keys)
132
- // extracted.binaries → map of key → Buffer
133
-
134
- // Re-inject binaries
135
- const restored = onetype.BinariesInject(extracted.data, extracted.binaries);
136
- ```
137
-
138
- This enables transparent file transfers over the same gRPC stream without base64 encoding.
139
-
140
- ## Store API
141
-
142
- Per-item in-memory key-value storage — useful for attaching runtime state (like gRPC streams) to items:
143
-
144
- ```js
145
- // Set
146
- connection.StoreSet('node', nodeItem);
147
- connection.StoreSet('stream', streamObject);
148
-
149
- // Get
150
- const node = connection.StoreGet('node');
151
- const stream = connection.StoreGet('stream');
152
- ```
153
-
154
- Store data is never persisted to the database. It exists only in memory for the lifetime of the item.
155
-
156
- ## Requesting over gRPC
157
-
158
- Send a request to a connected node and await the response:
159
-
160
- ```js
161
- const response = await stream.request('tool-slug', inputProperties, (chunk) => {
162
- // Optional: handle streaming chunks
163
- resolve(chunk.data, chunk.message, chunk.code, false);
164
- });
165
-
166
- // response.data, response.message, response.code, response.time
167
- ```
168
-
169
- ## Graceful shutdown
170
-
171
- The framework handles process signals through middleware:
172
-
173
- ```js
174
- process.on('SIGINT', async () => {
175
- await onetype.Middleware('sigint');
176
- await onetype.Middleware('shutdown');
177
- process.exit(0);
178
- });
179
- ```
180
-
181
- Register shutdown handlers:
182
-
183
- ```js
184
- onetype.MiddlewareAdd('shutdown', async () => {
185
- // Close connections, flush data, etc.
186
- });
187
- ```
@@ -1,34 +0,0 @@
1
- # Basic API
2
-
3
- In-memory task CRUD API using the commands addon.
4
-
5
- ## Run
6
-
7
- ```bash
8
- node index.js
9
- ```
10
-
11
- ## Endpoints
12
-
13
- | Method | Endpoint | Description |
14
- |--------|----------|-------------|
15
- | GET | /api/tasks | List all tasks |
16
- | POST | /api/tasks | Create a task |
17
- | PUT | /api/tasks/:id | Toggle task done |
18
- | DELETE | /api/tasks/:id | Delete a task |
19
-
20
- ## Example
21
-
22
- ```bash
23
- # Create
24
- curl -X POST http://localhost:3000/api/tasks -d '{"title":"Buy milk"}'
25
-
26
- # List
27
- curl http://localhost:3000/api/tasks
28
-
29
- # Toggle
30
- curl -X PUT http://localhost:3000/api/tasks/1234
31
-
32
- # Delete
33
- curl -X DELETE http://localhost:3000/api/tasks/1234
34
- ```
@@ -1,10 +0,0 @@
1
- import onetype from 'onetype';
2
-
3
- const tasks = onetype.Addon('tasks', (addon) =>
4
- {
5
- addon.Field('id', ['number']);
6
- addon.Field('title', ['string', null, true]);
7
- addon.Field('done', ['boolean', false]);
8
- });
9
-
10
- export default tasks;
@@ -1,22 +0,0 @@
1
- import commands from 'onetype/commands';
2
- import tasks from '../../addon.js';
3
-
4
- commands.Item({
5
- id: 'tasks:create',
6
- method: 'POST',
7
- endpoint: '/api/tasks',
8
- exposed: true,
9
- in: {
10
- title: ['string', null, true]
11
- },
12
- callback: async function(properties, resolve)
13
- {
14
- const task = tasks.Item({
15
- id: Date.now(),
16
- title: properties.title,
17
- done: false
18
- });
19
-
20
- resolve({ task: task.Get(['id', 'title', 'done']) });
21
- }
22
- });
@@ -1,26 +0,0 @@
1
- import commands from 'onetype/commands';
2
- import tasks from '../../addon.js';
3
-
4
- commands.Item({
5
- id: 'tasks:delete',
6
- method: 'DELETE',
7
- endpoint: '/api/tasks/:id',
8
- exposed: true,
9
- in: {
10
- id: ['number', null, true]
11
- },
12
- callback: async function(properties, resolve)
13
- {
14
- const items = Object.values(tasks.Items());
15
- const task = items.find(item => item.Get('id') === properties.id);
16
-
17
- if(!task)
18
- {
19
- return resolve(null, 'Task not found', 404);
20
- }
21
-
22
- task.Remove();
23
-
24
- resolve({ success: true });
25
- }
26
- });
@@ -1,17 +0,0 @@
1
- import commands from 'onetype/commands';
2
- import tasks from '../../addon.js';
3
-
4
- commands.Item({
5
- id: 'tasks:list',
6
- method: 'GET',
7
- endpoint: '/api/tasks',
8
- exposed: true,
9
- callback: async function(properties, resolve)
10
- {
11
- const items = Object.values(tasks.Items());
12
-
13
- resolve({
14
- tasks: items.map(item => item.Get(['id', 'title', 'done']))
15
- });
16
- }
17
- });