@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.
- package/LICENSE +98 -0
- package/README.md +194 -0
- package/bin/omega +2 -0
- package/bin/omega-extension +2 -0
- package/bin/omg +2 -0
- package/dist/assets/css/bundles/.gitkeep +0 -0
- package/dist/assets/css/components/content/index.scss +5 -0
- package/dist/assets/css/components/options/index.scss +9 -0
- package/dist/assets/css/components/pages/index.scss +5 -0
- package/dist/assets/css/components/popup/index.scss +9 -0
- package/dist/assets/css/core/_animations.scss +64 -0
- package/dist/assets/css/core/_fontawesome.scss +146 -0
- package/dist/assets/css/core/_initialize.scss +23 -0
- package/dist/assets/css/core/_utilities.scss +80 -0
- package/dist/assets/css/omega-extension.scss +43 -0
- package/dist/assets/css/shell/_index.scss +207 -0
- package/dist/assets/css/tokens/_index.scss +166 -0
- package/dist/assets/js/core/app-shell.js +136 -0
- package/dist/assets/js/libs/initialize-tooltips.js +31 -0
- package/dist/assets/js/libs/recaptcha.js +94 -0
- package/dist/assets/js/main.js +4 -0
- package/dist/assets/themes/_template/README.md +115 -0
- package/dist/assets/themes/_template/_config.scss +60 -0
- package/dist/assets/themes/_template/_theme.js +14 -0
- package/dist/assets/themes/_template/_theme.scss +28 -0
- package/dist/assets/themes/_template/css/base/_root.scss +19 -0
- package/dist/assets/themes/_template/css/components/_components.scss +23 -0
- package/dist/assets/themes/base/README.md +5 -0
- package/dist/assets/themes/base/_components/data/org-chart/component.html +33 -0
- package/dist/assets/themes/base/_components/data/org-chart/component.json5 +33 -0
- package/dist/assets/themes/base/_components/data/org-chart/component.scss +183 -0
- package/dist/assets/themes/base/_components/heading/masthead/component.html +22 -0
- package/dist/assets/themes/base/_components/heading/masthead/component.json5 +30 -0
- package/dist/assets/themes/base/_components/heading/section-head/component.html +18 -0
- package/dist/assets/themes/base/_components/heading/section-head/component.json5 +27 -0
- package/dist/assets/themes/base/_components/pricing/features/component.html +29 -0
- package/dist/assets/themes/base/_components/pricing/features/component.json5 +30 -0
- package/dist/assets/themes/base/_hero/orbit/index.html +30 -0
- package/dist/assets/themes/base/_hero/orbit/script.js +33 -0
- package/dist/assets/themes/base/_hero/orbit/style.scss +133 -0
- package/dist/assets/themes/base/_includes/admin/sections/sidebar.html +3 -0
- package/dist/assets/themes/base/_includes/admin/sections/topbar.html +3 -0
- package/dist/assets/themes/base/_includes/backend/sections/sidebar.html +3 -0
- package/dist/assets/themes/base/_includes/backend/sections/topbar.html +3 -0
- package/dist/assets/themes/base/_includes/frontend/components/connection-card.html +49 -0
- package/dist/assets/themes/base/_includes/frontend/components/post-card.html +54 -0
- package/dist/assets/themes/base/_includes/frontend/sections/account-connections.html +42 -0
- package/dist/assets/themes/base/_includes/frontend/sections/account-section-header.html +11 -0
- package/dist/assets/themes/base/_includes/frontend/sections/footer.html +154 -0
- package/dist/assets/themes/base/_includes/frontend/sections/nav.html +276 -0
- package/dist/assets/themes/base/_includes/global/sections/account.html +72 -0
- package/dist/assets/themes/base/_includes/global/sections/app-sidebar.html +248 -0
- package/dist/assets/themes/base/_includes/global/sections/app-topbar.html +228 -0
- package/dist/assets/themes/base/_includes/global/sections/page-header.html +99 -0
- package/dist/assets/themes/base/_layouts/admin/core/minimal-viewport-locked.html +22 -0
- package/dist/assets/themes/base/_layouts/admin/core/minimal.html +23 -0
- package/dist/assets/themes/base/_layouts/backend/core/base.html +57 -0
- package/dist/assets/themes/base/_layouts/backend/core/minimal-viewport-locked.html +32 -0
- package/dist/assets/themes/base/_layouts/backend/core/minimal.html +32 -0
- package/dist/assets/themes/base/_layouts/backend/pages/dashboard/index.html +230 -0
- package/dist/assets/themes/base/_layouts/frontend/core/base.html +31 -0
- package/dist/assets/themes/base/_layouts/frontend/core/cover.html +40 -0
- package/dist/assets/themes/base/_layouts/frontend/core/minimal.html +47 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/404.html +54 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/about.html +144 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/account/index.html +2104 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/alternatives/alternative.html +319 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/alternatives/index.html +186 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/app.html +142 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/auth/reset.html +53 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/auth/signin.html +90 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/auth/signup.html +141 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/auth/token.html +44 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/blog/categories/category.html +88 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/blog/categories/index.html +88 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/blog/index.html +255 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/blog/post.html +261 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/blog/tags/index.html +84 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/blog/tags/tag.html +88 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/collection/category.html +72 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/collection/document.html +54 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/collection/index.html +84 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/connections/callback.html +55 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/contact.html +214 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/download.html +793 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/extension/index.html +253 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/extension/installed.html +198 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/feedback.html +171 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/index.html +66 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/legal/document.html +78 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/payment/checkout.html +459 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/payment/confirmation.html +131 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/portal/email-preferences.html +104 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/pricing.html +596 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/status.html +361 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/team/index.html +210 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/team/member.html +125 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/updates/index.html +119 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/updates/update.html +118 -0
- package/dist/assets/themes/base/_sections/about/hero/section.html +68 -0
- package/dist/assets/themes/base/_sections/about/hero/section.json5 +58 -0
- package/dist/assets/themes/base/_sections/about/letter/section.html +60 -0
- package/dist/assets/themes/base/_sections/about/letter/section.json5 +56 -0
- package/dist/assets/themes/base/_sections/about/photo-band/section.html +24 -0
- package/dist/assets/themes/base/_sections/about/photo-band/section.json5 +23 -0
- package/dist/assets/themes/base/_sections/about/principles/section.html +17 -0
- package/dist/assets/themes/base/_sections/about/principles/section.json5 +34 -0
- package/dist/assets/themes/base/_sections/about/timeline/section.html +20 -0
- package/dist/assets/themes/base/_sections/about/timeline/section.json5 +34 -0
- package/dist/assets/themes/base/_sections/marketing/bento/section.html +91 -0
- package/dist/assets/themes/base/_sections/marketing/bento/section.json5 +152 -0
- package/dist/assets/themes/base/_sections/marketing/cta/section.html +44 -0
- package/dist/assets/themes/base/_sections/marketing/cta/section.json5 +47 -0
- package/dist/assets/themes/base/_sections/marketing/faq/section.html +52 -0
- package/dist/assets/themes/base/_sections/marketing/faq/section.json5 +68 -0
- package/dist/assets/themes/base/_sections/marketing/hero/section.html +349 -0
- package/dist/assets/themes/base/_sections/marketing/hero/section.json5 +335 -0
- package/dist/assets/themes/base/_sections/marketing/newsletter-cta/section.html +38 -0
- package/dist/assets/themes/base/_sections/marketing/newsletter-cta/section.js +86 -0
- package/dist/assets/themes/base/_sections/marketing/newsletter-cta/section.json5 +29 -0
- package/dist/assets/themes/base/_sections/marketing/pricing-cards/section.html +115 -0
- package/dist/assets/themes/base/_sections/marketing/pricing-cards/section.json5 +72 -0
- package/dist/assets/themes/base/_sections/marketing/product-demo/section.html +62 -0
- package/dist/assets/themes/base/_sections/marketing/product-demo/section.js +44 -0
- package/dist/assets/themes/base/_sections/marketing/product-demo/section.json5 +52 -0
- package/dist/assets/themes/base/_sections/marketing/prose/section.html +22 -0
- package/dist/assets/themes/base/_sections/marketing/prose/section.json5 +41 -0
- package/dist/assets/themes/base/_sections/marketing/showcase/section.html +35 -0
- package/dist/assets/themes/base/_sections/marketing/showcase/section.json5 +52 -0
- package/dist/assets/themes/base/_sections/marketing/stats/section.html +32 -0
- package/dist/assets/themes/base/_sections/marketing/stats/section.json5 +44 -0
- package/dist/assets/themes/base/_sections/marketing/testimonials/section.html +54 -0
- package/dist/assets/themes/base/_sections/marketing/testimonials/section.json5 +70 -0
- package/dist/assets/themes/base/_sections/marketing/trusted-by/section.html +30 -0
- package/dist/assets/themes/base/_sections/marketing/trusted-by/section.json5 +38 -0
- package/dist/assets/themes/base/_sections/verts/unit/section.html +7 -0
- package/dist/assets/themes/base/_sections/verts/unit/section.js +22 -0
- package/dist/assets/themes/base/_sections/verts/unit/section.json5 +24 -0
- package/dist/assets/themes/base/_sections/verts/unit/section.scss +24 -0
- package/dist/assets/themes/base/_theme.js +13 -0
- package/dist/assets/themes/base/_theme.scss +4 -0
- package/dist/assets/themes/bootstrap/_theme.js +16 -0
- package/dist/assets/themes/bootstrap/_theme.scss +11 -0
- package/dist/assets/themes/bootstrap/js/index.esm.js +19 -0
- package/dist/assets/themes/bootstrap/js/index.umd.js +34 -0
- package/dist/assets/themes/bootstrap/js/src/alert.js +87 -0
- package/dist/assets/themes/bootstrap/js/src/base-component.js +86 -0
- package/dist/assets/themes/bootstrap/js/src/button.js +72 -0
- package/dist/assets/themes/bootstrap/js/src/carousel.js +474 -0
- package/dist/assets/themes/bootstrap/js/src/collapse.js +297 -0
- package/dist/assets/themes/bootstrap/js/src/dom/data.js +55 -0
- package/dist/assets/themes/bootstrap/js/src/dom/event-handler.js +317 -0
- package/dist/assets/themes/bootstrap/js/src/dom/manipulator.js +71 -0
- package/dist/assets/themes/bootstrap/js/src/dom/selector-engine.js +126 -0
- package/dist/assets/themes/bootstrap/js/src/dropdown.js +458 -0
- package/dist/assets/themes/bootstrap/js/src/modal.js +378 -0
- package/dist/assets/themes/bootstrap/js/src/offcanvas.js +282 -0
- package/dist/assets/themes/bootstrap/js/src/popover.js +97 -0
- package/dist/assets/themes/bootstrap/js/src/scrollspy.js +296 -0
- package/dist/assets/themes/bootstrap/js/src/tab.js +315 -0
- package/dist/assets/themes/bootstrap/js/src/toast.js +224 -0
- package/dist/assets/themes/bootstrap/js/src/tooltip.js +632 -0
- package/dist/assets/themes/bootstrap/js/src/util/backdrop.js +151 -0
- package/dist/assets/themes/bootstrap/js/src/util/component-functions.js +35 -0
- package/dist/assets/themes/bootstrap/js/src/util/config.js +65 -0
- package/dist/assets/themes/bootstrap/js/src/util/focustrap.js +115 -0
- package/dist/assets/themes/bootstrap/js/src/util/index.js +306 -0
- package/dist/assets/themes/bootstrap/js/src/util/sanitizer.js +117 -0
- package/dist/assets/themes/bootstrap/js/src/util/scrollbar.js +114 -0
- package/dist/assets/themes/bootstrap/js/src/util/swipe.js +146 -0
- package/dist/assets/themes/bootstrap/js/src/util/template-factory.js +160 -0
- package/dist/assets/themes/bootstrap/overrides/_accordion.scss +21 -0
- package/dist/assets/themes/bootstrap/overrides/_avatars.scss +51 -0
- package/dist/assets/themes/bootstrap/overrides/_blog-images.scss +45 -0
- package/dist/assets/themes/bootstrap/overrides/_buttons-adaptive.scss +141 -0
- package/dist/assets/themes/bootstrap/overrides/_color-shades.scss +25 -0
- package/dist/assets/themes/bootstrap/overrides/_cursor-utilities.scss +13 -0
- package/dist/assets/themes/bootstrap/overrides/_index.scss +30 -0
- package/dist/assets/themes/bootstrap/overrides/_links.scss +26 -0
- package/dist/assets/themes/bootstrap/overrides/_soft-colors.scss +99 -0
- package/dist/assets/themes/bootstrap/overrides/_spacing-extended.scss +74 -0
- package/dist/assets/themes/bootstrap/overrides/_spinners.scss +22 -0
- package/dist/assets/themes/bootstrap/overrides/_typography-utilities.scss +40 -0
- package/dist/assets/themes/bootstrap/scss/_accordion.scss +153 -0
- package/dist/assets/themes/bootstrap/scss/_alert.scss +68 -0
- package/dist/assets/themes/bootstrap/scss/_badge.scss +38 -0
- package/dist/assets/themes/bootstrap/scss/_breadcrumb.scss +40 -0
- package/dist/assets/themes/bootstrap/scss/_button-group.scss +147 -0
- package/dist/assets/themes/bootstrap/scss/_buttons.scss +216 -0
- package/dist/assets/themes/bootstrap/scss/_card.scss +238 -0
- package/dist/assets/themes/bootstrap/scss/_carousel.scss +226 -0
- package/dist/assets/themes/bootstrap/scss/_close.scss +66 -0
- package/dist/assets/themes/bootstrap/scss/_containers.scss +41 -0
- package/dist/assets/themes/bootstrap/scss/_dropdown.scss +250 -0
- package/dist/assets/themes/bootstrap/scss/_forms.scss +9 -0
- package/dist/assets/themes/bootstrap/scss/_functions.scss +302 -0
- package/dist/assets/themes/bootstrap/scss/_grid.scss +39 -0
- package/dist/assets/themes/bootstrap/scss/_helpers.scss +12 -0
- package/dist/assets/themes/bootstrap/scss/_images.scss +42 -0
- package/dist/assets/themes/bootstrap/scss/_list-group.scss +199 -0
- package/dist/assets/themes/bootstrap/scss/_maps.scss +174 -0
- package/dist/assets/themes/bootstrap/scss/_mixins.scss +42 -0
- package/dist/assets/themes/bootstrap/scss/_modal.scss +240 -0
- package/dist/assets/themes/bootstrap/scss/_nav.scss +197 -0
- package/dist/assets/themes/bootstrap/scss/_navbar.scss +289 -0
- package/dist/assets/themes/bootstrap/scss/_offcanvas.scss +147 -0
- package/dist/assets/themes/bootstrap/scss/_pagination.scss +109 -0
- package/dist/assets/themes/bootstrap/scss/_placeholders.scss +51 -0
- package/dist/assets/themes/bootstrap/scss/_popover.scss +196 -0
- package/dist/assets/themes/bootstrap/scss/_progress.scss +68 -0
- package/dist/assets/themes/bootstrap/scss/_reboot.scss +611 -0
- package/dist/assets/themes/bootstrap/scss/_root.scss +187 -0
- package/dist/assets/themes/bootstrap/scss/_spinners.scss +85 -0
- package/dist/assets/themes/bootstrap/scss/_tables.scss +171 -0
- package/dist/assets/themes/bootstrap/scss/_toasts.scss +73 -0
- package/dist/assets/themes/bootstrap/scss/_tooltip.scss +119 -0
- package/dist/assets/themes/bootstrap/scss/_transitions.scss +27 -0
- package/dist/assets/themes/bootstrap/scss/_type.scss +106 -0
- package/dist/assets/themes/bootstrap/scss/_utilities.scss +806 -0
- package/dist/assets/themes/bootstrap/scss/_variables-dark.scss +102 -0
- package/dist/assets/themes/bootstrap/scss/_variables.scss +1753 -0
- package/dist/assets/themes/bootstrap/scss/bootstrap-grid.scss +62 -0
- package/dist/assets/themes/bootstrap/scss/bootstrap-reboot.scss +10 -0
- package/dist/assets/themes/bootstrap/scss/bootstrap-utilities.scss +19 -0
- package/dist/assets/themes/bootstrap/scss/bootstrap.scss +52 -0
- package/dist/assets/themes/bootstrap/scss/forms/_floating-labels.scss +97 -0
- package/dist/assets/themes/bootstrap/scss/forms/_form-check.scss +189 -0
- package/dist/assets/themes/bootstrap/scss/forms/_form-control.scss +214 -0
- package/dist/assets/themes/bootstrap/scss/forms/_form-range.scss +91 -0
- package/dist/assets/themes/bootstrap/scss/forms/_form-select.scss +80 -0
- package/dist/assets/themes/bootstrap/scss/forms/_form-text.scss +11 -0
- package/dist/assets/themes/bootstrap/scss/forms/_input-group.scss +132 -0
- package/dist/assets/themes/bootstrap/scss/forms/_labels.scss +36 -0
- package/dist/assets/themes/bootstrap/scss/forms/_validation.scss +12 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_clearfix.scss +3 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_color-bg.scss +7 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_colored-links.scss +30 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_focus-ring.scss +5 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_icon-link.scss +25 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_position.scss +36 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_ratio.scss +26 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_stacks.scss +15 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_stretched-link.scss +15 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_text-truncation.scss +7 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_visually-hidden.scss +8 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_vr.scss +8 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_alert.scss +18 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_backdrop.scss +14 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_banner.scss +7 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_border-radius.scss +78 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_box-shadow.scss +18 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_breakpoints.scss +127 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_buttons.scss +70 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_caret.scss +69 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_clearfix.scss +9 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_color-mode.scss +21 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_color-scheme.scss +7 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_container.scss +11 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_deprecate.scss +10 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_forms.scss +163 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_gradients.scss +47 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_grid.scss +151 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_image.scss +16 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_list-group.scss +26 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_lists.scss +7 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_pagination.scss +10 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_reset-text.scss +17 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_resize.scss +6 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_table-variants.scss +24 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_text-truncate.scss +8 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_transition.scss +26 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_utilities.scss +97 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_visually-hidden.scss +38 -0
- package/dist/assets/themes/bootstrap/scss/tests/jasmine.js +16 -0
- package/dist/assets/themes/bootstrap/scss/tests/mixins/_auto-import-of-variables-dark.test.scss +7 -0
- package/dist/assets/themes/bootstrap/scss/tests/mixins/_color-modes.test.scss +69 -0
- package/dist/assets/themes/bootstrap/scss/tests/mixins/_media-query-color-mode-full.test.scss +8 -0
- package/dist/assets/themes/bootstrap/scss/tests/mixins/_utilities.test.scss +393 -0
- package/dist/assets/themes/bootstrap/scss/tests/sass-true/register.js +14 -0
- package/dist/assets/themes/bootstrap/scss/tests/sass-true/runner.js +17 -0
- package/dist/assets/themes/bootstrap/scss/tests/utilities/_api.test.scss +75 -0
- package/dist/assets/themes/bootstrap/scss/utilities/_api.scss +47 -0
- package/dist/assets/themes/bootstrap/scss/vendor/_rfs.scss +348 -0
- package/dist/assets/themes/classy/README.md +89 -0
- package/dist/assets/themes/classy/_config.scss +245 -0
- package/dist/assets/themes/classy/_theme.js +31 -0
- package/dist/assets/themes/classy/_theme.scss +57 -0
- package/dist/assets/themes/classy/css/app/_panels.scss +183 -0
- package/dist/assets/themes/classy/css/base/_fonts.scss +79 -0
- package/dist/assets/themes/classy/css/base/_no-raise.scss +49 -0
- package/dist/assets/themes/classy/css/base/_root.scss +113 -0
- package/dist/assets/themes/classy/css/base/_typography.scss +154 -0
- package/dist/assets/themes/classy/css/base/_utilities.scss +284 -0
- package/dist/assets/themes/classy/css/components/_alerts.scss +51 -0
- package/dist/assets/themes/classy/css/components/_badges.scss +46 -0
- package/dist/assets/themes/classy/css/components/_buttons.scss +175 -0
- package/dist/assets/themes/classy/css/components/_cards.scss +41 -0
- package/dist/assets/themes/classy/css/components/_dropdowns.scss +48 -0
- package/dist/assets/themes/classy/css/components/_forms.scss +171 -0
- package/dist/assets/themes/classy/css/components/_receipt.scss +45 -0
- package/dist/assets/themes/classy/css/layout/_footer.scss +298 -0
- package/dist/assets/themes/classy/css/layout/_general.scss +209 -0
- package/dist/assets/themes/classy/css/layout/_nav.scss +154 -0
- package/dist/assets/themes/classy/css/layout/_shell.scss +458 -0
- package/dist/assets/themes/classy/css/marketing/_bento.scss +238 -0
- package/dist/assets/themes/classy/css/marketing/_content.scss +1328 -0
- package/dist/assets/themes/classy/css/marketing/_downloads.scss +246 -0
- package/dist/assets/themes/classy/css/marketing/_hero.scss +311 -0
- package/dist/assets/themes/classy/css/marketing/_sections.scss +649 -0
- package/dist/assets/themes/classy/css/pages/404/index.scss +67 -0
- package/dist/assets/themes/classy/css/pages/_auth.scss +235 -0
- package/dist/assets/themes/classy/css/pages/admin/firebase/index.scss +22 -0
- package/dist/assets/themes/classy/css/pages/blog/[slug].scss +56 -0
- package/dist/assets/themes/classy/css/pages/cookies.scss +2 -0
- package/dist/assets/themes/classy/css/pages/dashboard/account/index.scss +31 -0
- package/dist/assets/themes/classy/css/pages/feedback/index.scss +39 -0
- package/dist/assets/themes/classy/css/pages/legal/_document.scss +192 -0
- package/dist/assets/themes/classy/css/pages/payment/checkout/index.scss +585 -0
- package/dist/assets/themes/classy/css/pages/payment/confirmation/index.scss +9 -0
- package/dist/assets/themes/classy/css/pages/privacy.scss +2 -0
- package/dist/assets/themes/classy/css/pages/status/index.scss +164 -0
- package/dist/assets/themes/classy/css/pages/terms.scss +2 -0
- package/dist/assets/themes/classy/css/pages/updates/index.scss +128 -0
- package/dist/assets/themes/classy/fonts/inter-italic-latin-ext.woff2 +0 -0
- package/dist/assets/themes/classy/fonts/inter-italic-latin.woff2 +0 -0
- package/dist/assets/themes/classy/fonts/inter-normal-latin-ext.woff2 +0 -0
- package/dist/assets/themes/classy/fonts/inter-normal-latin.woff2 +0 -0
- package/dist/assets/themes/classy/fonts/newsreader-italic-latin-ext.woff2 +0 -0
- package/dist/assets/themes/classy/fonts/newsreader-italic-latin.woff2 +0 -0
- package/dist/assets/themes/classy/fonts/newsreader-normal-latin-ext.woff2 +0 -0
- package/dist/assets/themes/classy/fonts/newsreader-normal-latin.woff2 +0 -0
- package/dist/assets/themes/classy/js/hero-demo-form.js +56 -0
- package/dist/assets/themes/neobrutalism/README.md +118 -0
- package/dist/assets/themes/neobrutalism/_config.scss +139 -0
- package/dist/assets/themes/neobrutalism/_layouts/frontend/core/base.html +30 -0
- package/dist/assets/themes/neobrutalism/_layouts/frontend/pages/index.html +275 -0
- package/dist/assets/themes/neobrutalism/_theme.js +24 -0
- package/dist/assets/themes/neobrutalism/_theme.scss +61 -0
- package/dist/assets/themes/neobrutalism/css/base/_mixins.scss +46 -0
- package/dist/assets/themes/neobrutalism/css/base/_root.scss +169 -0
- package/dist/assets/themes/neobrutalism/css/base/_typography.scss +61 -0
- package/dist/assets/themes/neobrutalism/css/base/_utilities.scss +89 -0
- package/dist/assets/themes/neobrutalism/css/components/_billing-toggle.scss +74 -0
- package/dist/assets/themes/neobrutalism/css/components/_buttons.scss +148 -0
- package/dist/assets/themes/neobrutalism/css/components/_cards.scss +47 -0
- package/dist/assets/themes/neobrutalism/css/components/_forms.scss +88 -0
- package/dist/assets/themes/neobrutalism/css/components/_marketing.scss +244 -0
- package/dist/assets/themes/neobrutalism/css/layout/_general.scss +213 -0
- package/dist/assets/themes/neobrutalism/css/layout/_navigation.scss +171 -0
- package/dist/assets/themes/neobrutalism/css/pages/index.scss +203 -0
- package/dist/assets/themes/neobrutalism/css/pages/pricing/index.scss +58 -0
- package/dist/assets/themes/neobrutalism/css/pages/test/libraries/layers/index.scss +7 -0
- package/dist/assets/themes/neobrutalism/js/pages/test/libraries/layers/index.js +9 -0
- package/dist/assets/themes/newsflash/README.md +117 -0
- package/dist/assets/themes/newsflash/_components/heading/lede/component.html +14 -0
- package/dist/assets/themes/newsflash/_components/heading/lede/component.json5 +23 -0
- package/dist/assets/themes/newsflash/_components/heading/rule-head/component.html +17 -0
- package/dist/assets/themes/newsflash/_components/heading/rule-head/component.json5 +23 -0
- package/dist/assets/themes/newsflash/_components/news/byline/component.html +12 -0
- package/dist/assets/themes/newsflash/_components/news/byline/component.json5 +18 -0
- package/dist/assets/themes/newsflash/_components/news/story-card/component.html +25 -0
- package/dist/assets/themes/newsflash/_components/news/story-card/component.json5 +21 -0
- package/dist/assets/themes/newsflash/_config.scss +147 -0
- package/dist/assets/themes/newsflash/_layouts/frontend/core/base.html +51 -0
- package/dist/assets/themes/newsflash/_layouts/frontend/pages/blog/index.html +299 -0
- package/dist/assets/themes/newsflash/_layouts/frontend/pages/blog/post.html +235 -0
- package/dist/assets/themes/newsflash/_layouts/frontend/pages/index.html +328 -0
- package/dist/assets/themes/newsflash/_sections/marketing/desks/section.html +39 -0
- package/dist/assets/themes/newsflash/_sections/marketing/desks/section.json5 +49 -0
- package/dist/assets/themes/newsflash/_sections/marketing/newsletter-cta/section.html +103 -0
- package/dist/assets/themes/newsflash/_sections/marketing/newsletter-cta/section.json5 +50 -0
- package/dist/assets/themes/newsflash/_sections/marketing/rundown/section.html +28 -0
- package/dist/assets/themes/newsflash/_sections/marketing/rundown/section.json5 +40 -0
- package/dist/assets/themes/newsflash/_theme.js +24 -0
- package/dist/assets/themes/newsflash/_theme.scss +70 -0
- package/dist/assets/themes/newsflash/css/base/_fonts.scss +80 -0
- package/dist/assets/themes/newsflash/css/base/_mixins.scss +51 -0
- package/dist/assets/themes/newsflash/css/base/_root.scss +257 -0
- package/dist/assets/themes/newsflash/css/base/_typography.scss +49 -0
- package/dist/assets/themes/newsflash/css/base/_utilities.scss +122 -0
- package/dist/assets/themes/newsflash/css/components/_badges.scss +65 -0
- package/dist/assets/themes/newsflash/css/components/_billing-toggle.scss +61 -0
- package/dist/assets/themes/newsflash/css/components/_buttons.scss +139 -0
- package/dist/assets/themes/newsflash/css/components/_cards.scss +47 -0
- package/dist/assets/themes/newsflash/css/components/_editorial.scss +173 -0
- package/dist/assets/themes/newsflash/css/components/_forms.scss +75 -0
- package/dist/assets/themes/newsflash/css/components/_infinite-scroll.scss +102 -0
- package/dist/assets/themes/newsflash/css/components/_panels.scss +156 -0
- package/dist/assets/themes/newsflash/css/components/_ticker.scss +67 -0
- package/dist/assets/themes/newsflash/css/layout/_general.scss +330 -0
- package/dist/assets/themes/newsflash/css/layout/_navigation.scss +168 -0
- package/dist/assets/themes/newsflash/css/pages/404/index.scss +79 -0
- package/dist/assets/themes/newsflash/css/pages/blog/[slug].scss +186 -0
- package/dist/assets/themes/newsflash/css/pages/blog/index.scss +17 -0
- package/dist/assets/themes/newsflash/css/pages/index.scss +157 -0
- package/dist/assets/themes/newsflash/css/pages/pricing/index.scss +55 -0
- package/dist/assets/themes/newsflash/css/pages/test/libraries/layers/index.scss +7 -0
- package/dist/assets/themes/newsflash/fonts/fraunces-italic-latin-ext.woff2 +0 -0
- package/dist/assets/themes/newsflash/fonts/fraunces-italic-latin.woff2 +0 -0
- package/dist/assets/themes/newsflash/fonts/fraunces-normal-latin-ext.woff2 +0 -0
- package/dist/assets/themes/newsflash/fonts/fraunces-normal-latin.woff2 +0 -0
- package/dist/assets/themes/newsflash/fonts/schibsted-grotesk-italic-latin-ext.woff2 +0 -0
- package/dist/assets/themes/newsflash/fonts/schibsted-grotesk-italic-latin.woff2 +0 -0
- package/dist/assets/themes/newsflash/fonts/schibsted-grotesk-normal-latin-ext.woff2 +0 -0
- package/dist/assets/themes/newsflash/fonts/schibsted-grotesk-normal-latin.woff2 +0 -0
- package/dist/assets/themes/newsflash/js/pages/blog/[slug].js +29 -0
- package/dist/assets/themes/newsflash/js/pages/test/libraries/layers/index.js +9 -0
- package/dist/background.js +684 -0
- package/dist/build.js +268 -0
- package/dist/cli-run.js +25 -0
- package/dist/cli.js +30 -0
- package/dist/commands/build.js +67 -0
- package/dist/commands/clean.js +29 -0
- package/dist/commands/deploy.js +97 -0
- package/dist/commands/install.js +58 -0
- package/dist/commands/lib/dependencies.js +33 -0
- package/dist/commands/lib/deploy-precheck.js +57 -0
- package/dist/commands/lib/ensure-target.js +151 -0
- package/dist/commands/lib/push-secrets.js +60 -0
- package/dist/commands/migrate.js +77 -0
- package/dist/commands/test.js +110 -0
- package/dist/commands/update.js +21 -0
- package/dist/commands/version.js +12 -0
- package/dist/config/manifest.json +117 -0
- package/dist/config/page-template.html +21 -0
- package/dist/content.js +37 -0
- package/dist/defaults/.github/workflows/publish.yml +86 -0
- package/dist/defaults/.nvmrc +1 -0
- package/dist/defaults/.vscode/settings.json +8 -0
- package/dist/defaults/AGENTS.md +113 -0
- package/dist/defaults/CHANGELOG.md +15 -0
- package/dist/defaults/CLAUDE.md +1 -0
- package/dist/defaults/_.gitignore +75 -0
- package/dist/defaults/config/description.md +46 -0
- package/dist/defaults/config/messages.json +20 -0
- package/dist/defaults/config/omega.json5 +64 -0
- package/dist/defaults/docs/README.md +17 -0
- package/dist/defaults/gulpfile.js +6 -0
- package/dist/defaults/hooks/build/post.js +8 -0
- package/dist/defaults/hooks/build/pre.js +8 -0
- package/dist/defaults/src/assets/css/bundles/.gitkeep +0 -0
- package/dist/defaults/src/assets/css/components/content/index.scss +11 -0
- package/dist/defaults/src/assets/css/components/offscreen/index.scss +4 -0
- package/dist/defaults/src/assets/css/components/options/index.scss +14 -0
- package/dist/defaults/src/assets/css/components/pages/index.scss +10 -0
- package/dist/defaults/src/assets/css/components/popup/index.scss +10 -0
- package/dist/defaults/src/assets/css/components/sidepanel/index.scss +6 -0
- package/dist/defaults/src/assets/css/main.scss +32 -0
- package/dist/defaults/src/assets/images/.gitkeep +0 -0
- package/dist/defaults/src/assets/js/components/background/index.js +25 -0
- package/dist/defaults/src/assets/js/components/content/index.js +22 -0
- package/dist/defaults/src/assets/js/components/offscreen/index.js +25 -0
- package/dist/defaults/src/assets/js/components/options/index.js +22 -0
- package/dist/defaults/src/assets/js/components/pages/index.js +22 -0
- package/dist/defaults/src/assets/js/components/popup/index.js +22 -0
- package/dist/defaults/src/assets/js/components/sidepanel/index.js +20 -0
- package/dist/defaults/src/assets/vendor/.gitkeep +0 -0
- package/dist/defaults/src/manifest.json +131 -0
- package/dist/defaults/src/views/offscreen/index.html +3 -0
- package/dist/defaults/src/views/options/index.html +8 -0
- package/dist/defaults/src/views/pages/index.html +10 -0
- package/dist/defaults/src/views/popup/index.html +4 -0
- package/dist/defaults/src/views/sidepanel/index.html +4 -0
- package/dist/defaults/test/README.md +41 -0
- package/dist/defaults/test/_init.js +10 -0
- package/dist/defaults/test/boot/externally-connectable.test.js +28 -0
- package/dist/gulp/config/locales.js +12 -0
- package/dist/gulp/main.js +78 -0
- package/dist/gulp/tasks/_.js +18 -0
- package/dist/gulp/tasks/audit.js +222 -0
- package/dist/gulp/tasks/bundle.js +687 -0
- package/dist/gulp/tasks/defaults.js +281 -0
- package/dist/gulp/tasks/distribute.js +172 -0
- package/dist/gulp/tasks/fontawesome.js +25 -0
- package/dist/gulp/tasks/html.js +163 -0
- package/dist/gulp/tasks/icons.js +126 -0
- package/dist/gulp/tasks/package.js +742 -0
- package/dist/gulp/tasks/publish.js +417 -0
- package/dist/gulp/tasks/sass.js +252 -0
- package/dist/gulp/tasks/serve.js +103 -0
- package/dist/gulp/tasks/translate.js +252 -0
- package/dist/gulp/tasks/utils/build-json.js +43 -0
- package/dist/gulp/tasks/utils/template-transform.js +50 -0
- package/dist/gulp/templates/BUILD_INSTRUCTIONS.md +69 -0
- package/dist/index.js +46 -0
- package/dist/lib/affiliatizer.js +224 -0
- package/dist/lib/analytics.js +26 -0
- package/dist/lib/auth-helpers.js +213 -0
- package/dist/lib/extension.js +116 -0
- package/dist/lib/icons.js +36 -0
- package/dist/lib/logger-lite.js +35 -0
- package/dist/lib/logger.js +4 -0
- package/dist/lib/messaging.js +48 -0
- package/dist/lib/safe-install.js +4 -0
- package/dist/lib/theme.js +73 -0
- package/dist/lib/verts.js +68 -0
- package/dist/offscreen.js +31 -0
- package/dist/omega-bin.js +6 -0
- package/dist/options.js +80 -0
- package/dist/page.js +80 -0
- package/dist/popup.js +80 -0
- package/dist/sidepanel.js +80 -0
- package/dist/test/assert.js +4 -0
- package/dist/test/fixtures/consumer-extension/dist/background.js +23 -0
- package/dist/test/fixtures/consumer-extension/dist/manifest.json +20 -0
- package/dist/test/fixtures/consumer-extension/dist/options.html +10 -0
- package/dist/test/fixtures/consumer-extension/dist/popup.bundle.js +5 -0
- package/dist/test/fixtures/consumer-extension/dist/popup.html +12 -0
- package/dist/test/harness/extension/background.js +26 -0
- package/dist/test/harness/extension/manifest.json +27 -0
- package/dist/test/harness/extension/options.html +12 -0
- package/dist/test/harness/extension/popup.html +12 -0
- package/dist/test/harness/extension/sidepanel.html +12 -0
- package/dist/test/index.js +63 -0
- package/dist/test/runner.js +99 -0
- package/dist/test/runners/boot.js +221 -0
- package/dist/test/runners/chromium.js +391 -0
- package/dist/test/runners/helpers.js +24 -0
- package/dist/test/suites/background/messaging.test.js +44 -0
- package/dist/test/suites/background/storage.test.js +46 -0
- package/dist/test/suites/background/sw-context.test.js +49 -0
- package/dist/test/suites/boot/build-json-bake.test.js +80 -0
- package/dist/test/suites/boot/extension-loads.test.js +58 -0
- package/dist/test/suites/build/affiliatizer.test.js +64 -0
- package/dist/test/suites/build/app-launch.test.js +65 -0
- package/dist/test/suites/build/attach-log-file.test.js +99 -0
- package/dist/test/suites/build/auth-emulator-gate.test.js +118 -0
- package/dist/test/suites/build/auth-triggers.test.js +71 -0
- package/dist/test/suites/build/boot-discovery.test.js +134 -0
- package/dist/test/suites/build/boot-timeout.test.js +92 -0
- package/dist/test/suites/build/build-error-notification.test.js +122 -0
- package/dist/test/suites/build/build-json-bake.test.js +302 -0
- package/dist/test/suites/build/build-verb.test.js +138 -0
- package/dist/test/suites/build/bundle-targets.test.js +66 -0
- package/dist/test/suites/build/cache-warming.test.js +44 -0
- package/dist/test/suites/build/cli.test.js +150 -0
- package/dist/test/suites/build/default-boot-test.test.js +100 -0
- package/dist/test/suites/build/defaults-scaffold.test.js +287 -0
- package/dist/test/suites/build/deploy-dispatch.test.js +76 -0
- package/dist/test/suites/build/distribute-task.test.js +111 -0
- package/dist/test/suites/build/ensure-target.test.js +141 -0
- package/dist/test/suites/build/env-delivery.test.js +239 -0
- package/dist/test/suites/build/env-watch.test.js +86 -0
- package/dist/test/suites/build/expect.test.js +48 -0
- package/dist/test/suites/build/exports.test.js +53 -0
- package/dist/test/suites/build/extension-fallback.test.js +82 -0
- package/dist/test/suites/build/framework-deps.test.js +176 -0
- package/dist/test/suites/build/global-handlers.test.js +70 -0
- package/dist/test/suites/build/icon-sheet.test.js +74 -0
- package/dist/test/suites/build/logger-lite.test.js +61 -0
- package/dist/test/suites/build/manager.test.js +249 -0
- package/dist/test/suites/build/mode-helpers.test.js +136 -0
- package/dist/test/suites/build/omega-shell.test.js +103 -0
- package/dist/test/suites/build/omega-tokens.test.js +76 -0
- package/dist/test/suites/build/package-task.test.js +831 -0
- package/dist/test/suites/build/setup-scripts.test.js +172 -0
- package/dist/test/suites/build/strip-dev-blocks.test.js +122 -0
- package/dist/test/suites/build/template-replace.test.js +116 -0
- package/dist/test/suites/build/test-discovery.test.js +64 -0
- package/dist/test/suites/build/test-target-no-match.test.js +119 -0
- package/dist/test/suites/build/theme-resolve.test.js +115 -0
- package/dist/test/suites/build/translate.test.js +85 -0
- package/dist/test/suites/build/url-helpers.test.js +119 -0
- package/dist/test/suites/build/verb-logs.test.js +43 -0
- package/dist/test/suites/build/verts-binding.test.js +67 -0
- package/dist/test/suites/build/wakeup-ping.test.js +90 -0
- package/dist/test/suites/build/wave5-messenger.test.js +80 -0
- package/dist/test/suites/view/options-and-sidepanel.test.js +16 -0
- package/dist/test/suites/view/popup-context.test.js +53 -0
- package/dist/test/suites/view/sidepanel.test.js +16 -0
- package/dist/test/utils/extended-mode-warning.js +13 -0
- package/dist/utils/attach-log-file.js +4 -0
- package/dist/utils/mode-helpers.js +117 -0
- package/dist/utils/url-helpers.js +69 -0
- package/dist/vendor/account/engine.js +182 -0
- package/dist/vendor/account/features.js +220 -0
- package/dist/vendor/account/index.js +53 -0
- package/dist/vendor/account/schema.js +272 -0
- package/dist/vendor/account/subscription.js +38 -0
- package/dist/vendor/config/company.js +31 -0
- package/dist/vendor/config/defaults.js +173 -0
- package/dist/vendor/config/demo.js +18 -0
- package/dist/vendor/config/desktop-artifacts.js +110 -0
- package/dist/vendor/config/edit.js +769 -0
- package/dist/vendor/config/env-delivery.js +145 -0
- package/dist/vendor/config/env-rules.js +93 -0
- package/dist/vendor/config/env-schema.js +1078 -0
- package/dist/vendor/config/env.js +445 -0
- package/dist/vendor/config/hooks.js +97 -0
- package/dist/vendor/config/index.js +237 -0
- package/dist/vendor/config/instances.js +208 -0
- package/dist/vendor/config/load.js +490 -0
- package/dist/vendor/config/merge.js +68 -0
- package/dist/vendor/config/order.js +139 -0
- package/dist/vendor/config/ports.js +374 -0
- package/dist/vendor/config/providers.js +32 -0
- package/dist/vendor/config/repo.js +142 -0
- package/dist/vendor/config/retired-keys.js +430 -0
- package/dist/vendor/config/schema.js +1610 -0
- package/dist/vendor/config/secrets.js +50 -0
- package/dist/vendor/config/seed.js +34 -0
- package/dist/vendor/config/site-global.js +205 -0
- package/dist/vendor/config/validate.js +554 -0
- package/dist/vendor/config/winback.js +61 -0
- package/dist/vendor/devkit/actions-secrets.js +145 -0
- package/dist/vendor/devkit/attach-log-file.js +262 -0
- package/dist/vendor/devkit/bundle.js +292 -0
- package/dist/vendor/devkit/ci-workflows.js +520 -0
- package/dist/vendor/devkit/clean-dirs.js +28 -0
- package/dist/vendor/devkit/cli-router.js +156 -0
- package/dist/vendor/devkit/defaults-engine.js +372 -0
- package/dist/vendor/devkit/deploy-precheck.js +54 -0
- package/dist/vendor/devkit/deploy-record.js +180 -0
- package/dist/vendor/devkit/deploy.js +286 -0
- package/dist/vendor/devkit/empty-modules-plugin.js +64 -0
- package/dist/vendor/devkit/env-watch.js +132 -0
- package/dist/vendor/devkit/framework-deps.js +46 -0
- package/dist/vendor/devkit/icons.js +178 -0
- package/dist/vendor/devkit/license.js +155 -0
- package/dist/vendor/devkit/local.js +1905 -0
- package/dist/vendor/devkit/logger.js +128 -0
- package/dist/vendor/devkit/merge-line-files.js +296 -0
- package/dist/vendor/devkit/npm-registry.js +52 -0
- package/dist/vendor/devkit/omega-bin.js +345 -0
- package/dist/vendor/devkit/safe-install.js +18 -0
- package/dist/vendor/devkit/scaffold-guard.js +96 -0
- package/dist/vendor/devkit/strip-dev-blocks-plugin.js +29 -0
- package/dist/vendor/devkit/strip-dev-blocks.js +32 -0
- package/dist/vendor/devkit/target-dependencies.js +137 -0
- package/dist/vendor/devkit/target-secrets.js +165 -0
- package/dist/vendor/devkit/test/assert.js +120 -0
- package/dist/vendor/devkit/test/define-cases.js +104 -0
- package/dist/vendor/devkit/test/extended-mode-warning.js +22 -0
- package/dist/vendor/devkit/test/runner-core.js +554 -0
- package/dist/vendor/devkit/test/scope.js +162 -0
- package/dist/vendor/devkit/translate/cache.js +84 -0
- package/dist/vendor/devkit/translate/engine.js +243 -0
- package/dist/vendor/devkit/translate/index.js +49 -0
- package/dist/vendor/devkit/translate/languages.js +134 -0
- package/dist/vendor/devkit/translate/providers.js +188 -0
- package/dist/vendor/devkit/update.js +569 -0
- package/docs/affiliatizer.md +81 -0
- package/docs/audit.md +67 -0
- package/docs/auth.md +149 -0
- package/docs/build-system.md +176 -0
- package/docs/cdp-debugging.md +42 -0
- package/docs/cli.md +73 -0
- package/docs/common-mistakes.md +10 -0
- package/docs/components.md +87 -0
- package/docs/css.md +133 -0
- package/docs/defaults.md +72 -0
- package/docs/environment-detection.md +79 -0
- package/docs/extension.md +93 -0
- package/docs/hooks.md +111 -0
- package/docs/icons.md +47 -0
- package/docs/index.md +291 -0
- package/docs/logging.md +33 -0
- package/docs/managers.md +100 -0
- package/docs/offscreen.md +57 -0
- package/docs/publishing.md +182 -0
- package/docs/shared/agent-docs.md +89 -0
- package/docs/shared/analytics.md +612 -0
- package/docs/shared/brands.md +51 -0
- package/docs/shared/breaking-changes.md +497 -0
- package/docs/shared/config.md +1387 -0
- package/docs/shared/deploys.md +215 -0
- package/docs/shared/icons.md +201 -0
- package/docs/shared/local-dev.md +147 -0
- package/docs/shared/logging.md +202 -0
- package/docs/shared/monitoring.md +153 -0
- package/docs/shared/publishing.md +183 -0
- package/docs/shared/rulings.md +34 -0
- package/docs/shared/testing.md +147 -0
- package/docs/shared/theming.md +604 -0
- package/docs/shared/translation.md +291 -0
- package/docs/shared/updates.md +61 -0
- package/docs/templating.md +66 -0
- package/docs/test-boot-layer.md +143 -0
- package/docs/test-framework.md +411 -0
- package/docs/themes.md +89 -0
- package/docs/translations.md +73 -0
- package/docs/verts.md +67 -0
- package/docs/xss-prevention.md +95 -0
- 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
|
+
});
|
package/dist/options.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
|
+
|
|
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,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');
|