@form8ion/hapi-scaffolder 4.0.0 → 4.0.3

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/lib/index.cjs.js CHANGED
@@ -6,14 +6,12 @@ var fs = require('fs');
6
6
  var path = require('path');
7
7
  var mustache = require('mustache');
8
8
  var makeDir = require('make-dir');
9
- var deepmerge = require('deepmerge');
10
9
  var cucumberScaffolder = require('@form8ion/cucumber-scaffolder');
11
10
 
12
11
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
12
 
14
13
  var mustache__default = /*#__PURE__*/_interopDefaultLegacy(mustache);
15
14
  var makeDir__default = /*#__PURE__*/_interopDefaultLegacy(makeDir);
16
- var deepmerge__default = /*#__PURE__*/_interopDefaultLegacy(deepmerge);
17
15
 
18
16
  async function scaffoldServer ({projectRoot, projectName}) {
19
17
  const serverDirectory = await makeDir__default["default"](`${projectRoot}/src/server`);
@@ -53,8 +51,6 @@ $ npm start
53
51
  }
54
52
 
55
53
  async function scaffoldTesting ({projectRoot, tests}) {
56
- const commonResults = {packageProperties: {engines: {node: '>=12'}}};
57
-
58
54
  if (tests.integration) {
59
55
  const [stepDefinitionsDirectory, cucumberResults] = await Promise.all([
60
56
  makeDir__default["default"](`${projectRoot}/test/integration/features/step_definitions`),
@@ -72,17 +68,14 @@ async function scaffoldTesting ({projectRoot, tests}) {
72
68
  )
73
69
  ]);
74
70
 
75
- return deepmerge__default["default"](
76
- commonResults,
77
- {
78
- scripts: cucumberResults.scripts,
79
- devDependencies: ['@travi/any', 'http-status-codes', ...cucumberResults.devDependencies],
80
- eslintConfigs: cucumberResults.eslintConfigs
81
- }
82
- );
71
+ return {
72
+ scripts: cucumberResults.scripts,
73
+ devDependencies: ['@travi/any', 'http-status-codes', ...cucumberResults.devDependencies],
74
+ eslintConfigs: cucumberResults.eslintConfigs
75
+ };
83
76
  }
84
77
 
85
- return commonResults;
78
+ return {};
86
79
  }
87
80
 
88
81
  async function scaffold({projectRoot, projectName, tests}) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../src/server.js","../src/documentation.js","../src/testing.js","../src/scaffolder.js"],"sourcesContent":["import {promises} from 'fs';\nimport {resolve} from 'path';\nimport mustache from 'mustache';\nimport mkdir from '../thirdparty-wrappers/make-dir';\n\nexport default async function ({projectRoot, projectName}) {\n const serverDirectory = await mkdir(`${projectRoot}/src/server`);\n\n await Promise.all([\n promises.copyFile(resolve(__dirname, '..', 'templates', 'server.js'), `${serverDirectory}/server.js`),\n promises.copyFile(resolve(__dirname, '..', 'templates', '.env.example'), `${projectRoot}/.env.example`),\n promises.writeFile(\n `${serverDirectory}/manifest.js`,\n mustache.render(\n await promises.readFile(resolve(__dirname, '..', 'templates', 'manifest.mustache'), 'utf8'),\n {projectName}\n )\n ),\n promises.writeFile(`${serverDirectory}/index.js`, 'export {default} from \\'./server\\';\\n'),\n promises.copyFile(\n resolve(__dirname, '..', 'templates', 'webpack.config.server.js'),\n `${projectRoot}/webpack.config.server.babel.js`\n )\n ]);\n}\n","export default function () {\n return {\n usage: `### Build the Bundle\n\n\\`\\`\\`sh\n$ npm run build\n\\`\\`\\`\n\n### Start the Server\n\n\\`\\`\\`sh\n$ npm start\n\\`\\`\\``\n };\n}\n","import {resolve} from 'path';\nimport {promises} from 'fs';\nimport deepmerge from 'deepmerge';\nimport {scaffold as scaffoldCucumber} from '@form8ion/cucumber-scaffolder';\nimport mkdir from '../thirdparty-wrappers/make-dir';\n\nexport default async function ({projectRoot, tests}) {\n const commonResults = {packageProperties: {engines: {node: '>=12'}}};\n\n if (tests.integration) {\n const [stepDefinitionsDirectory, cucumberResults] = await Promise.all([\n mkdir(`${projectRoot}/test/integration/features/step_definitions`),\n scaffoldCucumber({projectRoot})\n ]);\n\n await Promise.all([\n promises.copyFile(\n resolve(__dirname, '..', 'templates', 'canary.feature'),\n `${stepDefinitionsDirectory}/../canary.feature`\n ),\n promises.copyFile(\n resolve(__dirname, '..', 'templates', 'server-steps.js'),\n `${stepDefinitionsDirectory}/server-steps.js`\n )\n ]);\n\n return deepmerge(\n commonResults,\n {\n scripts: cucumberResults.scripts,\n devDependencies: ['@travi/any', 'http-status-codes', ...cucumberResults.devDependencies],\n eslintConfigs: cucumberResults.eslintConfigs\n }\n );\n }\n\n return commonResults;\n}\n","import scaffoldServer from './server';\nimport scaffoldDocumentation from './documentation';\nimport scaffoldTesting from './testing';\n\nexport async function scaffold({projectRoot, projectName, tests}) {\n const [testingResults] = await Promise.all([\n scaffoldTesting({projectRoot, tests}),\n scaffoldServer({projectRoot, projectName})\n ]);\n\n return {\n dependencies: [\n '@hapi/glue',\n '@hapi/good',\n 'hapi-graceful-shutdown-plugin',\n 'dotenv-safe',\n 'good-bunyan',\n 'bunyan'\n ],\n devDependencies: [\n 'webpack',\n 'webpack-cli',\n ...testingResults.devDependencies\n ],\n scripts: {\n build: 'npm-run-all --print-label --parallel build:*',\n 'build:server': 'webpack --env production --config webpack.config.server.babel.js',\n start: 'node ./lib/server',\n 'pretest:integration': 'run-s build'\n },\n documentation: scaffoldDocumentation()\n };\n}\n"],"names":["mkdir","promises","resolve","mustache","scaffoldCucumber","deepmerge"],"mappings":";;;;;;;;;;;;;;;;;AAKe,6BAAc,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE;AAC3D,EAAE,MAAM,eAAe,GAAG,MAAMA,2BAAK,CAAC,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;AACnE;AACA,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC;AACpB,IAAIC,WAAQ,CAAC,QAAQ,CAACC,YAAO,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;AACzG,IAAID,WAAQ,CAAC,QAAQ,CAACC,YAAO,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;AAC3G,IAAID,WAAQ,CAAC,SAAS;AACtB,MAAM,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC;AACtC,MAAME,4BAAQ,CAAC,MAAM;AACrB,QAAQ,MAAMF,WAAQ,CAAC,QAAQ,CAACC,YAAO,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,CAAC,EAAE,MAAM,CAAC;AACnG,QAAQ,CAAC,WAAW,CAAC;AACrB,OAAO;AACP,KAAK;AACL,IAAID,WAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,EAAE,uCAAuC,CAAC;AAC9F,IAAIA,WAAQ,CAAC,QAAQ;AACrB,MAAMC,YAAO,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,0BAA0B,CAAC;AACvE,MAAM,CAAC,EAAE,WAAW,CAAC,+BAA+B,CAAC;AACrD,KAAK;AACL,GAAG,CAAC,CAAC;AACL;;ACxBe,8BAAQ,IAAI;AAC3B,EAAE,OAAO;AACT,IAAI,KAAK,EAAE,CAAC;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,CAAC;AACP,GAAG,CAAC;AACJ;;ACRe,8BAAc,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE;AACrD,EAAE,MAAM,aAAa,GAAG,CAAC,iBAAiB,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACvE;AACA,EAAE,IAAI,KAAK,CAAC,WAAW,EAAE;AACzB,IAAI,MAAM,CAAC,wBAAwB,EAAE,eAAe,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;AAC1E,MAAMF,2BAAK,CAAC,CAAC,EAAE,WAAW,CAAC,2CAA2C,CAAC,CAAC;AACxE,MAAMI,2BAAgB,CAAC,CAAC,WAAW,CAAC,CAAC;AACrC,KAAK,CAAC,CAAC;AACP;AACA,IAAI,MAAM,OAAO,CAAC,GAAG,CAAC;AACtB,MAAMH,WAAQ,CAAC,QAAQ;AACvB,QAAQC,YAAO,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,gBAAgB,CAAC;AAC/D,QAAQ,CAAC,EAAE,wBAAwB,CAAC,kBAAkB,CAAC;AACvD,OAAO;AACP,MAAMD,WAAQ,CAAC,QAAQ;AACvB,QAAQC,YAAO,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,CAAC;AAChE,QAAQ,CAAC,EAAE,wBAAwB,CAAC,gBAAgB,CAAC;AACrD,OAAO;AACP,KAAK,CAAC,CAAC;AACP;AACA,IAAI,OAAOG,6BAAS;AACpB,MAAM,aAAa;AACnB,MAAM;AACN,QAAQ,OAAO,EAAE,eAAe,CAAC,OAAO;AACxC,QAAQ,eAAe,EAAE,CAAC,YAAY,EAAE,mBAAmB,EAAE,GAAG,eAAe,CAAC,eAAe,CAAC;AAChG,QAAQ,aAAa,EAAE,eAAe,CAAC,aAAa;AACpD,OAAO;AACP,KAAK,CAAC;AACN,GAAG;AACH;AACA,EAAE,OAAO,aAAa,CAAC;AACvB;;ACjCO,eAAe,QAAQ,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE;AAClE,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;AAC7C,IAAI,eAAe,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AACzC,IAAI,cAAc,CAAC,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAC9C,GAAG,CAAC,CAAC;AACL;AACA,EAAE,OAAO;AACT,IAAI,YAAY,EAAE;AAClB,MAAM,YAAY;AAClB,MAAM,YAAY;AAClB,MAAM,+BAA+B;AACrC,MAAM,aAAa;AACnB,MAAM,aAAa;AACnB,MAAM,QAAQ;AACd,KAAK;AACL,IAAI,eAAe,EAAE;AACrB,MAAM,SAAS;AACf,MAAM,aAAa;AACnB,MAAM,GAAG,cAAc,CAAC,eAAe;AACvC,KAAK;AACL,IAAI,OAAO,EAAE;AACb,MAAM,KAAK,EAAE,8CAA8C;AAC3D,MAAM,cAAc,EAAE,kEAAkE;AACxF,MAAM,KAAK,EAAE,mBAAmB;AAChC,MAAM,qBAAqB,EAAE,aAAa;AAC1C,KAAK;AACL,IAAI,aAAa,EAAE,qBAAqB,EAAE;AAC1C,GAAG,CAAC;AACJ;;;;"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../src/server.js","../src/documentation.js","../src/testing.js","../src/scaffolder.js"],"sourcesContent":["import {promises} from 'fs';\nimport {resolve} from 'path';\nimport mustache from 'mustache';\nimport mkdir from '../thirdparty-wrappers/make-dir';\n\nexport default async function ({projectRoot, projectName}) {\n const serverDirectory = await mkdir(`${projectRoot}/src/server`);\n\n await Promise.all([\n promises.copyFile(resolve(__dirname, '..', 'templates', 'server.js'), `${serverDirectory}/server.js`),\n promises.copyFile(resolve(__dirname, '..', 'templates', '.env.example'), `${projectRoot}/.env.example`),\n promises.writeFile(\n `${serverDirectory}/manifest.js`,\n mustache.render(\n await promises.readFile(resolve(__dirname, '..', 'templates', 'manifest.mustache'), 'utf8'),\n {projectName}\n )\n ),\n promises.writeFile(`${serverDirectory}/index.js`, 'export {default} from \\'./server\\';\\n'),\n promises.copyFile(\n resolve(__dirname, '..', 'templates', 'webpack.config.server.js'),\n `${projectRoot}/webpack.config.server.babel.js`\n )\n ]);\n}\n","export default function () {\n return {\n usage: `### Build the Bundle\n\n\\`\\`\\`sh\n$ npm run build\n\\`\\`\\`\n\n### Start the Server\n\n\\`\\`\\`sh\n$ npm start\n\\`\\`\\``\n };\n}\n","import {resolve} from 'path';\nimport {promises} from 'fs';\nimport {scaffold as scaffoldCucumber} from '@form8ion/cucumber-scaffolder';\nimport mkdir from '../thirdparty-wrappers/make-dir';\n\nexport default async function ({projectRoot, tests}) {\n if (tests.integration) {\n const [stepDefinitionsDirectory, cucumberResults] = await Promise.all([\n mkdir(`${projectRoot}/test/integration/features/step_definitions`),\n scaffoldCucumber({projectRoot})\n ]);\n\n await Promise.all([\n promises.copyFile(\n resolve(__dirname, '..', 'templates', 'canary.feature'),\n `${stepDefinitionsDirectory}/../canary.feature`\n ),\n promises.copyFile(\n resolve(__dirname, '..', 'templates', 'server-steps.js'),\n `${stepDefinitionsDirectory}/server-steps.js`\n )\n ]);\n\n return {\n scripts: cucumberResults.scripts,\n devDependencies: ['@travi/any', 'http-status-codes', ...cucumberResults.devDependencies],\n eslintConfigs: cucumberResults.eslintConfigs\n };\n }\n\n return {};\n}\n","import scaffoldServer from './server';\nimport scaffoldDocumentation from './documentation';\nimport scaffoldTesting from './testing';\n\nexport async function scaffold({projectRoot, projectName, tests}) {\n const [testingResults] = await Promise.all([\n scaffoldTesting({projectRoot, tests}),\n scaffoldServer({projectRoot, projectName})\n ]);\n\n return {\n dependencies: [\n '@hapi/glue',\n '@hapi/good',\n 'hapi-graceful-shutdown-plugin',\n 'dotenv-safe',\n 'good-bunyan',\n 'bunyan'\n ],\n devDependencies: [\n 'webpack',\n 'webpack-cli',\n ...testingResults.devDependencies\n ],\n scripts: {\n build: 'npm-run-all --print-label --parallel build:*',\n 'build:server': 'webpack --env production --config webpack.config.server.babel.js',\n start: 'node ./lib/server',\n 'pretest:integration': 'run-s build'\n },\n documentation: scaffoldDocumentation()\n };\n}\n"],"names":["mkdir","promises","resolve","mustache","scaffoldCucumber"],"mappings":"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"}
package/lib/index.es.js CHANGED
@@ -2,7 +2,6 @@ import { promises } from 'fs';
2
2
  import { resolve } from 'path';
3
3
  import mustache from 'mustache';
4
4
  import makeDir from 'make-dir';
5
- import deepmerge from 'deepmerge';
6
5
  import { scaffold as scaffold$1 } from '@form8ion/cucumber-scaffolder';
7
6
 
8
7
  async function scaffoldServer ({projectRoot, projectName}) {
@@ -43,8 +42,6 @@ $ npm start
43
42
  }
44
43
 
45
44
  async function scaffoldTesting ({projectRoot, tests}) {
46
- const commonResults = {packageProperties: {engines: {node: '>=12'}}};
47
-
48
45
  if (tests.integration) {
49
46
  const [stepDefinitionsDirectory, cucumberResults] = await Promise.all([
50
47
  makeDir(`${projectRoot}/test/integration/features/step_definitions`),
@@ -62,17 +59,14 @@ async function scaffoldTesting ({projectRoot, tests}) {
62
59
  )
63
60
  ]);
64
61
 
65
- return deepmerge(
66
- commonResults,
67
- {
68
- scripts: cucumberResults.scripts,
69
- devDependencies: ['@travi/any', 'http-status-codes', ...cucumberResults.devDependencies],
70
- eslintConfigs: cucumberResults.eslintConfigs
71
- }
72
- );
62
+ return {
63
+ scripts: cucumberResults.scripts,
64
+ devDependencies: ['@travi/any', 'http-status-codes', ...cucumberResults.devDependencies],
65
+ eslintConfigs: cucumberResults.eslintConfigs
66
+ };
73
67
  }
74
68
 
75
- return commonResults;
69
+ return {};
76
70
  }
77
71
 
78
72
  async function scaffold({projectRoot, projectName, tests}) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../src/server.js","../src/documentation.js","../src/testing.js","../src/scaffolder.js"],"sourcesContent":["import {promises} from 'fs';\nimport {resolve} from 'path';\nimport mustache from 'mustache';\nimport mkdir from '../thirdparty-wrappers/make-dir';\n\nexport default async function ({projectRoot, projectName}) {\n const serverDirectory = await mkdir(`${projectRoot}/src/server`);\n\n await Promise.all([\n promises.copyFile(resolve(__dirname, '..', 'templates', 'server.js'), `${serverDirectory}/server.js`),\n promises.copyFile(resolve(__dirname, '..', 'templates', '.env.example'), `${projectRoot}/.env.example`),\n promises.writeFile(\n `${serverDirectory}/manifest.js`,\n mustache.render(\n await promises.readFile(resolve(__dirname, '..', 'templates', 'manifest.mustache'), 'utf8'),\n {projectName}\n )\n ),\n promises.writeFile(`${serverDirectory}/index.js`, 'export {default} from \\'./server\\';\\n'),\n promises.copyFile(\n resolve(__dirname, '..', 'templates', 'webpack.config.server.js'),\n `${projectRoot}/webpack.config.server.babel.js`\n )\n ]);\n}\n","export default function () {\n return {\n usage: `### Build the Bundle\n\n\\`\\`\\`sh\n$ npm run build\n\\`\\`\\`\n\n### Start the Server\n\n\\`\\`\\`sh\n$ npm start\n\\`\\`\\``\n };\n}\n","import {resolve} from 'path';\nimport {promises} from 'fs';\nimport deepmerge from 'deepmerge';\nimport {scaffold as scaffoldCucumber} from '@form8ion/cucumber-scaffolder';\nimport mkdir from '../thirdparty-wrappers/make-dir';\n\nexport default async function ({projectRoot, tests}) {\n const commonResults = {packageProperties: {engines: {node: '>=12'}}};\n\n if (tests.integration) {\n const [stepDefinitionsDirectory, cucumberResults] = await Promise.all([\n mkdir(`${projectRoot}/test/integration/features/step_definitions`),\n scaffoldCucumber({projectRoot})\n ]);\n\n await Promise.all([\n promises.copyFile(\n resolve(__dirname, '..', 'templates', 'canary.feature'),\n `${stepDefinitionsDirectory}/../canary.feature`\n ),\n promises.copyFile(\n resolve(__dirname, '..', 'templates', 'server-steps.js'),\n `${stepDefinitionsDirectory}/server-steps.js`\n )\n ]);\n\n return deepmerge(\n commonResults,\n {\n scripts: cucumberResults.scripts,\n devDependencies: ['@travi/any', 'http-status-codes', ...cucumberResults.devDependencies],\n eslintConfigs: cucumberResults.eslintConfigs\n }\n );\n }\n\n return commonResults;\n}\n","import scaffoldServer from './server';\nimport scaffoldDocumentation from './documentation';\nimport scaffoldTesting from './testing';\n\nexport async function scaffold({projectRoot, projectName, tests}) {\n const [testingResults] = await Promise.all([\n scaffoldTesting({projectRoot, tests}),\n scaffoldServer({projectRoot, projectName})\n ]);\n\n return {\n dependencies: [\n '@hapi/glue',\n '@hapi/good',\n 'hapi-graceful-shutdown-plugin',\n 'dotenv-safe',\n 'good-bunyan',\n 'bunyan'\n ],\n devDependencies: [\n 'webpack',\n 'webpack-cli',\n ...testingResults.devDependencies\n ],\n scripts: {\n build: 'npm-run-all --print-label --parallel build:*',\n 'build:server': 'webpack --env production --config webpack.config.server.babel.js',\n start: 'node ./lib/server',\n 'pretest:integration': 'run-s build'\n },\n documentation: scaffoldDocumentation()\n };\n}\n"],"names":["mkdir","scaffoldCucumber"],"mappings":"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"}
1
+ {"version":3,"file":"index.es.js","sources":["../src/server.js","../src/documentation.js","../src/testing.js","../src/scaffolder.js"],"sourcesContent":["import {promises} from 'fs';\nimport {resolve} from 'path';\nimport mustache from 'mustache';\nimport mkdir from '../thirdparty-wrappers/make-dir';\n\nexport default async function ({projectRoot, projectName}) {\n const serverDirectory = await mkdir(`${projectRoot}/src/server`);\n\n await Promise.all([\n promises.copyFile(resolve(__dirname, '..', 'templates', 'server.js'), `${serverDirectory}/server.js`),\n promises.copyFile(resolve(__dirname, '..', 'templates', '.env.example'), `${projectRoot}/.env.example`),\n promises.writeFile(\n `${serverDirectory}/manifest.js`,\n mustache.render(\n await promises.readFile(resolve(__dirname, '..', 'templates', 'manifest.mustache'), 'utf8'),\n {projectName}\n )\n ),\n promises.writeFile(`${serverDirectory}/index.js`, 'export {default} from \\'./server\\';\\n'),\n promises.copyFile(\n resolve(__dirname, '..', 'templates', 'webpack.config.server.js'),\n `${projectRoot}/webpack.config.server.babel.js`\n )\n ]);\n}\n","export default function () {\n return {\n usage: `### Build the Bundle\n\n\\`\\`\\`sh\n$ npm run build\n\\`\\`\\`\n\n### Start the Server\n\n\\`\\`\\`sh\n$ npm start\n\\`\\`\\``\n };\n}\n","import {resolve} from 'path';\nimport {promises} from 'fs';\nimport {scaffold as scaffoldCucumber} from '@form8ion/cucumber-scaffolder';\nimport mkdir from '../thirdparty-wrappers/make-dir';\n\nexport default async function ({projectRoot, tests}) {\n if (tests.integration) {\n const [stepDefinitionsDirectory, cucumberResults] = await Promise.all([\n mkdir(`${projectRoot}/test/integration/features/step_definitions`),\n scaffoldCucumber({projectRoot})\n ]);\n\n await Promise.all([\n promises.copyFile(\n resolve(__dirname, '..', 'templates', 'canary.feature'),\n `${stepDefinitionsDirectory}/../canary.feature`\n ),\n promises.copyFile(\n resolve(__dirname, '..', 'templates', 'server-steps.js'),\n `${stepDefinitionsDirectory}/server-steps.js`\n )\n ]);\n\n return {\n scripts: cucumberResults.scripts,\n devDependencies: ['@travi/any', 'http-status-codes', ...cucumberResults.devDependencies],\n eslintConfigs: cucumberResults.eslintConfigs\n };\n }\n\n return {};\n}\n","import scaffoldServer from './server';\nimport scaffoldDocumentation from './documentation';\nimport scaffoldTesting from './testing';\n\nexport async function scaffold({projectRoot, projectName, tests}) {\n const [testingResults] = await Promise.all([\n scaffoldTesting({projectRoot, tests}),\n scaffoldServer({projectRoot, projectName})\n ]);\n\n return {\n dependencies: [\n '@hapi/glue',\n '@hapi/good',\n 'hapi-graceful-shutdown-plugin',\n 'dotenv-safe',\n 'good-bunyan',\n 'bunyan'\n ],\n devDependencies: [\n 'webpack',\n 'webpack-cli',\n ...testingResults.devDependencies\n ],\n scripts: {\n build: 'npm-run-all --print-label --parallel build:*',\n 'build:server': 'webpack --env production --config webpack.config.server.babel.js',\n start: 'node ./lib/server',\n 'pretest:integration': 'run-s build'\n },\n documentation: scaffoldDocumentation()\n };\n}\n"],"names":["mkdir","scaffoldCucumber"],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@form8ion/hapi-scaffolder",
3
3
  "description": "opinionated scaffolder for hapi.js projects",
4
4
  "license": "MIT",
5
- "version": "4.0.0",
5
+ "version": "4.0.3",
6
6
  "main": "lib/index.cjs.js",
7
7
  "module": "lib/index.es.js",
8
8
  "sideEffects": false,
@@ -41,37 +41,35 @@
41
41
  "prepare": "husky install"
42
42
  },
43
43
  "devDependencies": {
44
- "@babel/register": "7.16.5",
45
- "@form8ion/babel-preset": "1.6.73",
46
- "@form8ion/commitlint-config": "1.0.23",
47
- "@form8ion/eslint-config": "2.0.2",
48
- "@form8ion/eslint-config-cucumber": "1.4.0",
49
- "@form8ion/eslint-config-mocha": "1.2.17",
50
- "@form8ion/remark-lint-preset": "2.1.7",
51
- "@travi/any": "2.0.19",
52
- "@form8ion/javascript": "2.0.0",
53
- "@travi/project-scaffolder": "10.1.2",
54
- "ban-sensitive-files": "1.9.16",
44
+ "@babel/register": "7.18.9",
45
+ "@cucumber/cucumber": "8.5.0",
46
+ "@form8ion/babel-preset": "1.6.93",
47
+ "@form8ion/commitlint-config": "1.0.36",
48
+ "@form8ion/eslint-config": "5.0.7",
49
+ "@form8ion/eslint-config-cucumber": "1.4.1",
50
+ "@form8ion/eslint-config-mocha": "2.0.3",
51
+ "@form8ion/javascript": "7.2.1",
52
+ "@form8ion/remark-lint-preset": "4.0.1",
53
+ "@travi/any": "2.1.5",
54
+ "ban-sensitive-files": "1.9.18",
55
55
  "bdd-stdin": "0.2.0",
56
- "chai": "4.3.4",
56
+ "chai": "4.3.6",
57
57
  "codecov": "3.8.3",
58
- "cucumber": "6.0.5",
59
58
  "cz-conventional-changelog": "3.3.0",
60
59
  "gherkin-lint": "4.2.2",
61
- "husky": "7.0.4",
62
- "mocha": "9.1.3",
60
+ "husky": "8.0.1",
61
+ "mocha": "10.0.0",
63
62
  "mock-fs": "5.1.2",
64
63
  "npm-run-all": "4.1.5",
65
64
  "nyc": "15.1.0",
66
- "remark-cli": "10.0.1",
65
+ "remark-cli": "11.0.0",
67
66
  "rimraf": "3.0.2",
68
- "rollup": "2.61.1",
67
+ "rollup": "2.77.0",
69
68
  "rollup-plugin-auto-external": "2.0.0",
70
- "sinon": "12.0.1"
69
+ "sinon": "14.0.0"
71
70
  },
72
71
  "dependencies": {
73
- "@form8ion/cucumber-scaffolder": "1.5.0",
74
- "deepmerge": "^4.2.2",
72
+ "@form8ion/cucumber-scaffolder": "2.0.1",
75
73
  "make-dir": "^3.0.0",
76
74
  "mustache": "^4.0.0"
77
75
  },