@feathersjs/cli 5.0.0-pre.28 → 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 (31) hide show
  1. package/CHANGELOG.md +14 -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/authentication/templates/authentication.tpl.js +4 -6
  17. package/lib/authentication/templates/authentication.tpl.js.map +1 -1
  18. package/lib/authentication/templates/authentication.tpl.ts +4 -8
  19. package/lib/authentication/templates/config.tpl.js +9 -5
  20. package/lib/authentication/templates/config.tpl.js.map +1 -1
  21. package/lib/authentication/templates/config.tpl.ts +40 -34
  22. package/lib/authentication/templates/knex.tpl.js +3 -2
  23. package/lib/authentication/templates/knex.tpl.js.map +1 -1
  24. package/lib/authentication/templates/knex.tpl.ts +3 -2
  25. package/lib/authentication/templates/user.schema.tpl.js +1 -1
  26. package/lib/authentication/templates/user.schema.tpl.js.map +1 -1
  27. package/lib/authentication/templates/user.schema.tpl.ts +1 -1
  28. package/lib/service/templates/client.tpl.js +14 -2
  29. package/lib/service/templates/client.tpl.js.map +1 -1
  30. package/lib/service/templates/client.tpl.ts +14 -2
  31. package/package.json +20 -20
package/CHANGELOG.md CHANGED
@@ -3,6 +3,20 @@
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
+
6
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)
7
21
 
8
22
 
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,
@@ -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
  `
@@ -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,12 +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
10
  } from './services/${folder.join('/')}/${fileName}.schema'
10
11
 
11
- export * from './services/${folder.join('/')}/${fileName}.schema'`;
12
- const declarationTemplate = ({ path, upperName }) => ` '${path}': Service<${upperName}Result, ${upperName}Data, Params<${upperName}Query>>`;
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
+ >`;
13
25
  const toClientFile = (0, pinion_1.toFile)(({ lib }) => [lib, 'client.ts']);
14
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)));
15
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;;4BAErB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,UAAU,CAAA;AAElE,MAAM,mBAAmB,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAA2B,EAAE,EAAE,CAC3E,MAAM,IAAI,cAAc,SAAS,WAAW,SAAS,gBAAgB,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,14 +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
9
  } from './services/${folder.join('/')}/${fileName}.schema'
9
10
 
10
- export * from './services/${folder.join('/')}/${fileName}.schema'`
11
+ export type {
12
+ ${upperName}Data,
13
+ ${upperName}Patch,
14
+ ${upperName}Result,
15
+ ${upperName}Query,
16
+ }`
11
17
 
12
18
  const declarationTemplate = ({ path, upperName }: ServiceGeneratorContext) =>
13
- ` '${path}': Service<${upperName}Result, ${upperName}Data, Params<${upperName}Query>>`
19
+ ` '${path}': ClientService<
20
+ ${upperName}Result,
21
+ ${upperName}Data,
22
+ ${upperName}Patch,
23
+ Paginated<${upperName}Result>,
24
+ Params<${upperName}Query>
25
+ >`
14
26
 
15
27
  const toClientFile = toFile<ServiceGeneratorContext>(({ lib }) => [lib, 'client.ts'])
16
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.28",
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.4",
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.28",
64
- "@feathersjs/authentication-local": "^5.0.0-pre.28",
65
- "@feathersjs/authentication-oauth": "^5.0.0-pre.28",
66
- "@feathersjs/configuration": "^5.0.0-pre.28",
67
- "@feathersjs/errors": "^5.0.0-pre.28",
68
- "@feathersjs/express": "^5.0.0-pre.28",
69
- "@feathersjs/feathers": "^5.0.0-pre.28",
70
- "@feathersjs/knex": "^5.0.0-pre.28",
71
- "@feathersjs/koa": "^5.0.0-pre.28",
72
- "@feathersjs/mongodb": "^5.0.0-pre.28",
73
- "@feathersjs/schema": "^5.0.0-pre.28",
74
- "@feathersjs/socketio": "^5.0.0-pre.28",
75
- "@feathersjs/transport-commons": "^5.0.0-pre.28",
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.6.3",
78
- "@types/prettier": "^2.6.4",
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
82
  "ts-node": "^10.9.1",
83
- "type-fest": "^2.18.0",
84
- "typescript": "^4.7.4"
83
+ "type-fest": "^2.19.0",
84
+ "typescript": "^4.8.3"
85
85
  },
86
- "gitHead": "bf8e54fddc14d688ba8f505e72c9630a71656ff1"
86
+ "gitHead": "4314dc89a41a8bbaabf00b47697bf7887861d17d"
87
87
  }