@omega.js/desktop 0.53.0 → 0.54.1

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 (161) hide show
  1. package/README.md +38 -38
  2. package/dist/cli-run.js +4 -1
  3. package/dist/cli.js +2 -2
  4. package/dist/commands/cdp/client.js +1 -1
  5. package/dist/commands/cdp.js +1 -1
  6. package/dist/commands/clean.js +2 -3
  7. package/dist/commands/dev.js +25 -0
  8. package/dist/commands/lib/ensure-target.js +12 -17
  9. package/dist/commands/lib/migrate.js +17 -0
  10. package/dist/commands/logs.js +1 -1
  11. package/dist/commands/release.js +1 -1
  12. package/dist/commands/test.js +4 -4
  13. package/dist/commands/update.js +5 -4
  14. package/dist/defaults/.github/workflows/build.yml +18 -18
  15. package/dist/defaults/_.gitignore +0 -2
  16. package/dist/defaults/_mas/README.md +3 -3
  17. package/dist/defaults/config/certs/README.md +1 -1
  18. package/dist/defaults/config/omega.json5 +36 -36
  19. package/dist/defaults/docs/README.md +3 -3
  20. package/dist/defaults/gulpfile.js +1 -1
  21. package/dist/defaults/hooks/build/post.js +1 -1
  22. package/dist/defaults/hooks/build/pre.js +1 -1
  23. package/dist/defaults/hooks/notarize/post.js +2 -2
  24. package/dist/defaults/hooks/release/post.js +1 -1
  25. package/dist/defaults/hooks/release/pre.js +1 -1
  26. package/dist/defaults/src/assets/scss/pages/about.scss +1 -1
  27. package/dist/defaults/src/assets/scss/pages/main.scss +1 -1
  28. package/dist/defaults/src/assets/scss/pages/settings.scss +1 -1
  29. package/dist/defaults/src/integrations/context-menu/index.js +11 -11
  30. package/dist/defaults/src/integrations/menu/index.js +5 -5
  31. package/dist/defaults/src/integrations/tray/index.js +9 -9
  32. package/dist/defaults/src/main.js +2 -2
  33. package/dist/defaults/src/preload.js +1 -1
  34. package/dist/defaults/test/README.md +3 -3
  35. package/dist/defaults/test/_init.js +1 -1
  36. package/dist/gulp/tasks/audit.js +5 -8
  37. package/dist/lib/restart-manager/index.js +1 -1
  38. package/dist/lib/restart-manager/install.js +1 -1
  39. package/dist/lib/restart-manager/protocol.js +1 -1
  40. package/dist/main.js +4 -3
  41. package/dist/preload.js +1 -1
  42. package/dist/test/suites/build/audit.test.js +20 -7
  43. package/dist/test/suites/build/build-workflow-jobs.test.js +2 -2
  44. package/dist/test/suites/build/cli.test.js +28 -0
  45. package/dist/test/suites/build/defaults-em-dash.test.js +22 -0
  46. package/dist/test/suites/build/defaults-scaffold.test.js +19 -5
  47. package/dist/test/suites/build/deploy-direct.test.js +7 -5
  48. package/dist/test/suites/build/deploy-dispatch.test.js +2 -1
  49. package/dist/test/suites/build/deploy-hook.test.js +4 -2
  50. package/dist/test/suites/build/dev-verb.test.js +67 -0
  51. package/dist/test/suites/build/ensure-target.test.js +11 -3
  52. package/dist/test/suites/build/merge-line-files.test.js +6 -6
  53. package/dist/test/suites/build/migrate.test.js +29 -0
  54. package/dist/test/suites/build/project-scripts-deps.test.js +6 -10
  55. package/dist/test/suites/build/runner-env-write.test.js +73 -0
  56. package/dist/test/suites/build/runner.test.js +9 -8
  57. package/dist/test/suites/build/setup-scripts.test.js +27 -0
  58. package/dist/test/suites/build/validate-config.test.js +13 -2
  59. package/dist/test/suites/build/verb-logs.test.js +20 -0
  60. package/dist/test/suites/renderer/window-desktop-surface.test.js +1 -1
  61. package/dist/utils/build-pipeline.js +4 -4
  62. package/dist/utils/runner-env.js +13 -28
  63. package/dist/vendor/config/company.js +46 -14
  64. package/dist/vendor/config/defaults.js +30 -7
  65. package/dist/vendor/config/edit.js +25 -3
  66. package/dist/vendor/config/env-delivery.js +1 -1
  67. package/dist/vendor/config/env-schema.js +3 -6
  68. package/dist/vendor/config/env.js +34 -22
  69. package/dist/vendor/config/index.js +13 -17
  70. package/dist/vendor/config/load.js +15 -7
  71. package/dist/vendor/config/repo.js +10 -27
  72. package/dist/vendor/config/schema-client.js +64 -0
  73. package/dist/vendor/config/schema-cloud.js +38 -0
  74. package/dist/vendor/config/schema-manager.js +118 -0
  75. package/dist/vendor/config/schema-overrides.js +68 -0
  76. package/dist/vendor/config/schema.js +99 -152
  77. package/dist/vendor/config/validate.js +97 -77
  78. package/dist/vendor/devkit/agents-md.js +233 -0
  79. package/dist/vendor/devkit/attach-log-file.js +15 -1
  80. package/dist/vendor/devkit/ci-workflows.js +30 -30
  81. package/dist/vendor/devkit/cli-router.js +13 -7
  82. package/dist/vendor/devkit/defaults-engine.js +9 -43
  83. package/dist/vendor/devkit/deploy-snapshot.js +44 -9
  84. package/dist/vendor/devkit/env-lines.js +183 -0
  85. package/dist/vendor/devkit/local.js +62 -10
  86. package/dist/vendor/devkit/lockfile.js +32 -13
  87. package/dist/vendor/devkit/logger.js +7 -2
  88. package/dist/vendor/devkit/merge-line-files.js +219 -176
  89. package/dist/vendor/devkit/omega-bin.js +208 -111
  90. package/dist/vendor/devkit/preludes/docs-sync.js +52 -0
  91. package/dist/vendor/devkit/preludes/index.js +1 -0
  92. package/dist/vendor/devkit/target-picker.js +45 -0
  93. package/dist/vendor/devkit/test/dashed-files.js +37 -0
  94. package/dist/vendor/devkit/test/run-verb-under-tee.js +71 -0
  95. package/dist/vendor/devkit/update.js +15 -15
  96. package/dist/vendor/devkit/verb-scripts.js +40 -0
  97. package/dist/vendor/devkit/verbs.js +170 -0
  98. package/package.json +18 -24
  99. package/dist/commands/install.js +0 -37
  100. package/dist/defaults/AGENTS.md +0 -119
  101. package/dist/defaults/CLAUDE.md +0 -1
  102. package/dist/vendor/config/env-retired.js +0 -137
  103. package/dist/vendor/config/retired-keys.js +0 -635
  104. package/docs/analytics.md +0 -140
  105. package/docs/app-state.md +0 -92
  106. package/docs/audit.md +0 -69
  107. package/docs/auth.md +0 -284
  108. package/docs/auto-updater.md +0 -243
  109. package/docs/boot-sequence.md +0 -44
  110. package/docs/build-system.md +0 -169
  111. package/docs/cdp-debugging.md +0 -169
  112. package/docs/common-mistakes.md +0 -21
  113. package/docs/config-schema.md +0 -120
  114. package/docs/context-menu.md +0 -112
  115. package/docs/context.md +0 -81
  116. package/docs/css.md +0 -84
  117. package/docs/deep-link.md +0 -186
  118. package/docs/environment-detection.md +0 -112
  119. package/docs/fontawesome.md +0 -109
  120. package/docs/hooks.md +0 -89
  121. package/docs/icons.md +0 -79
  122. package/docs/index.md +0 -328
  123. package/docs/installer-options.md +0 -165
  124. package/docs/ipc.md +0 -61
  125. package/docs/lib-modules.md +0 -53
  126. package/docs/logging.md +0 -227
  127. package/docs/menu.md +0 -160
  128. package/docs/releasing.md +0 -239
  129. package/docs/remote-config.md +0 -118
  130. package/docs/remote-scripts.md +0 -144
  131. package/docs/restart-manager.md +0 -144
  132. package/docs/runner.md +0 -290
  133. package/docs/sentry.md +0 -97
  134. package/docs/shared/agent-docs.md +0 -89
  135. package/docs/shared/analytics.md +0 -612
  136. package/docs/shared/brands.md +0 -57
  137. package/docs/shared/breaking-changes.md +0 -917
  138. package/docs/shared/config.md +0 -1948
  139. package/docs/shared/deploys.md +0 -341
  140. package/docs/shared/icons.md +0 -219
  141. package/docs/shared/local-dev.md +0 -167
  142. package/docs/shared/logging.md +0 -205
  143. package/docs/shared/monitoring.md +0 -167
  144. package/docs/shared/publishing.md +0 -187
  145. package/docs/shared/rulings.md +0 -34
  146. package/docs/shared/testing.md +0 -147
  147. package/docs/shared/theming.md +0 -629
  148. package/docs/shared/translation.md +0 -342
  149. package/docs/shared/updates.md +0 -61
  150. package/docs/signing.md +0 -293
  151. package/docs/startup.md +0 -142
  152. package/docs/storage.md +0 -59
  153. package/docs/templating.md +0 -101
  154. package/docs/test-boot-layer.md +0 -157
  155. package/docs/test-framework.md +0 -362
  156. package/docs/themes.md +0 -149
  157. package/docs/tooltips.md +0 -99
  158. package/docs/tray.md +0 -164
  159. package/docs/usage.md +0 -58
  160. package/docs/verts.md +0 -62
  161. package/docs/windows.md +0 -149
@@ -1,137 +0,0 @@
1
- /**
2
- * Retired ENV keys ([#893](https://github.com/Omega-JS-Stack/omega/issues/893))
3
- * - the `.env` half of retired-keys.js.
4
- *
5
- * Six values were declared in both homes at once: the env schema carried them
6
- * as non-secret keys while the config schema already declared (or now
7
- * declares) the same fact. Two homes for one value drift, and the rule that
8
- * settles which one wins is in docs/shared/config.md ("Config or env?"):
9
- * config holds what is PUBLIC by design (an id a store URL carries, a key a
10
- * browser bundle ships, a value printed in a binary), `.env` holds secrets,
11
- * the login coordinates that only travel with a secret, and machine paths.
12
- *
13
- * There is no dual-read anywhere in OMEGA, so a `.env` line left behind is a
14
- * value nothing reads: the id a brand carefully pasted would be ignored and
15
- * the publish would address the wrong listing, or none. Every layer read
16
- * therefore FAILS on one, naming the config path the value moved to
17
- * (env.js's parseEnvFile, the one place a `.env` layer is parsed).
18
- *
19
- * The config-side register gets nothing from this move: these were never
20
- * config keys, so nothing there was renamed.
21
- *
22
- * The register also carries the env-side RENAMES
23
- * ([#845](https://github.com/Omega-JS-Stack/omega/issues/845)): a key that is
24
- * still a secret and still lives in `.env`, under a new name. Same silence,
25
- * same refusal; the fix it names is renaming the line, not deleting it.
26
- *
27
- * And it carries the keys that are retired OUTRIGHT
28
- * ([#819](https://github.com/Omega-JS-Stack/omega/issues/819)): no config path,
29
- * no new env name, because what replaced the key is a MECHANISM rather than a
30
- * value. Such a row declares `replacement: null` and its refusal reads as a
31
- * deletion with nowhere to move the value to.
32
- */
33
-
34
- // env var name -> { replacement, why, home } (docs/shared/config.md carries the
35
- // rows). `home` is where the replacement LIVES: 'config' by default (the #893
36
- // move), or 'env' for a key that stayed a secret and only changed NAME, which
37
- // is a rename of the line rather than a deletion. `replacement: null` is a key
38
- // with no successor of any kind (#819): the line is simply deleted, and the
39
- // row's `why` names the mechanism that made it unnecessary.
40
- const RETIRED_ENV_KEYS = {
41
- CHROME_EXTENSION_ID: {
42
- replacement: 'targets.<name>.listings.chrome.id',
43
- why: 'a store item id is public by design (it is in the listing URL), so it lives beside that listing in config',
44
- },
45
- FIREFOX_EXTENSION_ID: {
46
- replacement: 'targets.<name>.listings.firefox.id',
47
- why: "the AMO add-on id IS the manifest's gecko id, and config is its ONE home: the local scaffold pins the derived id there and the package task writes it into the manifest",
48
- },
49
- EDGE_PRODUCT_ID: {
50
- replacement: 'targets.<name>.listings.edge.id',
51
- why: 'a store product id is public by design (it is in the listing URL), so it lives beside that listing in config',
52
- },
53
- RECAPTCHA_SITE_KEY: {
54
- replacement: 'captcha.providers.recaptcha.siteKey',
55
- why: 'the site key is rendered into every page that carries a form, so it is public by definition; RECAPTCHA_SECRET_KEY stays in .env',
56
- },
57
- PAYPAL_CLIENT_ID: {
58
- replacement: 'payment.providers.paypal.clientId',
59
- why: 'the public half of the PayPal pair, already declared in config; the backend read it through a boot bridge that copied config into env',
60
- },
61
- CHARGEBEE_SITE: {
62
- replacement: 'payment.providers.chargebee.site',
63
- why: 'the site name is in every Chargebee URL, already declared in config; the backend read it through a boot bridge that copied config into env',
64
- },
65
- // The connections pair ([#845](https://github.com/Omega-JS-Stack/omega/issues/845)):
66
- // these are SECRETS and stayed in `.env`, so the row is a rename, not a move.
67
- // Exact names only, one per provider: the register is a name lookup, so the
68
- // `OAUTH2_*` family is spelled out a row at a time as a brand needs it, and
69
- // Google is the pair every brand carries today.
70
- OAUTH2_GOOGLE_CLIENT_ID: {
71
- home: 'env',
72
- replacement: 'CONNECTIONS_GOOGLE_CLIENT_ID',
73
- why: '#788 renamed the oauth2 feature to connections, the env family included; the backend reads only CONNECTIONS_<PROVIDER>_CLIENT_ID now',
74
- },
75
- OAUTH2_GOOGLE_CLIENT_SECRET: {
76
- home: 'env',
77
- replacement: 'CONNECTIONS_GOOGLE_CLIENT_SECRET',
78
- why: '#788 renamed the oauth2 feature to connections, the env family included; the backend reads only CONNECTIONS_<PROVIDER>_CLIENT_SECRET now',
79
- },
80
- // The test-lane pair ([#819](https://github.com/Omega-JS-Stack/omega/issues/819),
81
- // Ian 2026-09-13): retired outright, so neither row names a replacement. A
82
- // suite no longer holds a credential of its own, which is why there is
83
- // nothing to move the value to.
84
- OMEGA_TEST_FIREBASE_ADMIN_KEY: {
85
- replacement: null,
86
- why: 'retired: desktop, extension and web test their own sign-in through a seeded persona from the backend emulator (#904), so no suite mints a custom token from a service account any more',
87
- },
88
- OMEGA_TEST_USER_UID: {
89
- replacement: null,
90
- why: 'retired: desktop, extension and web test their own sign-in through a seeded persona from the backend emulator (#904), and the roster names the persona, so no uid is configured anywhere',
91
- },
92
- };
93
-
94
- /**
95
- * The retired keys a parsed `.env` layer carries, in the layer's own order.
96
- *
97
- * Presence is the whole test: an empty value (`KEY=`) documents a key nothing
98
- * reads, so it is owed the same deletion as a valued one.
99
- *
100
- * @param {Object<string, string>} values - Parsed `.env` values.
101
- * @returns {Array<{ key: string, replacement: string|null, why: string }>}
102
- */
103
- function findRetiredEnvKeys(values) {
104
- return Object.keys(values || {})
105
- .filter((key) => RETIRED_ENV_KEYS[key])
106
- .map((key) => ({ key, ...RETIRED_ENV_KEYS[key] }));
107
- }
108
-
109
- /**
110
- * Refuse a `.env` layer that still carries a retired key, spelling the move
111
- * out. A row with no replacement says so plainly: the line is deleted and
112
- * nothing takes the value anywhere (#819).
113
- *
114
- * @param {Object<string, string>} values - Parsed `.env` values.
115
- * @param {string} envPath - The file the values came from (named in the error).
116
- * @throws {Error} Naming every retired key in the layer, its new home, and why.
117
- */
118
- function assertNoRetiredEnvKeys(values, envPath) {
119
- const found = findRetiredEnvKeys(values);
120
- if (found.length === 0) return;
121
-
122
- const moves = found.map(({ key, replacement, why, home }) => {
123
- if (!replacement) return ` ${key} is retired outright: delete the .env line, nothing replaces the value (${why})`;
124
-
125
- return home === 'env'
126
- ? ` ${key} renamed to ${replacement}; rename the .env line (${why})`
127
- : ` ${key} moved to ${replacement} in config/omega.json5; delete the .env line (${why})`;
128
- });
129
-
130
- throw new Error(
131
- `${envPath} carries ${found.length} retired env key(s). Nothing reads them, so the value is silently lost:\n`
132
- + `${moves.join('\n')}\n`
133
- + 'The rule, and the whole register: docs/shared/config.md ("Config or env?").',
134
- );
135
- }
136
-
137
- module.exports = { RETIRED_ENV_KEYS, findRetiredEnvKeys, assertNoRetiredEnvKeys };