diff --git a/packages/whook-create/src/services/__snapshots__/createWhook.test.ts.snap b/packages/whook-create/src/services/__snapshots__/createWhook.test.ts.snap index d537c2c3..b685bb2f 100644 --- a/packages/whook-create/src/services/__snapshots__/createWhook.test.ts.snap +++ b/packages/whook-create/src/services/__snapshots__/createWhook.test.ts.snap @@ -66,7 +66,7 @@ Wayne Campbell ], Array [ "/home/whoiam/projects/yolo/package.json", - "{\\"name\\":\\"super-project\\",\\"description\\":\\"A new Whook project\\",\\"version\\":\\"0.0.0\\",\\"license\\":\\"SEE LICENSE\\",\\"engines\\":{\\"node\\":\\">=12.19.0\\"},\\"main\\":\\"dist/index\\",\\"module\\":\\"dist/index.mjs\\",\\"types\\":\\"dist/index.d.ts\\",\\"private\\":true,\\"keywords\\":[\\"whook\\"],\\"author\\":{\\"name\\":\\"Wayne Campbell\\",\\"email\\":\\"wayne@warner.com\\"},\\"scripts\\":{\\"apitypes\\":\\"npm run --silent whook -- generateOpenAPISchema --authenticated=true | npm run --silent whook -- generateOpenAPITypes > src/openAPISchema.d.ts\\",\\"architecture\\":\\"jsarch 'src/**/*.ts' > ARCHITECTURE.md && git add ARCHITECTURE.md\\",\\"build\\":\\"npm run compile && NODE_ENV=\${NODE_ENV:-development} node bin/build\\",\\"compile\\":\\"rimraf -f 'dist' && npm run compile:cjs && npm run compile:mjs\\",\\"compile:cjs\\":\\"babel --env-name=cjs --out-dir=dist --extensions '.ts,.js' --source-maps=true src\\",\\"compile:mjs\\":\\"babel --env-name=mjs --out-file-extension=.mjs --out-dir=dist --extensions '.ts,.js' --source-maps=true src\\",\\"cover\\":\\"npm run jest -- --coverage\\",\\"debug\\":\\"NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 DEBUG=\${DEBUG:-whook} babel-node --extensions '.ts,.js' --inspect bin/dev\\",\\"dev\\":\\"NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 babel-node --extensions '.ts,.js' bin/dev\\",\\"jest\\":\\"NODE_ENV=test jest\\",\\"lint\\":\\"eslint 'src/**/*.ts'\\",\\"prettier\\":\\"prettier --write 'src/**/*.ts'\\",\\"start\\":\\"NODE_ENV=\${NODE_ENV:-development} node bin/start\\",\\"test\\":\\"NODE_ENV=test npm run build && npm run jest\\",\\"types\\":\\"rimraf -f 'dist/**/*.d.ts' && tsc --project . --declaration --emitDeclarationOnly --outDir dist\\",\\"watch\\":\\"NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 babel-node --extensions '.ts,.js' bin/watch\\",\\"whook\\":\\"NODE_ENV=\${NODE_ENV:-development} whook\\",\\"whook-dev\\":\\"PROJECT_SRC=\\\\\\"$PWD/src\\\\\\" NODE_ENV=\${NODE_ENV:-development} babel-node --extensions '.ts,.js' -- node_modules/@whook/cli/bin/whook.js\\",\\"whook-repl\\":\\"PROJECT_SRC=\\\\\\"$PWD/src\\\\\\" NODE_ENV=\${NODE_ENV:-development} babel-node --extensions '.ts,.js' -- bin/repl.js\\"},\\"files\\":[\\"bin\\",\\"dist\\",\\"src\\",\\"LICENSE\\",\\"README.md\\",\\"CHANGELOG.md\\"],\\"dependencies\\":{\\"@whook/authorization\\":\\"\\",\\"@whook/aws-lambda\\":\\"\\",\\"@whook/cli\\":\\"\\",\\"@whook/cors\\":\\"\\",\\"@whook/http-router\\":\\"\\",\\"@whook/http-transaction\\":\\"\\",\\"@whook/swagger-ui\\":\\"\\",\\"@whook/whook\\":\\"\\",\\"common-services\\":\\"^9.0.1\\",\\"http-auth-utils\\":\\"^3.0.1\\",\\"jwt-service\\":\\"^7.1.3\\",\\"knifecycle\\":\\"^11.1.1\\",\\"strict-qs\\":\\"^6.1.4\\",\\"type-fest\\":\\"^2.3.3\\",\\"yerror\\":\\"^6.0.1\\",\\"yhttperror\\":\\"^6.0.1\\"},\\"devDependencies\\":{\\"@babel/cli\\":\\"^7.13.14\\",\\"@babel/core\\":\\"^7.13.15\\",\\"@babel/eslint-parser\\":\\"^7.13.14\\",\\"@babel/node\\":\\"^7.13.13\\",\\"@babel/plugin-proposal-class-properties\\":\\"^7.13.0\\",\\"@babel/plugin-proposal-object-rest-spread\\":\\"^7.13.8\\",\\"@babel/plugin-syntax-dynamic-import\\":\\"^7.8.3\\",\\"@babel/plugin-syntax-import-meta\\":\\"^7.10.4\\",\\"@babel/preset-env\\":\\"^7.13.15\\",\\"@babel/preset-typescript\\":\\"^7.13.0\\",\\"@babel/register\\":\\"^7.13.14\\",\\"@types/jest\\":\\"^26.0.22\\",\\"@typescript-eslint/eslint-plugin\\":\\"^4.21.0\\",\\"@typescript-eslint/parser\\":\\"^4.21.0\\",\\"axios\\":\\"^0.21.4\\",\\"babel-plugin-knifecycle\\":\\"^5.0.1\\",\\"chokidar\\":\\"^3.5.1\\",\\"eslint\\":\\"^7.23.0\\",\\"eslint-plugin-prettier\\":\\"^3.3.1\\",\\"jest\\":\\"^26.6.3\\",\\"jsarch\\":\\"^4.0.1\\",\\"openapi-schema-validator\\":\\"^8.0.0\\",\\"parse-gitignore\\":\\"^1.0.1\\",\\"prettier\\":\\"^2.2.1\\",\\"rimraf\\":\\"^3.0.2\\",\\"schema2dts\\":\\"^2.0.1\\",\\"typescript\\":\\"^4.2.4\\"},\\"eslintConfig\\":{\\"extends\\":[\\"eslint:recommended\\",\\"plugin:@typescript-eslint/eslint-recommended\\",\\"plugin:@typescript-eslint/recommended\\"],\\"parserOptions\\":{\\"ecmaVersion\\":2018,\\"sourceType\\":\\"module\\",\\"modules\\":true},\\"env\\":{\\"es6\\":true,\\"node\\":true,\\"jest\\":true,\\"mocha\\":true},\\"plugins\\":[\\"prettier\\"],\\"rules\\":{\\"prettier/prettier\\":\\"error\\"},\\"parser\\":\\"@typescript-eslint/parser\\",\\"ignorePatterns\\":[\\"*.d.ts\\"]},\\"prettier\\":{\\"semi\\":true,\\"printWidth\\":80,\\"singleQuote\\":true,\\"trailingComma\\":\\"all\\",\\"proseWrap\\":\\"always\\"},\\"babel\\":{\\"plugins\\":[\\"@babel/proposal-class-properties\\",\\"@babel/plugin-proposal-object-rest-spread\\",\\"babel-plugin-knifecycle\\"],\\"presets\\":[\\"@babel/typescript\\",[\\"@babel/env\\",{\\"targets\\":{\\"node\\":\\"12.19.0\\"}}]],\\"env\\":{\\"cjs\\":{\\"presets\\":[[\\"@babel/env\\",{\\"targets\\":{\\"node\\":\\"10\\"},\\"modules\\":\\"commonjs\\"}]],\\"comments\\":true},\\"mjs\\":{\\"presets\\":[[\\"@babel/env\\",{\\"targets\\":{\\"node\\":\\"12\\"},\\"modules\\":false}]],\\"comments\\":false}},\\"sourceMaps\\":true},\\"jest\\":{\\"coverageReporters\\":[\\"lcov\\",\\"html\\"],\\"testPathIgnorePatterns\\":[\\"/node_modules/\\"],\\"roots\\":[\\"/src\\"],\\"testEnvironment\\":\\"node\\"}}", + "{\\"name\\":\\"super-project\\",\\"description\\":\\"A new Whook project\\",\\"version\\":\\"0.0.0\\",\\"license\\":\\"SEE LICENSE\\",\\"engines\\":{\\"node\\":\\">=12.19.0\\"},\\"main\\":\\"dist/index\\",\\"module\\":\\"dist/index.mjs\\",\\"types\\":\\"dist/index.d.ts\\",\\"private\\":true,\\"keywords\\":[\\"whook\\"],\\"author\\":{\\"name\\":\\"Wayne Campbell\\",\\"email\\":\\"wayne@warner.com\\"},\\"scripts\\":{\\"apitypes\\":\\"npm run --silent whook -- generateOpenAPISchema --authenticated=true | npm run --silent whook -- generateOpenAPITypes > src/openAPISchema.d.ts\\",\\"architecture\\":\\"jsarch 'src/**/*.ts' > ARCHITECTURE.md && git add ARCHITECTURE.md\\",\\"build\\":\\"npm run compile && NODE_ENV=\${NODE_ENV:-development} node bin/build\\",\\"compile\\":\\"rimraf -f 'dist' && npm run compile:cjs && npm run compile:mjs\\",\\"compile:cjs\\":\\"babel --env-name=cjs --out-dir=dist --extensions '.ts,.js' --source-maps=true src\\",\\"compile:mjs\\":\\"babel --env-name=mjs --out-file-extension=.mjs --out-dir=dist --extensions '.ts,.js' --source-maps=true src\\",\\"cover\\":\\"npm run jest -- --coverage\\",\\"debug\\":\\"NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 DEBUG=\${DEBUG:-whook} babel-node --extensions '.ts,.js' --inspect bin/dev\\",\\"dev\\":\\"NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 babel-node --extensions '.ts,.js' bin/dev\\",\\"jest\\":\\"NODE_ENV=test jest\\",\\"lint\\":\\"eslint 'src/**/*.ts'\\",\\"prettier\\":\\"prettier --write 'src/**/*.ts'\\",\\"start\\":\\"NODE_ENV=\${NODE_ENV:-development} node bin/start\\",\\"test\\":\\"NODE_ENV=test npm run build && npm run jest\\",\\"types\\":\\"rimraf -f 'dist/**/*.d.ts' && tsc --project . --declaration --emitDeclarationOnly --outDir dist\\",\\"watch\\":\\"NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 babel-node --extensions '.ts,.js' bin/watch\\",\\"whook\\":\\"NODE_ENV=\${NODE_ENV:-development} whook\\",\\"whook-dev\\":\\"PROJECT_SRC=\\\\\\"$PWD/src\\\\\\" NODE_ENV=\${NODE_ENV:-development} babel-node --extensions '.ts,.js' -- node_modules/@whook/cli/bin/whook.js\\",\\"whook-repl\\":\\"PROJECT_SRC=\\\\\\"$PWD/src\\\\\\" NODE_ENV=\${NODE_ENV:-development} babel-node --extensions '.ts,.js' -- bin/repl.js\\"},\\"files\\":[\\"bin\\",\\"dist\\",\\"src\\",\\"LICENSE\\",\\"README.md\\",\\"CHANGELOG.md\\"],\\"dependencies\\":{\\"@whook/authorization\\":\\"\\",\\"@whook/aws-lambda\\":\\"\\",\\"@whook/cli\\":\\"\\",\\"@whook/cors\\":\\"\\",\\"@whook/http-router\\":\\"\\",\\"@whook/http-transaction\\":\\"\\",\\"@whook/swagger-ui\\":\\"\\",\\"@whook/whook\\":\\"\\",\\"common-services\\":\\"^9.0.1\\",\\"http-auth-utils\\":\\"^3.0.1\\",\\"jwt-service\\":\\"^7.1.3\\",\\"knifecycle\\":\\"^11.1.1\\",\\"strict-qs\\":\\"^6.1.4\\",\\"type-fest\\":\\"^2.3.3\\",\\"yerror\\":\\"^6.0.1\\",\\"yhttperror\\":\\"^6.0.1\\"},\\"devDependencies\\":{\\"@babel/cli\\":\\"^7.13.14\\",\\"@babel/core\\":\\"^7.13.15\\",\\"@babel/eslint-parser\\":\\"^7.13.14\\",\\"@babel/node\\":\\"^7.13.13\\",\\"@babel/plugin-proposal-class-properties\\":\\"^7.13.0\\",\\"@babel/plugin-proposal-object-rest-spread\\":\\"^7.13.8\\",\\"@babel/plugin-syntax-dynamic-import\\":\\"^7.8.3\\",\\"@babel/plugin-syntax-import-meta\\":\\"^7.10.4\\",\\"@babel/preset-env\\":\\"^7.13.15\\",\\"@babel/preset-typescript\\":\\"^7.13.0\\",\\"@babel/register\\":\\"^7.13.14\\",\\"@types/jest\\":\\"^26.0.22\\",\\"@typescript-eslint/eslint-plugin\\":\\"^4.21.0\\",\\"@typescript-eslint/parser\\":\\"^4.21.0\\",\\"axios\\":\\"^0.21.4\\",\\"babel-plugin-knifecycle\\":\\"^5.0.1\\",\\"chokidar\\":\\"^3.5.1\\",\\"esbuild\\":\\"^0.12.5\\",\\"esbuild-node-externals\\":\\"^1.3.0\\",\\"eslint\\":\\"^7.23.0\\",\\"eslint-plugin-prettier\\":\\"^3.3.1\\",\\"jest\\":\\"^26.6.3\\",\\"jsarch\\":\\"^4.0.1\\",\\"openapi-schema-validator\\":\\"^8.0.0\\",\\"parse-gitignore\\":\\"^1.0.1\\",\\"prettier\\":\\"^2.2.1\\",\\"rimraf\\":\\"^3.0.2\\",\\"schema2dts\\":\\"^2.0.1\\",\\"typescript\\":\\"^4.2.4\\"},\\"eslintConfig\\":{\\"extends\\":[\\"eslint:recommended\\",\\"plugin:@typescript-eslint/eslint-recommended\\",\\"plugin:@typescript-eslint/recommended\\"],\\"parserOptions\\":{\\"ecmaVersion\\":2018,\\"sourceType\\":\\"module\\",\\"modules\\":true},\\"env\\":{\\"es6\\":true,\\"node\\":true,\\"jest\\":true,\\"mocha\\":true},\\"plugins\\":[\\"prettier\\"],\\"rules\\":{\\"prettier/prettier\\":\\"error\\"},\\"parser\\":\\"@typescript-eslint/parser\\",\\"ignorePatterns\\":[\\"*.d.ts\\"]},\\"prettier\\":{\\"semi\\":true,\\"printWidth\\":80,\\"singleQuote\\":true,\\"trailingComma\\":\\"all\\",\\"proseWrap\\":\\"always\\"},\\"babel\\":{\\"plugins\\":[\\"@babel/proposal-class-properties\\",\\"@babel/plugin-proposal-object-rest-spread\\",\\"babel-plugin-knifecycle\\"],\\"presets\\":[\\"@babel/typescript\\",[\\"@babel/env\\",{\\"targets\\":{\\"node\\":\\"12.19.0\\"}}]],\\"env\\":{\\"cjs\\":{\\"presets\\":[[\\"@babel/env\\",{\\"targets\\":{\\"node\\":\\"10\\"},\\"modules\\":\\"commonjs\\"}]],\\"comments\\":true},\\"mjs\\":{\\"presets\\":[[\\"@babel/env\\",{\\"targets\\":{\\"node\\":\\"12\\"},\\"modules\\":false}]],\\"comments\\":false}},\\"sourceMaps\\":true},\\"jest\\":{\\"coverageReporters\\":[\\"lcov\\",\\"html\\"],\\"testPathIgnorePatterns\\":[\\"/node_modules/\\"],\\"roots\\":[\\"/src\\"],\\"testEnvironment\\":\\"node\\"}}", ], Array [ "/home/whoiam/projects/yolo/LICENSE", @@ -191,7 +191,7 @@ Wayne Campbell ], Array [ "/home/whoiam/projects/yolo/package.json", - "{\\"name\\":\\"super-project\\",\\"description\\":\\"A new Whook project\\",\\"version\\":\\"0.0.0\\",\\"license\\":\\"SEE LICENSE\\",\\"engines\\":{\\"node\\":\\">=12.19.0\\"},\\"main\\":\\"dist/index\\",\\"module\\":\\"dist/index.mjs\\",\\"types\\":\\"dist/index.d.ts\\",\\"private\\":true,\\"keywords\\":[\\"whook\\"],\\"author\\":{\\"name\\":\\"Wayne Campbell\\",\\"email\\":\\"wayne@warner.com\\"},\\"scripts\\":{\\"apitypes\\":\\"npm run --silent whook -- generateOpenAPISchema --authenticated=true | npm run --silent whook -- generateOpenAPITypes > src/openAPISchema.d.ts\\",\\"architecture\\":\\"jsarch 'src/**/*.ts' > ARCHITECTURE.md && git add ARCHITECTURE.md\\",\\"build\\":\\"npm run compile && NODE_ENV=\${NODE_ENV:-development} node bin/build\\",\\"compile\\":\\"rimraf -f 'dist' && npm run compile:cjs && npm run compile:mjs\\",\\"compile:cjs\\":\\"babel --env-name=cjs --out-dir=dist --extensions '.ts,.js' --source-maps=true src\\",\\"compile:mjs\\":\\"babel --env-name=mjs --out-file-extension=.mjs --out-dir=dist --extensions '.ts,.js' --source-maps=true src\\",\\"cover\\":\\"npm run jest -- --coverage\\",\\"debug\\":\\"NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 DEBUG=\${DEBUG:-whook} babel-node --extensions '.ts,.js' --inspect bin/dev\\",\\"dev\\":\\"NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 babel-node --extensions '.ts,.js' bin/dev\\",\\"jest\\":\\"NODE_ENV=test jest\\",\\"lint\\":\\"eslint 'src/**/*.ts'\\",\\"prettier\\":\\"prettier --write 'src/**/*.ts'\\",\\"start\\":\\"NODE_ENV=\${NODE_ENV:-development} node bin/start\\",\\"test\\":\\"NODE_ENV=test npm run build && npm run jest\\",\\"types\\":\\"rimraf -f 'dist/**/*.d.ts' && tsc --project . --declaration --emitDeclarationOnly --outDir dist\\",\\"watch\\":\\"NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 babel-node --extensions '.ts,.js' bin/watch\\",\\"whook\\":\\"NODE_ENV=\${NODE_ENV:-development} whook\\",\\"whook-dev\\":\\"PROJECT_SRC=\\\\\\"$PWD/src\\\\\\" NODE_ENV=\${NODE_ENV:-development} babel-node --extensions '.ts,.js' -- node_modules/@whook/cli/bin/whook.js\\",\\"whook-repl\\":\\"PROJECT_SRC=\\\\\\"$PWD/src\\\\\\" NODE_ENV=\${NODE_ENV:-development} babel-node --extensions '.ts,.js' -- bin/repl.js\\"},\\"files\\":[\\"bin\\",\\"dist\\",\\"src\\",\\"LICENSE\\",\\"README.md\\",\\"CHANGELOG.md\\"],\\"dependencies\\":{\\"@whook/authorization\\":\\"\\",\\"@whook/aws-lambda\\":\\"\\",\\"@whook/cli\\":\\"\\",\\"@whook/cors\\":\\"\\",\\"@whook/http-router\\":\\"\\",\\"@whook/http-transaction\\":\\"\\",\\"@whook/swagger-ui\\":\\"\\",\\"@whook/whook\\":\\"\\",\\"common-services\\":\\"^9.0.1\\",\\"http-auth-utils\\":\\"^3.0.1\\",\\"jwt-service\\":\\"^7.1.3\\",\\"knifecycle\\":\\"^11.1.1\\",\\"strict-qs\\":\\"^6.1.4\\",\\"type-fest\\":\\"^2.3.3\\",\\"yerror\\":\\"^6.0.1\\",\\"yhttperror\\":\\"^6.0.1\\"},\\"devDependencies\\":{\\"@babel/cli\\":\\"^7.13.14\\",\\"@babel/core\\":\\"^7.13.15\\",\\"@babel/eslint-parser\\":\\"^7.13.14\\",\\"@babel/node\\":\\"^7.13.13\\",\\"@babel/plugin-proposal-class-properties\\":\\"^7.13.0\\",\\"@babel/plugin-proposal-object-rest-spread\\":\\"^7.13.8\\",\\"@babel/plugin-syntax-dynamic-import\\":\\"^7.8.3\\",\\"@babel/plugin-syntax-import-meta\\":\\"^7.10.4\\",\\"@babel/preset-env\\":\\"^7.13.15\\",\\"@babel/preset-typescript\\":\\"^7.13.0\\",\\"@babel/register\\":\\"^7.13.14\\",\\"@types/jest\\":\\"^26.0.22\\",\\"@typescript-eslint/eslint-plugin\\":\\"^4.21.0\\",\\"@typescript-eslint/parser\\":\\"^4.21.0\\",\\"axios\\":\\"^0.21.4\\",\\"babel-plugin-knifecycle\\":\\"^5.0.1\\",\\"chokidar\\":\\"^3.5.1\\",\\"eslint\\":\\"^7.23.0\\",\\"eslint-plugin-prettier\\":\\"^3.3.1\\",\\"jest\\":\\"^26.6.3\\",\\"jsarch\\":\\"^4.0.1\\",\\"openapi-schema-validator\\":\\"^8.0.0\\",\\"parse-gitignore\\":\\"^1.0.1\\",\\"prettier\\":\\"^2.2.1\\",\\"rimraf\\":\\"^3.0.2\\",\\"schema2dts\\":\\"^2.0.1\\",\\"typescript\\":\\"^4.2.4\\"},\\"eslintConfig\\":{\\"extends\\":[\\"eslint:recommended\\",\\"plugin:@typescript-eslint/eslint-recommended\\",\\"plugin:@typescript-eslint/recommended\\"],\\"parserOptions\\":{\\"ecmaVersion\\":2018,\\"sourceType\\":\\"module\\",\\"modules\\":true},\\"env\\":{\\"es6\\":true,\\"node\\":true,\\"jest\\":true,\\"mocha\\":true},\\"plugins\\":[\\"prettier\\"],\\"rules\\":{\\"prettier/prettier\\":\\"error\\"},\\"parser\\":\\"@typescript-eslint/parser\\",\\"ignorePatterns\\":[\\"*.d.ts\\"]},\\"prettier\\":{\\"semi\\":true,\\"printWidth\\":80,\\"singleQuote\\":true,\\"trailingComma\\":\\"all\\",\\"proseWrap\\":\\"always\\"},\\"babel\\":{\\"plugins\\":[\\"@babel/proposal-class-properties\\",\\"@babel/plugin-proposal-object-rest-spread\\",\\"babel-plugin-knifecycle\\"],\\"presets\\":[\\"@babel/typescript\\",[\\"@babel/env\\",{\\"targets\\":{\\"node\\":\\"12.19.0\\"}}]],\\"env\\":{\\"cjs\\":{\\"presets\\":[[\\"@babel/env\\",{\\"targets\\":{\\"node\\":\\"10\\"},\\"modules\\":\\"commonjs\\"}]],\\"comments\\":true},\\"mjs\\":{\\"presets\\":[[\\"@babel/env\\",{\\"targets\\":{\\"node\\":\\"12\\"},\\"modules\\":false}]],\\"comments\\":false}},\\"sourceMaps\\":true},\\"jest\\":{\\"coverageReporters\\":[\\"lcov\\",\\"html\\"],\\"testPathIgnorePatterns\\":[\\"/node_modules/\\"],\\"roots\\":[\\"/src\\"],\\"testEnvironment\\":\\"node\\"}}", + "{\\"name\\":\\"super-project\\",\\"description\\":\\"A new Whook project\\",\\"version\\":\\"0.0.0\\",\\"license\\":\\"SEE LICENSE\\",\\"engines\\":{\\"node\\":\\">=12.19.0\\"},\\"main\\":\\"dist/index\\",\\"module\\":\\"dist/index.mjs\\",\\"types\\":\\"dist/index.d.ts\\",\\"private\\":true,\\"keywords\\":[\\"whook\\"],\\"author\\":{\\"name\\":\\"Wayne Campbell\\",\\"email\\":\\"wayne@warner.com\\"},\\"scripts\\":{\\"apitypes\\":\\"npm run --silent whook -- generateOpenAPISchema --authenticated=true | npm run --silent whook -- generateOpenAPITypes > src/openAPISchema.d.ts\\",\\"architecture\\":\\"jsarch 'src/**/*.ts' > ARCHITECTURE.md && git add ARCHITECTURE.md\\",\\"build\\":\\"npm run compile && NODE_ENV=\${NODE_ENV:-development} node bin/build\\",\\"compile\\":\\"rimraf -f 'dist' && npm run compile:cjs && npm run compile:mjs\\",\\"compile:cjs\\":\\"babel --env-name=cjs --out-dir=dist --extensions '.ts,.js' --source-maps=true src\\",\\"compile:mjs\\":\\"babel --env-name=mjs --out-file-extension=.mjs --out-dir=dist --extensions '.ts,.js' --source-maps=true src\\",\\"cover\\":\\"npm run jest -- --coverage\\",\\"debug\\":\\"NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 DEBUG=\${DEBUG:-whook} babel-node --extensions '.ts,.js' --inspect bin/dev\\",\\"dev\\":\\"NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 babel-node --extensions '.ts,.js' bin/dev\\",\\"jest\\":\\"NODE_ENV=test jest\\",\\"lint\\":\\"eslint 'src/**/*.ts'\\",\\"prettier\\":\\"prettier --write 'src/**/*.ts'\\",\\"start\\":\\"NODE_ENV=\${NODE_ENV:-development} node bin/start\\",\\"test\\":\\"NODE_ENV=test npm run build && npm run jest\\",\\"types\\":\\"rimraf -f 'dist/**/*.d.ts' && tsc --project . --declaration --emitDeclarationOnly --outDir dist\\",\\"watch\\":\\"NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 babel-node --extensions '.ts,.js' bin/watch\\",\\"whook\\":\\"NODE_ENV=\${NODE_ENV:-development} whook\\",\\"whook-dev\\":\\"PROJECT_SRC=\\\\\\"$PWD/src\\\\\\" NODE_ENV=\${NODE_ENV:-development} babel-node --extensions '.ts,.js' -- node_modules/@whook/cli/bin/whook.js\\",\\"whook-repl\\":\\"PROJECT_SRC=\\\\\\"$PWD/src\\\\\\" NODE_ENV=\${NODE_ENV:-development} babel-node --extensions '.ts,.js' -- bin/repl.js\\"},\\"files\\":[\\"bin\\",\\"dist\\",\\"src\\",\\"LICENSE\\",\\"README.md\\",\\"CHANGELOG.md\\"],\\"dependencies\\":{\\"@whook/authorization\\":\\"\\",\\"@whook/aws-lambda\\":\\"\\",\\"@whook/cli\\":\\"\\",\\"@whook/cors\\":\\"\\",\\"@whook/http-router\\":\\"\\",\\"@whook/http-transaction\\":\\"\\",\\"@whook/swagger-ui\\":\\"\\",\\"@whook/whook\\":\\"\\",\\"common-services\\":\\"^9.0.1\\",\\"http-auth-utils\\":\\"^3.0.1\\",\\"jwt-service\\":\\"^7.1.3\\",\\"knifecycle\\":\\"^11.1.1\\",\\"strict-qs\\":\\"^6.1.4\\",\\"type-fest\\":\\"^2.3.3\\",\\"yerror\\":\\"^6.0.1\\",\\"yhttperror\\":\\"^6.0.1\\"},\\"devDependencies\\":{\\"@babel/cli\\":\\"^7.13.14\\",\\"@babel/core\\":\\"^7.13.15\\",\\"@babel/eslint-parser\\":\\"^7.13.14\\",\\"@babel/node\\":\\"^7.13.13\\",\\"@babel/plugin-proposal-class-properties\\":\\"^7.13.0\\",\\"@babel/plugin-proposal-object-rest-spread\\":\\"^7.13.8\\",\\"@babel/plugin-syntax-dynamic-import\\":\\"^7.8.3\\",\\"@babel/plugin-syntax-import-meta\\":\\"^7.10.4\\",\\"@babel/preset-env\\":\\"^7.13.15\\",\\"@babel/preset-typescript\\":\\"^7.13.0\\",\\"@babel/register\\":\\"^7.13.14\\",\\"@types/jest\\":\\"^26.0.22\\",\\"@typescript-eslint/eslint-plugin\\":\\"^4.21.0\\",\\"@typescript-eslint/parser\\":\\"^4.21.0\\",\\"axios\\":\\"^0.21.4\\",\\"babel-plugin-knifecycle\\":\\"^5.0.1\\",\\"chokidar\\":\\"^3.5.1\\",\\"esbuild\\":\\"^0.12.5\\",\\"esbuild-node-externals\\":\\"^1.3.0\\",\\"eslint\\":\\"^7.23.0\\",\\"eslint-plugin-prettier\\":\\"^3.3.1\\",\\"jest\\":\\"^26.6.3\\",\\"jsarch\\":\\"^4.0.1\\",\\"openapi-schema-validator\\":\\"^8.0.0\\",\\"parse-gitignore\\":\\"^1.0.1\\",\\"prettier\\":\\"^2.2.1\\",\\"rimraf\\":\\"^3.0.2\\",\\"schema2dts\\":\\"^2.0.1\\",\\"typescript\\":\\"^4.2.4\\"},\\"eslintConfig\\":{\\"extends\\":[\\"eslint:recommended\\",\\"plugin:@typescript-eslint/eslint-recommended\\",\\"plugin:@typescript-eslint/recommended\\"],\\"parserOptions\\":{\\"ecmaVersion\\":2018,\\"sourceType\\":\\"module\\",\\"modules\\":true},\\"env\\":{\\"es6\\":true,\\"node\\":true,\\"jest\\":true,\\"mocha\\":true},\\"plugins\\":[\\"prettier\\"],\\"rules\\":{\\"prettier/prettier\\":\\"error\\"},\\"parser\\":\\"@typescript-eslint/parser\\",\\"ignorePatterns\\":[\\"*.d.ts\\"]},\\"prettier\\":{\\"semi\\":true,\\"printWidth\\":80,\\"singleQuote\\":true,\\"trailingComma\\":\\"all\\",\\"proseWrap\\":\\"always\\"},\\"babel\\":{\\"plugins\\":[\\"@babel/proposal-class-properties\\",\\"@babel/plugin-proposal-object-rest-spread\\",\\"babel-plugin-knifecycle\\"],\\"presets\\":[\\"@babel/typescript\\",[\\"@babel/env\\",{\\"targets\\":{\\"node\\":\\"12.19.0\\"}}]],\\"env\\":{\\"cjs\\":{\\"presets\\":[[\\"@babel/env\\",{\\"targets\\":{\\"node\\":\\"10\\"},\\"modules\\":\\"commonjs\\"}]],\\"comments\\":true},\\"mjs\\":{\\"presets\\":[[\\"@babel/env\\",{\\"targets\\":{\\"node\\":\\"12\\"},\\"modules\\":false}]],\\"comments\\":false}},\\"sourceMaps\\":true},\\"jest\\":{\\"coverageReporters\\":[\\"lcov\\",\\"html\\"],\\"testPathIgnorePatterns\\":[\\"/node_modules/\\"],\\"roots\\":[\\"/src\\"],\\"testEnvironment\\":\\"node\\"}}", ], Array [ "/home/whoiam/projects/yolo/LICENSE", @@ -348,7 +348,7 @@ Wayne Campbell ], Array [ "/home/whoiam/projects/yolo/package.json", - "{\\"name\\":\\"super-project\\",\\"description\\":\\"A new Whook project\\",\\"version\\":\\"0.0.0\\",\\"license\\":\\"SEE LICENSE\\",\\"engines\\":{\\"node\\":\\">=12.19.0\\"},\\"main\\":\\"dist/index\\",\\"module\\":\\"dist/index.mjs\\",\\"types\\":\\"dist/index.d.ts\\",\\"private\\":true,\\"keywords\\":[\\"whook\\"],\\"author\\":{\\"name\\":\\"Wayne Campbell\\",\\"email\\":\\"wayne@warner.com\\"},\\"scripts\\":{\\"apitypes\\":\\"npm run --silent whook -- generateOpenAPISchema --authenticated=true | npm run --silent whook -- generateOpenAPITypes > src/openAPISchema.d.ts\\",\\"architecture\\":\\"jsarch 'src/**/*.ts' > ARCHITECTURE.md && git add ARCHITECTURE.md\\",\\"build\\":\\"npm run compile && NODE_ENV=\${NODE_ENV:-development} node bin/build\\",\\"compile\\":\\"rimraf -f 'dist' && npm run compile:cjs && npm run compile:mjs\\",\\"compile:cjs\\":\\"babel --env-name=cjs --out-dir=dist --extensions '.ts,.js' --source-maps=true src\\",\\"compile:mjs\\":\\"babel --env-name=mjs --out-file-extension=.mjs --out-dir=dist --extensions '.ts,.js' --source-maps=true src\\",\\"cover\\":\\"npm run jest -- --coverage\\",\\"debug\\":\\"NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 DEBUG=\${DEBUG:-whook} babel-node --extensions '.ts,.js' --inspect bin/dev\\",\\"dev\\":\\"NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 babel-node --extensions '.ts,.js' bin/dev\\",\\"jest\\":\\"NODE_ENV=test jest\\",\\"lint\\":\\"eslint 'src/**/*.ts'\\",\\"prettier\\":\\"prettier --write 'src/**/*.ts'\\",\\"start\\":\\"NODE_ENV=\${NODE_ENV:-development} node bin/start\\",\\"test\\":\\"NODE_ENV=test npm run build && npm run jest\\",\\"types\\":\\"rimraf -f 'dist/**/*.d.ts' && tsc --project . --declaration --emitDeclarationOnly --outDir dist\\",\\"watch\\":\\"NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 babel-node --extensions '.ts,.js' bin/watch\\",\\"whook\\":\\"NODE_ENV=\${NODE_ENV:-development} whook\\",\\"whook-dev\\":\\"PROJECT_SRC=\\\\\\"$PWD/src\\\\\\" NODE_ENV=\${NODE_ENV:-development} babel-node --extensions '.ts,.js' -- node_modules/@whook/cli/bin/whook.js\\",\\"whook-repl\\":\\"PROJECT_SRC=\\\\\\"$PWD/src\\\\\\" NODE_ENV=\${NODE_ENV:-development} babel-node --extensions '.ts,.js' -- bin/repl.js\\"},\\"files\\":[\\"bin\\",\\"dist\\",\\"src\\",\\"LICENSE\\",\\"README.md\\",\\"CHANGELOG.md\\"],\\"dependencies\\":{\\"@whook/authorization\\":\\"\\",\\"@whook/aws-lambda\\":\\"\\",\\"@whook/cli\\":\\"\\",\\"@whook/cors\\":\\"\\",\\"@whook/http-router\\":\\"\\",\\"@whook/http-transaction\\":\\"\\",\\"@whook/swagger-ui\\":\\"\\",\\"@whook/whook\\":\\"\\",\\"common-services\\":\\"^9.0.1\\",\\"http-auth-utils\\":\\"^3.0.1\\",\\"jwt-service\\":\\"^7.1.3\\",\\"knifecycle\\":\\"^11.1.1\\",\\"strict-qs\\":\\"^6.1.4\\",\\"type-fest\\":\\"^2.3.3\\",\\"yerror\\":\\"^6.0.1\\",\\"yhttperror\\":\\"^6.0.1\\"},\\"devDependencies\\":{\\"@babel/cli\\":\\"^7.13.14\\",\\"@babel/core\\":\\"^7.13.15\\",\\"@babel/eslint-parser\\":\\"^7.13.14\\",\\"@babel/node\\":\\"^7.13.13\\",\\"@babel/plugin-proposal-class-properties\\":\\"^7.13.0\\",\\"@babel/plugin-proposal-object-rest-spread\\":\\"^7.13.8\\",\\"@babel/plugin-syntax-dynamic-import\\":\\"^7.8.3\\",\\"@babel/plugin-syntax-import-meta\\":\\"^7.10.4\\",\\"@babel/preset-env\\":\\"^7.13.15\\",\\"@babel/preset-typescript\\":\\"^7.13.0\\",\\"@babel/register\\":\\"^7.13.14\\",\\"@types/jest\\":\\"^26.0.22\\",\\"@typescript-eslint/eslint-plugin\\":\\"^4.21.0\\",\\"@typescript-eslint/parser\\":\\"^4.21.0\\",\\"axios\\":\\"^0.21.4\\",\\"babel-plugin-knifecycle\\":\\"^5.0.1\\",\\"chokidar\\":\\"^3.5.1\\",\\"eslint\\":\\"^7.23.0\\",\\"eslint-plugin-prettier\\":\\"^3.3.1\\",\\"jest\\":\\"^26.6.3\\",\\"jsarch\\":\\"^4.0.1\\",\\"openapi-schema-validator\\":\\"^8.0.0\\",\\"parse-gitignore\\":\\"^1.0.1\\",\\"prettier\\":\\"^2.2.1\\",\\"rimraf\\":\\"^3.0.2\\",\\"schema2dts\\":\\"^2.0.1\\",\\"typescript\\":\\"^4.2.4\\"},\\"eslintConfig\\":{\\"extends\\":[\\"eslint:recommended\\",\\"plugin:@typescript-eslint/eslint-recommended\\",\\"plugin:@typescript-eslint/recommended\\"],\\"parserOptions\\":{\\"ecmaVersion\\":2018,\\"sourceType\\":\\"module\\",\\"modules\\":true},\\"env\\":{\\"es6\\":true,\\"node\\":true,\\"jest\\":true,\\"mocha\\":true},\\"plugins\\":[\\"prettier\\"],\\"rules\\":{\\"prettier/prettier\\":\\"error\\"},\\"parser\\":\\"@typescript-eslint/parser\\",\\"ignorePatterns\\":[\\"*.d.ts\\"]},\\"prettier\\":{\\"semi\\":true,\\"printWidth\\":80,\\"singleQuote\\":true,\\"trailingComma\\":\\"all\\",\\"proseWrap\\":\\"always\\"},\\"babel\\":{\\"plugins\\":[\\"@babel/proposal-class-properties\\",\\"@babel/plugin-proposal-object-rest-spread\\",\\"babel-plugin-knifecycle\\"],\\"presets\\":[\\"@babel/typescript\\",[\\"@babel/env\\",{\\"targets\\":{\\"node\\":\\"12.19.0\\"}}]],\\"env\\":{\\"cjs\\":{\\"presets\\":[[\\"@babel/env\\",{\\"targets\\":{\\"node\\":\\"10\\"},\\"modules\\":\\"commonjs\\"}]],\\"comments\\":true},\\"mjs\\":{\\"presets\\":[[\\"@babel/env\\",{\\"targets\\":{\\"node\\":\\"12\\"},\\"modules\\":false}]],\\"comments\\":false}},\\"sourceMaps\\":true},\\"jest\\":{\\"coverageReporters\\":[\\"lcov\\",\\"html\\"],\\"testPathIgnorePatterns\\":[\\"/node_modules/\\"],\\"roots\\":[\\"/src\\"],\\"testEnvironment\\":\\"node\\"}}", + "{\\"name\\":\\"super-project\\",\\"description\\":\\"A new Whook project\\",\\"version\\":\\"0.0.0\\",\\"license\\":\\"SEE LICENSE\\",\\"engines\\":{\\"node\\":\\">=12.19.0\\"},\\"main\\":\\"dist/index\\",\\"module\\":\\"dist/index.mjs\\",\\"types\\":\\"dist/index.d.ts\\",\\"private\\":true,\\"keywords\\":[\\"whook\\"],\\"author\\":{\\"name\\":\\"Wayne Campbell\\",\\"email\\":\\"wayne@warner.com\\"},\\"scripts\\":{\\"apitypes\\":\\"npm run --silent whook -- generateOpenAPISchema --authenticated=true | npm run --silent whook -- generateOpenAPITypes > src/openAPISchema.d.ts\\",\\"architecture\\":\\"jsarch 'src/**/*.ts' > ARCHITECTURE.md && git add ARCHITECTURE.md\\",\\"build\\":\\"npm run compile && NODE_ENV=\${NODE_ENV:-development} node bin/build\\",\\"compile\\":\\"rimraf -f 'dist' && npm run compile:cjs && npm run compile:mjs\\",\\"compile:cjs\\":\\"babel --env-name=cjs --out-dir=dist --extensions '.ts,.js' --source-maps=true src\\",\\"compile:mjs\\":\\"babel --env-name=mjs --out-file-extension=.mjs --out-dir=dist --extensions '.ts,.js' --source-maps=true src\\",\\"cover\\":\\"npm run jest -- --coverage\\",\\"debug\\":\\"NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 DEBUG=\${DEBUG:-whook} babel-node --extensions '.ts,.js' --inspect bin/dev\\",\\"dev\\":\\"NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 babel-node --extensions '.ts,.js' bin/dev\\",\\"jest\\":\\"NODE_ENV=test jest\\",\\"lint\\":\\"eslint 'src/**/*.ts'\\",\\"prettier\\":\\"prettier --write 'src/**/*.ts'\\",\\"start\\":\\"NODE_ENV=\${NODE_ENV:-development} node bin/start\\",\\"test\\":\\"NODE_ENV=test npm run build && npm run jest\\",\\"types\\":\\"rimraf -f 'dist/**/*.d.ts' && tsc --project . --declaration --emitDeclarationOnly --outDir dist\\",\\"watch\\":\\"NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 babel-node --extensions '.ts,.js' bin/watch\\",\\"whook\\":\\"NODE_ENV=\${NODE_ENV:-development} whook\\",\\"whook-dev\\":\\"PROJECT_SRC=\\\\\\"$PWD/src\\\\\\" NODE_ENV=\${NODE_ENV:-development} babel-node --extensions '.ts,.js' -- node_modules/@whook/cli/bin/whook.js\\",\\"whook-repl\\":\\"PROJECT_SRC=\\\\\\"$PWD/src\\\\\\" NODE_ENV=\${NODE_ENV:-development} babel-node --extensions '.ts,.js' -- bin/repl.js\\"},\\"files\\":[\\"bin\\",\\"dist\\",\\"src\\",\\"LICENSE\\",\\"README.md\\",\\"CHANGELOG.md\\"],\\"dependencies\\":{\\"@whook/authorization\\":\\"\\",\\"@whook/aws-lambda\\":\\"\\",\\"@whook/cli\\":\\"\\",\\"@whook/cors\\":\\"\\",\\"@whook/http-router\\":\\"\\",\\"@whook/http-transaction\\":\\"\\",\\"@whook/swagger-ui\\":\\"\\",\\"@whook/whook\\":\\"\\",\\"common-services\\":\\"^9.0.1\\",\\"http-auth-utils\\":\\"^3.0.1\\",\\"jwt-service\\":\\"^7.1.3\\",\\"knifecycle\\":\\"^11.1.1\\",\\"strict-qs\\":\\"^6.1.4\\",\\"type-fest\\":\\"^2.3.3\\",\\"yerror\\":\\"^6.0.1\\",\\"yhttperror\\":\\"^6.0.1\\"},\\"devDependencies\\":{\\"@babel/cli\\":\\"^7.13.14\\",\\"@babel/core\\":\\"^7.13.15\\",\\"@babel/eslint-parser\\":\\"^7.13.14\\",\\"@babel/node\\":\\"^7.13.13\\",\\"@babel/plugin-proposal-class-properties\\":\\"^7.13.0\\",\\"@babel/plugin-proposal-object-rest-spread\\":\\"^7.13.8\\",\\"@babel/plugin-syntax-dynamic-import\\":\\"^7.8.3\\",\\"@babel/plugin-syntax-import-meta\\":\\"^7.10.4\\",\\"@babel/preset-env\\":\\"^7.13.15\\",\\"@babel/preset-typescript\\":\\"^7.13.0\\",\\"@babel/register\\":\\"^7.13.14\\",\\"@types/jest\\":\\"^26.0.22\\",\\"@typescript-eslint/eslint-plugin\\":\\"^4.21.0\\",\\"@typescript-eslint/parser\\":\\"^4.21.0\\",\\"axios\\":\\"^0.21.4\\",\\"babel-plugin-knifecycle\\":\\"^5.0.1\\",\\"chokidar\\":\\"^3.5.1\\",\\"esbuild\\":\\"^0.12.5\\",\\"esbuild-node-externals\\":\\"^1.3.0\\",\\"eslint\\":\\"^7.23.0\\",\\"eslint-plugin-prettier\\":\\"^3.3.1\\",\\"jest\\":\\"^26.6.3\\",\\"jsarch\\":\\"^4.0.1\\",\\"openapi-schema-validator\\":\\"^8.0.0\\",\\"parse-gitignore\\":\\"^1.0.1\\",\\"prettier\\":\\"^2.2.1\\",\\"rimraf\\":\\"^3.0.2\\",\\"schema2dts\\":\\"^2.0.1\\",\\"typescript\\":\\"^4.2.4\\"},\\"eslintConfig\\":{\\"extends\\":[\\"eslint:recommended\\",\\"plugin:@typescript-eslint/eslint-recommended\\",\\"plugin:@typescript-eslint/recommended\\"],\\"parserOptions\\":{\\"ecmaVersion\\":2018,\\"sourceType\\":\\"module\\",\\"modules\\":true},\\"env\\":{\\"es6\\":true,\\"node\\":true,\\"jest\\":true,\\"mocha\\":true},\\"plugins\\":[\\"prettier\\"],\\"rules\\":{\\"prettier/prettier\\":\\"error\\"},\\"parser\\":\\"@typescript-eslint/parser\\",\\"ignorePatterns\\":[\\"*.d.ts\\"]},\\"prettier\\":{\\"semi\\":true,\\"printWidth\\":80,\\"singleQuote\\":true,\\"trailingComma\\":\\"all\\",\\"proseWrap\\":\\"always\\"},\\"babel\\":{\\"plugins\\":[\\"@babel/proposal-class-properties\\",\\"@babel/plugin-proposal-object-rest-spread\\",\\"babel-plugin-knifecycle\\"],\\"presets\\":[\\"@babel/typescript\\",[\\"@babel/env\\",{\\"targets\\":{\\"node\\":\\"12.19.0\\"}}]],\\"env\\":{\\"cjs\\":{\\"presets\\":[[\\"@babel/env\\",{\\"targets\\":{\\"node\\":\\"10\\"},\\"modules\\":\\"commonjs\\"}]],\\"comments\\":true},\\"mjs\\":{\\"presets\\":[[\\"@babel/env\\",{\\"targets\\":{\\"node\\":\\"12\\"},\\"modules\\":false}]],\\"comments\\":false}},\\"sourceMaps\\":true},\\"jest\\":{\\"coverageReporters\\":[\\"lcov\\",\\"html\\"],\\"testPathIgnorePatterns\\":[\\"/node_modules/\\"],\\"roots\\":[\\"/src\\"],\\"testEnvironment\\":\\"node\\"}}", ], Array [ "/home/whoiam/projects/yolo/LICENSE", @@ -493,7 +493,7 @@ Wayne Campbell ], Array [ "/home/whoiam/projects/yolo/package.json", - "{\\"name\\":\\"super-project\\",\\"description\\":\\"A new Whook project\\",\\"version\\":\\"0.0.0\\",\\"license\\":\\"SEE LICENSE\\",\\"engines\\":{\\"node\\":\\">=12.19.0\\"},\\"main\\":\\"dist/index\\",\\"module\\":\\"dist/index.mjs\\",\\"types\\":\\"dist/index.d.ts\\",\\"private\\":true,\\"keywords\\":[\\"whook\\"],\\"author\\":{\\"name\\":\\"Wayne Campbell\\",\\"email\\":\\"wayne@warner.com\\"},\\"scripts\\":{\\"apitypes\\":\\"npm run --silent whook -- generateOpenAPISchema --authenticated=true | npm run --silent whook -- generateOpenAPITypes > src/openAPISchema.d.ts\\",\\"architecture\\":\\"jsarch 'src/**/*.ts' > ARCHITECTURE.md && git add ARCHITECTURE.md\\",\\"build\\":\\"npm run compile && NODE_ENV=\${NODE_ENV:-development} node bin/build\\",\\"compile\\":\\"rimraf -f 'dist' && npm run compile:cjs && npm run compile:mjs\\",\\"compile:cjs\\":\\"babel --env-name=cjs --out-dir=dist --extensions '.ts,.js' --source-maps=true src\\",\\"compile:mjs\\":\\"babel --env-name=mjs --out-file-extension=.mjs --out-dir=dist --extensions '.ts,.js' --source-maps=true src\\",\\"cover\\":\\"npm run jest -- --coverage\\",\\"debug\\":\\"NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 DEBUG=\${DEBUG:-whook} babel-node --extensions '.ts,.js' --inspect bin/dev\\",\\"dev\\":\\"NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 babel-node --extensions '.ts,.js' bin/dev\\",\\"jest\\":\\"NODE_ENV=test jest\\",\\"lint\\":\\"eslint 'src/**/*.ts'\\",\\"prettier\\":\\"prettier --write 'src/**/*.ts'\\",\\"start\\":\\"NODE_ENV=\${NODE_ENV:-development} node bin/start\\",\\"test\\":\\"NODE_ENV=test npm run build && npm run jest\\",\\"types\\":\\"rimraf -f 'dist/**/*.d.ts' && tsc --project . --declaration --emitDeclarationOnly --outDir dist\\",\\"watch\\":\\"NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 babel-node --extensions '.ts,.js' bin/watch\\",\\"whook\\":\\"NODE_ENV=\${NODE_ENV:-development} whook\\",\\"whook-dev\\":\\"PROJECT_SRC=\\\\\\"$PWD/src\\\\\\" NODE_ENV=\${NODE_ENV:-development} babel-node --extensions '.ts,.js' -- node_modules/@whook/cli/bin/whook.js\\",\\"whook-repl\\":\\"PROJECT_SRC=\\\\\\"$PWD/src\\\\\\" NODE_ENV=\${NODE_ENV:-development} babel-node --extensions '.ts,.js' -- bin/repl.js\\"},\\"files\\":[\\"bin\\",\\"dist\\",\\"src\\",\\"LICENSE\\",\\"README.md\\",\\"CHANGELOG.md\\"],\\"dependencies\\":{\\"@whook/authorization\\":\\"\\",\\"@whook/aws-lambda\\":\\"\\",\\"@whook/cli\\":\\"\\",\\"@whook/cors\\":\\"\\",\\"@whook/http-router\\":\\"\\",\\"@whook/http-transaction\\":\\"\\",\\"@whook/swagger-ui\\":\\"\\",\\"@whook/whook\\":\\"\\",\\"common-services\\":\\"^9.0.1\\",\\"http-auth-utils\\":\\"^3.0.1\\",\\"jwt-service\\":\\"^7.1.3\\",\\"knifecycle\\":\\"^11.1.1\\",\\"strict-qs\\":\\"^6.1.4\\",\\"type-fest\\":\\"^2.3.3\\",\\"yerror\\":\\"^6.0.1\\",\\"yhttperror\\":\\"^6.0.1\\"},\\"devDependencies\\":{\\"@babel/cli\\":\\"^7.13.14\\",\\"@babel/core\\":\\"^7.13.15\\",\\"@babel/eslint-parser\\":\\"^7.13.14\\",\\"@babel/node\\":\\"^7.13.13\\",\\"@babel/plugin-proposal-class-properties\\":\\"^7.13.0\\",\\"@babel/plugin-proposal-object-rest-spread\\":\\"^7.13.8\\",\\"@babel/plugin-syntax-dynamic-import\\":\\"^7.8.3\\",\\"@babel/plugin-syntax-import-meta\\":\\"^7.10.4\\",\\"@babel/preset-env\\":\\"^7.13.15\\",\\"@babel/preset-typescript\\":\\"^7.13.0\\",\\"@babel/register\\":\\"^7.13.14\\",\\"@types/jest\\":\\"^26.0.22\\",\\"@typescript-eslint/eslint-plugin\\":\\"^4.21.0\\",\\"@typescript-eslint/parser\\":\\"^4.21.0\\",\\"axios\\":\\"^0.21.4\\",\\"babel-plugin-knifecycle\\":\\"^5.0.1\\",\\"chokidar\\":\\"^3.5.1\\",\\"eslint\\":\\"^7.23.0\\",\\"eslint-plugin-prettier\\":\\"^3.3.1\\",\\"jest\\":\\"^26.6.3\\",\\"jsarch\\":\\"^4.0.1\\",\\"openapi-schema-validator\\":\\"^8.0.0\\",\\"parse-gitignore\\":\\"^1.0.1\\",\\"prettier\\":\\"^2.2.1\\",\\"rimraf\\":\\"^3.0.2\\",\\"schema2dts\\":\\"^2.0.1\\",\\"typescript\\":\\"^4.2.4\\"},\\"eslintConfig\\":{\\"extends\\":[\\"eslint:recommended\\",\\"plugin:@typescript-eslint/eslint-recommended\\",\\"plugin:@typescript-eslint/recommended\\"],\\"parserOptions\\":{\\"ecmaVersion\\":2018,\\"sourceType\\":\\"module\\",\\"modules\\":true},\\"env\\":{\\"es6\\":true,\\"node\\":true,\\"jest\\":true,\\"mocha\\":true},\\"plugins\\":[\\"prettier\\"],\\"rules\\":{\\"prettier/prettier\\":\\"error\\"},\\"parser\\":\\"@typescript-eslint/parser\\",\\"ignorePatterns\\":[\\"*.d.ts\\"]},\\"prettier\\":{\\"semi\\":true,\\"printWidth\\":80,\\"singleQuote\\":true,\\"trailingComma\\":\\"all\\",\\"proseWrap\\":\\"always\\"},\\"babel\\":{\\"plugins\\":[\\"@babel/proposal-class-properties\\",\\"@babel/plugin-proposal-object-rest-spread\\",\\"babel-plugin-knifecycle\\"],\\"presets\\":[\\"@babel/typescript\\",[\\"@babel/env\\",{\\"targets\\":{\\"node\\":\\"12.19.0\\"}}]],\\"env\\":{\\"cjs\\":{\\"presets\\":[[\\"@babel/env\\",{\\"targets\\":{\\"node\\":\\"10\\"},\\"modules\\":\\"commonjs\\"}]],\\"comments\\":true},\\"mjs\\":{\\"presets\\":[[\\"@babel/env\\",{\\"targets\\":{\\"node\\":\\"12\\"},\\"modules\\":false}]],\\"comments\\":false}},\\"sourceMaps\\":true},\\"jest\\":{\\"coverageReporters\\":[\\"lcov\\",\\"html\\"],\\"testPathIgnorePatterns\\":[\\"/node_modules/\\"],\\"roots\\":[\\"/src\\"],\\"testEnvironment\\":\\"node\\"}}", + "{\\"name\\":\\"super-project\\",\\"description\\":\\"A new Whook project\\",\\"version\\":\\"0.0.0\\",\\"license\\":\\"SEE LICENSE\\",\\"engines\\":{\\"node\\":\\">=12.19.0\\"},\\"main\\":\\"dist/index\\",\\"module\\":\\"dist/index.mjs\\",\\"types\\":\\"dist/index.d.ts\\",\\"private\\":true,\\"keywords\\":[\\"whook\\"],\\"author\\":{\\"name\\":\\"Wayne Campbell\\",\\"email\\":\\"wayne@warner.com\\"},\\"scripts\\":{\\"apitypes\\":\\"npm run --silent whook -- generateOpenAPISchema --authenticated=true | npm run --silent whook -- generateOpenAPITypes > src/openAPISchema.d.ts\\",\\"architecture\\":\\"jsarch 'src/**/*.ts' > ARCHITECTURE.md && git add ARCHITECTURE.md\\",\\"build\\":\\"npm run compile && NODE_ENV=\${NODE_ENV:-development} node bin/build\\",\\"compile\\":\\"rimraf -f 'dist' && npm run compile:cjs && npm run compile:mjs\\",\\"compile:cjs\\":\\"babel --env-name=cjs --out-dir=dist --extensions '.ts,.js' --source-maps=true src\\",\\"compile:mjs\\":\\"babel --env-name=mjs --out-file-extension=.mjs --out-dir=dist --extensions '.ts,.js' --source-maps=true src\\",\\"cover\\":\\"npm run jest -- --coverage\\",\\"debug\\":\\"NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 DEBUG=\${DEBUG:-whook} babel-node --extensions '.ts,.js' --inspect bin/dev\\",\\"dev\\":\\"NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 babel-node --extensions '.ts,.js' bin/dev\\",\\"jest\\":\\"NODE_ENV=test jest\\",\\"lint\\":\\"eslint 'src/**/*.ts'\\",\\"prettier\\":\\"prettier --write 'src/**/*.ts'\\",\\"start\\":\\"NODE_ENV=\${NODE_ENV:-development} node bin/start\\",\\"test\\":\\"NODE_ENV=test npm run build && npm run jest\\",\\"types\\":\\"rimraf -f 'dist/**/*.d.ts' && tsc --project . --declaration --emitDeclarationOnly --outDir dist\\",\\"watch\\":\\"NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 babel-node --extensions '.ts,.js' bin/watch\\",\\"whook\\":\\"NODE_ENV=\${NODE_ENV:-development} whook\\",\\"whook-dev\\":\\"PROJECT_SRC=\\\\\\"$PWD/src\\\\\\" NODE_ENV=\${NODE_ENV:-development} babel-node --extensions '.ts,.js' -- node_modules/@whook/cli/bin/whook.js\\",\\"whook-repl\\":\\"PROJECT_SRC=\\\\\\"$PWD/src\\\\\\" NODE_ENV=\${NODE_ENV:-development} babel-node --extensions '.ts,.js' -- bin/repl.js\\"},\\"files\\":[\\"bin\\",\\"dist\\",\\"src\\",\\"LICENSE\\",\\"README.md\\",\\"CHANGELOG.md\\"],\\"dependencies\\":{\\"@whook/authorization\\":\\"\\",\\"@whook/aws-lambda\\":\\"\\",\\"@whook/cli\\":\\"\\",\\"@whook/cors\\":\\"\\",\\"@whook/http-router\\":\\"\\",\\"@whook/http-transaction\\":\\"\\",\\"@whook/swagger-ui\\":\\"\\",\\"@whook/whook\\":\\"\\",\\"common-services\\":\\"^9.0.1\\",\\"http-auth-utils\\":\\"^3.0.1\\",\\"jwt-service\\":\\"^7.1.3\\",\\"knifecycle\\":\\"^11.1.1\\",\\"strict-qs\\":\\"^6.1.4\\",\\"type-fest\\":\\"^2.3.3\\",\\"yerror\\":\\"^6.0.1\\",\\"yhttperror\\":\\"^6.0.1\\"},\\"devDependencies\\":{\\"@babel/cli\\":\\"^7.13.14\\",\\"@babel/core\\":\\"^7.13.15\\",\\"@babel/eslint-parser\\":\\"^7.13.14\\",\\"@babel/node\\":\\"^7.13.13\\",\\"@babel/plugin-proposal-class-properties\\":\\"^7.13.0\\",\\"@babel/plugin-proposal-object-rest-spread\\":\\"^7.13.8\\",\\"@babel/plugin-syntax-dynamic-import\\":\\"^7.8.3\\",\\"@babel/plugin-syntax-import-meta\\":\\"^7.10.4\\",\\"@babel/preset-env\\":\\"^7.13.15\\",\\"@babel/preset-typescript\\":\\"^7.13.0\\",\\"@babel/register\\":\\"^7.13.14\\",\\"@types/jest\\":\\"^26.0.22\\",\\"@typescript-eslint/eslint-plugin\\":\\"^4.21.0\\",\\"@typescript-eslint/parser\\":\\"^4.21.0\\",\\"axios\\":\\"^0.21.4\\",\\"babel-plugin-knifecycle\\":\\"^5.0.1\\",\\"chokidar\\":\\"^3.5.1\\",\\"esbuild\\":\\"^0.12.5\\",\\"esbuild-node-externals\\":\\"^1.3.0\\",\\"eslint\\":\\"^7.23.0\\",\\"eslint-plugin-prettier\\":\\"^3.3.1\\",\\"jest\\":\\"^26.6.3\\",\\"jsarch\\":\\"^4.0.1\\",\\"openapi-schema-validator\\":\\"^8.0.0\\",\\"parse-gitignore\\":\\"^1.0.1\\",\\"prettier\\":\\"^2.2.1\\",\\"rimraf\\":\\"^3.0.2\\",\\"schema2dts\\":\\"^2.0.1\\",\\"typescript\\":\\"^4.2.4\\"},\\"eslintConfig\\":{\\"extends\\":[\\"eslint:recommended\\",\\"plugin:@typescript-eslint/eslint-recommended\\",\\"plugin:@typescript-eslint/recommended\\"],\\"parserOptions\\":{\\"ecmaVersion\\":2018,\\"sourceType\\":\\"module\\",\\"modules\\":true},\\"env\\":{\\"es6\\":true,\\"node\\":true,\\"jest\\":true,\\"mocha\\":true},\\"plugins\\":[\\"prettier\\"],\\"rules\\":{\\"prettier/prettier\\":\\"error\\"},\\"parser\\":\\"@typescript-eslint/parser\\",\\"ignorePatterns\\":[\\"*.d.ts\\"]},\\"prettier\\":{\\"semi\\":true,\\"printWidth\\":80,\\"singleQuote\\":true,\\"trailingComma\\":\\"all\\",\\"proseWrap\\":\\"always\\"},\\"babel\\":{\\"plugins\\":[\\"@babel/proposal-class-properties\\",\\"@babel/plugin-proposal-object-rest-spread\\",\\"babel-plugin-knifecycle\\"],\\"presets\\":[\\"@babel/typescript\\",[\\"@babel/env\\",{\\"targets\\":{\\"node\\":\\"12.19.0\\"}}]],\\"env\\":{\\"cjs\\":{\\"presets\\":[[\\"@babel/env\\",{\\"targets\\":{\\"node\\":\\"10\\"},\\"modules\\":\\"commonjs\\"}]],\\"comments\\":true},\\"mjs\\":{\\"presets\\":[[\\"@babel/env\\",{\\"targets\\":{\\"node\\":\\"12\\"},\\"modules\\":false}]],\\"comments\\":false}},\\"sourceMaps\\":true},\\"jest\\":{\\"coverageReporters\\":[\\"lcov\\",\\"html\\"],\\"testPathIgnorePatterns\\":[\\"/node_modules/\\"],\\"roots\\":[\\"/src\\"],\\"testEnvironment\\":\\"node\\"}}", ], Array [ "/home/whoiam/projects/yolo/LICENSE", diff --git a/packages/whook-create/src/services/createWhook.test.ts b/packages/whook-create/src/services/createWhook.test.ts index c7cc84f9..6021aa72 100644 --- a/packages/whook-create/src/services/createWhook.test.ts +++ b/packages/whook-create/src/services/createWhook.test.ts @@ -222,6 +222,8 @@ Mr Bean "axios": "^0.21.4", "babel-plugin-knifecycle": "^5.0.1", "chokidar": "^3.5.1", + "esbuild": "^0.12.5", + "esbuild-node-externals": "^1.3.0", "eslint": "^7.23.0", "eslint-plugin-prettier": "^3.3.1", "jest": "^26.6.3", @@ -483,6 +485,8 @@ Mr Bean "axios": "^0.21.4", "babel-plugin-knifecycle": "^5.0.1", "chokidar": "^3.5.1", + "esbuild": "^0.12.5", + "esbuild-node-externals": "^1.3.0", "eslint": "^7.23.0", "eslint-plugin-prettier": "^3.3.1", "jest": "^26.6.3", @@ -729,6 +733,8 @@ Mr Bean "axios": "^0.21.4", "babel-plugin-knifecycle": "^5.0.1", "chokidar": "^3.5.1", + "esbuild": "^0.12.5", + "esbuild-node-externals": "^1.3.0", "eslint": "^7.23.0", "eslint-plugin-prettier": "^3.3.1", "jest": "^26.6.3", diff --git a/packages/whook-example/README.md b/packages/whook-example/README.md index eee43269..87e47a8c 100644 --- a/packages/whook-example/README.md +++ b/packages/whook-example/README.md @@ -109,6 +109,12 @@ Build the lambdas: NODE_ENV=staging npm run build ``` +Build the lambdas layer: + +```sh +NODE_ENV=staging bin/lambda_layer.sh +``` + Build the commands Terraform depends on: ```sh diff --git a/packages/whook-example/bin/lambda_layer.sh b/packages/whook-example/bin/lambda_layer.sh new file mode 100755 index 00000000..36738745 --- /dev/null +++ b/packages/whook-example/bin/lambda_layer.sh @@ -0,0 +1,7 @@ +mkdir -p layer/nodejs; +cp package.json layer/nodejs/package.json; +cp package-lock.json layer/nodejs/package-lock.json; +docker run --entrypoint "" -v "$PWD/layer/nodejs":/var/task "public.ecr.aws/lambda/nodejs:14" /bin/sh -c "yum install -y gcc gcc-c++ make; npm i --production; sudo chown -R $USER /var/task; exit"; +env --chdir "$PWD/layer" zip -r ../lambda_layer.zip .; +docker run --entrypoint "" -v "$PWD/layer/nodejs":/var/task "public.ecr.aws/lambda/nodejs:14" /bin/sh -c "rm -rf node_modules; exit"; +rm -rf layer/nodejs; diff --git a/packages/whook-example/package.json b/packages/whook-example/package.json index 76c1372c..ad1b844b 100644 --- a/packages/whook-example/package.json +++ b/packages/whook-example/package.json @@ -39,7 +39,8 @@ "lambdas", ".terraform", "*.plan", - "*.tfstate.d" + "*.tfstate.d", + "lambda_layer.zip" ], "bundleFiles": [ "bin", @@ -121,6 +122,8 @@ "axios": "^0.21.4", "babel-plugin-knifecycle": "^5.0.1", "chokidar": "^3.5.1", + "esbuild": "^0.12.5", + "esbuild-node-externals": "^1.3.0", "eslint": "^7.23.0", "eslint-plugin-prettier": "^3.3.1", "jest": "^26.6.3", diff --git a/packages/whook-example/src/config/common/config.ts b/packages/whook-example/src/config/common/config.ts index bd25ef30..38ac4ec2 100644 --- a/packages/whook-example/src/config/common/config.ts +++ b/packages/whook-example/src/config/common/config.ts @@ -152,6 +152,11 @@ const CONFIG: AppConfigs = { 'User-Agent', ].join(','), }, + COMPILER_OPTIONS: { + externalModules: [], + ignoredModules: [], + excludeNodeModules: true, + }, }; export default CONFIG; diff --git a/packages/whook-example/terraform/lambdas.tf b/packages/whook-example/terraform/lambdas.tf index 50fb131c..dec457e1 100644 --- a/packages/whook-example/terraform/lambdas.tf +++ b/packages/whook-example/terraform/lambdas.tf @@ -71,6 +71,14 @@ data "external" "envvars" { working_dir = ".." } +resource "aws_lambda_layer_version" "lambda_layer" { + filename = "../lambda_layer.zip" + layer_name = "api-lambda-layer" + description = "A layer with all lambdas node modules" + source_code_hash = filebase64sha256("../package-lock.json") + compatible_runtimes = ["nodejs14.x"] +} + data "archive_file" "lambdas" { for_each = data.external.lambdas.result type = "zip" @@ -88,6 +96,7 @@ resource "aws_lambda_function" "lambda_function" { source_code_hash = data.archive_file.lambdas[each.key].output_base64sha256 memory_size = split("|", each.value)[3] timeout = split("|", each.value)[2] + layers = [aws_lambda_layer_version.lambda_layer.arn] environment { variables = zipmap( keys(data.external.envvars.result), @@ -98,7 +107,7 @@ resource "aws_lambda_function" "lambda_function" { } resource "aws_cloudwatch_log_group" "cloudwatch_log_group" { - for_each = data.external.lambdas.result - name = "/aws/lambda/${terraform.workspace}_${each.key}" + for_each = data.external.lambdas.result + name = "/aws/lambda/${terraform.workspace}_${each.key}" retention_in_days = terraform.workspace == "production" ? 90 : 3 }