@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
@@ -0,0 +1,151 @@
1
+ /**
2
+ * ensure-target — the LOCAL, idempotent scaffold every verb runs
3
+ * ([#675](https://github.com/Omega-JS-Stack/omega/issues/675)).
4
+ *
5
+ * `omega setup` used to own this half and nothing ran it for you, so a target
6
+ * drifted until someone remembered the command per target. It is retired: the
7
+ * "write it if missing" steps live here, the gulp `defaults` task calls it
8
+ * first (so `npm start` and every gulp build heal the tree), and the non-gulp
9
+ * verbs — `omega test`, `omega deploy` — call it themselves.
10
+ *
11
+ * What it guarantees, in this order:
12
+ *
13
+ * package.json the omega verb scripts + the npm-private latch — pure
14
+ * manifest edits, so they land before anything that throws
15
+ * node version FATAL when the shell is older than the framework's pin
16
+ * peer dependencies installed when missing or behind (a satisfied target
17
+ * installs nothing)
18
+ * defaults tree the consumer interior, via the gulp defaults task's
19
+ * scaffoldDefaults — the ONE scaffold implementation
20
+ * locality a WARNING when the framework is a `file:` link
21
+ *
22
+ * What needs the network is NOT here: the framework freshness check is an
23
+ * `omega deploy` precheck (deploy-precheck.js), and the one-time hook-layout
24
+ * migration is its own command (`omega migrate`).
25
+ */
26
+ const path = require('path');
27
+ const jetpack = require('fs-jetpack');
28
+ const version = require('wonderful-version');
29
+ const Manager = new (require('../../build.js'));
30
+ const { ensurePeerDependencies, readProject } = require('./dependencies.js');
31
+ const { assertScaffoldable } = require('../../vendor/devkit/scaffold-guard.js');
32
+
33
+ const logger = Manager.logger('ensure-target');
34
+ const package = Manager.getPackage('main');
35
+
36
+ /**
37
+ * Sync the consumer manifest: the omega verb scripts and the npm-private latch
38
+ * (extensions are never published to npm). Identical content is not a write
39
+ * (#572) — it matters more since #675, because this runs on EVERY verb.
40
+ */
41
+ function setupScripts(projectDir, result) {
42
+ projectDir = projectDir || Manager.getRootPath('project');
43
+ result = result || { changed: [] };
44
+
45
+ const project = readProject(projectDir);
46
+
47
+ // Setup the scripts
48
+ project.scripts = project.scripts || {};
49
+
50
+ Object.keys(package.projectScripts).forEach((key) => {
51
+ project.scripts[key] = package.projectScripts[key];
52
+ });
53
+
54
+ // Ensure the project is private (extensions should never be published to npm)
55
+ project.private = true;
56
+
57
+ // Save the project — npm's own shape, trailing newline included.
58
+ const projectPath = path.join(projectDir, 'package.json');
59
+ const contents = `${JSON.stringify(project, null, 2)}\n`;
60
+
61
+ if (jetpack.read(projectPath) === contents) {
62
+ return;
63
+ }
64
+
65
+ jetpack.write(projectPath, contents);
66
+ result.changed.push('package.json (scripts + private)');
67
+ }
68
+
69
+ /** The framework's pinned runtime is a FLOOR here — an older shell is fatal. */
70
+ function ensureNodeVersion(log) {
71
+ const installedVersion = version.clean(process.version);
72
+ const requiredVersion = version.clean(package.omega.nodeRuntime);
73
+ const isUpToDate = version.is(installedVersion, '>=', requiredVersion);
74
+
75
+ log(`Checking if Node.js is up to date (${logger.format.bold(installedVersion)} >= ${logger.format.bold(requiredVersion)}): ${isUpToDate ? logger.format.green('Yes') : logger.format.red('No')}`);
76
+
77
+ if (!isUpToDate) {
78
+ throw new Error(`Node version is out-of-date. Required version is ${requiredVersion}.`);
79
+ }
80
+ }
81
+
82
+ /** Warn when the framework is a `file:` link — that install never publishes. */
83
+ function checkLocality(projectDir, warn) {
84
+ const project = readProject(projectDir);
85
+ const installedVersion = project.devDependencies[package.name] || project.dependencies[package.name];
86
+
87
+ if (!installedVersion) {
88
+ throw new Error(`No installed version of ${package.name} found in dependencies or devDependencies.`);
89
+ }
90
+
91
+ if (installedVersion.startsWith('file:')) {
92
+ warn(`⚠️⚠️⚠️ You are using the local version of ${package.name}. This WILL NOT WORK when published. ⚠️⚠️⚠️`);
93
+ }
94
+ }
95
+
96
+ /**
97
+ * Make the target whole — idempotent, offline, and quiet when there is
98
+ * nothing to do.
99
+ *
100
+ * @param {object} [options]
101
+ * @param {string} [options.projectDir] - The target root (default: cwd).
102
+ * @param {function} [options.log] - Line logger (silent by default).
103
+ * @param {function} [options.warn] - Warning logger (silent by default).
104
+ * @returns {Promise<{ written: string[], merged: string[], changed: string[] }>}
105
+ * Target-relative paths per outcome — empty on a no-op run.
106
+ */
107
+ async function ensureTarget(options) {
108
+ options = options || {};
109
+ const projectDir = options.projectDir || Manager.getRootPath('project');
110
+ const log = options.log || (() => {});
111
+ const warn = options.warn || (() => {});
112
+ const result = { written: [], merged: [], changed: [] };
113
+
114
+ // The framework's own tree is not a consumer target. Running the framework's
115
+ // suite from packages/extension puts the framework at the cwd, and a verb
116
+ // that scaffolds unconditionally would install its own peer deps into itself
117
+ // and scatter the consumer defaults through the package. Refuse, quietly:
118
+ // this is a normal state, not a broken one.
119
+ if (readProject(projectDir).name === package.name) {
120
+ return result;
121
+ }
122
+
123
+ // A workspace ROOT is not a target either — and unlike the case above, landing
124
+ // there is an accident (a verb run from the wrong cwd), so it fails LOUD (#699).
125
+ assertScaffoldable(projectDir);
126
+
127
+ setupScripts(projectDir, result);
128
+ ensureNodeVersion(log);
129
+
130
+ await ensurePeerDependencies({ projectDir, package, log });
131
+
132
+ // The consumer interior — the SAME engine run the build's defaults task
133
+ // performs (friction #13). Required lazily: that task requires this module
134
+ // back, and only one of the two can win at load time.
135
+ const { scaffoldDefaults } = require('../../gulp/tasks/defaults.js');
136
+ const applied = scaffoldDefaults({ outputDir: projectDir });
137
+ if (applied) {
138
+ result.written.push(...applied.written);
139
+ result.merged.push(...applied.merged);
140
+ }
141
+
142
+ checkLocality(projectDir, warn);
143
+
144
+ for (const [label, files] of [['Created', result.written], ['Merged', result.merged], ['Synced', result.changed]]) {
145
+ if (files.length > 0) log(`${label} ${files.join(', ')}`);
146
+ }
147
+
148
+ return result;
149
+ }
150
+
151
+ module.exports = { ensureTarget, setupScripts };
@@ -0,0 +1,60 @@
1
+ /**
2
+ * The `.env` → GitHub Actions secrets publisher for the extension target
3
+ * ([#680](https://github.com/Omega-JS-Stack/omega/issues/680)).
4
+ *
5
+ * The publish workflow is dispatched with no `.env` on the runner, so every
6
+ * store credential and the baked Measurement Protocol secret reach the build
7
+ * as repo Actions secrets — and until now nothing PUT them there: a consumer
8
+ * pasted each one into the GitHub UI by hand, and a fresh brand's first publish
9
+ * failed on whichever one they missed. `omega deploy` now pushes them, exactly
10
+ * as web does.
11
+ *
12
+ * "Exactly as web does" is now literal: the derive → collect → guard → publish
13
+ * orchestration is `@omega.js/devkit/target-secrets`, and this file is the
14
+ * BIND — the target string and nothing else. Extension secrets are plain
15
+ * strings, so there is no file/base64 lane here; that is desktop's, for its
16
+ * signing certificates.
17
+ */
18
+ const { collectTargetSecrets, declaredBrandRepo: declaredRepoFor, publishTargetSecrets } = require('../../vendor/devkit/target-secrets.js');
19
+
20
+ const TARGET = 'extension';
21
+
22
+ /**
23
+ * The publishable secrets: the schema's extension delivery set, valued from
24
+ * the composed env. An empty value never claims a key.
25
+ *
26
+ * @param {string} targetDir - The target root (its .env is the local layer).
27
+ * @returns {Object<string, string>} key → value, ready to publish.
28
+ */
29
+ function collectEnvSecrets(targetDir) {
30
+ return collectTargetSecrets({ targetDir, target: TARGET });
31
+ }
32
+
33
+ /**
34
+ * The brand's OWN repo as `owner/name`, from the composed config. Null when
35
+ * the config declares nothing usable or doesn't load.
36
+ *
37
+ * @param {string} targetDir - The target root.
38
+ * @returns {string|null}
39
+ */
40
+ function declaredBrandRepo(targetDir) {
41
+ return declaredRepoFor({ targetDir, target: TARGET });
42
+ }
43
+
44
+ /**
45
+ * The `omega deploy` precheck step: publish the target's composed values as
46
+ * repo Actions secrets.
47
+ *
48
+ * @param {object} options
49
+ * @param {string} options.targetDir - The target root.
50
+ * @param {object} options.logger - `{ log, warn, error }`.
51
+ * @param {object} [options.env] - Env map (default: process.env).
52
+ * @param {function} [options.execFn] - Injectable `gh` exec (tests).
53
+ * @param {function} [options.gitExecFn] - Injectable `git` exec for remote discovery (tests).
54
+ * @returns {{ skipped: string }|{ published: string[], failed: Array<object> }}
55
+ */
56
+ function publishEnvSecrets(options) {
57
+ return publishTargetSecrets({ ...(options || {}), target: TARGET });
58
+ }
59
+
60
+ module.exports = { collectEnvSecrets, declaredBrandRepo, publishEnvSecrets };
@@ -0,0 +1,77 @@
1
+ /**
2
+ * `omega migrate` — the one-time, version-gated moves an upgrade needs.
3
+ *
4
+ * This used to be step one of `omega setup` and ran on every setup. Setup is
5
+ * retired ([#675](https://github.com/Omega-JS-Stack/omega/issues/675)) and its
6
+ * local half now runs on every verb, which is the wrong home for a migration:
7
+ * a MOVE is not idempotent healing, it is a one-time upgrade step a consumer
8
+ * runs deliberately (the same shape `@omega.js/web` already ships).
9
+ *
10
+ * Today it carries one migration: hook files moved to the nested layout in
11
+ * 2.0.0. A `file:` install is skipped — a linked consumer is already current.
12
+ */
13
+ const path = require('path');
14
+ const jetpack = require('fs-jetpack');
15
+ const version = require('wonderful-version');
16
+ const Manager = new (require('../build.js'));
17
+ const { readProject } = require('./lib/dependencies.js');
18
+
19
+ const logger = Manager.logger('migrate');
20
+ const package = Manager.getPackage('main');
21
+
22
+ // Old hook file name → its new nested path
23
+ const HOOK_MIGRATIONS = [
24
+ { old: 'build:post.js', new: 'build/post.js' },
25
+ { old: 'build:pre.js', new: 'build/pre.js' },
26
+ { old: 'middleware:request.js', new: 'middleware/request.js' },
27
+ ];
28
+
29
+ /** Move old flat hook files into the nested structure (introduced in 2.0.0). */
30
+ function migrateHooksToNestedStructure(projectDir) {
31
+ const hooksDir = path.join(projectDir, 'hooks');
32
+ let migratedCount = 0;
33
+
34
+ for (const migration of HOOK_MIGRATIONS) {
35
+ const oldPath = path.join(hooksDir, migration.old);
36
+ const newPath = path.join(hooksDir, migration.new);
37
+
38
+ if (!jetpack.exists(oldPath)) {
39
+ continue;
40
+ }
41
+
42
+ if (jetpack.exists(newPath)) {
43
+ logger.warn(`⚠️ Migrate ${migration.old}: ${migration.new} already exists`);
44
+ }
45
+
46
+ jetpack.move(oldPath, newPath, { overwrite: true });
47
+ logger.log(`✅ Migrated hook: ${migration.old} → ${migration.new}`);
48
+ migratedCount++;
49
+ }
50
+
51
+ if (migratedCount > 0) {
52
+ logger.log(`✅ Migrated ${migratedCount} hook file(s) to new nested structure`);
53
+ }
54
+
55
+ return migratedCount;
56
+ }
57
+
58
+ module.exports = async function (options) {
59
+ options = options || {};
60
+
61
+ const projectDir = options.projectDir || Manager.getRootPath('project');
62
+ const project = readProject(projectDir);
63
+ const installedVersion = project.devDependencies[package.name] || project.dependencies[package.name] || '0.0.0';
64
+
65
+ // A linked consumer builds from THIS source — there is nothing to migrate to.
66
+ if (installedVersion.startsWith('file:')) {
67
+ return logger.log('Local (`file:`) install — nothing to migrate.');
68
+ }
69
+
70
+ if (version.is(installedVersion, '<=', '2.0.0')) {
71
+ migrateHooksToNestedStructure(projectDir);
72
+ }
73
+
74
+ logger.log('Migration complete');
75
+ };
76
+
77
+ module.exports.migrateHooksToNestedStructure = migrateHooksToNestedStructure;
@@ -0,0 +1,110 @@
1
+ // Libraries
2
+ const path = require('path');
3
+ const fs = require('fs');
4
+ const Manager = new (require('../build.js'));
5
+ const logger = Manager.logger('test');
6
+ const { run } = require('../test/runner.js');
7
+ const attachLogFile = require('../utils/attach-log-file.js');
8
+ const { EXTENDED_MODE_WARNING } = require('../test/utils/extended-mode-warning.js');
9
+ const { noMatchMessage, noMatchExitCode } = require('../vendor/devkit/test/scope.js');
10
+ const { ensureTarget } = require('./lib/ensure-target.js');
11
+
12
+ module.exports = async function (options) {
13
+ // Tee all test output to <projectRoot>/logs/test.log (ANSI-stripped) — mirrors
14
+ // EM's test.log and @omega.js/backend's test.log pattern.
15
+ attachLogFile(path.join(process.cwd(), 'logs', 'test.log'));
16
+
17
+ // The local half of the retired `omega setup` (#675) — idempotent, offline,
18
+ // and quiet on a converged target. The gulp verbs get it from the `defaults`
19
+ // task; test runs no gulp, so it calls it here.
20
+ await ensureTarget({
21
+ projectDir: process.cwd(),
22
+ log: (line) => logger.log(line),
23
+ warn: (line) => logger.warn(line),
24
+ });
25
+
26
+ const layer = options.layer || 'all';
27
+ // Positional target: `npx omega test <target>` where target supports source
28
+ // prefixes — `project:`, `project:<path>`, `mgr:`, `extension:`, or a bare `<path>`.
29
+ const target = (options._ && options._[1]) || null;
30
+ // `--filter` flag: substring match on test NAMES/descriptions (orthogonal to target).
31
+ const filter = options.filter || null;
32
+ const reporter = options.reporter || 'pretty';
33
+ // Extended mode — opt into tests that hit REAL external services (Firebase via @omega.js/client,
34
+ // push, any network call) instead of skipping them. Off by default so `npx omega test` stays
35
+ // fast and offline-safe. The canonical signal is the unprefixed `TEST_EXTENDED_MODE` env var
36
+ // — the SAME name across @omega.js/backend/BXM/UJM/EM (cross-framework parity); `--extended` is the CLI
37
+ // shorthand. Once set on process.env it propagates to every spawned test environment (the
38
+ // in-process Node runner, and Puppeteer's Chromium which inherits process.env).
39
+ const extended = options.extended === true
40
+ || options.extended === 'true'
41
+ || process.env.TEST_EXTENDED_MODE === 'true'
42
+ || process.env.TEST_EXTENDED_MODE === '1';
43
+
44
+ if (extended) {
45
+ process.env.TEST_EXTENDED_MODE = 'true';
46
+ }
47
+
48
+ // Canonical signal — every Manager picks this up via isTesting().
49
+ process.env.OMEGA_TEST_MODE = 'true';
50
+
51
+ // When BXM itself runs its own boot-layer tests (the cwd's package.json is
52
+ // BXM's package.json), there's no real consumer extension to target. Point
53
+ // the boot runner at the fixture under dist/test/fixtures/consumer-extension
54
+ // unless the caller has already set OMEGA_TEST_BOOT_PROJECT explicitly.
55
+ if (!process.env.OMEGA_TEST_BOOT_PROJECT) {
56
+ try {
57
+ const cwdPkg = JSON.parse(fs.readFileSync(path.join(process.cwd(), 'package.json'), 'utf8'));
58
+ if (cwdPkg.name === '@omega.js/extension') {
59
+ process.env.OMEGA_TEST_BOOT_PROJECT = path.join(__dirname, '..', 'test', 'fixtures', 'consumer-extension');
60
+ }
61
+ } catch (_) { /* no package.json — leave unset */ }
62
+ }
63
+
64
+ if (reporter !== 'json') {
65
+ logger.log(`Running tests (layer=${layer}${target ? ` target="${target}"` : ''}${filter ? ` filter="${filter}"` : ''}${extended ? ' +extended' : ''})`);
66
+ logger.log(`Test mode: ${extended ? 'extended (real external APIs)' : 'normal (external APIs skipped)'}`);
67
+ if (extended) {
68
+ logger.warn(EXTENDED_MODE_WARNING[0]);
69
+ EXTENDED_MODE_WARNING.slice(1).forEach((line) => logger.warn(line));
70
+ }
71
+ }
72
+
73
+ const result = await run({ layer, target, filter, reporter });
74
+
75
+ if (reporter === 'json') {
76
+ // Final machine-readable summary.
77
+ process.stdout.write(`${JSON.stringify({
78
+ event: 'summary',
79
+ passed: result.passed,
80
+ failed: result.failed,
81
+ skipped: result.skipped,
82
+ total: result.passed + result.failed + result.skipped,
83
+ })}\n`);
84
+ }
85
+
86
+ // A target that named files and matched none is a failed run, not an empty
87
+ // one: a typo'd path, or a suite renamed out from under it, used to report
88
+ // "0 passing" and exit 0
89
+ // ([#814](https://github.com/Omega-JS-Stack/omega/issues/814)).
90
+ if (result.noMatch) {
91
+ logger.error(noMatchMessage(result.noMatch));
92
+ // Standalone that is 1. Inside a brand-root fan-out the manager forwarded
93
+ // ONE target to every target, so a distinct code lets it count this as a
94
+ // miss rather than a failure (#814).
95
+ process.exitCode = noMatchExitCode();
96
+ await attachLogFile.detach();
97
+ return;
98
+ }
99
+
100
+ if (result.failed > 0) {
101
+ process.exitCode = 1;
102
+ await attachLogFile.detach();
103
+ throw new Error(`${result.failed} test(s) failed`);
104
+ }
105
+
106
+ // Close test.log and restore stdout/stderr. Nothing to flush: every write
107
+ // already went to the fd synchronously (#197), so detach() just closes the
108
+ // handle — the Results block is on disk before this line runs.
109
+ await attachLogFile.detach();
110
+ };
@@ -0,0 +1,21 @@
1
+ /**
2
+ * `omega update` — dependency freshness report (npu-outdated semantics):
3
+ * installed/wanted/latest + patch/minor/major per dep, releases younger than
4
+ * --min-age days (default 7) QUARANTINED. `--apply` installs the
5
+ * non-quarantined, non-breaking set (`--major` opts into breaking) through
6
+ * npu when present. The whole verb is the shared devkit implementation.
7
+ */
8
+ const Manager = new (require('../build.js'));
9
+ const logger = Manager.logger('update');
10
+ const { runUpdate } = require('../vendor/devkit/update.js');
11
+
12
+ module.exports = async function (options) {
13
+ await runUpdate({
14
+ dir: process.cwd(),
15
+ apply: options.apply,
16
+ major: options.major,
17
+ minAge: options.minAge ?? options['min-age'],
18
+ forceFresh: options.forceFresh || options['force-fresh'],
19
+ logger,
20
+ });
21
+ };
@@ -0,0 +1,12 @@
1
+ // Libraries
2
+ const Manager = new (require('../build.js'));
3
+ const logger = Manager.logger('version');
4
+
5
+ // Load package
6
+ const package = Manager.getPackage('main');
7
+ const project = Manager.getPackage('project');
8
+
9
+ module.exports = async function (options) {
10
+ // Log
11
+ logger.log(package.version);
12
+ };
@@ -0,0 +1,117 @@
1
+ {
2
+ // Basic info
3
+ manifest_version: 3,
4
+ name: '__MSG_appName__',
5
+ short_name: '__MSG_appNameShort__',
6
+ description: '__MSG_appDescription__',
7
+
8
+ // Icon
9
+ icons: {
10
+ '1024': 'assets/images/icons/icon-1024x.png',
11
+ '512': 'assets/images/icons/icon-512x.png',
12
+ '256': 'assets/images/icons/icon-256x.png',
13
+ '128': 'assets/images/icons/icon-128x.png',
14
+ '64': 'assets/images/icons/icon-64x.png',
15
+ '48': 'assets/images/icons/icon-48x.png',
16
+ '32': 'assets/images/icons/icon-32x.png',
17
+ '24': 'assets/images/icons/icon-24x.png',
18
+ '16': 'assets/images/icons/icon-16x.png',
19
+ },
20
+
21
+ // Default locale
22
+ default_locale: 'en',
23
+
24
+ // Background script
25
+ // Chrome uses service_worker, Firefox uses scripts array
26
+ background: {
27
+ service_worker: 'assets/js/components/background.bundle.js',
28
+ scripts: ['assets/js/components/background.bundle.js'],
29
+ },
30
+
31
+ // Permissions
32
+ permissions: [
33
+ ],
34
+ host_permissions: [
35
+ ],
36
+
37
+ // Options page
38
+ options_ui: {
39
+ page: 'views/options/index.html',
40
+ },
41
+
42
+ // Content scripts
43
+ content_scripts: [
44
+ ],
45
+
46
+ // Browser action
47
+ action: {
48
+ // default_icon: {
49
+ // '48': 'assets/images/icons/icon-48x.png',
50
+ // '32': 'assets/images/icons/icon-32x.png',
51
+ // '24': 'assets/images/icons/icon-24x.png',
52
+ // '16': 'assets/images/icons/icon-16x.png',
53
+ // },
54
+ default_icon: 'assets/images/icons/icon-48x.png',
55
+ default_title: '__MSG_appName__',
56
+ // default_popup: '', // Disabled so we can customize what happens on click
57
+ },
58
+
59
+ // Side panel
60
+ side_panel: {
61
+ default_path: 'views/sidepanel/index.html',
62
+ },
63
+
64
+ // Content security policy
65
+ content_security_policy: {
66
+ extension_pages: "script-src 'self'; object-src 'self'; worker-src 'self';",
67
+ },
68
+
69
+ // Web accessible resources
70
+ // Origins allowed to message this extension. BUILD-TIME-BAKED by design (N7
71
+ // non-goal: a shipped extension can't probe ports), and RESOLVED at package
72
+ // time, never a literal: the brand's own origin (from `brand.url`) always,
73
+ // plus the live sibling website's dev origin — protocol and port both, the
74
+ // classic https://localhost:4000 when nothing is running — in dev only. A
75
+ // packaged build used to ship the localhost origin alone, so the brand site
76
+ // could not message the published extension (#583). If your `omega dev`
77
+ // bumped, rebuild while it's running (or pin `ports.website` in the brand
78
+ // config) so both sides agree.
79
+ externally_connectable: {
80
+ matches: [
81
+ %%%externallyConnectableOrigins%%%
82
+ ],
83
+ },
84
+
85
+ // Web accessible resources
86
+ web_accessible_resources: [
87
+ ],
88
+
89
+ // Offscreen document (for persistent background operations like WebSocket)
90
+ // offscreen_document: {
91
+ // file: 'views/offscreen/index.html',
92
+ // },
93
+
94
+ // Commands
95
+ commands: {
96
+ },
97
+
98
+ // Sandbox
99
+ sandbox: {
100
+ pages: [
101
+ ],
102
+ },
103
+
104
+ // IDs
105
+ browser_specific_settings: {
106
+ gecko: {
107
+ // id: 'my-addon@example.com',
108
+ strict_min_version: '91.0',
109
+ // Required for new Firefox extensions as of Nov 2025
110
+ // https://blog.mozilla.org/addons/2025/10/23/data-collection-consent-changes-for-new-firefox-extensions/
111
+ data_collection_permissions: {
112
+ required: ['authenticationInfo'],
113
+ optional: ['technicalAndInteraction'],
114
+ },
115
+ },
116
+ },
117
+ }
@@ -0,0 +1,21 @@
1
+ <!doctype html>
2
+ <html data-bs-theme="{{ theme.appearance }}">
3
+ <head>
4
+ <!-- Meta -->
5
+ <meta charset="utf-8">
6
+ <meta name="viewport" content="width=device-width,initial-scale=1">
7
+ <title>{{ page.title }}</title>
8
+
9
+ <!-- Main CSS (includes Font Awesome) -->
10
+ <link href="/assets/css/main.bundle.css?cb={{ cacheBust }}" rel="stylesheet">
11
+
12
+ <!-- Component-specific CSS -->
13
+ <link href="/assets/css/components/{{ page.name }}.bundle.css?cb={{ cacheBust }}" rel="stylesheet">
14
+ </head>
15
+ <body>
16
+ {{ content }}
17
+
18
+ <!-- Main JS (OMEGA_BUILD_JSON rides baked in the bundle's banner, #743) -->
19
+ <script src="/assets/js/components/{{ page.name }}.bundle.js?cb={{ cacheBust }}"></script>
20
+ </body>
21
+ </html>
@@ -0,0 +1,37 @@
1
+ // Libraries
2
+ import extension from './lib/extension.js';
3
+ import LoggerLite from './lib/logger-lite.js';
4
+ import Messaging from './lib/messaging.js';
5
+ import Affiliatizer from './lib/affiliatizer.js';
6
+ import { attachTo as attachModeHelpers } from './utils/mode-helpers.js';
7
+
8
+ // Class
9
+ class Manager {
10
+ constructor() {
11
+ // Properties
12
+ this.extension = null;
13
+ this.messenger = null;
14
+ this.logger = null;
15
+ this.affiliatizer = null;
16
+ }
17
+
18
+ async initialize() {
19
+ // Set properties
20
+ this.extension = extension;
21
+ this.messenger = new Messaging({ sender: 'content' });
22
+ this.logger = new LoggerLite('content');
23
+ this.affiliatizer = Affiliatizer.initialize(this);
24
+
25
+ // Log
26
+ this.logger.log('Initialized!', this);
27
+
28
+ // Return manager instance
29
+ return this;
30
+ }
31
+ }
32
+
33
+ // Cross-context helpers — Manager.isTesting() / isDevelopment() / etc.
34
+ attachModeHelpers(Manager);
35
+
36
+ // Export
37
+ export default Manager;