@omega.js/desktop 0.52.0 → 0.54.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (345) hide show
  1. package/README.md +53 -48
  2. package/dist/assets/css/core/_initialize.scss +1 -1
  3. package/dist/assets/js/core/app-shell.js +14 -15
  4. package/dist/assets/themes/_template/_theme.js +6 -6
  5. package/dist/assets/themes/base/_includes/global/sections/account.html +4 -4
  6. package/dist/assets/themes/base/_includes/global/sections/app-sidebar.html +5 -5
  7. package/dist/assets/themes/base/_layouts/frontend/pages/account/index.html +3 -3
  8. package/dist/assets/themes/base/_layouts/frontend/pages/alternatives/index.html +1 -1
  9. package/dist/assets/themes/base/_layouts/frontend/pages/blog/tags/tag.html +1 -1
  10. package/dist/assets/themes/base/_layouts/frontend/pages/payment/confirmation.html +1 -1
  11. package/dist/assets/themes/base/_sections/marketing/newsletter-cta/section.js +2 -3
  12. package/dist/assets/themes/base/_sections/verts/unit/section.html +1 -1
  13. package/dist/assets/themes/base/_sections/verts/unit/section.js +3 -4
  14. package/dist/assets/themes/base/_theme.js +4 -3
  15. package/dist/assets/themes/bootstrap/_theme.js +2 -2
  16. package/dist/assets/themes/bootstrap/overrides/_links.scss +1 -1
  17. package/dist/assets/themes/classy/_theme.js +8 -6
  18. package/dist/assets/themes/classy/css/marketing/_sections.scss +1 -2
  19. package/dist/assets/themes/classy/js/hero-demo-form.js +3 -2
  20. package/dist/assets/themes/neobrutalism/_theme.js +5 -5
  21. package/dist/assets/themes/neobrutalism/js/pages/test/libraries/layers/index.js +1 -1
  22. package/dist/assets/themes/newsflash/_theme.js +6 -6
  23. package/dist/assets/themes/newsflash/js/pages/test/libraries/layers/index.js +1 -1
  24. package/dist/build.js +87 -111
  25. package/dist/cli-run.js +4 -1
  26. package/dist/cli.js +3 -3
  27. package/dist/commands/build.js +2 -2
  28. package/dist/commands/cdp/capture.js +2 -2
  29. package/dist/commands/cdp/client.js +1 -1
  30. package/dist/commands/cdp/quit.js +2 -2
  31. package/dist/commands/cdp/relaunch.js +2 -2
  32. package/dist/commands/cdp/theme.js +1 -1
  33. package/dist/commands/cdp.js +1 -1
  34. package/dist/commands/clean.js +4 -5
  35. package/dist/commands/deploy.js +4 -4
  36. package/dist/commands/dev.js +25 -0
  37. package/dist/commands/finalize-release.js +4 -4
  38. package/dist/commands/launch.js +2 -2
  39. package/dist/commands/lib/deploy-precheck.js +3 -3
  40. package/dist/commands/lib/ensure-target.js +18 -23
  41. package/dist/commands/lib/migrate.js +17 -0
  42. package/dist/commands/logs.js +1 -1
  43. package/dist/commands/package.js +2 -2
  44. package/dist/commands/publish.js +2 -2
  45. package/dist/commands/release.js +4 -4
  46. package/dist/commands/runner.js +11 -11
  47. package/dist/commands/sign-windows.js +5 -5
  48. package/dist/commands/test.js +8 -8
  49. package/dist/commands/update.js +7 -6
  50. package/dist/commands/validate-certs.js +4 -4
  51. package/dist/commands/version.js +3 -3
  52. package/dist/defaults/.github/workflows/build.yml +18 -18
  53. package/dist/defaults/_.gitignore +0 -2
  54. package/dist/defaults/_mas/README.md +3 -3
  55. package/dist/defaults/config/certs/README.md +1 -1
  56. package/dist/defaults/config/omega.json5 +43 -43
  57. package/dist/defaults/docs/README.md +3 -3
  58. package/dist/defaults/gulpfile.js +1 -1
  59. package/dist/defaults/hooks/build/post.js +2 -2
  60. package/dist/defaults/hooks/build/pre.js +2 -2
  61. package/dist/defaults/hooks/deploy/pre.js +1 -1
  62. package/dist/defaults/hooks/notarize/post.js +2 -2
  63. package/dist/defaults/hooks/release/post.js +2 -2
  64. package/dist/defaults/hooks/release/pre.js +2 -2
  65. package/dist/defaults/src/assets/js/components/about/index.js +3 -5
  66. package/dist/defaults/src/assets/js/components/main/index.js +3 -5
  67. package/dist/defaults/src/assets/js/components/settings/index.js +3 -5
  68. package/dist/defaults/src/assets/scss/pages/about.scss +1 -1
  69. package/dist/defaults/src/assets/scss/pages/main.scss +1 -1
  70. package/dist/defaults/src/assets/scss/pages/settings.scss +1 -1
  71. package/dist/defaults/src/integrations/context-menu/index.js +13 -13
  72. package/dist/defaults/src/integrations/menu/index.js +8 -8
  73. package/dist/defaults/src/integrations/tray/index.js +12 -12
  74. package/dist/defaults/src/main.js +5 -7
  75. package/dist/defaults/src/preload.js +4 -6
  76. package/dist/defaults/test/README.md +5 -5
  77. package/dist/defaults/test/_init.js +1 -1
  78. package/dist/gulp/main.js +9 -10
  79. package/dist/gulp/tasks/audit.js +11 -14
  80. package/dist/gulp/tasks/build-config.js +8 -8
  81. package/dist/gulp/tasks/bundle.js +16 -16
  82. package/dist/gulp/tasks/defaults.js +3 -3
  83. package/dist/gulp/tasks/distribute.js +2 -2
  84. package/dist/gulp/tasks/html.js +9 -9
  85. package/dist/gulp/tasks/package-quick.js +3 -3
  86. package/dist/gulp/tasks/package.js +3 -3
  87. package/dist/gulp/tasks/release.js +3 -3
  88. package/dist/gulp/tasks/sass.js +6 -6
  89. package/dist/gulp/tasks/serve.js +4 -4
  90. package/dist/hooks/notarize-artifacts.js +1 -1
  91. package/dist/hooks/notarize.js +1 -1
  92. package/dist/index.js +5 -8
  93. package/dist/lib/_environment-mixin.js +50 -0
  94. package/dist/lib/_lifecycle-mixin.js +45 -0
  95. package/dist/lib/analytics.js +33 -35
  96. package/dist/lib/app-state.js +14 -14
  97. package/dist/lib/auth-flow.js +18 -18
  98. package/dist/lib/auth-persistence.js +12 -12
  99. package/dist/lib/auth.js +421 -0
  100. package/dist/lib/auto-updater.js +49 -49
  101. package/dist/lib/context-menu.js +13 -13
  102. package/dist/lib/context.js +19 -19
  103. package/dist/lib/deep-link.js +34 -34
  104. package/dist/lib/fontawesome.js +5 -5
  105. package/dist/lib/ipc.js +4 -4
  106. package/dist/lib/menu.js +25 -25
  107. package/dist/lib/protocol.js +5 -5
  108. package/dist/lib/remote-config.js +22 -22
  109. package/dist/lib/remote-scripts.js +21 -21
  110. package/dist/lib/restart-manager/index.js +29 -29
  111. package/dist/lib/restart-manager/install.js +1 -1
  112. package/dist/lib/restart-manager/protocol.js +1 -1
  113. package/dist/lib/sign-helpers/exec-with-limit.js +1 -1
  114. package/dist/lib/sign-helpers/sign-events.js +1 -1
  115. package/dist/lib/startup.js +18 -13
  116. package/dist/lib/storage.js +10 -10
  117. package/dist/lib/templating.js +16 -16
  118. package/dist/lib/theme.js +10 -10
  119. package/dist/lib/tray.js +27 -27
  120. package/dist/lib/usage.js +11 -11
  121. package/dist/lib/window-manager.js +26 -26
  122. package/dist/main.js +399 -483
  123. package/dist/preload.js +236 -176
  124. package/dist/renderer.js +417 -391
  125. package/dist/test/fixtures/consumer-app/config/omega.json5 +1 -1
  126. package/dist/test/fixtures/consumer-app/src/assets/js/components/main/index.js +8 -11
  127. package/dist/test/fixtures/consumer-app/src/main.js +5 -7
  128. package/dist/test/fixtures/consumer-app/src/preload.js +2 -2
  129. package/dist/test/harness/boot-entry.js +22 -20
  130. package/dist/test/harness/main-entry.js +31 -30
  131. package/dist/test/harness/renderer-entry.js +5 -5
  132. package/dist/test/harness/renderer-preload.js +137 -141
  133. package/dist/test/index.js +10 -10
  134. package/dist/test/runner.js +2 -2
  135. package/dist/test/runners/boot.js +7 -6
  136. package/dist/test/runners/electron.js +3 -2
  137. package/dist/test/runners/render-event.js +2 -2
  138. package/dist/test/suites/boot/consumer-app-boots.test.js +57 -26
  139. package/dist/test/suites/boot/restart-manager.test.js +2 -2
  140. package/dist/test/suites/boot/storage-bundled.test.js +5 -5
  141. package/dist/test/suites/boot/theme.test.js +13 -13
  142. package/dist/test/suites/build/audit.test.js +21 -8
  143. package/dist/test/suites/build/auth-persistence-resolve.test.js +6 -6
  144. package/dist/test/suites/build/boot-fixture.test.js +2 -2
  145. package/dist/test/suites/build/boot-runner-timeout.test.js +6 -5
  146. package/dist/test/suites/build/brand-scss.test.js +1 -1
  147. package/dist/test/suites/build/build-json-bake.test.js +1 -1
  148. package/dist/test/suites/build/build-workflow-jobs.test.js +2 -2
  149. package/dist/test/suites/build/cli.test.js +30 -2
  150. package/dist/test/suites/build/config-schema.test.js +5 -5
  151. package/dist/test/suites/build/defaults-em-dash.test.js +22 -0
  152. package/dist/test/suites/build/defaults-scaffold.test.js +21 -7
  153. package/dist/test/suites/build/deploy-direct.test.js +7 -5
  154. package/dist/test/suites/build/deploy-dispatch.test.js +2 -1
  155. package/dist/test/suites/build/deploy-hook.test.js +7 -5
  156. package/dist/test/suites/build/dev-verb.test.js +67 -0
  157. package/dist/test/suites/build/ensure-target.test.js +13 -5
  158. package/dist/test/suites/build/env-delivery.test.js +2 -2
  159. package/dist/test/suites/build/esm-only-dependency.test.js +2 -2
  160. package/dist/test/suites/build/exports.test.js +9 -8
  161. package/dist/test/suites/build/get-config.test.js +4 -4
  162. package/dist/test/suites/build/manifest-deps.test.js +1 -1
  163. package/dist/test/suites/build/merge-line-files.test.js +7 -7
  164. package/dist/test/suites/build/migrate.test.js +29 -0
  165. package/dist/test/suites/build/omega-shell.test.js +34 -2
  166. package/dist/test/suites/build/omega.test.js +350 -0
  167. package/dist/test/suites/build/project-scripts-deps.test.js +6 -10
  168. package/dist/test/suites/build/renderer-auth-bridge.test.js +211 -78
  169. package/dist/test/suites/build/runner-env-write.test.js +73 -0
  170. package/dist/test/suites/build/runner.test.js +11 -10
  171. package/dist/test/suites/build/sentry.test.js +2 -2
  172. package/dist/test/suites/build/setup-scripts.test.js +27 -0
  173. package/dist/test/suites/build/sign-windows-e2e.test.js +2 -2
  174. package/dist/test/suites/build/templating.test.js +3 -3
  175. package/dist/test/suites/build/test-stealth.test.js +7 -9
  176. package/dist/test/suites/build/url-helpers.test.js +55 -56
  177. package/dist/test/suites/build/validate-config.test.js +15 -4
  178. package/dist/test/suites/build/verb-logs.test.js +20 -0
  179. package/dist/test/suites/build/wave5-pins.test.js +2 -2
  180. package/dist/test/suites/main/analytics.test.js +59 -59
  181. package/dist/test/suites/main/app-state.test.js +66 -66
  182. package/dist/test/suites/main/auth-flow.test.js +41 -41
  183. package/dist/test/suites/main/auth-persistence.test.js +54 -43
  184. package/dist/test/suites/main/{client-bridge.integration.test.js → auth.integration.test.js} +10 -9
  185. package/dist/test/suites/main/auth.test.js +336 -0
  186. package/dist/test/suites/main/auto-updater.test.js +134 -134
  187. package/dist/test/suites/main/boot-sequence.test.js +37 -49
  188. package/dist/test/suites/main/context-menu.test.js +51 -50
  189. package/dist/test/suites/main/context.test.js +25 -25
  190. package/dist/test/suites/main/deep-link.test.js +74 -74
  191. package/dist/test/suites/main/fontawesome.test.js +27 -27
  192. package/dist/test/suites/main/ipc.test.js +35 -35
  193. package/dist/test/suites/main/menu.test.js +101 -100
  194. package/dist/test/suites/main/protocol.test.js +19 -19
  195. package/dist/test/suites/main/remote-config.test.js +63 -63
  196. package/dist/test/suites/main/remote-scripts.test.js +103 -103
  197. package/dist/test/suites/main/request.test.js +71 -0
  198. package/dist/test/suites/main/restart-manager.test.js +33 -33
  199. package/dist/test/suites/main/startup-paths-and-ua.test.js +4 -4
  200. package/dist/test/suites/main/startup.test.js +26 -26
  201. package/dist/test/suites/main/stealth-window.test.js +1 -1
  202. package/dist/test/suites/main/storage.test.js +25 -25
  203. package/dist/test/suites/main/theme.test.js +34 -34
  204. package/dist/test/suites/main/tray.test.js +79 -79
  205. package/dist/test/suites/main/url-helpers.test.js +133 -133
  206. package/dist/test/suites/main/usage.test.js +25 -25
  207. package/dist/test/suites/main/window-bounds.test.js +27 -27
  208. package/dist/test/suites/main/window-manager.test.js +44 -44
  209. package/dist/test/suites/renderer/analytics-bridge.test.js +5 -5
  210. package/dist/test/suites/renderer/cross-context-helpers.test.js +37 -31
  211. package/dist/test/suites/renderer/round-trip.test.js +3 -3
  212. package/dist/test/suites/renderer/tooltips.test.js +15 -15
  213. package/dist/test/suites/renderer/{window-em-surface.test.js → window-desktop-surface.test.js} +28 -8
  214. package/dist/test/utils/extended-mode-warning.js +1 -1
  215. package/dist/utils/boot-harness.js +56 -0
  216. package/dist/utils/build-pipeline.js +4 -4
  217. package/dist/utils/mode-helpers.js +2 -15
  218. package/dist/utils/runner-env.js +13 -28
  219. package/dist/utils/ship-keys.js +3 -3
  220. package/dist/utils/signing-status.js +51 -0
  221. package/dist/utils/test-events.js +7 -0
  222. package/dist/utils/test-stealth.js +6 -6
  223. package/dist/utils/url-helpers.js +52 -42
  224. package/dist/utils/user-agent.js +44 -0
  225. package/dist/vendor/account/engine.js +3 -3
  226. package/dist/vendor/account/index.js +14 -45
  227. package/dist/vendor/account/resolve-account.js +44 -0
  228. package/dist/vendor/account/schema.js +1 -1
  229. package/dist/vendor/account/user.js +99 -0
  230. package/dist/vendor/config/client-config.js +1 -1
  231. package/dist/vendor/config/company.js +46 -14
  232. package/dist/vendor/config/defaults.js +30 -7
  233. package/dist/vendor/config/edit.js +25 -3
  234. package/dist/vendor/config/env-delivery.js +1 -1
  235. package/dist/vendor/config/env-schema.js +3 -6
  236. package/dist/vendor/config/env.js +34 -22
  237. package/dist/vendor/config/environment.js +11 -30
  238. package/dist/vendor/config/index.js +21 -28
  239. package/dist/vendor/config/load.js +16 -9
  240. package/dist/vendor/config/platforms.js +1 -1
  241. package/dist/vendor/config/repo.js +10 -27
  242. package/dist/vendor/config/schema-client.js +64 -0
  243. package/dist/vendor/config/schema-cloud.js +38 -0
  244. package/dist/vendor/config/schema-manager.js +118 -0
  245. package/dist/vendor/config/schema-overrides.js +68 -0
  246. package/dist/vendor/config/schema.js +104 -160
  247. package/dist/vendor/config/site-global.js +2 -3
  248. package/dist/vendor/config/validate.js +97 -78
  249. package/dist/vendor/config/winback.js +1 -1
  250. package/dist/vendor/devkit/actions-secrets.js +1 -1
  251. package/dist/vendor/devkit/agents-md.js +233 -0
  252. package/dist/vendor/devkit/attach-log-file.js +16 -2
  253. package/dist/vendor/devkit/build-json.js +1 -1
  254. package/dist/vendor/devkit/ci-workflows.js +30 -30
  255. package/dist/vendor/devkit/cli-router.js +16 -11
  256. package/dist/vendor/devkit/defaults-engine.js +15 -51
  257. package/dist/vendor/devkit/deploy-snapshot.js +44 -9
  258. package/dist/vendor/devkit/env-lines.js +183 -0
  259. package/dist/vendor/devkit/local.js +64 -10
  260. package/dist/vendor/devkit/lockfile.js +32 -13
  261. package/dist/vendor/devkit/logger.js +7 -2
  262. package/dist/vendor/devkit/merge-line-files.js +219 -177
  263. package/dist/vendor/devkit/omega-bin.js +208 -111
  264. package/dist/vendor/devkit/preludes/docs-sync.js +52 -0
  265. package/dist/vendor/devkit/preludes/index.js +1 -0
  266. package/dist/vendor/devkit/target-picker.js +45 -0
  267. package/dist/vendor/devkit/test/dashed-files.js +37 -0
  268. package/dist/vendor/devkit/test/run-verb-under-tee.js +71 -0
  269. package/dist/vendor/devkit/test/runner-core.js +6 -6
  270. package/dist/vendor/devkit/update.js +15 -15
  271. package/dist/vendor/devkit/verb-scripts.js +40 -0
  272. package/dist/vendor/devkit/verbs.js +170 -0
  273. package/dist/vendor/monitoring/env.js +2 -2
  274. package/dist/vendor/monitoring/index.js +1 -1
  275. package/dist/vendor/monitoring/main.js +1 -1
  276. package/dist/vendor/monitoring/preload.js +1 -1
  277. package/dist/vendor/monitoring/renderer.js +1 -1
  278. package/package.json +19 -26
  279. package/dist/commands/install.js +0 -37
  280. package/dist/defaults/AGENTS.md +0 -110
  281. package/dist/defaults/CLAUDE.md +0 -1
  282. package/dist/lib/client-bridge.js +0 -374
  283. package/dist/lib/logger.js +0 -4
  284. package/dist/test/suites/build/manager.test.js +0 -213
  285. package/dist/test/suites/main/client-bridge.test.js +0 -262
  286. package/dist/vendor/config/env-retired.js +0 -137
  287. package/dist/vendor/config/retired-keys.js +0 -635
  288. package/docs/analytics.md +0 -140
  289. package/docs/app-state.md +0 -92
  290. package/docs/audit.md +0 -69
  291. package/docs/auto-updater.md +0 -243
  292. package/docs/boot-sequence.md +0 -39
  293. package/docs/build-system.md +0 -169
  294. package/docs/cdp-debugging.md +0 -169
  295. package/docs/client-bridge.md +0 -269
  296. package/docs/common-mistakes.md +0 -21
  297. package/docs/config-schema.md +0 -120
  298. package/docs/context-menu.md +0 -112
  299. package/docs/context.md +0 -81
  300. package/docs/css.md +0 -90
  301. package/docs/deep-link.md +0 -186
  302. package/docs/environment-detection.md +0 -112
  303. package/docs/fontawesome.md +0 -107
  304. package/docs/hooks.md +0 -89
  305. package/docs/icons.md +0 -79
  306. package/docs/index.md +0 -317
  307. package/docs/installer-options.md +0 -165
  308. package/docs/ipc.md +0 -61
  309. package/docs/lib-modules.md +0 -53
  310. package/docs/logging.md +0 -229
  311. package/docs/menu.md +0 -160
  312. package/docs/releasing.md +0 -239
  313. package/docs/remote-config.md +0 -118
  314. package/docs/remote-scripts.md +0 -144
  315. package/docs/restart-manager.md +0 -144
  316. package/docs/runner.md +0 -290
  317. package/docs/sentry.md +0 -97
  318. package/docs/shared/agent-docs.md +0 -89
  319. package/docs/shared/analytics.md +0 -612
  320. package/docs/shared/brands.md +0 -57
  321. package/docs/shared/breaking-changes.md +0 -851
  322. package/docs/shared/config.md +0 -1952
  323. package/docs/shared/deploys.md +0 -341
  324. package/docs/shared/icons.md +0 -219
  325. package/docs/shared/local-dev.md +0 -167
  326. package/docs/shared/logging.md +0 -205
  327. package/docs/shared/monitoring.md +0 -167
  328. package/docs/shared/publishing.md +0 -187
  329. package/docs/shared/rulings.md +0 -34
  330. package/docs/shared/testing.md +0 -147
  331. package/docs/shared/theming.md +0 -629
  332. package/docs/shared/translation.md +0 -333
  333. package/docs/shared/updates.md +0 -61
  334. package/docs/signing.md +0 -293
  335. package/docs/startup.md +0 -142
  336. package/docs/storage.md +0 -59
  337. package/docs/templating.md +0 -101
  338. package/docs/test-boot-layer.md +0 -157
  339. package/docs/test-framework.md +0 -362
  340. package/docs/themes.md +0 -149
  341. package/docs/tooltips.md +0 -99
  342. package/docs/tray.md +0 -164
  343. package/docs/usage.md +0 -58
  344. package/docs/verts.md +0 -62
  345. package/docs/windows.md +0 -149
@@ -1,7 +1,7 @@
1
1
  // Shared test-runner core for the OMEGA frameworks — discovery, suite/group/standalone
2
- // execution, filtering, skip semantics, init hooks, and reporting. Extracted from UJM's
3
- // runner (the canonical 3-layer build/page/boot model); BXM/EM/UJM differ only in title,
4
- // package name, CLI target alias, and their special layers — all injected via config.
2
+ // execution, filtering, skip semantics, init hooks, and reporting, on the 3-layer
3
+ // build/page/boot model. The frameworks differ only in title, package name, CLI
4
+ // target alias, and their special layers — all injected via config.
5
5
  //
6
6
  // Test-definition forms supported (see each framework's test/index.js for docs):
7
7
  // - Standalone: module.exports = { layer, description, run, cleanup, timeout, skip };
@@ -12,7 +12,7 @@
12
12
  // Suites stop on first failure (sequential, share state). Groups run all tests regardless.
13
13
  //
14
14
  // createRunner(config) config surface:
15
- // title — heading printed at the top of a run ('Browser Extension Manager Tests')
15
+ // title — heading printed at the top of a run ('OMEGA Extension Tests')
16
16
  // packageName — framework npm name; cwd package === this ⇒ framework self-test mode
17
17
  // (framework boot/ suites only run in self-test mode — they assert on
18
18
  // the framework's own fixture consumer)
@@ -28,7 +28,7 @@
28
28
  // options, results, projectRoot }) => void }]
29
29
  // The callback owns runner loading, skip messaging, and results
30
30
  // mutation — framework glue stays framework-side.
31
- // bootDefaultTimeout — per-test default for boot-layer inspect() (UJM/BXM 20000, EM 15000)
31
+ // bootDefaultTimeout — per-test default for boot-layer inspect() (each framework's runner sets its own)
32
32
  // boot: { run: async ({ tests, suites, options, results, projectRoot }) => void }
33
33
  // Called with the aggregated flat boot test list plus the boot-BOUND
34
34
  // suites (at least one of the two is non-empty).
@@ -37,7 +37,7 @@
37
37
  // partitions that FILE into the boot layer whatever its `layer` says,
38
38
  // and hands it to boot.run WHOLE (`suites: [{ file, mod }]`) instead
39
39
  // of flattening it into the inspect list: for suites that need the
40
- // boot lane's built app but run their own way (EM's `view:` renderer
40
+ // boot lane's built app but run their own way (desktop's `view:` renderer
41
41
  // suites). Default: () => false. An array-form file is never bound.
42
42
 
43
43
  const path = require('path');
@@ -4,10 +4,10 @@
4
4
  * tool): per dependency report installed vs wanted vs latest, classify the
5
5
  * jump (patch/minor/major), and QUARANTINE releases younger than --min-age
6
6
  * days (default 7 — a brand-new publish may be a compromised one; hold it
7
- * back unless explicitly forced). Report-only by default; --apply installs
8
- * the non-quarantined, non-breaking set (majors need the explicit --major
9
- * opt-in) through `npu install` when npu is on the machine, else plain
10
- * `npm install` with a loud note.
7
+ * back unless explicitly forced). A bare run installs the non-quarantined,
8
+ * non-breaking set (majors need the explicit --major opt-in) through
9
+ * `npu install` when npu is on the machine, else plain `npm install` with a
10
+ * loud note; --dry-run reports and installs nothing.
11
11
  *
12
12
  * `file:`/`link:`/git specs have no registry story (the local era's linked
13
13
  * @omega.js packages) — they're skipped with a dim note, never updated.
@@ -332,7 +332,7 @@ async function buildUpdateReport(options) {
332
332
  }
333
333
 
334
334
  /**
335
- * Pick the updates an --apply run installs. Default tier is MINOR (highest
335
+ * Pick the updates a run installs. Default tier is MINOR (highest
336
336
  * same-major — npu's non-breaking lane); --major unlocks latest. A target
337
337
  * published < minAge days ago is HELD (quarantine) unless already installed.
338
338
  * @param {object[]} rows - buildUpdateReport rows
@@ -469,7 +469,7 @@ function formatReport(report, options = {}) {
469
469
  for (const cells of body) lines.push(render(cells));
470
470
 
471
471
  if (report.rows.some((row) => row.quarantined)) {
472
- lines.push(`QUARANTINED = latest published < ${minAge} days ago (held from --apply; --min-age 0 or --force-fresh overrides)`);
472
+ lines.push(`QUARANTINED = latest published < ${minAge} days ago (held from the install; --min-age 0 or --force-fresh overrides)`);
473
473
  }
474
474
  if (report.rows.some((row) => row.bump === 'major')) {
475
475
  lines.push('major = breaking — never auto-applied (explicit --major opt-in)');
@@ -484,14 +484,14 @@ function formatReport(report, options = {}) {
484
484
  }
485
485
 
486
486
  /**
487
- * The one verb body every wrapper calls: report (default), then apply when
488
- * asked. Flags mirror npu: --apply, --major, --min-age N (default 7, 0
489
- * disables), --force-fresh (alias for --min-age 0).
487
+ * The one verb body every wrapper calls: report, then install (default) or
488
+ * stop at the report (--dry-run). Flags mirror npu: --major, --min-age N
489
+ * (default 7, 0 disables), --force-fresh (alias for --min-age 0).
490
490
  * @param {object} [options]
491
491
  * @param {string} [options.dir] - target directory (default cwd)
492
492
  * @param {string[]} [options.only] - check just these package names (#794)
493
- * @param {boolean} [options.apply] - install the selected set
494
- * @param {boolean} [options.major] - allow breaking jumps (with --apply)
493
+ * @param {boolean} [options.dryRun] - report only, install nothing
494
+ * @param {boolean} [options.major] - allow breaking jumps
495
495
  * @param {number} [options.minAge] - quarantine threshold in days
496
496
  * @param {boolean} [options.forceFresh] - disable the age quarantine
497
497
  * @param {object} [options.logger] - logger with log/warn (default console)
@@ -512,9 +512,9 @@ async function runUpdate(options = {}) {
512
512
  logger.log(`Dependency report for ${report.project}:`);
513
513
  for (const line of formatReport(report, { minAge })) logger.log(line);
514
514
 
515
- if (!options.apply) {
515
+ if (options.dryRun) {
516
516
  if (report.rows.length > 0) {
517
- logger.log('Report only — `omega update --apply` installs the non-quarantined, non-breaking set (--major for breaking).');
517
+ logger.log('Dry run (--dry-run): nothing installed; a bare `omega update` installs the non-quarantined, non-breaking set (--major for breaking).');
518
518
  }
519
519
  return { report, selection: null, commands: [] };
520
520
  }
@@ -529,7 +529,7 @@ async function runUpdate(options = {}) {
529
529
  }
530
530
 
531
531
  if (selection.updates.length === 0) {
532
- logger.log('Nothing to apply.');
532
+ logger.log('Nothing to install.');
533
533
  return { report, selection, commands: [] };
534
534
  }
535
535
 
@@ -545,7 +545,7 @@ async function runUpdate(options = {}) {
545
545
  execFn(entry.command, { cwd: dir, stdio: 'inherit' });
546
546
  }
547
547
 
548
- logger.log(`Applied ${selection.updates.length} update(s).`);
548
+ logger.log(`Installed ${selection.updates.length} update(s).`);
549
549
  return { report, selection, commands };
550
550
  }
551
551
 
@@ -0,0 +1,40 @@
1
+ /**
2
+ * verb-scripts: the package.json scripts a framework scaffolds into its targets,
3
+ * derived from the one verb table (verbs.js). Every fan-out verb a framework owns
4
+ * (fanout `each`) is `"<verb>": "omega <verb>"`, so the brand-root fan-out's
5
+ * `npm run <verb>` reaches the framework in every target, and `dev` is
6
+ * `"start": "omega dev"`. A single-target command (fanout `none`) is no script:
7
+ * the brand root passes it to the framework's CLI. Vendored with the table into
8
+ * every framework dist.
9
+ */
10
+
11
+ const { VERBS } = require('./verbs.js');
12
+
13
+ // npm names the dev script `start` (`npm start`), and the brand-root `omega dev`
14
+ // runs each target's `npm run start`.
15
+ const SCRIPT_KEYS = { dev: 'start' };
16
+
17
+ /**
18
+ * The verb scripts a framework owns.
19
+ *
20
+ * @param {string} framework - The framework package name ('@omega.js/web', ...).
21
+ * @returns {Object<string, string>} Script name to `omega <verb>`, in table order.
22
+ */
23
+ function verbScripts(framework) {
24
+ return Object.fromEntries(VERBS
25
+ .filter((row) => row.owners.includes(framework) && (row.fanout === 'each' || row.name in SCRIPT_KEYS))
26
+ .map((row) => [SCRIPT_KEYS[row.name] || row.name, `omega ${row.name}`]));
27
+ }
28
+
29
+ /**
30
+ * Every script a framework writes into a target: its verb scripts, with the
31
+ * scripts its manifest still declares (`projectScripts`) merged over them.
32
+ *
33
+ * @param {object} manifest - The framework's own package.json.
34
+ * @returns {Object<string, string>} Script name to command.
35
+ */
36
+ function projectScripts(manifest) {
37
+ return { ...verbScripts(manifest.name), ...(manifest.projectScripts || {}) };
38
+ }
39
+
40
+ module.exports = { verbScripts, projectScripts };
@@ -0,0 +1,170 @@
1
+ /**
2
+ * verbs: the ONE verb table. Every verb any OMEGA CLI answers to, declared once
3
+ * with where it runs (`scope`), who answers it (`owners`) and how a root runs it
4
+ * (`fanout`, `order`, `dryRun`). The dispatcher, the brand-root fan-outs and the
5
+ * target-script scaffolds (verb-scripts.js) read it; the field contract lives in
6
+ * docs/devkit/index.md. Pure data: the dispatcher that requires it is vendored
7
+ * into every framework dist.
8
+ */
9
+
10
+ const MANAGER = '@omega.js/manager';
11
+ const WEB = '@omega.js/web';
12
+ const BACKEND = '@omega.js/backend';
13
+ const DESKTOP = '@omega.js/desktop';
14
+ const EXTENSION = '@omega.js/extension';
15
+ const ALL = [MANAGER, WEB, BACKEND, DESKTOP, EXTENSION];
16
+
17
+ // The order every 'each' verb walks: backend's API goes live before the
18
+ // surfaces that call it. A target type with no rank runs after every ranked one.
19
+ const TARGET_ORDER = Object.freeze(['backend', 'web', 'extension', 'desktop', 'mobile']);
20
+
21
+ const SCOPES = Object.freeze(['root', 'contextless', 'box']);
22
+ const FANOUTS = Object.freeze(['each', 'root', 'none']);
23
+
24
+ const VERBS = Object.freeze([
25
+ // ─── contextless: run with no target at all ───────────────────────────────
26
+ { name: 'onboard', aliases: ['-o', '--onboard', 'create', 'new'], scope: 'contextless', owners: [MANAGER],
27
+ fanout: 'root', order: null, dryRun: false },
28
+ { name: 'help', aliases: ['h', '-h', '--help'], scope: 'contextless', owners: ALL,
29
+ fanout: 'root', order: null, dryRun: false },
30
+ { name: 'version', aliases: ['v', '-v', '--version'], scope: 'contextless', owners: ALL,
31
+ fanout: 'root', order: null, dryRun: false },
32
+ // none: prints ONE target's resolved root
33
+ { name: 'cwd', aliases: [], scope: 'contextless', owners: [BACKEND],
34
+ fanout: 'none', order: null, dryRun: false },
35
+ // none: reads one target's logs; interleaved streams would be unreadable
36
+ { name: 'logs', aliases: ['log', '--logs', 'logs:read', 'logs:tail', 'logs:stream'], scope: 'contextless', owners: [DESKTOP, BACKEND],
37
+ fanout: 'none', order: null, dryRun: false },
38
+
39
+ // ─── box: the signing box is a machine, not a project ─────────────────────
40
+ // none: the runner is the box's own service, configured from the runner home
41
+ { name: 'runner', aliases: ['--runner'], scope: 'box', owners: [DESKTOP],
42
+ fanout: 'none', order: null, dryRun: false },
43
+ // none: signs one artifact on the box, from any directory
44
+ { name: 'sign-windows', aliases: ['--sign-windows'], scope: 'box', owners: [DESKTOP],
45
+ fanout: 'none', order: null, dryRun: false },
46
+
47
+ // ─── brand-root fan-outs ──────────────────────────────────────────────────
48
+ { name: 'deploy', aliases: ['-d', '--deploy'], scope: 'root', owners: ALL,
49
+ fanout: 'each', order: TARGET_ORDER, dryRun: false },
50
+ { name: 'build', aliases: ['-b', '--build'], scope: 'root', owners: ALL,
51
+ fanout: 'each', order: TARGET_ORDER, dryRun: true },
52
+ { name: 'clean', aliases: ['-c', '--clean', 'clean:npm'], scope: 'root', owners: ALL,
53
+ fanout: 'each', order: TARGET_ORDER, dryRun: true },
54
+ { name: 'update', aliases: ['-u', '--update'], scope: 'root', owners: ALL,
55
+ fanout: 'each', order: TARGET_ORDER, dryRun: false },
56
+ { name: 'test', aliases: ['-t', '--test'], scope: 'root', owners: ALL,
57
+ fanout: 'each', order: TARGET_ORDER, dryRun: false },
58
+
59
+ // ─── the manager's own, run once at the brand root ────────────────────────
60
+ // root: the link flip walks every target from the brand root, so it runs once, never per target
61
+ { name: 'install', aliases: ['-i', 'i', '--install'], scope: 'root', owners: [MANAGER],
62
+ fanout: 'root', order: null, dryRun: false },
63
+ // root: the brand root boots every target's dev at once; a target runs its own framework's in place
64
+ { name: 'dev', aliases: ['--dev', 'serve', 'start'], scope: 'root', owners: ALL,
65
+ fanout: 'root', order: null, dryRun: false },
66
+ { name: 'manage', aliases: [], scope: 'root', owners: [MANAGER],
67
+ fanout: 'root', order: null, dryRun: false },
68
+ { name: 'bump', aliases: ['--bump'], scope: 'root', owners: [MANAGER],
69
+ fanout: 'root', order: null, dryRun: false },
70
+ { name: 'company', aliases: [], scope: 'root', owners: [MANAGER],
71
+ fanout: 'root', order: null, dryRun: false },
72
+ { name: 'devlog', aliases: [], scope: 'root', owners: [MANAGER],
73
+ fanout: 'root', order: null, dryRun: false },
74
+ { name: 'pipeline', aliases: [], scope: 'root', owners: [MANAGER],
75
+ fanout: 'root', order: null, dryRun: false },
76
+ // root: converts the brand config, then walks every target's migrate entry in-process
77
+ { name: 'migrate', aliases: ['-m', '--migrate', 'migration'], scope: 'root', owners: [MANAGER],
78
+ fanout: 'root', order: null, dryRun: false },
79
+
80
+ // ─── @omega.js/web ────────────────────────────────────────────────────────
81
+ // none: materializes ONE named page or file into one web target
82
+ { name: 'customize', aliases: ['-cz', '--customize'], scope: 'root', owners: [WEB],
83
+ fanout: 'none', order: null, dryRun: false },
84
+ { name: 'translate', aliases: ['--translate', 'translation'], scope: 'root', owners: [WEB],
85
+ fanout: 'each', order: TARGET_ORDER, dryRun: false },
86
+ { name: 'audit', aliases: ['-a', '--audit'], scope: 'root', owners: [WEB],
87
+ fanout: 'each', order: TARGET_ORDER, dryRun: false },
88
+ { name: 'purge', aliases: ['-cf', '--purge', 'cloudflare-purge'], scope: 'root', owners: [WEB],
89
+ fanout: 'each', order: TARGET_ORDER, dryRun: false },
90
+
91
+ // ─── @omega.js/desktop ────────────────────────────────────────────────────
92
+ { name: 'package', aliases: [], scope: 'root', owners: [DESKTOP],
93
+ fanout: 'each', order: TARGET_ORDER, dryRun: false },
94
+ { name: 'validate-certs', aliases: ['certs', '--validate-certs'], scope: 'root', owners: [DESKTOP],
95
+ fanout: 'each', order: TARGET_ORDER, dryRun: false },
96
+ // none: a CI leg's step on the tree that leg just built, one runner at a time
97
+ { name: 'publish', aliases: ['-p', '--publish'], scope: 'root', owners: [DESKTOP],
98
+ fanout: 'none', order: null, dryRun: false },
99
+ // none: cuts one signed release of one app
100
+ { name: 'release', aliases: ['-r', '--release'], scope: 'root', owners: [DESKTOP],
101
+ fanout: 'none', order: null, dryRun: false },
102
+ // none: closes the one release the CI run just built
103
+ { name: 'finalize-release', aliases: ['finalize', '--finalize-release'], scope: 'root', owners: [DESKTOP],
104
+ fanout: 'none', order: null, dryRun: false },
105
+ // none: opens one built app on this machine
106
+ { name: 'launch', aliases: ['open', '--launch'], scope: 'root', owners: [DESKTOP],
107
+ fanout: 'none', order: null, dryRun: false },
108
+ // none: drives one running app over its debugging port
109
+ { name: 'cdp', aliases: [], scope: 'root', owners: [DESKTOP],
110
+ fanout: 'none', order: null, dryRun: false },
111
+
112
+ // ─── @omega.js/backend ────────────────────────────────────────────────────
113
+ // none: clears the terminal; there is nothing per target to repeat
114
+ { name: 'clear', aliases: [], scope: 'root', owners: [BACKEND],
115
+ fanout: 'none', order: null, dryRun: false },
116
+ // none: a long-running emulator suite for one backend; the multi-target boot is `dev`
117
+ { name: 'serve', aliases: [], scope: 'root', owners: [BACKEND],
118
+ fanout: 'none', order: null, dryRun: false },
119
+ { name: 'indexes', aliases: ['indexes:get', 'firestore:indexes', 'firestore:indexes:get'], scope: 'root', owners: [BACKEND],
120
+ fanout: 'each', order: TARGET_ORDER, dryRun: false },
121
+ // none: a long-running emulator keep-alive for one backend
122
+ { name: 'emulator', aliases: ['emulators'], scope: 'root', owners: [BACKEND],
123
+ fanout: 'none', order: null, dryRun: false },
124
+ // none: a long-running source watcher for one backend
125
+ { name: 'watch', aliases: [], scope: 'root', owners: [BACKEND],
126
+ fanout: 'none', order: null, dryRun: false },
127
+ // none: a long-running webhook forwarder into one local backend
128
+ { name: 'stripe', aliases: ['stripe:listen'], scope: 'root', owners: [BACKEND],
129
+ fanout: 'none', order: null, dryRun: false },
130
+ // none: reads or writes named documents in one project
131
+ { name: 'firestore:get', aliases: ['firestore:set', 'firestore:query', 'firestore:delete'], scope: 'root', owners: [BACKEND],
132
+ fanout: 'none', order: null, dryRun: false },
133
+ // none: reads or writes named users in one project
134
+ { name: 'auth:get', aliases: ['auth:list', 'auth:delete', 'auth:set-claims', 'auth:token'], scope: 'root', owners: [BACKEND],
135
+ fanout: 'none', order: null, dryRun: false },
136
+ // none: one stdio MCP server for one backend
137
+ { name: 'mcp', aliases: [], scope: 'root', owners: [BACKEND],
138
+ fanout: 'none', order: null, dryRun: false },
139
+ // none: a one-time conversion that changes what the live project enforces, run alone
140
+ { name: 'migrate:rules', aliases: ['migrate:firestore-rules'], scope: 'root', owners: [BACKEND],
141
+ fanout: 'none', order: null, dryRun: false },
142
+ // none: a one-time conversion of one older tree, run alone
143
+ { name: 'migrate:markers', aliases: [], scope: 'root', owners: [BACKEND],
144
+ fanout: 'none', order: null, dryRun: false },
145
+ ]);
146
+
147
+ /**
148
+ * Every token that selects a verb: its name, then its aliases.
149
+ *
150
+ * @param {object} entry - A VERBS entry.
151
+ * @returns {string[]}
152
+ */
153
+ function tokensOf(entry) {
154
+ return [entry.name, ...entry.aliases];
155
+ }
156
+
157
+ /**
158
+ * The verb a token selects, or null. A name wins over an alias: `serve` is a
159
+ * `dev` alias AND the backend's own verb, and the row that NAMES it answers.
160
+ *
161
+ * @param {string} token - The token as typed.
162
+ * @returns {object|null} The VERBS entry.
163
+ */
164
+ function findVerb(token) {
165
+ return VERBS.find((entry) => entry.name === token)
166
+ || VERBS.find((entry) => entry.aliases.includes(token))
167
+ || null;
168
+ }
169
+
170
+ module.exports = { VERBS, TARGET_ORDER, SCOPES, FANOUTS, tokensOf, findVerb };
@@ -21,7 +21,7 @@
21
21
  * signal with its own opinion: a build-mode run of a development artifact
22
22
  * reported as production, and a packaged production app whose lane did not
23
23
  * carry the flag reported as development. @omega.js/backend still passes its
24
- * own answer in (`Manager.isProduction()`), and a boolean a host supplies
24
+ * own answer in (`omega.isProduction()`), and a boolean a host supplies
25
25
  * always wins.
26
26
  */
27
27
 
@@ -30,7 +30,7 @@ const { isProduction } = require('../config/environment.js');
30
30
  /**
31
31
  * Read the environment gates for core.resolveConfig().
32
32
  * @param {object} [host] - the host's own signals, and the context the one
33
- * environment is read off (a Manager carrying the baked `config`)
33
+ * environment is read off (an Omega instance carrying the baked `config`)
34
34
  * @param {boolean} [host.isProduction] - overrides the one environment's answer
35
35
  * @param {boolean} [host.allowInDev] - the host's own dev opt-in (e.g. @omega.js/backend's `reportErrorsInDev`)
36
36
  * @returns {{ killed: boolean, killedReason: string|null, isProduction: boolean, allowInDev: boolean }}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * The @omega.js/monitoring entry — the Electron context-aware delegator (#380).
3
- * Lifted from @omega.js/desktop's lib/sentry/index.js: a desktop Manager
3
+ * Lifted from @omega.js/desktop's lib/sentry/index.js: a desktop Omega instance
4
4
  * singleton requires this file from whichever process it is in, and every call
5
5
  * forwards to the right per-context module.
6
6
  *
@@ -25,7 +25,7 @@ const main = {
25
25
  _Sentry: null,
26
26
 
27
27
  /**
28
- * @param {object} host - the desktop Manager: { config, getVersion() }
28
+ * @param {object} host - the desktop Omega instance: { config, getVersion() }
29
29
  */
30
30
  initialize(host) {
31
31
  main._initialized = true;
@@ -18,7 +18,7 @@ const preload = {
18
18
  _enabled: false,
19
19
 
20
20
  /**
21
- * @param {object} host - the desktop Manager: { config }
21
+ * @param {object} host - the desktop Omega instance: { config }
22
22
  */
23
23
  initialize(host) {
24
24
  const { shouldEnable, reason } = resolveConfig(host && host.config && host.config.monitoring, readGates(host));
@@ -21,7 +21,7 @@ const renderer = {
21
21
  _Sentry: null,
22
22
 
23
23
  /**
24
- * @param {object} host - the desktop Manager: { config, getVersion() }
24
+ * @param {object} host - the desktop Omega instance: { config, getVersion() }
25
25
  */
26
26
  initialize(host) {
27
27
  renderer._initialized = true;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omega.js/desktop",
3
- "version": "0.52.0",
3
+ "version": "0.54.0",
4
4
  "description": "OMEGA desktop framework — build, test, and package Electron apps for macOS, Windows, and Linux",
5
5
  "private": false,
6
6
  "publishConfig": {
@@ -23,7 +23,6 @@
23
23
  "./lib/context-menu": "./dist/lib/context-menu.js",
24
24
  "./lib/deep-link": "./dist/lib/deep-link.js",
25
25
  "./lib/ipc": "./dist/lib/ipc.js",
26
- "./lib/logger": "./dist/lib/logger.js",
27
26
  "./lib/logger-lite": "./dist/lib/logger-lite.js",
28
27
  "./lib/menu": "./dist/lib/menu.js",
29
28
  "./lib/protocol": "./dist/lib/protocol.js",
@@ -33,21 +32,21 @@
33
32
  "./lib/storage": "./dist/lib/storage.js",
34
33
  "./lib/templating": "./dist/lib/templating.js",
35
34
  "./lib/tray": "./dist/lib/tray.js",
36
- "./lib/client-bridge": "./dist/lib/client-bridge.js",
35
+ "./lib/auth": "./dist/lib/auth.js",
37
36
  "./lib/window-manager": "./dist/lib/window-manager.js",
38
37
  "./cli": "./dist/cli-run.js",
39
38
  "./ensure-target": "./dist/commands/lib/ensure-target.js",
39
+ "./migrate": "./dist/commands/lib/migrate.js",
40
40
  "./scripts/sync-nvmrc": "./scripts/sync-nvmrc.js"
41
41
  },
42
42
  "bin": {
43
- "omega": "./bin/omega",
44
- "omg": "./bin/omg",
45
- "mgr": "./bin/omega"
43
+ "omega": "bin/omega",
44
+ "omg": "bin/omg",
45
+ "mgr": "bin/omega"
46
46
  },
47
47
  "files": [
48
48
  "bin/",
49
49
  "dist/",
50
- "docs/",
51
50
  "scripts/"
52
51
  ],
53
52
  "preparePackage": {
@@ -102,19 +101,13 @@
102
101
  "start": "npm run prepare:watch",
103
102
  "prepare": "node -e \"require('../devkit/tools/prepare-guard').run()\"",
104
103
  "prepare:watch": "node -e \"require('prepare-package/watch')()\"",
105
- "test": "node ./bin/omega test"
104
+ "test": "node dist/cli-run.js test"
106
105
  },
107
106
  "projectScripts": {
108
- "start": "omega clean && npm run gulp --",
109
107
  "gulp": "gulp",
110
- "build": "omega build",
111
- "package": "omega package",
112
108
  "package:quick": "omega package --quick",
113
- "publish": "omega publish",
114
- "release": "omega release",
115
109
  "release:local": "omega publish --local",
116
110
  "postinstall": "node -e \"try { require('@omega.js/desktop/scripts/sync-nvmrc') } catch (e) {}\"",
117
- "test": "omega test",
118
111
  "electron": "electron ."
119
112
  },
120
113
  "engines": {
@@ -148,39 +141,39 @@
148
141
  "@omega.js/web": "*",
149
142
  "electron": "^42.0.1",
150
143
  "electron-builder": "^26.16.1",
151
- "firebase-admin": "^13.9.0",
152
- "prepare-package": "^2.2.0"
144
+ "firebase-admin": "^13.10.0",
145
+ "prepare-package": "^2.2.1"
153
146
  },
154
147
  "dependencies": {
155
- "@fortawesome/fontawesome-free": "^7.3.0",
156
- "@inquirer/prompts": "^8.5.2",
148
+ "@fortawesome/fontawesome-free": "^7.3.1",
149
+ "@inquirer/prompts": "^8.7.2",
157
150
  "@octokit/rest": "^22.0.1",
158
- "@omega.js/client": "0.52.0",
151
+ "@omega.js/client": "0.54.0",
159
152
  "@popperjs/core": "^2.11.8",
160
153
  "@sentry/electron": "^7.13.0",
161
154
  "chalk": "^5.6.2",
162
155
  "dotenv": "^17.4.2",
163
- "electron-log": "^5.4.3",
156
+ "electron-log": "^5.4.4",
164
157
  "electron-store": "^11.0.2",
165
158
  "electron-updater": "^6.8.3",
166
- "esbuild": "^0.28.1",
159
+ "esbuild": "^0.28.2",
167
160
  "extract-zip": "^2.0.1",
168
161
  "fs-jetpack": "^5.1.0",
169
162
  "glob": "^13.0.6",
170
163
  "gulp-clean-css": "^4.3.0",
171
164
  "gulp-rename": "^2.1.0",
172
- "gulp-responsive-modern": "^1.0.0",
165
+ "gulp-responsive-modern": "^1.0.4",
173
166
  "gulp-sass": "^6.0.1",
174
- "js-yaml": "^4.1.1",
167
+ "js-yaml": "^4.3.2",
175
168
  "json5": "^2.2.3",
176
169
  "lodash": "^4.18.1",
177
- "minimatch": "^10.2.5",
170
+ "minimatch": "^10.2.6",
178
171
  "node-powertools": "^3.0.0",
179
172
  "plist": "^4.0.0",
180
173
  "sass": "^1.99.0",
181
174
  "sharp": "^0.35.3",
182
- "uuid": "^14.0.0",
183
- "wonderful-fetch": "^2.0.5",
175
+ "uuid": "^14.0.2",
176
+ "wonderful-fetch": "^2.0.6",
184
177
  "wonderful-version": "^1.3.2",
185
178
  "ws": "^8.20.0"
186
179
  },
@@ -1,37 +0,0 @@
1
- // Libraries
2
- const Manager = new (require('../build.js'));
3
- const logger = Manager.logger('install');
4
- const local = require('../vendor/devkit/local.js');
5
-
6
- const package = Manager.getPackage('main');
7
-
8
- module.exports = async function (options) {
9
- logger.log(`Installing ${package.name}...`);
10
-
11
- const type = options._[1] || 'prod';
12
-
13
- try {
14
- if (['live', 'prod', 'p', 'production'].includes(type)) {
15
- // The publish-day inverse of `i local`: flip every file: spec in the
16
- // brand tree to the exact <linked version>, then one registry install
17
- logger.log('Installing production (restoring registry specs tree-wide)...');
18
- const actions = await local.restoreRegistrySpecs({ dir: process.cwd(), logger });
19
- const flipped = actions.filter((action) => action.action === 'flip').length;
20
- return logger.log(flipped > 0
21
- ? `Production installation complete (${flipped} spec(s) restored to registry ranges).`
22
- : 'Already on registry specs — nothing to flip.');
23
- }
24
-
25
- if (['dev', 'd', 'development', 'local', 'l'].includes(type)) {
26
- logger.log('Installing development (local Omega monorepo)...');
27
- await local.linkLocalPackages({
28
- dir: process.cwd(),
29
- monorepoRoot: local.resolveMonorepoRoot(),
30
- logger,
31
- });
32
- return logger.log('Development installation complete.');
33
- }
34
- } catch (e) {
35
- logger.error('Error during install:', e);
36
- }
37
- };