@feathersjs/cli 5.0.0-pre.27 → 5.0.0-pre.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/lib/app/index.js +1 -1
  3. package/lib/app/index.js.map +1 -1
  4. package/lib/app/index.ts +1 -1
  5. package/lib/app/templates/app.tpl.js +18 -6
  6. package/lib/app/templates/app.tpl.js.map +1 -1
  7. package/lib/app/templates/app.tpl.ts +22 -6
  8. package/lib/app/templates/client.tpl.js +1 -1
  9. package/lib/app/templates/client.tpl.ts +1 -1
  10. package/lib/app/templates/config.tpl.js +10 -1
  11. package/lib/app/templates/config.tpl.js.map +1 -1
  12. package/lib/app/templates/config.tpl.ts +10 -0
  13. package/lib/app/templates/configuration.tpl.js +6 -0
  14. package/lib/app/templates/configuration.tpl.js.map +1 -1
  15. package/lib/app/templates/configuration.tpl.ts +6 -0
  16. package/lib/app/templates/declarations.tpl.js +2 -1
  17. package/lib/app/templates/declarations.tpl.js.map +1 -1
  18. package/lib/app/templates/declarations.tpl.ts +2 -1
  19. package/lib/app/templates/package.json.tpl.js +1 -2
  20. package/lib/app/templates/package.json.tpl.js.map +1 -1
  21. package/lib/app/templates/package.json.tpl.ts +1 -2
  22. package/lib/app/templates/tsconfig.json.tpl.js +1 -0
  23. package/lib/app/templates/tsconfig.json.tpl.js.map +1 -1
  24. package/lib/app/templates/tsconfig.json.tpl.ts +1 -0
  25. package/lib/authentication/templates/authentication.tpl.js +4 -6
  26. package/lib/authentication/templates/authentication.tpl.js.map +1 -1
  27. package/lib/authentication/templates/authentication.tpl.ts +4 -8
  28. package/lib/authentication/templates/config.tpl.js +9 -5
  29. package/lib/authentication/templates/config.tpl.js.map +1 -1
  30. package/lib/authentication/templates/config.tpl.ts +40 -34
  31. package/lib/authentication/templates/knex.tpl.js +3 -2
  32. package/lib/authentication/templates/knex.tpl.js.map +1 -1
  33. package/lib/authentication/templates/knex.tpl.ts +3 -2
  34. package/lib/authentication/templates/user.resolver.tpl.js +4 -2
  35. package/lib/authentication/templates/user.resolver.tpl.js.map +1 -1
  36. package/lib/authentication/templates/user.resolver.tpl.ts +4 -2
  37. package/lib/authentication/templates/user.schema.tpl.js +1 -1
  38. package/lib/authentication/templates/user.schema.tpl.js.map +1 -1
  39. package/lib/authentication/templates/user.schema.tpl.ts +1 -1
  40. package/lib/hook/templates/hook.tpl.js +2 -2
  41. package/lib/hook/templates/hook.tpl.js.map +1 -1
  42. package/lib/hook/templates/hook.tpl.ts +4 -3
  43. package/lib/service/templates/client.tpl.js +16 -2
  44. package/lib/service/templates/client.tpl.js.map +1 -1
  45. package/lib/service/templates/client.tpl.ts +16 -2
  46. package/package.json +21 -21
package/CHANGELOG.md CHANGED
@@ -3,6 +3,31 @@
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
+ # [5.0.0-pre.29](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.28...v5.0.0-pre.29) (2022-09-16)
7
+
8
+
9
+ ### Features
10
+
11
+ * Add CORS support to oAuth, Express, Koa and generated application ([#2744](https://github.com/feathersjs/feathers/issues/2744)) ([fd218f2](https://github.com/feathersjs/feathers/commit/fd218f289f8ca4c101e9938e8683e2efef6e8131))
12
+ * **authentication-oauth:** Koa and transport independent oAuth authentication ([#2737](https://github.com/feathersjs/feathers/issues/2737)) ([9231525](https://github.com/feathersjs/feathers/commit/9231525a24bb790ba9c5d940f2867a9c727691c9))
13
+ * **cli:** Add custom environment variable support to generated application ([#2751](https://github.com/feathersjs/feathers/issues/2751)) ([c7bf80d](https://github.com/feathersjs/feathers/commit/c7bf80d82c28c190e3f0136d51af5b7de1bc4868))
14
+ * **cli:** Adding ClientService to CLI ([#2750](https://github.com/feathersjs/feathers/issues/2750)) ([1d45427](https://github.com/feathersjs/feathers/commit/1d45427988521ac028755cbe128685fcdf34f636))
15
+
16
+
17
+
18
+
19
+
20
+ # [5.0.0-pre.28](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.27...v5.0.0-pre.28) (2022-08-03)
21
+
22
+
23
+ ### Bug Fixes
24
+
25
+ * **cli:** Improve generated application and client ([#2701](https://github.com/feathersjs/feathers/issues/2701)) ([bd55ffb](https://github.com/feathersjs/feathers/commit/bd55ffb812e89bf215f4515e7f137656ea888c3f))
26
+
27
+
28
+
29
+
30
+
6
31
  # [5.0.0-pre.27](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.26...v5.0.0-pre.27) (2022-07-13)
7
32
 
8
33
 
package/lib/app/index.js CHANGED
@@ -108,7 +108,7 @@ const generate = (ctx) => (0, pinion_1.generator)(ctx)
108
108
  dependencies.push('@feathersjs/koa', 'koa-static');
109
109
  }
110
110
  if (framework === 'express') {
111
- dependencies.push('@feathersjs/express', 'compression', 'helmet');
111
+ dependencies.push('@feathersjs/express', 'compression');
112
112
  }
113
113
  return (0, commons_1.addVersions)(dependencies, dependencyVersions);
114
114
  }))
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"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"}
package/lib/app/index.ts CHANGED
@@ -171,7 +171,7 @@ export const generate = (ctx: AppGeneratorArguments) =>
171
171
  }
172
172
 
173
173
  if (framework === 'express') {
174
- dependencies.push('@feathersjs/express', 'compression', 'helmet')
174
+ dependencies.push('@feathersjs/express', 'compression')
175
175
  }
176
176
 
177
177
  return addVersions(dependencies, dependencyVersions)
@@ -6,7 +6,7 @@ const commons_1 = require("../../commons");
6
6
  const tsKoaApp = ({ transports }) => `import serveStatic from 'koa-static'
7
7
  import { feathers } from '@feathersjs/feathers'
8
8
  import configuration from '@feathersjs/configuration'
9
- import { koa, rest, bodyParser, errorHandler, parseAuthentication } from '@feathersjs/koa'
9
+ import { koa, rest, bodyParser, errorHandler, parseAuthentication, cors } from '@feathersjs/koa'
10
10
  ${transports.includes('websockets') ? "import socketio from '@feathersjs/socketio'" : ''}
11
11
 
12
12
  import type { Application } from './declarations'
@@ -23,12 +23,19 @@ app.configure(configuration(configurationSchema))
23
23
  // Set up Koa middleware
24
24
  app.use(serveStatic(app.get('public')))
25
25
  app.use(errorHandler())
26
+ app.use(cors())
26
27
  app.use(parseAuthentication())
27
28
  app.use(bodyParser())
28
29
 
29
30
  // Configure services and transports
30
31
  app.configure(rest())
31
- ${transports.includes('websockets') ? 'app.configure(socketio())' : ''}
32
+ ${transports.includes('websockets')
33
+ ? `app.configure(socketio({
34
+ cors: {
35
+ origin: app.get('origins')
36
+ }
37
+ }))`
38
+ : ''}
32
39
  app.configure(services)
33
40
  app.configure(channels)
34
41
 
@@ -50,11 +57,10 @@ app.hooks({
50
57
  export { app }
51
58
  `;
52
59
  const tsExpressApp = ({ transports }) => `import compress from 'compression'
53
- import helmet from 'helmet'
54
60
 
55
61
  import { feathers } from '@feathersjs/feathers'
56
62
  import express, {
57
- rest, json, urlencoded,
63
+ rest, json, urlencoded, cors,
58
64
  serveStatic, notFound, errorHandler
59
65
  } from '@feathersjs/express'
60
66
  import configuration from '@feathersjs/configuration'
@@ -70,7 +76,7 @@ const app: Application = express(feathers())
70
76
 
71
77
  // Load app configuration
72
78
  app.configure(configuration(configurationSchema))
73
- app.use(helmet())
79
+ app.use(cors())
74
80
  app.use(compress())
75
81
  app.use(json())
76
82
  app.use(urlencoded({ extended: true }))
@@ -79,7 +85,13 @@ app.use('/', serveStatic(app.get('public')))
79
85
 
80
86
  // Configure services and real-time functionality
81
87
  app.configure(rest())
82
- ${transports.includes('websockets') ? 'app.configure(socketio())' : ''}
88
+ ${transports.includes('websockets')
89
+ ? `app.configure(socketio({
90
+ cors: {
91
+ origin: app.get('origins')
92
+ }
93
+ }))`
94
+ : ''}
83
95
  app.configure(services)
84
96
  app.configure(channels)
85
97
 
@@ -1 +1 @@
1
- {"version":3,"file":"app.tpl.js","sourceRoot":"","sources":["../../../src/app/templates/app.tpl.ts"],"names":[],"mappings":";;;AAAA,+CAAsD;AACtD,2CAA4C;AAG5C,MAAM,QAAQ,GAAG,CAAC,EAAE,UAAU,EAAuB,EAAE,EAAE,CACvD;;;;EAIA,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;EAqBtF,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;CAoBrE,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,EAAE,UAAU,EAAuB,EAAE,EAAE,CAC3D;;;;;;;;;EASA,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;EAqBtF,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;CAwBrE,CAAA;AAED,MAAM,QAAQ,GAAG,CAAC,GAAwB,EAAE,EAAE,CAC5C,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAE1D,MAAM,QAAQ,GAAG,CAAC,GAAwB,EAAE,EAAE,CACnD,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC,IAAI,CACjB,IAAA,sBAAY,EACV,QAAQ,EACR,IAAA,eAAM,EAAsB,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CACrD,CACF,CAAA;AANU,QAAA,QAAQ,YAMlB"}
1
+ {"version":3,"file":"app.tpl.js","sourceRoot":"","sources":["../../../src/app/templates/app.tpl.ts"],"names":[],"mappings":";;;AAAA,+CAAsD;AACtD,2CAA4C;AAG5C,MAAM,QAAQ,GAAG,CAAC,EAAE,UAAU,EAAuB,EAAE,EAAE,CACvD;;;;EAIA,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;EAuBtF,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC;IAC/B,CAAC,CAAC;;;;IAIF;IACA,CAAC,CAAC,EACN;;;;;;;;;;;;;;;;;;;;CAoBC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,EAAE,UAAU,EAAuB,EAAE,EAAE,CAC3D;;;;;;;;EAQA,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;EAsBtF,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC;IAC/B,CAAC,CAAC;;;;IAIF;IACA,CAAC,CAAC,EACN;;;;;;;;;;;;;;;;;;;;;;;;CAwBC,CAAA;AAED,MAAM,QAAQ,GAAG,CAAC,GAAwB,EAAE,EAAE,CAC5C,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAE1D,MAAM,QAAQ,GAAG,CAAC,GAAwB,EAAE,EAAE,CACnD,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC,IAAI,CACjB,IAAA,sBAAY,EACV,QAAQ,EACR,IAAA,eAAM,EAAsB,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CACrD,CACF,CAAA;AANU,QAAA,QAAQ,YAMlB"}
@@ -6,7 +6,7 @@ const tsKoaApp = ({ transports }: AppGeneratorContext) =>
6
6
  `import serveStatic from 'koa-static'
7
7
  import { feathers } from '@feathersjs/feathers'
8
8
  import configuration from '@feathersjs/configuration'
9
- import { koa, rest, bodyParser, errorHandler, parseAuthentication } from '@feathersjs/koa'
9
+ import { koa, rest, bodyParser, errorHandler, parseAuthentication, cors } from '@feathersjs/koa'
10
10
  ${transports.includes('websockets') ? "import socketio from '@feathersjs/socketio'" : ''}
11
11
 
12
12
  import type { Application } from './declarations'
@@ -23,12 +23,21 @@ app.configure(configuration(configurationSchema))
23
23
  // Set up Koa middleware
24
24
  app.use(serveStatic(app.get('public')))
25
25
  app.use(errorHandler())
26
+ app.use(cors())
26
27
  app.use(parseAuthentication())
27
28
  app.use(bodyParser())
28
29
 
29
30
  // Configure services and transports
30
31
  app.configure(rest())
31
- ${transports.includes('websockets') ? 'app.configure(socketio())' : ''}
32
+ ${
33
+ transports.includes('websockets')
34
+ ? `app.configure(socketio({
35
+ cors: {
36
+ origin: app.get('origins')
37
+ }
38
+ }))`
39
+ : ''
40
+ }
32
41
  app.configure(services)
33
42
  app.configure(channels)
34
43
 
@@ -52,11 +61,10 @@ export { app }
52
61
 
53
62
  const tsExpressApp = ({ transports }: AppGeneratorContext) =>
54
63
  `import compress from 'compression'
55
- import helmet from 'helmet'
56
64
 
57
65
  import { feathers } from '@feathersjs/feathers'
58
66
  import express, {
59
- rest, json, urlencoded,
67
+ rest, json, urlencoded, cors,
60
68
  serveStatic, notFound, errorHandler
61
69
  } from '@feathersjs/express'
62
70
  import configuration from '@feathersjs/configuration'
@@ -72,7 +80,7 @@ const app: Application = express(feathers())
72
80
 
73
81
  // Load app configuration
74
82
  app.configure(configuration(configurationSchema))
75
- app.use(helmet())
83
+ app.use(cors())
76
84
  app.use(compress())
77
85
  app.use(json())
78
86
  app.use(urlencoded({ extended: true }))
@@ -81,7 +89,15 @@ app.use('/', serveStatic(app.get('public')))
81
89
 
82
90
  // Configure services and real-time functionality
83
91
  app.configure(rest())
84
- ${transports.includes('websockets') ? 'app.configure(socketio())' : ''}
92
+ ${
93
+ transports.includes('websockets')
94
+ ? `app.configure(socketio({
95
+ cors: {
96
+ origin: app.get('origins')
97
+ }
98
+ }))`
99
+ : ''
100
+ }
85
101
  app.configure(services)
86
102
  app.configure(channels)
87
103
 
@@ -4,7 +4,7 @@ exports.generate = void 0;
4
4
  const pinion_1 = require("@feathershq/pinion");
5
5
  const commons_1 = require("../../commons");
6
6
  const template = ({}) => `import { feathers } from '@feathersjs/feathers'
7
- import type { Service, TransportConnection, Params } from '@feathersjs/feathers'
7
+ import type { Paginated, ClientService, TransportConnection, Params } from '@feathersjs/feathers'
8
8
 
9
9
  export interface ServiceTypes {
10
10
  // A mapping of client side services
@@ -4,7 +4,7 @@ import { AppGeneratorContext } from '../index'
4
4
 
5
5
  const template = ({}: AppGeneratorContext) =>
6
6
  `import { feathers } from '@feathersjs/feathers'
7
- import type { Service, TransportConnection, Params } from '@feathersjs/feathers'
7
+ import type { Paginated, ClientService, TransportConnection, Params } from '@feathersjs/feathers'
8
8
 
9
9
  export interface ServiceTypes {
10
10
  // A mapping of client side services
@@ -6,16 +6,25 @@ const defaultConfig = ({}) => ({
6
6
  host: 'localhost',
7
7
  port: 3030,
8
8
  public: './public/',
9
+ origins: ['http://localhost:3030'],
9
10
  paginate: {
10
11
  default: 10,
11
12
  max: 50
12
13
  }
13
14
  });
15
+ const customEnvironment = {
16
+ port: {
17
+ __name: 'PORT',
18
+ __format: 'number'
19
+ },
20
+ host: 'HOSTNAME'
21
+ };
14
22
  const testConfig = {
15
23
  port: 8998
16
24
  };
17
25
  const generate = (ctx) => (0, pinion_1.generator)(ctx)
18
26
  .then((0, pinion_1.writeJSON)(defaultConfig, (0, pinion_1.toFile)('config', 'default.json')))
19
- .then((0, pinion_1.writeJSON)(testConfig, (0, pinion_1.toFile)('config', 'test.json')));
27
+ .then((0, pinion_1.writeJSON)(testConfig, (0, pinion_1.toFile)('config', 'test.json')))
28
+ .then((0, pinion_1.writeJSON)(customEnvironment, (0, pinion_1.toFile)('config', 'custom-environment-variables.json')));
20
29
  exports.generate = generate;
21
30
  //# sourceMappingURL=config.tpl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.tpl.js","sourceRoot":"","sources":["../../../src/app/templates/config.tpl.ts"],"names":[],"mappings":";;;AAAA,+CAAiE;AAGjE,MAAM,aAAa,GAAG,CAAC,EAAuB,EAAE,EAAE,CAAC,CAAC;IAClD,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,WAAW;IACnB,QAAQ,EAAE;QACR,OAAO,EAAE,EAAE;QACX,GAAG,EAAE,EAAE;KACR;CACF,CAAC,CAAA;AAEF,MAAM,UAAU,GAAG;IACjB,IAAI,EAAE,IAAI;CACX,CAAA;AAEM,MAAM,QAAQ,GAAG,CAAC,GAAwB,EAAE,EAAE,CACnD,IAAA,kBAAS,EAAC,GAAG,CAAC;KACX,IAAI,CAAC,IAAA,kBAAS,EAAC,aAAa,EAAE,IAAA,eAAM,EAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;KAChE,IAAI,CAAC,IAAA,kBAAS,EAAC,UAAU,EAAE,IAAA,eAAM,EAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;AAHlD,QAAA,QAAQ,YAG0C"}
1
+ {"version":3,"file":"config.tpl.js","sourceRoot":"","sources":["../../../src/app/templates/config.tpl.ts"],"names":[],"mappings":";;;AAAA,+CAAiE;AAGjE,MAAM,aAAa,GAAG,CAAC,EAAuB,EAAE,EAAE,CAAC,CAAC;IAClD,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,CAAC,uBAAuB,CAAC;IAClC,QAAQ,EAAE;QACR,OAAO,EAAE,EAAE;QACX,GAAG,EAAE,EAAE;KACR;CACF,CAAC,CAAA;AAEF,MAAM,iBAAiB,GAAG;IACxB,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,QAAQ;KACnB;IACD,IAAI,EAAE,UAAU;CACjB,CAAA;AAED,MAAM,UAAU,GAAG;IACjB,IAAI,EAAE,IAAI;CACX,CAAA;AAEM,MAAM,QAAQ,GAAG,CAAC,GAAwB,EAAE,EAAE,CACnD,IAAA,kBAAS,EAAC,GAAG,CAAC;KACX,IAAI,CAAC,IAAA,kBAAS,EAAC,aAAa,EAAE,IAAA,eAAM,EAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;KAChE,IAAI,CAAC,IAAA,kBAAS,EAAC,UAAU,EAAE,IAAA,eAAM,EAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;KAC1D,IAAI,CAAC,IAAA,kBAAS,EAAC,iBAAiB,EAAE,IAAA,eAAM,EAAC,QAAQ,EAAE,mCAAmC,CAAC,CAAC,CAAC,CAAA;AAJjF,QAAA,QAAQ,YAIyE"}
@@ -5,12 +5,21 @@ const defaultConfig = ({}: AppGeneratorContext) => ({
5
5
  host: 'localhost',
6
6
  port: 3030,
7
7
  public: './public/',
8
+ origins: ['http://localhost:3030'],
8
9
  paginate: {
9
10
  default: 10,
10
11
  max: 50
11
12
  }
12
13
  })
13
14
 
15
+ const customEnvironment = {
16
+ port: {
17
+ __name: 'PORT',
18
+ __format: 'number'
19
+ },
20
+ host: 'HOSTNAME'
21
+ }
22
+
14
23
  const testConfig = {
15
24
  port: 8998
16
25
  }
@@ -19,3 +28,4 @@ export const generate = (ctx: AppGeneratorContext) =>
19
28
  generator(ctx)
20
29
  .then(writeJSON(defaultConfig, toFile('config', 'default.json')))
21
30
  .then(writeJSON(testConfig, toFile('config', 'test.json')))
31
+ .then(writeJSON(customEnvironment, toFile('config', 'custom-environment-variables.json')))
@@ -18,6 +18,12 @@ export const configurationSchema = schema(
18
18
  port: { type: 'number' },
19
19
  public: { type: 'string' },
20
20
  authentication: authenticationSettingsSchema,
21
+ origins: {
22
+ type: 'array',
23
+ items: {
24
+ type: 'string'
25
+ }
26
+ },
21
27
  paginate: {
22
28
  type: 'object',
23
29
  additionalProperties: false,
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.tpl.js","sourceRoot":"","sources":["../../../src/app/templates/configuration.tpl.ts"],"names":[],"mappings":";;;AAAA,+CAAsD;AACtD,2CAA4C;AAG5C,MAAM,QAAQ,GAAG,CAAC,EAAuB,EAAE,EAAE,CAC3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BD,CAAA;AAEM,MAAM,QAAQ,GAAG,CAAC,GAAwB,EAAE,EAAE,CACnD,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC,IAAI,CACjB,IAAA,sBAAY,EACV,QAAQ,EACR,IAAA,eAAM,EAAsB,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,CAC/D,CACF,CAAA;AANU,QAAA,QAAQ,YAMlB"}
1
+ {"version":3,"file":"configuration.tpl.js","sourceRoot":"","sources":["../../../src/app/templates/configuration.tpl.ts"],"names":[],"mappings":";;;AAAA,+CAAsD;AACtD,2CAA4C;AAG5C,MAAM,QAAQ,GAAG,CAAC,EAAuB,EAAE,EAAE,CAC3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCD,CAAA;AAEM,MAAM,QAAQ,GAAG,CAAC,GAAwB,EAAE,EAAE,CACnD,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC,IAAI,CACjB,IAAA,sBAAY,EACV,QAAQ,EACR,IAAA,eAAM,EAAsB,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,CAC/D,CACF,CAAA;AANU,QAAA,QAAQ,YAMlB"}
@@ -18,6 +18,12 @@ export const configurationSchema = schema(
18
18
  port: { type: 'number' },
19
19
  public: { type: 'string' },
20
20
  authentication: authenticationSettingsSchema,
21
+ origins: {
22
+ type: 'array',
23
+ items: {
24
+ type: 'string'
25
+ }
26
+ },
21
27
  paginate: {
22
28
  type: 'object',
23
29
  additionalProperties: false,
@@ -16,7 +16,8 @@ export interface ServiceTypes {}
16
16
  // The application instance type that will be used everywhere else
17
17
  export type Application = FeathersApplication<ServiceTypes, Configuration>
18
18
 
19
- export type HookContext = FeathersHookContext<Application>
19
+ // The context for hook functions - can be typed with a service class
20
+ export type HookContext<S = any> = FeathersHookContext<Application, S>
20
21
  `;
21
22
  const generate = (ctx) => (0, pinion_1.generator)(ctx).then((0, pinion_1.when)(({ language }) => language === 'ts', (0, pinion_1.renderTemplate)(template, (0, pinion_1.toFile)(({ lib }) => lib, 'declarations.ts'))));
22
23
  exports.generate = generate;
@@ -1 +1 @@
1
- {"version":3,"file":"declarations.tpl.js","sourceRoot":"","sources":["../../../src/app/templates/declarations.tpl.ts"],"names":[],"mappings":";;;AAAA,+CAA4E;AAG5E,MAAM,QAAQ,GAAG,CAAC,EAAE,SAAS,EAAuB,EAAE,EAAE,CACtD;kEACgE,SAAS;;;;;;;;;;;;;;CAc1E,CAAA;AAEM,MAAM,QAAQ,GAAG,CAAC,GAAwB,EAAE,EAAE,CACnD,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC,IAAI,CACjB,IAAA,aAAI,EACF,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,KAAK,IAAI,EACnC,IAAA,uBAAc,EACZ,QAAQ,EACR,IAAA,eAAM,EAAsB,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,iBAAiB,CAAC,CACjE,CACF,CACF,CAAA;AATU,QAAA,QAAQ,YASlB"}
1
+ {"version":3,"file":"declarations.tpl.js","sourceRoot":"","sources":["../../../src/app/templates/declarations.tpl.ts"],"names":[],"mappings":";;;AAAA,+CAA4E;AAG5E,MAAM,QAAQ,GAAG,CAAC,EAAE,SAAS,EAAuB,EAAE,EAAE,CACtD;kEACgE,SAAS;;;;;;;;;;;;;;;CAe1E,CAAA;AAEM,MAAM,QAAQ,GAAG,CAAC,GAAwB,EAAE,EAAE,CACnD,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC,IAAI,CACjB,IAAA,aAAI,EACF,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,KAAK,IAAI,EACnC,IAAA,uBAAc,EACZ,QAAQ,EACR,IAAA,eAAM,EAAsB,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,iBAAiB,CAAC,CACjE,CACF,CACF,CAAA;AATU,QAAA,QAAQ,YASlB"}
@@ -16,7 +16,8 @@ export interface ServiceTypes {}
16
16
  // The application instance type that will be used everywhere else
17
17
  export type Application = FeathersApplication<ServiceTypes, Configuration>
18
18
 
19
- export type HookContext = FeathersHookContext<Application>
19
+ // The context for hook functions - can be typed with a service class
20
+ export type HookContext<S = any> = FeathersHookContext<Application, S>
20
21
  `
21
22
 
22
23
  export const generate = (ctx: AppGeneratorContext) =>
@@ -46,8 +46,7 @@ const packageJson = ({ name, description, language, packager, database, framewor
46
46
  lib,
47
47
  test
48
48
  },
49
- main: `${lib}/`,
50
- browser: language === 'ts' ? 'dist/client' : `${lib}/client`,
49
+ main: language === 'ts' ? 'lib/client' : `${lib}/client`,
51
50
  ...(language === 'ts' ? tsPackageJson(lib) : jsPackageJson(lib))
52
51
  });
53
52
  const generate = (ctx) => (0, pinion_1.generator)(ctx).then((0, pinion_1.writeJSON)(packageJson, (0, pinion_1.toFile)('package.json')));
@@ -1 +1 @@
1
- {"version":3,"file":"package.json.tpl.js","sourceRoot":"","sources":["../../../src/app/templates/package.json.tpl.ts"],"names":[],"mappings":";;;AAAA,+CAAiE;AAGjE,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC;IACtC,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE;QACP,KAAK,EAAE,QAAQ,GAAG,EAAE;QACpB,GAAG,EAAE,WAAW,GAAG,GAAG;QACtB,QAAQ,EAAE,gCAAgC;QAC1C,KAAK,EAAE,wDAAwD;QAC/D,IAAI,EAAE,eAAe;KACtB;CACF,CAAC,CAAA;AAEF,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC;IACtC,OAAO,EAAE;QACP,GAAG,EAAE,sBAAsB,GAAG,WAAW;QACzC,OAAO,EAAE,wBAAwB;QACjC,KAAK,EAAE,8BAA8B;QACrC,QAAQ,EAAE,gCAAgC;QAC1C,KAAK,EACH,mGAAmG;QACrG,IAAI,EAAE,eAAe;KACtB;CACF,CAAC,CAAA;AAEF,MAAM,WAAW,GAAG,CAAC,EACnB,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,EACV,GAAG,EACH,IAAI,EACgB,EAAE,EAAE,CAAC,CAAC;IAC1B,IAAI;IACJ,WAAW;IACX,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,MAAM,EAAE,EAAE;IACV,YAAY,EAAE,EAAc;IAC5B,IAAI,EAAE,EAAE;IACR,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;KAC3C;IACD,QAAQ,EAAE;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,UAAU;KACX;IACD,WAAW,EAAE;QACX,GAAG;QACH,IAAI;KACL;IACD,IAAI,EAAE,GAAG,GAAG,GAAG;IACf,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS;IAC5D,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;CACjE,CAAC,CAAA;AAEK,MAAM,QAAQ,GAAG,CAAC,GAAwB,EAAE,EAAE,CACnD,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAA,kBAAS,EAAC,WAAW,EAAE,IAAA,eAAM,EAAC,cAAc,CAAC,CAAC,CAAC,CAAA;AADxD,QAAA,QAAQ,YACgD"}
1
+ {"version":3,"file":"package.json.tpl.js","sourceRoot":"","sources":["../../../src/app/templates/package.json.tpl.ts"],"names":[],"mappings":";;;AAAA,+CAAiE;AAGjE,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC;IACtC,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE;QACP,KAAK,EAAE,QAAQ,GAAG,EAAE;QACpB,GAAG,EAAE,WAAW,GAAG,GAAG;QACtB,QAAQ,EAAE,gCAAgC;QAC1C,KAAK,EAAE,wDAAwD;QAC/D,IAAI,EAAE,eAAe;KACtB;CACF,CAAC,CAAA;AAEF,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC;IACtC,OAAO,EAAE;QACP,GAAG,EAAE,sBAAsB,GAAG,WAAW;QACzC,OAAO,EAAE,wBAAwB;QACjC,KAAK,EAAE,8BAA8B;QACrC,QAAQ,EAAE,gCAAgC;QAC1C,KAAK,EACH,mGAAmG;QACrG,IAAI,EAAE,eAAe;KACtB;CACF,CAAC,CAAA;AAEF,MAAM,WAAW,GAAG,CAAC,EACnB,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,EACV,GAAG,EACH,IAAI,EACgB,EAAE,EAAE,CAAC,CAAC;IAC1B,IAAI;IACJ,WAAW;IACX,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,MAAM,EAAE,EAAE;IACV,YAAY,EAAE,EAAc;IAC5B,IAAI,EAAE,EAAE;IACR,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;KAC3C;IACD,QAAQ,EAAE;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,UAAU;KACX;IACD,WAAW,EAAE;QACX,GAAG;QACH,IAAI;KACL;IACD,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS;IACxD,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;CACjE,CAAC,CAAA;AAEK,MAAM,QAAQ,GAAG,CAAC,GAAwB,EAAE,EAAE,CACnD,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAA,kBAAS,EAAC,WAAW,EAAE,IAAA,eAAM,EAAC,cAAc,CAAC,CAAC,CAAC,CAAA;AADxD,QAAA,QAAQ,YACgD"}
@@ -58,8 +58,7 @@ const packageJson = ({
58
58
  lib,
59
59
  test
60
60
  },
61
- main: `${lib}/`,
62
- browser: language === 'ts' ? 'dist/client' : `${lib}/client`,
61
+ main: language === 'ts' ? 'lib/client' : `${lib}/client`,
63
62
  ...(language === 'ts' ? tsPackageJson(lib) : jsPackageJson(lib))
64
63
  })
65
64
 
@@ -11,6 +11,7 @@ const generate = (ctx) => (0, pinion_1.generator)(ctx).then((0, pinion_1.when)((
11
11
  module: 'commonjs',
12
12
  outDir: './lib',
13
13
  rootDir: `./${lib}`,
14
+ declaration: true,
14
15
  strict: true,
15
16
  esModuleInterop: true
16
17
  },
@@ -1 +1 @@
1
- {"version":3,"file":"tsconfig.json.tpl.js","sourceRoot":"","sources":["../../../src/app/templates/tsconfig.json.tpl.ts"],"names":[],"mappings":";;;AAAA,+CAAuE;AAGhE,MAAM,QAAQ,GAAG,CAAC,GAAwB,EAAE,EAAE,CACnD,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC,IAAI,CACjB,IAAA,aAAI,EACF,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,IAAI,EAC9B,IAAA,kBAAS,EACP,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IACZ,SAAS,EAAE;QACT,KAAK,EAAE,IAAI;KACZ;IACD,eAAe,EAAE;QACf,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,UAAU;QAClB,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,KAAK,GAAG,EAAE;QACnB,MAAM,EAAE,IAAI;QACZ,eAAe,EAAE,IAAI;KACtB;IACD,OAAO,EAAE,CAAC,GAAG,CAAC;IACd,OAAO,EAAE,CAAC,MAAM,CAAC;CAClB,CAAC,EACF,IAAA,eAAM,EAAC,eAAe,CAAC,CACxB,CACF,CACF,CAAA;AAvBU,QAAA,QAAQ,YAuBlB"}
1
+ {"version":3,"file":"tsconfig.json.tpl.js","sourceRoot":"","sources":["../../../src/app/templates/tsconfig.json.tpl.ts"],"names":[],"mappings":";;;AAAA,+CAAuE;AAGhE,MAAM,QAAQ,GAAG,CAAC,GAAwB,EAAE,EAAE,CACnD,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC,IAAI,CACjB,IAAA,aAAI,EACF,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,IAAI,EAC9B,IAAA,kBAAS,EACP,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IACZ,SAAS,EAAE;QACT,KAAK,EAAE,IAAI;KACZ;IACD,eAAe,EAAE;QACf,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,UAAU;QAClB,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,KAAK,GAAG,EAAE;QACnB,WAAW,EAAE,IAAI;QACjB,MAAM,EAAE,IAAI;QACZ,eAAe,EAAE,IAAI;KACtB;IACD,OAAO,EAAE,CAAC,GAAG,CAAC;IACd,OAAO,EAAE,CAAC,MAAM,CAAC;CAClB,CAAC,EACF,IAAA,eAAM,EAAC,eAAe,CAAC,CACxB,CACF,CACF,CAAA;AAxBU,QAAA,QAAQ,YAwBlB"}
@@ -15,6 +15,7 @@ export const generate = (ctx: AppGeneratorContext) =>
15
15
  module: 'commonjs',
16
16
  outDir: './lib',
17
17
  rootDir: `./${lib}`,
18
+ declaration: true,
18
19
  strict: true,
19
20
  esModuleInterop: true
20
21
  },
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generate = void 0;
4
4
  const pinion_1 = require("@feathershq/pinion");
5
5
  const commons_1 = require("../../commons");
6
- const template = ({ authStrategies, feathers }) => `import { AuthenticationService, JWTStrategy } from '@feathersjs/authentication'
6
+ const template = ({ authStrategies }) => `import { AuthenticationService, JWTStrategy } from '@feathersjs/authentication'
7
7
  import { LocalStrategy } from '@feathersjs/authentication-local'
8
8
  import { OAuthStrategy } from '@feathersjs/authentication-oauth'
9
- ${feathers.framework === 'express' ? `import { expressOauth } from '@feathersjs/authentication-oauth'` : ''}
9
+ import { oauth } from '@feathersjs/authentication-oauth'
10
10
  import type { Application } from './declarations'
11
11
 
12
12
  declare module './declarations' {
@@ -23,10 +23,8 @@ export const authentication = (app: Application) => {
23
23
  .map((strategy) => ` authentication.register('${strategy}', ${strategy === 'local' ? `new LocalStrategy()` : `new OAuthStrategy()`})`)
24
24
  .join('\n')}
25
25
 
26
- app.use('authentication', authentication)${feathers.framework === 'express'
27
- ? `
28
- app.configure(expressOauth())`
29
- : ''}
26
+ app.use('authentication', authentication)
27
+ app.configure(oauth())
30
28
  }
31
29
  `;
32
30
  const importTemplate = "import { authentication } from './authentication'";
@@ -1 +1 @@
1
- {"version":3,"file":"authentication.tpl.js","sourceRoot":"","sources":["../../../src/authentication/templates/authentication.tpl.ts"],"names":[],"mappings":";;;AAAA,+CAA8D;AAC9D,2CAA0D;AAG1D,MAAM,QAAQ,GAAG,CAAC,EAAE,cAAc,EAAE,QAAQ,EAAkC,EAAE,EAAE,CAChF;;;EAGA,QAAQ,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,iEAAiE,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;IAavG,cAAc;KACb,GAAG,CACF,CAAC,QAAQ,EAAE,EAAE,CACX,8BAA8B,QAAQ,MACpC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,qBACjD,GAAG,CACN;KACA,IAAI,CAAC,IAAI,CAAC;;6CAGX,QAAQ,CAAC,SAAS,KAAK,SAAS;IAC9B,CAAC,CAAC;gCACwB;IAC1B,CAAC,CAAC,EACN;;CAED,CAAA;AAED,MAAM,cAAc,GAAG,mDAAmD,CAAA;AAC1E,MAAM,iBAAiB,GAAG,+BAA+B,CAAA;AACzD,MAAM,SAAS,GAAG,IAAA,eAAM,EAAiC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;AAE5E,MAAM,QAAQ,GAAG,CAAC,GAAmC,EAAE,EAAE,CAC9D,IAAA,kBAAS,EAAC,GAAG,CAAC;KACX,IAAI,CACH,IAAA,sBAAY,EACV,QAAQ,EACR,IAAA,eAAM,EAAiC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAC3E,CACF;KACA,IAAI,CAAC,IAAA,sBAAY,EAAC,cAAc,EAAE,IAAA,eAAM,EAAC,0BAA0B,CAAC,EAAE,SAAS,CAAC,CAAC;KACjF,IAAI,CAAC,IAAA,sBAAY,EAAC,iBAAiB,EAAE,IAAA,eAAM,EAAC,yBAAyB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAA;AAT3E,QAAA,QAAQ,YASmE"}
1
+ {"version":3,"file":"authentication.tpl.js","sourceRoot":"","sources":["../../../src/authentication/templates/authentication.tpl.ts"],"names":[],"mappings":";;;AAAA,+CAA8D;AAC9D,2CAA0D;AAG1D,MAAM,QAAQ,GAAG,CAAC,EAAE,cAAc,EAAkC,EAAE,EAAE,CACtE;;;;;;;;;;;;;;;;IAgBE,cAAc;KACb,GAAG,CACF,CAAC,QAAQ,EAAE,EAAE,CACX,8BAA8B,QAAQ,MACpC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,qBACjD,GAAG,CACN;KACA,IAAI,CAAC,IAAI,CAAC;;;;;CAKd,CAAA;AAED,MAAM,cAAc,GAAG,mDAAmD,CAAA;AAC1E,MAAM,iBAAiB,GAAG,+BAA+B,CAAA;AACzD,MAAM,SAAS,GAAG,IAAA,eAAM,EAAiC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;AAE5E,MAAM,QAAQ,GAAG,CAAC,GAAmC,EAAE,EAAE,CAC9D,IAAA,kBAAS,EAAC,GAAG,CAAC;KACX,IAAI,CACH,IAAA,sBAAY,EACV,QAAQ,EACR,IAAA,eAAM,EAAiC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAC3E,CACF;KACA,IAAI,CAAC,IAAA,sBAAY,EAAC,cAAc,EAAE,IAAA,eAAM,EAAC,0BAA0B,CAAC,EAAE,SAAS,CAAC,CAAC;KACjF,IAAI,CAAC,IAAA,sBAAY,EAAC,iBAAiB,EAAE,IAAA,eAAM,EAAC,yBAAyB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAA;AAT3E,QAAA,QAAQ,YASmE"}
@@ -2,11 +2,11 @@ import { generator, before, toFile } from '@feathershq/pinion'
2
2
  import { injectSource, renderSource } from '../../commons'
3
3
  import { AuthenticationGeneratorContext } from '../index'
4
4
 
5
- const template = ({ authStrategies, feathers }: AuthenticationGeneratorContext) =>
5
+ const template = ({ authStrategies }: AuthenticationGeneratorContext) =>
6
6
  `import { AuthenticationService, JWTStrategy } from '@feathersjs/authentication'
7
7
  import { LocalStrategy } from '@feathersjs/authentication-local'
8
8
  import { OAuthStrategy } from '@feathersjs/authentication-oauth'
9
- ${feathers.framework === 'express' ? `import { expressOauth } from '@feathersjs/authentication-oauth'` : ''}
9
+ import { oauth } from '@feathersjs/authentication-oauth'
10
10
  import type { Application } from './declarations'
11
11
 
12
12
  declare module './declarations' {
@@ -28,12 +28,8 @@ export const authentication = (app: Application) => {
28
28
  )
29
29
  .join('\n')}
30
30
 
31
- app.use('authentication', authentication)${
32
- feathers.framework === 'express'
33
- ? `
34
- app.configure(expressOauth())`
35
- : ''
36
- }
31
+ app.use('authentication', authentication)
32
+ app.configure(oauth())
37
33
  }
38
34
  `
39
35
 
@@ -6,7 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.generate = void 0;
7
7
  const crypto_1 = __importDefault(require("crypto"));
8
8
  const pinion_1 = require("@feathershq/pinion");
9
- const generate = (ctx) => (0, pinion_1.generator)(ctx).then((0, pinion_1.mergeJSON)(({ authStrategies }) => {
9
+ const generate = (ctx) => (0, pinion_1.generator)(ctx)
10
+ .then((0, pinion_1.mergeJSON)(({ authStrategies }) => {
10
11
  const authentication = {
11
12
  entity: ctx.entity,
12
13
  service: ctx.service,
@@ -36,11 +37,14 @@ const generate = (ctx) => (0, pinion_1.generator)(ctx).then((0, pinion_1.mergeJS
36
37
  secret: '<Client secret>'
37
38
  };
38
39
  return oauth;
39
- }, {
40
- redirect: '/'
41
- });
40
+ }, {});
42
41
  }
43
42
  return { authentication };
44
- }, (0, pinion_1.toFile)('config', 'default.json')));
43
+ }, (0, pinion_1.toFile)('config', 'default.json')))
44
+ .then((0, pinion_1.mergeJSON)({
45
+ authentication: {
46
+ secret: 'FEATHERS_SECRET'
47
+ }
48
+ }, (0, pinion_1.toFile)('config', 'custom-environment-variables.json')));
45
49
  exports.generate = generate;
46
50
  //# sourceMappingURL=config.tpl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.tpl.js","sourceRoot":"","sources":["../../../src/authentication/templates/config.tpl.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA2B;AAC3B,+CAAiE;AAG1D,MAAM,QAAQ,GAAG,CAAC,GAAmC,EAAE,EAAE,CAC9D,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC,IAAI,CACjB,IAAA,kBAAS,EAAiC,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE;IAC/D,MAAM,cAAc,GAAQ;QAC1B,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,MAAM,EAAE,gBAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACjD,cAAc,EAAE,CAAC,KAAK,CAAC;QACvB,UAAU,EAAE;YACV,MAAM,EAAE;gBACN,GAAG,EAAE,QAAQ;aACd;YACD,QAAQ,EAAE,wBAAwB;YAClC,SAAS,EAAE,OAAO;YAClB,SAAS,EAAE,IAAI;SAChB;KACF,CAAA;IAED,IAAI,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QACpC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC3C,cAAc,CAAC,KAAK,GAAG;YACrB,aAAa,EAAE,OAAO;YACtB,aAAa,EAAE,UAAU;SAC1B,CAAA;KACF;IAED,MAAM,eAAe,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,CAAA;IAEzE,IAAI,eAAe,CAAC,MAAM,EAAE;QAC1B,cAAc,CAAC,KAAK,GAAG,eAAe,CAAC,MAAM,CAC3C,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACd,KAAK,CAAC,IAAI,CAAC,GAAG;gBACZ,GAAG,EAAE,aAAa;gBAClB,MAAM,EAAE,iBAAiB;aAC1B,CAAA;YAED,OAAO,KAAK,CAAA;QACd,CAAC,EACD;YACE,QAAQ,EAAE,GAAG;SACP,CACT,CAAA;KACF;IAED,OAAO,EAAE,cAAc,EAAE,CAAA;AAC3B,CAAC,EAAE,IAAA,eAAM,EAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CACrC,CAAA;AA9CU,QAAA,QAAQ,YA8ClB"}
1
+ {"version":3,"file":"config.tpl.js","sourceRoot":"","sources":["../../../src/authentication/templates/config.tpl.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA2B;AAC3B,+CAAiE;AAG1D,MAAM,QAAQ,GAAG,CAAC,GAAmC,EAAE,EAAE,CAC9D,IAAA,kBAAS,EAAC,GAAG,CAAC;KACX,IAAI,CACH,IAAA,kBAAS,EAAiC,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE;IAC/D,MAAM,cAAc,GAAQ;QAC1B,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,MAAM,EAAE,gBAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACjD,cAAc,EAAE,CAAC,KAAK,CAAC;QACvB,UAAU,EAAE;YACV,MAAM,EAAE;gBACN,GAAG,EAAE,QAAQ;aACd;YACD,QAAQ,EAAE,wBAAwB;YAClC,SAAS,EAAE,OAAO;YAClB,SAAS,EAAE,IAAI;SAChB;KACF,CAAA;IAED,IAAI,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QACpC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC3C,cAAc,CAAC,KAAK,GAAG;YACrB,aAAa,EAAE,OAAO;YACtB,aAAa,EAAE,UAAU;SAC1B,CAAA;KACF;IAED,MAAM,eAAe,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,CAAA;IAEzE,IAAI,eAAe,CAAC,MAAM,EAAE;QAC1B,cAAc,CAAC,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAC5D,KAAK,CAAC,IAAI,CAAC,GAAG;gBACZ,GAAG,EAAE,aAAa;gBAClB,MAAM,EAAE,iBAAiB;aAC1B,CAAA;YAED,OAAO,KAAK,CAAA;QACd,CAAC,EAAE,EAAS,CAAC,CAAA;KACd;IAED,OAAO,EAAE,cAAc,EAAE,CAAA;AAC3B,CAAC,EAAE,IAAA,eAAM,EAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CACrC;KACA,IAAI,CACH,IAAA,kBAAS,EACP;IACE,cAAc,EAAE;QACd,MAAM,EAAE,iBAAiB;KAC1B;CACF,EACD,IAAA,eAAM,EAAC,QAAQ,EAAE,mCAAmC,CAAC,CACtD,CACF,CAAA;AApDQ,QAAA,QAAQ,YAoDhB"}
@@ -3,49 +3,55 @@ import { generator, toFile, mergeJSON } from '@feathershq/pinion'
3
3
  import { AuthenticationGeneratorContext } from '../index'
4
4
 
5
5
  export const generate = (ctx: AuthenticationGeneratorContext) =>
6
- generator(ctx).then(
7
- mergeJSON<AuthenticationGeneratorContext>(({ authStrategies }) => {
8
- const authentication: any = {
9
- entity: ctx.entity,
10
- service: ctx.service,
11
- secret: crypto.randomBytes(24).toString('base64'),
12
- authStrategies: ['jwt'],
13
- jwtOptions: {
14
- header: {
15
- typ: 'access'
16
- },
17
- audience: 'https://yourdomain.com',
18
- algorithm: 'HS256',
19
- expiresIn: '1d'
6
+ generator(ctx)
7
+ .then(
8
+ mergeJSON<AuthenticationGeneratorContext>(({ authStrategies }) => {
9
+ const authentication: any = {
10
+ entity: ctx.entity,
11
+ service: ctx.service,
12
+ secret: crypto.randomBytes(24).toString('base64'),
13
+ authStrategies: ['jwt'],
14
+ jwtOptions: {
15
+ header: {
16
+ typ: 'access'
17
+ },
18
+ audience: 'https://yourdomain.com',
19
+ algorithm: 'HS256',
20
+ expiresIn: '1d'
21
+ }
20
22
  }
21
- }
22
23
 
23
- if (authStrategies.includes('local')) {
24
- authentication.authStrategies.push('local')
25
- authentication.local = {
26
- usernameField: 'email',
27
- passwordField: 'password'
24
+ if (authStrategies.includes('local')) {
25
+ authentication.authStrategies.push('local')
26
+ authentication.local = {
27
+ usernameField: 'email',
28
+ passwordField: 'password'
29
+ }
28
30
  }
29
- }
30
31
 
31
- const oauthStrategies = authStrategies.filter((name) => name !== 'local')
32
+ const oauthStrategies = authStrategies.filter((name) => name !== 'local')
32
33
 
33
- if (oauthStrategies.length) {
34
- authentication.oauth = oauthStrategies.reduce(
35
- (oauth, name) => {
34
+ if (oauthStrategies.length) {
35
+ authentication.oauth = oauthStrategies.reduce((oauth, name) => {
36
36
  oauth[name] = {
37
37
  key: '<Client ID>',
38
38
  secret: '<Client secret>'
39
39
  }
40
40
 
41
41
  return oauth
42
- },
43
- {
44
- redirect: '/'
45
- } as any
46
- )
47
- }
42
+ }, {} as any)
43
+ }
48
44
 
49
- return { authentication }
50
- }, toFile('config', 'default.json'))
51
- )
45
+ return { authentication }
46
+ }, toFile('config', 'default.json'))
47
+ )
48
+ .then(
49
+ mergeJSON<AuthenticationGeneratorContext>(
50
+ {
51
+ authentication: {
52
+ secret: 'FEATHERS_SECRET'
53
+ }
54
+ },
55
+ toFile('config', 'custom-environment-variables.json')
56
+ )
57
+ )
@@ -26,8 +26,9 @@ export async function down(knex: Knex): Promise<void> {
26
26
  table.dropColumn('email')
27
27
  table.dropColumn('password')`
28
28
  : `
29
- table.dropColumn('${name}Id')`)
30
- .join(',\n')}
29
+ table.dropColumn('${name}Id')
30
+ `)
31
+ .join('\n')}
31
32
  })
32
33
  }
33
34
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"knex.tpl.js","sourceRoot":"","sources":["../../../src/authentication/templates/knex.tpl.ts"],"names":[],"mappings":";;;AAAA,+CAA4D;AAC5D,2CAAgE;AAGhE,MAAM,iBAAiB,GAAG,CAAC,EACzB,SAAS,EACT,cAAc,EACiB,EAAE,EAAE,CAAC;;;kCAGJ,SAAS;8BACb,cAAc;KACrC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,IAAI,KAAK,OAAO;IACd,CAAC,CAAC;;6BAEiB;IACnB,CAAC,CAAC;oBACQ,IAAI,MAAM,CACvB;KACA,IAAI,CAAC,IAAI,CAAC;;;;;kCAKiB,SAAS;0BACjB,cAAc;KACjC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,IAAI,KAAK,OAAO;IACd,CAAC,CAAC;;iCAEqB;IACvB,CAAC,CAAC;wBACY,IAAI,MAAM,CAC3B;KACA,IAAI,CAAC,KAAK,CAAC;;;CAGjB,CAAA;AAEM,MAAM,QAAQ,GAAG,CAAC,GAAmC,EAAE,EAAE,CAC9D,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC,IAAI,CACjB,IAAA,aAAI,EACF,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,4BAAkB,EAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,MAAM,EAC7D,IAAA,sBAAY,EACV,iBAAiB,EACjB,IAAA,eAAM,EACJ,IAAA,eAAM,EAAiC,YAAY,EAAE,GAAG,EAAE;IACxD,+EAA+E;IAC/E,mEAAmE;IACnE,MAAM,aAAa,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;SAC9C,WAAW,EAAE;SACb,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;SAClB,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAEnB,OAAO,GAAG,aAAa,iBAAiB,CAAA;AAC1C,CAAC,CAAC,CACH,CACF,CACF,CACF,CAAA;AApBU,QAAA,QAAQ,YAoBlB"}
1
+ {"version":3,"file":"knex.tpl.js","sourceRoot":"","sources":["../../../src/authentication/templates/knex.tpl.ts"],"names":[],"mappings":";;;AAAA,+CAA4D;AAC5D,2CAAgE;AAGhE,MAAM,iBAAiB,GAAG,CAAC,EACzB,SAAS,EACT,cAAc,EACiB,EAAE,EAAE,CAAC;;;kCAGJ,SAAS;8BACb,cAAc;KACrC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,IAAI,KAAK,OAAO;IACd,CAAC,CAAC;;6BAEiB;IACnB,CAAC,CAAC;oBACQ,IAAI,MAAM,CACvB;KACA,IAAI,CAAC,IAAI,CAAC;;;;;kCAKiB,SAAS;0BACjB,cAAc;KACjC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,IAAI,KAAK,OAAO;IACd,CAAC,CAAC;;iCAEqB;IACvB,CAAC,CAAC;wBACY,IAAI;KACvB,CACE;KACA,IAAI,CAAC,IAAI,CAAC;;;CAGhB,CAAA;AAEM,MAAM,QAAQ,GAAG,CAAC,GAAmC,EAAE,EAAE,CAC9D,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC,IAAI,CACjB,IAAA,aAAI,EACF,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,4BAAkB,EAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,MAAM,EAC7D,IAAA,sBAAY,EACV,iBAAiB,EACjB,IAAA,eAAM,EACJ,IAAA,eAAM,EAAiC,YAAY,EAAE,GAAG,EAAE;IACxD,+EAA+E;IAC/E,mEAAmE;IACnE,MAAM,aAAa,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;SAC9C,WAAW,EAAE;SACb,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;SAClB,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAEnB,OAAO,GAAG,aAAa,iBAAiB,CAAA;AAC1C,CAAC,CAAC,CACH,CACF,CACF,CACF,CAAA;AApBU,QAAA,QAAQ,YAoBlB"}
@@ -31,9 +31,10 @@ export async function down(knex: Knex): Promise<void> {
31
31
  table.dropColumn('email')
32
32
  table.dropColumn('password')`
33
33
  : `
34
- table.dropColumn('${name}Id')`
34
+ table.dropColumn('${name}Id')
35
+ `
35
36
  )
36
- .join(',\n')}
37
+ .join('\n')}
37
38
  })
38
39
  }
39
40
  `
@@ -25,7 +25,7 @@ export const ${camelName}DataResolver = resolve<${upperName}Data, HookContext>({
25
25
  schema: ${camelName}DataSchema,
26
26
  validate: 'before',
27
27
  properties: {
28
- ${authStrategies.includes('local') ? `password: passwordHash({ strategy: 'local' })` : ''}
28
+ ${authStrategies.includes('local') ? `password: passwordHash({ strategy: 'local' })` : ''}
29
29
  }
30
30
  })
31
31
 
@@ -34,7 +34,9 @@ export const ${camelName}DataResolver = resolve<${upperName}Data, HookContext>({
34
34
  export const ${camelName}PatchResolver = resolve<${upperName}Patch, HookContext>({
35
35
  schema: ${camelName}PatchSchema,
36
36
  validate: 'before',
37
- properties: {}
37
+ properties: {
38
+ ${authStrategies.includes('local') ? `password: passwordHash({ strategy: 'local' })` : ''}
39
+ }
38
40
  })
39
41
 
40
42
 
@@ -1 +1 @@
1
- {"version":3,"file":"user.resolver.tpl.js","sourceRoot":"","sources":["../../../src/authentication/templates/user.resolver.tpl.ts"],"names":[],"mappings":";;;AAAA,+CAAsD;AACtD,2CAA4C;AAG5C,MAAM,QAAQ,GAAG,CAAC,EAChB,SAAS,EACT,SAAS,EACT,QAAQ,EACR,cAAc,EACd,IAAI,EACJ,QAAQ,EACuB,EAAE,EAAE,CACnC;EACA,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,iEAAiE,CAAC,CAAC,CAAC,EAAE;oCACvE,QAAQ;;IAExC,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;YACD,QAAQ;;IAEhB,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;YACD,QAAQ;;;;eAIL,SAAS,0BAA0B,SAAS;YAC/C,SAAS;;;MAGf,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,EAAE;;;;;;eAM9E,SAAS,2BAA2B,SAAS;YAChD,SAAS;;;;;;;eAON,SAAS,4BAA4B,SAAS;YACjD,SAAS;;;;;;;eAON,SAAS,8BAA8B,SAAS;YACnD,SAAS;;;;;;;;;;eAUN,SAAS,2BAA2B,SAAS;YAChD,SAAS;;;;MAIf,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;;qCAEF,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;;;;;;;;;;eAUvD,SAAS;YACZ,SAAS;cACP,SAAS;;cAET,SAAS;cACT,SAAS;aACV,SAAS;;WAEX,SAAS;;CAEnB,CAAA;AAEM,MAAM,QAAQ,GAAG,CAAC,GAAmC,EAAE,EAAE,CAC9D,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC,IAAI,CACjB,IAAA,sBAAY,EACV,QAAQ,EACR,IAAA,eAAM,EAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAkC,EAAE,EAAE,CAAC;IACpE,GAAG;IACH,UAAU;IACV,GAAG,MAAM;IACT,GAAG,QAAQ,WAAW;CACvB,CAAC,EACF,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CACF,CAAA;AAZU,QAAA,QAAQ,YAYlB"}
1
+ {"version":3,"file":"user.resolver.tpl.js","sourceRoot":"","sources":["../../../src/authentication/templates/user.resolver.tpl.ts"],"names":[],"mappings":";;;AAAA,+CAAsD;AACtD,2CAA4C;AAG5C,MAAM,QAAQ,GAAG,CAAC,EAChB,SAAS,EACT,SAAS,EACT,QAAQ,EACR,cAAc,EACd,IAAI,EACJ,QAAQ,EACuB,EAAE,EAAE,CACnC;EACA,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,iEAAiE,CAAC,CAAC,CAAC,EAAE;oCACvE,QAAQ;;IAExC,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;YACD,QAAQ;;IAEhB,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;YACD,QAAQ;;;;eAIL,SAAS,0BAA0B,SAAS;YAC/C,SAAS;;;MAGf,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,EAAE;;;;;;eAM9E,SAAS,2BAA2B,SAAS;YAChD,SAAS;;;MAGf,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,EAAE;;;;;;eAM9E,SAAS,4BAA4B,SAAS;YACjD,SAAS;;;;;;;eAON,SAAS,8BAA8B,SAAS;YACnD,SAAS;;;;;;;;;;eAUN,SAAS,2BAA2B,SAAS;YAChD,SAAS;;;;MAIf,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;;qCAEF,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;;;;;;;;;;eAUvD,SAAS;YACZ,SAAS;cACP,SAAS;;cAET,SAAS;cACT,SAAS;aACV,SAAS;;WAEX,SAAS;;CAEnB,CAAA;AAEM,MAAM,QAAQ,GAAG,CAAC,GAAmC,EAAE,EAAE,CAC9D,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC,IAAI,CACjB,IAAA,sBAAY,EACV,QAAQ,EACR,IAAA,eAAM,EAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAkC,EAAE,EAAE,CAAC;IACpE,GAAG;IACH,UAAU;IACV,GAAG,MAAM;IACT,GAAG,QAAQ,WAAW;CACvB,CAAC,EACF,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CACF,CAAA;AAZU,QAAA,QAAQ,YAYlB"}
@@ -32,7 +32,7 @@ export const ${camelName}DataResolver = resolve<${upperName}Data, HookContext>({
32
32
  schema: ${camelName}DataSchema,
33
33
  validate: 'before',
34
34
  properties: {
35
- ${authStrategies.includes('local') ? `password: passwordHash({ strategy: 'local' })` : ''}
35
+ ${authStrategies.includes('local') ? `password: passwordHash({ strategy: 'local' })` : ''}
36
36
  }
37
37
  })
38
38
 
@@ -41,7 +41,9 @@ export const ${camelName}DataResolver = resolve<${upperName}Data, HookContext>({
41
41
  export const ${camelName}PatchResolver = resolve<${upperName}Patch, HookContext>({
42
42
  schema: ${camelName}PatchSchema,
43
43
  validate: 'before',
44
- properties: {}
44
+ properties: {
45
+ ${authStrategies.includes('local') ? `password: passwordHash({ strategy: 'local' })` : ''}
46
+ }
45
47
  })
46
48
 
47
49
 
@@ -11,7 +11,7 @@ export const ${camelName}DataSchema = schema({
11
11
  $id: '${upperName}Data',
12
12
  type: 'object',
13
13
  additionalProperties: false,
14
- required: [ ${authStrategies.includes('local') ? "'email', 'password'" : ''} ],
14
+ required: [ ${authStrategies.includes('local') ? "'email'" : ''} ],
15
15
  properties: {
16
16
  ${authStrategies
17
17
  .map((name) => name === 'local'
@@ -1 +1 @@
1
- {"version":3,"file":"user.schema.tpl.js","sourceRoot":"","sources":["../../../src/authentication/templates/user.schema.tpl.ts"],"names":[],"mappings":";;;AAAA,+CAAsD;AACtD,2CAA4C;AAG5C,MAAM,QAAQ,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,IAAI,EAAkC,EAAE,EAAE,CAClG;;;;eAIa,SAAS;UACd,SAAS;;;gBAGH,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE;;MAEvE,cAAc;KACb,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,IAAI,KAAK,OAAO;IACd,CAAC,CAAC;iCACqB;IACvB,CAAC,CAAC,OAAO,IAAI,wBAAwB,CACxC;KACA,IAAI,CAAC,KAAK,CAAC;;;;cAIJ,SAAS,uBAAuB,SAAS;;;;eAIxC,SAAS;UACd,SAAS;;;;;SAKV,SAAS;;;;cAIJ,SAAS,wBAAwB,SAAS;;;eAGzC,SAAS;UACd,SAAS;;;iBAGF,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;;SAEzC,SAAS;MACZ,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;eACxB,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;;;;;cAKzC,SAAS,yBAAyB,SAAS;;;uBAGlC,SAAS,uBAAuB,SAAS;;;eAGjD,SAAS;UACd,SAAS;;;;qBAIE,SAAS;;;;cAIhB,SAAS,wBAAwB,SAAS;CACvD,CAAA;AAEM,MAAM,QAAQ,GAAG,CAAC,GAAmC,EAAE,EAAE,CAC9D,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC,IAAI,CACjB,IAAA,sBAAY,EACV,QAAQ,EACR,IAAA,eAAM,EAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAkC,EAAE,EAAE,CAAC;IACpE,GAAG;IACH,UAAU;IACV,GAAG,MAAM;IACT,GAAG,QAAQ,SAAS;CACrB,CAAC,EACF,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CACF,CAAA;AAZU,QAAA,QAAQ,YAYlB"}
1
+ {"version":3,"file":"user.schema.tpl.js","sourceRoot":"","sources":["../../../src/authentication/templates/user.schema.tpl.ts"],"names":[],"mappings":";;;AAAA,+CAAsD;AACtD,2CAA4C;AAG5C,MAAM,QAAQ,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,IAAI,EAAkC,EAAE,EAAE,CAClG;;;;eAIa,SAAS;UACd,SAAS;;;gBAGH,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;;MAE3D,cAAc;KACb,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,IAAI,KAAK,OAAO;IACd,CAAC,CAAC;iCACqB;IACvB,CAAC,CAAC,OAAO,IAAI,wBAAwB,CACxC;KACA,IAAI,CAAC,KAAK,CAAC;;;;cAIJ,SAAS,uBAAuB,SAAS;;;;eAIxC,SAAS;UACd,SAAS;;;;;SAKV,SAAS;;;;cAIJ,SAAS,wBAAwB,SAAS;;;eAGzC,SAAS;UACd,SAAS;;;iBAGF,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;;SAEzC,SAAS;MACZ,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;eACxB,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;;;;;cAKzC,SAAS,yBAAyB,SAAS;;;uBAGlC,SAAS,uBAAuB,SAAS;;;eAGjD,SAAS;UACd,SAAS;;;;qBAIE,SAAS;;;;cAIhB,SAAS,wBAAwB,SAAS;CACvD,CAAA;AAEM,MAAM,QAAQ,GAAG,CAAC,GAAmC,EAAE,EAAE,CAC9D,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC,IAAI,CACjB,IAAA,sBAAY,EACV,QAAQ,EACR,IAAA,eAAM,EAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAkC,EAAE,EAAE,CAAC;IACpE,GAAG;IACH,UAAU;IACV,GAAG,MAAM;IACT,GAAG,QAAQ,SAAS;CACrB,CAAC,EACF,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CACF,CAAA;AAZU,QAAA,QAAQ,YAYlB"}
@@ -11,7 +11,7 @@ export const ${camelName}DataSchema = schema({
11
11
  $id: '${upperName}Data',
12
12
  type: 'object',
13
13
  additionalProperties: false,
14
- required: [ ${authStrategies.includes('local') ? "'email', 'password'" : ''} ],
14
+ required: [ ${authStrategies.includes('local') ? "'email'" : ''} ],
15
15
  properties: {
16
16
  ${authStrategies
17
17
  .map((name) =>
@@ -4,14 +4,14 @@ exports.generate = void 0;
4
4
  const pinion_1 = require("@feathershq/pinion");
5
5
  const commons_1 = require("../../commons");
6
6
  const aroundTemplate = ({ camelName, name }) => `
7
- import { HookContext, NextFunction } from '../declarations'
7
+ import type { HookContext, NextFunction } from '../declarations'
8
8
 
9
9
  export const ${camelName} = async (context: HookContext, next: NextFunction) => {
10
10
  console.log(\`Running hook ${name} on \${context.path}\.\${context.method}\`)
11
11
  await next()
12
12
  }
13
13
  `;
14
- const regularTemplate = ({ camelName }) => `import { HookContext } from '../declarations'
14
+ const regularTemplate = ({ camelName, name }) => `import type { HookContext } from '../declarations'
15
15
 
16
16
  export const ${camelName} = async (context: HookContext) => {
17
17
  console.log(\`Running hook ${name} on \${context.path}\.\${context.method}\`)
@@ -1 +1 @@
1
- {"version":3,"file":"hook.tpl.js","sourceRoot":"","sources":["../../../src/hook/templates/hook.tpl.ts"],"names":[],"mappings":";;;AAAA,+CAAsD;AAEtD,2CAA4C;AAE5C,MAAM,cAAc,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAwB,EAAE,EAAE,CAAC;;;eAGvD,SAAS;+BACO,IAAI;;;CAGlC,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,EACvB,SAAS,EACY,EAAE,EAAE,CAAC;;eAEb,SAAS;+BACO,IAAI;EACjC,CAAA;AAEK,MAAM,QAAQ,GAAG,CAAC,GAAyB,EAAE,EAAE,CACpD,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC,IAAI,CACjB,IAAA,sBAAY,EACV,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,EAC7E,IAAA,eAAM,EAAuB,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAChF,CACF,CAAA;AANU,QAAA,QAAQ,YAMlB"}
1
+ {"version":3,"file":"hook.tpl.js","sourceRoot":"","sources":["../../../src/hook/templates/hook.tpl.ts"],"names":[],"mappings":";;;AAAA,+CAAsD;AAEtD,2CAA4C;AAE5C,MAAM,cAAc,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAwB,EAAE,EAAE,CAAC;;;eAGvD,SAAS;+BACO,IAAI;;;CAGlC,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,EACvB,SAAS,EACT,IAAI,EACiB,EAAE,EAAE,CAAC;;eAEb,SAAS;+BACO,IAAI;EACjC,CAAA;AAEK,MAAM,QAAQ,GAAG,CAAC,GAAyB,EAAE,EAAE,CACpD,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC,IAAI,CACjB,IAAA,sBAAY,EACV,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,EAC7E,IAAA,eAAM,EAAuB,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAChF,CACF,CAAA;AANU,QAAA,QAAQ,YAMlB"}
@@ -3,7 +3,7 @@ import { HookGeneratorContext } from '../index'
3
3
  import { renderSource } from '../../commons'
4
4
 
5
5
  const aroundTemplate = ({ camelName, name }: HookGeneratorContext) => `
6
- import { HookContext, NextFunction } from '../declarations'
6
+ import type { HookContext, NextFunction } from '../declarations'
7
7
 
8
8
  export const ${camelName} = async (context: HookContext, next: NextFunction) => {
9
9
  console.log(\`Running hook ${name} on \${context.path}\.\${context.method}\`)
@@ -12,8 +12,9 @@ export const ${camelName} = async (context: HookContext, next: NextFunction) =>
12
12
  `
13
13
 
14
14
  const regularTemplate = ({
15
- camelName
16
- }: HookGeneratorContext) => `import { HookContext } from '../declarations'
15
+ camelName,
16
+ name
17
+ }: HookGeneratorContext) => `import type { HookContext } from '../declarations'
17
18
 
18
19
  export const ${camelName} = async (context: HookContext) => {
19
20
  console.log(\`Running hook ${name} on \${context.path}\.\${context.method}\`)
@@ -4,10 +4,24 @@ exports.generate = void 0;
4
4
  const pinion_1 = require("@feathershq/pinion");
5
5
  const schemaImports = ({ upperName, folder, fileName }) => `import type {
6
6
  ${upperName}Data,
7
+ ${upperName}Patch,
7
8
  ${upperName}Result,
8
9
  ${upperName}Query,
9
- } from './services/${folder.join('/')}/${fileName}.schema'`;
10
- const declarationTemplate = ({ path, upperName }) => ` '${path}': Service<${upperName}Data, ${upperName}Result, Params<${upperName}Query>>`;
10
+ } from './services/${folder.join('/')}/${fileName}.schema'
11
+
12
+ export type {
13
+ ${upperName}Data,
14
+ ${upperName}Patch,
15
+ ${upperName}Result,
16
+ ${upperName}Query,
17
+ }`;
18
+ const declarationTemplate = ({ path, upperName }) => ` '${path}': ClientService<
19
+ ${upperName}Result,
20
+ ${upperName}Data,
21
+ ${upperName}Patch,
22
+ Paginated<${upperName}Result>,
23
+ Params<${upperName}Query>
24
+ >`;
11
25
  const toClientFile = (0, pinion_1.toFile)(({ lib }) => [lib, 'client.ts']);
12
26
  const generate = async (ctx) => (0, pinion_1.generator)(ctx).then((0, pinion_1.when)((ctx) => ctx.language === 'ts', (0, pinion_1.inject)(schemaImports, (0, pinion_1.after)("from '@feathersjs/feathers'"), toClientFile), (0, pinion_1.inject)(declarationTemplate, (0, pinion_1.after)('export interface ServiceTypes'), toClientFile)));
13
27
  exports.generate = generate;
@@ -1 +1 @@
1
- {"version":3,"file":"client.tpl.js","sourceRoot":"","sources":["../../../src/service/templates/client.tpl.ts"],"names":[],"mappings":";;;AAAA,+CAA2E;AAG3E,MAAM,aAAa,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAA2B,EAAE,EAAE,CAAC;IAChF,SAAS;IACT,SAAS;IACT,SAAS;qBACQ,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,UAAU,CAAA;AAE3D,MAAM,mBAAmB,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAA2B,EAAE,EAAE,CAC3E,MAAM,IAAI,cAAc,SAAS,SAAS,SAAS,kBAAkB,SAAS,SAAS,CAAA;AAEzF,MAAM,YAAY,GAAG,IAAA,eAAM,EAA0B,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAA;AAE9E,MAAM,QAAQ,GAAG,KAAK,EAAE,GAA4B,EAAE,EAAE,CAC7D,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC,IAAI,CACjB,IAAA,aAAI,EACF,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,IAAI,EAC9B,IAAA,eAAM,EAAC,aAAa,EAAE,IAAA,cAAK,EAAC,6BAA6B,CAAC,EAAE,YAAY,CAAC,EACzE,IAAA,eAAM,EAAC,mBAAmB,EAAE,IAAA,cAAK,EAAC,+BAA+B,CAAC,EAAE,YAAY,CAAC,CAClF,CACF,CAAA;AAPU,QAAA,QAAQ,YAOlB"}
1
+ {"version":3,"file":"client.tpl.js","sourceRoot":"","sources":["../../../src/service/templates/client.tpl.ts"],"names":[],"mappings":";;;AAAA,+CAA2E;AAG3E,MAAM,aAAa,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAA2B,EAAE,EAAE,CAAC;IAChF,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;qBACQ,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ;;;IAG7C,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;EACX,CAAA;AAEF,MAAM,mBAAmB,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAA2B,EAAE,EAAE,CAC3E,MAAM,IAAI;MACN,SAAS;MACT,SAAS;MACT,SAAS;gBACC,SAAS;aACZ,SAAS;IAClB,CAAA;AAEJ,MAAM,YAAY,GAAG,IAAA,eAAM,EAA0B,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAA;AAE9E,MAAM,QAAQ,GAAG,KAAK,EAAE,GAA4B,EAAE,EAAE,CAC7D,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC,IAAI,CACjB,IAAA,aAAI,EACF,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,IAAI,EAC9B,IAAA,eAAM,EAAC,aAAa,EAAE,IAAA,cAAK,EAAC,6BAA6B,CAAC,EAAE,YAAY,CAAC,EACzE,IAAA,eAAM,EAAC,mBAAmB,EAAE,IAAA,cAAK,EAAC,+BAA+B,CAAC,EAAE,YAAY,CAAC,CAClF,CACF,CAAA;AAPU,QAAA,QAAQ,YAOlB"}
@@ -3,12 +3,26 @@ import { ServiceGeneratorContext } from '../index'
3
3
 
4
4
  const schemaImports = ({ upperName, folder, fileName }: ServiceGeneratorContext) => `import type {
5
5
  ${upperName}Data,
6
+ ${upperName}Patch,
6
7
  ${upperName}Result,
7
8
  ${upperName}Query,
8
- } from './services/${folder.join('/')}/${fileName}.schema'`
9
+ } from './services/${folder.join('/')}/${fileName}.schema'
10
+
11
+ export type {
12
+ ${upperName}Data,
13
+ ${upperName}Patch,
14
+ ${upperName}Result,
15
+ ${upperName}Query,
16
+ }`
9
17
 
10
18
  const declarationTemplate = ({ path, upperName }: ServiceGeneratorContext) =>
11
- ` '${path}': Service<${upperName}Data, ${upperName}Result, Params<${upperName}Query>>`
19
+ ` '${path}': ClientService<
20
+ ${upperName}Result,
21
+ ${upperName}Data,
22
+ ${upperName}Patch,
23
+ Paginated<${upperName}Result>,
24
+ Params<${upperName}Query>
25
+ >`
12
26
 
13
27
  const toClientFile = toFile<ServiceGeneratorContext>(({ lib }) => [lib, 'client.ts'])
14
28
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@feathersjs/cli",
3
3
  "description": "The command line interface for creating Feathers applications",
4
- "version": "5.0.0-pre.27",
4
+ "version": "5.0.0-pre.29",
5
5
  "homepage": "https://feathersjs.com",
6
6
  "main": "lib/",
7
7
  "bin": {
@@ -54,34 +54,34 @@
54
54
  "access": "public"
55
55
  },
56
56
  "dependencies": {
57
- "@feathershq/pinion": "^0.3.3",
57
+ "@feathershq/pinion": "^0.3.5",
58
58
  "chalk": "^4.0.1",
59
59
  "lodash": "^4.17.21",
60
60
  "prettier": "^2.7.1"
61
61
  },
62
62
  "devDependencies": {
63
- "@feathersjs/authentication": "^5.0.0-pre.27",
64
- "@feathersjs/authentication-local": "^5.0.0-pre.27",
65
- "@feathersjs/authentication-oauth": "^5.0.0-pre.27",
66
- "@feathersjs/configuration": "^5.0.0-pre.27",
67
- "@feathersjs/errors": "^5.0.0-pre.27",
68
- "@feathersjs/express": "^5.0.0-pre.27",
69
- "@feathersjs/feathers": "^5.0.0-pre.27",
70
- "@feathersjs/knex": "^5.0.0-pre.27",
71
- "@feathersjs/koa": "^5.0.0-pre.27",
72
- "@feathersjs/mongodb": "^5.0.0-pre.27",
73
- "@feathersjs/schema": "^5.0.0-pre.27",
74
- "@feathersjs/socketio": "^5.0.0-pre.27",
75
- "@feathersjs/transport-commons": "^5.0.0-pre.27",
63
+ "@feathersjs/authentication": "^5.0.0-pre.29",
64
+ "@feathersjs/authentication-local": "^5.0.0-pre.29",
65
+ "@feathersjs/authentication-oauth": "^5.0.0-pre.29",
66
+ "@feathersjs/configuration": "^5.0.0-pre.29",
67
+ "@feathersjs/errors": "^5.0.0-pre.29",
68
+ "@feathersjs/express": "^5.0.0-pre.29",
69
+ "@feathersjs/feathers": "^5.0.0-pre.29",
70
+ "@feathersjs/knex": "^5.0.0-pre.29",
71
+ "@feathersjs/koa": "^5.0.0-pre.29",
72
+ "@feathersjs/mongodb": "^5.0.0-pre.29",
73
+ "@feathersjs/schema": "^5.0.0-pre.29",
74
+ "@feathersjs/socketio": "^5.0.0-pre.29",
75
+ "@feathersjs/transport-commons": "^5.0.0-pre.29",
76
76
  "@types/mocha": "^9.1.1",
77
- "@types/node": "^18.0.1",
78
- "@types/prettier": "^2.6.3",
77
+ "@types/node": "^18.7.17",
78
+ "@types/prettier": "^2.7.0",
79
79
  "axios": "^0.27.2",
80
80
  "mocha": "^10.0.0",
81
81
  "shx": "^0.3.4",
82
- "ts-node": "^10.8.2",
83
- "type-fest": "^2.16.0",
84
- "typescript": "^4.7.4"
82
+ "ts-node": "^10.9.1",
83
+ "type-fest": "^2.19.0",
84
+ "typescript": "^4.8.3"
85
85
  },
86
- "gitHead": "6032742bce059781e7013fd662870df45bd72bb5"
86
+ "gitHead": "4314dc89a41a8bbaabf00b47697bf7887861d17d"
87
87
  }