@tsed/passport 7.0.0-beta.1 → 7.0.0-beta.12

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 (76) hide show
  1. package/jest.config.js +14 -0
  2. package/lib/cjs/PassportModule.js +19 -14
  3. package/lib/cjs/PassportModule.js.map +1 -1
  4. package/lib/cjs/contants/{index.js → constants.js} +1 -1
  5. package/lib/cjs/contants/constants.js.map +1 -0
  6. package/lib/cjs/decorators/authenticate.js +3 -3
  7. package/lib/cjs/decorators/authenticate.js.map +1 -1
  8. package/lib/cjs/decorators/authorize.js +3 -3
  9. package/lib/cjs/decorators/authorize.js.map +1 -1
  10. package/lib/cjs/decorators/protocol.js +2 -2
  11. package/lib/cjs/decorators/protocol.js.map +1 -1
  12. package/lib/cjs/domain/UserInfo.js +6 -6
  13. package/lib/cjs/index.js +21 -16
  14. package/lib/cjs/index.js.map +1 -1
  15. package/lib/cjs/interfaces/BeforeInstall.js +3 -0
  16. package/lib/cjs/interfaces/BeforeInstall.js.map +1 -0
  17. package/lib/cjs/interfaces/OnInstall.js.map +1 -1
  18. package/lib/cjs/interfaces/ProtocolMethods.js +3 -0
  19. package/lib/cjs/interfaces/ProtocolMethods.js.map +1 -0
  20. package/lib/cjs/interfaces/ProtocolOptions.js.map +1 -1
  21. package/lib/cjs/interfaces/{IProtocol.js → interfaces.js} +1 -1
  22. package/lib/cjs/interfaces/interfaces.js.map +1 -0
  23. package/lib/cjs/middlewares/PassportMiddleware.js +12 -10
  24. package/lib/cjs/middlewares/PassportMiddleware.js.map +1 -1
  25. package/lib/cjs/package.json +3 -0
  26. package/lib/cjs/services/PassportSerializerService.js +3 -3
  27. package/lib/cjs/services/ProtocolsService.js +22 -14
  28. package/lib/cjs/services/ProtocolsService.js.map +1 -1
  29. package/lib/esm/PassportModule.js +10 -5
  30. package/lib/esm/PassportModule.js.map +1 -1
  31. package/lib/esm/contants/{index.js → constants.js} +1 -1
  32. package/lib/esm/contants/constants.js.map +1 -0
  33. package/lib/esm/decorators/authenticate.js +2 -2
  34. package/lib/esm/decorators/authenticate.js.map +1 -1
  35. package/lib/esm/decorators/authorize.js +2 -2
  36. package/lib/esm/decorators/authorize.js.map +1 -1
  37. package/lib/esm/decorators/protocol.js +1 -1
  38. package/lib/esm/decorators/protocol.js.map +1 -1
  39. package/lib/esm/index.js +21 -16
  40. package/lib/esm/index.js.map +1 -1
  41. package/lib/esm/interfaces/BeforeInstall.js +2 -0
  42. package/lib/esm/interfaces/BeforeInstall.js.map +1 -0
  43. package/lib/esm/interfaces/OnInstall.js.map +1 -1
  44. package/lib/esm/interfaces/ProtocolMethods.js +2 -0
  45. package/lib/esm/interfaces/ProtocolMethods.js.map +1 -0
  46. package/lib/esm/interfaces/ProtocolOptions.js.map +1 -1
  47. package/lib/esm/interfaces/interfaces.js +2 -0
  48. package/lib/esm/interfaces/interfaces.js.map +1 -0
  49. package/lib/esm/middlewares/PassportMiddleware.js +5 -3
  50. package/lib/esm/middlewares/PassportMiddleware.js.map +1 -1
  51. package/lib/esm/package.json +3 -0
  52. package/lib/esm/services/PassportSerializerService.js +1 -1
  53. package/lib/esm/services/ProtocolsService.js +20 -12
  54. package/lib/esm/services/ProtocolsService.js.map +1 -1
  55. package/lib/types/PassportModule.d.ts +2 -1
  56. package/lib/types/contants/{index.d.ts → constants.d.ts} +0 -0
  57. package/lib/types/index.d.ts +15 -6
  58. package/lib/types/interfaces/BeforeInstall.d.ts +3 -0
  59. package/lib/types/interfaces/OnInstall.d.ts +1 -1
  60. package/lib/types/interfaces/ProtocolMethods.d.ts +5 -0
  61. package/lib/types/interfaces/ProtocolOptions.d.ts +2 -2
  62. package/lib/types/interfaces/{index.d.ts → interfaces.d.ts} +3 -4
  63. package/lib/types/services/ProtocolsService.d.ts +2 -1
  64. package/package.json +25 -22
  65. package/readme.md +17 -18
  66. package/tsconfig.compile.esm.json +1 -12
  67. package/lib/cjs/contants/index.js.map +0 -1
  68. package/lib/cjs/interfaces/IProtocol.js.map +0 -1
  69. package/lib/cjs/interfaces/index.js +0 -8
  70. package/lib/cjs/interfaces/index.js.map +0 -1
  71. package/lib/esm/contants/index.js.map +0 -1
  72. package/lib/esm/interfaces/IProtocol.js +0 -2
  73. package/lib/esm/interfaces/IProtocol.js.map +0 -1
  74. package/lib/esm/interfaces/index.js +0 -5
  75. package/lib/esm/interfaces/index.js.map +0 -1
  76. package/lib/types/interfaces/IProtocol.d.ts +0 -4
@@ -1,7 +1,7 @@
1
- import { UseAuth } from "@tsed/common";
2
- import { PassportMiddleware } from "../middlewares/PassportMiddleware";
1
+ import { UseAuth } from "@tsed/platform-middlewares";
3
2
  import { useDecorators } from "@tsed/core";
4
3
  import { Security } from "@tsed/schema";
4
+ import { PassportMiddleware } from "../middlewares/PassportMiddleware.js";
5
5
  export function Authenticate(protocol = "*", options = {}) {
6
6
  return useDecorators(UseAuth(PassportMiddleware, {
7
7
  protocol,
@@ -1 +1 @@
1
- {"version":3,"file":"authenticate.js","sourceRoot":"","sources":["../../../src/decorators/authenticate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AAErC,OAAO,EAAC,kBAAkB,EAAC,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AACzC,OAAO,EAAC,QAAQ,EAAC,MAAM,cAAc,CAAC;AAOtC,MAAM,UAAU,YAAY,CAAC,WAA8B,GAAG,EAAE,UAA+B,EAAE;IAC/F,OAAO,aAAa,CAClB,OAAO,CAAC,kBAAkB,EAAE;QAC1B,QAAQ;QACR,MAAM,EAAE,cAAc;QACtB,WAAW,EAAE,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW;QAC3E,OAAO;KACR,CAAC,EACF,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC7D,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;IACjC,CAAC,CAAC,CACH,CAAC;AACJ,CAAC","sourcesContent":["import {UseAuth} from \"@tsed/common\";\nimport {AuthenticateOptions as PassportAuthenticateOptions} from \"passport\";\nimport {PassportMiddleware} from \"../middlewares/PassportMiddleware\";\nimport {useDecorators} from \"@tsed/core\";\nimport {Security} from \"@tsed/schema\";\n\nexport interface AuthenticateOptions extends PassportAuthenticateOptions {\n security?: Record<string, string[]>;\n originalUrl?: boolean;\n}\n\nexport function Authenticate(protocol: string | string[] = \"*\", options: AuthenticateOptions = {}): Function {\n return useDecorators(\n UseAuth(PassportMiddleware, {\n protocol,\n method: \"authenticate\",\n originalUrl: options.originalUrl === undefined ? true : options.originalUrl,\n options\n }),\n ...Object.entries(options.security || {}).map(([key, value]) => {\n return Security(key, ...value);\n })\n );\n}\n"]}
1
+ {"version":3,"file":"authenticate.js","sourceRoot":"","sources":["../../../src/decorators/authenticate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AACzC,OAAO,EAAC,QAAQ,EAAC,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAC,kBAAkB,EAAC,MAAM,mCAAmC,CAAC;AAOrE,MAAM,UAAU,YAAY,CAAC,WAA8B,GAAG,EAAE,UAA+B,EAAE;IAC/F,OAAO,aAAa,CAClB,OAAO,CAAC,kBAAkB,EAAE;QAC1B,QAAQ;QACR,MAAM,EAAE,cAAc;QACtB,WAAW,EAAE,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW;QAC3E,OAAO;KACR,CAAC,EACF,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC7D,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;IACjC,CAAC,CAAC,CACH,CAAC;AACJ,CAAC","sourcesContent":["import {UseAuth} from \"@tsed/platform-middlewares\";\nimport {useDecorators} from \"@tsed/core\";\nimport {Security} from \"@tsed/schema\";\nimport {AuthenticateOptions as PassportAuthenticateOptions} from \"passport\";\nimport {PassportMiddleware} from \"../middlewares/PassportMiddleware\";\n\nexport interface AuthenticateOptions extends PassportAuthenticateOptions {\n security?: Record<string, string[]>;\n originalUrl?: boolean;\n}\n\nexport function Authenticate(protocol: string | string[] = \"*\", options: AuthenticateOptions = {}): Function {\n return useDecorators(\n UseAuth(PassportMiddleware, {\n protocol,\n method: \"authenticate\",\n originalUrl: options.originalUrl === undefined ? true : options.originalUrl,\n options\n }),\n ...Object.entries(options.security || {}).map(([key, value]) => {\n return Security(key, ...value);\n })\n );\n}\n"]}
@@ -1,7 +1,7 @@
1
- import { UseAuth } from "@tsed/common";
2
- import { PassportMiddleware } from "../middlewares/PassportMiddleware";
1
+ import { UseAuth } from "@tsed/platform-middlewares";
3
2
  import { useDecorators } from "@tsed/core";
4
3
  import { Security } from "@tsed/schema";
4
+ import { PassportMiddleware } from "../middlewares/PassportMiddleware.js";
5
5
  export function Authorize(protocol = "*", options = {}) {
6
6
  return useDecorators(UseAuth(PassportMiddleware, {
7
7
  protocol,
@@ -1 +1 @@
1
- {"version":3,"file":"authorize.js","sourceRoot":"","sources":["../../../src/decorators/authorize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AAErC,OAAO,EAAC,kBAAkB,EAAC,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AACzC,OAAO,EAAC,QAAQ,EAAC,MAAM,cAAc,CAAC;AAOtC,MAAM,UAAU,SAAS,CAAC,WAA8B,GAAG,EAAE,UAA4B,EAAE;IACzF,OAAO,aAAa,CAClB,OAAO,CAAC,kBAAkB,EAAE;QAC1B,QAAQ;QACR,MAAM,EAAE,WAAW;QACnB,WAAW,EAAE,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW;QAC3E,OAAO;KACR,CAAC,EACF,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC7D,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;IACjC,CAAC,CAAC,CACH,CAAC;AACJ,CAAC","sourcesContent":["import {UseAuth} from \"@tsed/common\";\nimport {AuthenticateOptions} from \"passport\";\nimport {PassportMiddleware} from \"../middlewares/PassportMiddleware\";\nimport {useDecorators} from \"@tsed/core\";\nimport {Security} from \"@tsed/schema\";\n\nexport interface AuthorizeOptions extends AuthenticateOptions {\n security?: Record<string, string[]>;\n originalUrl?: boolean;\n}\n\nexport function Authorize(protocol: string | string[] = \"*\", options: AuthorizeOptions = {}): Function {\n return useDecorators(\n UseAuth(PassportMiddleware, {\n protocol,\n method: \"authorize\",\n originalUrl: options.originalUrl === undefined ? true : options.originalUrl,\n options\n }),\n ...Object.entries(options.security || {}).map(([key, value]) => {\n return Security(key, ...value);\n })\n );\n}\n"]}
1
+ {"version":3,"file":"authorize.js","sourceRoot":"","sources":["../../../src/decorators/authorize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AACzC,OAAO,EAAC,QAAQ,EAAC,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAC,kBAAkB,EAAC,MAAM,mCAAmC,CAAC;AAOrE,MAAM,UAAU,SAAS,CAAC,WAA8B,GAAG,EAAE,UAA4B,EAAE;IACzF,OAAO,aAAa,CAClB,OAAO,CAAC,kBAAkB,EAAE;QAC1B,QAAQ;QACR,MAAM,EAAE,WAAW;QACnB,WAAW,EAAE,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW;QAC3E,OAAO;KACR,CAAC,EACF,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC7D,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;IACjC,CAAC,CAAC,CACH,CAAC;AACJ,CAAC","sourcesContent":["import {UseAuth} from \"@tsed/platform-middlewares\";\nimport {useDecorators} from \"@tsed/core\";\nimport {Security} from \"@tsed/schema\";\nimport {AuthenticateOptions} from \"passport\";\nimport {PassportMiddleware} from \"../middlewares/PassportMiddleware\";\n\nexport interface AuthorizeOptions extends AuthenticateOptions {\n security?: Record<string, string[]>;\n originalUrl?: boolean;\n}\n\nexport function Authorize(protocol: string | string[] = \"*\", options: AuthorizeOptions = {}): Function {\n return useDecorators(\n UseAuth(PassportMiddleware, {\n protocol,\n method: \"authorize\",\n originalUrl: options.originalUrl === undefined ? true : options.originalUrl,\n options\n }),\n ...Object.entries(options.security || {}).map(([key, value]) => {\n return Security(key, ...value);\n })\n );\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import { StoreSet, useDecorators } from "@tsed/core";
2
2
  import { Configuration, Injectable } from "@tsed/di";
3
- import { PROVIDER_TYPE_PROTOCOL } from "../contants";
3
+ import { PROVIDER_TYPE_PROTOCOL } from "../contants/constants.js";
4
4
  /**
5
5
  * Declare a new Protocol base on a Passport Strategy
6
6
  *
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/decorators/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,aAAa,EAAC,MAAM,YAAY,CAAC;AACnD,OAAO,EAAC,aAAa,EAAE,UAAU,EAAC,MAAM,UAAU,CAAC;AAEnD,OAAO,EAAC,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAU,OAAoC;IACpE,OAAO,aAAa,CAClB,UAAU,CAAC;QACT,IAAI,EAAE,sBAAsB;KAC7B,CAAC,EACF,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,EAC7B,aAAa,CAAC;QACZ,QAAQ,EAAE;YACR,SAAS,EAAE;gBACT,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO;aACxB;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC","sourcesContent":["import {StoreSet, useDecorators} from \"@tsed/core\";\nimport {Configuration, Injectable} from \"@tsed/di\";\nimport {ProtocolOptions} from \"../interfaces/ProtocolOptions\";\nimport {PROVIDER_TYPE_PROTOCOL} from \"../contants\";\n\n/**\n * Declare a new Protocol base on a Passport Strategy\n *\n * @decorator\n * @class\n */\nexport function Protocol<T = any>(options: ProtocolOptionsDecorator<T>) {\n return useDecorators(\n Injectable({\n type: PROVIDER_TYPE_PROTOCOL\n }),\n StoreSet(\"protocol\", options),\n Configuration({\n passport: {\n protocols: {\n [options.name]: options\n }\n }\n })\n );\n}\n\nexport type ProtocolOptionsDecorator<T = any> = {name: string} & Partial<ProtocolOptions<T>>;\n"]}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/decorators/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,aAAa,EAAC,MAAM,YAAY,CAAC;AACnD,OAAO,EAAC,aAAa,EAAE,UAAU,EAAC,MAAM,UAAU,CAAC;AAEnD,OAAO,EAAC,sBAAsB,EAAC,MAAM,uBAAuB,CAAC;AAE7D;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAU,OAAoC;IACpE,OAAO,aAAa,CAClB,UAAU,CAAC;QACT,IAAI,EAAE,sBAAsB;KAC7B,CAAC,EACF,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,EAC7B,aAAa,CAAC;QACZ,QAAQ,EAAE;YACR,SAAS,EAAE;gBACT,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO;aACxB;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC","sourcesContent":["import {StoreSet, useDecorators} from \"@tsed/core\";\nimport {Configuration, Injectable} from \"@tsed/di\";\nimport {ProtocolOptions} from \"../interfaces/ProtocolOptions\";\nimport {PROVIDER_TYPE_PROTOCOL} from \"../contants/constants\";\n\n/**\n * Declare a new Protocol base on a Passport Strategy\n *\n * @decorator\n * @class\n */\nexport function Protocol<T = any>(options: ProtocolOptionsDecorator<T>) {\n return useDecorators(\n Injectable({\n type: PROVIDER_TYPE_PROTOCOL\n }),\n StoreSet(\"protocol\", options),\n Configuration({\n passport: {\n protocols: {\n [options.name]: options\n }\n }\n })\n );\n}\n\nexport type ProtocolOptionsDecorator<T = any> = {name: string} & Partial<ProtocolOptions<T>>;\n"]}
package/lib/esm/index.js CHANGED
@@ -1,17 +1,22 @@
1
- import "./PassportModule";
2
- // Decorator
3
- export * from "./decorators/authenticate";
4
- export * from "./decorators/authorize";
5
- export * from "./decorators/protocol";
6
- export * from "./decorators/args";
7
- // Interfaces
8
- export * from "./interfaces";
9
- export * from "./domain/UserInfo";
10
- export * from "./errors/PassportException";
11
- // Registries and Services
12
- export * from "./contants";
13
- export * from "./services/ProtocolsService";
14
- export * from "./services/PassportSerializerService";
15
- // Middlewares
16
- export * from "./middlewares/PassportMiddleware";
1
+ /**
2
+ * @file Automatically generated by barrelsby.
3
+ */
4
+ export * from "./PassportModule.js";
5
+ export * from "./contants/constants.js";
6
+ export * from "./decorators/args.js";
7
+ export * from "./decorators/authenticate.js";
8
+ export * from "./decorators/authorize.js";
9
+ export * from "./decorators/protocol.js";
10
+ export * from "./domain/UserInfo.js";
11
+ export * from "./errors/PassportException.js";
12
+ export * from "./interfaces/BeforeInstall.js";
13
+ export * from "./interfaces/OnInstall.js";
14
+ export * from "./interfaces/OnVerify.js";
15
+ export * from "./interfaces/ProtocolMethods.js";
16
+ export * from "./interfaces/ProtocolOptions.js";
17
+ export * from "./interfaces/interfaces.js";
18
+ export * from "./middlewares/PassportMiddleware.js";
19
+ export * from "./services/PassportSerializerService.js";
20
+ export * from "./services/ProtocolsService.js";
21
+ export * from "./utils/getProtocolsFromRequest.js";
17
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,YAAY;AACZ,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAElC,aAAa;AACb,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAE3C,0BAA0B;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sCAAsC,CAAC;AAErD,cAAc;AACd,cAAc,kCAAkC,CAAC","sourcesContent":["import \"./PassportModule\";\n\n// Decorator\nexport * from \"./decorators/authenticate\";\nexport * from \"./decorators/authorize\";\nexport * from \"./decorators/protocol\";\nexport * from \"./decorators/args\";\n\n// Interfaces\nexport * from \"./interfaces\";\nexport * from \"./domain/UserInfo\";\nexport * from \"./errors/PassportException\";\n\n// Registries and Services\nexport * from \"./contants\";\nexport * from \"./services/ProtocolsService\";\nexport * from \"./services/PassportSerializerService\";\n\n// Middlewares\nexport * from \"./middlewares/PassportMiddleware\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC","sourcesContent":["/**\n * @file Automatically generated by barrelsby.\n */\n\nexport * from \"./PassportModule\";\nexport * from \"./contants/constants\";\nexport * from \"./decorators/args\";\nexport * from \"./decorators/authenticate\";\nexport * from \"./decorators/authorize\";\nexport * from \"./decorators/protocol\";\nexport * from \"./domain/UserInfo\";\nexport * from \"./errors/PassportException\";\nexport * from \"./interfaces/BeforeInstall\";\nexport * from \"./interfaces/OnInstall\";\nexport * from \"./interfaces/OnVerify\";\nexport * from \"./interfaces/ProtocolMethods\";\nexport * from \"./interfaces/ProtocolOptions\";\nexport * from \"./interfaces/interfaces\";\nexport * from \"./middlewares/PassportMiddleware\";\nexport * from \"./services/PassportSerializerService\";\nexport * from \"./services/ProtocolsService\";\nexport * from \"./utils/getProtocolsFromRequest\";\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=BeforeInstall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BeforeInstall.js","sourceRoot":"","sources":["../../../src/interfaces/BeforeInstall.ts"],"names":[],"mappings":"","sourcesContent":["export interface BeforeInstall<Settings = any> {\n $beforeInstall(setting: Settings): Promise<Settings> | Settings | void;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"OnInstall.js","sourceRoot":"","sources":["../../../src/interfaces/OnInstall.ts"],"names":[],"mappings":"","sourcesContent":["import {Strategy} from \"passport\";\n\nexport interface OnInstall {\n $onInstall(strategy: Strategy): void;\n}\n"]}
1
+ {"version":3,"file":"OnInstall.js","sourceRoot":"","sources":["../../../src/interfaces/OnInstall.ts"],"names":[],"mappings":"","sourcesContent":["import {Strategy} from \"passport\";\n\nexport interface OnInstall {\n $onInstall(strategy: Strategy): void | Promise<void>;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ProtocolMethods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProtocolMethods.js","sourceRoot":"","sources":["../../../src/interfaces/ProtocolMethods.ts"],"names":[],"mappings":"","sourcesContent":["import {OnInstall} from \"./OnInstall\";\nimport {OnVerify} from \"./OnVerify\";\nimport {BeforeInstall} from \"./BeforeInstall\";\n\nexport interface ProtocolMethods<Settings = any> extends OnVerify, OnInstall, BeforeInstall<Settings> {}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ProtocolOptions.js","sourceRoot":"","sources":["../../../src/interfaces/ProtocolOptions.ts"],"names":[],"mappings":"","sourcesContent":["import {Type} from \"@tsed/core\";\nimport {Strategy} from \"passport\";\n\nexport interface ProtocolOptions<T = any> {\n name: string;\n useStrategy: Type<Strategy>;\n settings: T;\n}\n"]}
1
+ {"version":3,"file":"ProtocolOptions.js","sourceRoot":"","sources":["../../../src/interfaces/ProtocolOptions.ts"],"names":[],"mappings":"","sourcesContent":["import {Type} from \"@tsed/core\";\nimport {Strategy} from \"passport\";\n\nexport interface ProtocolOptions<Settings = any> {\n name: string;\n useStrategy: Type<Strategy>;\n settings: Settings;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/interfaces/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["import {Type} from \"@tsed/core\";\nimport {PassportStatic} from \"passport\";\nimport {ProtocolOptions} from \"./ProtocolOptions\";\n\ndeclare global {\n namespace TsED {\n interface Configuration {\n passport: {\n userProperty?: string;\n pauseStream?: string;\n disableSession?: boolean;\n userInfoModel?: Type<any> | false;\n module?: PassportStatic;\n protocols?: {\n [protocolName: string]: Partial<ProtocolOptions>;\n };\n };\n }\n }\n}\n"]}
@@ -1,8 +1,10 @@
1
1
  var PassportMiddleware_1;
2
2
  import { __decorate, __metadata, __param } from "tslib";
3
- import { Context, Inject, Middleware } from "@tsed/common";
4
- import { ProtocolsService } from "../services/ProtocolsService";
5
- import { getProtocolsFromRequest } from "../utils/getProtocolsFromRequest";
3
+ import { Inject } from "@tsed/di";
4
+ import { Middleware } from "@tsed/platform-middlewares";
5
+ import { Context } from "@tsed/common";
6
+ import { ProtocolsService } from "../services/ProtocolsService.js";
7
+ import { getProtocolsFromRequest } from "../utils/getProtocolsFromRequest.js";
6
8
  let PassportMiddleware = PassportMiddleware_1 = class PassportMiddleware {
7
9
  shouldSkip(ctx) {
8
10
  const request = ctx.getRequest();
@@ -1 +1 @@
1
- {"version":3,"file":"PassportMiddleware.js","sourceRoot":"","sources":["../../../src/middlewares/PassportMiddleware.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAC,MAAM,cAAc,CAAC;AACzD,OAAO,EAAC,gBAAgB,EAAC,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAC,uBAAuB,EAAC,MAAM,kCAAkC,CAAC;AAGzE,IAAa,kBAAkB,0BAA/B,MAAa,kBAAkB;IAI7B,UAAU,CAAC,GAAY;QACrB,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,GAAG,CAAY,GAAY;QAC/B,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAC9B,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;QAEjC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACxB,OAAO;SACR;QACD,MAAM,EAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,EAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAkB,CAAC,CAAC;QAC/F,MAAM,SAAS,GAAG,uBAAuB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAExG,IAAI,WAAW,EAAE;YACf,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;SACnC;QAED,MAAM,CAAC,MAAM,KAAK,cAAc;YAC9B,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC;YAC7D,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAChE,CAAC;CACF,CAAA;AAzBC;IADC,MAAM,CAAC,gBAAgB,CAAC;8BACP,gBAAgB;4DAAC;AAOnC;IAAW,WAAA,OAAO,EAAE,CAAA;;;;6CAiBnB;AA1BU,kBAAkB;IAD9B,UAAU,EAAE;GACA,kBAAkB,CA2B9B;SA3BY,kBAAkB","sourcesContent":["import {Context, Inject, Middleware} from \"@tsed/common\";\nimport {ProtocolsService} from \"../services/ProtocolsService\";\nimport {getProtocolsFromRequest} from \"../utils/getProtocolsFromRequest\";\n\n@Middleware()\nexport class PassportMiddleware {\n @Inject(ProtocolsService)\n protocolsService: ProtocolsService;\n\n shouldSkip(ctx: Context) {\n const request = ctx.getRequest();\n return request.user && request.isAuthenticated();\n }\n\n async use(@Context() ctx: Context) {\n const endpoint = ctx.endpoint;\n const request = ctx.getRequest();\n\n if (this.shouldSkip(ctx)) {\n return;\n }\n const {options, protocol, method, originalUrl = true} = endpoint.store.get(PassportMiddleware);\n const protocols = getProtocolsFromRequest(request, protocol, this.protocolsService.getProtocolsNames());\n\n if (originalUrl) {\n request.url = request.originalUrl;\n }\n\n await (method === \"authenticate\"\n ? this.protocolsService.authenticate(protocols, options, ctx)\n : this.protocolsService.authorize(protocols, options, ctx));\n }\n}\n"]}
1
+ {"version":3,"file":"PassportMiddleware.js","sourceRoot":"","sources":["../../../src/middlewares/PassportMiddleware.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAChC,OAAO,EAAC,UAAU,EAAC,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AACrC,OAAO,EAAC,gBAAgB,EAAC,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAC,uBAAuB,EAAC,MAAM,kCAAkC,CAAC;AAGzE,IAAa,kBAAkB,0BAA/B,MAAa,kBAAkB;IAI7B,UAAU,CAAC,GAAY;QACrB,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,GAAG,CAAY,GAAY;QAC/B,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAC9B,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;QAEjC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACxB,OAAO;SACR;QACD,MAAM,EAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,EAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAkB,CAAC,CAAC;QAC/F,MAAM,SAAS,GAAG,uBAAuB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAExG,IAAI,WAAW,EAAE;YACf,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;SACnC;QAED,MAAM,CAAC,MAAM,KAAK,cAAc;YAC9B,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC;YAC7D,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAChE,CAAC;CACF,CAAA;AAzBC;IADC,MAAM,CAAC,gBAAgB,CAAC;8BACP,gBAAgB;4DAAC;AAOnC;IAAW,WAAA,OAAO,EAAE,CAAA;;;;6CAiBnB;AA1BU,kBAAkB;IAD9B,UAAU,EAAE;GACA,kBAAkB,CA2B9B;SA3BY,kBAAkB","sourcesContent":["import {Inject} from \"@tsed/di\";\nimport {Middleware} from \"@tsed/platform-middlewares\";\nimport {Context} from \"@tsed/common\";\nimport {ProtocolsService} from \"../services/ProtocolsService\";\nimport {getProtocolsFromRequest} from \"../utils/getProtocolsFromRequest\";\n\n@Middleware()\nexport class PassportMiddleware {\n @Inject(ProtocolsService)\n protocolsService: ProtocolsService;\n\n shouldSkip(ctx: Context) {\n const request = ctx.getRequest();\n return request.user && request.isAuthenticated();\n }\n\n async use(@Context() ctx: Context) {\n const endpoint = ctx.endpoint;\n const request = ctx.getRequest();\n\n if (this.shouldSkip(ctx)) {\n return;\n }\n const {options, protocol, method, originalUrl = true} = endpoint.store.get(PassportMiddleware);\n const protocols = getProtocolsFromRequest(request, protocol, this.protocolsService.getProtocolsNames());\n\n if (originalUrl) {\n request.url = request.originalUrl;\n }\n\n await (method === \"authenticate\"\n ? this.protocolsService.authenticate(protocols, options, ctx)\n : this.protocolsService.authorize(protocols, options, ctx));\n }\n}\n"]}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "module"
3
+ }
@@ -1,7 +1,7 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  import { Constant, Service } from "@tsed/di";
3
3
  import { deserialize, serialize } from "@tsed/json-mapper";
4
- import { UserInfo } from "../domain/UserInfo";
4
+ import { UserInfo } from "../domain/UserInfo.js";
5
5
  /**
6
6
  * @ignore
7
7
  */
@@ -4,8 +4,8 @@ import { ancestorsOf } from "@tsed/core";
4
4
  import { Injectable, InjectorService } from "@tsed/di";
5
5
  import { Unauthorized } from "@tsed/exceptions";
6
6
  import Passport, { Strategy } from "passport";
7
- import { PassportException } from "../errors/PassportException";
8
- import { PROVIDER_TYPE_PROTOCOL } from "../contants";
7
+ import { PassportException } from "../errors/PassportException.js";
8
+ import { PROVIDER_TYPE_PROTOCOL } from "../contants/constants.js";
9
9
  import { promisify } from "util";
10
10
  /**
11
11
  * @ignore
@@ -16,7 +16,7 @@ let ProtocolsService = class ProtocolsService {
16
16
  this.strategies = new Map();
17
17
  }
18
18
  getProtocols() {
19
- return Array.from(this.injector.getProviders(PROVIDER_TYPE_PROTOCOL));
19
+ return this.injector.getProviders(PROVIDER_TYPE_PROTOCOL);
20
20
  }
21
21
  getProtocolsNames() {
22
22
  return Array.from(this.strategies.keys());
@@ -25,14 +25,17 @@ let ProtocolsService = class ProtocolsService {
25
25
  * Invoke provider and bind it to passport.
26
26
  * @param provider
27
27
  */
28
- invoke(provider) {
29
- const { name, useStrategy: strategy, settings } = this.getOptions(provider);
28
+ async invoke(provider) {
29
+ let { name, useStrategy: strategy, settings } = this.getOptions(provider);
30
30
  const protocol = this.injector.get(provider.provide);
31
+ if (protocol.$beforeInstall) {
32
+ settings = (await protocol.$beforeInstall(settings)) || settings;
33
+ }
31
34
  const instance = new strategy(settings, this.createHandler(provider));
32
35
  this.strategies.set(name, instance);
33
36
  Passport.use(name, instance);
34
37
  if (protocol.$onInstall) {
35
- protocol.$onInstall(instance);
38
+ await protocol.$onInstall(instance);
36
39
  }
37
40
  protocol.$strategy = instance;
38
41
  return protocol;
@@ -110,13 +113,18 @@ let ProtocolsService = class ProtocolsService {
110
113
  const middleware = platformHandler.createCustomHandler(provider, "$onVerify");
111
114
  return async (req, ...args) => {
112
115
  const done = args[args.length - 1];
113
- req.$ctx.set("PROTOCOL_ARGS", args.slice(0, -1));
114
- try {
115
- await middleware(req.$ctx);
116
- done(null, ...[].concat(req.$ctx.data));
116
+ if (req.$ctx) {
117
+ req.$ctx.set("PROTOCOL_ARGS", args.slice(0, -1));
118
+ try {
119
+ await middleware(req.$ctx);
120
+ done(null, ...[].concat(req.$ctx.data));
121
+ }
122
+ catch (err) {
123
+ done(err, false, { message: err.message });
124
+ }
117
125
  }
118
- catch (err) {
119
- done(err, false, { message: err.message });
126
+ else {
127
+ done(new Error("Headers already sent"), false, { message: "Headers already sent" });
120
128
  }
121
129
  };
122
130
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ProtocolsService.js","sourceRoot":"","sources":["../../../src/services/ProtocolsService.ts"],"names":[],"mappings":"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","sourcesContent":["import {PlatformContext, PlatformHandler} from \"@tsed/common\";\nimport {ancestorsOf} from \"@tsed/core\";\nimport {Injectable, InjectorService, Provider} from \"@tsed/di\";\nimport {Unauthorized} from \"@tsed/exceptions\";\nimport Passport, {Strategy} from \"passport\";\nimport {PassportException} from \"../errors/PassportException\";\nimport {IProtocol, ProtocolOptions} from \"../interfaces\";\nimport {PROVIDER_TYPE_PROTOCOL} from \"../contants\";\nimport {promisify} from \"util\";\n\n/**\n * @ignore\n */\n@Injectable()\nexport class ProtocolsService {\n readonly strategies: Map<string, Strategy> = new Map();\n\n constructor(private injector: InjectorService) {}\n\n public getProtocols(): Provider[] {\n return Array.from(this.injector.getProviders(PROVIDER_TYPE_PROTOCOL));\n }\n\n public getProtocolsNames(): string[] {\n return Array.from(this.strategies.keys());\n }\n\n /**\n * Invoke provider and bind it to passport.\n * @param provider\n */\n public invoke(provider: Provider): any {\n const {name, useStrategy: strategy, settings} = this.getOptions(provider);\n const protocol = this.injector.get<IProtocol & any>(provider.provide)!;\n const instance = new strategy(settings, this.createHandler(provider));\n\n this.strategies.set(name, instance);\n\n Passport.use(name, instance);\n\n if (protocol.$onInstall) {\n protocol.$onInstall(instance);\n }\n\n protocol.$strategy = instance;\n\n return protocol;\n }\n\n /**\n * Call authenticate passport method.\n * @param protocols\n * @param options\n * @param ctx\n */\n public async authenticate(protocols: string | string[], options: Record<string, any>, ctx: PlatformContext) {\n return this.call(\"authenticate\", protocols, options, ctx);\n }\n\n /**\n * Call authorize passport method.\n * @param protocols\n * @param options\n * @param ctx\n */\n public async authorize(protocols: string | string[], options: Record<string, any>, ctx: PlatformContext) {\n return this.call(\"authorize\", protocols, options, ctx);\n }\n\n /**\n * Call passport authenticate or authorize depending on the chosen method.\n * @param method\n * @param protocols\n * @param options\n * @param ctx\n * @private\n */\n private async call(\n method: \"authenticate\" | \"authorize\",\n protocols: string | string[],\n options: Record<string, any>,\n ctx: PlatformContext\n ) {\n const request = ctx.getRequest();\n const response = ctx.getResponse();\n protocols = ([] as string[]).concat(protocols);\n\n if (protocols.length === 0) {\n throw new Unauthorized(\"Not authorized\");\n }\n\n try {\n options.failWithError = true;\n // @ts-ignore\n const fn = promisify(Passport[method](protocols.length === 1 ? protocols[0] : protocols, options));\n\n await fn(request, response);\n } catch (er) {\n if (!ancestorsOf(er).includes(Error)) {\n throw new PassportException(er);\n }\n\n throw er;\n }\n }\n\n /**\n * Create strategy options based on decorator metadata and global configuration\n * @param provider\n * @private\n */\n private getOptions(provider: Provider<any>): ProtocolOptions {\n const {name} = provider.store.get(\"protocol\");\n const {useStrategy = Strategy, settings = {}}: ProtocolOptions = this.injector.settings.get(`passport.protocols.${name}`) || {};\n\n return {\n name,\n useStrategy,\n settings: {\n ...settings,\n passReqToCallback: true\n }\n };\n }\n\n /**\n * Create the verifier handler for passport\n * @param provider\n * @private\n */\n private createHandler(provider: Provider<any>) {\n const platformHandler = this.injector.get<PlatformHandler>(PlatformHandler)!;\n const middleware = platformHandler.createCustomHandler(provider, \"$onVerify\");\n\n return async (req: any, ...args: any[]) => {\n const done = args[args.length - 1];\n req.$ctx.set(\"PROTOCOL_ARGS\", args.slice(0, -1));\n\n try {\n await middleware(req.$ctx);\n done(null, ...[].concat(req.$ctx.data));\n } catch (err) {\n done(err, false, {message: err.message});\n }\n };\n }\n}\n"]}
1
+ {"version":3,"file":"ProtocolsService.js","sourceRoot":"","sources":["../../../src/services/ProtocolsService.ts"],"names":[],"mappings":"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","sourcesContent":["import {PlatformContext, PlatformHandler} from \"@tsed/common\";\nimport {ancestorsOf} from \"@tsed/core\";\nimport {Injectable, InjectorService, Provider} from \"@tsed/di\";\nimport {Unauthorized} from \"@tsed/exceptions\";\nimport Passport, {Strategy} from \"passport\";\nimport {PassportException} from \"../errors/PassportException\";\nimport {PROVIDER_TYPE_PROTOCOL} from \"../contants/constants\";\nimport {promisify} from \"util\";\nimport type {ProtocolMethods} from \"../interfaces/ProtocolMethods\";\nimport type {ProtocolOptions} from \"../interfaces/ProtocolOptions\";\n\n/**\n * @ignore\n */\n@Injectable()\nexport class ProtocolsService {\n readonly strategies: Map<string, Strategy> = new Map();\n\n constructor(private injector: InjectorService) {}\n\n public getProtocols(): Provider[] {\n return this.injector.getProviders(PROVIDER_TYPE_PROTOCOL);\n }\n\n public getProtocolsNames(): string[] {\n return Array.from(this.strategies.keys());\n }\n\n /**\n * Invoke provider and bind it to passport.\n * @param provider\n */\n async invoke(provider: Provider) {\n let {name, useStrategy: strategy, settings} = this.getOptions(provider);\n const protocol = this.injector.get<ProtocolMethods & Record<string, any>>(provider.provide)!;\n\n if (protocol.$beforeInstall) {\n settings = (await protocol.$beforeInstall(settings)) || settings;\n }\n\n const instance = new strategy(settings, this.createHandler(provider));\n\n this.strategies.set(name, instance);\n\n Passport.use(name, instance);\n\n if (protocol.$onInstall) {\n await protocol.$onInstall(instance);\n }\n\n protocol.$strategy = instance;\n\n return protocol;\n }\n\n /**\n * Call authenticate passport method.\n * @param protocols\n * @param options\n * @param ctx\n */\n public async authenticate(protocols: string | string[], options: Record<string, any>, ctx: PlatformContext) {\n return this.call(\"authenticate\", protocols, options, ctx);\n }\n\n /**\n * Call authorize passport method.\n * @param protocols\n * @param options\n * @param ctx\n */\n public async authorize(protocols: string | string[], options: Record<string, any>, ctx: PlatformContext) {\n return this.call(\"authorize\", protocols, options, ctx);\n }\n\n /**\n * Call passport authenticate or authorize depending on the chosen method.\n * @param method\n * @param protocols\n * @param options\n * @param ctx\n * @private\n */\n private async call(\n method: \"authenticate\" | \"authorize\",\n protocols: string | string[],\n options: Record<string, any>,\n ctx: PlatformContext\n ) {\n const request = ctx.getRequest();\n const response = ctx.getResponse();\n protocols = ([] as string[]).concat(protocols);\n\n if (protocols.length === 0) {\n throw new Unauthorized(\"Not authorized\");\n }\n\n try {\n options.failWithError = true;\n // @ts-ignore\n const fn = promisify(Passport[method](protocols.length === 1 ? protocols[0] : protocols, options));\n\n await fn(request, response);\n } catch (er) {\n if (!ancestorsOf(er).includes(Error)) {\n throw new PassportException(er);\n }\n\n throw er;\n }\n }\n\n /**\n * Create strategy options based on decorator metadata and global configuration\n * @param provider\n * @private\n */\n private getOptions(provider: Provider<any>): ProtocolOptions {\n const {name} = provider.store.get(\"protocol\");\n const {useStrategy = Strategy, settings = {}}: ProtocolOptions = this.injector.settings.get(`passport.protocols.${name}`) || {};\n\n return {\n name,\n useStrategy,\n settings: {\n ...settings,\n passReqToCallback: true\n }\n };\n }\n\n /**\n * Create the verifier handler for passport\n * @param provider\n * @private\n */\n private createHandler(provider: Provider<any>) {\n const platformHandler = this.injector.get<PlatformHandler>(PlatformHandler)!;\n const middleware = platformHandler.createCustomHandler(provider, \"$onVerify\");\n\n return async (req: any, ...args: any[]) => {\n const done = args[args.length - 1];\n\n if (req.$ctx) {\n req.$ctx.set(\"PROTOCOL_ARGS\", args.slice(0, -1));\n\n try {\n await middleware(req.$ctx);\n done(null, ...[].concat(req.$ctx.data));\n } catch (err) {\n done(err, false, {message: err.message});\n }\n } else {\n done(new Error(\"Headers already sent\"), false, {message: \"Headers already sent\"});\n }\n };\n }\n}\n"]}
@@ -10,9 +10,10 @@ export declare class PassportModule implements OnInit, BeforeRoutesInit {
10
10
  private passportSerializer;
11
11
  userProperty: string;
12
12
  pauseStream: boolean;
13
+ disableSession: boolean;
13
14
  platformName: string;
14
15
  logger: Logger;
15
16
  constructor(app: PlatformApplication, protocolsService: ProtocolsService, passportSerializer: PassportSerializerService);
16
- $onInit(): Promise<any> | void;
17
+ $onInit(): Promise<any>;
17
18
  $beforeRoutesInit(): void | Promise<any>;
18
19
  }
@@ -1,12 +1,21 @@
1
- import "./PassportModule";
1
+ /**
2
+ * @file Automatically generated by barrelsby.
3
+ */
4
+ export * from "./PassportModule";
5
+ export * from "./contants/constants";
6
+ export * from "./decorators/args";
2
7
  export * from "./decorators/authenticate";
3
8
  export * from "./decorators/authorize";
4
9
  export * from "./decorators/protocol";
5
- export * from "./decorators/args";
6
- export * from "./interfaces";
7
10
  export * from "./domain/UserInfo";
8
11
  export * from "./errors/PassportException";
9
- export * from "./contants";
10
- export * from "./services/ProtocolsService";
11
- export * from "./services/PassportSerializerService";
12
+ export * from "./interfaces/BeforeInstall";
13
+ export * from "./interfaces/OnInstall";
14
+ export * from "./interfaces/OnVerify";
15
+ export * from "./interfaces/ProtocolMethods";
16
+ export * from "./interfaces/ProtocolOptions";
17
+ export * from "./interfaces/interfaces";
12
18
  export * from "./middlewares/PassportMiddleware";
19
+ export * from "./services/PassportSerializerService";
20
+ export * from "./services/ProtocolsService";
21
+ export * from "./utils/getProtocolsFromRequest";
@@ -0,0 +1,3 @@
1
+ export interface BeforeInstall<Settings = any> {
2
+ $beforeInstall(setting: Settings): Promise<Settings> | Settings | void;
3
+ }
@@ -1,4 +1,4 @@
1
1
  import { Strategy } from "passport";
2
2
  export interface OnInstall {
3
- $onInstall(strategy: Strategy): void;
3
+ $onInstall(strategy: Strategy): void | Promise<void>;
4
4
  }
@@ -0,0 +1,5 @@
1
+ import { OnInstall } from "./OnInstall";
2
+ import { OnVerify } from "./OnVerify";
3
+ import { BeforeInstall } from "./BeforeInstall";
4
+ export interface ProtocolMethods<Settings = any> extends OnVerify, OnInstall, BeforeInstall<Settings> {
5
+ }
@@ -1,7 +1,7 @@
1
1
  import { Type } from "@tsed/core";
2
2
  import { Strategy } from "passport";
3
- export interface ProtocolOptions<T = any> {
3
+ export interface ProtocolOptions<Settings = any> {
4
4
  name: string;
5
5
  useStrategy: Type<Strategy>;
6
- settings: T;
6
+ settings: Settings;
7
7
  }
@@ -1,4 +1,5 @@
1
1
  import { Type } from "@tsed/core";
2
+ import { PassportStatic } from "passport";
2
3
  import { ProtocolOptions } from "./ProtocolOptions";
3
4
  declare global {
4
5
  namespace TsED {
@@ -6,7 +7,9 @@ declare global {
6
7
  passport: {
7
8
  userProperty?: string;
8
9
  pauseStream?: string;
10
+ disableSession?: boolean;
9
11
  userInfoModel?: Type<any> | false;
12
+ module?: PassportStatic;
10
13
  protocols?: {
11
14
  [protocolName: string]: Partial<ProtocolOptions>;
12
15
  };
@@ -14,7 +17,3 @@ declare global {
14
17
  }
15
18
  }
16
19
  }
17
- export * from "./ProtocolOptions";
18
- export * from "./IProtocol";
19
- export * from "./OnInstall";
20
- export * from "./OnVerify";
@@ -1,6 +1,7 @@
1
1
  import { PlatformContext } from "@tsed/common";
2
2
  import { InjectorService, Provider } from "@tsed/di";
3
3
  import { Strategy } from "passport";
4
+ import type { ProtocolMethods } from "../interfaces/ProtocolMethods";
4
5
  /**
5
6
  * @ignore
6
7
  */
@@ -14,7 +15,7 @@ export declare class ProtocolsService {
14
15
  * Invoke provider and bind it to passport.
15
16
  * @param provider
16
17
  */
17
- invoke(provider: Provider): any;
18
+ invoke(provider: Provider): Promise<ProtocolMethods<any> & Record<string, any>>;
18
19
  /**
19
20
  * Call authenticate passport method.
20
21
  * @param protocols
package/package.json CHANGED
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "name": "@tsed/passport",
3
- "version": "7.0.0-beta.1",
3
+ "version": "7.0.0-beta.12",
4
4
  "description": "Passport package for Ts.ED framework",
5
5
  "source": "./src/index.ts",
6
6
  "main": "./lib/cjs/index.js",
7
+ "module": "./lib/esm/index.js",
7
8
  "typings": "./lib/types/index.d.ts",
8
9
  "exports": {
9
10
  "types": "./lib/types/index.d.ts",
@@ -12,45 +13,47 @@
12
13
  "default": "./lib/esm/index.js"
13
14
  },
14
15
  "scripts": {
15
- "build": "yarn run build:esm && yarn run build:cjs",
16
+ "clean": "rm -rf lib",
17
+ "build": "yarn clean && yarn barrels && yarn run build:esm && yarn run build:cjs",
16
18
  "build:cjs": "tsc --build tsconfig.compile.json",
17
19
  "build:esm": "tsc --build tsconfig.compile.esm.json",
20
+ "barrels": "yarn barrelsby --delete -d ./src -e \"\\.spec\\.ts\" -e \"__mock__\" -e \".benchmark.ts\"",
21
+ "test": "cross-env NODE_ENV=test yarn jest --max-workers=2",
18
22
  "start": "ts-node src/index.ts"
19
23
  },
20
24
  "dependencies": {
21
- "tslib": "2.2.0"
25
+ "tslib": "2.3.1"
22
26
  },
23
27
  "devDependencies": {
24
- "@tsed/common": "7.0.0-beta.1",
25
- "@tsed/core": "7.0.0-beta.1",
26
- "@tsed/di": "7.0.0-beta.1",
27
- "@types/passport": "1.0.4",
28
- "@types/passport-http": "0.3.8",
28
+ "@tsed/common": "7.0.0-beta.12",
29
+ "@tsed/core": "7.0.0-beta.12",
30
+ "@tsed/di": "7.0.0-beta.12",
31
+ "@types/passport": "1.0.7",
32
+ "@types/passport-http": "0.3.9",
29
33
  "@types/passport-local": "1.0.34",
30
34
  "@types/passport-strategy": "0.2.35",
31
- "passport": "0.4.1",
35
+ "passport": "0.5.2",
32
36
  "passport-http": "0.3.0",
33
37
  "passport-local": "1.0.0",
34
38
  "passport-strategy": "1.0.0"
35
39
  },
36
40
  "peerDependencies": {
37
- "@tsed/common": "^7.0.0-beta.1",
38
- "@tsed/core": "^7.0.0-beta.1",
39
- "@tsed/di": "^7.0.0-beta.1",
40
- "@tsed/json-mapper": "^7.0.0-beta.1",
41
- "@tsed/logger": ">=6.0.0",
42
- "@tsed/openspec": "^7.0.0-beta.1",
43
- "@tsed/schema": "^7.0.0-beta.1",
44
- "passport": ">=0.4.1",
45
- "passport-http": ">=0.3.0",
46
- "passport-local": ">=1.0.0",
47
- "passport-strategy": ">=1.0.0"
41
+ "@tsed/common": "^7.0.0-beta.12",
42
+ "passport": ">=0.4.1"
43
+ },
44
+ "peerDependenciesMeta": {
45
+ "@tsed/common": {
46
+ "optional": false
47
+ }
48
48
  },
49
49
  "repository": "https://github.com/tsedio/tsed",
50
50
  "bugs": {
51
51
  "url": "https://github.com/tsedio/tsed/issues"
52
52
  },
53
- "homepage": "https://github.com/tsedio/tsed/tree/alpha/packages/security/passport",
53
+ "homepage": "https://github.com/tsedio/tsed/tree/beta/packages/security/passport",
54
54
  "author": "Romain Lenzotti",
55
- "license": "MIT"
55
+ "license": "MIT",
56
+ "publishConfig": {
57
+ "tag": "beta"
58
+ }
56
59
  }
package/readme.md CHANGED
@@ -11,7 +11,8 @@
11
11
  [![npm version](https://badge.fury.io/js/%40tsed%2Fcommon.svg)](https://badge.fury.io/js/%40tsed%2Fcommon)
12
12
  [![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
13
13
  [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
14
- [![backers](https://opencollective.com/tsed/tiers/badge.svg)](https://opencollective.com/tsed)
14
+ [![github](https://img.shields.io/static/v1?label=Github%20sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86)](https://github.com/sponsors/romakita)
15
+ [![opencollective](https://img.shields.io/static/v1?label=OpenCollective%20sponsor&message=%E2%9D%A4&logo=OpenCollective&color=%23fe8e86)](https://opencollective.com/tsed)
15
16
 
16
17
  </div>
17
18
 
@@ -32,6 +33,7 @@ A package of Ts.ED framework. See website: https://tsed.io/#/tutorials/passport
32
33
  ## Installation
33
34
 
34
35
  Run npm command (or yarn):
36
+
35
37
  ```bash
36
38
  npm install --save @tsed/passport passport
37
39
  npm install --save-dev @types/passport
@@ -40,18 +42,15 @@ npm install --save-dev @types/passport
40
42
  ## Configure your server
41
43
 
42
44
  Add this configuration to your server:
43
- ```typescript
44
- import {Configuration} from "@tsed/common"
45
45
 
46
- const rootDir = __dirname;
46
+ ```typescript
47
+ import {Configuration} from "@tsed/common";
47
48
 
48
49
  @Configuration({
49
50
  componentsScan: [
50
- `${rootDir}/protocols/*.ts` // scan protocols directory
51
+ `./protocols/*.ts` // scan protocols directory
51
52
  ],
52
- passport: {
53
-
54
- }
53
+ passport: {}
55
54
  })
56
55
  export class Server {}
57
56
  ```
@@ -61,19 +60,20 @@ export class Server {}
61
60
  A Protocol is a special Ts.ED service which is used to declare a Passport Strategy and handle Passport lifecycle.
62
61
 
63
62
  Here an example with the PassportLocal:
63
+
64
64
  ```typescript
65
65
  import {BodyParams, Req, Format, Required} from "@tsed/common";
66
66
  import {Strategy} from "passport-local";
67
67
  import {Unauthorized} from "@tsed/exceptions";
68
- import {Protocol, OnInstall, OnVerify} from "@tsed/passport";
68
+ import {Protocol, OnInstall, OnVerify} from "@tsed/passport";
69
69
  import {Inject} from "@tsed/di";
70
- import {UserService} from "../services/UserService"
70
+ import {UserService} from "../services/UserService";
71
71
 
72
72
  export class Credentials {
73
73
  @Required()
74
- @Format('email')
74
+ @Format("email")
75
75
  email: string;
76
-
76
+
77
77
  @Required()
78
78
  password: string;
79
79
  }
@@ -94,11 +94,11 @@ export class LocalProtocol implements OnVerify, OnInstall {
94
94
  const user = await this.userService.find(credentials);
95
95
 
96
96
  if (!user) {
97
- throw new Unauthorized("Unauthorized user")
97
+ throw new Unauthorized("Unauthorized user");
98
98
  }
99
-
100
- if(!user.verifyPassword()) {
101
- throw new Unauthorized("Unauthorized user")
99
+
100
+ if (!user.verifyPassword()) {
101
+ throw new Unauthorized("Unauthorized user");
102
102
  }
103
103
 
104
104
  return user;
@@ -135,18 +135,17 @@ This controller will provide required all endpoints which will be used by the di
135
135
  See our complete example on [Ts.ED passport repository](https://github.com/tsedio/tsed-example-passportjs).
136
136
 
137
137
  ## Contributors
138
+
138
139
  Please read [contributing guidelines here](https://tsed.io/CONTRIBUTING.html)
139
140
 
140
141
  <a href="https://github.com/tsedio/ts-express-decorators/graphs/contributors"><img src="https://opencollective.com/tsed/contributors.svg?width=890" /></a>
141
142
 
142
-
143
143
  ## Backers
144
144
 
145
145
  Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/tsed#backer)]
146
146
 
147
147
  <a href="https://opencollective.com/tsed#backers" target="_blank"><img src="https://opencollective.com/tsed/backers.svg?width=890"></a>
148
148
 
149
-
150
149
  ## Sponsors
151
150
 
152
151
  Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/tsed#sponsor)]