@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,48 @@
1
+ // Libraries
2
+ // import ext from './ext';
3
+ const ext = require('./extension.js');
4
+
5
+ // Messaging
6
+ function Messaging(init) {
7
+ const self = this;
8
+
9
+ // Check init
10
+ if (!init || !init.sender) {
11
+ throw new Error('No init and/or init.sender')
12
+ }
13
+
14
+ // Setup
15
+ self.onMessage = function () {}
16
+ self.sender = init.sender;
17
+ ext.runtime.onMessage.addListener(
18
+ function(request, sender, sendResponse) {
19
+ self.onMessage(request, sender, sendResponse)
20
+ }
21
+ );
22
+ }
23
+
24
+ // Send
25
+ Messaging.prototype.send = function (request) {
26
+ const self = this;
27
+
28
+ // Check request
29
+ if (!request) {
30
+ throw new Error('No request')
31
+ } else if (!request.destination) {
32
+ throw new Error('No request.destination')
33
+ }
34
+
35
+ // Check sender
36
+ ext.runtime.sendMessage({
37
+ sender: self.sender,
38
+ destination: request.destination,
39
+ command: request.command,
40
+ payload: request.payload,
41
+ })
42
+ .catch(e => {
43
+ console.warn(`Failed to send message ${self.sender} => ${request.destination}`, request.command, request.payload);
44
+ })
45
+ };
46
+
47
+ // Export
48
+ module.exports = Messaging;
@@ -0,0 +1,4 @@
1
+ // Shared devkit module — vendored into dist/vendor/devkit at prepare time by the
2
+ // preparePackage `after` hook. This shim keeps the framework's internal require
3
+ // paths stable while the implementation lives in @omega.js/devkit.
4
+ module.exports = require('../vendor/devkit/safe-install.js');
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Theme resolution for the build (#261).
3
+ *
4
+ * `theme.id` is a SHARED omega.json5 key, but each framework owns its own theme
5
+ * set: a brand whose WEBSITE theme is `studymonkey` hands the extension build an
6
+ * id it ships no stylesheet for. The sass loadPath and the bundler's `__theme__`
7
+ * alias both pointed straight at `dist/assets/themes/<id>`, so the build died on
8
+ * a raw sass `Can't find stylesheet to import` naming neither the config key nor
9
+ * the extension's valid themes.
10
+ *
11
+ * Resolution now happens HERE, at the framework's own resolve site: an id this
12
+ * framework doesn't ship falls back to the default theme with one actionable
13
+ * warning. Per-target override for the real fix: `targets.extension.theme.id`.
14
+ */
15
+ const path = require('path');
16
+ const jetpack = require('fs-jetpack');
17
+
18
+ // The extension's default theme — the fallback, and what a target with no
19
+ // theme.id builds with.
20
+ const DEFAULT_THEME_ID = 'classy';
21
+
22
+ // One warning per unknown id, not per resolve site: sass and the bundler both
23
+ // resolve the same id in a build, and the consumer has ONE thing to fix.
24
+ const warnedIds = new Set();
25
+
26
+ /**
27
+ * List the themes this framework ships (directories; `_`-prefixed ones are
28
+ * scaffolds like `_template`, never selectable).
29
+ * @param {string} themesDir - Absolute path of the framework's themes directory
30
+ * @returns {string[]} theme ids, sorted
31
+ */
32
+ function listThemes(themesDir) {
33
+ return (jetpack.list(themesDir) || [])
34
+ .filter((name) => !name.startsWith('_') && jetpack.exists(path.join(themesDir, name)) === 'dir')
35
+ .sort();
36
+ }
37
+
38
+ /**
39
+ * Resolve a configured theme.id against the themes this framework ships.
40
+ * @param {string} [id] - The resolved config's theme.id
41
+ * @param {object} options
42
+ * @param {string} options.themesDir - Absolute path of the framework's themes directory
43
+ * @param {object} [options.logger] - Logger with `warn` (defaults to console)
44
+ * @returns {string} a theme id this framework can build
45
+ */
46
+ function resolveThemeId(id, options) {
47
+ const themesDir = options.themesDir;
48
+ const logger = options.logger || console;
49
+ const available = listThemes(themesDir);
50
+
51
+ // Nothing to judge against (themes not vendored yet) — pass the id through
52
+ // rather than warn about a set we couldn't read.
53
+ if (available.length === 0) {
54
+ return id || DEFAULT_THEME_ID;
55
+ }
56
+
57
+ if (!id) {
58
+ return DEFAULT_THEME_ID;
59
+ }
60
+
61
+ if (available.includes(id)) {
62
+ return id;
63
+ }
64
+
65
+ if (!warnedIds.has(id)) {
66
+ warnedIds.add(id);
67
+ logger.warn(`Unknown theme.id "${id}" — this is a WEB theme name or a typo; @omega.js/extension ships: ${available.join(', ')}. Building with "${DEFAULT_THEME_ID}". Set targets.extension.theme.id in config/omega.json5 to pick the extension's theme without touching the brand's.`);
68
+ }
69
+
70
+ return DEFAULT_THEME_ID;
71
+ }
72
+
73
+ module.exports = { resolveThemeId, listThemes, DEFAULT_THEME_ID };
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Vert auto-bind (ads-system phase 4) — wires the shared client verts module to
3
+ * every [data-omega-vert] element on the page: present at boot, or inserted
4
+ * later (MutationObserver). Each element is handed to omega.verts().mount()
5
+ * with the type PINNED to 'house' — extension surfaces never run the AdSense
6
+ * provider lane (store policy + the MV3 extension_pages CSP blocks the remote
7
+ * script), so the whole ladder is the house/company inventory: lazy arming
8
+ * near the viewport, sandboxed iframe to /omega/verts/serve, origin-validated
9
+ * postMessage, host-owned rotation/staleness recovery, no-fill collapse.
10
+ * All lifecycle logic lives in @omega.js/client (modules/verts.js) — this file
11
+ * only binds the element vocabulary.
12
+ *
13
+ * Called from each page-surface Manager (popup/options/sidepanel/page) after
14
+ * omega.initialize(): wireAds();
15
+ *
16
+ * Content scripts deliberately do NOT auto-wire (same rule as lib/icons.js):
17
+ * scanning a HOST page's whole DOM would mount verts into arbitrary websites.
18
+ */
19
+ import omega from '@omega.js/client';
20
+
21
+ // The element vocabulary (mirrors @omega.js/desktop's renderer binder)
22
+ const SELECTOR = '[data-omega-vert]';
23
+
24
+ // Idempotence — one observer per page, no matter how often wireAds runs
25
+ let wired = false;
26
+
27
+ function wireAds() {
28
+ if (wired || typeof document === 'undefined' || typeof MutationObserver === 'undefined') {
29
+ return;
30
+ }
31
+ wired = true;
32
+
33
+ const mount = ($el) => {
34
+ // Type pinned to 'house': mount() merges passed options OVER the element
35
+ // attributes, so render() can never take the AdSense lane here
36
+ omega.verts().mount($el, { type: 'house' });
37
+ $el.setAttribute('data-omega-vert-bound', 'house');
38
+ };
39
+
40
+ const scan = (root) => {
41
+ if (root.matches?.(SELECTOR)) {
42
+ mount(root);
43
+ }
44
+ root.querySelectorAll?.(SELECTOR).forEach(mount);
45
+ };
46
+
47
+ const start = () => {
48
+ new MutationObserver((mutations) => {
49
+ for (const mutation of mutations) {
50
+ mutation.addedNodes.forEach((node) => {
51
+ if (node.nodeType === 1) {
52
+ scan(node);
53
+ }
54
+ });
55
+ }
56
+ }).observe(document.documentElement, { childList: true, subtree: true });
57
+
58
+ scan(document.documentElement);
59
+ };
60
+
61
+ if (document.documentElement && document.readyState !== 'loading') {
62
+ start();
63
+ } else {
64
+ document.addEventListener('DOMContentLoaded', start, { once: true });
65
+ }
66
+ }
67
+
68
+ export { wireAds };
@@ -0,0 +1,31 @@
1
+ // Libraries
2
+ import extension from './lib/extension.js';
3
+ import LoggerLite from './lib/logger-lite.js';
4
+ import { attachTo as attachModeHelpers } from './utils/mode-helpers.js';
5
+
6
+ // Class
7
+ class Manager {
8
+ constructor() {
9
+ // Properties
10
+ this.extension = null;
11
+ this.logger = null;
12
+ }
13
+
14
+ async initialize() {
15
+ // Set properties
16
+ this.extension = extension;
17
+ this.logger = new LoggerLite('offscreen');
18
+
19
+ // Log
20
+ this.logger.log('Initialized!', this);
21
+
22
+ // Return manager instance
23
+ return this;
24
+ }
25
+ }
26
+
27
+ // Cross-context helpers — Manager.isTesting() / isDevelopment() / etc.
28
+ attachModeHelpers(Manager);
29
+
30
+ // Export
31
+ export default Manager;
@@ -0,0 +1,6 @@
1
+ // Entry for the `omega`/`omg` bins — dispatches to the framework that owns the
2
+ // cwd's app (this one, or a sibling app's framework in a brand monorepo).
3
+ require('./vendor/devkit/omega-bin.js').run({
4
+ hostName: '@omega.js/extension',
5
+ hostRun: () => require('./cli-run.js').run(),
6
+ });
@@ -0,0 +1,80 @@
1
+ // Libraries
2
+ import omega from '@omega.js/client';
3
+ import extension from './lib/extension.js';
4
+ import LoggerLite from './lib/logger-lite.js';
5
+ import Messaging from './lib/messaging.js';
6
+ import { syncWithBackground, setupAuthBroadcastListener, setupSignOutListener, setupAuthEventListeners, openAuthPage as openAuthPageHelper } from './lib/auth-helpers.js';
7
+ import { attachTo as attachModeHelpers } from './utils/mode-helpers.js';
8
+ import { wireAds } from './lib/verts.js';
9
+
10
+ // Import theme (exposes Bootstrap to window.bootstrap)
11
+ import '__theme__/_theme.js';
12
+
13
+ // Icon auto-render (fa-* markup, static or JS-set) — shared client watcher
14
+ import './lib/icons.js';
15
+
16
+ // Class
17
+ class Manager {
18
+ constructor() {
19
+ // Properties
20
+ this.extension = null;
21
+ this.messenger = null;
22
+ this.logger = null;
23
+ this.omega = omega;
24
+ }
25
+
26
+ async initialize() {
27
+ // Configuration
28
+ const configuration = window.OMEGA_BUILD_JSON?.config;
29
+
30
+ // Set properties
31
+ this.extension = extension;
32
+ this.messenger = new Messaging({ sender: 'options' });
33
+ this.logger = new LoggerLite('options');
34
+
35
+ // Initialize
36
+ await this.omega.initialize(configuration);
37
+
38
+ // No app_launch here: opening SETTINGS is not launching the extension, and
39
+ // counting it would inflate the launch count with a maintenance visit
40
+ // (Ian's ruling). The popup, the injected page and the side panel are the
41
+ // surfaces that count as a launch.
42
+
43
+ // Set up auth state listener (updates bindings with user/account state)
44
+ this.omega.auth().listen((state) => {
45
+ this.logger.log('Auth state changed:', state);
46
+ });
47
+
48
+ // Sync auth with background.js (waits for @omega.js/client auth to settle first)
49
+ await syncWithBackground(this);
50
+
51
+ // Set up broadcast listener for sign-in/sign-out from background
52
+ setupAuthBroadcastListener(this);
53
+
54
+ // Set up sign-out listener to notify background when user signs out
55
+ setupSignOutListener(this);
56
+
57
+ // Set up auth event listeners (sign in, account buttons)
58
+ setupAuthEventListeners(this);
59
+
60
+ // Auto-bind [data-omega-vert] elements (house/company lane only — lib/verts.js)
61
+ wireAds();
62
+
63
+ // Log
64
+ this.logger.log('Initialized!', this);
65
+
66
+ // Return manager instance
67
+ return this;
68
+ }
69
+
70
+ // Open auth page in new tab (for signing in via website)
71
+ openAuthPage(options = {}) {
72
+ openAuthPageHelper(this, options);
73
+ }
74
+ }
75
+
76
+ // Cross-context helpers — Manager.isTesting() / isDevelopment() / etc.
77
+ attachModeHelpers(Manager);
78
+
79
+ // Export
80
+ export default Manager;
package/dist/page.js ADDED
@@ -0,0 +1,80 @@
1
+ // Libraries
2
+ import omega from '@omega.js/client';
3
+ import extension from './lib/extension.js';
4
+ import LoggerLite from './lib/logger-lite.js';
5
+ import Messaging from './lib/messaging.js';
6
+ import { syncWithBackground, setupAuthBroadcastListener, setupSignOutListener, setupAuthEventListeners, openAuthPage as openAuthPageHelper } from './lib/auth-helpers.js';
7
+ import { attachTo as attachModeHelpers } from './utils/mode-helpers.js';
8
+ import { wireAds } from './lib/verts.js';
9
+ import { trackAppLaunch } from './lib/analytics.js';
10
+
11
+ // Import theme (exposes Bootstrap to window.bootstrap)
12
+ import '__theme__/_theme.js';
13
+
14
+ // Icon auto-render (fa-* markup, static or JS-set) — shared client watcher
15
+ import './lib/icons.js';
16
+
17
+ // Class
18
+ class Manager {
19
+ constructor() {
20
+ // Properties
21
+ this.extension = null;
22
+ this.messenger = null;
23
+ this.logger = null;
24
+ this.omega = omega;
25
+ }
26
+
27
+ async initialize() {
28
+ // Configuration
29
+ const configuration = window.OMEGA_BUILD_JSON?.config;
30
+
31
+ // Set properties
32
+ this.extension = extension;
33
+ this.messenger = new Messaging({ sender: 'page' });
34
+ this.logger = new LoggerLite('page');
35
+
36
+ // Initialize
37
+ await this.omega.initialize(configuration);
38
+
39
+ // This surface opened — the extension's own launch event (#328 gap 7).
40
+ // login/logout ride the shared client's auth wiring.
41
+ trackAppLaunch();
42
+
43
+ // Set up auth state listener (updates bindings with user/account state)
44
+ this.omega.auth().listen((state) => {
45
+ this.logger.log('Auth state changed:', state);
46
+ });
47
+
48
+ // Sync auth with background.js (waits for @omega.js/client auth to settle first)
49
+ await syncWithBackground(this);
50
+
51
+ // Set up broadcast listener for sign-in/sign-out from background
52
+ setupAuthBroadcastListener(this);
53
+
54
+ // Set up sign-out listener to notify background when user signs out
55
+ setupSignOutListener(this);
56
+
57
+ // Set up auth event listeners (sign in, account buttons)
58
+ setupAuthEventListeners(this);
59
+
60
+ // Auto-bind [data-omega-vert] elements (house/company lane only — lib/verts.js)
61
+ wireAds();
62
+
63
+ // Log
64
+ this.logger.log('Initialized!', this);
65
+
66
+ // Return manager instance
67
+ return this;
68
+ }
69
+
70
+ // Open auth page in new tab (for signing in via website)
71
+ openAuthPage(options = {}) {
72
+ openAuthPageHelper(this, options);
73
+ }
74
+ }
75
+
76
+ // Cross-context helpers — Manager.isTesting() / isDevelopment() / etc.
77
+ attachModeHelpers(Manager);
78
+
79
+ // Export
80
+ export default Manager;
package/dist/popup.js ADDED
@@ -0,0 +1,80 @@
1
+ // Libraries
2
+ import omega from '@omega.js/client';
3
+ import extension from './lib/extension.js';
4
+ import LoggerLite from './lib/logger-lite.js';
5
+ import Messaging from './lib/messaging.js';
6
+ import { syncWithBackground, setupAuthBroadcastListener, setupSignOutListener, setupAuthEventListeners, openAuthPage as openAuthPageHelper } from './lib/auth-helpers.js';
7
+ import { attachTo as attachModeHelpers } from './utils/mode-helpers.js';
8
+ import { wireAds } from './lib/verts.js';
9
+ import { trackAppLaunch } from './lib/analytics.js';
10
+
11
+ // Import theme (exposes Bootstrap to window.bootstrap)
12
+ import '__theme__/_theme.js';
13
+
14
+ // Icon auto-render (fa-* markup, static or JS-set) — shared client watcher
15
+ import './lib/icons.js';
16
+
17
+ // Class
18
+ class Manager {
19
+ constructor() {
20
+ // Properties
21
+ this.extension = null;
22
+ this.messenger = null;
23
+ this.logger = null;
24
+ this.omega = omega;
25
+ }
26
+
27
+ async initialize() {
28
+ // Configuration
29
+ const configuration = window.OMEGA_BUILD_JSON?.config;
30
+
31
+ // Set properties
32
+ this.extension = extension;
33
+ this.messenger = new Messaging({ sender: 'popup' });
34
+ this.logger = new LoggerLite('popup');
35
+
36
+ // Initialize
37
+ await this.omega.initialize(configuration);
38
+
39
+ // This surface opened — the extension's own launch event (#328 gap 7).
40
+ // login/logout ride the shared client's auth wiring.
41
+ trackAppLaunch();
42
+
43
+ // Set up auth state listener (updates bindings with user/account state)
44
+ this.omega.auth().listen((state) => {
45
+ this.logger.log('Auth state changed:', state);
46
+ });
47
+
48
+ // Sync auth with background.js (waits for @omega.js/client auth to settle first)
49
+ await syncWithBackground(this);
50
+
51
+ // Set up broadcast listener for sign-in/sign-out from background
52
+ setupAuthBroadcastListener(this);
53
+
54
+ // Set up sign-out listener to notify background when user signs out
55
+ setupSignOutListener(this);
56
+
57
+ // Set up auth event listeners (sign in, account buttons)
58
+ setupAuthEventListeners(this);
59
+
60
+ // Auto-bind [data-omega-vert] elements (house/company lane only — lib/verts.js)
61
+ wireAds();
62
+
63
+ // Log
64
+ this.logger.log('Initialized!', this);
65
+
66
+ // Return manager instance
67
+ return this;
68
+ }
69
+
70
+ // Open auth page in new tab (for signing in via website)
71
+ openAuthPage(options = {}) {
72
+ openAuthPageHelper(this, options);
73
+ }
74
+ }
75
+
76
+ // Cross-context helpers — Manager.isTesting() / isDevelopment() / etc.
77
+ attachModeHelpers(Manager);
78
+
79
+ // Export
80
+ export default Manager;
@@ -0,0 +1,80 @@
1
+ // Libraries
2
+ import omega from '@omega.js/client';
3
+ import extension from './lib/extension.js';
4
+ import LoggerLite from './lib/logger-lite.js';
5
+ import Messaging from './lib/messaging.js';
6
+ import { syncWithBackground, setupAuthBroadcastListener, setupSignOutListener, setupAuthEventListeners, openAuthPage as openAuthPageHelper } from './lib/auth-helpers.js';
7
+ import { attachTo as attachModeHelpers } from './utils/mode-helpers.js';
8
+ import { wireAds } from './lib/verts.js';
9
+ import { trackAppLaunch } from './lib/analytics.js';
10
+
11
+ // Import theme (exposes Bootstrap to window.bootstrap)
12
+ import '__theme__/_theme.js';
13
+
14
+ // Icon auto-render (fa-* markup, static or JS-set) — shared client watcher
15
+ import './lib/icons.js';
16
+
17
+ // Class
18
+ class Manager {
19
+ constructor() {
20
+ // Properties
21
+ this.extension = null;
22
+ this.messenger = null;
23
+ this.logger = null;
24
+ this.omega = omega;
25
+ }
26
+
27
+ async initialize() {
28
+ // Configuration
29
+ const configuration = window.OMEGA_BUILD_JSON?.config;
30
+
31
+ // Set properties
32
+ this.extension = extension;
33
+ this.messenger = new Messaging({ sender: 'sidepanel' });
34
+ this.logger = new LoggerLite('sidepanel');
35
+
36
+ // Initialize
37
+ await this.omega.initialize(configuration);
38
+
39
+ // This surface opened — the extension's own launch event (#328 gap 7).
40
+ // login/logout ride the shared client's auth wiring.
41
+ trackAppLaunch();
42
+
43
+ // Set up auth state listener (updates bindings with user/account state)
44
+ this.omega.auth().listen((state) => {
45
+ this.logger.log('Auth state changed:', state);
46
+ });
47
+
48
+ // Sync auth with background.js (waits for @omega.js/client auth to settle first)
49
+ await syncWithBackground(this);
50
+
51
+ // Set up broadcast listener for sign-in/sign-out from background
52
+ setupAuthBroadcastListener(this);
53
+
54
+ // Set up sign-out listener to notify background when user signs out
55
+ setupSignOutListener(this);
56
+
57
+ // Set up auth event listeners (sign in, account buttons)
58
+ setupAuthEventListeners(this);
59
+
60
+ // Auto-bind [data-omega-vert] elements (house/company lane only — lib/verts.js)
61
+ wireAds();
62
+
63
+ // Log
64
+ this.logger.log('Initialized!', this);
65
+
66
+ // Return manager instance
67
+ return this;
68
+ }
69
+
70
+ // Open auth page in new tab (for signing in via website)
71
+ openAuthPage(options = {}) {
72
+ openAuthPageHelper(this, options);
73
+ }
74
+ }
75
+
76
+ // Cross-context helpers — Manager.isTesting() / isDevelopment() / etc.
77
+ attachModeHelpers(Manager);
78
+
79
+ // Export
80
+ export default Manager;
@@ -0,0 +1,4 @@
1
+ // Shared devkit module — vendored into dist/vendor/devkit at prepare time by the
2
+ // preparePackage `after` hook. This shim keeps the framework's internal require
3
+ // paths stable while the implementation lives in @omega.js/devkit.
4
+ module.exports = require('../vendor/devkit/test/assert.js');
@@ -0,0 +1,23 @@
1
+ (function(){var __omegaBuildJson={"timestamp":"2026-09-01T00:00:00.000Z","repo":{"user":"fixture","name":"fixture"},"environment":"development","license":{"status":"keyless","payments":"gated","attribution":"shown"},"packages":{"@omega.js/extension":"0.1.0"},"config":{"runtime":"browser-extension","version":"0.1.0","environment":"development","brand":{"id":"bxm-fixture","name":"BXM Fixture Consumer"},"omega":{"environment":"development","cache_breaker":1788300000}}};if(typeof globalThis!=='undefined'){globalThis.OMEGA_BUILD_JSON=__omegaBuildJson;}if(typeof self!=='undefined'){self.OMEGA_BUILD_JSON=__omegaBuildJson;}if(typeof window!=='undefined'){window.OMEGA_BUILD_JSON=__omegaBuildJson;}})();
2
+ // BXM fixture consumer — pretends to be a real BXM-based extension's background.
3
+ // Boot tests verify this SW comes up cleanly and exposes a couple of probe hooks.
4
+ //
5
+ // Line 1 above is what the bundle task's `buildJsonBanner` prepends to every
6
+ // emitted bundle ([#743](https://github.com/Omega-JS-Stack/omega/issues/743)) —
7
+ // the fixture stands in for a REAL built extension, so it carries the bake the
8
+ // same way a real one does. build/build-json-bake.test.js pins that line against
9
+ // the live generator, so the boot lane can never drift into testing a hand-rolled
10
+ // shape the build no longer emits.
11
+
12
+ globalThis.__bxmFixtureBooted = true;
13
+ globalThis.__bxmFixtureBootedAt = Date.now();
14
+
15
+ chrome.runtime.onMessage.addListener((msg, _sender, sendResponse) => {
16
+ if (msg && msg.type === 'fixture:hello') {
17
+ sendResponse({ ok: true, version: chrome.runtime.getManifest().version });
18
+ return false;
19
+ }
20
+ return false;
21
+ });
22
+
23
+ console.log('[extension-fixture] background ready');
@@ -0,0 +1,20 @@
1
+ {
2
+ "manifest_version": 3,
3
+ "name": "BXM Fixture Consumer",
4
+ "version": "0.1.0",
5
+ "description": "Used by BXM's boot-layer tests as a stand-in for a real consumer extension.",
6
+ "background": {
7
+ "service_worker": "background.js"
8
+ },
9
+ "action": {
10
+ "default_popup": "popup.html",
11
+ "default_title": "BXM Fixture Consumer"
12
+ },
13
+ "options_ui": {
14
+ "page": "options.html",
15
+ "open_in_tab": true
16
+ },
17
+ "permissions": [
18
+ "storage"
19
+ ]
20
+ }
@@ -0,0 +1,10 @@
1
+ <!doctype html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>BXM Fixture Consumer — Options</title>
6
+ </head>
7
+ <body>
8
+ <h1>Fixture Options</h1>
9
+ </body>
10
+ </html>
@@ -0,0 +1,5 @@
1
+ (function(){var __omegaBuildJson={"timestamp":"2026-09-01T00:00:00.000Z","repo":{"user":"fixture","name":"fixture"},"environment":"development","license":{"status":"keyless","payments":"gated","attribution":"shown"},"packages":{"@omega.js/extension":"0.1.0"},"config":{"runtime":"browser-extension","version":"0.1.0","environment":"development","brand":{"id":"bxm-fixture","name":"BXM Fixture Consumer"},"omega":{"environment":"development","cache_breaker":1788300000}}};if(typeof globalThis!=='undefined'){globalThis.OMEGA_BUILD_JSON=__omegaBuildJson;}if(typeof self!=='undefined'){self.OMEGA_BUILD_JSON=__omegaBuildJson;}if(typeof window!=='undefined'){window.OMEGA_BUILD_JSON=__omegaBuildJson;}})();
2
+ // The fixture's page-context "bundle" — every emitted bundle carries its OWN copy
3
+ // of the bake (#743), which is what replaced the single `/build.js` file each page
4
+ // used to load with its own <script> tag. See background.js for the full note.
5
+ document.getElementById('main-content').dataset.brand = window.OMEGA_BUILD_JSON.config.brand.id;
@@ -0,0 +1,12 @@
1
+ <!doctype html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>BXM Fixture Consumer — Popup</title>
6
+ </head>
7
+ <body>
8
+ <h1 id="main-content">Fixture Popup</h1>
9
+ <p>Boot tests assert that this page renders inside Chromium when loaded as an unpacked extension.</p>
10
+ <script src="popup.bundle.js"></script>
11
+ </body>
12
+ </html>
@@ -0,0 +1,26 @@
1
+ // BXM test-harness background service worker.
2
+ //
3
+ // This SW does ONE job: stay alive long enough for the chromium runner to attach
4
+ // a CDP session and inject test code via Runtime.evaluate. The runner discovers
5
+ // this SW via Puppeteer's service-worker target API, then drives test execution
6
+ // directly from the parent Node process — this file is intentionally minimal.
7
+ //
8
+ // We set a couple of globals the injected test code can rely on:
9
+ // globalThis.OMEGA_TEST_MODE — picked up by Manager.isTesting()
10
+ // globalThis.__bxmTestEmit — defined by the runner before each test;
11
+ // used by injected code to report results
12
+ //
13
+ // We also publish a `chrome.runtime.onMessage` ping handler so view-layer tests
14
+ // (running in popup/options/sidepanel tabs) can verify the SW is alive.
15
+
16
+ globalThis.OMEGA_TEST_MODE = true;
17
+
18
+ chrome.runtime.onMessage.addListener((msg, _sender, sendResponse) => {
19
+ if (msg && msg.type === 'extension:test:ping') {
20
+ sendResponse({ pong: true, ts: Date.now() });
21
+ return false; // sync response
22
+ }
23
+ return false;
24
+ });
25
+
26
+ console.log('[extension-harness] service worker ready');