pob 33.1.0 → 33.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,25 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [33.2.0](https://github.com/christophehurpeau/pob/compare/pob@33.1.0...pob@33.2.0) (2026-03-12)
7
+
8
+ ### Features
9
+
10
+ * remove nextjs and remix
11
+ * update pob/eslint-config
12
+ * use OIDC publishing
13
+
14
+ ### Bug Fixes
15
+
16
+ * handle optional TypeScript test loader in test command
17
+ * remove unnecessary dev dependency for non-monorepo packages
18
+
19
+ Version bump for dependency: @pob/sort-object
20
+ Version bump for dependency: @pob/sort-pkg
21
+ Version bump for dependency: pob-dependencies
22
+ Version bump for dependency: @pob/root
23
+
24
+
6
25
  ## [33.1.0](https://github.com/christophehurpeau/pob/compare/pob@33.0.1...pob@33.1.0) (2026-03-01)
7
26
 
8
27
  ### Bug Fixes
@@ -368,13 +368,13 @@ export default class PobAppGenerator extends Generator {
368
368
 
369
369
  switch (this.appConfig.type) {
370
370
  case "next.js":
371
- this.composeWith("pob:app:nextjs", {
372
- export: this.appConfig.export,
373
- });
374
- break;
371
+ throw new Error(
372
+ "nextjs has been removed. Please migrate to 'vite' or 'expo'.",
373
+ );
375
374
  case "remix":
376
- this.composeWith("pob:app:remix", {});
377
- break;
375
+ throw new Error(
376
+ "remix has been removed. Please migrate to 'vite' or 'expo'.",
377
+ );
378
378
  case "vite":
379
379
  this.composeWith("pob:app:vite", {});
380
380
  break;
@@ -1,5 +1,5 @@
1
1
  import Generator from "yeoman-generator";
2
- import { latestLTS } from "../../../utils/nodeVersions.js";
2
+ // import { latestLTS } from "../../../utils/nodeVersions.js";
3
3
  import * as packageUtils from "../../../utils/package.js";
4
4
 
5
5
  export default class CommonReleaseGenerator extends Generator {
@@ -82,7 +82,7 @@ export default class CommonReleaseGenerator extends Generator {
82
82
  isMonorepoIndependent:
83
83
  this.options.isMonorepo &&
84
84
  (!pkg.version || pkg.version === "0.0.0"),
85
- nodeLatestMajorVersion: latestLTS,
85
+ nodeLatestMajorVersion: 24, // TODO use latestLTS, when latest is updated to 24
86
86
  },
87
87
  );
88
88
  } else {
@@ -89,9 +89,6 @@ jobs:
89
89
  - name: New version
90
90
  if: github.ref == 'refs/heads/main' && !inputs.dry-run
91
91
  run: |
92
- <% if (packageManager === "bun") { -%>
93
- npm install -g npm@latest
94
- <% } -%>
95
92
  <%= packageManager %> run pob-version <% if (enablePublish && packageManager === "bun") { %>--publish <% } %>--create-release=github <% if (isMonorepo && isMonorepoIndependent) { %> --bump-dependents-highest-as=${{ inputs.bump-dependents-highest-as }}<% } %> -m 'chore: release <%- isMonorepoIndependent ? '' : '%v ' %>[skip ci]<%- isMonorepoIndependent ? '\\n\\n%t' : '' %>'
96
93
  env:
97
94
  POB_GIT_HOOKS: 0
@@ -102,17 +99,9 @@ jobs:
102
99
  - name: Publish to npm
103
100
  if: github.ref == 'refs/heads/main' && !inputs.dry-run
104
101
  run: |
105
- if [ -z "$NPM_AUTH_TOKEN" ]; then
106
- echo "Missing env variable NPM_AUTH_TOKEN"
107
- exit 1
108
- fi
109
- echo >> ./.yarnrc.yml
110
- echo "npmAuthToken: $NPM_AUTH_TOKEN" >> ./.yarnrc.yml
111
102
  <% if (isMonorepo) { -%>
112
103
  yarn workspaces foreach --all --parallel --no-private npm publish --tolerate-republish
113
104
  <% } else { -%>
114
105
  yarn npm publish
115
106
  <% } -%>
116
- env:
117
- NPM_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
118
107
  <% } -%>
@@ -316,7 +316,9 @@ export default class CommonTestingGenerator extends Generator {
316
316
  } --all --src ./${this.options.srcDirectory} `
317
317
  : ""
318
318
  }node ${
319
- this.options.typescript ? `${tsTestLoaderOption} ` : ""
319
+ this.options.typescript
320
+ ? `${tsTestLoaderOption ? `${tsTestLoaderOption} ` : ""}`
321
+ : ""
320
322
  }${this.fs.exists("src/test-setup.ts") ? "--import ./src/test-setup.ts " : ""}--test${experimentalTestCoverage && (coverage || coverageJson) ? " --experimental-test-coverage" : ""} ${this.options.monorepo ? `${workspacesPattern}/*/` : ""}${`${
321
323
  hasTestFolder ? "test/*" : `${this.options.srcDirectory}/**/*.test`
322
324
  }.${this.options.typescript ? "ts" : "js"}`}`;
@@ -81,10 +81,6 @@ export default class MonorepoWorkspacesGenerator extends Generator {
81
81
  delete pkg.engines.yarn;
82
82
  }
83
83
 
84
- if (pkg.name !== "pob-monorepo") {
85
- packageUtils.addDevDependencies(pkg, ["repository-check-dirty"]);
86
- }
87
-
88
84
  const monorepoConfig = this.config.get("monorepo");
89
85
  const packageManager = this.options.packageManager;
90
86
 
package/lib/pob.js CHANGED
@@ -13,8 +13,6 @@ import minimist from "minimist";
13
13
  import * as yeoman from "yeoman-environment";
14
14
  import PobAppGenerator from "./generators/app/PobAppGenerator.js";
15
15
  import AppE2ETestingGenerator from "./generators/app/e2e-testing/AppE2ETestingGenerator.js";
16
- import AppNextjsGenerator from "./generators/app/nextjs/AppNextjsGenerator.js";
17
- import AppRemixGenerator from "./generators/app/remix/AppRemixGenerator.js";
18
16
  import AppViteGenerator from "./generators/app/vite/AppViteGenerator.js";
19
17
  import CommonBabelGenerator from "./generators/common/babel/CommonBabelGenerator.js";
20
18
  import CommonLintGenerator from "./generators/common/format-lint/CommonLintGenerator.js";
@@ -97,16 +95,6 @@ env.registerStub(
97
95
  "pob:app:e2e-testing",
98
96
  `${__dirname}/generators/app/e2e-testing/AppE2ETestingGenerator.js`,
99
97
  );
100
- env.registerStub(
101
- AppNextjsGenerator,
102
- "pob:app:nextjs",
103
- `${__dirname}/generators/app/nextjs/AppNextjsGenerator.js`,
104
- );
105
- env.registerStub(
106
- AppRemixGenerator,
107
- "pob:app:remix",
108
- `${__dirname}/generators/app/nextjs/AppRemixGenerator.js`,
109
- );
110
98
  env.registerStub(
111
99
  AppViteGenerator,
112
100
  "pob:app:vite",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pob",
3
- "version": "33.1.0",
3
+ "version": "33.2.0",
4
4
  "description": "Pile of bones, library generator with git/babel/typescript/typedoc/readme/jest",
5
5
  "keywords": [
6
6
  "skeleton"
@@ -36,22 +36,22 @@
36
36
  "build:definitions": "tsc -p tsconfig.json",
37
37
  "format": "prettier --write",
38
38
  "lint": "yarn run lint:eslint",
39
- "lint:eslint": "yarn ../.. run eslint --quiet 'packages/pob'"
39
+ "lint:eslint": "yarn '../..' run eslint --quiet 'packages/pob'"
40
40
  },
41
41
  "pob": {
42
42
  "typescript": "check-only"
43
43
  },
44
44
  "prettier": "@pob/root/prettier-config",
45
45
  "dependencies": {
46
- "@pob/eslint-config": "65.0.2",
47
- "@pob/eslint-config-typescript-react": "65.0.2",
48
- "@pob/sort-object": "10.1.1",
49
- "@pob/sort-pkg": "12.1.1",
46
+ "@pob/eslint-config": "65.2.0",
47
+ "@pob/eslint-config-typescript-react": "65.2.0",
48
+ "@pob/sort-object": "10.1.2",
49
+ "@pob/sort-pkg": "12.1.2",
50
50
  "@prettier/sync": "0.6.1",
51
51
  "@types/inquirer": "9.0.9",
52
52
  "@yeoman/adapter": "3.1.0",
53
53
  "@yeoman/types": "1.8.0",
54
- "eslint": "9.39.3",
54
+ "eslint": "10.0.3",
55
55
  "findup-sync": "^5.0.0",
56
56
  "git-remote-url": "^1.0.1",
57
57
  "github-username": "^9.0.0",
@@ -63,7 +63,7 @@
63
63
  "mem-fs-editor": "11.1.4",
64
64
  "minimist": "1.2.8",
65
65
  "parse-author": "2.0.0",
66
- "pob-dependencies": "22.1.0",
66
+ "pob-dependencies": "22.2.0",
67
67
  "prettier": "3.8.1",
68
68
  "semver": "7.7.4",
69
69
  "typescript": "5.9.3",
@@ -72,7 +72,7 @@
72
72
  "yeoman-generator": "7.5.1"
73
73
  },
74
74
  "devDependencies": {
75
- "@pob/root": "22.1.0",
76
- "@types/node": "22.19.1"
75
+ "@pob/root": "22.2.0",
76
+ "@types/node": "22.19.13"
77
77
  }
78
78
  }
@@ -1,28 +0,0 @@
1
- import Generator from "yeoman-generator";
2
- import * as packageUtils from "../../../utils/package.js";
3
-
4
- export default class AppNextjsGenerator extends Generator {
5
- constructor(args, opts) {
6
- super(args, opts);
7
-
8
- this.option("export", {
9
- type: Boolean,
10
- required: false,
11
- default: true,
12
- description: "Use next export.",
13
- });
14
- }
15
-
16
- writing() {
17
- const pkg = this.fs.readJSON(this.destinationPath("package.json"));
18
-
19
- packageUtils.addScripts(pkg, {
20
- start: "next dev",
21
- "start:prod": "next start",
22
- // NODE_ENV=production is for tamagui
23
- build: "NODE_ENV=production next build",
24
- });
25
-
26
- this.fs.writeJSON(this.destinationPath("package.json"), pkg);
27
- }
28
- }
@@ -1,17 +0,0 @@
1
- import Generator from "yeoman-generator";
2
- import * as packageUtils from "../../../utils/package.js";
3
-
4
- // run "yarn create remix remix" first, then "cd remix ; pob app"
5
- export default class AppRemixGenerator extends Generator {
6
- writing() {
7
- const pkg = this.fs.readJSON(this.destinationPath("package.json"));
8
-
9
- packageUtils.addScripts(pkg, {
10
- build: "cross-env NODE_ENV=production remix build",
11
- start: "cross-env NODE_ENV=development remix dev",
12
- "start:prod": "cross-env NODE_ENV=production remix-serve build",
13
- });
14
-
15
- this.fs.writeJSON(this.destinationPath("package.json"), pkg);
16
- }
17
- }