@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,224 @@
1
+ // Suppported affiliates
2
+ const map = [
3
+ // Amazon
4
+ {
5
+ id: 'amazon',
6
+ match: /amazon.com/,
7
+ replace: {
8
+ href: 'https://giftly.app/product?url=https%3A%2F%2Fwww.amazon.com%2Fdp%2FB07PCMWTSG%3F%26linkCode%3Dll2%26tag%3Ditwcw1--promo-server-20%26linkId%3D38af0d81784751e4cf5b1136b8c32f63%26language%3Den_US%26ref_%3Das_li_ss_tl',
9
+ },
10
+ },
11
+
12
+ // Meals
13
+ {
14
+ id: 'factor',
15
+ match: /factor75.com/,
16
+ replace: {
17
+ href: 'https://www.factor75.com/plans?c=HS-HC5E50S4I&discount_comm_id=cd2585e3-0672-4633-90a6-64f6883222a3&plans_ab=true&utm_campaign=clipboard&utm_medium=referral&utm_source=raf-share-hpt',
18
+ },
19
+ },
20
+
21
+ // Rewards
22
+ {
23
+ id: 'honeygain',
24
+ match: /honeygain.com/,
25
+ replace: {
26
+ href: 'https://r.honeygain.me/IANA1DCDB1',
27
+ },
28
+ },
29
+ {
30
+ id: 'jumptask',
31
+ match: /app.jumptask.io/,
32
+ replace: {
33
+ href: 'https://www.jumptask.io/r/dazelafojafy',
34
+ },
35
+ },
36
+ {
37
+ id: 'pawns',
38
+ match: /pawns.app/,
39
+ replace: {
40
+ href: 'https://pawns.app/?r=5798401',
41
+ },
42
+ },
43
+
44
+ // Shopping
45
+ {
46
+ id: 'capitaloneshopping',
47
+ match: /capitaloneshopping.com/,
48
+ replace: {
49
+ href: 'https://capitaloneshopping.com/r/5G2HF1D',
50
+ },
51
+ },
52
+ {
53
+ id: 'coupert',
54
+ match: /coupert.com/,
55
+ replace: {
56
+ href: 'https://www.coupert.com/invite/4yvqkp7da',
57
+ },
58
+ },
59
+ {
60
+ id: 'honey',
61
+ match: /joinhoney.com/,
62
+ replace: {
63
+ href: 'https://www.joinhoney.com/ref/8dryc8u',
64
+ },
65
+ },
66
+ {
67
+ id: 'lolli',
68
+ match: /lolli.com/,
69
+ replace: {
70
+ href: 'https://lolli.com/share/ydsPvyc23m',
71
+ },
72
+ },
73
+ {
74
+ id: 'paypal',
75
+ match: /paypal.com/,
76
+ replace: {
77
+ href: 'https://py.pl/4gPBBJjLbbz',
78
+ },
79
+ },
80
+ {
81
+ id: 'rakuten',
82
+ match: /rakuten.com/,
83
+ replace: {
84
+ href: 'https://www.rakuten.com/r/IANWIE8?eeid=28187',
85
+ },
86
+ },
87
+ {
88
+ id: 'upside',
89
+ match: /upside.com/,
90
+ replace: {
91
+ href: 'https://upside.app.link/IAN4447',
92
+ },
93
+ },
94
+
95
+ // VPN
96
+ {
97
+ id: 'nordvpn',
98
+ match: /nordvpn.com/,
99
+ replace: {
100
+ href: 'https://ref.nordvpn.com/CHMkfrnoQtL',
101
+ },
102
+ },
103
+ ];
104
+
105
+ function Affiliatizer() {
106
+ }
107
+
108
+ Affiliatizer.get = function () {
109
+ return map;
110
+ };
111
+
112
+ Affiliatizer.initialize = async function (Manager) {
113
+ // Shortcuts
114
+ const { extension, logger } = Manager;
115
+ const storage = extension.storage.local;
116
+
117
+ // Parse the URL
118
+ const url = new URL(window.location.href);
119
+ const query = url.searchParams;
120
+
121
+ // Get query parameters
122
+ const qsStatus = query.get('affiliatizerStatus');
123
+
124
+ // Check if the URL has the affiliatizerStatus parameter
125
+ if (qsStatus === 'reset') {
126
+ // Log
127
+ logger.log('Resetting affiliatizer data...');
128
+
129
+ // Reset the data
130
+ await storage.set({ affiliatizer: null });
131
+ query.delete('affiliatizerStatus');
132
+
133
+ // Log
134
+ logger.log('Reset!');
135
+ } else if (qsStatus === 'block') {
136
+ // Log
137
+ logger.log('Affiliatizer is blocked.');
138
+
139
+ // Set affiliatizer to 'block' in storage
140
+ await storage.set({ affiliatizer: 'block' });
141
+ } else if (qsStatus === 'allow') {
142
+ // Log
143
+ logger.log('Affiliatizer is allowed.');
144
+
145
+ // Set affiliatizer to 'allow' in storage
146
+ await storage.set({ affiliatizer: 'allow' });
147
+ }
148
+
149
+ // Check if affiliatizer is blocked
150
+ const data = await storage.get() || {};
151
+ const status = data.affiliatizer || 'allow';
152
+
153
+ // Check if it's blocked
154
+ if (status === 'block') {
155
+ logger.log('Affiliatizer is blocked.');
156
+ return;
157
+ }
158
+
159
+ // Loop through the map
160
+ map.forEach((item, i) => {
161
+ // Get the item
162
+ const id = item.id;
163
+
164
+ // Log
165
+ // logger.log('Checking for', id, item.match, 'in', url.hostname, '...');
166
+
167
+ // Check if the item matches
168
+ if (!item.match.test(url.hostname)) {
169
+ return;
170
+ }
171
+
172
+ // Process
173
+ storage.get((data) => {
174
+ // Log
175
+ logger.log('Matched', data);
176
+
177
+ // Set the default data
178
+ const now = new Date();
179
+ const timestamp = new Date(data.affiliatizer && data.affiliatizer[id] ? data.affiliatizer[id].timestamp || 0 : 0);
180
+ const differenceInHours = (now - timestamp) / 1000 / 60 / 60;
181
+
182
+ // Check if the timestamp is older than 24 hours
183
+ if (differenceInHours < 24) {
184
+ return;
185
+ }
186
+
187
+ // Build the new URL
188
+ const newURL = new URL(url.href);
189
+
190
+ // Query
191
+ if (item.replace.query) {
192
+ Object.keys(item.replace.query).forEach((key, i) => {
193
+ newURL.searchParams.set(key, item.replace.query[key]);
194
+ });
195
+ }
196
+
197
+ // Path
198
+ if (item.replace.pathname) {
199
+ newURL.pathname = item.replace.pathname;
200
+ }
201
+
202
+ // Href
203
+ if (item.replace.href) {
204
+ newURL.href = item.replace.href;
205
+ }
206
+
207
+ // Log
208
+ logger.log('Redirecting...', newURL.toString());
209
+
210
+ // Save to storage
211
+ const newTimestamp = {
212
+ timestamp: now.toISOString(),
213
+ };
214
+ const updatedData = Object.assign({}, data.affiliatizer, { [id]: newTimestamp });
215
+ storage.set({ affiliatizer: updatedData });
216
+
217
+ // Redirect
218
+ window.location.href = newURL.toString();
219
+ });
220
+ });
221
+ }
222
+
223
+ // Export
224
+ module.exports = Affiliatizer;
@@ -0,0 +1,26 @@
1
+ // The extension's own lifecycle event ([#328](https://github.com/Omega-JS-Stack/omega/issues/328)
2
+ // inventory gap 7: the extension counted nothing about ITSELF — the only signal
3
+ // anywhere was `extension_install`, fired by the website's landing page).
4
+ //
5
+ // `app_launch` is the catalog's launch event, the same one desktop's main
6
+ // process fires. Every context that boots @omega.js/client is a launch of a
7
+ // surface — the toolbar popup, the side panel, the options page, an injected
8
+ // page — and each carries its own session, so each counts one.
9
+ //
10
+ // Install tracking stays where it is: the web landing page owns
11
+ // `extension_install`, deliberately (it is the page that knows a store visit
12
+ // turned into an install).
13
+ import omega from '@omega.js/client';
14
+
15
+ /**
16
+ * Count this context's launch. Never throws at a boot: analytics is a side
17
+ * effect of the surface opening, not a condition of it.
18
+ * @returns {void}
19
+ */
20
+ export function trackAppLaunch() {
21
+ try {
22
+ omega.analytics().event('app_launch');
23
+ } catch (e) {
24
+ // The client logs its own failures; a launch is not the place to raise.
25
+ }
26
+ }
@@ -0,0 +1,213 @@
1
+ // Auth helpers for cross-context auth sync in browser extensions
2
+ // Used by popup.js, options.js, sidepanel.js, page.js
3
+ //
4
+ // Architecture:
5
+ // - Background.js is the SOURCE OF TRUTH for authentication
6
+ // - On context load, contexts wait for @omega.js/client auth to settle, then ask background if in sync
7
+ // - If out of sync, background provides a fresh custom token (fetched from server)
8
+ // - No BXM-specific storage - Web Manager handles auth state internally
9
+
10
+ import { registerTrigger } from '@omega.js/client/modules/triggers.js';
11
+ import { WAKEUP_ROUTE } from '@omega.js/client/modules/request.js';
12
+ import LoggerLite from './logger-lite.js';
13
+
14
+ // The auth sub-modules of the identity tag — these lines are about auth, not
15
+ // about whichever surface (popup/options/sidepanel/page) called in.
16
+ const syncLogger = new LoggerLite('auth:sync');
17
+ const broadcastLogger = new LoggerLite('auth:broadcast');
18
+
19
+ /**
20
+ * Sync auth state with background.js on context load
21
+ * Waits for @omega.js/client auth to settle, then asks background if in sync
22
+ * @param {Object} context - The manager instance (must have extension, omega)
23
+ */
24
+ export async function syncWithBackground(context) {
25
+ const { extension, omega } = context;
26
+
27
+ // Warm the backend before the auth wait below. When this sync needs a token,
28
+ // background answers it by POSTing `/omega/user/token` — the extension's
29
+ // first backend call, on a function that is cold on the first surface a user
30
+ // opens. Fire-and-forget and unauthenticated: the backend answers a wakeup
31
+ // before it loads a route or authenticates
32
+ // ([#644](https://github.com/Omega-JS-Stack/omega/issues/644)).
33
+ omega.request(WAKEUP_ROUTE, { wakeup: true });
34
+
35
+ try {
36
+ // Wait for @omega.js/client auth state to settle FIRST (prevents race conditions)
37
+ const localState = await new Promise(resolve => {
38
+ omega.auth().listen({ once: true }, resolve);
39
+ });
40
+
41
+ const localUid = localState.user?.uid || null;
42
+ syncLogger.log('Local auth state settled, UID:', localUid);
43
+
44
+ // Ask background for auth state comparison
45
+ const response = await new Promise((resolve) => {
46
+ extension.runtime.sendMessage(
47
+ { command: 'omega:syncAuth', contextUid: localUid },
48
+ (res) => {
49
+ if (extension.runtime.lastError) {
50
+ syncLogger.log('Background not ready:', extension.runtime.lastError.message);
51
+ resolve({ needsSync: false });
52
+ return;
53
+ }
54
+ resolve(res || { needsSync: false });
55
+ }
56
+ );
57
+ });
58
+
59
+ // Already in sync
60
+ if (!response.needsSync) {
61
+ syncLogger.log('Already in sync with background');
62
+ return;
63
+ }
64
+
65
+ // Need to sign out (background is signed out, context is signed in)
66
+ if (response.signOut) {
67
+ syncLogger.log('Background signed out, signing out context...');
68
+ await omega.auth().signOut();
69
+ return;
70
+ }
71
+
72
+ // Need to sign in with token
73
+ if (response.customToken) {
74
+ syncLogger.log('Syncing with background...', response.user?.email);
75
+ await omega.auth().signInWithCustomToken(response.customToken);
76
+ syncLogger.log('Synced successfully');
77
+ }
78
+
79
+ } catch (error) {
80
+ syncLogger.error('Error syncing with background:', error.message);
81
+ }
82
+ }
83
+
84
+ /**
85
+ * Set up listener for auth token broadcasts from background.js
86
+ * Handles both sign-in broadcasts and sign-out broadcasts
87
+ * @param {Object} context - The manager instance (must have extension, omega)
88
+ */
89
+ export function setupAuthBroadcastListener(context) {
90
+ const { omega } = context;
91
+
92
+ // Listen for messages from service worker (background.js)
93
+ navigator.serviceWorker?.addEventListener('message', async (event) => {
94
+ const { command, token } = event.data || {};
95
+
96
+ // Handle sign-in broadcast
97
+ if (command === 'omega:signInWithToken' && token) {
98
+ broadcastLogger.log('Received sign-in broadcast');
99
+ try {
100
+ await omega.auth().signInWithCustomToken(token);
101
+ broadcastLogger.log('Signed in via broadcast');
102
+ } catch (error) {
103
+ broadcastLogger.error('Error signing in:', error.message);
104
+ }
105
+ return;
106
+ }
107
+
108
+ // Handle sign-out broadcast
109
+ if (command === 'omega:signOut') {
110
+ // Skip if already signed out (prevents loops)
111
+ if (!omega.auth().getUser()) {
112
+ broadcastLogger.log('Already signed out, ignoring broadcast');
113
+ return;
114
+ }
115
+ broadcastLogger.log('Received sign-out broadcast');
116
+ try {
117
+ await omega.auth().signOut();
118
+ broadcastLogger.log('Signed out via broadcast');
119
+ } catch (error) {
120
+ broadcastLogger.error('Error signing out:', error.message);
121
+ }
122
+ }
123
+ });
124
+
125
+ broadcastLogger.log('Broadcast listener set up');
126
+ }
127
+
128
+ /**
129
+ * Set up listener to notify background when user signs out from this context
130
+ * @param {Object} context - The manager instance (must have extension, omega)
131
+ */
132
+ export function setupSignOutListener(context) {
133
+ const { extension, omega } = context;
134
+
135
+ // Track previous user to detect sign-out
136
+ let previousUid = null;
137
+
138
+ omega.auth().listen((state) => {
139
+ const currentUid = state.user?.uid || null;
140
+
141
+ // Detect sign-out (had user, now don't)
142
+ if (previousUid && !currentUid) {
143
+ syncLogger.log('Detected sign-out, notifying background...');
144
+ extension.runtime.sendMessage({ command: 'omega:signOut' });
145
+ }
146
+
147
+ previousUid = currentUid;
148
+ });
149
+
150
+ syncLogger.log('Sign-out listener set up');
151
+ }
152
+
153
+ /**
154
+ * Open auth page in new tab (for signing in via website)
155
+ * @param {Object} context - The manager instance (must have extension, omega, logger)
156
+ * @param {Object} options - Options object
157
+ * @param {string} options.path - Path to open (default: '/token')
158
+ * @param {string} options.authReturnUrl - Return URL for electron/deep links
159
+ */
160
+ export function openAuthPage(context, options = {}) {
161
+ const { extension, omega, logger } = context;
162
+
163
+ // The /token page lives on the BRAND site (wave-5 F9) — background.js
164
+ // watches the same brand.url host for the redirect. Never authDomain:
165
+ // it is an auth concern that must stay free to change independently.
166
+ const brandUrl = omega.config?.brand?.url;
167
+
168
+ if (!brandUrl) {
169
+ logger.error('No brand.url configured');
170
+ return;
171
+ }
172
+
173
+ // Build the URL
174
+ const path = options.path || '/token';
175
+ const authUrl = new URL(path, brandUrl);
176
+
177
+ // Add return URL if provided (for electron/deep links)
178
+ if (options.authReturnUrl) {
179
+ authUrl.searchParams.set('authReturnUrl', options.authReturnUrl);
180
+ }
181
+
182
+ // Log
183
+ logger.log('Opening auth page:', authUrl.toString());
184
+
185
+ // Get current active tab so we can restore it after auth
186
+ extension.tabs.query({ active: true, currentWindow: true }, (tabs) => {
187
+ const authSourceTabId = tabs[0]?.id;
188
+
189
+ // Add source tab ID to URL so background can restore it
190
+ if (authSourceTabId) {
191
+ authUrl.searchParams.set('authSourceTabId', authSourceTabId);
192
+ }
193
+
194
+ // Open in new tab
195
+ extension.tabs.create({ url: authUrl.toString() });
196
+ });
197
+ }
198
+
199
+ /**
200
+ * Register the extension's own auth triggers on the shared click-trigger
201
+ * registry (#16). `omega-signin` and `omega-account` are surface-specific — only
202
+ * an extension opens a brand page in a new tab — so the extension owns them
203
+ * here; `omega-signout` comes from @omega.js/client (setupSignOutListener
204
+ * detects the sign-out and notifies background).
205
+ * @param {Object} context - The manager instance (must have extension, omega, logger)
206
+ */
207
+ export function setupAuthEventListeners(context) {
208
+ registerTrigger('signin', () => openAuthPage(context));
209
+ registerTrigger('account', () => openAuthPage(context, { path: '/account' }));
210
+
211
+ // Log
212
+ context.logger.log('Auth event listeners set up');
213
+ }
@@ -0,0 +1,116 @@
1
+ // APIs
2
+ const apis = [
3
+ 'action',
4
+ 'alarms',
5
+ 'bookmarks',
6
+ 'browsingData',
7
+ 'browserAction',
8
+ 'certificateProvider',
9
+ 'commands',
10
+ 'contentSettings',
11
+ 'contextMenus',
12
+ 'cookies',
13
+ 'debugger',
14
+ 'declarativeContent',
15
+ 'declarativeNetRequest',
16
+ 'devtools',
17
+ 'dns',
18
+ 'documentScan',
19
+ 'downloads',
20
+ 'enterprise',
21
+ 'events',
22
+ 'extension',
23
+ 'extensionTypes',
24
+ 'fileBrowserHandler',
25
+ 'fileSystemProvider',
26
+ 'fontSettings',
27
+ 'gcm',
28
+ 'history',
29
+ 'i18n',
30
+ 'identity',
31
+ 'idle',
32
+ 'input',
33
+ 'instanceID',
34
+ 'management',
35
+ 'notifications',
36
+ 'offscreen',
37
+ 'omnibox',
38
+ 'pageAction',
39
+ 'permissions',
40
+ 'platformKeys',
41
+ 'power',
42
+ 'printerProvider',
43
+ 'privacy',
44
+ 'proxy',
45
+ 'runtime',
46
+ 'scripting',
47
+ 'search',
48
+ 'sessions',
49
+ 'sidePanel',
50
+ 'storage',
51
+ 'tabGroups',
52
+ 'tabs',
53
+ 'topSites',
54
+ 'tts',
55
+ 'ttsEngine',
56
+ 'userScripts',
57
+ 'vpnProvider',
58
+ 'wallpaper',
59
+ 'webNavigation',
60
+ 'webRequest',
61
+ 'windows'
62
+ ]
63
+
64
+ // Class
65
+ function Extension () {
66
+ const self = this;
67
+
68
+ // Loop through the APIs and assign them to the object
69
+ apis.forEach(function (api) {
70
+ // Initialize the API to null
71
+ self[api] = null;
72
+
73
+ // Try chrome
74
+ try {
75
+ if (chrome[api]) {
76
+ self[api] = chrome[api];
77
+ }
78
+ } catch (e) {}
79
+
80
+ // Try browser (Firefox)
81
+ try {
82
+ if (!self[api] && browser[api]) {
83
+ self[api] = browser[api];
84
+ }
85
+ } catch (e) {}
86
+
87
+ // Try browser.extension (legacy Firefox surface)
88
+ // NEVER probe window[api]: DOM globals like window.history would shadow
89
+ // the chrome API of the same name in popup/options/content contexts.
90
+ try {
91
+ if (!self[api] && browser.extension[api]) {
92
+ self[api] = browser.extension[api];
93
+ }
94
+ } catch (e) {}
95
+ })
96
+
97
+ // Try to get the runtime
98
+ try {
99
+ if (browser && browser.runtime) {
100
+ self.runtime = browser.runtime
101
+ }
102
+ } catch (e) {}
103
+
104
+ // Try to get the browserAction
105
+ try {
106
+ if (browser && browser.browserAction) {
107
+ self.browserAction = browser.browserAction
108
+ }
109
+ } catch (e) {}
110
+
111
+ // Return the object
112
+ return self;
113
+ }
114
+
115
+ // Export
116
+ module.exports = new Extension();
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Extension-page icon auto-render (C4 cp112) — importing this module wires
3
+ * the SAME shared watcher web and desktop run (@omega.js/client's
4
+ * icon-renderer): plain fa-* markup, static or set/changed via JS, renders
5
+ * inline SVGs. The extension's transport is its own packaged set —
6
+ * dist/assets/icons/, emitted at build (gulp `fontawesome` task), fetched via
7
+ * chrome.runtime.getURL, fully offline.
8
+ *
9
+ * Side-effect import, one line per page surface (popup/options/sidepanel/
10
+ * page): import './lib/icons.js';
11
+ *
12
+ * Content scripts deliberately do NOT auto-wire: watching a HOST page's
13
+ * whole DOM would collide with sites that use Font Awesome themselves.
14
+ * Injected UI can import { createIconRenderer } and scan() its own
15
+ * container (assets/icons/* is web-accessible for exactly this).
16
+ */
17
+ import { createIconRenderer } from '@omega.js/client/modules/icon-renderer.js';
18
+ import { ICONS_DIR, candidateRelPaths } from '@omega.js/client/modules/icon-core.js';
19
+
20
+ if (typeof chrome !== 'undefined' && chrome.runtime?.getURL && typeof document !== 'undefined') {
21
+ createIconRenderer({
22
+ // icon-core's candidate order — the requested style, then `brands/` — so
23
+ // `<i class="fa-solid fa-github">` renders here exactly as it does on web
24
+ // and desktop. Sequential by definition: brands/ is only ever asked for
25
+ // when the requested style dir has no such file.
26
+ resolve: async (name, style) => {
27
+ for (const rel of candidateRelPaths(name, style)) {
28
+ const response = await fetch(chrome.runtime.getURL(`assets/${ICONS_DIR}/${rel}`));
29
+ if (response.ok) return response.text();
30
+ }
31
+ return null;
32
+ },
33
+ }).start(document);
34
+ }
35
+
36
+ export { createIconRenderer };
@@ -0,0 +1,35 @@
1
+ // Runtime logger — the extension's own lineage (service worker, popup, options,
2
+ // content scripts). Prints the ONE identity tag, `[@omega.js/extension:<name>]`,
3
+ // with NO timestamp: devtools stamps runtime lines already
4
+ // ([#12](https://github.com/Omega-JS-Stack/omega/issues/12)). The build-time twin
5
+ // (lib/logger.js → @omega.js/devkit/logger) is the one that prefixes [HH:MM:SS].
6
+
7
+ // Libraries
8
+
9
+ // The package segment — this file IS @omega.js/extension, so it is a literal.
10
+ const PACKAGE = '@omega.js/extension';
11
+
12
+ // Logger class
13
+ function Logger(name) {
14
+ const self = this;
15
+
16
+ // Properties
17
+ self.name = name;
18
+ }
19
+
20
+ // Loop through log, error, warn, info, and debug and make methods that log to console with the tag [@omega.js/extension:name] message
21
+ // Setup logger
22
+ ['log', 'error', 'warn', 'info', 'debug'].forEach(method => {
23
+ Logger.prototype[method] = function () {
24
+ const self = this;
25
+
26
+ // Add prefix
27
+ const args = [`[${PACKAGE}:${self.name}]`, ...Array.from(arguments)];
28
+
29
+ // Call the original console method
30
+ console[method].apply(console, args);
31
+ };
32
+ });
33
+
34
+ // Export
35
+ module.exports = Logger;
@@ -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/logger.js');