pob 9.16.0 → 10.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,68 @@
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
+ # [10.1.0](https://github.com/christophehurpeau/pob/compare/pob@10.0.0...pob@10.1.0) (2022-02-12)
7
+
8
+
9
+ ### Features
10
+
11
+ * **deps:** update @pob/eslint-config to v49 (major) ([#1203](https://github.com/christophehurpeau/pob/issues/1203)) ([c063b55](https://github.com/christophehurpeau/pob/commit/c063b553eb15e3d3422f149b89ac1f9f12958e43))
12
+
13
+
14
+
15
+
16
+
17
+ # [10.0.0](https://github.com/christophehurpeau/pob/compare/pob@9.16.2...pob@10.0.0) (2022-02-12)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * **deps:** update dependency @yarnpkg/parsers to v2.5.0-rc.12 ([#1195](https://github.com/christophehurpeau/pob/issues/1195)) ([90c432e](https://github.com/christophehurpeau/pob/commit/90c432e9c714db95901bec29f3899d4ac8f24bd8))
23
+ * **deps:** update dependency @yarnpkg/parsers to v2.5.0-rc.13 ([#1200](https://github.com/christophehurpeau/pob/issues/1200)) ([8351d60](https://github.com/christophehurpeau/pob/commit/8351d60fee9b6629fbba5876eaf142af3a3bc544))
24
+ * **pob:** nextjs generator ([5f814dd](https://github.com/christophehurpeau/pob/commit/5f814dd9243c46d5b96fdc8b01adadaa044f2734))
25
+
26
+
27
+ ### Features
28
+
29
+ * **deps:** update dependency eslint to v8.9.0 ([#1202](https://github.com/christophehurpeau/pob/issues/1202)) ([0c59870](https://github.com/christophehurpeau/pob/commit/0c59870f0cb4e9c7bf5a478446164de297c44ea8))
30
+ * **pob:** add watch in monorepo with rollup ([eba1e69](https://github.com/christophehurpeau/pob/commit/eba1e693149807b5a139eda1036b8d131e7a7228))
31
+ * **pob:** improve nextjs config ([17c4daf](https://github.com/christophehurpeau/pob/commit/17c4dafd3af2f982e0e0b260b7d5352f1e9f8c36))
32
+ * use react jsx-runtime ([5c8bd2b](https://github.com/christophehurpeau/pob/commit/5c8bd2ba8fc1153537a26e3439852fab4c7878de))
33
+
34
+
35
+ ### BREAKING CHANGES
36
+
37
+ * requires react with jsx-supported runtime
38
+
39
+
40
+
41
+
42
+
43
+ ## [9.16.2](https://github.com/christophehurpeau/pob/compare/pob@9.16.1...pob@9.16.2) (2022-02-06)
44
+
45
+
46
+ ### Bug Fixes
47
+
48
+ * add missing cwd in apps to work in monorepo ([d8357bc](https://github.com/christophehurpeau/pob/commit/d8357bceb325cb14b90a86bf0a89168aad58565b))
49
+ * **deps:** update @pob/eslint-config to v48.1.1 ([#1193](https://github.com/christophehurpeau/pob/issues/1193)) ([bc8b133](https://github.com/christophehurpeau/pob/commit/bc8b1336982c6461e17645cef40d719cd1a8ac1c))
50
+ * **pob:** add missing @babel/core in monorepo with pob-babel ([4595747](https://github.com/christophehurpeau/pob/commit/45957478be9d01e56ffcffc8d2f9bec3a9899b9a))
51
+
52
+
53
+
54
+
55
+
56
+ ## [9.16.1](https://github.com/christophehurpeau/pob/compare/pob@9.16.0...pob@9.16.1) (2022-02-06)
57
+
58
+
59
+ ### Bug Fixes
60
+
61
+ * dont add rollup.config.mjs for non typescript monorepos ([848e578](https://github.com/christophehurpeau/pob/commit/848e57843d03eeb6fd9d5544eff085248110c711))
62
+ * **pob:** always add engines ([7095ad3](https://github.com/christophehurpeau/pob/commit/7095ad3388d503f4a752403530c2e7c24b385248))
63
+
64
+
65
+
66
+
67
+
6
68
  # [9.16.0](https://github.com/christophehurpeau/pob/compare/pob@9.15.1...pob@9.16.0) (2022-02-05)
7
69
 
8
70
 
@@ -135,6 +135,7 @@ export default class PobAppGenerator extends Generator {
135
135
 
136
136
  this.composeWith('pob:common:typescript', {
137
137
  enable: babel,
138
+ // nextjs now supports src rootDir: this.appConfig.type === 'next.js' ? '.' : 'src',
138
139
  builddefs: false,
139
140
  dom: browser,
140
141
  jsx,
@@ -144,11 +145,12 @@ export default class PobAppGenerator extends Generator {
144
145
  if (
145
146
  this.appConfig.type === 'alp' ||
146
147
  this.appConfig.type === 'pobpack' ||
147
- this.appConfig.type === 'node'
148
+ this.appConfig.type === 'node' ||
149
+ this.appConfig.type === 'next.js'
148
150
  ) {
149
151
  return './src';
150
152
  }
151
- if (this.appConfig.type === 'next.js') return '.';
153
+ // if (this.appConfig.type === 'next.js') return '.';
152
154
  return '';
153
155
  })(),
154
156
  });
@@ -172,6 +174,7 @@ export default class PobAppGenerator extends Generator {
172
174
  babel,
173
175
  node,
174
176
  browser,
177
+ // nextjs now supports src rootAsSrc: this.appConfig.type === 'next.js',
175
178
  enableSrcResolver: true,
176
179
  packageManager: this.options.packageManager,
177
180
  yarnNodeLinker: this.options.yarnNodeLinker,
@@ -1,6 +1,6 @@
1
1
  export const appIgnorePaths = {
2
2
  alp: (config) => ['# alp paths', '/build', '/public', '/data'],
3
- 'next.js': (config) => ['# next.js paths', '/.next', '/out'],
3
+ 'next.js': (config) => ['# next.js paths', '/.next', '/out', '/build'],
4
4
  pobpack: (config) => ['/build', '/public'],
5
5
  node: (config) => ['/dist'],
6
6
  other: (config) => [],
@@ -17,8 +17,9 @@ export default class AppNextjsGenerator extends Generator {
17
17
  const pkg = this.fs.readJSON(this.destinationPath('package.json'));
18
18
 
19
19
  packageUtils.addScripts(pkg, {
20
+ start: 'next dev',
21
+ 'start:prod': 'next start',
20
22
  build: 'next build',
21
- start: 'next',
22
23
  });
23
24
 
24
25
  this.fs.writeJSON(this.destinationPath('package.json'), pkg);
@@ -401,13 +401,8 @@ export default class CommonBabelGenerator extends Generator {
401
401
  } else {
402
402
  packageUtils.removeDependencies(pkg, ['@types/node']);
403
403
  packageUtils.removeDevDependencies(pkg, ['@types/node']);
404
- if (pkg.engines && useBabel) {
405
- delete pkg.engines.node;
406
- if (Object.keys(pkg.engines).length === 0) delete pkg.engines;
407
- } else {
408
- // Supported LTS versions of node, that supports ESM modules.
409
- pkg.engines.node = '^14.13.1 || >=16.0.0';
410
- }
404
+ // Supported LTS versions of node, that supports ESM modules.
405
+ pkg.engines.node = '^14.13.1 || >=16.0.0';
411
406
  }
412
407
 
413
408
  /* browserslist */
@@ -4,5 +4,6 @@ import run from 'pob-babel/plugin-run.cjs';
4
4
  const watch = process.env.ROLLUP_WATCH === 'true';
5
5
 
6
6
  export default createRollupConfig({
7
+ cwd: new URL('.', import.meta.url).pathname,
7
8
  plugins: [watch && run({ execArgv: ['--enable-source-maps'] })],
8
9
  });
@@ -47,6 +47,13 @@ export default class CommonLintGenerator extends Generator {
47
47
  desc: 'Enable resolving from src directory',
48
48
  });
49
49
 
50
+ this.option('rootAsSrc', {
51
+ type: Boolean,
52
+ required: false,
53
+ defaults: false,
54
+ desc: 'src directory is root',
55
+ });
56
+
50
57
  this.option('appTypes', {
51
58
  type: String,
52
59
  required: false,
@@ -368,19 +375,16 @@ export default class CommonLintGenerator extends Generator {
368
375
  this.fs.delete(`${eslintrcBadPath}.yml`);
369
376
  this.fs.delete(`${eslintrcBadPath}.js`);
370
377
 
371
- const rootEslintrcPath = this.destinationPath('.eslintrc.json');
378
+ const rootEslintrcPath = this.options.rootAsSrc
379
+ ? false
380
+ : this.destinationPath('.eslintrc.json');
372
381
 
373
- const srcEslintrcPath = this.destinationPath(
374
- `${useBabel ? 'src/' : 'lib/'}.eslintrc.json`,
375
- );
382
+ const srcEslintrcPath = this.options.rootAsSrc
383
+ ? this.destinationPath('.eslintrc.json')
384
+ : this.destinationPath(`${useBabel ? 'src/' : 'lib/'}.eslintrc.json`);
376
385
 
377
386
  const useTypescript = useBabel;
378
-
379
- try {
380
- if (this.fs.exists(rootEslintrcPath)) {
381
- ensureJsonFileFormatted(rootEslintrcPath);
382
- }
383
-
387
+ const getRootIgnorePatterns = () => {
384
388
  const ignorePatterns = new Set();
385
389
 
386
390
  if (inLerna && !inLerna.root && (this.options.typescript || pkg.types)) {
@@ -394,7 +398,7 @@ export default class CommonLintGenerator extends Generator {
394
398
  if ((!inLerna || !inLerna.root) && useBabel) {
395
399
  ignorePatterns.add('/dist', '/test');
396
400
  }
397
- if (inLerna && inLerna.root) {
401
+ if (inLerna && inLerna.root && this.options.typescript) {
398
402
  ignorePatterns.add('/rollup.config.mjs');
399
403
  }
400
404
 
@@ -408,19 +412,34 @@ export default class CommonLintGenerator extends Generator {
408
412
  });
409
413
  }
410
414
 
411
- const rootEslintrcConfig = updateEslintConfig(
412
- this.fs.readJSON(rootEslintrcPath, {}),
413
- {
414
- extendsConfig: extendsConfigRoot,
415
- ignorePatterns:
416
- ignorePatterns.size === 0 ? undefined : [...ignorePatterns],
417
- },
418
- );
415
+ return ignorePatterns;
416
+ };
419
417
 
420
- writeAndFormatJson(this.fs, rootEslintrcPath, rootEslintrcConfig);
421
- } catch (err) {
422
- console.warn(`Could not parse/edit ${rootEslintrcPath}: `, err);
418
+ if (rootEslintrcPath) {
419
+ try {
420
+ if (this.fs.exists(rootEslintrcPath)) {
421
+ ensureJsonFileFormatted(rootEslintrcPath);
422
+ }
423
+
424
+ const rootIgnorePatterns = getRootIgnorePatterns();
425
+
426
+ const rootEslintrcConfig = updateEslintConfig(
427
+ this.fs.readJSON(rootEslintrcPath, {}),
428
+ {
429
+ extendsConfig: extendsConfigRoot,
430
+ ignorePatterns:
431
+ rootIgnorePatterns.size === 0
432
+ ? undefined
433
+ : [...rootIgnorePatterns],
434
+ },
435
+ );
436
+
437
+ writeAndFormatJson(this.fs, rootEslintrcPath, rootEslintrcConfig);
438
+ } catch (err) {
439
+ console.warn(`Could not parse/edit ${rootEslintrcPath}: `, err);
440
+ }
423
441
  }
442
+ // no else: dont delete root eslintrc, src is root
424
443
 
425
444
  if ((inLerna && inLerna.root) || this.options.monorepo) {
426
445
  if (this.fs.exists(srcEslintrcPath)) {
@@ -432,6 +451,13 @@ export default class CommonLintGenerator extends Generator {
432
451
  ensureJsonFileFormatted(srcEslintrcPath);
433
452
  }
434
453
 
454
+ const ignorePatterns = this.options.rootAsSrc
455
+ ? getRootIgnorePatterns()
456
+ : new Set();
457
+ if (useTypescript || pkg.types) {
458
+ ignorePatterns.add('*.d.ts');
459
+ }
460
+
435
461
  const srcEslintrcConfig = updateEslintConfig(
436
462
  this.fs.readJSON(srcEslintrcPath, {}),
437
463
  {
@@ -439,7 +465,8 @@ export default class CommonLintGenerator extends Generator {
439
465
  jestOverride,
440
466
  useTypescript: useBabel,
441
467
  globalEslint,
442
- ignorePatterns: useTypescript || pkg.types ? ['*.d.ts'] : undefined,
468
+ ignorePatterns:
469
+ ignorePatterns.size === 0 ? undefined : [...ignorePatterns],
443
470
  settings: {
444
471
  'import/resolver': this.options.enableSrcResolver
445
472
  ? {
@@ -12,8 +12,10 @@ module.exports = function babelConfig(api) {
12
12
  <% if (hasReact) { %>, [
13
13
  '@babel/preset-react',
14
14
  {
15
+ runtime: 'automatic',
15
16
  development: false,
16
17
  useBuiltIns: true,
18
+ useSpread: true,
17
19
  },
18
20
  ]<% } %>
19
21
  <% if (hasLinaria) { %>, [
@@ -14,6 +14,12 @@ export default class CommonTypescriptGenerator extends Generator {
14
14
  desc: 'enable typescript',
15
15
  });
16
16
 
17
+ this.option('rootDir', {
18
+ type: String,
19
+ defaults: 'src',
20
+ desc: 'customize rootDir',
21
+ });
22
+
17
23
  this.option('jsx', {
18
24
  type: Boolean,
19
25
  defaults: true,
@@ -71,7 +77,7 @@ export default class CommonTypescriptGenerator extends Generator {
71
77
  if (this.options.enable) {
72
78
  const { jsx, dom } = this.options;
73
79
  let composite;
74
- let monorepoPackageNames;
80
+ let monorepoPackageBuildReferences;
75
81
  let monorepoPackageSrcPaths;
76
82
 
77
83
  if (inLerna && !inLerna.root) {
@@ -89,26 +95,39 @@ export default class CommonTypescriptGenerator extends Generator {
89
95
  ['typescript'],
90
96
  );
91
97
 
92
- monorepoPackageNames = yoConfig.pob.monorepo.packageNames.filter(
93
- (packageName) =>
94
- ((pkg.dependencies && pkg.dependencies[packageName]) ||
95
- (pkg.devDependencies && pkg.devDependencies[packageName]) ||
96
- (pkg.peerDependencies && pkg.peerDependencies[packageName])) &&
97
- existsSync(
98
+ const packageLocations = new Map(
99
+ yoConfig.pob.monorepo.packageNames
100
+ .filter(
101
+ (packageName) =>
102
+ (pkg.dependencies && pkg.dependencies[packageName]) ||
103
+ (pkg.devDependencies && pkg.devDependencies[packageName]) ||
104
+ (pkg.peerDependencies && pkg.peerDependencies[packageName]),
105
+ )
106
+ .map((packageName) => [
107
+ packageName,
98
108
  `../../${
99
109
  packageName[0] === '@'
100
110
  ? packageName
101
111
  : `packages/${packageName}`
102
- }/tsconfig.build.json`,
103
- ),
112
+ }`,
113
+ ]),
104
114
  );
105
115
 
106
- monorepoPackageSrcPaths = monorepoPackageNames.map(
107
- (packageName) =>
108
- `${
109
- packageName[0] === '@' ? packageName : `packages/${packageName}`
110
- }/${existsSync(`../${packageName}/src`) ? 'src' : 'lib'}`,
116
+ monorepoPackageSrcPaths = [...packageLocations.entries()].map(
117
+ ([packageName, packageLocation]) => [
118
+ packageName,
119
+ `${packageLocation}/${
120
+ existsSync(`${packageLocation}/src`) ? 'src' : 'lib'
121
+ }`,
122
+ ],
111
123
  );
124
+ monorepoPackageBuildReferences = yoConfig.pob.monorepo.packageNames
125
+ .filter((packageName) =>
126
+ existsSync(
127
+ `${packageLocations.get(packageName)}/tsconfig.build.json`,
128
+ ),
129
+ )
130
+ .map((packageName) => packageLocations.get(packageName));
112
131
  }
113
132
  }
114
133
 
@@ -117,8 +136,9 @@ export default class CommonTypescriptGenerator extends Generator {
117
136
  this.templatePath('tsconfig.json.ejs'),
118
137
  tsconfigPath,
119
138
  {
120
- monorepoPackageNames,
121
139
  monorepoPackageSrcPaths,
140
+ monorepoPackageBuildReferences,
141
+ rootDir: this.options.rootDir,
122
142
  jsx,
123
143
  composite,
124
144
  dom,
@@ -138,8 +158,8 @@ export default class CommonTypescriptGenerator extends Generator {
138
158
  inMonorepo: inLerna && !inLerna.root,
139
159
  jsx,
140
160
  composite,
141
- monorepoPackageNames,
142
161
  monorepoPackageSrcPaths,
162
+ monorepoPackageBuildReferences,
143
163
  },
144
164
  );
145
165
  } else {
@@ -2,7 +2,6 @@
2
2
  "extends": "./tsconfig.json",
3
3
 
4
4
  "compilerOptions": {
5
- "rootDir": "src",
6
5
  "noEmit": false,
7
6
  "declaration": true,
8
7
  "declarationMap": true,
@@ -23,11 +22,11 @@
23
22
  "src/**/*.test.tsx",
24
23
  <% } -%>
25
24
  "src/**/__tests__/**"
26
- ]<% if (monorepoPackageNames && monorepoPackageNames.length) { %>,<% } -%>
27
- <% if (monorepoPackageNames && monorepoPackageNames.length) { %>
25
+ ]<% if (monorepoPackageBuildReferences && monorepoPackageBuildReferences.length) { %>,<% } -%>
26
+ <% if (monorepoPackageBuildReferences && monorepoPackageBuildReferences.length) { %>
28
27
  "references": [
29
- <% monorepoPackageNames.forEach((packageName, index) => { -%>
30
- { "path": "../<%= packageName %>/tsconfig.build.json" }<%= index === monorepoPackageNames.length -1 ? '' : ',' %>
28
+ <% monorepoPackageBuildReferences.forEach((monorepoPackageSrcPath, index) => { -%>
29
+ { "path": "<%= monorepoPackageSrcPath %>/tsconfig.json" }<%= index === monorepoPackageBuildReferences.length -1 ? '' : ',' %>
31
30
  <% }) -%>
32
31
  ]<% } -%>
33
32
  }
@@ -1,16 +1,21 @@
1
1
  {
2
2
  "include": [
3
- "src/**/*.ts"<% if (jsx) { -%>,
4
- "src/**/*.tsx"<% } %>
3
+ "<%= rootDir %>/**/*.ts"<% if (jsx) { -%>,
4
+ "<%= rootDir %>/**/*.tsx"<% } %>
5
5
  ],
6
+ <% if(rootDir === '.') { -%>
7
+ "exclude": [
8
+ "node_modules"
9
+ ],
10
+ <% } -%>
6
11
  "compilerOptions": {
7
- "rootDir": "src",
12
+ "rootDir": "<%= rootDir %>",
13
+ "incremental": true,
8
14
  <% if(!composite) { -%>
9
15
  /* No emit in default config file. See build config file for config to build declaration files */
10
16
  "noEmit": true,
11
17
  <% } else { -%>
12
18
  "composite": true,
13
- "incremental": true,
14
19
  "noEmit": false,
15
20
  "noEmitOnError": true,
16
21
  "declaration": true,
@@ -26,7 +31,7 @@
26
31
  "target": "esnext", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */
27
32
  "module": "esnext", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
28
33
  "lib": [<%- dom ? '"dom", ' : '' %>"esnext"], /* Polyfills are imported either by babel or with polyfill.io */
29
- <%= jsx ? '' : '// ' %>"jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */
34
+ <%= jsx ? '' : '// ' %>"jsx": "react-jsx", /* 'react-jsx' is used with react/jsx-runtime (react >=17 || >= 16.14.0 | >= 15.7.0) */
30
35
  "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */
31
36
 
32
37
  /* Enable all strict type-checking options. */
@@ -46,18 +51,18 @@
46
51
  <% if (resolveJsonModule) { -%>
47
52
  "resolveJsonModule": <%= resolveJsonModule %>,
48
53
  <% } -%>
49
- "baseUrl": "<%= baseUrl %>"<% if (monorepoPackageNames) { %>,<% } %> /* Base directory to resolve non-absolute module names. */
50
- <% if (monorepoPackageNames && monorepoPackageNames.length !== 0) { -%>
54
+ "baseUrl": "<%= baseUrl %>"<% if (monorepoPackageSrcPaths) { %>,<% } %> /* Base directory to resolve non-absolute module names. */
55
+ <% if (monorepoPackageSrcPaths && monorepoPackageSrcPaths.length !== 0) { -%>
51
56
  "paths": {
52
- <% monorepoPackageNames.forEach((packageName, index) => { %>
53
- "<%= packageName %>": ["../../../<%= monorepoPackageSrcPaths[index] %>"],
54
- "<%= packageName %>/*": ["../../../<%= monorepoPackageSrcPaths[index] %>/*"]<%= index === monorepoPackageNames.length -1 ? '' : ',' -%>
57
+ <% monorepoPackageSrcPaths.forEach(([packageName, packageLocation], index) => { %>
58
+ "<%= packageName %>": ["../<%= packageLocation %>"],
59
+ "<%= packageName %>/*": ["../<%= packageLocation %>/*"]<%= index === monorepoPackageSrcPaths.length -1 ? '' : ',' -%>
55
60
  <% }) %>
56
61
  }<% } %>
57
- }<% if (monorepoPackageNames && monorepoPackageNames.length) { -%>,
62
+ }<% if (monorepoPackageBuildReferences && monorepoPackageBuildReferences.length) { -%>,
58
63
  "references": [
59
- <% monorepoPackageNames.forEach((packageName, index) => { -%>
60
- { "path": "../<%= packageName %>/tsconfig.json" }<%= index === monorepoPackageNames.length -1 ? '' : ',' %>
64
+ <% monorepoPackageBuildReferences.forEach((monorepoPackageSrcPath, index) => { -%>
65
+ { "path": "<%= monorepoPackageSrcPath %>/tsconfig.json" }<%= index === monorepoPackageBuildReferences.length -1 ? '' : ',' %>
61
66
  <% }) -%>
62
67
  ],
63
68
  <% } -%>
@@ -1,12 +1,6 @@
1
1
  {
2
2
  "extends": "./tsconfig.json",
3
3
 
4
-
5
- "compilerOptions": {
6
- "rootDirs": [],
7
- "rootDir": "src"
8
- },
9
-
10
4
  "typedocOptions": {
11
5
  "entryPoints": [
12
6
  <%- entryPoints.map(entryPoint => `"${entryPoint}"`).join(', ') %>
@@ -284,8 +284,10 @@ export default class PobMonorepoGenerator extends Generator {
284
284
  .map((workspaces) => `rm -Rf ${workspaces}/dist`)
285
285
  .join(' && ')}) || true`,
286
286
  build: 'yarn clean:build && rollup --config rollup.config.mjs',
287
+ watch: 'yarn clean:build && rollup --config rollup.config.mjs --watch',
287
288
  });
288
289
  packageUtils.addOrRemoveDevDependencies(pkg, rollupConfigs.length, [
290
+ '@babel/core',
289
291
  'pob-babel',
290
292
  ]);
291
293
  this.fs.writeJSON(this.destinationPath('package.json'), pkg);
package/lib/pob.js CHANGED
@@ -6,6 +6,7 @@ import path from 'path';
6
6
  import argv from 'minimist-argv';
7
7
  import yeoman from 'yeoman-environment';
8
8
  import PobAppGenerator from './generators/app/PobAppGenerator.js';
9
+ import AppNextjsGenerator from './generators/app/nextjs/AppNextjsGenerator.js';
9
10
  import CommonBabelGenerator from './generators/common/babel/CommonBabelGenerator.js';
10
11
  import CommonLintGenerator from './generators/common/format-lint/CommonLintGenerator.js';
11
12
  import CommonHuskyGenerator from './generators/common/husky/CommonHuskyGenerator.js';
@@ -78,6 +79,11 @@ env.registerStub(
78
79
  'pob:app',
79
80
  `${__dirname}/generators/app/PobAppGenerator.js`,
80
81
  );
82
+ env.registerStub(
83
+ AppNextjsGenerator,
84
+ 'pob:app:nextjs',
85
+ `${__dirname}/generators/app/nextjs/AppNextjsGenerator.js`,
86
+ );
81
87
  env.registerStub(
82
88
  CommonBabelGenerator,
83
89
  'pob:common:babel',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pob",
3
- "version": "9.16.0",
3
+ "version": "10.1.0",
4
4
  "description": "Pile of bones, library generator with git/babel/typescript/typedoc/readme/jest",
5
5
  "keywords": [
6
6
  "skeleton"
@@ -41,14 +41,14 @@
41
41
  "dependencies": {
42
42
  "@lerna/package-graph": "^4.0.0",
43
43
  "@lerna/project": "^4.0.0",
44
- "@pob/eslint-config": "48.1.0",
45
- "@pob/eslint-config-typescript": "48.1.0",
46
- "@pob/eslint-config-typescript-react": "48.1.0",
44
+ "@pob/eslint-config": "49.0.0",
45
+ "@pob/eslint-config-typescript": "49.0.0",
46
+ "@pob/eslint-config-typescript-react": "49.0.0",
47
47
  "@pob/sort-eslint-config": "^3.0.1",
48
48
  "@pob/sort-object": "^4.0.1",
49
49
  "@pob/sort-pkg": "^4.0.1",
50
- "@yarnpkg/parsers": "2.5.0-rc.11",
51
- "eslint": "8.8.0",
50
+ "@yarnpkg/parsers": "2.5.0-rc.13",
51
+ "eslint": "8.9.0",
52
52
  "findup-sync": "^5.0.0",
53
53
  "git-remote-url": "^1.0.1",
54
54
  "github-username": "^6.0.0",
@@ -61,11 +61,11 @@
61
61
  "mem-fs-editor": "9.4.0",
62
62
  "minimist-argv": "^1.1.0",
63
63
  "parse-author": "^2.0.0",
64
- "pob-dependencies": "6.12.0",
64
+ "pob-dependencies": "6.14.0",
65
65
  "prettier": "2.5.1",
66
66
  "semver": "^7.3.4",
67
67
  "yeoman-environment": "^3.5.1",
68
68
  "yeoman-generator": "^5.4.0"
69
69
  },
70
- "gitHead": "d4e58687bcfd00c82a36f2ea2d4dc371114da41a"
70
+ "gitHead": "a2c45c96006ec7d270c9d25386055411985932e6"
71
71
  }