@omega.js/desktop 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 +166 -0
- package/bin/omega +2 -0
- package/bin/omega-desktop +2 -0
- package/bin/omg +2 -0
- package/dist/assets/css/core/_fontawesome.scss +146 -0
- package/dist/assets/css/core/_initialize.scss +38 -0
- package/dist/assets/css/omega-desktop.scss +39 -0
- package/dist/assets/css/shell/_index.scss +207 -0
- package/dist/assets/css/tokens/_index.scss +166 -0
- package/dist/assets/js/bootstrap.bundle.js +1 -0
- package/dist/assets/js/core/app-shell.js +136 -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/build.js +249 -0
- package/dist/cli-run.js +34 -0
- package/dist/cli.js +49 -0
- package/dist/commands/build.js +32 -0
- package/dist/commands/cdp/capture.js +91 -0
- package/dist/commands/cdp/client.js +140 -0
- package/dist/commands/cdp/eval.js +20 -0
- package/dist/commands/cdp/quit.js +84 -0
- package/dist/commands/cdp/relaunch.js +62 -0
- package/dist/commands/cdp/shot.js +20 -0
- package/dist/commands/cdp/status.js +38 -0
- package/dist/commands/cdp/theme.js +21 -0
- package/dist/commands/cdp.js +53 -0
- package/dist/commands/clean.js +34 -0
- package/dist/commands/deploy.js +75 -0
- package/dist/commands/finalize-release.js +238 -0
- package/dist/commands/install.js +37 -0
- package/dist/commands/launch.js +150 -0
- package/dist/commands/lib/dependencies.js +35 -0
- package/dist/commands/lib/deploy-precheck.js +117 -0
- package/dist/commands/lib/ensure-target.js +300 -0
- package/dist/commands/logs.js +185 -0
- package/dist/commands/package.js +31 -0
- package/dist/commands/publish.js +34 -0
- package/dist/commands/push-secrets.js +141 -0
- package/dist/commands/release.js +286 -0
- package/dist/commands/runner.js +1874 -0
- package/dist/commands/sign-windows.js +563 -0
- package/dist/commands/test.js +121 -0
- package/dist/commands/update.js +21 -0
- package/dist/commands/validate-certs.js +238 -0
- package/dist/commands/version.js +9 -0
- package/dist/config/page-template.html +35 -0
- package/dist/defaults/.github/workflows/build.yml +276 -0
- package/dist/defaults/AGENTS.md +109 -0
- package/dist/defaults/CHANGELOG.md +15 -0
- package/dist/defaults/CLAUDE.md +1 -0
- package/dist/defaults/_.gitignore +24 -0
- package/dist/defaults/_mas/README.md +49 -0
- package/dist/defaults/_mas/entitlements.mas.inherit.plist +12 -0
- package/dist/defaults/_mas/entitlements.mas.loginhelper.plist +8 -0
- package/dist/defaults/_mas/entitlements.mas.plist +33 -0
- package/dist/defaults/config/certs/.gitkeep +0 -0
- package/dist/defaults/config/certs/README.md +60 -0
- package/dist/defaults/config/icons/macos/dmg.png +0 -0
- package/dist/defaults/config/icons/macos/icon.png +0 -0
- package/dist/defaults/config/icons/macos/tray.png +0 -0
- package/dist/defaults/config/icons/windows/icon.png +0 -0
- package/dist/defaults/config/omega.json5 +279 -0
- package/dist/defaults/docs/README.md +17 -0
- package/dist/defaults/gulpfile.js +6 -0
- package/dist/defaults/hooks/build/post.js +9 -0
- package/dist/defaults/hooks/build/pre.js +9 -0
- package/dist/defaults/hooks/notarize/post.js +16 -0
- package/dist/defaults/hooks/release/post.js +9 -0
- package/dist/defaults/hooks/release/pre.js +9 -0
- package/dist/defaults/src/assets/js/components/about/index.js +10 -0
- package/dist/defaults/src/assets/js/components/main/index.js +14 -0
- package/dist/defaults/src/assets/js/components/settings/index.js +10 -0
- package/dist/defaults/src/assets/scss/main.scss +34 -0
- package/dist/defaults/src/assets/scss/pages/about.scss +3 -0
- package/dist/defaults/src/assets/scss/pages/main.scss +4 -0
- package/dist/defaults/src/assets/scss/pages/settings.scss +3 -0
- package/dist/defaults/src/integrations/context-menu/index.js +60 -0
- package/dist/defaults/src/integrations/menu/index.js +58 -0
- package/dist/defaults/src/integrations/tray/index.js +60 -0
- package/dist/defaults/src/main.js +78 -0
- package/dist/defaults/src/preload.js +15 -0
- package/dist/defaults/src/views/about/index.html +3 -0
- package/dist/defaults/src/views/main/index.html +8 -0
- package/dist/defaults/src/views/settings/index.html +3 -0
- package/dist/defaults/test/README.md +41 -0
- package/dist/defaults/test/_init.js +10 -0
- package/dist/gulp/main.js +144 -0
- package/dist/gulp/tasks/audit.js +82 -0
- package/dist/gulp/tasks/build-config.js +445 -0
- package/dist/gulp/tasks/bundle.js +451 -0
- package/dist/gulp/tasks/defaults.js +20 -0
- package/dist/gulp/tasks/distribute.js +8 -0
- package/dist/gulp/tasks/html.js +95 -0
- package/dist/gulp/tasks/package-quick.js +102 -0
- package/dist/gulp/tasks/package.js +53 -0
- package/dist/gulp/tasks/release.js +57 -0
- package/dist/gulp/tasks/sass.js +82 -0
- package/dist/gulp/tasks/serve.js +191 -0
- package/dist/hooks/notarize.js +70 -0
- package/dist/index.js +14 -0
- package/dist/lib/_menu-mixin.js +199 -0
- package/dist/lib/analytics.js +360 -0
- package/dist/lib/app-state.js +220 -0
- package/dist/lib/auth-flow.js +160 -0
- package/dist/lib/auth-persistence.js +207 -0
- package/dist/lib/auto-updater.js +752 -0
- package/dist/lib/client-bridge.js +371 -0
- package/dist/lib/context-menu.js +302 -0
- package/dist/lib/context.js +162 -0
- package/dist/lib/deep-link.js +370 -0
- package/dist/lib/fontawesome.js +203 -0
- package/dist/lib/ipc.js +169 -0
- package/dist/lib/logger-lite.js +259 -0
- package/dist/lib/logger.js +4 -0
- package/dist/lib/menu.js +521 -0
- package/dist/lib/protocol.js +85 -0
- package/dist/lib/remote-config.js +224 -0
- package/dist/lib/remote-scripts.js +158 -0
- package/dist/lib/restart-manager/index.js +550 -0
- package/dist/lib/restart-manager/install.js +353 -0
- package/dist/lib/restart-manager/protocol.js +274 -0
- package/dist/lib/sign-helpers/auto-unlock.js +95 -0
- package/dist/lib/sign-helpers/entitlements.js +98 -0
- package/dist/lib/sign-helpers/resolve-icons.js +171 -0
- package/dist/lib/sign-helpers/sign-events.js +75 -0
- package/dist/lib/sign-helpers/update-info.js +186 -0
- package/dist/lib/startup.js +214 -0
- package/dist/lib/storage.js +193 -0
- package/dist/lib/templating.js +85 -0
- package/dist/lib/theme.js +173 -0
- package/dist/lib/tray.js +414 -0
- package/dist/lib/usage.js +141 -0
- package/dist/lib/window-manager.js +509 -0
- package/dist/main.js +542 -0
- package/dist/omega-bin.js +6 -0
- package/dist/preload.js +241 -0
- package/dist/renderer.js +456 -0
- package/dist/test/assert.js +4 -0
- package/dist/test/fixtures/consumer-app/config/omega.json5 +39 -0
- package/dist/test/fixtures/consumer-app/package.json +13 -0
- package/dist/test/fixtures/consumer-app/src/assets/js/components/main/index.js +11 -0
- package/dist/test/fixtures/consumer-app/src/assets/scss/main.scss +3 -0
- package/dist/test/fixtures/consumer-app/src/main.js +17 -0
- package/dist/test/fixtures/consumer-app/src/preload.js +4 -0
- package/dist/test/fixtures/consumer-app/src/views/main/index.html +4 -0
- package/dist/test/harness/boot-entry.js +237 -0
- package/dist/test/harness/main-entry.js +494 -0
- package/dist/test/harness/package.json +6 -0
- package/dist/test/harness/renderer-entry.js +173 -0
- package/dist/test/harness/renderer-preload.js +310 -0
- package/dist/test/harness/renderer.html +12 -0
- package/dist/test/index.js +65 -0
- package/dist/test/runner.js +99 -0
- package/dist/test/runners/boot.js +414 -0
- package/dist/test/runners/electron.js +92 -0
- package/dist/test/runners/render-event.js +46 -0
- package/dist/test/suites/boot/build-isolation.test.js +54 -0
- package/dist/test/suites/boot/consumer-app-boots.test.js +99 -0
- package/dist/test/suites/boot/restart-manager.test.js +38 -0
- package/dist/test/suites/boot/storage-bundled.test.js +59 -0
- package/dist/test/suites/boot/theme.test.js +68 -0
- package/dist/test/suites/boot/view-suite.test.js +47 -0
- package/dist/test/suites/build/attach-log-file.test.js +99 -0
- package/dist/test/suites/build/audit.test.js +271 -0
- package/dist/test/suites/build/boot-fixture.test.js +48 -0
- package/dist/test/suites/build/build-config.test.js +457 -0
- package/dist/test/suites/build/build-verbs.test.js +156 -0
- package/dist/test/suites/build/build-workflow-jobs.test.js +55 -0
- package/dist/test/suites/build/cdp.test.js +89 -0
- package/dist/test/suites/build/cli.test.js +135 -0
- package/dist/test/suites/build/config-schema.test.js +133 -0
- package/dist/test/suites/build/defaults-scaffold.test.js +192 -0
- package/dist/test/suites/build/deliver-certs.test.js +95 -0
- package/dist/test/suites/build/derive-signing-env.test.js +122 -0
- package/dist/test/suites/build/electron-node-version.test.js +49 -0
- package/dist/test/suites/build/electron-targets.test.js +92 -0
- package/dist/test/suites/build/ensure-target.test.js +131 -0
- package/dist/test/suites/build/entitlements.test.js +107 -0
- package/dist/test/suites/build/env-delivery.test.js +166 -0
- package/dist/test/suites/build/env-watch.test.js +86 -0
- package/dist/test/suites/build/exports.test.js +63 -0
- package/dist/test/suites/build/finalize-release.test.js +152 -0
- package/dist/test/suites/build/format-fetch-error.test.js +85 -0
- package/dist/test/suites/build/framework-deps.test.js +173 -0
- package/dist/test/suites/build/get-config.test.js +137 -0
- package/dist/test/suites/build/github-utils.test.js +54 -0
- package/dist/test/suites/build/icon-sheet.test.js +62 -0
- package/dist/test/suites/build/license-stamp.test.js +63 -0
- package/dist/test/suites/build/logger-lite.test.js +148 -0
- package/dist/test/suites/build/logs-command.test.js +226 -0
- package/dist/test/suites/build/manager.test.js +193 -0
- package/dist/test/suites/build/menu-mixin.test.js +130 -0
- package/dist/test/suites/build/merge-line-files.test.js +230 -0
- package/dist/test/suites/build/omega-shell.test.js +94 -0
- package/dist/test/suites/build/omega-tokens.test.js +64 -0
- package/dist/test/suites/build/project-scripts-deps.test.js +90 -0
- package/dist/test/suites/build/push-secrets.test.js +226 -0
- package/dist/test/suites/build/release-pipeline.test.js +365 -0
- package/dist/test/suites/build/renderer-auth-bridge.test.js +158 -0
- package/dist/test/suites/build/renderer-entry-key.test.js +37 -0
- package/dist/test/suites/build/renderer-node-shims.test.js +125 -0
- package/dist/test/suites/build/resolve-icons.test.js +296 -0
- package/dist/test/suites/build/resolve-signing-cert.test.js +342 -0
- package/dist/test/suites/build/restart-manager-install.test.js +178 -0
- package/dist/test/suites/build/restart-manager-protocol.test.js +158 -0
- package/dist/test/suites/build/run-consumer-hook.test.js +137 -0
- package/dist/test/suites/build/runner.test.js +2599 -0
- package/dist/test/suites/build/sanitize-signing-env.test.js +98 -0
- package/dist/test/suites/build/sanitize-url.test.js +78 -0
- package/dist/test/suites/build/secure-remote-url.test.js +42 -0
- package/dist/test/suites/build/sentry.test.js +89 -0
- package/dist/test/suites/build/serve-resolve-electron.test.js +58 -0
- package/dist/test/suites/build/setup-scripts.test.js +172 -0
- package/dist/test/suites/build/sign-events.test.js +90 -0
- package/dist/test/suites/build/sign-windows-e2e.test.js +302 -0
- package/dist/test/suites/build/sign-windows.test.js +313 -0
- package/dist/test/suites/build/strip-dev-blocks.test.js +116 -0
- package/dist/test/suites/build/templating.test.js +95 -0
- package/dist/test/suites/build/test-discovery.test.js +64 -0
- package/dist/test/suites/build/test-stealth.test.js +83 -0
- package/dist/test/suites/build/test-target-no-match.test.js +119 -0
- package/dist/test/suites/build/update-info.test.js +224 -0
- package/dist/test/suites/build/url-helpers.test.js +289 -0
- package/dist/test/suites/build/validate-certs.test.js +103 -0
- package/dist/test/suites/build/validate-config.test.js +90 -0
- package/dist/test/suites/build/verb-logs.test.js +43 -0
- package/dist/test/suites/build/wave5-pins.test.js +35 -0
- package/dist/test/suites/main/analytics.test.js +364 -0
- package/dist/test/suites/main/app-state.test.js +197 -0
- package/dist/test/suites/main/auth-flow.test.js +196 -0
- package/dist/test/suites/main/auth-persistence.test.js +167 -0
- package/dist/test/suites/main/auto-updater.test.js +1138 -0
- package/dist/test/suites/main/boot-sequence.test.js +77 -0
- package/dist/test/suites/main/client-bridge.integration.test.js +134 -0
- package/dist/test/suites/main/client-bridge.test.js +249 -0
- package/dist/test/suites/main/context-menu.test.js +365 -0
- package/dist/test/suites/main/context.test.js +155 -0
- package/dist/test/suites/main/deep-link.test.js +288 -0
- package/dist/test/suites/main/epipe-handler.test.js +40 -0
- package/dist/test/suites/main/fontawesome.test.js +147 -0
- package/dist/test/suites/main/harness-cdp.test.js +49 -0
- package/dist/test/suites/main/ipc.test.js +165 -0
- package/dist/test/suites/main/menu.test.js +419 -0
- package/dist/test/suites/main/protocol.test.js +77 -0
- package/dist/test/suites/main/remote-config.test.js +189 -0
- package/dist/test/suites/main/remote-scripts.test.js +276 -0
- package/dist/test/suites/main/restart-manager.test.js +328 -0
- package/dist/test/suites/main/startup-paths-and-ua.test.js +99 -0
- package/dist/test/suites/main/startup.test.js +129 -0
- package/dist/test/suites/main/stealth-window.test.js +74 -0
- package/dist/test/suites/main/storage.test.js +89 -0
- package/dist/test/suites/main/theme.test.js +137 -0
- package/dist/test/suites/main/tray.test.js +322 -0
- package/dist/test/suites/main/truncate-on-boot.test.js +22 -0
- package/dist/test/suites/main/url-helpers.test.js +429 -0
- package/dist/test/suites/main/usage.test.js +127 -0
- package/dist/test/suites/main/window-bounds.test.js +169 -0
- package/dist/test/suites/main/window-manager.test.js +233 -0
- package/dist/test/suites/renderer/analytics-bridge.test.js +128 -0
- package/dist/test/suites/renderer/cross-context-helpers.test.js +131 -0
- package/dist/test/suites/renderer/fontawesome.test.js +190 -0
- package/dist/test/suites/renderer/round-trip.test.js +107 -0
- package/dist/test/suites/renderer/theme.test.js +118 -0
- package/dist/test/suites/renderer/tooltips.test.js +166 -0
- package/dist/test/suites/renderer/verts.test.js +100 -0
- package/dist/test/suites/renderer/window-em-surface.test.js +107 -0
- package/dist/test/utils/dist-snapshot.js +36 -0
- package/dist/test/utils/extended-mode-warning.js +13 -0
- package/dist/utils/app-root.js +28 -0
- package/dist/utils/attach-log-file.js +4 -0
- package/dist/utils/build-pipeline.js +58 -0
- package/dist/utils/deliver-certs.js +69 -0
- package/dist/utils/derive-signing-env.js +56 -0
- package/dist/utils/dist-root.js +21 -0
- package/dist/utils/electron-node-version.js +48 -0
- package/dist/utils/electron-targets.js +72 -0
- package/dist/utils/format-fetch-error.js +38 -0
- package/dist/utils/github.js +73 -0
- package/dist/utils/load-consumer-file.js +26 -0
- package/dist/utils/merge-line-files.js +5 -0
- package/dist/utils/mode-helpers.js +147 -0
- package/dist/utils/resolve-signing-cert.js +175 -0
- package/dist/utils/run-consumer-hook.js +38 -0
- package/dist/utils/runner-env.js +687 -0
- package/dist/utils/safe-install.js +4 -0
- package/dist/utils/sanitize-signing-env.js +45 -0
- package/dist/utils/sanitize-url.js +28 -0
- package/dist/utils/secure-remote-url.js +25 -0
- package/dist/utils/stealth-window.js +37 -0
- package/dist/utils/test-stealth.js +29 -0
- package/dist/utils/url-helpers.js +169 -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/analytics/adapters/ga4.js +26 -0
- package/dist/vendor/analytics/adapters/meta.js +26 -0
- package/dist/vendor/analytics/adapters/resolve.js +130 -0
- package/dist/vendor/analytics/adapters/tiktok.js +27 -0
- package/dist/vendor/analytics/catalog.js +908 -0
- package/dist/vendor/analytics/consent.js +49 -0
- package/dist/vendor/analytics/core.js +141 -0
- package/dist/vendor/analytics/identity.js +136 -0
- package/dist/vendor/analytics/index.js +170 -0
- package/dist/vendor/analytics/logger.js +40 -0
- package/dist/vendor/analytics/transports/browser.js +110 -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/certs.js +199 -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/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/prompt.js +187 -0
- package/dist/vendor/devkit/safe-install.js +18 -0
- package/dist/vendor/devkit/scaffold-guard.js +96 -0
- package/dist/vendor/devkit/stop-signals.js +28 -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/update.js +569 -0
- package/dist/vendor/monitoring/core.js +180 -0
- package/dist/vendor/monitoring/env.js +49 -0
- package/dist/vendor/monitoring/index.js +28 -0
- package/dist/vendor/monitoring/logger.js +39 -0
- package/dist/vendor/monitoring/main.js +99 -0
- package/dist/vendor/monitoring/preload.js +45 -0
- package/dist/vendor/monitoring/renderer.js +87 -0
- package/docs/analytics.md +140 -0
- package/docs/app-state.md +92 -0
- package/docs/audit.md +69 -0
- package/docs/auto-updater.md +243 -0
- package/docs/boot-sequence.md +39 -0
- package/docs/build-system.md +161 -0
- package/docs/cdp-debugging.md +169 -0
- package/docs/client-bridge.md +267 -0
- package/docs/common-mistakes.md +21 -0
- package/docs/config-schema.md +120 -0
- package/docs/context-menu.md +112 -0
- package/docs/context.md +81 -0
- package/docs/css.md +84 -0
- package/docs/deep-link.md +178 -0
- package/docs/environment-detection.md +104 -0
- package/docs/fontawesome.md +107 -0
- package/docs/hooks.md +87 -0
- package/docs/icons.md +79 -0
- package/docs/index.md +279 -0
- package/docs/installer-options.md +162 -0
- package/docs/ipc.md +61 -0
- package/docs/lib-modules.md +53 -0
- package/docs/logging.md +229 -0
- package/docs/menu.md +160 -0
- package/docs/releasing.md +229 -0
- package/docs/remote-config.md +118 -0
- package/docs/remote-scripts.md +144 -0
- package/docs/restart-manager.md +144 -0
- package/docs/runner.md +253 -0
- package/docs/sentry.md +97 -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/signing.md +267 -0
- package/docs/startup.md +142 -0
- package/docs/storage.md +59 -0
- package/docs/templating.md +101 -0
- package/docs/test-boot-layer.md +157 -0
- package/docs/test-framework.md +357 -0
- package/docs/themes.md +135 -0
- package/docs/tooltips.md +99 -0
- package/docs/tray.md +164 -0
- package/docs/usage.md +58 -0
- package/docs/verts.md +62 -0
- package/docs/windows.md +149 -0
- package/package.json +184 -0
- package/scripts/sync-nvmrc.js +100 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// Optional consumer extension hook — called AFTER the build pipeline finishes, BEFORE
|
|
2
|
+
// electron-builder packages anything. No-op by default.
|
|
3
|
+
//
|
|
4
|
+
// Use this for: post-build asset processing, additional file copies into dist/, generating
|
|
5
|
+
// auxiliary files (changelog, license bundling, etc.).
|
|
6
|
+
|
|
7
|
+
module.exports = async (ctx) => {
|
|
8
|
+
// ctx = { manager, mode, projectRoot, distDir }
|
|
9
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// Optional consumer extension hook — called BEFORE the build pipeline runs (defaults →
|
|
2
|
+
// distribute → bundle → sass → html → audit → build-config). No-op by default.
|
|
3
|
+
//
|
|
4
|
+
// Use this for: pre-flight checks, generating build-time artifacts, mutating config before
|
|
5
|
+
// the bundle / build-config tasks see it.
|
|
6
|
+
|
|
7
|
+
module.exports = async (ctx) => {
|
|
8
|
+
// ctx = { manager, mode, projectRoot }
|
|
9
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// Optional consumer extension hook — called AFTER @omega.js/desktop's built-in macOS
|
|
2
|
+
// notarization has already run. No-op by default.
|
|
3
|
+
//
|
|
4
|
+
// Use this for: custom stapling, archiving the notarized .app, notifications, uploading the
|
|
5
|
+
// notarized artifact to a secondary location.
|
|
6
|
+
//
|
|
7
|
+
// Receives the full electron-builder afterSign context.
|
|
8
|
+
//
|
|
9
|
+
// IMPORTANT: This file is NOT the notarization entrypoint. @omega.js/desktop's electron-builder integration
|
|
10
|
+
// uses its own internal notarize hook as the afterSign entrypoint, then calls into this file
|
|
11
|
+
// as a final step. You can never accidentally break notarization by editing this — at worst,
|
|
12
|
+
// a thrown error here fails the build loudly.
|
|
13
|
+
|
|
14
|
+
module.exports = async (context) => {
|
|
15
|
+
// No-op by default. Add your post-notarize logic here.
|
|
16
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// Optional consumer extension hook — called AFTER the release publishes successfully (after
|
|
2
|
+
// electron-builder finishes). No-op by default.
|
|
3
|
+
//
|
|
4
|
+
// Use this for: posting to Slack/Discord, kicking off downstream workflows, updating a
|
|
5
|
+
// changelog page on your marketing site, sending notification emails.
|
|
6
|
+
|
|
7
|
+
module.exports = async (ctx) => {
|
|
8
|
+
// ctx = { manager, projectRoot, artifacts } // artifacts: array of release/ paths
|
|
9
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// Optional consumer extension hook — called BEFORE electron-builder runs the sign + notarize
|
|
2
|
+
// + publish flow. No-op by default.
|
|
3
|
+
//
|
|
4
|
+
// Use this for: bumping version files in extra places, last-mile validations, archiving the
|
|
5
|
+
// previous release before overwriting.
|
|
6
|
+
|
|
7
|
+
module.exports = async (ctx) => {
|
|
8
|
+
// ctx = { manager, projectRoot }
|
|
9
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Main window renderer entry.
|
|
2
|
+
const Manager = require('@omega.js/desktop/renderer');
|
|
3
|
+
|
|
4
|
+
const manager = new Manager();
|
|
5
|
+
|
|
6
|
+
manager.initialize()
|
|
7
|
+
.then(() => {
|
|
8
|
+
const { logger, ipc, storage, omega } = manager;
|
|
9
|
+
|
|
10
|
+
// Add your main-window UI logic here.
|
|
11
|
+
// ...
|
|
12
|
+
|
|
13
|
+
logger.log('Main window initialized!');
|
|
14
|
+
});
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// ============================================
|
|
2
|
+
// Theme Configuration
|
|
3
|
+
// ============================================
|
|
4
|
+
// Customize Classy theme variables here. See:
|
|
5
|
+
// node_modules/@omega.js/desktop/dist/assets/themes/classy/_config.scss for all available variables.
|
|
6
|
+
|
|
7
|
+
@use 'omega-desktop' as * with (
|
|
8
|
+
// ============================================
|
|
9
|
+
// Brand Colors
|
|
10
|
+
// ============================================
|
|
11
|
+
$primary: #2563EB,
|
|
12
|
+
// $secondary: #6C757D,
|
|
13
|
+
|
|
14
|
+
// ============================================
|
|
15
|
+
// Backgrounds
|
|
16
|
+
// ============================================
|
|
17
|
+
// $classy-bg-light: #FFFFFF,
|
|
18
|
+
// $classy-bg-dark: #212529,
|
|
19
|
+
|
|
20
|
+
// ============================================
|
|
21
|
+
// Typography (uncomment to customize)
|
|
22
|
+
// ============================================
|
|
23
|
+
// $font-family-sans-serif: -apple-system, sans-serif,
|
|
24
|
+
|
|
25
|
+
// ============================================
|
|
26
|
+
// Borders (uncomment to customize)
|
|
27
|
+
// ============================================
|
|
28
|
+
// $border-radius: 0.5rem,
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
// ============================================
|
|
32
|
+
// Custom Global Styles
|
|
33
|
+
// ============================================
|
|
34
|
+
// Add your project-specific styles below — applied on every page.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// Context-menu definition. Called by @omega.js/desktop EVERY time the user right-clicks.
|
|
2
|
+
//
|
|
3
|
+
// `manager` — the running @omega.js/desktop Manager.
|
|
4
|
+
// `menu` — per-event builder API + id-path API.
|
|
5
|
+
// `params` — Electron's context-menu params (selectionText, isEditable, linkURL,
|
|
6
|
+
// srcURL, mediaType, editFlags, x, y, etc.).
|
|
7
|
+
// `webContents` — the webContents that fired the event.
|
|
8
|
+
//
|
|
9
|
+
// This file is OPTIONAL — delete it and @omega.js/desktop still ships a working context menu.
|
|
10
|
+
//
|
|
11
|
+
// @omega.js/desktop ships a default template (built per-event from params) with these ids (flat):
|
|
12
|
+
// undo, redo — when params.editFlags allow
|
|
13
|
+
// cut, copy, paste, paste-and-match-style,
|
|
14
|
+
// select-all — when params.isEditable
|
|
15
|
+
// copy — when params.selectionText (read-only)
|
|
16
|
+
// open-link, copy-link — when params.linkURL
|
|
17
|
+
// reload — always
|
|
18
|
+
// inspect, toggle-devtools — dev mode only
|
|
19
|
+
|
|
20
|
+
module.exports = ({ manager, menu, params, webContents }) => {
|
|
21
|
+
// Start from @omega.js/desktop's default template. Don't add anything by default — leave it
|
|
22
|
+
// identical to what the framework would do without this file.
|
|
23
|
+
menu.useDefaults();
|
|
24
|
+
|
|
25
|
+
// ───────── Examples (uncomment to use) ─────────
|
|
26
|
+
//
|
|
27
|
+
// // Add "Search Google" when text is selected:
|
|
28
|
+
// if (params.selectionText) {
|
|
29
|
+
// menu.insertAfter('copy', {
|
|
30
|
+
// id: 'search-google',
|
|
31
|
+
// label: `Search "${params.selectionText.slice(0, 20)}"`,
|
|
32
|
+
// click: () => {
|
|
33
|
+
// const { shell } = require('electron');
|
|
34
|
+
// shell.openExternal(`https://google.com/search?q=${encodeURIComponent(params.selectionText)}`);
|
|
35
|
+
// },
|
|
36
|
+
// });
|
|
37
|
+
// }
|
|
38
|
+
//
|
|
39
|
+
// // Remove the dev-tools entry (even in development):
|
|
40
|
+
// menu.remove('toggle-devtools');
|
|
41
|
+
//
|
|
42
|
+
// // Hide instead of remove (visible:false):
|
|
43
|
+
// menu.hide('inspect');
|
|
44
|
+
//
|
|
45
|
+
// // Disable Paste without removing it:
|
|
46
|
+
// menu.enable('paste', false);
|
|
47
|
+
//
|
|
48
|
+
// // Add an "Open in External Editor" item only on links:
|
|
49
|
+
// if (params.linkURL) {
|
|
50
|
+
// menu.insertAfter('open-link', {
|
|
51
|
+
// id: 'open-in-editor',
|
|
52
|
+
// label: 'Open in External Editor',
|
|
53
|
+
// click: () => { /* ... */ },
|
|
54
|
+
// });
|
|
55
|
+
// }
|
|
56
|
+
//
|
|
57
|
+
// // Build entirely from scratch instead of useDefaults():
|
|
58
|
+
// menu.clear();
|
|
59
|
+
// menu.item({ id: 'custom', label: 'Custom Action', click: () => {} });
|
|
60
|
+
};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
// Application menu definition. Called by @omega.js/desktop during boot.
|
|
2
|
+
//
|
|
3
|
+
// `manager` — the running @omega.js/desktop Manager.
|
|
4
|
+
// `menu` — builder API + id-path API (find/update/remove/insertAfter/etc.).
|
|
5
|
+
// `defaults` — the platform-aware default template (an array you can mutate manually if needed).
|
|
6
|
+
//
|
|
7
|
+
// This file is OPTIONAL — delete it and @omega.js/desktop still ships a working application menu.
|
|
8
|
+
//
|
|
9
|
+
// @omega.js/desktop ships a default menu template with stable id paths. Highlights:
|
|
10
|
+
// main/about, main/check-for-updates, main/preferences (hidden), main/services,
|
|
11
|
+
// main/hide, main/relaunch, main/quit (mac)
|
|
12
|
+
// file/close (mac), file/preferences, file/relaunch, file/quit (win/linux)
|
|
13
|
+
// edit/undo, edit/redo, edit/cut, edit/copy, edit/paste, edit/select-all
|
|
14
|
+
// view/reload, view/zoom-in, view/zoom-out, view/toggle-fullscreen
|
|
15
|
+
// view/developer/{toggle-devtools, inspect-elements, force-reload} (dev only)
|
|
16
|
+
// window/minimize, window/zoom (mac), window/close (win/linux)
|
|
17
|
+
// help/check-for-updates (win/linux), help/website (when brand.url configured)
|
|
18
|
+
// development/{open-exe-folder, open-user-data, open-logs, open-app-config,
|
|
19
|
+
// test-error} (dev only)
|
|
20
|
+
|
|
21
|
+
module.exports = ({ manager, menu, defaults }) => {
|
|
22
|
+
// Start from the platform-appropriate default template. Don't add anything
|
|
23
|
+
// by default — leave it identical to what the framework would do without
|
|
24
|
+
// this file. Add your own customizations below.
|
|
25
|
+
menu.useDefaults();
|
|
26
|
+
|
|
27
|
+
// ───────── Examples (uncomment to use) ─────────
|
|
28
|
+
//
|
|
29
|
+
// // Show the Preferences item (hidden by default — flip its visibility once you
|
|
30
|
+
// // wire up your settings window):
|
|
31
|
+
// menu.show(process.platform === 'darwin' ? 'main/preferences' : 'file/preferences');
|
|
32
|
+
//
|
|
33
|
+
// // Insert your own item right after Check for Updates:
|
|
34
|
+
// menu.insertAfter('main/check-for-updates', {
|
|
35
|
+
// id: 'main/account',
|
|
36
|
+
// label: 'Account...',
|
|
37
|
+
// click: () => manager.windows.show('account'),
|
|
38
|
+
// });
|
|
39
|
+
//
|
|
40
|
+
// // Rename an existing item:
|
|
41
|
+
// menu.update('main/check-for-updates', { label: 'Get Latest Version' });
|
|
42
|
+
//
|
|
43
|
+
// // Remove an item entirely:
|
|
44
|
+
// menu.remove('view/reload');
|
|
45
|
+
//
|
|
46
|
+
// // Hide without removing (sets visible:false):
|
|
47
|
+
// menu.hide('main/services');
|
|
48
|
+
//
|
|
49
|
+
// // Add an entire new top-level menu:
|
|
50
|
+
// menu.menu('Tools', [
|
|
51
|
+
// { id: 'tools/sync', label: 'Sync Now', click: () => {} },
|
|
52
|
+
// { type: 'separator' },
|
|
53
|
+
// { id: 'tools/export', label: 'Export...', click: () => {} },
|
|
54
|
+
// ]);
|
|
55
|
+
//
|
|
56
|
+
// // Append into an existing submenu:
|
|
57
|
+
// menu.appendTo('view', { id: 'view/custom-zoom', label: 'Custom Zoom...', click: () => {} });
|
|
58
|
+
};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// Tray definition. Called by @omega.js/desktop during boot.
|
|
2
|
+
//
|
|
3
|
+
// `manager` — the running @omega.js/desktop Manager.
|
|
4
|
+
// `tray` — builder API + id-path API (find/update/remove/insertAfter/etc.).
|
|
5
|
+
//
|
|
6
|
+
// @omega.js/desktop auto-resolves the tray icon by convention (most specific wins):
|
|
7
|
+
// 1. config/icons/<platform>/tray.png (platform-specific override)
|
|
8
|
+
// 2. config/icons/global/tray.png (universal fallback for all platforms)
|
|
9
|
+
// 3. config/icons/<platform>/icon.png (slot fallback: tray → app icon)
|
|
10
|
+
// 4. @omega.js/desktop bundled default
|
|
11
|
+
// And auto-sets the tooltip to config.app.productName.
|
|
12
|
+
//
|
|
13
|
+
// Default items shipped by @omega.js/desktop (flat ids — no `tray/` prefix needed):
|
|
14
|
+
// title — disabled label showing the app name
|
|
15
|
+
// open — "Open <app>"
|
|
16
|
+
// check-for-updates — wired to autoUpdater (label/enabled auto-updated)
|
|
17
|
+
// website — opens brand.url in external browser (only if configured)
|
|
18
|
+
// quit — quits the app
|
|
19
|
+
//
|
|
20
|
+
// This file is OPTIONAL — delete it and @omega.js/desktop still ships a working tray.
|
|
21
|
+
|
|
22
|
+
module.exports = ({ manager, tray }) => {
|
|
23
|
+
// Use @omega.js/desktop's default template + auto-resolved icon + auto-resolved tooltip.
|
|
24
|
+
tray.useDefaults();
|
|
25
|
+
|
|
26
|
+
// ───────── Examples (uncomment to use) ─────────
|
|
27
|
+
//
|
|
28
|
+
// // Override the icon path (otherwise auto-resolved from config/icons/macos/tray.png).
|
|
29
|
+
// // On macOS, the filename MUST end in `Template.png` for OS dark-mode auto-inversion.
|
|
30
|
+
// tray.icon('src/assets/icons/my-trayTemplate.png');
|
|
31
|
+
//
|
|
32
|
+
// // Override the tooltip (otherwise = productName):
|
|
33
|
+
// tray.tooltip('My Custom Tooltip');
|
|
34
|
+
//
|
|
35
|
+
// // Add your own item right after "Open":
|
|
36
|
+
// tray.insertAfter('open', {
|
|
37
|
+
// id: 'dashboard',
|
|
38
|
+
// label: 'Open Dashboard',
|
|
39
|
+
// click: () => manager.windows.show('dashboard'),
|
|
40
|
+
// });
|
|
41
|
+
//
|
|
42
|
+
// // Rename an existing item:
|
|
43
|
+
// tray.update('open', { label: 'Show Window' });
|
|
44
|
+
//
|
|
45
|
+
// // Remove an item entirely:
|
|
46
|
+
// tray.remove('website');
|
|
47
|
+
//
|
|
48
|
+
// // Hide without removing (sets visible:false):
|
|
49
|
+
// tray.hide('check-for-updates');
|
|
50
|
+
//
|
|
51
|
+
// // Disable without removing (sets enabled:false):
|
|
52
|
+
// tray.enable('quit', false);
|
|
53
|
+
//
|
|
54
|
+
// // Add a submenu — items inside addressable as 'account/sign-out' etc.
|
|
55
|
+
// tray.insertBefore('quit', {
|
|
56
|
+
// id: 'account', label: 'Account', submenu: [
|
|
57
|
+
// { id: 'sign-out', label: 'Sign out', click: () => {} },
|
|
58
|
+
// ],
|
|
59
|
+
// });
|
|
60
|
+
};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// Main-process entry. Config is auto-loaded from config/omega.json5 (resolved for the desktop target).
|
|
2
|
+
const Manager = require('@omega.js/desktop/main');
|
|
3
|
+
|
|
4
|
+
const manager = new Manager();
|
|
5
|
+
|
|
6
|
+
manager.initialize()
|
|
7
|
+
.then(() => {
|
|
8
|
+
const { logger, ipc, storage, windows, tray, menu, contextMenu, deepLink, autoUpdater, omega, appState, sentry, startup } = manager;
|
|
9
|
+
|
|
10
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
11
|
+
// 1. Create the main window
|
|
12
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
13
|
+
// Always create `main` — @omega.js/desktop uses its presence in the registry to surface UI when
|
|
14
|
+
// the user double-clicks the dock icon (macOS) or relaunches the app (win/linux).
|
|
15
|
+
// In hidden launches (agent / menubar apps with `startup.mode = 'hidden'`, or auto-
|
|
16
|
+
// launch at login), pass `show: false` so the window is registered but invisible:
|
|
17
|
+
// tray icon shows immediately, dock icon + window appear when something explicitly
|
|
18
|
+
// calls `windows.show('main')` (or the user double-clicks the running app).
|
|
19
|
+
windows.create('main', { show: !startup.isLaunchHidden() });
|
|
20
|
+
|
|
21
|
+
// Hidden launches surface UI on demand. Example: a tray click that shows the window:
|
|
22
|
+
//
|
|
23
|
+
// tray.update('open', { click: () => windows.show('main') });
|
|
24
|
+
|
|
25
|
+
// ─── Window create() options (all optional; defaults shown) ───────────────────
|
|
26
|
+
// windows.create('main', {
|
|
27
|
+
// view: 'main', // src/views/<view>/index.html (defaults to name)
|
|
28
|
+
// width: 1024, // initial width
|
|
29
|
+
// height: 720, // initial height
|
|
30
|
+
// minWidth: 400,
|
|
31
|
+
// minHeight: 300,
|
|
32
|
+
// x: undefined, // initial x position (undefined = OS centers)
|
|
33
|
+
// y: undefined, // initial y position
|
|
34
|
+
// show: true, // auto-show on ready-to-show
|
|
35
|
+
// title: 'My App', // defaults to app.productName
|
|
36
|
+
// backgroundColor: '#ffffff', // pre-load bg color
|
|
37
|
+
// hideOnClose: true, // X-button hides instead of closes (default for 'main')
|
|
38
|
+
// persistBounds: true, // remember position+size across launches
|
|
39
|
+
// skipTaskbar: false, // suppress taskbar/dock entry for THIS window
|
|
40
|
+
// titleBar: 'inset', // 'inset' (mac/win native overlay) or 'native'
|
|
41
|
+
// titleBarOverlay: { // Windows-only: native overlay color/size
|
|
42
|
+
// color: '#ffffff',
|
|
43
|
+
// symbolColor: '#000000',
|
|
44
|
+
// height: 36,
|
|
45
|
+
// },
|
|
46
|
+
// });
|
|
47
|
+
|
|
48
|
+
// Secondary windows — built-in defaults (800x600, hideOnClose:false) are good
|
|
49
|
+
// enough for most cases. Examples:
|
|
50
|
+
//
|
|
51
|
+
// windows.create('settings'); // baked defaults
|
|
52
|
+
// windows.create('about', { width: 480, height: 360 }); // override at call site
|
|
53
|
+
|
|
54
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
55
|
+
// 2. Wire up your custom logic
|
|
56
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
57
|
+
|
|
58
|
+
// Deep links: handle custom routes from <brand-id>://your-route URLs.
|
|
59
|
+
// deepLink.on('settings/open', () => windows.create('settings'));
|
|
60
|
+
// deepLink.on('checkout/success', ({ params }) => { /* params.session_id, etc. */ });
|
|
61
|
+
|
|
62
|
+
// IPC handlers: respond to renderer requests.
|
|
63
|
+
// ipc.handle('my-app:get-data', async () => ({ ok: true, data: [] }));
|
|
64
|
+
|
|
65
|
+
// Disable framework features you don't want (idempotent, safe pre/post-init):
|
|
66
|
+
// tray.disable(); // no tray icon
|
|
67
|
+
// menu.disable(); // no application menu
|
|
68
|
+
// contextMenu.disable(); // no right-click menus
|
|
69
|
+
|
|
70
|
+
// Subscribe to auto-update status (renderer can also listen via window.desktop.autoUpdater):
|
|
71
|
+
// autoUpdater.onStatus((status) => logger.log('updater:', status.code));
|
|
72
|
+
|
|
73
|
+
// First-launch detection / launch counter / crash recovery:
|
|
74
|
+
// if (appState.isFirstLaunch()) { /* welcome flow */ }
|
|
75
|
+
// logger.log(`launch #${appState.getLaunchCount()}`);
|
|
76
|
+
|
|
77
|
+
logger.log('Main initialized!');
|
|
78
|
+
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Preload entry. Exposes window.desktop to the renderer via contextBridge.
|
|
2
|
+
const Manager = require('@omega.js/desktop/preload');
|
|
3
|
+
|
|
4
|
+
const manager = new Manager();
|
|
5
|
+
|
|
6
|
+
manager.initialize()
|
|
7
|
+
.then(() => {
|
|
8
|
+
const { logger } = manager;
|
|
9
|
+
|
|
10
|
+
// Add any extra contextBridge-exposed APIs here. Be careful — anything you expose runs
|
|
11
|
+
// in the renderer's context, so don't pass through privileged Node APIs without care.
|
|
12
|
+
// ...
|
|
13
|
+
|
|
14
|
+
logger.log('Preload initialized!');
|
|
15
|
+
});
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<div class="container py-5 text-center">
|
|
2
|
+
<h1 class="display-4 fw-bold mb-3">{{ app.productName }}</h1>
|
|
3
|
+
<p class="lead text-muted mb-4">Powered by @omega.js/desktop.</p>
|
|
4
|
+
<div class="d-flex gap-2 justify-content-center">
|
|
5
|
+
<button type="button" class="btn btn-primary" id="get-started">Get started</button>
|
|
6
|
+
<button type="button" class="btn btn-outline-secondary" id="open-docs">Documentation</button>
|
|
7
|
+
</div>
|
|
8
|
+
</div>
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Project tests
|
|
2
|
+
|
|
3
|
+
Drop your project test suites here. The framework auto-runs them alongside its own when you run `npx omega test`.
|
|
4
|
+
|
|
5
|
+
## Layers
|
|
6
|
+
|
|
7
|
+
Match the framework's four layers — OMEGA Desktop's test runner discovers files by the directory they sit in:
|
|
8
|
+
|
|
9
|
+
| Directory | Runtime | Use for |
|
|
10
|
+
|---|---|---|
|
|
11
|
+
| `test/build/` | Plain Node | Build-time logic, config validation, pure utilities |
|
|
12
|
+
| `test/main/` | Spawned Electron main process | IPC, storage, windows, anything that needs `app.*` |
|
|
13
|
+
| `test/renderer/` | Hidden BrowserWindow | Renderer-side logic, DOM, preload bridge (add `view: '<name>'` to load one of your `src/views/`) |
|
|
14
|
+
| `test/boot/` | Consumer's actual built bundle | End-to-end smoke tests (does the app boot, does main show a window, do IPC handlers register) |
|
|
15
|
+
|
|
16
|
+
A renderer suite that declares `view: '<name>'` runs against that view of YOUR app instead of the framework's harness page: the framework builds the app first, so the page carries your real preload, IPC handlers and config. It rides the boot lane, so `--layer=boot` (or the default `all`) runs it and `--layer=renderer` does not.
|
|
17
|
+
|
|
18
|
+
## Coverage
|
|
19
|
+
|
|
20
|
+
Every feature ships with tests at every layer it has a surface in — logic (`build`/`main`), UI (`renderer`), end-to-end (`boot`). Skip a layer only when the feature genuinely has no surface there; "the logic test covers it" does not excuse the UI test.
|
|
21
|
+
|
|
22
|
+
## Quick example
|
|
23
|
+
|
|
24
|
+
```js
|
|
25
|
+
// test/build/my-feature.test.js
|
|
26
|
+
const Manager = require('@omega.js/desktop/build');
|
|
27
|
+
|
|
28
|
+
module.exports = {
|
|
29
|
+
layer: 'build',
|
|
30
|
+
description: 'the project config carries a brand id',
|
|
31
|
+
run: (ctx) => {
|
|
32
|
+
ctx.expect(Manager.getConfig().brand.id).toBeTruthy();
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
That is the standalone form: one test per file. Every `run` receives `ctx`, whose `ctx.expect` is the Jest-compatible assertion library (there is nothing to require). The `suite`, `group` and array forms, and the `inspect` form the `boot` layer takes, are all in the reference below.
|
|
38
|
+
|
|
39
|
+
## See also
|
|
40
|
+
|
|
41
|
+
`node_modules/@omega.js/desktop/docs/test-framework.md` — full reference for the test framework (layers, assert API, fixtures, runner internals).
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test lifecycle hook for this project. Runs once before any suite (not a test itself).
|
|
3
|
+
* See @omega.js/desktop/docs/test-framework.md → "test/_init.js".
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
module.exports = ({ projectRoot }) => ({
|
|
7
|
+
// Seed any fixture a suite needs before it runs.
|
|
8
|
+
async setup() {
|
|
9
|
+
},
|
|
10
|
+
});
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
// Strip ELECTRON_RUN_AS_NODE — see bin/omega-desktop for the full story. Belt-and-suspenders
|
|
2
|
+
// at the gulp boundary too because gulp can be invoked outside of mgr (e.g. `npx gulp build`).
|
|
3
|
+
delete process.env.ELECTRON_RUN_AS_NODE;
|
|
4
|
+
|
|
5
|
+
// Libraries
|
|
6
|
+
const Manager = new (require('../build.js'));
|
|
7
|
+
const logger = Manager.logger('main');
|
|
8
|
+
const argv = Manager.getArguments();
|
|
9
|
+
const { series, parallel } = require('gulp');
|
|
10
|
+
const path = require('path');
|
|
11
|
+
const glob = require('glob').globSync;
|
|
12
|
+
|
|
13
|
+
// Load packages
|
|
14
|
+
const package = Manager.getPackage('main');
|
|
15
|
+
const project = Manager.getPackage('project');
|
|
16
|
+
const projectRoot = Manager.getRootPath('project');
|
|
17
|
+
|
|
18
|
+
// Resolve the .env cascade from the project root (shell > app > brand > company).
|
|
19
|
+
// `target` delivers the schema's `deliverAs` renames into process.env (#678);
|
|
20
|
+
// gulp can be invoked outside the CLI (`npx gulp build`), so it asks here too.
|
|
21
|
+
require('../vendor/config/index.js').loadEnv(projectRoot, { target: 'desktop' });
|
|
22
|
+
|
|
23
|
+
// Empty-string signing placeholders (CSC_LINK="" etc. from the .env template)
|
|
24
|
+
// must read as UNSET — app-builder-lib only null-checks and would resolve ''
|
|
25
|
+
// to the project root ("<projectRoot> not a file"). See utils/sanitize-signing-env.js.
|
|
26
|
+
const sanitizedSigningKeys = require('../utils/sanitize-signing-env.js')(process.env);
|
|
27
|
+
if (sanitizedSigningKeys.length) {
|
|
28
|
+
logger.log(`Ignoring empty signing env placeholders: ${sanitizedSigningKeys.join(', ')}`);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// Tee all stdout/stderr to <projectRoot>/logs/<dev|build>.log for easy `tail -f` / grep / Claude
|
|
32
|
+
// inspection. build.log for production builds/packages (OMEGA_BUILD_MODE=true), dev.log for `npm start`.
|
|
33
|
+
// Disable via OMEGA_LOG_FILE=false. Override path via OMEGA_LOG_FILE=<path>.
|
|
34
|
+
const attachLogFile = require('../utils/attach-log-file.js');
|
|
35
|
+
const logFileEnv = process.env.OMEGA_LOG_FILE;
|
|
36
|
+
if (logFileEnv !== 'false' && logFileEnv !== '0') {
|
|
37
|
+
const defaultName = Manager.isBuildMode() ? 'build.log' : 'dev.log';
|
|
38
|
+
const logPath = (logFileEnv && logFileEnv !== 'true') ? logFileEnv : path.join(projectRoot, 'logs', defaultName);
|
|
39
|
+
attachLogFile(logPath);
|
|
40
|
+
logger.log(`Logs tee'd to ${logPath}`);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Signing certificate lookup: explicit CSC_LINK → the brand's gitignored
|
|
44
|
+
// .omega/certificates tree → the Keychain (the default, and what a tree-less
|
|
45
|
+
// setup keeps getting). Runs AFTER the log tee so the chosen source and reason
|
|
46
|
+
// land in build.log — the line a CI signing failure is diagnosed from.
|
|
47
|
+
// See utils/resolve-signing-cert.js.
|
|
48
|
+
const signingCert = require('../utils/resolve-signing-cert.js')({ projectRoot });
|
|
49
|
+
if (signingCert.source === 'certificates') {
|
|
50
|
+
process.env.CSC_LINK = signingCert.cscLink;
|
|
51
|
+
}
|
|
52
|
+
logger.log(`Signing certificate: ${signingCert.source} (${signingCert.reason})`);
|
|
53
|
+
|
|
54
|
+
// The signing paths the DELIVERED artifacts imply (#678): the manager's
|
|
55
|
+
// disperse service used to stamp CSC_LINK / APPLE_API_KEY into the target's
|
|
56
|
+
// .env; no machine writes a target .env any more, so an unset key whose file
|
|
57
|
+
// sits in config/certs/ is derived here instead. Runs last: an explicit
|
|
58
|
+
// answer, and the lookup above, always win. See utils/derive-signing-env.js.
|
|
59
|
+
const derivedSigningKeys = require('../utils/derive-signing-env.js')({ env: process.env, projectDir: projectRoot });
|
|
60
|
+
if (derivedSigningKeys.length) {
|
|
61
|
+
logger.log(`Derived signing env from the certs dir: ${derivedSigningKeys.map((entry) => `${entry.key}=${entry.value}`).join(', ')}`);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
logger.log('Starting...', argv);
|
|
65
|
+
|
|
66
|
+
// Auto-load tasks from src/gulp/tasks/*.js
|
|
67
|
+
const tasks = glob('*.js', { cwd: `${__dirname}/tasks` });
|
|
68
|
+
|
|
69
|
+
// Globals (parity with BXM)
|
|
70
|
+
global.tasks = {};
|
|
71
|
+
global.websocket = null;
|
|
72
|
+
|
|
73
|
+
tasks.forEach((file) => {
|
|
74
|
+
const name = file.replace('.js', '');
|
|
75
|
+
logger.log('Loading task:', name);
|
|
76
|
+
exports[name] = require(path.join(__dirname, 'tasks', file));
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
global.tasks = exports;
|
|
80
|
+
|
|
81
|
+
// Lifecycle hook tasks — each invokes the consumer's <projectRoot>/hooks/<name>.js file if it
|
|
82
|
+
// exists, or no-ops. Inserted around the build/release stages so consumers can extend the
|
|
83
|
+
// pipeline without forking gulp tasks.
|
|
84
|
+
const runConsumerHook = require('../utils/run-consumer-hook.js');
|
|
85
|
+
function makeHookTask(name) {
|
|
86
|
+
const fn = async () => {
|
|
87
|
+
const Manager = new (require('../build.js'));
|
|
88
|
+
await runConsumerHook(name, { manager: Manager, projectRoot: process.cwd(), mode: process.env.OMEGA_BUILD_MODE === 'true' ? 'production' : 'development' });
|
|
89
|
+
};
|
|
90
|
+
// Set displayName for nicer gulp logs.
|
|
91
|
+
Object.defineProperty(fn, 'name', { value: `hook:${name.replace('/', ':')}` });
|
|
92
|
+
return fn;
|
|
93
|
+
}
|
|
94
|
+
exports['hook:build:pre'] = makeHookTask('build/pre');
|
|
95
|
+
exports['hook:build:post'] = makeHookTask('build/post');
|
|
96
|
+
exports['hook:release:pre'] = makeHookTask('release/pre');
|
|
97
|
+
exports['hook:release:post'] = makeHookTask('release/post');
|
|
98
|
+
|
|
99
|
+
// Build pipeline: hook:build:pre → defaults → distribute → (sass | bundle | html in parallel)
|
|
100
|
+
// → audit → build-config → hook:build:post.
|
|
101
|
+
// build-config generates dist/electron-builder.yml entirely from @omega.js/desktop defaults +
|
|
102
|
+
// config/omega.json5 (no consumer-shipped electron-builder.yml). Mode-dependent
|
|
103
|
+
// injections (e.g. LSUIElement for tray-only) happen here. Must run BEFORE package/release.
|
|
104
|
+
exports.build = series(
|
|
105
|
+
exports['hook:build:pre'],
|
|
106
|
+
exports.defaults,
|
|
107
|
+
exports.distribute,
|
|
108
|
+
parallel(exports.sass, exports.bundle, exports.html),
|
|
109
|
+
exports.audit,
|
|
110
|
+
exports['build-config'],
|
|
111
|
+
exports['hook:build:post'],
|
|
112
|
+
);
|
|
113
|
+
|
|
114
|
+
// Production package: build + electron-builder package (no publish)
|
|
115
|
+
exports.packageBuild = series(
|
|
116
|
+
exports.build,
|
|
117
|
+
exports.package,
|
|
118
|
+
);
|
|
119
|
+
|
|
120
|
+
// Quick package: build + electron-builder --dir for host platform/arch only.
|
|
121
|
+
// Skips DMG/zip/universal/notarize. Output: release/<platform>-<arch>/<ProductName>.app
|
|
122
|
+
// (or .exe-folder on win, linux-unpacked on linux). ~20-30s. For local smoke-testing
|
|
123
|
+
// production code paths (config loading, packaged-mode behavior) without the full pipeline.
|
|
124
|
+
exports.packageQuick = series(
|
|
125
|
+
exports.build,
|
|
126
|
+
exports['package-quick'],
|
|
127
|
+
);
|
|
128
|
+
|
|
129
|
+
// Publish: build + hook:release:pre + electron-builder release + hook:release:post.
|
|
130
|
+
// Single sign+notarize pass. The artifacts land in the brand's ONE public releases
|
|
131
|
+
// repo under versionless names (#620/#799), which is what the site links: there is
|
|
132
|
+
// no mirror step any more.
|
|
133
|
+
exports.publish = series(
|
|
134
|
+
exports.build,
|
|
135
|
+
exports['hook:release:pre'],
|
|
136
|
+
exports.release,
|
|
137
|
+
exports['hook:release:post'],
|
|
138
|
+
);
|
|
139
|
+
|
|
140
|
+
// Default dev pipeline: build, then launch electron.
|
|
141
|
+
exports.default = series(
|
|
142
|
+
exports.build,
|
|
143
|
+
exports.serve,
|
|
144
|
+
);
|