@fullstackunicorn/create-root 1.0.16 → 1.0.18

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 (327) hide show
  1. package/assets/root.fullstackunicorn.dev/.gitlab-ci.yml +42 -0
  2. package/assets/root.fullstackunicorn.dev/assets/.env +6 -0
  3. package/assets/root.fullstackunicorn.dev/assets/config.cmd.sh +86 -0
  4. package/assets/root.fullstackunicorn.dev/assets/index.cmd.js +30 -0
  5. package/assets/root.fullstackunicorn.dev/assets/index.def.js +190 -0
  6. package/assets/root.fullstackunicorn.dev/assets/index.dep.js +20 -0
  7. package/assets/root.fullstackunicorn.dev/assets/index.init.js +8 -0
  8. package/assets/root.fullstackunicorn.dev/assets/index.js +4 -0
  9. package/assets/root.fullstackunicorn.dev/assets/modules/sync.auth.js +3 -0
  10. package/assets/root.fullstackunicorn.dev/assets/modules/sync.js +430 -0
  11. package/assets/root.fullstackunicorn.dev/assets/modules/sync.local.js +117 -0
  12. package/assets/root.fullstackunicorn.dev/assets/modules/sync.tools.js +102 -0
  13. package/assets/root.fullstackunicorn.dev/assets/package.json +32 -0
  14. package/assets/root.fullstackunicorn.dev/assets/package.md +13 -0
  15. package/assets/root.fullstackunicorn.dev/assets/webapp.runner.js +63 -0
  16. package/assets/root.fullstackunicorn.dev/backend/.env +13 -0
  17. package/assets/root.fullstackunicorn.dev/backend/config.cmd.sh +79 -0
  18. package/assets/root.fullstackunicorn.dev/backend/dockerfile +12 -0
  19. package/assets/root.fullstackunicorn.dev/backend/index.def.js +15 -0
  20. package/assets/root.fullstackunicorn.dev/backend/index.dep.js +19 -0
  21. package/assets/root.fullstackunicorn.dev/backend/index.init.js +25 -0
  22. package/assets/root.fullstackunicorn.dev/backend/index.js +15 -0
  23. package/assets/root.fullstackunicorn.dev/backend/modules/cookies.js +64 -0
  24. package/assets/root.fullstackunicorn.dev/backend/modules/loader.js +103 -0
  25. package/assets/root.fullstackunicorn.dev/backend/modules/loader.tools.js +22 -0
  26. package/assets/root.fullstackunicorn.dev/backend/modules/stripe.js +299 -0
  27. package/assets/root.fullstackunicorn.dev/backend/modules/stripe.session.js +1 -0
  28. package/assets/root.fullstackunicorn.dev/backend/modules/stripe.tools.js +126 -0
  29. package/assets/root.fullstackunicorn.dev/backend/package.json +35 -0
  30. package/assets/root.fullstackunicorn.dev/backend/server/errors.js +29 -0
  31. package/assets/root.fullstackunicorn.dev/backend/server/errors.list.js +69 -0
  32. package/assets/root.fullstackunicorn.dev/backend/server/middleware.auth.js +4 -0
  33. package/assets/root.fullstackunicorn.dev/backend/server/middleware.js +29 -0
  34. package/assets/root.fullstackunicorn.dev/backend/server/middleware.prod.js +18 -0
  35. package/assets/root.fullstackunicorn.dev/backend/server/resolvers.js +21 -0
  36. package/assets/root.fullstackunicorn.dev/backend/server/router.js +60 -0
  37. package/assets/root.fullstackunicorn.dev/config.cmd.sh +178 -0
  38. package/assets/root.fullstackunicorn.dev/config.code-workspace +7 -0
  39. package/assets/root.fullstackunicorn.dev/config.reduce.js +84 -0
  40. package/assets/root.fullstackunicorn.dev/frontend/.env +3 -0
  41. package/assets/root.fullstackunicorn.dev/frontend/App.js +23 -0
  42. package/assets/root.fullstackunicorn.dev/frontend/App.sw.js +12 -0
  43. package/assets/root.fullstackunicorn.dev/frontend/App.tracking.js +13 -0
  44. package/assets/root.fullstackunicorn.dev/frontend/App.uri.js +63 -0
  45. package/assets/root.fullstackunicorn.dev/frontend/abstracts/abs.js +148 -0
  46. package/assets/root.fullstackunicorn.dev/frontend/abstracts/dateTime.js +120 -0
  47. package/assets/root.fullstackunicorn.dev/frontend/abstracts/err.js +31 -0
  48. package/assets/root.fullstackunicorn.dev/frontend/abstracts/img.js +38 -0
  49. package/assets/root.fullstackunicorn.dev/frontend/assets/index.webmanifest +21 -0
  50. package/assets/root.fullstackunicorn.dev/frontend/assets/llms.dev.txt +2 -0
  51. package/assets/root.fullstackunicorn.dev/frontend/assets/llms.txt +8 -0
  52. package/assets/root.fullstackunicorn.dev/frontend/assets/robots.dev.txt +2 -0
  53. package/assets/root.fullstackunicorn.dev/frontend/assets/robots.txt +4 -0
  54. package/assets/root.fullstackunicorn.dev/frontend/base/account/@use.js +95 -0
  55. package/assets/root.fullstackunicorn.dev/frontend/base/account/AccountCard.js +37 -0
  56. package/assets/root.fullstackunicorn.dev/frontend/base/account/AccountLogo.js +27 -0
  57. package/assets/root.fullstackunicorn.dev/frontend/base/account/AccountLogo.pod.js +34 -0
  58. package/assets/root.fullstackunicorn.dev/frontend/base/alerts/@use.js +7 -0
  59. package/assets/root.fullstackunicorn.dev/frontend/base/alerts/Alert.js +24 -0
  60. package/assets/root.fullstackunicorn.dev/frontend/base/alerts/Alert.pod.js +28 -0
  61. package/assets/root.fullstackunicorn.dev/frontend/base/alerts/Alerts.js +35 -0
  62. package/assets/root.fullstackunicorn.dev/frontend/base/callout/Callout.js +16 -0
  63. package/assets/root.fullstackunicorn.dev/frontend/base/callout/Callout.pod.js +25 -0
  64. package/assets/root.fullstackunicorn.dev/frontend/base/checkout/@tools.js +41 -0
  65. package/assets/root.fullstackunicorn.dev/frontend/base/checkout/@use.js +34 -0
  66. package/assets/root.fullstackunicorn.dev/frontend/base/checkout/CheckoutCard.js +29 -0
  67. package/assets/root.fullstackunicorn.dev/frontend/base/checkout/CheckoutCard.pod.js +25 -0
  68. package/assets/root.fullstackunicorn.dev/frontend/base/cookies/@tools.js +67 -0
  69. package/assets/root.fullstackunicorn.dev/frontend/base/cookies/@use.js +218 -0
  70. package/assets/root.fullstackunicorn.dev/frontend/base/cookies/CookiesCard.js +19 -0
  71. package/assets/root.fullstackunicorn.dev/frontend/base/errors/@use.js +7 -0
  72. package/assets/root.fullstackunicorn.dev/frontend/base/errors/Errors.js +14 -0
  73. package/assets/root.fullstackunicorn.dev/frontend/base/language/@tools.js +45 -0
  74. package/assets/root.fullstackunicorn.dev/frontend/base/language/@use.js +144 -0
  75. package/assets/root.fullstackunicorn.dev/frontend/base/language/LanguageButton.js +18 -0
  76. package/assets/root.fullstackunicorn.dev/frontend/base/language/LanguageCard.js +20 -0
  77. package/assets/root.fullstackunicorn.dev/frontend/base/layout/@use.js +91 -0
  78. package/assets/root.fullstackunicorn.dev/frontend/base/layout/Footer.js +5 -0
  79. package/assets/root.fullstackunicorn.dev/frontend/base/layout/Footer.pod.js +19 -0
  80. package/assets/root.fullstackunicorn.dev/frontend/base/layout/Header.js +22 -0
  81. package/assets/root.fullstackunicorn.dev/frontend/base/layout/Header.pod.js +37 -0
  82. package/assets/root.fullstackunicorn.dev/frontend/base/layout/Layout.js +41 -0
  83. package/assets/root.fullstackunicorn.dev/frontend/base/layout/Layout.pod.js +30 -0
  84. package/assets/root.fullstackunicorn.dev/frontend/base/layout/menus/@use.js +21 -0
  85. package/assets/root.fullstackunicorn.dev/frontend/base/layout/menus/MenuTwo.js +41 -0
  86. package/assets/root.fullstackunicorn.dev/frontend/base/layout/menus/MenuTwo.pod.js +38 -0
  87. package/assets/root.fullstackunicorn.dev/frontend/base/layout/sideTwo/@use.js +48 -0
  88. package/assets/root.fullstackunicorn.dev/frontend/base/layout/sideTwo/IconTwo.js +30 -0
  89. package/assets/root.fullstackunicorn.dev/frontend/base/layout/sideTwo/IconTwo.pod.js +22 -0
  90. package/assets/root.fullstackunicorn.dev/frontend/base/layout/sideTwo/SidebarTwo.js +46 -0
  91. package/assets/root.fullstackunicorn.dev/frontend/base/layout/sideTwo/SidebarTwo.pod.js +29 -0
  92. package/assets/root.fullstackunicorn.dev/frontend/base/legals/LegalCard.js +17 -0
  93. package/assets/root.fullstackunicorn.dev/frontend/base/legals/LegalsCard.js +20 -0
  94. package/assets/root.fullstackunicorn.dev/frontend/base/loader/@tools.js +111 -0
  95. package/assets/root.fullstackunicorn.dev/frontend/base/loader/@use.js +35 -0
  96. package/assets/root.fullstackunicorn.dev/frontend/base/loader/Loader.js +20 -0
  97. package/assets/root.fullstackunicorn.dev/frontend/base/loader/Normalizer.js +58 -0
  98. package/assets/root.fullstackunicorn.dev/frontend/base/loader/Starter.js +17 -0
  99. package/assets/root.fullstackunicorn.dev/frontend/base/lookups/@use.js +85 -0
  100. package/assets/root.fullstackunicorn.dev/frontend/base/modals/@use.js +67 -0
  101. package/assets/root.fullstackunicorn.dev/frontend/base/modals/Modal.js +42 -0
  102. package/assets/root.fullstackunicorn.dev/frontend/base/modals/Modal.pod.js +43 -0
  103. package/assets/root.fullstackunicorn.dev/frontend/base/modals/ModalPopup.pod.js +41 -0
  104. package/assets/root.fullstackunicorn.dev/frontend/base/modals/Modals.js +12 -0
  105. package/assets/root.fullstackunicorn.dev/frontend/base/router/@tools.js +26 -0
  106. package/assets/root.fullstackunicorn.dev/frontend/base/router/@use.js +212 -0
  107. package/assets/root.fullstackunicorn.dev/frontend/base/router/Router.js +21 -0
  108. package/assets/root.fullstackunicorn.dev/frontend/base/statics/@use.js +46 -0
  109. package/assets/root.fullstackunicorn.dev/frontend/base/theme/@use.js +28 -0
  110. package/assets/root.fullstackunicorn.dev/frontend/base/theme/ThemeCard.js +21 -0
  111. package/assets/root.fullstackunicorn.dev/frontend/client/@api.js +15 -0
  112. package/assets/root.fullstackunicorn.dev/frontend/client/auth.js +213 -0
  113. package/assets/root.fullstackunicorn.dev/frontend/client/cookies.js +41 -0
  114. package/assets/root.fullstackunicorn.dev/frontend/client/fonts.js +19 -0
  115. package/assets/root.fullstackunicorn.dev/frontend/client/load.js +26 -0
  116. package/assets/root.fullstackunicorn.dev/frontend/client/statics.js +47 -0
  117. package/assets/root.fullstackunicorn.dev/frontend/client/stripe.js +38 -0
  118. package/assets/root.fullstackunicorn.dev/frontend/config.cmd.sh +94 -0
  119. package/assets/root.fullstackunicorn.dev/frontend/config.cmd.vite.js +205 -0
  120. package/assets/root.fullstackunicorn.dev/frontend/config.meta.js +0 -0
  121. package/assets/root.fullstackunicorn.dev/frontend/config.style.js +86 -0
  122. package/assets/root.fullstackunicorn.dev/frontend/configure/cache.json +4 -0
  123. package/assets/root.fullstackunicorn.dev/frontend/configure/env.json +8 -0
  124. package/assets/root.fullstackunicorn.dev/frontend/configure/env.prod.json +8 -0
  125. package/assets/root.fullstackunicorn.dev/frontend/configure/layout.json +9 -0
  126. package/assets/root.fullstackunicorn.dev/frontend/configure/logo.json +4 -0
  127. package/assets/root.fullstackunicorn.dev/frontend/configure/services.json +10 -0
  128. package/assets/root.fullstackunicorn.dev/frontend/configure/trademark.json +9 -0
  129. package/assets/root.fullstackunicorn.dev/frontend/eslint.config.js +41 -0
  130. package/assets/root.fullstackunicorn.dev/frontend/features/legal/Legal.js +15 -0
  131. package/assets/root.fullstackunicorn.dev/frontend/features/legal/Legal.pod.js +11 -0
  132. package/assets/root.fullstackunicorn.dev/frontend/imports/animated/Button.js +66 -0
  133. package/assets/root.fullstackunicorn.dev/frontend/imports/animated/Crossfader.js +32 -0
  134. package/assets/root.fullstackunicorn.dev/frontend/imports/animated/Fader.js +46 -0
  135. package/assets/root.fullstackunicorn.dev/frontend/imports/animated/HoverCard.js +31 -0
  136. package/assets/root.fullstackunicorn.dev/frontend/imports/animated/Layout.js +68 -0
  137. package/assets/root.fullstackunicorn.dev/frontend/imports/animated/Layout.use.js +33 -0
  138. package/assets/root.fullstackunicorn.dev/frontend/imports/animated/Layout.vars.js +20 -0
  139. package/assets/root.fullstackunicorn.dev/frontend/imports/animated/Root.js +26 -0
  140. package/assets/root.fullstackunicorn.dev/frontend/imports/cache.js +81 -0
  141. package/assets/root.fullstackunicorn.dev/frontend/imports/client.js +248 -0
  142. package/assets/root.fullstackunicorn.dev/frontend/imports/core/Backdrop.js +21 -0
  143. package/assets/root.fullstackunicorn.dev/frontend/imports/core/Background.js +21 -0
  144. package/assets/root.fullstackunicorn.dev/frontend/imports/core/Background.pod.js +20 -0
  145. package/assets/root.fullstackunicorn.dev/frontend/imports/core/Href.js +22 -0
  146. package/assets/root.fullstackunicorn.dev/frontend/imports/core/Iframe.js +13 -0
  147. package/assets/root.fullstackunicorn.dev/frontend/imports/core/Img.js +88 -0
  148. package/assets/root.fullstackunicorn.dev/frontend/imports/core/Img.pod.js +69 -0
  149. package/assets/root.fullstackunicorn.dev/frontend/imports/core/InputFile.js +26 -0
  150. package/assets/root.fullstackunicorn.dev/frontend/imports/core/InputTextItem.js +23 -0
  151. package/assets/root.fullstackunicorn.dev/frontend/imports/core/InputTextarea.js +39 -0
  152. package/assets/root.fullstackunicorn.dev/frontend/imports/core/InputTextline.js +23 -0
  153. package/assets/root.fullstackunicorn.dev/frontend/imports/core/Json.js +19 -0
  154. package/assets/root.fullstackunicorn.dev/frontend/imports/core/Link.js +105 -0
  155. package/assets/root.fullstackunicorn.dev/frontend/imports/core/List.js +18 -0
  156. package/assets/root.fullstackunicorn.dev/frontend/imports/core/Main.js +7 -0
  157. package/assets/root.fullstackunicorn.dev/frontend/imports/core/Pressable.js +14 -0
  158. package/assets/root.fullstackunicorn.dev/frontend/imports/core/Scrollable.js +27 -0
  159. package/assets/root.fullstackunicorn.dev/frontend/imports/core/Svg.js +23 -0
  160. package/assets/root.fullstackunicorn.dev/frontend/imports/core/Svg.pod.js +24 -0
  161. package/assets/root.fullstackunicorn.dev/frontend/imports/core/Text.js +118 -0
  162. package/assets/root.fullstackunicorn.dev/frontend/imports/core/View.js +13 -0
  163. package/assets/root.fullstackunicorn.dev/frontend/imports/fonts/tools.js +72 -0
  164. package/assets/root.fullstackunicorn.dev/frontend/imports/fonts/use.js +52 -0
  165. package/assets/root.fullstackunicorn.dev/frontend/imports/head/Head.js +39 -0
  166. package/assets/root.fullstackunicorn.dev/frontend/imports/npm.js +20 -0
  167. package/assets/root.fullstackunicorn.dev/frontend/imports/router.js +21 -0
  168. package/assets/root.fullstackunicorn.dev/frontend/imports/scroll/@use.js +85 -0
  169. package/assets/root.fullstackunicorn.dev/frontend/imports/scroll/scroll.js +33 -0
  170. package/assets/root.fullstackunicorn.dev/frontend/imports/service.js +27 -0
  171. package/assets/root.fullstackunicorn.dev/frontend/imports/storage.js +48 -0
  172. package/assets/root.fullstackunicorn.dev/frontend/imports/use.js +62 -0
  173. package/assets/root.fullstackunicorn.dev/frontend/index.html +36 -0
  174. package/assets/root.fullstackunicorn.dev/frontend/jsconfig.json +18 -0
  175. package/assets/root.fullstackunicorn.dev/frontend/menus/@use.js +15 -0
  176. package/assets/root.fullstackunicorn.dev/frontend/menus/Main.js +33 -0
  177. package/assets/root.fullstackunicorn.dev/frontend/menus/Main.use.js +22 -0
  178. package/assets/root.fullstackunicorn.dev/frontend/modals/countries/countries.js +39 -0
  179. package/assets/root.fullstackunicorn.dev/frontend/modules/buttons/IconTextButton.js +17 -0
  180. package/assets/root.fullstackunicorn.dev/frontend/modules/buttons/IconTextButton.pod.js +24 -0
  181. package/assets/root.fullstackunicorn.dev/frontend/modules/buttons/TextButton.js +47 -0
  182. package/assets/root.fullstackunicorn.dev/frontend/modules/buttons/TextButton.pod.js +94 -0
  183. package/assets/root.fullstackunicorn.dev/frontend/modules/core/Back.js +26 -0
  184. package/assets/root.fullstackunicorn.dev/frontend/modules/core/Back.pod.js +37 -0
  185. package/assets/root.fullstackunicorn.dev/frontend/modules/core/Bulleted.js +37 -0
  186. package/assets/root.fullstackunicorn.dev/frontend/modules/core/Icon.js +20 -0
  187. package/assets/root.fullstackunicorn.dev/frontend/modules/core/Icon.pod.js +28 -0
  188. package/assets/root.fullstackunicorn.dev/frontend/modules/core/Img.js +19 -0
  189. package/assets/root.fullstackunicorn.dev/frontend/modules/core/Img.pod.js +26 -0
  190. package/assets/root.fullstackunicorn.dev/frontend/modules/core/Link.js +35 -0
  191. package/assets/root.fullstackunicorn.dev/frontend/modules/core/Link.pod.js +28 -0
  192. package/assets/root.fullstackunicorn.dev/frontend/modules/core/Slider.js +1 -0
  193. package/assets/root.fullstackunicorn.dev/frontend/modules/core/Slider.pod.js +30 -0
  194. package/assets/root.fullstackunicorn.dev/frontend/modules/page/PageBox.js +15 -0
  195. package/assets/root.fullstackunicorn.dev/frontend/modules/trademarks/@use.js +25 -0
  196. package/assets/root.fullstackunicorn.dev/frontend/modules/trademarks/Logo.js +19 -0
  197. package/assets/root.fullstackunicorn.dev/frontend/modules/trademarks/Logo.pod.js +17 -0
  198. package/assets/root.fullstackunicorn.dev/frontend/modules/trademarks/Trademark.js +20 -0
  199. package/assets/root.fullstackunicorn.dev/frontend/modules/trademarks/Trademark.pod.js +17 -0
  200. package/assets/root.fullstackunicorn.dev/frontend/package.json +58 -0
  201. package/assets/root.fullstackunicorn.dev/frontend/pages/@use.js +50 -0
  202. package/assets/root.fullstackunicorn.dev/frontend/pages/app/Checkout.js +10 -0
  203. package/assets/root.fullstackunicorn.dev/frontend/pages/app/Home.abs.js +11 -0
  204. package/assets/root.fullstackunicorn.dev/frontend/pages/app/Home.api.js +18 -0
  205. package/assets/root.fullstackunicorn.dev/frontend/pages/app/Home.js +23 -0
  206. package/assets/root.fullstackunicorn.dev/frontend/pages/root/Callout.api.js +31 -0
  207. package/assets/root.fullstackunicorn.dev/frontend/pages/root/Callout.js +13 -0
  208. package/assets/root.fullstackunicorn.dev/frontend/pages/root/Legal.api.js +35 -0
  209. package/assets/root.fullstackunicorn.dev/frontend/pages/root/Legal.js +15 -0
  210. package/assets/root.fullstackunicorn.dev/frontend/pages/root/Legals.api.js +19 -0
  211. package/assets/root.fullstackunicorn.dev/frontend/pages/root/Legals.js +29 -0
  212. package/assets/root.fullstackunicorn.dev/frontend/pages/root/User.api.js +18 -0
  213. package/assets/root.fullstackunicorn.dev/frontend/pages/root/User.js +25 -0
  214. package/assets/root.fullstackunicorn.dev/frontend/panels/card/book/BookCard.js +58 -0
  215. package/assets/root.fullstackunicorn.dev/frontend/panels/card/book/BookCard.pod.js +37 -0
  216. package/assets/root.fullstackunicorn.dev/frontend/panels/card/book/BookProse.js +22 -0
  217. package/assets/root.fullstackunicorn.dev/frontend/panels/cards/Account.js +26 -0
  218. package/assets/root.fullstackunicorn.dev/frontend/panels/cards/Account.pod.js +48 -0
  219. package/assets/root.fullstackunicorn.dev/frontend/panels/cards/Launcher.js +19 -0
  220. package/assets/root.fullstackunicorn.dev/frontend/panels/cards/Launcher.pod.js +38 -0
  221. package/assets/root.fullstackunicorn.dev/frontend/panels/cards/Linker.js +20 -0
  222. package/assets/root.fullstackunicorn.dev/frontend/panels/cards/Linker.pod.js +38 -0
  223. package/assets/root.fullstackunicorn.dev/frontend/panels/cards/Slider.js +22 -0
  224. package/assets/root.fullstackunicorn.dev/frontend/panels/cards/Slider.pod.js +39 -0
  225. package/assets/root.fullstackunicorn.dev/frontend/panels/error/ErrorPage.js +12 -0
  226. package/assets/root.fullstackunicorn.dev/frontend/panels/error/ErrorPage.pod.js +23 -0
  227. package/assets/root.fullstackunicorn.dev/frontend/panels/grid/book/Grid.js +115 -0
  228. package/assets/root.fullstackunicorn.dev/frontend/panels/grid/book/Grid.pod.js +65 -0
  229. package/assets/root.fullstackunicorn.dev/frontend/panels/grid/book/Item.js +3 -0
  230. package/assets/root.fullstackunicorn.dev/frontend/panels/grid/book/Item.pod.js +50 -0
  231. package/assets/root.fullstackunicorn.dev/frontend/panels/layout/Bottom.js +12 -0
  232. package/assets/root.fullstackunicorn.dev/frontend/panels/layout/Bottom.pod.js +40 -0
  233. package/assets/root.fullstackunicorn.dev/frontend/panels/layout/PageTitle.js +3 -0
  234. package/assets/root.fullstackunicorn.dev/frontend/panels/layout/PageTitle.pod.js +21 -0
  235. package/assets/root.fullstackunicorn.dev/frontend/panels/page/PageScrollable.js +13 -0
  236. package/assets/root.fullstackunicorn.dev/frontend/panels/page/PageScrollable.pod.js +85 -0
  237. package/assets/root.fullstackunicorn.dev/frontend/panels/prose/@formatter.js +113 -0
  238. package/assets/root.fullstackunicorn.dev/frontend/panels/prose/@use.js +21 -0
  239. package/assets/root.fullstackunicorn.dev/frontend/panels/prose/Basic.js +30 -0
  240. package/assets/root.fullstackunicorn.dev/frontend/panels/prose/Basic.pod.js +16 -0
  241. package/assets/root.fullstackunicorn.dev/frontend/panels/prose/Prose.js +84 -0
  242. package/assets/root.fullstackunicorn.dev/frontend/panels/prose/Prose.pod.js +58 -0
  243. package/assets/root.fullstackunicorn.dev/frontend/panels/selectors/actions/Actions.js +45 -0
  244. package/assets/root.fullstackunicorn.dev/frontend/panels/selectors/actions/Actions.pod.js +19 -0
  245. package/assets/root.fullstackunicorn.dev/frontend/panels/selectors/actions/SelectPicked.js +21 -0
  246. package/assets/root.fullstackunicorn.dev/frontend/panels/selectors/actions/SelectPicked.pod.js +35 -0
  247. package/assets/root.fullstackunicorn.dev/frontend/panels/selectors/popup/PopupModal.js +54 -0
  248. package/assets/root.fullstackunicorn.dev/frontend/panels/selectors/select/SelectItem.js +20 -0
  249. package/assets/root.fullstackunicorn.dev/frontend/panels/selectors/select/SelectItem.pod.js +33 -0
  250. package/assets/root.fullstackunicorn.dev/frontend/panels/selectors/select/SelectModal.js +52 -0
  251. package/assets/root.fullstackunicorn.dev/frontend/panels/selectors/select/SelectPage.js +33 -0
  252. package/assets/root.fullstackunicorn.dev/frontend/panels/selectors/select/SelectPage.pod.js +18 -0
  253. package/assets/root.fullstackunicorn.dev/frontend/panels/shopper/bookstore/Buy.js +19 -0
  254. package/assets/root.fullstackunicorn.dev/frontend/panels/shopper/bookstore/Buy.pod.js +17 -0
  255. package/assets/root.fullstackunicorn.dev/frontend/panels/shopper/bookstore/Shopper.js +39 -0
  256. package/assets/root.fullstackunicorn.dev/frontend/panels/shopper/bookstore/Shopper.pod.js +187 -0
  257. package/assets/root.fullstackunicorn.dev/frontend/panels/slider/Slider.js +138 -0
  258. package/assets/root.fullstackunicorn.dev/frontend/panels/slider/Slider.pod.js +102 -0
  259. package/assets/root.fullstackunicorn.dev/frontend/panels/sliders/actions/Actions.js +12 -0
  260. package/assets/root.fullstackunicorn.dev/frontend/panels/sliders/actions/Actions.pod.js +22 -0
  261. package/assets/root.fullstackunicorn.dev/frontend/panels/sliders/slider/SliderItem.js +30 -0
  262. package/assets/root.fullstackunicorn.dev/frontend/panels/sliders/slider/SliderItem.pod.js +39 -0
  263. package/assets/root.fullstackunicorn.dev/frontend/panels/sliders/slider/SliderModal.js +39 -0
  264. package/assets/root.fullstackunicorn.dev/frontend/panels/sliders/slider/SliderPage.js +37 -0
  265. package/assets/root.fullstackunicorn.dev/frontend/panels/sliders/slider/SliderPage.pod.js +24 -0
  266. package/assets/root.fullstackunicorn.dev/frontend/panels/wrapper/fixed/Wrapper.js +25 -0
  267. package/assets/root.fullstackunicorn.dev/frontend/panels/wrapper/fixed/Wrapper.pod.js +23 -0
  268. package/assets/root.fullstackunicorn.dev/frontend/preloader/@use.js +14 -0
  269. package/assets/root.fullstackunicorn.dev/frontend/preloader/Preloader.js +46 -0
  270. package/assets/root.fullstackunicorn.dev/frontend/root/constants.js +4 -0
  271. package/assets/root.fullstackunicorn.dev/frontend/root/constants.root.js +15 -0
  272. package/assets/root.fullstackunicorn.dev/frontend/root/constants.scope.js +5 -0
  273. package/assets/root.fullstackunicorn.dev/frontend/root/errors.js +4 -0
  274. package/assets/root.fullstackunicorn.dev/frontend/root/errors.root.js +6 -0
  275. package/assets/root.fullstackunicorn.dev/frontend/root/errors.scope.js +6 -0
  276. package/assets/root.fullstackunicorn.dev/frontend/root/menus.js +9 -0
  277. package/assets/root.fullstackunicorn.dev/frontend/root/menus.root.js +6 -0
  278. package/assets/root.fullstackunicorn.dev/frontend/root/menus.scope.js +6 -0
  279. package/assets/root.fullstackunicorn.dev/frontend/root/modals.js +4 -0
  280. package/assets/root.fullstackunicorn.dev/frontend/root/modals.root.js +11 -0
  281. package/assets/root.fullstackunicorn.dev/frontend/root/modals.scope.js +5 -0
  282. package/assets/root.fullstackunicorn.dev/frontend/root/pages.js +4 -0
  283. package/assets/root.fullstackunicorn.dev/frontend/root/pages.root.js +12 -0
  284. package/assets/root.fullstackunicorn.dev/frontend/root/pages.scope.js +11 -0
  285. package/assets/root.fullstackunicorn.dev/frontend/root/preload.js +18 -0
  286. package/assets/root.fullstackunicorn.dev/frontend/root/preload.root.js +30 -0
  287. package/assets/root.fullstackunicorn.dev/frontend/root/preload.scope.js +33 -0
  288. package/assets/root.fullstackunicorn.dev/frontend/root/routes.js +7 -0
  289. package/assets/root.fullstackunicorn.dev/frontend/root/routes.root.js +47 -0
  290. package/assets/root.fullstackunicorn.dev/frontend/root/routes.scope.js +31 -0
  291. package/assets/root.fullstackunicorn.dev/frontend/sworker/sw.js +104 -0
  292. package/assets/root.fullstackunicorn.dev/frontend/templates/cards.js +25 -0
  293. package/assets/root.fullstackunicorn.dev/frontend/templates/index.js +11 -0
  294. package/assets/root.fullstackunicorn.dev/frontend/templates/page.js +16 -0
  295. package/assets/root.fullstackunicorn.dev/frontend/templates/root.js +32 -0
  296. package/assets/root.fullstackunicorn.dev/frontend/tracking/errors.js +5 -0
  297. package/assets/root.fullstackunicorn.dev/frontend/tracking/logging.js +5 -0
  298. package/assets/root.fullstackunicorn.dev/frontend/tracking/performance.js +5 -0
  299. package/assets/root.fullstackunicorn.dev/frontend/tracking/vitals.js +5 -0
  300. package/assets/root.fullstackunicorn.dev/frontend/vite.config.js +64 -0
  301. package/assets/root.fullstackunicorn.dev/frontend/vite.jsx.js +10 -0
  302. package/assets/root.fullstackunicorn.dev/frontend/vite.sworker.js +56 -0
  303. package/assets/root.fullstackunicorn.dev/frontend/vite.volume.js +94 -0
  304. package/assets/root.fullstackunicorn.dev/manager/.env +10 -0
  305. package/assets/root.fullstackunicorn.dev/manager/config.cmd.sh +81 -0
  306. package/assets/root.fullstackunicorn.dev/manager/dockerfile +12 -0
  307. package/assets/root.fullstackunicorn.dev/manager/index.def.js +17 -0
  308. package/assets/root.fullstackunicorn.dev/manager/index.dep.js +17 -0
  309. package/assets/root.fullstackunicorn.dev/manager/index.init.js +38 -0
  310. package/assets/root.fullstackunicorn.dev/manager/index.js +17 -0
  311. package/assets/root.fullstackunicorn.dev/manager/modules/clone.js +65 -0
  312. package/assets/root.fullstackunicorn.dev/manager/modules/sync.server.js +65 -0
  313. package/assets/root.fullstackunicorn.dev/manager/modules/sync.tools.js +55 -0
  314. package/assets/root.fullstackunicorn.dev/manager/modules/workspace.js +77 -0
  315. package/assets/root.fullstackunicorn.dev/manager/modules/workspace.tools.js +49 -0
  316. package/assets/root.fullstackunicorn.dev/manager/package.json +36 -0
  317. package/assets/root.fullstackunicorn.dev/manager/server/errors.js +30 -0
  318. package/assets/root.fullstackunicorn.dev/manager/server/errors.list.js +24 -0
  319. package/assets/root.fullstackunicorn.dev/manager/server/middleware.auth.js +4 -0
  320. package/assets/root.fullstackunicorn.dev/manager/server/middleware.js +29 -0
  321. package/assets/root.fullstackunicorn.dev/manager/server/middleware.prod.js +18 -0
  322. package/assets/root.fullstackunicorn.dev/manager/server/resolvers.js +21 -0
  323. package/assets/root.fullstackunicorn.dev/manager/server/router.js +58 -0
  324. package/assets/root.fullstackunicorn.dev/package.json +16 -0
  325. package/assets/root.fullstackunicorn.dev/package.md +26 -0
  326. package/assets/root.fullstackunicorn.dev/root.config.app.js +85 -0
  327. package/package.json +1 -1
@@ -0,0 +1,60 @@
1
+ import { Router } from '#@/index.dep.js'
2
+ import { middleware } from '#@/server/middleware.js'
3
+ import { resolver } from '#@/server/resolvers.js'
4
+ import { Loader } from '#@/modules/loader.js'
5
+ import { Cookies } from '#@/modules/cookies.js'
6
+ import { Stripe } from '#@/modules/stripe.js'
7
+
8
+ const rs = {}
9
+
10
+ // loader
11
+
12
+ rs.index = {}
13
+ rs.index.method = 'post'
14
+ rs.index.name = 'index'
15
+ rs.index.path = '/api/index'
16
+ rs.index.resolve = async (...args) => await resolver.resolve(new Loader().index, rs.index.path, ...args)
17
+ rs.index.funcs = [ rs.index.resolve ]
18
+
19
+ rs.load = {}
20
+ rs.load.method = 'post'
21
+ rs.load.name = 'load'
22
+ rs.load.path = '/api/load/*path'
23
+ rs.load.resolve = async (...args) => await resolver.resolve(new Loader().load, rs.load.path, ...args)
24
+ rs.load.funcs = [ rs.load.resolve ]
25
+
26
+ // cookies
27
+
28
+ rs.cookiesGet= {}
29
+ rs.cookiesGet.method = 'post'
30
+ rs.cookiesGet.name = 'cookiesGet'
31
+ rs.cookiesGet.path = '/api/cookies/get'
32
+ rs.cookiesGet.resolve = async (...args) => await resolver.resolve(new Cookies().get, rs.cookiesGet.path, ...args)
33
+ rs.cookiesGet.funcs = [ rs.cookiesGet.resolve ]
34
+
35
+ rs.cookiesSet= {}
36
+ rs.cookiesSet.method = 'post'
37
+ rs.cookiesSet.name = 'cookiesSet'
38
+ rs.cookiesSet.path = '/api/cookies/set'
39
+ rs.cookiesSet.resolve = async (...args) => await resolver.resolve(new Cookies().set, rs.cookiesSet.path, ...args)
40
+ rs.cookiesSet.funcs = [ rs.cookiesSet.resolve ]
41
+
42
+ // stripe
43
+
44
+ rs.stripeSet = {}
45
+ rs.stripeSet.method = 'post'
46
+ rs.stripeSet.name = 'stripeSet'
47
+ rs.stripeSet.path = '/api/checkout/stripe/session/set'
48
+ rs.stripeSet.resolve = async (...args) => await resolver.resolve(new Stripe().set, rs.stripeSet.path, ...args)
49
+ rs.stripeSet.funcs = [ rs.stripeSet.resolve ]
50
+
51
+ rs.stripeGet = {}
52
+ rs.stripeGet.method = 'post'
53
+ rs.stripeGet.name = 'stripeGet'
54
+ rs.stripeGet.path = '/api/checkout/stripe/session/get'
55
+ rs.stripeGet.resolve = async (...args) => await resolver.resolve(new Stripe().get, rs.stripeGet.path, ...args)
56
+ rs.stripeGet.funcs = [ rs.stripeGet.resolve ]
57
+
58
+ const router = Router()
59
+ for ( const r of Object.values(rs)) router[r.method](r.path, ...r.funcs)
60
+ export { router, rs as routes }
@@ -0,0 +1,178 @@
1
+ #!/bin/bash
2
+ set -e
3
+ # ============================================================
4
+ add() {
5
+
6
+ echo "🚀 Adding Dev Dependencies"
7
+
8
+ yarn add -D @fullstackunicorn/root --latest
9
+ yarn add -D @fullstackunicorn/reduce --latest
10
+ yarn add -D @fullstackunicorn/cli --latest
11
+
12
+ echo "✅ Dependencies added!"
13
+ }
14
+ # ============================================================
15
+ upgrade() {
16
+
17
+ echo "🚀 Upgrading Dependencies "
18
+
19
+ yarn upgrade @fullstackunicorn/root --latest
20
+ yarn upgrade @fullstackunicorn/reduce --latest
21
+ yarn upgrade @fullstackunicorn/cli --latest
22
+
23
+ echo "✅ Upgaded!"
24
+ }
25
+ # ============================================================
26
+ remove() {
27
+
28
+ echo "🧹 Removing Dependencies"
29
+
30
+ node --input-type=module -e "
31
+ import fs from 'fs'
32
+ const filePath = './package.json'
33
+ const json = JSON.parse(fs.readFileSync(filePath, 'utf8'))
34
+ json.dependencies = {}
35
+ json.devDependencies = {}
36
+ fs.writeFileSync(filePath, JSON.stringify(json, null, 4))
37
+ "
38
+
39
+ echo "✅ Dependeincies Removed!"
40
+
41
+ }
42
+ # ============================================================
43
+ volume() {
44
+
45
+ echo "🚀 Linking Volume"
46
+
47
+ local source="volume"
48
+ local target1="manager/volume"
49
+ local target2="backend/volume"
50
+
51
+ ensure_link() {
52
+
53
+ local src="$1"
54
+ local dst="$2"
55
+
56
+ if [ -L "$dst" ]; then
57
+ local current
58
+ current="$(readlink "$dst")"
59
+ if [ "$current" = "$src" ]; then
60
+ echo "✅ Already linked: $dst -> $src"
61
+ return
62
+ fi
63
+ echo "♻️ Replacing wrong symlink: $dst -> $current"
64
+ rm "$dst"
65
+ elif [ -e "$dst" ]; then
66
+ echo "♻️ Removing existing path: $dst"
67
+ rm -rf "$dst"
68
+ fi
69
+
70
+ ln -s "$src" "$dst"
71
+ echo "✅ Linked: $dst -> $src"
72
+ }
73
+
74
+ if [ ! -d "$source" ]; then
75
+ mkdir -p "$source"
76
+ echo "✅ Created: $source"
77
+ fi
78
+
79
+ if [ ! -d "manager" ]; then
80
+ mkdir -p "manager"
81
+ echo "✅ Created: manager"
82
+ fi
83
+
84
+ if [ ! -d "backend" ]; then
85
+ mkdir -p "backend"
86
+ echo "✅ Created: backend"
87
+ fi
88
+
89
+ ensure_link "../volume" "$target1"
90
+ ensure_link "../volume" "$target2"
91
+
92
+ echo "✅ Volume linked!"
93
+ }
94
+ # ============================================================
95
+ initialize() {
96
+
97
+ remove
98
+ add
99
+ volume
100
+
101
+ }
102
+ # ============================================================
103
+ run_in() {
104
+
105
+ local folder="$1"
106
+
107
+ echo "➡️ Running in $folder"
108
+
109
+ (
110
+ cd "$folder"
111
+ chmod +x ./config.cmd.sh
112
+ ./config.cmd.sh initialize
113
+ )
114
+ }
115
+ # ============================================================
116
+ initialize_all() {
117
+
118
+ echo "🚀 Initialize All"
119
+
120
+ chmod +x ./config.cmd.sh
121
+ ./config.cmd.sh initialize
122
+
123
+ run_in "frontend"
124
+ run_in "backend"
125
+ run_in "manager"
126
+ run_in "assets"
127
+
128
+ echo "✅ Initialize All done!"
129
+ echo "👉 now run:"
130
+ echo "yarn start:all"
131
+ echo "cd assets"
132
+ echo "yarn cmd website develop-config"
133
+ echo "yarn cmd website develop-assets"
134
+ echo "yarn cmd website develop-workers"
135
+ }
136
+ # ============================================================
137
+ run_bg() {
138
+
139
+ local name="$1"
140
+ shift
141
+
142
+ echo "➡️ Starting $name"
143
+
144
+ (
145
+ "$@" 2>&1 | sed "s/^/[$name] /"
146
+ ) &
147
+ }
148
+ # ============================================================
149
+ start_all() {
150
+
151
+ echo "🚀 Starting All"
152
+
153
+ run_bg manager bash -c "cd manager && yarn start"
154
+ run_bg backend bash -c "cd backend && yarn start"
155
+ run_bg frontend bash -c "cd frontend && yarn start"
156
+
157
+ # 🔥 kill EVERYTHING on CTRL+C
158
+ trap "echo '🛑 Stopping all...'; kill 0" SIGINT
159
+
160
+ echo "✅ All services started"
161
+ wait
162
+ }
163
+ # ============================================================
164
+ info() {
165
+ echo "❌ Unknown command: $1"
166
+ echo "Available commands:"
167
+ declare -F | awk '{print " " $3}' | grep -v "^info$"
168
+ exit 1
169
+ }
170
+ # ============================================================
171
+ cmd="${1:-}"
172
+ shift || true
173
+ if declare -F "$cmd" >/dev/null && [[ "$cmd" != "info" ]]; then
174
+ "$cmd" "$@"
175
+ else
176
+ info "$cmd"
177
+ fi
178
+ # ============================================================
@@ -0,0 +1,7 @@
1
+ {
2
+ "folders": [
3
+ {
4
+ "path": "."
5
+ }
6
+ ]
7
+ }
@@ -0,0 +1,84 @@
1
+ const config = {}
2
+
3
+ // folder output
4
+ config.output = './.devtools'
5
+
6
+ // default profile
7
+ config.profile = 'root'
8
+
9
+ // profiles
10
+ config.profiles = {}
11
+
12
+ // yarn reduce root
13
+ config.profiles.root = {}
14
+ config.profiles.root.type = 'all'
15
+ config.profiles.root.input = './'
16
+ config.profiles.root.skip = [
17
+ '.devtools', 'node_modules', 'yarn.lock', '.git',
18
+ 'frontend/.devtools', 'frontend/node_modules', 'frontend/yarn.lock', 'client/dist',
19
+ 'backend/.devtools', 'backend/node_modules', 'backend/yarn.lock',
20
+ 'manager/.devtools', 'manager/node_modules', 'manager/yarn.lock',
21
+ ]
22
+
23
+ // yarn reduce assets
24
+ config.profiles.assets = {}
25
+ config.profiles.assets.type = 'all'
26
+ config.profiles.assets.input = './assets/'
27
+ config.profiles.assets.skip = [
28
+ '.devtools', 'node_modules', 'yarn.lock', 'dist',
29
+ '.env', '.npmrc',
30
+ ]
31
+
32
+ // yarn reduce frontend
33
+ config.profiles.frontend = {}
34
+ config.profiles.frontend.type = 'all'
35
+ config.profiles.frontend.input = './frontend/'
36
+ config.profiles.frontend.skip = [
37
+ '.devtools', 'node_modules', 'yarn.lock', 'dist',
38
+ '.env', '.npmrc',
39
+ ]
40
+
41
+ // yarn reduce backend
42
+ config.profiles.backend = {}
43
+ config.profiles.backend.type = 'all'
44
+ config.profiles.backend.input = './backend/'
45
+ config.profiles.backend.skip = [
46
+ '.devtools', 'node_modules', 'yarn.lock',
47
+ 'volume', 'public', 'private',
48
+ '.env', '.npmrc',
49
+ ]
50
+
51
+
52
+ // yarn reduce manager
53
+ config.profiles.manager = {}
54
+ config.profiles.manager.type = 'all'
55
+ config.profiles.manager.input = './manager/'
56
+ config.profiles.manager.skip = [
57
+ '.devtools', 'node_modules', 'yarn.lock',
58
+ 'volume', 'public', 'private',
59
+ '.env', '.npmrc',
60
+ ]
61
+
62
+ // yarn reduce cache
63
+ config.profiles.cache = {}
64
+ config.profiles.cache.type = 'target'
65
+ config.profiles.cache.input = './frontend/imports/cache.js'
66
+ config.profiles.cache.skip = []
67
+
68
+
69
+ // yarn reduce list1
70
+ config.profiles.list1 = {}
71
+ config.profiles.list1.type = 'list'
72
+ config.profiles.list1.input = ''
73
+ config.profiles.list1.list = [
74
+ 'frontend/package.json',
75
+ 'frontend/base/layout',
76
+ `frontend/imports/animated`,
77
+ `frontend/configure`,
78
+ `frontend/root`,
79
+ ]
80
+ config.profiles.list1.skip = [
81
+ '.devtools', '.git'
82
+ ]
83
+
84
+ export default config
@@ -0,0 +1,3 @@
1
+ VITE_TYPE="frontend"
2
+ VITE_NAME="root.fullstackunicorn.dev"
3
+ VITE_PORT="9000"
@@ -0,0 +1,23 @@
1
+ import '@fullstackunicorn/initialize'
2
+ import '#@/App.sw.js'
3
+ import '#@/App.tracking.js'
4
+ import '#@/style/@use.scss'
5
+
6
+ import { HelmetProvider } from 'react-helmet-async';
7
+
8
+ import React from 'react'
9
+ import ReactDOM from 'react-dom/client'
10
+
11
+ import { RouterProvider } from '#@/imports/router.js'
12
+ import { Loader } from '#@/base/loader/Loader.js'
13
+
14
+ const root = ReactDOM.createRoot(document.getElementById('root'))
15
+ root.render(
16
+ // <React.StrictMode>
17
+ <HelmetProvider>
18
+ <RouterProvider>
19
+ <Loader />
20
+ </RouterProvider>
21
+ </HelmetProvider>
22
+ // </React.StrictMode>
23
+ )
@@ -0,0 +1,12 @@
1
+ if ('serviceWorker' in navigator && import.meta.env.PROD) {
2
+ setTimeout(() => {
3
+ const register = async () => {
4
+ try {
5
+ const reg = await navigator.serviceWorker.register('/serviceworker.js');
6
+ console.log('[SW] Registrato (idle):', reg.scope);
7
+ } catch {}
8
+ }
9
+ if ('requestIdleCallback' in window) requestIdleCallback(register, { timeout: 10000 })
10
+ else register();
11
+ }, 30000);
12
+ }
@@ -0,0 +1,13 @@
1
+ import { vitals } from '#@/tracking/vitals.js'
2
+ import { errors } from '#@/tracking/errors.js'
3
+ import { performance } from '#@/tracking/performance.js'
4
+ import { logging } from '#@/tracking/logging.js'
5
+
6
+ const initialize = () => {
7
+ vitals.init()
8
+ errors.init()
9
+ performance.init()
10
+ logging.init()
11
+ }
12
+
13
+ initialize()
@@ -0,0 +1,63 @@
1
+ import { constants } from '#@/root/constants.js'
2
+
3
+ const uri = {}
4
+
5
+ uri.stripe = {}
6
+ uri.stripe.set = `/api/checkout/stripe/session/set`
7
+ uri.stripe.get = `/api/checkout/stripe/session/get`
8
+
9
+ uri.font = {}
10
+ uri.font.fontface = `/fonts/:name/:name.css` // .json in native
11
+
12
+ uri.data = {}
13
+
14
+ uri.data.root = {}
15
+ uri.data.root.logic = '/get/data/root/:path/@logic'
16
+ uri.data.root.visual = '/get/data/root/:path/@visual'
17
+ uri.data.root.graphic = '/get/data/root/:path/@graphic'
18
+ uri.data.root.verbal = '/get/data/root/:path/:lang'
19
+
20
+ uri.data.content = {}
21
+ uri.data.content.logic = '/get/data/content/:path/@logic'
22
+ uri.data.content.visual = '/get/data/content/:path/@visual'
23
+ uri.data.content.verbal = '/get/data/content/:path/:lang'
24
+
25
+ uri.data.legals = {}
26
+ uri.data.legals.logic = '/get/data/legals/:path/@logic'
27
+ uri.data.legals.visual = '/get/data/legals/:path/@visual'
28
+ uri.data.legals.verbal = '/get/data/legals/:path/:lang'
29
+
30
+ uri.data.lookups = {}
31
+ uri.data.lookups.logic = '/get/data/lookups/:path/@logic'
32
+ uri.data.lookups.visual = '/get/data/lookups/:path/@visual'
33
+ uri.data.lookups.verbal = '/get/data/lookups/:path/:lang'
34
+
35
+ uri.data.menus = {}
36
+ uri.data.menus.logic = '/get/data/menus/:path/@logic'
37
+ uri.data.menus.visual = '/get/data/menus/:path/@visual'
38
+ uri.data.menus.verbal = '/get/data/menus/:path/:lang'
39
+
40
+ uri.media = '/get/media/:path'
41
+ uri.trademarks = '/get/media/trademarks/:path'
42
+ uri.load = '/api/load/:name'
43
+
44
+ uri.cookies = {}
45
+ uri.cookies.set = `/api/cookies/set`
46
+ uri.cookies.get = `/api/cookies/get`
47
+
48
+ uri.errors = {}
49
+ uri.errors.error = `:lang/errors/:message`
50
+
51
+ uri.auth = {}
52
+ const { env } = constants
53
+
54
+ uri.auth.client = {}
55
+ uri.auth.client.login = `${env.SERVER_URL_AUTH}/auth/login`
56
+ uri.auth.client.logout = `${env.SERVER_URL_AUTH}/auth/logout`
57
+ uri.auth.client.refresh = `${env.SERVER_URL_AUTH}/auth/refresh`
58
+
59
+ uri.auth.user = {}
60
+ uri.auth.user.login = `${env.CLIENT_URL_AUTH}/auth?:type&:token`
61
+ uri.auth.user.account = `${env.CLIENT_URL_ACCOUNT}/origin?:token`
62
+
63
+ export { uri }
@@ -0,0 +1,148 @@
1
+ import { jwtDecode, jwtEncode, getHash } from '#@/imports/npm'
2
+
3
+ class Abs {
4
+
5
+ parallel = async (items = [], limit = 20, task) => {
6
+
7
+ if (!Array.isArray(items)) F3.throw('parallel-invalid-items')
8
+ if (typeof task !== 'function') F3.throw('parallel-invalid-task')
9
+
10
+ let index = 0
11
+ const workers = []
12
+
13
+ const runOne = async () => {
14
+ while (index < items.length) {
15
+ const current = index++
16
+ await task(items[current])
17
+ }
18
+ }
19
+
20
+ const count = Math.min(limit, items.length)
21
+
22
+ for (let i = 0; i < count; i++) workers.push(runOne())
23
+ await Promise.all(workers)
24
+
25
+ }
26
+
27
+ hashArr = (arr) => {
28
+
29
+ const str = arr.slice().sort().join('@@')
30
+ let h = 1779033703 ^ str.length
31
+
32
+ for (let i = 0; i < str.length; i++) {
33
+ h = Math.imul(h ^ str.charCodeAt(i), 3432918353)
34
+ h = (h << 13) | (h >>> 19)
35
+ }
36
+ h = Math.imul(h ^ (h >>> 16), 2246822507)
37
+ h = Math.imul(h ^ (h >>> 13), 3266489909)
38
+ h ^= h >>> 16
39
+
40
+ return h >>> 0
41
+ }
42
+
43
+ hashObj = (obj) => {
44
+
45
+ if (!F3.obj.isGood(obj)) return 0
46
+
47
+ const str = JSON.stringify(obj, Object.keys(obj).sort())
48
+
49
+ let h = 1779033703 ^ str.length
50
+
51
+ for (let i = 0; i < str.length; i++) {
52
+ h = Math.imul(h ^ str.charCodeAt(i), 3432918353)
53
+ h = (h << 13) | (h >>> 19)
54
+ }
55
+ h = Math.imul(h ^ (h >>> 16), 2246822507)
56
+ h = Math.imul(h ^ (h >>> 13), 3266489909)
57
+ h ^= h >>> 16
58
+
59
+ return h >>> 0
60
+ }
61
+
62
+ makeKey = (endpoint, method, data = {}) => {
63
+ if (!F3.obj.isGood(data)) return `${endpoint}#${method}`
64
+ const hash = this.hashObj(data)
65
+ return `${endpoint}#${method}/${hash}`
66
+ }
67
+
68
+ jwt = {
69
+ decode: token => {
70
+ try { return jwtDecode(token) }
71
+ catch { return { isError: true } }
72
+ },
73
+ encode: (data, secret = 'secret') => jwtEncode(data, secret)
74
+ }
75
+
76
+ b64 = {
77
+ encode: data => btoa(JSON.stringify(data)).replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_"),
78
+ decode: token => JSON.parse(atob(token.replace(/-/g, "+").replace(/_/g, "/")))
79
+ }
80
+
81
+ blobToB64 = (blob) => {
82
+ return new Promise((resolve, reject) => {
83
+ const reader = new FileReader()
84
+ reader.onloadend = () => resolve(reader.result)
85
+ reader.onerror = reject
86
+ reader.readAsDataURL(blob)
87
+ })
88
+ }
89
+
90
+ getLanguage = (slug, logic) => {
91
+ const plural = logic.lookup.languages?.[slug]?.plural
92
+ const alphabet = logic.lookup.languages?.[slug]?.alphabet
93
+ const isRTL = logic.lookup.alphabets?.[alphabet]?.isRTL
94
+ return { slug, alphabet, plural, isRTL }
95
+ }
96
+
97
+ replacer = (string = '', values = {}) => {
98
+ const pattern = /{{(\w+)}}/g
99
+ const newString = string.replace(pattern, (match, found) => {
100
+ if (values[found]) return values[found]
101
+ else return match
102
+ })
103
+ return newString
104
+ }
105
+
106
+ makeLink = (path = '', params) => {
107
+ return path.replace(/:(\w+)/g, (_, key) => {
108
+ return params[key] !== undefined ? params[key] : `:${key}`
109
+ })
110
+ }
111
+
112
+ hashPassword = async (password) => {
113
+
114
+ // Convert the password string to a Uint8Array
115
+ const encoder = new TextEncoder()
116
+ const data = encoder.encode(password)
117
+
118
+ // Usa l'API Web Crypto per calcolare l'hash SHA-256
119
+ const hashBuffer = await crypto.subtle.digest("SHA-256", data)
120
+
121
+ // Converti l'hash in un formato leggibile (esadecimale a 64 caratteri)
122
+ const hashArray = Array.from(new Uint8Array(hashBuffer))
123
+ const hashHex = hashArray.map(byte => byte.toString(16).padStart(2, "0")).join("")
124
+
125
+ return hashHex
126
+ }
127
+
128
+
129
+
130
+
131
+ // getPictureSize = width => {
132
+
133
+ // let size = 'TL'
134
+
135
+ // if (width<=64) size = 'TS'
136
+ // if (width>64 && width<=256) size = 'TM'
137
+ // if (width>256 && width<=512) size = 'TL'
138
+ // if (width>512 && width<=960) size = 'SD'
139
+ // if (width>960 && width<=1440) size = 'MD'
140
+ // if (width>1440) size = 'HD'
141
+
142
+ // return size
143
+
144
+
145
+ // }
146
+ }
147
+
148
+ export const abs = new Abs()