@omega.js/extension 0.1.0

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 (684) hide show
  1. package/LICENSE +98 -0
  2. package/README.md +194 -0
  3. package/bin/omega +2 -0
  4. package/bin/omega-extension +2 -0
  5. package/bin/omg +2 -0
  6. package/dist/assets/css/bundles/.gitkeep +0 -0
  7. package/dist/assets/css/components/content/index.scss +5 -0
  8. package/dist/assets/css/components/options/index.scss +9 -0
  9. package/dist/assets/css/components/pages/index.scss +5 -0
  10. package/dist/assets/css/components/popup/index.scss +9 -0
  11. package/dist/assets/css/core/_animations.scss +64 -0
  12. package/dist/assets/css/core/_fontawesome.scss +146 -0
  13. package/dist/assets/css/core/_initialize.scss +23 -0
  14. package/dist/assets/css/core/_utilities.scss +80 -0
  15. package/dist/assets/css/omega-extension.scss +43 -0
  16. package/dist/assets/css/shell/_index.scss +207 -0
  17. package/dist/assets/css/tokens/_index.scss +166 -0
  18. package/dist/assets/js/core/app-shell.js +136 -0
  19. package/dist/assets/js/libs/initialize-tooltips.js +31 -0
  20. package/dist/assets/js/libs/recaptcha.js +94 -0
  21. package/dist/assets/js/main.js +4 -0
  22. package/dist/assets/themes/_template/README.md +115 -0
  23. package/dist/assets/themes/_template/_config.scss +60 -0
  24. package/dist/assets/themes/_template/_theme.js +14 -0
  25. package/dist/assets/themes/_template/_theme.scss +28 -0
  26. package/dist/assets/themes/_template/css/base/_root.scss +19 -0
  27. package/dist/assets/themes/_template/css/components/_components.scss +23 -0
  28. package/dist/assets/themes/base/README.md +5 -0
  29. package/dist/assets/themes/base/_components/data/org-chart/component.html +33 -0
  30. package/dist/assets/themes/base/_components/data/org-chart/component.json5 +33 -0
  31. package/dist/assets/themes/base/_components/data/org-chart/component.scss +183 -0
  32. package/dist/assets/themes/base/_components/heading/masthead/component.html +22 -0
  33. package/dist/assets/themes/base/_components/heading/masthead/component.json5 +30 -0
  34. package/dist/assets/themes/base/_components/heading/section-head/component.html +18 -0
  35. package/dist/assets/themes/base/_components/heading/section-head/component.json5 +27 -0
  36. package/dist/assets/themes/base/_components/pricing/features/component.html +29 -0
  37. package/dist/assets/themes/base/_components/pricing/features/component.json5 +30 -0
  38. package/dist/assets/themes/base/_hero/orbit/index.html +30 -0
  39. package/dist/assets/themes/base/_hero/orbit/script.js +33 -0
  40. package/dist/assets/themes/base/_hero/orbit/style.scss +133 -0
  41. package/dist/assets/themes/base/_includes/admin/sections/sidebar.html +3 -0
  42. package/dist/assets/themes/base/_includes/admin/sections/topbar.html +3 -0
  43. package/dist/assets/themes/base/_includes/backend/sections/sidebar.html +3 -0
  44. package/dist/assets/themes/base/_includes/backend/sections/topbar.html +3 -0
  45. package/dist/assets/themes/base/_includes/frontend/components/connection-card.html +49 -0
  46. package/dist/assets/themes/base/_includes/frontend/components/post-card.html +54 -0
  47. package/dist/assets/themes/base/_includes/frontend/sections/account-connections.html +42 -0
  48. package/dist/assets/themes/base/_includes/frontend/sections/account-section-header.html +11 -0
  49. package/dist/assets/themes/base/_includes/frontend/sections/footer.html +154 -0
  50. package/dist/assets/themes/base/_includes/frontend/sections/nav.html +276 -0
  51. package/dist/assets/themes/base/_includes/global/sections/account.html +72 -0
  52. package/dist/assets/themes/base/_includes/global/sections/app-sidebar.html +248 -0
  53. package/dist/assets/themes/base/_includes/global/sections/app-topbar.html +228 -0
  54. package/dist/assets/themes/base/_includes/global/sections/page-header.html +99 -0
  55. package/dist/assets/themes/base/_layouts/admin/core/minimal-viewport-locked.html +22 -0
  56. package/dist/assets/themes/base/_layouts/admin/core/minimal.html +23 -0
  57. package/dist/assets/themes/base/_layouts/backend/core/base.html +57 -0
  58. package/dist/assets/themes/base/_layouts/backend/core/minimal-viewport-locked.html +32 -0
  59. package/dist/assets/themes/base/_layouts/backend/core/minimal.html +32 -0
  60. package/dist/assets/themes/base/_layouts/backend/pages/dashboard/index.html +230 -0
  61. package/dist/assets/themes/base/_layouts/frontend/core/base.html +31 -0
  62. package/dist/assets/themes/base/_layouts/frontend/core/cover.html +40 -0
  63. package/dist/assets/themes/base/_layouts/frontend/core/minimal.html +47 -0
  64. package/dist/assets/themes/base/_layouts/frontend/pages/404.html +54 -0
  65. package/dist/assets/themes/base/_layouts/frontend/pages/about.html +144 -0
  66. package/dist/assets/themes/base/_layouts/frontend/pages/account/index.html +2104 -0
  67. package/dist/assets/themes/base/_layouts/frontend/pages/alternatives/alternative.html +319 -0
  68. package/dist/assets/themes/base/_layouts/frontend/pages/alternatives/index.html +186 -0
  69. package/dist/assets/themes/base/_layouts/frontend/pages/app.html +142 -0
  70. package/dist/assets/themes/base/_layouts/frontend/pages/auth/reset.html +53 -0
  71. package/dist/assets/themes/base/_layouts/frontend/pages/auth/signin.html +90 -0
  72. package/dist/assets/themes/base/_layouts/frontend/pages/auth/signup.html +141 -0
  73. package/dist/assets/themes/base/_layouts/frontend/pages/auth/token.html +44 -0
  74. package/dist/assets/themes/base/_layouts/frontend/pages/blog/categories/category.html +88 -0
  75. package/dist/assets/themes/base/_layouts/frontend/pages/blog/categories/index.html +88 -0
  76. package/dist/assets/themes/base/_layouts/frontend/pages/blog/index.html +255 -0
  77. package/dist/assets/themes/base/_layouts/frontend/pages/blog/post.html +261 -0
  78. package/dist/assets/themes/base/_layouts/frontend/pages/blog/tags/index.html +84 -0
  79. package/dist/assets/themes/base/_layouts/frontend/pages/blog/tags/tag.html +88 -0
  80. package/dist/assets/themes/base/_layouts/frontend/pages/collection/category.html +72 -0
  81. package/dist/assets/themes/base/_layouts/frontend/pages/collection/document.html +54 -0
  82. package/dist/assets/themes/base/_layouts/frontend/pages/collection/index.html +84 -0
  83. package/dist/assets/themes/base/_layouts/frontend/pages/connections/callback.html +55 -0
  84. package/dist/assets/themes/base/_layouts/frontend/pages/contact.html +214 -0
  85. package/dist/assets/themes/base/_layouts/frontend/pages/download.html +793 -0
  86. package/dist/assets/themes/base/_layouts/frontend/pages/extension/index.html +253 -0
  87. package/dist/assets/themes/base/_layouts/frontend/pages/extension/installed.html +198 -0
  88. package/dist/assets/themes/base/_layouts/frontend/pages/feedback.html +171 -0
  89. package/dist/assets/themes/base/_layouts/frontend/pages/index.html +66 -0
  90. package/dist/assets/themes/base/_layouts/frontend/pages/legal/document.html +78 -0
  91. package/dist/assets/themes/base/_layouts/frontend/pages/payment/checkout.html +459 -0
  92. package/dist/assets/themes/base/_layouts/frontend/pages/payment/confirmation.html +131 -0
  93. package/dist/assets/themes/base/_layouts/frontend/pages/portal/email-preferences.html +104 -0
  94. package/dist/assets/themes/base/_layouts/frontend/pages/pricing.html +596 -0
  95. package/dist/assets/themes/base/_layouts/frontend/pages/status.html +361 -0
  96. package/dist/assets/themes/base/_layouts/frontend/pages/team/index.html +210 -0
  97. package/dist/assets/themes/base/_layouts/frontend/pages/team/member.html +125 -0
  98. package/dist/assets/themes/base/_layouts/frontend/pages/updates/index.html +119 -0
  99. package/dist/assets/themes/base/_layouts/frontend/pages/updates/update.html +118 -0
  100. package/dist/assets/themes/base/_sections/about/hero/section.html +68 -0
  101. package/dist/assets/themes/base/_sections/about/hero/section.json5 +58 -0
  102. package/dist/assets/themes/base/_sections/about/letter/section.html +60 -0
  103. package/dist/assets/themes/base/_sections/about/letter/section.json5 +56 -0
  104. package/dist/assets/themes/base/_sections/about/photo-band/section.html +24 -0
  105. package/dist/assets/themes/base/_sections/about/photo-band/section.json5 +23 -0
  106. package/dist/assets/themes/base/_sections/about/principles/section.html +17 -0
  107. package/dist/assets/themes/base/_sections/about/principles/section.json5 +34 -0
  108. package/dist/assets/themes/base/_sections/about/timeline/section.html +20 -0
  109. package/dist/assets/themes/base/_sections/about/timeline/section.json5 +34 -0
  110. package/dist/assets/themes/base/_sections/marketing/bento/section.html +91 -0
  111. package/dist/assets/themes/base/_sections/marketing/bento/section.json5 +152 -0
  112. package/dist/assets/themes/base/_sections/marketing/cta/section.html +44 -0
  113. package/dist/assets/themes/base/_sections/marketing/cta/section.json5 +47 -0
  114. package/dist/assets/themes/base/_sections/marketing/faq/section.html +52 -0
  115. package/dist/assets/themes/base/_sections/marketing/faq/section.json5 +68 -0
  116. package/dist/assets/themes/base/_sections/marketing/hero/section.html +349 -0
  117. package/dist/assets/themes/base/_sections/marketing/hero/section.json5 +335 -0
  118. package/dist/assets/themes/base/_sections/marketing/newsletter-cta/section.html +38 -0
  119. package/dist/assets/themes/base/_sections/marketing/newsletter-cta/section.js +86 -0
  120. package/dist/assets/themes/base/_sections/marketing/newsletter-cta/section.json5 +29 -0
  121. package/dist/assets/themes/base/_sections/marketing/pricing-cards/section.html +115 -0
  122. package/dist/assets/themes/base/_sections/marketing/pricing-cards/section.json5 +72 -0
  123. package/dist/assets/themes/base/_sections/marketing/product-demo/section.html +62 -0
  124. package/dist/assets/themes/base/_sections/marketing/product-demo/section.js +44 -0
  125. package/dist/assets/themes/base/_sections/marketing/product-demo/section.json5 +52 -0
  126. package/dist/assets/themes/base/_sections/marketing/prose/section.html +22 -0
  127. package/dist/assets/themes/base/_sections/marketing/prose/section.json5 +41 -0
  128. package/dist/assets/themes/base/_sections/marketing/showcase/section.html +35 -0
  129. package/dist/assets/themes/base/_sections/marketing/showcase/section.json5 +52 -0
  130. package/dist/assets/themes/base/_sections/marketing/stats/section.html +32 -0
  131. package/dist/assets/themes/base/_sections/marketing/stats/section.json5 +44 -0
  132. package/dist/assets/themes/base/_sections/marketing/testimonials/section.html +54 -0
  133. package/dist/assets/themes/base/_sections/marketing/testimonials/section.json5 +70 -0
  134. package/dist/assets/themes/base/_sections/marketing/trusted-by/section.html +30 -0
  135. package/dist/assets/themes/base/_sections/marketing/trusted-by/section.json5 +38 -0
  136. package/dist/assets/themes/base/_sections/verts/unit/section.html +7 -0
  137. package/dist/assets/themes/base/_sections/verts/unit/section.js +22 -0
  138. package/dist/assets/themes/base/_sections/verts/unit/section.json5 +24 -0
  139. package/dist/assets/themes/base/_sections/verts/unit/section.scss +24 -0
  140. package/dist/assets/themes/base/_theme.js +13 -0
  141. package/dist/assets/themes/base/_theme.scss +4 -0
  142. package/dist/assets/themes/bootstrap/_theme.js +16 -0
  143. package/dist/assets/themes/bootstrap/_theme.scss +11 -0
  144. package/dist/assets/themes/bootstrap/js/index.esm.js +19 -0
  145. package/dist/assets/themes/bootstrap/js/index.umd.js +34 -0
  146. package/dist/assets/themes/bootstrap/js/src/alert.js +87 -0
  147. package/dist/assets/themes/bootstrap/js/src/base-component.js +86 -0
  148. package/dist/assets/themes/bootstrap/js/src/button.js +72 -0
  149. package/dist/assets/themes/bootstrap/js/src/carousel.js +474 -0
  150. package/dist/assets/themes/bootstrap/js/src/collapse.js +297 -0
  151. package/dist/assets/themes/bootstrap/js/src/dom/data.js +55 -0
  152. package/dist/assets/themes/bootstrap/js/src/dom/event-handler.js +317 -0
  153. package/dist/assets/themes/bootstrap/js/src/dom/manipulator.js +71 -0
  154. package/dist/assets/themes/bootstrap/js/src/dom/selector-engine.js +126 -0
  155. package/dist/assets/themes/bootstrap/js/src/dropdown.js +458 -0
  156. package/dist/assets/themes/bootstrap/js/src/modal.js +378 -0
  157. package/dist/assets/themes/bootstrap/js/src/offcanvas.js +282 -0
  158. package/dist/assets/themes/bootstrap/js/src/popover.js +97 -0
  159. package/dist/assets/themes/bootstrap/js/src/scrollspy.js +296 -0
  160. package/dist/assets/themes/bootstrap/js/src/tab.js +315 -0
  161. package/dist/assets/themes/bootstrap/js/src/toast.js +224 -0
  162. package/dist/assets/themes/bootstrap/js/src/tooltip.js +632 -0
  163. package/dist/assets/themes/bootstrap/js/src/util/backdrop.js +151 -0
  164. package/dist/assets/themes/bootstrap/js/src/util/component-functions.js +35 -0
  165. package/dist/assets/themes/bootstrap/js/src/util/config.js +65 -0
  166. package/dist/assets/themes/bootstrap/js/src/util/focustrap.js +115 -0
  167. package/dist/assets/themes/bootstrap/js/src/util/index.js +306 -0
  168. package/dist/assets/themes/bootstrap/js/src/util/sanitizer.js +117 -0
  169. package/dist/assets/themes/bootstrap/js/src/util/scrollbar.js +114 -0
  170. package/dist/assets/themes/bootstrap/js/src/util/swipe.js +146 -0
  171. package/dist/assets/themes/bootstrap/js/src/util/template-factory.js +160 -0
  172. package/dist/assets/themes/bootstrap/overrides/_accordion.scss +21 -0
  173. package/dist/assets/themes/bootstrap/overrides/_avatars.scss +51 -0
  174. package/dist/assets/themes/bootstrap/overrides/_blog-images.scss +45 -0
  175. package/dist/assets/themes/bootstrap/overrides/_buttons-adaptive.scss +141 -0
  176. package/dist/assets/themes/bootstrap/overrides/_color-shades.scss +25 -0
  177. package/dist/assets/themes/bootstrap/overrides/_cursor-utilities.scss +13 -0
  178. package/dist/assets/themes/bootstrap/overrides/_index.scss +30 -0
  179. package/dist/assets/themes/bootstrap/overrides/_links.scss +26 -0
  180. package/dist/assets/themes/bootstrap/overrides/_soft-colors.scss +99 -0
  181. package/dist/assets/themes/bootstrap/overrides/_spacing-extended.scss +74 -0
  182. package/dist/assets/themes/bootstrap/overrides/_spinners.scss +22 -0
  183. package/dist/assets/themes/bootstrap/overrides/_typography-utilities.scss +40 -0
  184. package/dist/assets/themes/bootstrap/scss/_accordion.scss +153 -0
  185. package/dist/assets/themes/bootstrap/scss/_alert.scss +68 -0
  186. package/dist/assets/themes/bootstrap/scss/_badge.scss +38 -0
  187. package/dist/assets/themes/bootstrap/scss/_breadcrumb.scss +40 -0
  188. package/dist/assets/themes/bootstrap/scss/_button-group.scss +147 -0
  189. package/dist/assets/themes/bootstrap/scss/_buttons.scss +216 -0
  190. package/dist/assets/themes/bootstrap/scss/_card.scss +238 -0
  191. package/dist/assets/themes/bootstrap/scss/_carousel.scss +226 -0
  192. package/dist/assets/themes/bootstrap/scss/_close.scss +66 -0
  193. package/dist/assets/themes/bootstrap/scss/_containers.scss +41 -0
  194. package/dist/assets/themes/bootstrap/scss/_dropdown.scss +250 -0
  195. package/dist/assets/themes/bootstrap/scss/_forms.scss +9 -0
  196. package/dist/assets/themes/bootstrap/scss/_functions.scss +302 -0
  197. package/dist/assets/themes/bootstrap/scss/_grid.scss +39 -0
  198. package/dist/assets/themes/bootstrap/scss/_helpers.scss +12 -0
  199. package/dist/assets/themes/bootstrap/scss/_images.scss +42 -0
  200. package/dist/assets/themes/bootstrap/scss/_list-group.scss +199 -0
  201. package/dist/assets/themes/bootstrap/scss/_maps.scss +174 -0
  202. package/dist/assets/themes/bootstrap/scss/_mixins.scss +42 -0
  203. package/dist/assets/themes/bootstrap/scss/_modal.scss +240 -0
  204. package/dist/assets/themes/bootstrap/scss/_nav.scss +197 -0
  205. package/dist/assets/themes/bootstrap/scss/_navbar.scss +289 -0
  206. package/dist/assets/themes/bootstrap/scss/_offcanvas.scss +147 -0
  207. package/dist/assets/themes/bootstrap/scss/_pagination.scss +109 -0
  208. package/dist/assets/themes/bootstrap/scss/_placeholders.scss +51 -0
  209. package/dist/assets/themes/bootstrap/scss/_popover.scss +196 -0
  210. package/dist/assets/themes/bootstrap/scss/_progress.scss +68 -0
  211. package/dist/assets/themes/bootstrap/scss/_reboot.scss +611 -0
  212. package/dist/assets/themes/bootstrap/scss/_root.scss +187 -0
  213. package/dist/assets/themes/bootstrap/scss/_spinners.scss +85 -0
  214. package/dist/assets/themes/bootstrap/scss/_tables.scss +171 -0
  215. package/dist/assets/themes/bootstrap/scss/_toasts.scss +73 -0
  216. package/dist/assets/themes/bootstrap/scss/_tooltip.scss +119 -0
  217. package/dist/assets/themes/bootstrap/scss/_transitions.scss +27 -0
  218. package/dist/assets/themes/bootstrap/scss/_type.scss +106 -0
  219. package/dist/assets/themes/bootstrap/scss/_utilities.scss +806 -0
  220. package/dist/assets/themes/bootstrap/scss/_variables-dark.scss +102 -0
  221. package/dist/assets/themes/bootstrap/scss/_variables.scss +1753 -0
  222. package/dist/assets/themes/bootstrap/scss/bootstrap-grid.scss +62 -0
  223. package/dist/assets/themes/bootstrap/scss/bootstrap-reboot.scss +10 -0
  224. package/dist/assets/themes/bootstrap/scss/bootstrap-utilities.scss +19 -0
  225. package/dist/assets/themes/bootstrap/scss/bootstrap.scss +52 -0
  226. package/dist/assets/themes/bootstrap/scss/forms/_floating-labels.scss +97 -0
  227. package/dist/assets/themes/bootstrap/scss/forms/_form-check.scss +189 -0
  228. package/dist/assets/themes/bootstrap/scss/forms/_form-control.scss +214 -0
  229. package/dist/assets/themes/bootstrap/scss/forms/_form-range.scss +91 -0
  230. package/dist/assets/themes/bootstrap/scss/forms/_form-select.scss +80 -0
  231. package/dist/assets/themes/bootstrap/scss/forms/_form-text.scss +11 -0
  232. package/dist/assets/themes/bootstrap/scss/forms/_input-group.scss +132 -0
  233. package/dist/assets/themes/bootstrap/scss/forms/_labels.scss +36 -0
  234. package/dist/assets/themes/bootstrap/scss/forms/_validation.scss +12 -0
  235. package/dist/assets/themes/bootstrap/scss/helpers/_clearfix.scss +3 -0
  236. package/dist/assets/themes/bootstrap/scss/helpers/_color-bg.scss +7 -0
  237. package/dist/assets/themes/bootstrap/scss/helpers/_colored-links.scss +30 -0
  238. package/dist/assets/themes/bootstrap/scss/helpers/_focus-ring.scss +5 -0
  239. package/dist/assets/themes/bootstrap/scss/helpers/_icon-link.scss +25 -0
  240. package/dist/assets/themes/bootstrap/scss/helpers/_position.scss +36 -0
  241. package/dist/assets/themes/bootstrap/scss/helpers/_ratio.scss +26 -0
  242. package/dist/assets/themes/bootstrap/scss/helpers/_stacks.scss +15 -0
  243. package/dist/assets/themes/bootstrap/scss/helpers/_stretched-link.scss +15 -0
  244. package/dist/assets/themes/bootstrap/scss/helpers/_text-truncation.scss +7 -0
  245. package/dist/assets/themes/bootstrap/scss/helpers/_visually-hidden.scss +8 -0
  246. package/dist/assets/themes/bootstrap/scss/helpers/_vr.scss +8 -0
  247. package/dist/assets/themes/bootstrap/scss/mixins/_alert.scss +18 -0
  248. package/dist/assets/themes/bootstrap/scss/mixins/_backdrop.scss +14 -0
  249. package/dist/assets/themes/bootstrap/scss/mixins/_banner.scss +7 -0
  250. package/dist/assets/themes/bootstrap/scss/mixins/_border-radius.scss +78 -0
  251. package/dist/assets/themes/bootstrap/scss/mixins/_box-shadow.scss +18 -0
  252. package/dist/assets/themes/bootstrap/scss/mixins/_breakpoints.scss +127 -0
  253. package/dist/assets/themes/bootstrap/scss/mixins/_buttons.scss +70 -0
  254. package/dist/assets/themes/bootstrap/scss/mixins/_caret.scss +69 -0
  255. package/dist/assets/themes/bootstrap/scss/mixins/_clearfix.scss +9 -0
  256. package/dist/assets/themes/bootstrap/scss/mixins/_color-mode.scss +21 -0
  257. package/dist/assets/themes/bootstrap/scss/mixins/_color-scheme.scss +7 -0
  258. package/dist/assets/themes/bootstrap/scss/mixins/_container.scss +11 -0
  259. package/dist/assets/themes/bootstrap/scss/mixins/_deprecate.scss +10 -0
  260. package/dist/assets/themes/bootstrap/scss/mixins/_forms.scss +163 -0
  261. package/dist/assets/themes/bootstrap/scss/mixins/_gradients.scss +47 -0
  262. package/dist/assets/themes/bootstrap/scss/mixins/_grid.scss +151 -0
  263. package/dist/assets/themes/bootstrap/scss/mixins/_image.scss +16 -0
  264. package/dist/assets/themes/bootstrap/scss/mixins/_list-group.scss +26 -0
  265. package/dist/assets/themes/bootstrap/scss/mixins/_lists.scss +7 -0
  266. package/dist/assets/themes/bootstrap/scss/mixins/_pagination.scss +10 -0
  267. package/dist/assets/themes/bootstrap/scss/mixins/_reset-text.scss +17 -0
  268. package/dist/assets/themes/bootstrap/scss/mixins/_resize.scss +6 -0
  269. package/dist/assets/themes/bootstrap/scss/mixins/_table-variants.scss +24 -0
  270. package/dist/assets/themes/bootstrap/scss/mixins/_text-truncate.scss +8 -0
  271. package/dist/assets/themes/bootstrap/scss/mixins/_transition.scss +26 -0
  272. package/dist/assets/themes/bootstrap/scss/mixins/_utilities.scss +97 -0
  273. package/dist/assets/themes/bootstrap/scss/mixins/_visually-hidden.scss +38 -0
  274. package/dist/assets/themes/bootstrap/scss/tests/jasmine.js +16 -0
  275. package/dist/assets/themes/bootstrap/scss/tests/mixins/_auto-import-of-variables-dark.test.scss +7 -0
  276. package/dist/assets/themes/bootstrap/scss/tests/mixins/_color-modes.test.scss +69 -0
  277. package/dist/assets/themes/bootstrap/scss/tests/mixins/_media-query-color-mode-full.test.scss +8 -0
  278. package/dist/assets/themes/bootstrap/scss/tests/mixins/_utilities.test.scss +393 -0
  279. package/dist/assets/themes/bootstrap/scss/tests/sass-true/register.js +14 -0
  280. package/dist/assets/themes/bootstrap/scss/tests/sass-true/runner.js +17 -0
  281. package/dist/assets/themes/bootstrap/scss/tests/utilities/_api.test.scss +75 -0
  282. package/dist/assets/themes/bootstrap/scss/utilities/_api.scss +47 -0
  283. package/dist/assets/themes/bootstrap/scss/vendor/_rfs.scss +348 -0
  284. package/dist/assets/themes/classy/README.md +89 -0
  285. package/dist/assets/themes/classy/_config.scss +245 -0
  286. package/dist/assets/themes/classy/_theme.js +31 -0
  287. package/dist/assets/themes/classy/_theme.scss +57 -0
  288. package/dist/assets/themes/classy/css/app/_panels.scss +183 -0
  289. package/dist/assets/themes/classy/css/base/_fonts.scss +79 -0
  290. package/dist/assets/themes/classy/css/base/_no-raise.scss +49 -0
  291. package/dist/assets/themes/classy/css/base/_root.scss +113 -0
  292. package/dist/assets/themes/classy/css/base/_typography.scss +154 -0
  293. package/dist/assets/themes/classy/css/base/_utilities.scss +284 -0
  294. package/dist/assets/themes/classy/css/components/_alerts.scss +51 -0
  295. package/dist/assets/themes/classy/css/components/_badges.scss +46 -0
  296. package/dist/assets/themes/classy/css/components/_buttons.scss +175 -0
  297. package/dist/assets/themes/classy/css/components/_cards.scss +41 -0
  298. package/dist/assets/themes/classy/css/components/_dropdowns.scss +48 -0
  299. package/dist/assets/themes/classy/css/components/_forms.scss +171 -0
  300. package/dist/assets/themes/classy/css/components/_receipt.scss +45 -0
  301. package/dist/assets/themes/classy/css/layout/_footer.scss +298 -0
  302. package/dist/assets/themes/classy/css/layout/_general.scss +209 -0
  303. package/dist/assets/themes/classy/css/layout/_nav.scss +154 -0
  304. package/dist/assets/themes/classy/css/layout/_shell.scss +458 -0
  305. package/dist/assets/themes/classy/css/marketing/_bento.scss +238 -0
  306. package/dist/assets/themes/classy/css/marketing/_content.scss +1328 -0
  307. package/dist/assets/themes/classy/css/marketing/_downloads.scss +246 -0
  308. package/dist/assets/themes/classy/css/marketing/_hero.scss +311 -0
  309. package/dist/assets/themes/classy/css/marketing/_sections.scss +649 -0
  310. package/dist/assets/themes/classy/css/pages/404/index.scss +67 -0
  311. package/dist/assets/themes/classy/css/pages/_auth.scss +235 -0
  312. package/dist/assets/themes/classy/css/pages/admin/firebase/index.scss +22 -0
  313. package/dist/assets/themes/classy/css/pages/blog/[slug].scss +56 -0
  314. package/dist/assets/themes/classy/css/pages/cookies.scss +2 -0
  315. package/dist/assets/themes/classy/css/pages/dashboard/account/index.scss +31 -0
  316. package/dist/assets/themes/classy/css/pages/feedback/index.scss +39 -0
  317. package/dist/assets/themes/classy/css/pages/legal/_document.scss +192 -0
  318. package/dist/assets/themes/classy/css/pages/payment/checkout/index.scss +585 -0
  319. package/dist/assets/themes/classy/css/pages/payment/confirmation/index.scss +9 -0
  320. package/dist/assets/themes/classy/css/pages/privacy.scss +2 -0
  321. package/dist/assets/themes/classy/css/pages/status/index.scss +164 -0
  322. package/dist/assets/themes/classy/css/pages/terms.scss +2 -0
  323. package/dist/assets/themes/classy/css/pages/updates/index.scss +128 -0
  324. package/dist/assets/themes/classy/fonts/inter-italic-latin-ext.woff2 +0 -0
  325. package/dist/assets/themes/classy/fonts/inter-italic-latin.woff2 +0 -0
  326. package/dist/assets/themes/classy/fonts/inter-normal-latin-ext.woff2 +0 -0
  327. package/dist/assets/themes/classy/fonts/inter-normal-latin.woff2 +0 -0
  328. package/dist/assets/themes/classy/fonts/newsreader-italic-latin-ext.woff2 +0 -0
  329. package/dist/assets/themes/classy/fonts/newsreader-italic-latin.woff2 +0 -0
  330. package/dist/assets/themes/classy/fonts/newsreader-normal-latin-ext.woff2 +0 -0
  331. package/dist/assets/themes/classy/fonts/newsreader-normal-latin.woff2 +0 -0
  332. package/dist/assets/themes/classy/js/hero-demo-form.js +56 -0
  333. package/dist/assets/themes/neobrutalism/README.md +118 -0
  334. package/dist/assets/themes/neobrutalism/_config.scss +139 -0
  335. package/dist/assets/themes/neobrutalism/_layouts/frontend/core/base.html +30 -0
  336. package/dist/assets/themes/neobrutalism/_layouts/frontend/pages/index.html +275 -0
  337. package/dist/assets/themes/neobrutalism/_theme.js +24 -0
  338. package/dist/assets/themes/neobrutalism/_theme.scss +61 -0
  339. package/dist/assets/themes/neobrutalism/css/base/_mixins.scss +46 -0
  340. package/dist/assets/themes/neobrutalism/css/base/_root.scss +169 -0
  341. package/dist/assets/themes/neobrutalism/css/base/_typography.scss +61 -0
  342. package/dist/assets/themes/neobrutalism/css/base/_utilities.scss +89 -0
  343. package/dist/assets/themes/neobrutalism/css/components/_billing-toggle.scss +74 -0
  344. package/dist/assets/themes/neobrutalism/css/components/_buttons.scss +148 -0
  345. package/dist/assets/themes/neobrutalism/css/components/_cards.scss +47 -0
  346. package/dist/assets/themes/neobrutalism/css/components/_forms.scss +88 -0
  347. package/dist/assets/themes/neobrutalism/css/components/_marketing.scss +244 -0
  348. package/dist/assets/themes/neobrutalism/css/layout/_general.scss +213 -0
  349. package/dist/assets/themes/neobrutalism/css/layout/_navigation.scss +171 -0
  350. package/dist/assets/themes/neobrutalism/css/pages/index.scss +203 -0
  351. package/dist/assets/themes/neobrutalism/css/pages/pricing/index.scss +58 -0
  352. package/dist/assets/themes/neobrutalism/css/pages/test/libraries/layers/index.scss +7 -0
  353. package/dist/assets/themes/neobrutalism/js/pages/test/libraries/layers/index.js +9 -0
  354. package/dist/assets/themes/newsflash/README.md +117 -0
  355. package/dist/assets/themes/newsflash/_components/heading/lede/component.html +14 -0
  356. package/dist/assets/themes/newsflash/_components/heading/lede/component.json5 +23 -0
  357. package/dist/assets/themes/newsflash/_components/heading/rule-head/component.html +17 -0
  358. package/dist/assets/themes/newsflash/_components/heading/rule-head/component.json5 +23 -0
  359. package/dist/assets/themes/newsflash/_components/news/byline/component.html +12 -0
  360. package/dist/assets/themes/newsflash/_components/news/byline/component.json5 +18 -0
  361. package/dist/assets/themes/newsflash/_components/news/story-card/component.html +25 -0
  362. package/dist/assets/themes/newsflash/_components/news/story-card/component.json5 +21 -0
  363. package/dist/assets/themes/newsflash/_config.scss +147 -0
  364. package/dist/assets/themes/newsflash/_layouts/frontend/core/base.html +51 -0
  365. package/dist/assets/themes/newsflash/_layouts/frontend/pages/blog/index.html +299 -0
  366. package/dist/assets/themes/newsflash/_layouts/frontend/pages/blog/post.html +235 -0
  367. package/dist/assets/themes/newsflash/_layouts/frontend/pages/index.html +328 -0
  368. package/dist/assets/themes/newsflash/_sections/marketing/desks/section.html +39 -0
  369. package/dist/assets/themes/newsflash/_sections/marketing/desks/section.json5 +49 -0
  370. package/dist/assets/themes/newsflash/_sections/marketing/newsletter-cta/section.html +103 -0
  371. package/dist/assets/themes/newsflash/_sections/marketing/newsletter-cta/section.json5 +50 -0
  372. package/dist/assets/themes/newsflash/_sections/marketing/rundown/section.html +28 -0
  373. package/dist/assets/themes/newsflash/_sections/marketing/rundown/section.json5 +40 -0
  374. package/dist/assets/themes/newsflash/_theme.js +24 -0
  375. package/dist/assets/themes/newsflash/_theme.scss +70 -0
  376. package/dist/assets/themes/newsflash/css/base/_fonts.scss +80 -0
  377. package/dist/assets/themes/newsflash/css/base/_mixins.scss +51 -0
  378. package/dist/assets/themes/newsflash/css/base/_root.scss +257 -0
  379. package/dist/assets/themes/newsflash/css/base/_typography.scss +49 -0
  380. package/dist/assets/themes/newsflash/css/base/_utilities.scss +122 -0
  381. package/dist/assets/themes/newsflash/css/components/_badges.scss +65 -0
  382. package/dist/assets/themes/newsflash/css/components/_billing-toggle.scss +61 -0
  383. package/dist/assets/themes/newsflash/css/components/_buttons.scss +139 -0
  384. package/dist/assets/themes/newsflash/css/components/_cards.scss +47 -0
  385. package/dist/assets/themes/newsflash/css/components/_editorial.scss +173 -0
  386. package/dist/assets/themes/newsflash/css/components/_forms.scss +75 -0
  387. package/dist/assets/themes/newsflash/css/components/_infinite-scroll.scss +102 -0
  388. package/dist/assets/themes/newsflash/css/components/_panels.scss +156 -0
  389. package/dist/assets/themes/newsflash/css/components/_ticker.scss +67 -0
  390. package/dist/assets/themes/newsflash/css/layout/_general.scss +330 -0
  391. package/dist/assets/themes/newsflash/css/layout/_navigation.scss +168 -0
  392. package/dist/assets/themes/newsflash/css/pages/404/index.scss +79 -0
  393. package/dist/assets/themes/newsflash/css/pages/blog/[slug].scss +186 -0
  394. package/dist/assets/themes/newsflash/css/pages/blog/index.scss +17 -0
  395. package/dist/assets/themes/newsflash/css/pages/index.scss +157 -0
  396. package/dist/assets/themes/newsflash/css/pages/pricing/index.scss +55 -0
  397. package/dist/assets/themes/newsflash/css/pages/test/libraries/layers/index.scss +7 -0
  398. package/dist/assets/themes/newsflash/fonts/fraunces-italic-latin-ext.woff2 +0 -0
  399. package/dist/assets/themes/newsflash/fonts/fraunces-italic-latin.woff2 +0 -0
  400. package/dist/assets/themes/newsflash/fonts/fraunces-normal-latin-ext.woff2 +0 -0
  401. package/dist/assets/themes/newsflash/fonts/fraunces-normal-latin.woff2 +0 -0
  402. package/dist/assets/themes/newsflash/fonts/schibsted-grotesk-italic-latin-ext.woff2 +0 -0
  403. package/dist/assets/themes/newsflash/fonts/schibsted-grotesk-italic-latin.woff2 +0 -0
  404. package/dist/assets/themes/newsflash/fonts/schibsted-grotesk-normal-latin-ext.woff2 +0 -0
  405. package/dist/assets/themes/newsflash/fonts/schibsted-grotesk-normal-latin.woff2 +0 -0
  406. package/dist/assets/themes/newsflash/js/pages/blog/[slug].js +29 -0
  407. package/dist/assets/themes/newsflash/js/pages/test/libraries/layers/index.js +9 -0
  408. package/dist/background.js +684 -0
  409. package/dist/build.js +268 -0
  410. package/dist/cli-run.js +25 -0
  411. package/dist/cli.js +30 -0
  412. package/dist/commands/build.js +67 -0
  413. package/dist/commands/clean.js +29 -0
  414. package/dist/commands/deploy.js +97 -0
  415. package/dist/commands/install.js +58 -0
  416. package/dist/commands/lib/dependencies.js +33 -0
  417. package/dist/commands/lib/deploy-precheck.js +57 -0
  418. package/dist/commands/lib/ensure-target.js +151 -0
  419. package/dist/commands/lib/push-secrets.js +60 -0
  420. package/dist/commands/migrate.js +77 -0
  421. package/dist/commands/test.js +110 -0
  422. package/dist/commands/update.js +21 -0
  423. package/dist/commands/version.js +12 -0
  424. package/dist/config/manifest.json +117 -0
  425. package/dist/config/page-template.html +21 -0
  426. package/dist/content.js +37 -0
  427. package/dist/defaults/.github/workflows/publish.yml +86 -0
  428. package/dist/defaults/.nvmrc +1 -0
  429. package/dist/defaults/.vscode/settings.json +8 -0
  430. package/dist/defaults/AGENTS.md +113 -0
  431. package/dist/defaults/CHANGELOG.md +15 -0
  432. package/dist/defaults/CLAUDE.md +1 -0
  433. package/dist/defaults/_.gitignore +75 -0
  434. package/dist/defaults/config/description.md +46 -0
  435. package/dist/defaults/config/messages.json +20 -0
  436. package/dist/defaults/config/omega.json5 +64 -0
  437. package/dist/defaults/docs/README.md +17 -0
  438. package/dist/defaults/gulpfile.js +6 -0
  439. package/dist/defaults/hooks/build/post.js +8 -0
  440. package/dist/defaults/hooks/build/pre.js +8 -0
  441. package/dist/defaults/src/assets/css/bundles/.gitkeep +0 -0
  442. package/dist/defaults/src/assets/css/components/content/index.scss +11 -0
  443. package/dist/defaults/src/assets/css/components/offscreen/index.scss +4 -0
  444. package/dist/defaults/src/assets/css/components/options/index.scss +14 -0
  445. package/dist/defaults/src/assets/css/components/pages/index.scss +10 -0
  446. package/dist/defaults/src/assets/css/components/popup/index.scss +10 -0
  447. package/dist/defaults/src/assets/css/components/sidepanel/index.scss +6 -0
  448. package/dist/defaults/src/assets/css/main.scss +32 -0
  449. package/dist/defaults/src/assets/images/.gitkeep +0 -0
  450. package/dist/defaults/src/assets/js/components/background/index.js +25 -0
  451. package/dist/defaults/src/assets/js/components/content/index.js +22 -0
  452. package/dist/defaults/src/assets/js/components/offscreen/index.js +25 -0
  453. package/dist/defaults/src/assets/js/components/options/index.js +22 -0
  454. package/dist/defaults/src/assets/js/components/pages/index.js +22 -0
  455. package/dist/defaults/src/assets/js/components/popup/index.js +22 -0
  456. package/dist/defaults/src/assets/js/components/sidepanel/index.js +20 -0
  457. package/dist/defaults/src/assets/vendor/.gitkeep +0 -0
  458. package/dist/defaults/src/manifest.json +131 -0
  459. package/dist/defaults/src/views/offscreen/index.html +3 -0
  460. package/dist/defaults/src/views/options/index.html +8 -0
  461. package/dist/defaults/src/views/pages/index.html +10 -0
  462. package/dist/defaults/src/views/popup/index.html +4 -0
  463. package/dist/defaults/src/views/sidepanel/index.html +4 -0
  464. package/dist/defaults/test/README.md +41 -0
  465. package/dist/defaults/test/_init.js +10 -0
  466. package/dist/defaults/test/boot/externally-connectable.test.js +28 -0
  467. package/dist/gulp/config/locales.js +12 -0
  468. package/dist/gulp/main.js +78 -0
  469. package/dist/gulp/tasks/_.js +18 -0
  470. package/dist/gulp/tasks/audit.js +222 -0
  471. package/dist/gulp/tasks/bundle.js +687 -0
  472. package/dist/gulp/tasks/defaults.js +281 -0
  473. package/dist/gulp/tasks/distribute.js +172 -0
  474. package/dist/gulp/tasks/fontawesome.js +25 -0
  475. package/dist/gulp/tasks/html.js +163 -0
  476. package/dist/gulp/tasks/icons.js +126 -0
  477. package/dist/gulp/tasks/package.js +742 -0
  478. package/dist/gulp/tasks/publish.js +417 -0
  479. package/dist/gulp/tasks/sass.js +252 -0
  480. package/dist/gulp/tasks/serve.js +103 -0
  481. package/dist/gulp/tasks/translate.js +252 -0
  482. package/dist/gulp/tasks/utils/build-json.js +43 -0
  483. package/dist/gulp/tasks/utils/template-transform.js +50 -0
  484. package/dist/gulp/templates/BUILD_INSTRUCTIONS.md +69 -0
  485. package/dist/index.js +46 -0
  486. package/dist/lib/affiliatizer.js +224 -0
  487. package/dist/lib/analytics.js +26 -0
  488. package/dist/lib/auth-helpers.js +213 -0
  489. package/dist/lib/extension.js +116 -0
  490. package/dist/lib/icons.js +36 -0
  491. package/dist/lib/logger-lite.js +35 -0
  492. package/dist/lib/logger.js +4 -0
  493. package/dist/lib/messaging.js +48 -0
  494. package/dist/lib/safe-install.js +4 -0
  495. package/dist/lib/theme.js +73 -0
  496. package/dist/lib/verts.js +68 -0
  497. package/dist/offscreen.js +31 -0
  498. package/dist/omega-bin.js +6 -0
  499. package/dist/options.js +80 -0
  500. package/dist/page.js +80 -0
  501. package/dist/popup.js +80 -0
  502. package/dist/sidepanel.js +80 -0
  503. package/dist/test/assert.js +4 -0
  504. package/dist/test/fixtures/consumer-extension/dist/background.js +23 -0
  505. package/dist/test/fixtures/consumer-extension/dist/manifest.json +20 -0
  506. package/dist/test/fixtures/consumer-extension/dist/options.html +10 -0
  507. package/dist/test/fixtures/consumer-extension/dist/popup.bundle.js +5 -0
  508. package/dist/test/fixtures/consumer-extension/dist/popup.html +12 -0
  509. package/dist/test/harness/extension/background.js +26 -0
  510. package/dist/test/harness/extension/manifest.json +27 -0
  511. package/dist/test/harness/extension/options.html +12 -0
  512. package/dist/test/harness/extension/popup.html +12 -0
  513. package/dist/test/harness/extension/sidepanel.html +12 -0
  514. package/dist/test/index.js +63 -0
  515. package/dist/test/runner.js +99 -0
  516. package/dist/test/runners/boot.js +221 -0
  517. package/dist/test/runners/chromium.js +391 -0
  518. package/dist/test/runners/helpers.js +24 -0
  519. package/dist/test/suites/background/messaging.test.js +44 -0
  520. package/dist/test/suites/background/storage.test.js +46 -0
  521. package/dist/test/suites/background/sw-context.test.js +49 -0
  522. package/dist/test/suites/boot/build-json-bake.test.js +80 -0
  523. package/dist/test/suites/boot/extension-loads.test.js +58 -0
  524. package/dist/test/suites/build/affiliatizer.test.js +64 -0
  525. package/dist/test/suites/build/app-launch.test.js +65 -0
  526. package/dist/test/suites/build/attach-log-file.test.js +99 -0
  527. package/dist/test/suites/build/auth-emulator-gate.test.js +118 -0
  528. package/dist/test/suites/build/auth-triggers.test.js +71 -0
  529. package/dist/test/suites/build/boot-discovery.test.js +134 -0
  530. package/dist/test/suites/build/boot-timeout.test.js +92 -0
  531. package/dist/test/suites/build/build-error-notification.test.js +122 -0
  532. package/dist/test/suites/build/build-json-bake.test.js +302 -0
  533. package/dist/test/suites/build/build-verb.test.js +138 -0
  534. package/dist/test/suites/build/bundle-targets.test.js +66 -0
  535. package/dist/test/suites/build/cache-warming.test.js +44 -0
  536. package/dist/test/suites/build/cli.test.js +150 -0
  537. package/dist/test/suites/build/default-boot-test.test.js +100 -0
  538. package/dist/test/suites/build/defaults-scaffold.test.js +287 -0
  539. package/dist/test/suites/build/deploy-dispatch.test.js +76 -0
  540. package/dist/test/suites/build/distribute-task.test.js +111 -0
  541. package/dist/test/suites/build/ensure-target.test.js +141 -0
  542. package/dist/test/suites/build/env-delivery.test.js +239 -0
  543. package/dist/test/suites/build/env-watch.test.js +86 -0
  544. package/dist/test/suites/build/expect.test.js +48 -0
  545. package/dist/test/suites/build/exports.test.js +53 -0
  546. package/dist/test/suites/build/extension-fallback.test.js +82 -0
  547. package/dist/test/suites/build/framework-deps.test.js +176 -0
  548. package/dist/test/suites/build/global-handlers.test.js +70 -0
  549. package/dist/test/suites/build/icon-sheet.test.js +74 -0
  550. package/dist/test/suites/build/logger-lite.test.js +61 -0
  551. package/dist/test/suites/build/manager.test.js +249 -0
  552. package/dist/test/suites/build/mode-helpers.test.js +136 -0
  553. package/dist/test/suites/build/omega-shell.test.js +103 -0
  554. package/dist/test/suites/build/omega-tokens.test.js +76 -0
  555. package/dist/test/suites/build/package-task.test.js +831 -0
  556. package/dist/test/suites/build/setup-scripts.test.js +172 -0
  557. package/dist/test/suites/build/strip-dev-blocks.test.js +122 -0
  558. package/dist/test/suites/build/template-replace.test.js +116 -0
  559. package/dist/test/suites/build/test-discovery.test.js +64 -0
  560. package/dist/test/suites/build/test-target-no-match.test.js +119 -0
  561. package/dist/test/suites/build/theme-resolve.test.js +115 -0
  562. package/dist/test/suites/build/translate.test.js +85 -0
  563. package/dist/test/suites/build/url-helpers.test.js +119 -0
  564. package/dist/test/suites/build/verb-logs.test.js +43 -0
  565. package/dist/test/suites/build/verts-binding.test.js +67 -0
  566. package/dist/test/suites/build/wakeup-ping.test.js +90 -0
  567. package/dist/test/suites/build/wave5-messenger.test.js +80 -0
  568. package/dist/test/suites/view/options-and-sidepanel.test.js +16 -0
  569. package/dist/test/suites/view/popup-context.test.js +53 -0
  570. package/dist/test/suites/view/sidepanel.test.js +16 -0
  571. package/dist/test/utils/extended-mode-warning.js +13 -0
  572. package/dist/utils/attach-log-file.js +4 -0
  573. package/dist/utils/mode-helpers.js +117 -0
  574. package/dist/utils/url-helpers.js +69 -0
  575. package/dist/vendor/account/engine.js +182 -0
  576. package/dist/vendor/account/features.js +220 -0
  577. package/dist/vendor/account/index.js +53 -0
  578. package/dist/vendor/account/schema.js +272 -0
  579. package/dist/vendor/account/subscription.js +38 -0
  580. package/dist/vendor/config/company.js +31 -0
  581. package/dist/vendor/config/defaults.js +173 -0
  582. package/dist/vendor/config/demo.js +18 -0
  583. package/dist/vendor/config/desktop-artifacts.js +110 -0
  584. package/dist/vendor/config/edit.js +769 -0
  585. package/dist/vendor/config/env-delivery.js +145 -0
  586. package/dist/vendor/config/env-rules.js +93 -0
  587. package/dist/vendor/config/env-schema.js +1078 -0
  588. package/dist/vendor/config/env.js +445 -0
  589. package/dist/vendor/config/hooks.js +97 -0
  590. package/dist/vendor/config/index.js +237 -0
  591. package/dist/vendor/config/instances.js +208 -0
  592. package/dist/vendor/config/load.js +490 -0
  593. package/dist/vendor/config/merge.js +68 -0
  594. package/dist/vendor/config/order.js +139 -0
  595. package/dist/vendor/config/ports.js +374 -0
  596. package/dist/vendor/config/providers.js +32 -0
  597. package/dist/vendor/config/repo.js +142 -0
  598. package/dist/vendor/config/retired-keys.js +430 -0
  599. package/dist/vendor/config/schema.js +1610 -0
  600. package/dist/vendor/config/secrets.js +50 -0
  601. package/dist/vendor/config/seed.js +34 -0
  602. package/dist/vendor/config/site-global.js +205 -0
  603. package/dist/vendor/config/validate.js +554 -0
  604. package/dist/vendor/config/winback.js +61 -0
  605. package/dist/vendor/devkit/actions-secrets.js +145 -0
  606. package/dist/vendor/devkit/attach-log-file.js +262 -0
  607. package/dist/vendor/devkit/bundle.js +292 -0
  608. package/dist/vendor/devkit/ci-workflows.js +520 -0
  609. package/dist/vendor/devkit/clean-dirs.js +28 -0
  610. package/dist/vendor/devkit/cli-router.js +156 -0
  611. package/dist/vendor/devkit/defaults-engine.js +372 -0
  612. package/dist/vendor/devkit/deploy-precheck.js +54 -0
  613. package/dist/vendor/devkit/deploy-record.js +180 -0
  614. package/dist/vendor/devkit/deploy.js +286 -0
  615. package/dist/vendor/devkit/empty-modules-plugin.js +64 -0
  616. package/dist/vendor/devkit/env-watch.js +132 -0
  617. package/dist/vendor/devkit/framework-deps.js +46 -0
  618. package/dist/vendor/devkit/icons.js +178 -0
  619. package/dist/vendor/devkit/license.js +155 -0
  620. package/dist/vendor/devkit/local.js +1905 -0
  621. package/dist/vendor/devkit/logger.js +128 -0
  622. package/dist/vendor/devkit/merge-line-files.js +296 -0
  623. package/dist/vendor/devkit/npm-registry.js +52 -0
  624. package/dist/vendor/devkit/omega-bin.js +345 -0
  625. package/dist/vendor/devkit/safe-install.js +18 -0
  626. package/dist/vendor/devkit/scaffold-guard.js +96 -0
  627. package/dist/vendor/devkit/strip-dev-blocks-plugin.js +29 -0
  628. package/dist/vendor/devkit/strip-dev-blocks.js +32 -0
  629. package/dist/vendor/devkit/target-dependencies.js +137 -0
  630. package/dist/vendor/devkit/target-secrets.js +165 -0
  631. package/dist/vendor/devkit/test/assert.js +120 -0
  632. package/dist/vendor/devkit/test/define-cases.js +104 -0
  633. package/dist/vendor/devkit/test/extended-mode-warning.js +22 -0
  634. package/dist/vendor/devkit/test/runner-core.js +554 -0
  635. package/dist/vendor/devkit/test/scope.js +162 -0
  636. package/dist/vendor/devkit/translate/cache.js +84 -0
  637. package/dist/vendor/devkit/translate/engine.js +243 -0
  638. package/dist/vendor/devkit/translate/index.js +49 -0
  639. package/dist/vendor/devkit/translate/languages.js +134 -0
  640. package/dist/vendor/devkit/translate/providers.js +188 -0
  641. package/dist/vendor/devkit/update.js +569 -0
  642. package/docs/affiliatizer.md +81 -0
  643. package/docs/audit.md +67 -0
  644. package/docs/auth.md +149 -0
  645. package/docs/build-system.md +176 -0
  646. package/docs/cdp-debugging.md +42 -0
  647. package/docs/cli.md +73 -0
  648. package/docs/common-mistakes.md +10 -0
  649. package/docs/components.md +87 -0
  650. package/docs/css.md +133 -0
  651. package/docs/defaults.md +72 -0
  652. package/docs/environment-detection.md +79 -0
  653. package/docs/extension.md +93 -0
  654. package/docs/hooks.md +111 -0
  655. package/docs/icons.md +47 -0
  656. package/docs/index.md +291 -0
  657. package/docs/logging.md +33 -0
  658. package/docs/managers.md +100 -0
  659. package/docs/offscreen.md +57 -0
  660. package/docs/publishing.md +182 -0
  661. package/docs/shared/agent-docs.md +89 -0
  662. package/docs/shared/analytics.md +612 -0
  663. package/docs/shared/brands.md +51 -0
  664. package/docs/shared/breaking-changes.md +497 -0
  665. package/docs/shared/config.md +1387 -0
  666. package/docs/shared/deploys.md +215 -0
  667. package/docs/shared/icons.md +201 -0
  668. package/docs/shared/local-dev.md +147 -0
  669. package/docs/shared/logging.md +202 -0
  670. package/docs/shared/monitoring.md +153 -0
  671. package/docs/shared/publishing.md +183 -0
  672. package/docs/shared/rulings.md +34 -0
  673. package/docs/shared/testing.md +147 -0
  674. package/docs/shared/theming.md +604 -0
  675. package/docs/shared/translation.md +291 -0
  676. package/docs/shared/updates.md +61 -0
  677. package/docs/templating.md +66 -0
  678. package/docs/test-boot-layer.md +143 -0
  679. package/docs/test-framework.md +411 -0
  680. package/docs/themes.md +89 -0
  681. package/docs/translations.md +73 -0
  682. package/docs/verts.md +67 -0
  683. package/docs/xss-prevention.md +95 -0
  684. package/package.json +159 -0
package/dist/build.js ADDED
@@ -0,0 +1,268 @@
1
+ // Libraries
2
+ const path = require('path');
3
+ const jetpack = require('fs-jetpack');
4
+ const fs = require('fs');
5
+ const JSON5 = require('json5');
6
+ const argv = require('yargs')(process.argv.slice(2)).parseSync();
7
+ const { spawn } = require('child_process');
8
+ const { force } = require('node-powertools');
9
+
10
+ // Class
11
+ function Manager() {
12
+ const self = this;
13
+
14
+ // Properties
15
+ self._logger = null;
16
+
17
+ // Return
18
+ return self;
19
+ }
20
+
21
+ // Initialize
22
+ Manager.prototype.initialize = function () {
23
+ console.log('initialize:');
24
+ };
25
+
26
+ // Logger
27
+ Manager.prototype.logger = function (name) {
28
+ // Check if called as static method (this is not a Manager instance)
29
+ if (!(this instanceof Manager)) {
30
+ // For static calls, just return a new logger without caching
31
+ return new (require('./lib/logger'))(name);
32
+ }
33
+
34
+ // For instance calls, cache the logger
35
+ if (!this._logger) {
36
+ this._logger = new (require('./lib/logger'))(name);
37
+ }
38
+
39
+ return this._logger;
40
+ };
41
+
42
+ // argv
43
+ Manager.getArguments = function () {
44
+ const options = argv || {};
45
+
46
+ // Fix
47
+ options._ = options._ || [];
48
+ // browser can be: true (all), false (none), or a string like 'chrome' or 'chrome,firefox'
49
+ options.browser = options.browser === undefined ? true : options.browser;
50
+ options.debug = force(options.debug === undefined ? false : options.debug, 'boolean');
51
+
52
+ // Return
53
+ return options;
54
+ };
55
+ Manager.prototype.getArguments = Manager.getArguments;
56
+
57
+ // The notifly argv for a build error. Build messages routinely carry apostrophes
58
+ // and parentheses, so the message is a spawn ARG — never interpolated into a shell
59
+ // string, which mangled it and killed the notification (#104).
60
+ Manager.getBuildErrorNotificationArgs = function (plugin, message) {
61
+ return [
62
+ '--title', `Build Error: ${plugin}`,
63
+ '--message', message,
64
+ '--timeout', '3',
65
+ '--sound', 'Sosumi',
66
+ ];
67
+ };
68
+
69
+ // notifly is an optional local nicety, so a MISSING BINARY is one friendly note —
70
+ // never the raw `spawn notifly ENOENT` dump that used to land after a suite (#123).
71
+ // Every other spawn failure keeps the logged-not-thrown error path from #104.
72
+ Manager.reportNotificationFailure = function (error) {
73
+ const logger = new (require('./lib/logger'))('build-error');
74
+
75
+ if (error && error.code === 'ENOENT') {
76
+ return logger.warn('notifly not installed — skipping desktop notification');
77
+ }
78
+
79
+ return logger.error('Failed to send notification', error);
80
+ };
81
+ Manager.prototype.reportNotificationFailure = Manager.reportNotificationFailure;
82
+
83
+ // Report build errors with notification
84
+ Manager.reportBuildError = function (error, callback) {
85
+ const logger = new (require('./lib/logger'))('build-error');
86
+
87
+ // Send notification using notifly
88
+ const errorMessage = error.message || error.toString() || 'Unknown error';
89
+ const errorPlugin = error.plugin || 'Build';
90
+
91
+ spawn('notifly', Manager.getBuildErrorNotificationArgs(errorPlugin, errorMessage), { shell: false, stdio: 'ignore' })
92
+ .on('error', (e) => Manager.reportNotificationFailure(e));
93
+
94
+ // Log the error
95
+ logger.error(`[${errorPlugin}] ${errorMessage}`);
96
+
97
+ // If callback provided, call it with error
98
+ if (callback) {
99
+ return callback(error);
100
+ }
101
+
102
+ // Otherwise return a function that calls the callback with error
103
+ return (cb) => cb ? cb(error) : error;
104
+ };
105
+ Manager.prototype.reportBuildError = Manager.reportBuildError;
106
+
107
+ // isBuildMode: checks if the build mode is enabled
108
+ Manager.isBuildMode = function () {
109
+ return process.env.OMEGA_BUILD_MODE === 'true';
110
+ }
111
+ Manager.prototype.isBuildMode = Manager.isBuildMode;
112
+
113
+ // actLikeProduction - determines if we should act like production mode
114
+ Manager.actLikeProduction = function () {
115
+ return Boolean(Manager.isBuildMode() || process.env.OMEGA_AUDIT_FORCE === 'true');
116
+ }
117
+ Manager.prototype.actLikeProduction = Manager.actLikeProduction;
118
+
119
+ // getEnvironment() is the SSOT and lives in src/utils/mode-helpers.js (alongside the is*()
120
+ // family). It's mixed onto the Manager via the attachTo() call below, same as in EM/UJM.
121
+
122
+ // getManifest: requires and parses config.yml
123
+ Manager.getManifest = function () {
124
+ return JSON5.parse(jetpack.read('src/manifest.json') || '{}');
125
+ }
126
+ Manager.prototype.getManifest = Manager.getManifest;
127
+
128
+ // getConfig: the consumer's RESOLVED config/omega.json5 via @omega.js/config —
129
+ // shared sections at the top level, targets.extension overlaid onto them (brand
130
+ // walk-up applies in brand monorepos). Secrets never live in the file; the loader
131
+ // hard-fails on secret-shaped keys.
132
+ Manager.getConfig = function () {
133
+ const { hasOmegaConfig, loadConfig, formatErrors } = require('./vendor/config/index.js');
134
+
135
+ // No config at all (fresh dir, non-consumer cwd) → empty shape; callers
136
+ // optional-chain and the defaults task scaffolds the real file on setup.
137
+ const cwd = process.cwd();
138
+ if (!hasOmegaConfig(cwd)) {
139
+ return {};
140
+ }
141
+
142
+ const { config, errors } = loadConfig(cwd, 'extension');
143
+
144
+ // Validation findings are FATAL at build time — same contract as the web
145
+ // build's loadSiteData ([#426](https://github.com/Omega-JS-Stack/omega/issues/426)).
146
+ // A retired key reads as nothing at all, so a build that only warned shipped
147
+ // a bundle missing whatever lived under it and still exited 0. Thrown on
148
+ // EVERY call, never warn-once: tasks call this at require time, and a
149
+ // once-per-process flag left calls 2..n silently building on the bad config.
150
+ if (errors.length) {
151
+ throw new Error(`[@omega.js/extension] config/omega.json5 is invalid:\n${formatErrors(errors)}`);
152
+ }
153
+
154
+ return config;
155
+ }
156
+ Manager.prototype.getConfig = Manager.getConfig;
157
+
158
+ // getPackage: requires and parses package.json
159
+ Manager.getPackage = function (type) {
160
+ const basePath = type === 'project'
161
+ ? process.cwd()
162
+ : path.resolve(__dirname, '..')
163
+
164
+ const pkgPath = path.join(basePath, 'package.json')
165
+ return JSON5.parse(jetpack.read(pkgPath))
166
+ }
167
+ Manager.prototype.getPackage = Manager.getPackage;
168
+
169
+ // getRootPath: returns the root path of the project or package
170
+ Manager.getRootPath = function (type) {
171
+ return type === 'project'
172
+ ? process.cwd()
173
+ : path.resolve(__dirname, '..')
174
+ }
175
+ Manager.prototype.getRootPath = Manager.getRootPath;
176
+
177
+ // getLiveReloadPort: (35729)
178
+ Manager.getLiveReloadPort = function () {
179
+ // Check if the port is set in the environment
180
+ process.env.OMEGA_LIVERELOAD_PORT = process.env.OMEGA_LIVERELOAD_PORT || 35729;
181
+
182
+ // Return the port
183
+ return parseInt(process.env.OMEGA_LIVERELOAD_PORT);
184
+ }
185
+ Manager.prototype.getLiveReloadPort = Manager.getLiveReloadPort;
186
+
187
+ // getDevWebsiteOrigin: where the brand's dev website answers (protocol + port),
188
+ // as the live sibling website app published it beside its port map. An extension
189
+ // has no way to probe at runtime, so every dev-origin surface — the build.js
190
+ // blob, the page config blob, the manifest's externally_connectable — BAKES this
191
+ // one answer ([#262](https://github.com/Omega-JS-Stack/omega/issues/262)).
192
+ //
193
+ // null when nothing published one: presence is a RESOLVED FACT, absence means
194
+ // "assume the classics" and say so (the N7 dev-map contract). A packaged build
195
+ // never probes at all — its artifact must not depend on whether a dev server
196
+ // happened to be running on the build machine.
197
+ Manager.getDevWebsiteOrigin = function () {
198
+ const { readSiblingOrigin } = require('./vendor/config/index.js');
199
+
200
+ if (Manager.getEnvironment() === 'production') {
201
+ return null;
202
+ }
203
+
204
+ return readSiblingOrigin(Manager.getRootPath('project'));
205
+ }
206
+ Manager.prototype.getDevWebsiteOrigin = Manager.getDevWebsiteOrigin;
207
+
208
+ // Create dummy file in project dist to force jekyll to build
209
+ Manager.triggerRebuild = function (files, logger) {
210
+ // Ensure logger is defined
211
+ logger = this?._logger || logger || console;
212
+
213
+ // Normalize files into an array of file names
214
+ if (typeof files === 'string') {
215
+ files = [files]; // Single string file name
216
+ } else if (Array.isArray(files)) {
217
+ // Already an array, no changes needed
218
+ } else if (typeof files === 'object' && files !== null) {
219
+ files = Object.keys(files); // Extract keys from object
220
+ } else {
221
+ logger.error('Invalid files for triggerRebuild()');
222
+ return;
223
+ }
224
+
225
+ // Set current time
226
+ const now = new Date();
227
+
228
+ // Touch all files to update mtime (so Jekyll notices)
229
+ files.forEach((file) => {
230
+ try {
231
+ fs.utimesSync(file, now, now);
232
+ logger.log(`Triggered build: ${file}`);
233
+ } catch (e) {
234
+ logger.error(`Failed to trigger build ${file}`, e);
235
+ }
236
+ });
237
+ }
238
+ Manager.prototype.triggerRebuild = Manager.triggerRebuild;
239
+
240
+ // Require
241
+ Manager.require = function (path) {
242
+ return require(path);
243
+ };
244
+ Manager.prototype.require = Manager.require;
245
+
246
+ // Memory monitoring utility
247
+ Manager.getMemoryUsage = function () {
248
+ const used = process.memoryUsage();
249
+ return {
250
+ rss: Math.round(used.rss / 1024 / 1024),
251
+ heapTotal: Math.round(used.heapTotal / 1024 / 1024),
252
+ heapUsed: Math.round(used.heapUsed / 1024 / 1024),
253
+ external: Math.round(used.external / 1024 / 1024),
254
+ };
255
+ };
256
+ Manager.prototype.getMemoryUsage = Manager.getMemoryUsage;
257
+
258
+ Manager.logMemory = function (logger, label) {
259
+ const mem = Manager.getMemoryUsage();
260
+ logger.log(`[Memory ${label}] RSS: ${mem.rss}MB | Heap Used: ${mem.heapUsed}MB / ${mem.heapTotal}MB | External: ${mem.external}MB`);
261
+ };
262
+ Manager.prototype.logMemory = Manager.logMemory;
263
+
264
+ // Cross-context helpers — Manager.isTesting() / isDevelopment() / etc.
265
+ require('./utils/mode-helpers.js').attachTo(Manager);
266
+
267
+ // Export
268
+ module.exports = Manager;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * run() — the omega-extension bin body, shared by bin/omega-extension (via
3
+ * dist/omega-bin.js) and cross-framework dispatch ('@omega.js/extension/cli').
4
+ */
5
+ async function run() {
6
+ // Local-dist freshness guard: a stale locally-linked dist rebuilds and the
7
+ // invocation re-execs once, so no command ever runs stale framework code
8
+ require('./vendor/devkit/local.js').freshnessBoot({ packageName: '@omega.js/extension' });
9
+
10
+ // Value-less flags must be declared boolean — otherwise yargs treats the next
11
+ // positional as the flag's VALUE. Mirrors the same fix in @omega.js/backend's CLI.
12
+ // yargs' built-in --version/--help are disabled so both route through the
13
+ // alias table / the router's built-in help (the built-ins printed an empty
14
+ // stub and version "0.0.0" — yargs can't resolve our package version here).
15
+ const argv = require('yargs')(process.argv.slice(2))
16
+ .boolean(['extended'])
17
+ .version(false)
18
+ .help(false)
19
+ .parseSync();
20
+ const cli = new (require('./cli.js'))(argv);
21
+
22
+ await cli.process(argv);
23
+ }
24
+
25
+ module.exports = { run };
package/dist/cli.js ADDED
@@ -0,0 +1,30 @@
1
+ // Libraries
2
+ const path = require('path');
3
+ const { createCliRouter } = require('./vendor/devkit/cli-router.js');
4
+
5
+ // Resolve the .env cascade from the project root
6
+ // (shell > local .env > brand .env > company .env). The target name delivers
7
+ // the schema's `deliverAs` renames into process.env (#678) — the brand's
8
+ // GOOGLE_ANALYTICS_SECRET_EXTENSION arrives as GOOGLE_ANALYTICS_SECRET.
9
+ require('./vendor/config/index.js').loadEnv(process.cwd(), { target: 'extension' });
10
+
11
+ // Main class — dispatch (positional/flag alias resolution, command loading,
12
+ // error surfacing) is the shared devkit router; this file owns only the alias
13
+ // table and the commands directory.
14
+ //
15
+ // A bare `omega` prints help: setup is retired and every verb runs the local
16
+ // scaffold itself ([#675](https://github.com/Omega-JS-Stack/omega/issues/675)).
17
+ module.exports = createCliRouter({
18
+ commandsDir: path.join(__dirname, 'commands'),
19
+ defaultCommand: 'help',
20
+ aliases: {
21
+ build: ['-b', '--build'],
22
+ clean: ['-c', '--clean'],
23
+ deploy: ['-d', '--deploy'],
24
+ install: ['-i', 'i', '--install'],
25
+ migrate: ['-m', '--migrate', 'migration'],
26
+ test: ['-t', '--test'],
27
+ update: ['-u', '--update', 'outdated', 'out'],
28
+ version: ['-v', '--version'],
29
+ },
30
+ });
@@ -0,0 +1,67 @@
1
+ // Libraries
2
+ const { execute } = require('node-powertools');
3
+ const Manager = new (require('../build.js'));
4
+ const logger = Manager.logger('build');
5
+ const { ensureTarget } = require('./lib/ensure-target.js');
6
+
7
+ // The consumer's `build` script is `omega build` — this verb owns the pipeline
8
+ // and the build-mode flag; it must never shell back to that script (that would
9
+ // recurse). `npm run gulp -- <task>` is the one safe shell-out: the consumer's
10
+ // `gulp` script is bare `gulp`, so there's no alias to recurse through. The
11
+ // gulp `build` series does no cleaning of its own, so the verb owns that step
12
+ // too. Desktop runs the same model through utils/build-pipeline.js because
13
+ // three verbs share it there; extension has the one plan, so it lives here.
14
+ function plan() {
15
+ return {
16
+ env: { OMEGA_BUILD_MODE: 'true' },
17
+ steps: [
18
+ { type: 'clean' },
19
+ { type: 'gulp', task: 'build' },
20
+ ],
21
+ };
22
+ }
23
+
24
+ // Step implementations — the seam runPlan takes as an argument, so a test can
25
+ // record the order without running a real gulp build.
26
+ const RUNNERS = {
27
+ clean: (options) => require('./clean.js')(options),
28
+ gulp: (options, step) => execute(`npm run gulp -- ${step.task}`, { log: true }),
29
+ };
30
+
31
+ async function runPlan(plan, options, runners) {
32
+ options = options || {};
33
+ runners = runners || RUNNERS;
34
+
35
+ // Set in-process so every child (gulp → esbuild → the packager) inherits them.
36
+ Object.entries(plan.env || {}).forEach(([key, value]) => {
37
+ process.env[key] = value;
38
+ });
39
+
40
+ for (const step of plan.steps) {
41
+ const runner = runners[step.type];
42
+
43
+ // The plan is authored in this file alongside the runner table — an unknown
44
+ // step type is a programmer error, never consumer input.
45
+ if (!runner) {
46
+ throw new Error(`Unknown pipeline step type: ${step.type}`);
47
+ }
48
+
49
+ await runner(options, step);
50
+ }
51
+ }
52
+
53
+ module.exports = async function (options) {
54
+ // Log
55
+ logger.log('Running production build...');
56
+
57
+ // The local scaffold BEFORE the pipeline (#675): the gulp `defaults` task
58
+ // ensures too, but gulp itself is one of the peer deps the ensure installs,
59
+ // so a fresh consumer outside any node_modules hoist never reaches it.
60
+ await ensureTarget({ log: (line) => logger.log(line), warn: (line) => logger.warn(line) });
61
+
62
+ await runPlan(plan(options), options);
63
+ };
64
+
65
+ module.exports.plan = plan;
66
+ module.exports.runPlan = runPlan;
67
+ module.exports.RUNNERS = RUNNERS;
@@ -0,0 +1,29 @@
1
+ // Libraries
2
+ const Manager = new (require('../build.js'));
3
+ const logger = Manager.logger('clean');
4
+ const { cleanDirs } = require('../vendor/devkit/clean-dirs.js');
5
+ const { ensureTarget } = require('./lib/ensure-target.js');
6
+
7
+ // Dirs to clean
8
+ const dirs = [
9
+ '.temp',
10
+ 'dist',
11
+ 'packaged',
12
+ // 'src/assets/themes',
13
+ ]
14
+
15
+ module.exports = async function (options) {
16
+ // The local scaffold (#675): the consumer `start` and `build` scripts are
17
+ // `omega clean && … npm run gulp …`, and gulp itself is one of the peer
18
+ // deps the ensure installs — clean is the only verb that runs before it.
19
+ await ensureTarget({ log: (line) => logger.log(line), warn: (line) => logger.warn(line) });
20
+
21
+ // Log
22
+ logger.log(`Cleaning up .temp, dist, and packaged directories...`);
23
+
24
+ try {
25
+ cleanDirs(dirs);
26
+ } catch (e) {
27
+ logger.error(`Error clearing directories: ${e}`);
28
+ }
29
+ };
@@ -0,0 +1,97 @@
1
+ /**
2
+ * `omega deploy` — the explicit publish verb (D13: commits never
3
+ * auto-publish). Syncs the working tree (commit + push — push triggers
4
+ * NOTHING), then dispatches the scaffolded publish workflow: CI builds,
5
+ * uploads to the stores when credentials are present, and attaches the
6
+ * package zip to a GitHub release (the durable artifact channel).
7
+ *
8
+ * Every run starts with the local scaffold the retired `omega setup` used to
9
+ * own (ensureTarget, #675) and then runs setup's NETWORK half as a precheck
10
+ * before the dispatch. `--no-secrets` skips that precheck.
11
+ *
12
+ * Flags: --dry-run (print the exact dispatch, send nothing; skips sync),
13
+ * --no-sync (dispatch without committing/pushing first).
14
+ */
15
+ const { execSync } = require('node:child_process');
16
+ const Manager = new (require('../build.js'));
17
+ const logger = Manager.logger('deploy');
18
+ const { deployViaDispatch, dispatchRepo, findLocalSpecs, syncWorkingTree } = require('../vendor/devkit/deploy.js');
19
+ const { composedWorkflowName } = require('../vendor/devkit/ci-workflows.js');
20
+ const { resolveSeedMode } = require('../vendor/config/index.js');
21
+ const { ensureTarget } = require('./lib/ensure-target.js');
22
+ const { deployPrecheck } = require('./lib/deploy-precheck.js');
23
+
24
+ module.exports = async function (options) {
25
+ options = options || {};
26
+ const dryRun = options.dryRun || options['dry-run'];
27
+ const projectDir = process.cwd();
28
+
29
+ // The local half of the retired `omega setup` (#675) — idempotent, offline,
30
+ // and quiet on a converged target.
31
+ await ensureTarget({ projectDir, log: (line) => logger.log(line), warn: (line) => logger.warn(line) });
32
+
33
+ // The NETWORK half, as a precheck: a deploy is the verb that needs the
34
+ // remote side right. A dry run sends nothing, so it prechecks nothing.
35
+ if (!dryRun) {
36
+ await deployPrecheck({ projectDir, options, logger });
37
+ }
38
+
39
+ // Inside a brand monorepo the target's CI lives in the BRAND ROOT's workflows
40
+ // dir under a per-target name (#265) — dispatch what setup actually composed.
41
+ const WORKFLOW = composedWorkflowName({
42
+ targetDir: process.cwd(),
43
+ brandRoot: resolveSeedMode(process.cwd()).brandRoot,
44
+ workflow: 'publish.yml',
45
+ });
46
+
47
+ // Linked local packages (tree-wide file: specs — cp194) → the LOCAL lane
48
+ // automatically: build + store-publish from this machine with the linked
49
+ // frameworks bundled in. Mirrored rule (Ian 2026-07-20); CI dispatch is
50
+ // only for registry-clean trees.
51
+ if (findLocalSpecs({ dir: process.cwd() }).length > 0) {
52
+ logger.log('Linked local packages detected — building + publishing LOCALLY (linked frameworks bundled; store credentials must be available in this shell). CI dispatch resumes after `omega i live`.');
53
+ if (dryRun) {
54
+ logger.log('DRY RUN — would run: npm run release (local build + store publish)');
55
+ return;
56
+ }
57
+ execSync('npm run release', { stdio: 'inherit' });
58
+ require('../vendor/devkit/deploy-record.js').recordDeploy({ dir: process.cwd(), target: 'extension', detail: { method: 'local' } });
59
+ return logger.log('Deployed from the LOCAL build (linked frameworks included).');
60
+ }
61
+
62
+ if (!dryRun && options.sync !== false) {
63
+ logger.log('Syncing (commit + push — publishes nothing by itself)...');
64
+ syncWorkingTree({ message: 'Deploy', logger });
65
+ }
66
+
67
+ const { owner, repo } = dispatchAddress();
68
+ const { plan, dispatched } = await deployViaDispatch({ workflow: WORKFLOW, owner, repo, dryRun });
69
+
70
+ if (dispatched) {
71
+ require('../vendor/devkit/deploy-record.js').recordDeploy({ dir: process.cwd(), target: 'extension', detail: { method: 'dispatch' } });
72
+ logger.log(`Dispatched ${WORKFLOW} — CI builds, publishes to stores, and attaches the zip to a GitHub release.`);
73
+ logger.log(`Watch: ${plan.runsUrl}`);
74
+ } else {
75
+ logger.log('DRY RUN — would send:');
76
+ logger.log(` ${plan.method} ${plan.url}`);
77
+ logger.log(` body: ${JSON.stringify(plan.body)}`);
78
+ logger.log(` then watch: ${plan.runsUrl}`);
79
+ }
80
+ };
81
+
82
+ /**
83
+ * The repo this target's CI dispatch addresses: the brand's own, from its
84
+ * config ([#799](https://github.com/Omega-JS-Stack/omega/issues/799)). A git
85
+ * remote answers the repo the working tree SITS IN, which inside a brand nested
86
+ * in another repo is the enclosing one, so the dispatch went to a workflow that
87
+ * was never there. The rule is `@omega.js/devkit/deploy`'s `dispatchRepo`, the
88
+ * same call web's deploy and desktop's release verbs make. Exported for tests.
89
+ *
90
+ * @returns {{ owner: string, repo: string }} owner and bare repo name
91
+ * @throws {Error} when the config names no repo
92
+ */
93
+ function dispatchAddress() {
94
+ return dispatchRepo(Manager.getConfig());
95
+ }
96
+
97
+ module.exports.dispatchAddress = dispatchAddress;
@@ -0,0 +1,58 @@
1
+ // Libraries
2
+ const Manager = new (require('../build.js'));
3
+ const logger = Manager.logger('install');
4
+ const { safeInstall } = require('../lib/safe-install');
5
+ const local = require('../vendor/devkit/local.js');
6
+
7
+ // Load package
8
+ const package = Manager.getPackage('main');
9
+ const project = Manager.getPackage('project');
10
+
11
+ module.exports = async function (options) {
12
+ // Log
13
+ logger.log(`Installing ${package.name}...`);
14
+
15
+ // Get type
16
+ const type = options._[1] || 'prod';
17
+
18
+ try {
19
+ // Install production — the publish-day inverse of `i local`: flip every
20
+ // file: spec in the brand tree to the exact <linked version>, one registry install
21
+ if (['live', 'prod', 'p', 'production'].includes(type)) {
22
+ // Log
23
+ logger.log('Installing production (restoring registry specs tree-wide)...');
24
+
25
+ // Restore
26
+ const actions = await local.restoreRegistrySpecs({ dir: process.cwd(), logger });
27
+ const flipped = actions.filter((action) => action.action === 'flip').length;
28
+
29
+ // Return
30
+ return logger.log(flipped > 0
31
+ ? `Production installation complete (${flipped} spec(s) restored to registry ranges).`
32
+ : 'Already on registry specs — nothing to flip.');
33
+ }
34
+
35
+ // Install development (link from the local Omega monorepo)
36
+ if (['dev', 'd', 'development', 'local', 'l'].includes(type)) {
37
+ // Log
38
+ logger.log('Installing development (local Omega monorepo)...');
39
+
40
+ // Link every @omega.js dependency to the monorepo (idempotent)
41
+ await local.linkLocalPackages({
42
+ dir: process.cwd(),
43
+ monorepoRoot: local.resolveMonorepoRoot(),
44
+ logger,
45
+ });
46
+
47
+ // Return
48
+ return logger.log('Development installation complete.');
49
+ }
50
+
51
+ } catch (e) {
52
+ logger.error(`Error during install:`, e);
53
+ }
54
+ };
55
+
56
+ function install(command) {
57
+ return safeInstall(command);
58
+ }
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @omega.js/extension's half of the shared dependency checks
3
+ * ([#675](https://github.com/Omega-JS-Stack/omega/issues/675)) — the logic is
4
+ * `@omega.js/devkit/target-dependencies` (one copy for every framework); this
5
+ * file is the DATA: which peer deps install as devDependencies, and the
6
+ * framework's own `safeInstall`.
7
+ *
8
+ * ensurePeerDependencies the target cannot build without them — LOCAL half,
9
+ * ensure-target.js runs it on every verb
10
+ * updateManager asks the npm registry whether the framework itself
11
+ * is stale — NETWORK half, deploy-precheck.js runs it
12
+ */
13
+ const shared = require('../../vendor/devkit/target-dependencies.js');
14
+ const { safeInstall } = require('../../lib/safe-install');
15
+
16
+ // Peer-dep install location overrides
17
+ const DEPENDENCY_MAP = {
18
+ 'gulp': 'dev',
19
+ };
20
+
21
+ const readProject = shared.readProject;
22
+
23
+ /** See `@omega.js/devkit/target-dependencies` — bound to the extension's map + installer. */
24
+ function ensurePeerDependencies(input) {
25
+ return shared.ensurePeerDependencies({ ...input, dependencyMap: DEPENDENCY_MAP, safeInstall });
26
+ }
27
+
28
+ /** See `@omega.js/devkit/target-dependencies` — bound to the extension's installer. */
29
+ function updateManager(input) {
30
+ return shared.updateManager({ ...input, safeInstall });
31
+ }
32
+
33
+ module.exports = { ensurePeerDependencies, updateManager, readProject, DEPENDENCY_MAP };
@@ -0,0 +1,57 @@
1
+ /**
2
+ * deploy-precheck — the NETWORK half `omega setup` used to own
3
+ * ([#675](https://github.com/Omega-JS-Stack/omega/issues/675)).
4
+ *
5
+ * Setup's local half now rides every verb (ensure-target.js); what needs the
6
+ * network rides the ONE verb that needs the remote side right —
7
+ * `omega deploy` — as a precheck before the dispatch:
8
+ *
9
+ * framework-freshness the npm registry's latest vs the installed version,
10
+ * since CI builds this deploy with whatever the
11
+ * manifest pins
12
+ * push-secrets the composed target env → GitHub Actions repo secrets,
13
+ * which the dispatched workflow's generated env block
14
+ * consumes ([#680](https://github.com/Omega-JS-Stack/omega/issues/680))
15
+ *
16
+ * Every step is soft: a precheck reports, the deploy proceeds. `--no-secrets`
17
+ * skips the whole precheck — the same opt-out name on web, desktop and
18
+ * extension (parity).
19
+ *
20
+ * The RUNNER is `@omega.js/devkit/deploy-precheck` (one copy for every
21
+ * framework); this file is the extension's STEPS.
22
+ */
23
+ const Manager = new (require('../../build.js'));
24
+ const { runDeployPrecheck } = require('../../vendor/devkit/deploy-precheck.js');
25
+ const { updateManager } = require('./dependencies.js');
26
+ const { publishEnvSecrets } = require('./push-secrets.js');
27
+
28
+ const package = Manager.getPackage('main');
29
+
30
+ /**
31
+ * The default steps, in order. Named so a test can hand its own recorder in
32
+ * and read back exactly which ones ran.
33
+ */
34
+ const STEPS = [
35
+ {
36
+ name: 'framework-freshness',
37
+ run: ({ projectDir, log, warn }) => updateManager({ projectDir, package, log, error: warn }),
38
+ },
39
+ {
40
+ name: 'push-secrets',
41
+ run: ({ projectDir, log, warn }) => publishEnvSecrets({ targetDir: projectDir, logger: { log, warn, error: warn } }),
42
+ },
43
+ ];
44
+
45
+ /**
46
+ * @param {object} input
47
+ * @param {string} input.projectDir - The target root.
48
+ * @param {object} input.options - The parsed CLI options (`secrets: false` = opted out).
49
+ * @param {object} input.logger - `{ log, warn, error }`.
50
+ * @param {Array} [input.steps] - Injectable step list (tests).
51
+ * @returns {Promise<{ skipped: string }|{ ran: string[] }>} The steps that ran, or the opt-out marker.
52
+ */
53
+ function deployPrecheck({ projectDir, options, logger, steps }) {
54
+ return runDeployPrecheck({ projectDir, options, logger, steps: steps || STEPS });
55
+ }
56
+
57
+ module.exports = { deployPrecheck, STEPS };