@_linked/cli 1.8.1 → 1.9.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 (207) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/defaults/setup-publish/dual-branch/github/workflows/publish.yml +3 -0
  3. package/defaults/setup-publish/github/workflows/publish.yml +3 -0
  4. package/defaults/shape.ts +8 -2
  5. package/jest.config.cjs +8 -4
  6. package/lib/esm/cli-methods.d.ts +11 -3
  7. package/lib/esm/cli-methods.d.ts.map +1 -1
  8. package/lib/esm/cli-methods.js +51 -105
  9. package/lib/esm/cli-methods.js.map +1 -1
  10. package/lib/esm/cli.js +32 -8
  11. package/lib/esm/cli.js.map +1 -1
  12. package/lib/esm/commands/start.d.ts +6 -0
  13. package/lib/esm/commands/start.d.ts.map +1 -0
  14. package/lib/esm/commands/start.js +311 -0
  15. package/lib/esm/commands/start.js.map +1 -0
  16. package/lib/esm/config-webpack-app.d.ts +1 -1
  17. package/lib/esm/config-webpack-app.d.ts.map +1 -1
  18. package/lib/esm/config-webpack-app.js +1 -1
  19. package/lib/esm/config-webpack-app.js.map +1 -1
  20. package/lib/esm/config-webpack.d.ts +1 -1
  21. package/lib/esm/config-webpack.d.ts.map +1 -1
  22. package/lib/esm/config-webpack.js +4 -4
  23. package/lib/esm/config-webpack.js.map +1 -1
  24. package/lib/esm/defineConfig.d.ts +1 -1
  25. package/lib/esm/defineConfig.d.ts.map +1 -1
  26. package/lib/esm/index.d.ts +1 -1
  27. package/lib/esm/index.d.ts.map +1 -1
  28. package/lib/esm/index.js +1 -1
  29. package/lib/esm/index.js.map +1 -1
  30. package/lib/esm/interfaces.d.ts +9 -0
  31. package/lib/esm/interfaces.d.ts.map +1 -1
  32. package/lib/esm/lifecycle.d.ts +24 -0
  33. package/lib/esm/lifecycle.d.ts.map +1 -0
  34. package/lib/esm/lifecycle.js +156 -0
  35. package/lib/esm/lifecycle.js.map +1 -0
  36. package/lib/esm/loaders/ts-loader.d.mts.map +1 -1
  37. package/lib/esm/loaders/ts-loader.mjs +11 -2
  38. package/lib/esm/loaders/ts-loader.mjs.map +1 -1
  39. package/lib/esm/utils.d.ts +1 -1
  40. package/lib/esm/utils.d.ts.map +1 -1
  41. package/lib/esm/utils.js +9 -3
  42. package/lib/esm/utils.js.map +1 -1
  43. package/lib/esm/vite-config.d.ts +20 -0
  44. package/lib/esm/vite-config.d.ts.map +1 -0
  45. package/lib/esm/vite-config.js +410 -0
  46. package/lib/esm/vite-config.js.map +1 -0
  47. package/package.json +13 -14
  48. package/test-results/.last-run.json +6 -0
  49. package/test-results/create-app-Person-fixture-add-/342/206/222-edit-/342/206/222-delete-round-trip/error-context.md +16 -0
  50. package/test-results/create-app-Person-fixture-add-/342/206/222-edit-/342/206/222-delete-round-trip/trace.zip +0 -0
  51. package/tests/unit/safeYarn.test.ts +1 -1
  52. package/tsconfig-esm.json +1 -1
  53. package/defaults/app-with-backend/.env-cmdrc.json +0 -19
  54. package/defaults/app-with-backend/.eslintignore +0 -5
  55. package/defaults/app-with-backend/.eslintrc.json +0 -40
  56. package/defaults/app-with-backend/.prettierignore +0 -4
  57. package/defaults/app-with-backend/.prettierrc.json +0 -27
  58. package/defaults/app-with-backend/.vscode/launch.json +0 -12
  59. package/defaults/app-with-backend/.yarn/plugins/@yarnpkg/plugin-version.cjs +0 -550
  60. package/defaults/app-with-backend/.yarn/releases/yarn-3.6.1.cjs +0 -874
  61. package/defaults/app-with-backend/gitignore.template +0 -25
  62. package/defaults/app-with-backend/linked.backend.datasets.example.json +0 -17
  63. package/defaults/app-with-backend/linked.backend.storage.ts +0 -35
  64. package/defaults/app-with-backend/linked.config.js +0 -5
  65. package/defaults/app-with-backend/package.json +0 -70
  66. package/defaults/app-with-backend/pm2-staging.config.js +0 -12
  67. package/defaults/app-with-backend/pm2.config.js +0 -12
  68. package/defaults/app-with-backend/public/favicon-144x144.png +0 -0
  69. package/defaults/app-with-backend/public/favicon-57x57.png +0 -0
  70. package/defaults/app-with-backend/public/favicon-72x72.png +0 -0
  71. package/defaults/app-with-backend/public/favicon.ico +0 -0
  72. package/defaults/app-with-backend/readme.md +0 -93
  73. package/defaults/app-with-backend/src/App.module.css +0 -83
  74. package/defaults/app-with-backend/src/App.tsx +0 -30
  75. package/defaults/app-with-backend/src/backend.ts +0 -9
  76. package/defaults/app-with-backend/src/components/Error.module.css +0 -9
  77. package/defaults/app-with-backend/src/components/Error.tsx +0 -11
  78. package/defaults/app-with-backend/src/components/PersonOverview.module.css +0 -100
  79. package/defaults/app-with-backend/src/components/PersonOverview.tsx +0 -97
  80. package/defaults/app-with-backend/src/components/PersonOverviewContext.tsx +0 -12
  81. package/defaults/app-with-backend/src/components/PersonPreview.module.css +0 -97
  82. package/defaults/app-with-backend/src/components/PersonPreview.tsx +0 -109
  83. package/defaults/app-with-backend/src/components/Spinner.module.css +0 -17
  84. package/defaults/app-with-backend/src/components/Spinner.tsx +0 -12
  85. package/defaults/app-with-backend/src/index.tsx +0 -34
  86. package/defaults/app-with-backend/src/layout/DefaultLayout.module.css +0 -15
  87. package/defaults/app-with-backend/src/layout/DefaultLayout.tsx +0 -12
  88. package/defaults/app-with-backend/src/layout/Header.module.css +0 -46
  89. package/defaults/app-with-backend/src/layout/Header.tsx +0 -27
  90. package/defaults/app-with-backend/src/linked.frontend.datasets.json +0 -12
  91. package/defaults/app-with-backend/src/linked.frontend.storage.ts +0 -36
  92. package/defaults/app-with-backend/src/package.ts +0 -16
  93. package/defaults/app-with-backend/src/pages/Home.module.css +0 -23
  94. package/defaults/app-with-backend/src/pages/Home.tsx +0 -14
  95. package/defaults/app-with-backend/src/pages/Page1.module.css +0 -111
  96. package/defaults/app-with-backend/src/pages/Page1.tsx +0 -196
  97. package/defaults/app-with-backend/src/pages/PageNotFound.module.css +0 -19
  98. package/defaults/app-with-backend/src/pages/PageNotFound.tsx +0 -14
  99. package/defaults/app-with-backend/src/pages/Signin.module.css +0 -20
  100. package/defaults/app-with-backend/src/pages/Signin.tsx +0 -16
  101. package/defaults/app-with-backend/src/routes.tsx +0 -78
  102. package/defaults/app-with-backend/src/theme.css +0 -91
  103. package/defaults/app-with-backend/src/types.ts +0 -14
  104. package/defaults/app-with-backend/src/utils/lazyWithPreload.tsx +0 -42
  105. package/defaults/app-with-backend/src/utils/preloadRoutes.ts +0 -38
  106. package/defaults/app-with-backend/tsconfig.json +0 -24
  107. package/defaults/app-with-backend/yarnrc.yml.template +0 -8
  108. package/lib/cjs/cli-methods.d.ts +0 -67
  109. package/lib/cjs/cli-methods.d.ts.map +0 -1
  110. package/lib/cjs/cli-methods.js +0 -2718
  111. package/lib/cjs/cli-methods.js.map +0 -1
  112. package/lib/cjs/cli.d.ts +0 -3
  113. package/lib/cjs/cli.d.ts.map +0 -1
  114. package/lib/cjs/cli.js +0 -315
  115. package/lib/cjs/cli.js.map +0 -1
  116. package/lib/cjs/commands/build-package.d.ts +0 -9
  117. package/lib/cjs/commands/build-package.d.ts.map +0 -1
  118. package/lib/cjs/commands/build-package.js +0 -55
  119. package/lib/cjs/commands/build-package.js.map +0 -1
  120. package/lib/cjs/commands/safe-yarn.d.ts +0 -10
  121. package/lib/cjs/commands/safe-yarn.d.ts.map +0 -1
  122. package/lib/cjs/commands/safe-yarn.js +0 -66
  123. package/lib/cjs/commands/safe-yarn.js.map +0 -1
  124. package/lib/cjs/commands/setup-publish.d.ts +0 -23
  125. package/lib/cjs/commands/setup-publish.d.ts.map +0 -1
  126. package/lib/cjs/commands/setup-publish.js +0 -369
  127. package/lib/cjs/commands/setup-publish.js.map +0 -1
  128. package/lib/cjs/config-webpack-app.d.ts +0 -112
  129. package/lib/cjs/config-webpack-app.d.ts.map +0 -1
  130. package/lib/cjs/config-webpack-app.js +0 -427
  131. package/lib/cjs/config-webpack-app.js.map +0 -1
  132. package/lib/cjs/config-webpack.d.ts +0 -55
  133. package/lib/cjs/config-webpack.d.ts.map +0 -1
  134. package/lib/cjs/config-webpack.js +0 -417
  135. package/lib/cjs/config-webpack.js.map +0 -1
  136. package/lib/cjs/defineConfig.d.ts +0 -8
  137. package/lib/cjs/defineConfig.d.ts.map +0 -1
  138. package/lib/cjs/defineConfig.js +0 -12
  139. package/lib/cjs/defineConfig.js.map +0 -1
  140. package/lib/cjs/index.d.ts +0 -12
  141. package/lib/cjs/index.d.ts.map +0 -1
  142. package/lib/cjs/index.js +0 -43
  143. package/lib/cjs/index.js.map +0 -1
  144. package/lib/cjs/interfaces.d.ts +0 -131
  145. package/lib/cjs/interfaces.d.ts.map +0 -1
  146. package/lib/cjs/interfaces.js +0 -3
  147. package/lib/cjs/interfaces.js.map +0 -1
  148. package/lib/cjs/loaders/css-loader.d.mts +0 -2
  149. package/lib/cjs/loaders/css-loader.d.mts.map +0 -1
  150. package/lib/cjs/loaders/css-loader.mjs +0 -86
  151. package/lib/cjs/loaders/css-loader.mjs.map +0 -1
  152. package/lib/cjs/loaders/register-css-only.d.ts +0 -2
  153. package/lib/cjs/loaders/register-css-only.d.ts.map +0 -1
  154. package/lib/cjs/loaders/register-css-only.js +0 -11
  155. package/lib/cjs/loaders/register-css-only.js.map +0 -1
  156. package/lib/cjs/loaders/register.d.ts +0 -2
  157. package/lib/cjs/loaders/register.d.ts.map +0 -1
  158. package/lib/cjs/loaders/register.js +0 -11
  159. package/lib/cjs/loaders/register.js.map +0 -1
  160. package/lib/cjs/loaders/ts-loader.d.mts +0 -3
  161. package/lib/cjs/loaders/ts-loader.d.mts.map +0 -1
  162. package/lib/cjs/loaders/ts-loader.mjs +0 -116
  163. package/lib/cjs/loaders/ts-loader.mjs.map +0 -1
  164. package/lib/cjs/metadata.d.ts +0 -1
  165. package/lib/cjs/metadata.d.ts.map +0 -1
  166. package/lib/cjs/metadata.js +0 -155
  167. package/lib/cjs/metadata.js.map +0 -1
  168. package/lib/cjs/package.json +0 -139
  169. package/lib/cjs/plugins/check-imports.d.ts +0 -2
  170. package/lib/cjs/plugins/check-imports.d.ts.map +0 -1
  171. package/lib/cjs/plugins/check-imports.js +0 -68
  172. package/lib/cjs/plugins/check-imports.js.map +0 -1
  173. package/lib/cjs/plugins/declaration-plugin.d.ts +0 -15
  174. package/lib/cjs/plugins/declaration-plugin.d.ts.map +0 -1
  175. package/lib/cjs/plugins/declaration-plugin.js +0 -285
  176. package/lib/cjs/plugins/declaration-plugin.js.map +0 -1
  177. package/lib/cjs/plugins/externalise-modules.d.ts +0 -7
  178. package/lib/cjs/plugins/externalise-modules.d.ts.map +0 -1
  179. package/lib/cjs/plugins/externalise-modules.js +0 -190
  180. package/lib/cjs/plugins/externalise-modules.js.map +0 -1
  181. package/lib/cjs/plugins/lincd-tailwind-sources.d.ts +0 -3
  182. package/lib/cjs/plugins/lincd-tailwind-sources.d.ts.map +0 -1
  183. package/lib/cjs/plugins/lincd-tailwind-sources.js +0 -32
  184. package/lib/cjs/plugins/lincd-tailwind-sources.js.map +0 -1
  185. package/lib/cjs/plugins/watch-run.d.ts +0 -5
  186. package/lib/cjs/plugins/watch-run.d.ts.map +0 -1
  187. package/lib/cjs/plugins/watch-run.js +0 -45
  188. package/lib/cjs/plugins/watch-run.js.map +0 -1
  189. package/lib/cjs/preflight.css +0 -137
  190. package/lib/cjs/tailwind.config.d.ts +0 -8
  191. package/lib/cjs/tailwind.config.d.ts.map +0 -1
  192. package/lib/cjs/tailwind.config.js +0 -17
  193. package/lib/cjs/tailwind.config.js.map +0 -1
  194. package/lib/cjs/utils.d.ts +0 -77
  195. package/lib/cjs/utils.d.ts.map +0 -1
  196. package/lib/cjs/utils.js +0 -585
  197. package/lib/cjs/utils.js.map +0 -1
  198. package/lib/esm/loaders/register-css-only.d.ts +0 -2
  199. package/lib/esm/loaders/register-css-only.d.ts.map +0 -1
  200. package/lib/esm/loaders/register-css-only.js +0 -9
  201. package/lib/esm/loaders/register-css-only.js.map +0 -1
  202. package/lib/esm/loaders/register.d.ts +0 -2
  203. package/lib/esm/loaders/register.d.ts.map +0 -1
  204. package/lib/esm/loaders/register.js +0 -9
  205. package/lib/esm/loaders/register.js.map +0 -1
  206. package/lib/esm/package.json +0 -139
  207. /package/{babel.config.js → babel.config.cjs} +0 -0
@@ -1,10 +0,0 @@
1
- /**
2
- * Run a yarn command at the workspace root while preserving nested repositories'
3
- * yarn.lock files. Used when the workspace contains sibling repos (via mrgit)
4
- * whose own lockfiles should not be clobbered by a root-level `yarn install`.
5
- *
6
- * Reads mrgit.json to determine which nested repos exist. If mrgit.json is
7
- * missing, falls back to plain yarn behavior.
8
- */
9
- export declare function safeYarn(args: string[]): Promise<void>;
10
- //# sourceMappingURL=safe-yarn.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"safe-yarn.d.ts","sourceRoot":"","sources":["../../../src/commands/safe-yarn.ts"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsD5D"}
@@ -1,66 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.safeYarn = safeYarn;
7
- const chalk_1 = __importDefault(require("chalk"));
8
- const fs_extra_1 = __importDefault(require("fs-extra"));
9
- const path_1 = __importDefault(require("path"));
10
- const utils_js_1 = require("../utils.js");
11
- /**
12
- * Run a yarn command at the workspace root while preserving nested repositories'
13
- * yarn.lock files. Used when the workspace contains sibling repos (via mrgit)
14
- * whose own lockfiles should not be clobbered by a root-level `yarn install`.
15
- *
16
- * Reads mrgit.json to determine which nested repos exist. If mrgit.json is
17
- * missing, falls back to plain yarn behavior.
18
- */
19
- async function safeYarn(args) {
20
- const mrgitPath = path_1.default.join(process.cwd(), 'mrgit.json');
21
- const yarnCmd = `yarn ${args.join(' ')}`;
22
- if (process.env.LINKED_YARN_DRY_RUN) {
23
- console.log(chalk_1.default.cyan(`[dry-run] would execute: ${yarnCmd}`));
24
- console.log(chalk_1.default.cyan(`[dry-run] received args: ${JSON.stringify(args)}`));
25
- return;
26
- }
27
- if (!fs_extra_1.default.existsSync(mrgitPath)) {
28
- await (0, utils_js_1.execp)(yarnCmd, true, false);
29
- return;
30
- }
31
- const mrgit = JSON.parse(fs_extra_1.default.readFileSync(mrgitPath, 'utf8'));
32
- const nestedRepos = Object.keys(mrgit.dependencies || {}).map((dep) => {
33
- // mrgit repo keys can be scoped (e.g. @_linked/core) or plain (the-game).
34
- // The folder they land in is `packages/<last-segment>`.
35
- const folder = dep.includes('/') ? dep.split('/').pop() : dep;
36
- return { name: dep, path: path_1.default.join(process.cwd(), 'packages', folder) };
37
- });
38
- console.log(chalk_1.default.magenta(`Preserving ${nestedRepos.length} nested yarn.lock files during yarn run`));
39
- const backedUp = [];
40
- try {
41
- // Back up nested lockfiles
42
- for (const repo of nestedRepos) {
43
- const lockPath = path_1.default.join(repo.path, 'yarn.lock');
44
- if (fs_extra_1.default.existsSync(lockPath)) {
45
- fs_extra_1.default.renameSync(lockPath, lockPath + '.bak');
46
- fs_extra_1.default.createFileSync(lockPath);
47
- backedUp.push(repo.path);
48
- }
49
- }
50
- // Run the yarn command
51
- await (0, utils_js_1.execp)(yarnCmd, true, false);
52
- }
53
- finally {
54
- // Restore nested lockfiles
55
- for (const repoPath of backedUp) {
56
- const lockPath = path_1.default.join(repoPath, 'yarn.lock');
57
- const bakPath = lockPath + '.bak';
58
- if (fs_extra_1.default.existsSync(bakPath)) {
59
- if (fs_extra_1.default.existsSync(lockPath))
60
- fs_extra_1.default.unlinkSync(lockPath);
61
- fs_extra_1.default.renameSync(bakPath, lockPath);
62
- }
63
- }
64
- }
65
- }
66
- //# sourceMappingURL=safe-yarn.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"safe-yarn.js","sourceRoot":"","sources":["../../../src/commands/safe-yarn.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- export type SetupPublishOptions = {
2
- configureGithub?: boolean;
3
- scope?: 'core' | 'community';
4
- dualBranch?: boolean;
5
- grantTeam?: string;
6
- };
7
- /**
8
- * Set up a single-branch changesets publish workflow in the current package repo.
9
- *
10
- * Installs:
11
- * - .github/workflows/{ci,publish,changeset-check}.yml
12
- * - .changeset/config.json + README.md
13
- * - .changeset/initial-release.md
14
- * - .gitignore entries for node_modules, lib, yarn.lock, src-compiled-artifacts
15
- * - package.json: @changesets/cli + @changesets/changelog-github devDeps,
16
- * publishConfig: {access: public}
17
- * - package-lock.json generated via npm install --package-lock-only
18
- *
19
- * With --configure-github: if `gh` CLI is available and authenticated, also sets
20
- * branch protection on main (strict + required "Build & Test" check).
21
- */
22
- export declare function setupPublish(opts?: SetupPublishOptions): Promise<void>;
23
- //# sourceMappingURL=setup-publish.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup-publish.d.ts","sourceRoot":"","sources":["../../../src/commands/setup-publish.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,mBAAmB,GAAG;IAChC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,YAAY,CAAC,IAAI,GAAE,mBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDhF"}
@@ -1,369 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.setupPublish = setupPublish;
40
- const chalk_1 = __importDefault(require("chalk"));
41
- const fs_extra_1 = __importDefault(require("fs-extra"));
42
- const path_1 = __importStar(require("path"));
43
- const utils_js_1 = require("../utils.js");
44
- const dirname__ = typeof __dirname !== 'undefined'
45
- ? __dirname
46
- : //@ts-ignore
47
- (0, path_1.dirname)(import.meta.url).replace('file:/', '');
48
- // defaults/setup-publish/ lives at packages/cli/defaults/setup-publish/
49
- // This file compiles to lib/{esm,cjs}/commands/setup-publish.js — go up three
50
- // levels to reach the package root, then into defaults/setup-publish.
51
- const TEMPLATE_ROOT = path_1.default.resolve(dirname__, '..', '..', '..', 'defaults', 'setup-publish');
52
- /**
53
- * Set up a single-branch changesets publish workflow in the current package repo.
54
- *
55
- * Installs:
56
- * - .github/workflows/{ci,publish,changeset-check}.yml
57
- * - .changeset/config.json + README.md
58
- * - .changeset/initial-release.md
59
- * - .gitignore entries for node_modules, lib, yarn.lock, src-compiled-artifacts
60
- * - package.json: @changesets/cli + @changesets/changelog-github devDeps,
61
- * publishConfig: {access: public}
62
- * - package-lock.json generated via npm install --package-lock-only
63
- *
64
- * With --configure-github: if `gh` CLI is available and authenticated, also sets
65
- * branch protection on main (strict + required "Build & Test" check).
66
- */
67
- async function setupPublish(opts = {}) {
68
- const cwd = process.cwd();
69
- const scope = opts.scope || 'core';
70
- const npmSecretName = scope === 'community' ? 'NPM_AUTH_TOKEN_CM' : 'NPM_AUTH_TOKEN';
71
- const templateDir = opts.dualBranch
72
- ? path_1.default.join(TEMPLATE_ROOT, 'dual-branch')
73
- : TEMPLATE_ROOT;
74
- console.log(chalk_1.default.magenta(`Setting up ${opts.dualBranch ? 'dual-branch (main + dev)' : 'single-branch (main only)'} publish workflow...`));
75
- console.log(` target: ${cwd}`);
76
- console.log(` npm secret: ${npmSecretName} (${scope})`);
77
- const pkgJsonPath = path_1.default.join(cwd, 'package.json');
78
- if (!fs_extra_1.default.existsSync(pkgJsonPath)) {
79
- console.error(chalk_1.default.red('No package.json found in current directory. Run from the repo root.'));
80
- process.exit(1);
81
- }
82
- const pkgJson = JSON.parse(fs_extra_1.default.readFileSync(pkgJsonPath, 'utf8'));
83
- const repoSlug = await resolveRepoSlug(cwd, pkgJson);
84
- console.log(` repo: ${repoSlug}`);
85
- console.log('');
86
- // 1. Workflow files (with {{NPM_SECRET_NAME}} substitution in publish.yml)
87
- await copyWorkflows(cwd, npmSecretName, templateDir);
88
- // 2. Changesets config + README
89
- await copyChangesetConfig(cwd, repoSlug, templateDir);
90
- // 3. Initial changeset
91
- await writeInitialChangeset(cwd, pkgJson.name);
92
- // 4. .gitignore
93
- await updateGitignore(cwd);
94
- // 5. package.json patches
95
- await patchPackageJson(pkgJsonPath, pkgJson);
96
- // 6. npm install --package-lock-only to generate lockfile (if not present)
97
- await ensureLockfile(cwd);
98
- // 7. Optional: configure GitHub branch protection
99
- if (opts.configureGithub) {
100
- await configureGithub(repoSlug);
101
- }
102
- // 8. Optional: grant a GitHub team push access
103
- if (opts.grantTeam) {
104
- await grantTeamAccess(repoSlug, opts.grantTeam);
105
- }
106
- // Summary + manual steps
107
- printNextSteps(repoSlug, npmSecretName, opts.configureGithub, opts.grantTeam);
108
- }
109
- async function resolveRepoSlug(cwd, pkgJson) {
110
- // Try git remote first
111
- try {
112
- const remoteUrl = await (0, utils_js_1.execPromise)('git config --get remote.origin.url', false, false, { cwd });
113
- const m = typeof remoteUrl === 'string' ? remoteUrl.match(/[:/]([^/:]+\/[^/]+?)(?:\.git)?\s*$/) : null;
114
- if (m)
115
- return m[1];
116
- }
117
- catch (_a) {
118
- // fall through
119
- }
120
- // Fallback: parse package.json repository
121
- const repoField = pkgJson.repository;
122
- if (typeof repoField === 'string') {
123
- const m = repoField.match(/github\.com[:/]([^/]+\/[^/]+?)(?:\.git)?$/);
124
- if (m)
125
- return m[1];
126
- }
127
- else if (repoField === null || repoField === void 0 ? void 0 : repoField.url) {
128
- const m = repoField.url.match(/github\.com[:/]([^/]+\/[^/]+?)(?:\.git)?$/);
129
- if (m)
130
- return m[1];
131
- }
132
- console.warn(chalk_1.default.yellow('Could not determine repo slug. Using placeholder "OWNER/REPO" — update .changeset/config.json manually.'));
133
- return 'OWNER/REPO';
134
- }
135
- async function copyWorkflows(cwd, npmSecretName, templateDir) {
136
- const srcDir = path_1.default.join(templateDir, 'github', 'workflows');
137
- const dstDir = path_1.default.join(cwd, '.github', 'workflows');
138
- fs_extra_1.default.mkdirpSync(dstDir);
139
- for (const file of ['ci.yml', 'publish.yml', 'changeset-check.yml']) {
140
- let content = fs_extra_1.default.readFileSync(path_1.default.join(srcDir, file), 'utf8');
141
- content = content.replace(/\{\{NPM_SECRET_NAME\}\}/g, npmSecretName);
142
- fs_extra_1.default.writeFileSync(path_1.default.join(dstDir, file), content);
143
- console.log(chalk_1.default.green(' ✓') + ` .github/workflows/${file}`);
144
- }
145
- }
146
- async function copyChangesetConfig(cwd, repoSlug, templateDir) {
147
- const srcDir = path_1.default.join(templateDir, 'changeset');
148
- const dstDir = path_1.default.join(cwd, '.changeset');
149
- fs_extra_1.default.mkdirpSync(dstDir);
150
- let configContent = fs_extra_1.default.readFileSync(path_1.default.join(srcDir, 'config.json'), 'utf8');
151
- configContent = configContent.replace(/\{\{REPO_SLUG\}\}/g, repoSlug);
152
- fs_extra_1.default.writeFileSync(path_1.default.join(dstDir, 'config.json'), configContent);
153
- console.log(chalk_1.default.green(' ✓') + ' .changeset/config.json');
154
- fs_extra_1.default.copyFileSync(path_1.default.join(srcDir, 'README.md'), path_1.default.join(dstDir, 'README.md'));
155
- console.log(chalk_1.default.green(' ✓') + ' .changeset/README.md');
156
- }
157
- async function writeInitialChangeset(cwd, pkgName) {
158
- const changelogPath = path_1.default.join(cwd, 'CHANGELOG.md');
159
- if (fs_extra_1.default.existsSync(changelogPath)) {
160
- console.log(chalk_1.default.gray(' · CHANGELOG.md exists — skipping initial changeset'));
161
- return;
162
- }
163
- const initial = path_1.default.join(cwd, '.changeset', 'initial-release.md');
164
- const body = `---\n'${pkgName}': patch\n---\n\nInitial release under the new publishing setup.\n`;
165
- fs_extra_1.default.writeFileSync(initial, body);
166
- console.log(chalk_1.default.green(' ✓') + ' .changeset/initial-release.md');
167
- }
168
- async function updateGitignore(cwd) {
169
- const gitignorePath = path_1.default.join(cwd, '.gitignore');
170
- const entries = [
171
- 'node_modules/',
172
- 'lib/',
173
- 'yarn.lock',
174
- '*.log',
175
- '.DS_Store',
176
- '',
177
- '# tsc sourcemap output — always in lib/, never src/.',
178
- '# (.d.ts not ignored — hand-written type declarations like colors.d.ts',
179
- '# are legit src files.)',
180
- 'src/**/*.js.map',
181
- ];
182
- const existing = fs_extra_1.default.existsSync(gitignorePath)
183
- ? fs_extra_1.default.readFileSync(gitignorePath, 'utf8').split('\n')
184
- : [];
185
- const existingSet = new Set(existing.map((l) => l.trim()));
186
- const toAdd = entries.filter((e) => e && !existingSet.has(e.trim()));
187
- if (toAdd.length === 0) {
188
- console.log(chalk_1.default.gray(' · .gitignore already has all entries'));
189
- return;
190
- }
191
- const merged = [
192
- ...existing.filter((l) => l.trim() !== ''),
193
- '',
194
- ...entries,
195
- ].join('\n');
196
- fs_extra_1.default.writeFileSync(gitignorePath, merged + '\n');
197
- console.log(chalk_1.default.green(' ✓') + ' .gitignore');
198
- }
199
- async function patchPackageJson(pkgJsonPath, pkgJson) {
200
- let modified = false;
201
- if (!pkgJson.publishConfig) {
202
- pkgJson.publishConfig = { access: 'public' };
203
- modified = true;
204
- }
205
- else {
206
- if (pkgJson.publishConfig.access !== 'public') {
207
- pkgJson.publishConfig.access = 'public';
208
- modified = true;
209
- }
210
- // Strip provenance: true — it requires OIDC (id-token: write permission +
211
- // npm Trusted Publisher config), which conflicts with our NPM_AUTH_TOKEN
212
- // flow. Users who want provenance should use OIDC separately.
213
- if (pkgJson.publishConfig.provenance) {
214
- delete pkgJson.publishConfig.provenance;
215
- modified = true;
216
- }
217
- }
218
- pkgJson.devDependencies = pkgJson.devDependencies || {};
219
- if (!pkgJson.devDependencies['@changesets/cli']) {
220
- pkgJson.devDependencies['@changesets/cli'] = '^2.29.8';
221
- modified = true;
222
- }
223
- if (!pkgJson.devDependencies['@changesets/changelog-github']) {
224
- pkgJson.devDependencies['@changesets/changelog-github'] = '^0.5.2';
225
- modified = true;
226
- }
227
- if (modified) {
228
- fs_extra_1.default.writeFileSync(pkgJsonPath, JSON.stringify(pkgJson, null, 2) + '\n');
229
- console.log(chalk_1.default.green(' ✓') + ' package.json (publishConfig + changesets devDeps)');
230
- }
231
- else {
232
- console.log(chalk_1.default.gray(' · package.json already configured'));
233
- }
234
- }
235
- async function ensureLockfile(cwd) {
236
- // Always regenerate — package.json has just been patched (new devDeps etc.),
237
- // so any existing lockfile is stale.
238
- console.log(chalk_1.default.magenta(' Running npm install --package-lock-only...'));
239
- // When running inside a yarn workspace (e.g. CN's packages/* layout), npm
240
- // climbs up, detects the parent workspace, and writes the lockfile at the
241
- // wrong level. Work around by copying the package to a tmpdir, generating
242
- // the lockfile in isolation, and copying it back.
243
- const os = await Promise.resolve().then(() => __importStar(require('os')));
244
- const tmpBase = fs_extra_1.default.mkdtempSync(path_1.default.join(os.tmpdir(), 'linked-setup-'));
245
- const cacheDir = fs_extra_1.default.mkdtempSync(path_1.default.join(os.tmpdir(), 'linked-setup-cache-'));
246
- try {
247
- const pkgJsonPath = path_1.default.join(cwd, 'package.json');
248
- fs_extra_1.default.copyFileSync(pkgJsonPath, path_1.default.join(tmpBase, 'package.json'));
249
- await (0, utils_js_1.execp)(`npm install --legacy-peer-deps --package-lock-only --cache ${cacheDir}`, false, true, { cwd: tmpBase });
250
- const lockPath = path_1.default.join(tmpBase, 'package-lock.json');
251
- if (fs_extra_1.default.existsSync(lockPath)) {
252
- fs_extra_1.default.copyFileSync(lockPath, path_1.default.join(cwd, 'package-lock.json'));
253
- console.log(chalk_1.default.green(' ✓') + ' package-lock.json');
254
- }
255
- else {
256
- console.warn(chalk_1.default.yellow(' ⚠ npm install did not produce a package-lock.json — likely because a dependency is not yet published on npm.'));
257
- console.warn(chalk_1.default.yellow(' Regenerate manually once all deps are published: `npm install --package-lock-only`.'));
258
- }
259
- }
260
- catch (err) {
261
- console.warn(chalk_1.default.yellow(' ⚠ Failed to generate package-lock.json — likely because a dependency is not yet published on npm.'));
262
- console.warn(chalk_1.default.yellow(' Regenerate manually once all deps are published: `npm install --package-lock-only`.'));
263
- }
264
- finally {
265
- fs_extra_1.default.removeSync(tmpBase);
266
- fs_extra_1.default.removeSync(cacheDir);
267
- }
268
- }
269
- async function configureGithub(repoSlug) {
270
- console.log('');
271
- console.log(chalk_1.default.magenta('Configuring GitHub (branch protection)...'));
272
- // Check gh CLI available
273
- try {
274
- await (0, utils_js_1.execPromise)('gh --version', false, false);
275
- }
276
- catch (_a) {
277
- console.warn(chalk_1.default.yellow(' ⚠ `gh` CLI not found. Install from https://cli.github.com/ and retry with --configure-github,'));
278
- console.warn(chalk_1.default.yellow(' or set branch protection manually at https://github.com/' + repoSlug + '/settings/branches'));
279
- return;
280
- }
281
- // Check gh CLI authenticated
282
- try {
283
- await (0, utils_js_1.execPromise)('gh auth status', false, false);
284
- }
285
- catch (_b) {
286
- console.warn(chalk_1.default.yellow(' ⚠ `gh` CLI is not authenticated. Run `gh auth login` and retry.'));
287
- return;
288
- }
289
- const payload = JSON.stringify({
290
- required_status_checks: { strict: true, contexts: ['Build & Test'] },
291
- enforce_admins: false,
292
- required_pull_request_reviews: null,
293
- restrictions: null,
294
- allow_force_pushes: false,
295
- allow_deletions: false,
296
- });
297
- try {
298
- // Use --input - to pass the JSON payload via stdin
299
- await (0, utils_js_1.execPromise)(`echo '${payload.replace(/'/g, "'\\''")}' | gh api -X PUT /repos/${repoSlug}/branches/main/protection --input -`, false, false);
300
- console.log(chalk_1.default.green(' ✓') + ` branch protection enabled on ${repoSlug}/main`);
301
- }
302
- catch (err) {
303
- console.warn(chalk_1.default.yellow(' ⚠ Failed to set branch protection. Do it manually:'));
304
- console.warn(chalk_1.default.yellow(` https://github.com/${repoSlug}/settings/branches`));
305
- }
306
- // Enable "Allow auto-merge" so the post-release back-merge PR (dual-branch) self-merges once
307
- // checks pass. Harmless for single-branch repos. The publish workflow authors release/back-merge
308
- // PRs via the org App token (org secrets RELEASE_APP_ID / RELEASE_APP_PRIVATE_KEY) so their CI
309
- // runs without a manual approval gate.
310
- try {
311
- await (0, utils_js_1.execPromise)(`gh api -X PATCH /repos/${repoSlug} -F allow_auto_merge=true`, false, false);
312
- console.log(chalk_1.default.green(' ✓') + ` auto-merge enabled on ${repoSlug}`);
313
- }
314
- catch (err) {
315
- console.warn(chalk_1.default.yellow(' ⚠ Failed to enable auto-merge. Enable it manually:'));
316
- console.warn(chalk_1.default.yellow(` https://github.com/${repoSlug}/settings (General → Allow auto-merge)`));
317
- }
318
- }
319
- async function grantTeamAccess(repoSlug, teamSlug) {
320
- console.log('');
321
- console.log(chalk_1.default.magenta(`Granting '${teamSlug}' team push access to ${repoSlug}...`));
322
- try {
323
- await (0, utils_js_1.execPromise)('gh --version', false, false);
324
- }
325
- catch (_a) {
326
- console.warn(chalk_1.default.yellow(" ⚠ `gh` CLI not found. Install from https://cli.github.com/ and retry with --grant-team,"));
327
- console.warn(chalk_1.default.yellow(` or add the team manually at https://github.com/${repoSlug}/settings/access`));
328
- return;
329
- }
330
- const [owner, repo] = repoSlug.split('/');
331
- try {
332
- await (0, utils_js_1.execPromise)(`gh api -X PUT /orgs/${owner}/teams/${teamSlug}/repos/${owner}/${repo} -f permission=push`, false, false);
333
- console.log(chalk_1.default.green(' ✓') + ` team '${teamSlug}' granted push access on ${repoSlug}`);
334
- }
335
- catch (err) {
336
- const msg = (err === null || err === void 0 ? void 0 : err.stderr) || (err === null || err === void 0 ? void 0 : err.stdout) || String(err);
337
- console.warn(chalk_1.default.yellow(` ⚠ Failed to grant team access: ${msg.slice(0, 200)}`));
338
- console.warn(chalk_1.default.yellow(` Team may not exist in org '${owner}', or you may lack admin rights.`));
339
- console.warn(chalk_1.default.yellow(` Manual: https://github.com/${repoSlug}/settings/access`));
340
- }
341
- }
342
- function printNextSteps(repoSlug, npmSecretName, configuredGithub, grantedTeam) {
343
- console.log('');
344
- console.log(chalk_1.default.green('Done.'));
345
- console.log('');
346
- console.log(chalk_1.default.bold('Next steps:'));
347
- console.log('');
348
- console.log(` 1. Review the generated files, adjust as needed.`);
349
- console.log(` 2. Commit:`);
350
- console.log(chalk_1.default.cyan(' git add . && git commit -m "set up single-branch publish workflow"'));
351
- console.log(` 3. Push to main — the publish workflow will trigger.`);
352
- console.log('');
353
- console.log(chalk_1.default.bold('One-time org-level setup (if not already done):'));
354
- console.log('');
355
- console.log(` a. Create an org secret ${chalk_1.default.cyan(npmSecretName)} with a granular npm token`);
356
- console.log(` (2FA-bypass, write access to the @_linked* scope).`);
357
- console.log(` → https://github.com/organizations/${repoSlug.split('/')[0]}/settings/secrets/actions`);
358
- console.log('');
359
- console.log(` b. Enable "Allow GitHub Actions to create and approve pull requests":`);
360
- console.log(` → https://github.com/organizations/${repoSlug.split('/')[0]}/settings/actions`);
361
- if (!configuredGithub) {
362
- console.log('');
363
- console.log(chalk_1.default.bold('Branch protection:'));
364
- console.log(` Rerun with ${chalk_1.default.cyan('linked setup-publish --configure-github')} to configure automatically,`);
365
- console.log(` or set manually at https://github.com/${repoSlug}/settings/branches`);
366
- }
367
- console.log('');
368
- }
369
- //# sourceMappingURL=setup-publish.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup-publish.js","sourceRoot":"","sources":["../../../src/commands/setup-publish.ts"],"names":[],"mappings":"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"}
@@ -1,112 +0,0 @@
1
- import TerserPlugin from 'terser-webpack-plugin';
2
- import { LinkedConfig } from './interfaces.js';
3
- /**
4
- * Converts a css class name to a unique scoped name (for CSS Modules)
5
- * @param context
6
- * @param currentFormat
7
- * @param name
8
- */
9
- declare function getLocalIdent(context: any, currentFormat: any, name: any): string;
10
- export declare const getLinkedConfig: () => Promise<LinkedConfig>;
11
- export declare const getWebpackAppConfig: () => Promise<{
12
- mode: string;
13
- devtool: string;
14
- entry: string[];
15
- watch: boolean;
16
- output: {
17
- path: string;
18
- filename: string;
19
- publicPath: string;
20
- clean: boolean;
21
- };
22
- watchOptions: {
23
- ignored: RegExp;
24
- aggregateTimeout: number;
25
- };
26
- devServer: {
27
- client: {
28
- progress: boolean;
29
- };
30
- };
31
- plugins: any[];
32
- externals: {
33
- [npmModule: string]: string;
34
- };
35
- module: {
36
- rules: ({
37
- test: RegExp;
38
- use: (string | {
39
- loader: string;
40
- options: {
41
- url: boolean;
42
- importLoaders: number;
43
- modules: {
44
- mode: string;
45
- getLocalIdent: typeof getLocalIdent;
46
- auto: (resourcePath: string) => boolean;
47
- };
48
- postcssOptions?: undefined;
49
- };
50
- } | {
51
- loader: string;
52
- options: {
53
- postcssOptions: {
54
- plugins: any[];
55
- };
56
- url?: undefined;
57
- importLoaders?: undefined;
58
- modules?: undefined;
59
- };
60
- })[];
61
- exclude?: undefined;
62
- } | {
63
- test: RegExp;
64
- use: {
65
- loader: string;
66
- options: {
67
- transpileOnly: boolean;
68
- getCustomTransformers?: () => {
69
- before: import("typescript").TransformerFactory<import("typescript").SourceFile>[];
70
- };
71
- };
72
- }[];
73
- exclude: RegExp;
74
- })[];
75
- };
76
- optimization: {
77
- minimize: boolean;
78
- minimizer: TerserPlugin<{
79
- keep_classnames: boolean;
80
- }>[];
81
- splitChunks: {
82
- cacheGroups: {
83
- defaultVendors: boolean;
84
- default: boolean;
85
- };
86
- };
87
- };
88
- stats: {
89
- chunks: boolean;
90
- assets: boolean;
91
- entrypoints: boolean;
92
- children: boolean;
93
- modules: boolean;
94
- };
95
- resolve: {
96
- extensions: string[];
97
- alias: {
98
- [oldNpmPath: string]: string;
99
- };
100
- extensionAlias: {
101
- '.js': string[];
102
- '.jsx': string[];
103
- };
104
- };
105
- cache: {
106
- type: "filesystem";
107
- } | {
108
- type: "memory";
109
- };
110
- }>;
111
- export {};
112
- //# sourceMappingURL=config-webpack-app.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-webpack-app.d.ts","sourceRoot":"","sources":["../../src/config-webpack-app.ts"],"names":[],"mappings":"AAMA,OAAO,YAAY,MAAM,uBAAuB,CAAC;AAIjD,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AA2E7C;;;;;GAKG;AACH,iBAAS,aAAa,CAAC,OAAO,KAAA,EAAE,aAAa,KAAA,EAAE,IAAI,KAAA,UAGlD;AAED,eAAO,MAAM,eAAe,QAAa,OAAO,CAAC,YAAY,CA4D5D,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CAqLO,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAyFd,YAAY;;cAChB,QAAQ;;EAElC,CAAC"}