@loopback/boot 2.5.0 → 3.0.2

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 (55) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/dist/.sandbox/{58026FlgHaw → 13668CBQ78z}/application.js +0 -0
  3. package/dist/.sandbox/{58029mczoB7 → 13668CBQ78z}/repositories/multiple.repository.js +0 -0
  4. package/dist/.sandbox/{580277nSwfJ → 136691aYtyq}/application.js +0 -0
  5. package/dist/.sandbox/{58031Q7Xs6g → 136691aYtyq}/datasources/db.datasource.js +0 -0
  6. package/dist/.sandbox/{58030B0ZNx2 → 136699FaG5e}/multiple.artifact.js +0 -0
  7. package/dist/.sandbox/{58031KvvSIC → 13669PdIt5Y}/model-endpoints/no-entity.rest-config.js +0 -0
  8. package/dist/.sandbox/{58029CmUsUW → 13669PdIt5Y}/models/no-entity.model.js +0 -0
  9. package/dist/.sandbox/{58026gQ7aZw → 13670USa7kn}/model-endpoints/product.rest-config.js +0 -0
  10. package/dist/.sandbox/{58026gQ7aZw → 13670USa7kn}/models/product.model.js +0 -0
  11. package/dist/.sandbox/{58028IS6YTh → 13670oClkKr}/application.js +0 -0
  12. package/dist/.sandbox/{58026FlgHaw → 13670oClkKr}/interceptors/interceptor.interceptor.js +0 -0
  13. package/dist/.sandbox/{58026FlgHaw → 13670oClkKr}/interceptors/non-global-interceptor.interceptor.js +1 -1
  14. package/dist/.sandbox/{58029CmUsUW → 13671AwQ2Iw}/application.js +0 -0
  15. package/dist/.sandbox/{58025EBb7iS → 13671AwQ2Iw}/controllers/multiple.controller.js +0 -0
  16. package/dist/.sandbox/{58027AvH6ER → 13672i82tvx}/service-provider.artifact.js +0 -0
  17. package/dist/.sandbox/{58027et7Tgy → 13672pCFrGU}/datasource.artifact.js +0 -0
  18. package/dist/.sandbox/{58029EXbLaz → 13672qD6fhI}/application.js +0 -0
  19. package/dist/.sandbox/{58028IS6YTh → 13672qD6fhI}/controllers/multiple.controller.js +0 -0
  20. package/dist/.sandbox/{58025EBb7iS → 13672qD6fhI}/package.json +0 -0
  21. package/dist/.sandbox/{58030KbJWl2 → 13672rCNCix}/multiple.artifact.js +0 -0
  22. package/dist/.sandbox/{58029mczoB7 → 13673FDHNMv}/application.js +0 -0
  23. package/dist/.sandbox/{580277nSwfJ → 13673FDHNMv}/services/bindable-classes.service.js +32 -3
  24. package/dist/.sandbox/13673FDHNMv/services/date.service.js +15 -0
  25. package/dist/.sandbox/{580277nSwfJ → 13673FDHNMv}/services/geocoder.service.js +0 -0
  26. package/dist/.sandbox/{580277nSwfJ → 13673FDHNMv}/services/greeting.service.js +0 -0
  27. package/dist/.sandbox/{5803028n8fb → 13673InSeMJ}/application.js +0 -0
  28. package/dist/.sandbox/{58029CmUsUW → 13673InSeMJ}/models/multiple-models.model.js +0 -0
  29. package/dist/.sandbox/{58031KvvSIC → 13673InSeMJ}/models/no-entity.model.js +0 -0
  30. package/dist/.sandbox/{58029CmUsUW → 13673InSeMJ}/models/product.model.js +0 -0
  31. package/dist/.sandbox/{58031Q7Xs6g → 13673Tsw8CI}/application.js +0 -0
  32. package/dist/.sandbox/{58029EXbLaz → 13673Tsw8CI}/observers/lifecycle-observer.observer.js +0 -0
  33. package/dist/.sandbox/{58025EBb7iS → 13673jshTY0/dist}/application.js +0 -0
  34. package/dist/.sandbox/{58029CtOxbM → 13673jshTY0}/package.json +0 -0
  35. package/dist/.sandbox/{58029CtOxbM/dist → 13674RdtRZU}/application.js +0 -0
  36. package/dist/.sandbox/{5803028n8fb → 13674RdtRZU}/controllers/multiple.controller.js +0 -0
  37. package/dist/.sandbox/{5803028n8fb → 13674RdtRZU}/package.json +0 -0
  38. package/dist/booters/service.booter.js +8 -1
  39. package/dist/booters/service.booter.js.map +1 -1
  40. package/dist/bootstrapper.js +1 -1
  41. package/dist/bootstrapper.js.map +1 -1
  42. package/dist/keys.d.ts +4 -0
  43. package/dist/keys.js +4 -0
  44. package/dist/keys.js.map +1 -1
  45. package/dist/mixins/boot.mixin.d.ts +9 -4
  46. package/dist/mixins/boot.mixin.js +2 -3
  47. package/dist/mixins/boot.mixin.js.map +1 -1
  48. package/dist/types.js +7 -1
  49. package/dist/types.js.map +1 -1
  50. package/package.json +18 -15
  51. package/src/booters/service.booter.ts +10 -1
  52. package/src/bootstrapper.ts +1 -1
  53. package/src/keys.ts +4 -0
  54. package/src/mixins/boot.mixin.ts +1 -3
  55. package/src/types.ts +16 -4
package/CHANGELOG.md CHANGED
@@ -3,6 +3,56 @@
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
+ ## [3.0.2](https://github.com/strongloop/loopback-next/compare/@loopback/boot@3.0.1...@loopback/boot@3.0.2) (2020-10-07)
7
+
8
+ **Note:** Version bump only for package @loopback/boot
9
+
10
+
11
+
12
+
13
+
14
+ ## [3.0.1](https://github.com/strongloop/loopback-next/compare/@loopback/boot@3.0.0...@loopback/boot@3.0.1) (2020-09-17)
15
+
16
+ **Note:** Version bump only for package @loopback/boot
17
+
18
+
19
+
20
+
21
+
22
+ # [3.0.0](https://github.com/strongloop/loopback-next/compare/@loopback/boot@2.5.1...@loopback/boot@3.0.0) (2020-09-15)
23
+
24
+
25
+ ### Features
26
+
27
+ * allow dynamic value provider classes and classes with [@inject](https://github.com/inject) to be booted ([7b85cdf](https://github.com/strongloop/loopback-next/commit/7b85cdf63730ef659a4ee799f05f02eea8a1e3e8))
28
+ * move framework packages to `devDependencies` ([e2c61ce](https://github.com/strongloop/loopback-next/commit/e2c61ce79aa68d76f6e7138642034160b50063f0))
29
+ * **boot:** unify booter namespace to be `booters` ([c8bdfda](https://github.com/strongloop/loopback-next/commit/c8bdfda2abff4e57b9e95aaab0717f0581c5812b))
30
+
31
+
32
+ ### BREAKING CHANGES
33
+
34
+ * components no longer install core framework packages as
35
+ their own dependencies, they use the framework packages provided by the
36
+ target application instead.
37
+
38
+ If you are getting `npm install` errors after upgrade, then make sure
39
+ your project lists all dependencies required by the extensions you are
40
+ using.
41
+
42
+ Signed-off-by: Miroslav Bajtoš <mbajtoss@gmail.com>
43
+
44
+
45
+
46
+
47
+
48
+ ## [2.5.1](https://github.com/strongloop/loopback-next/compare/@loopback/boot@2.5.0...@loopback/boot@2.5.1) (2020-08-27)
49
+
50
+ **Note:** Version bump only for package @loopback/boot
51
+
52
+
53
+
54
+
55
+
6
56
  # [2.5.0](https://github.com/strongloop/loopback-next/compare/@loopback/boot@2.4.1...@loopback/boot@2.5.0) (2020-08-19)
7
57
 
8
58
 
@@ -44,7 +44,7 @@ let MyInterceptor = class MyInterceptor {
44
44
  }
45
45
  };
46
46
  MyInterceptor = tslib_1.__decorate([
47
- core_1.bind({ tags: { namespace: 'interceptors', name: 'myInterceptor' } })
47
+ core_1.injectable({ tags: { namespace: 'interceptors', name: 'myInterceptor' } })
48
48
  ], MyInterceptor);
49
49
  exports.MyInterceptor = MyInterceptor;
50
50
  //# sourceMappingURL=non-global-interceptor.artifact.js.map
@@ -4,7 +4,7 @@
4
4
  // This file is licensed under the MIT License.
5
5
  // License text available at https://opensource.org/licenses/MIT
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.NotBindableDateProvider = exports.NotBindableGreetingService = exports.DateProvider = exports.BindableGreetingService = void 0;
7
+ exports.ServiceWithMethodInject = exports.ServiceWithPropertyInject = exports.ServiceWithConstructorInject = exports.NotBindableDateProvider = exports.NotBindableGreetingService = exports.DateProvider = exports.BindableGreetingService = void 0;
8
8
  const tslib_1 = require("tslib");
9
9
  const core_1 = require("@loopback/core");
10
10
  let BindableGreetingService = class BindableGreetingService {
@@ -13,7 +13,7 @@ let BindableGreetingService = class BindableGreetingService {
13
13
  }
14
14
  };
15
15
  BindableGreetingService = tslib_1.__decorate([
16
- core_1.bind({
16
+ core_1.injectable({
17
17
  tags: { serviceType: 'local' },
18
18
  scope: core_1.BindingScope.SINGLETON,
19
19
  })
@@ -25,7 +25,7 @@ let DateProvider = class DateProvider {
25
25
  }
26
26
  };
27
27
  DateProvider = tslib_1.__decorate([
28
- core_1.bind({ tags: { serviceType: 'local', name: 'CurrentDate' } })
28
+ core_1.injectable({ tags: { serviceType: 'local', name: 'CurrentDate' } })
29
29
  ], DateProvider);
30
30
  exports.DateProvider = DateProvider;
31
31
  class NotBindableGreetingService {
@@ -40,5 +40,34 @@ class NotBindableDateProvider {
40
40
  }
41
41
  }
42
42
  exports.NotBindableDateProvider = NotBindableDateProvider;
43
+ let ServiceWithConstructorInject = class ServiceWithConstructorInject {
44
+ constructor(user) {
45
+ this.user = user;
46
+ }
47
+ };
48
+ ServiceWithConstructorInject = tslib_1.__decorate([
49
+ tslib_1.__param(0, core_1.inject('currentUser')),
50
+ tslib_1.__metadata("design:paramtypes", [String])
51
+ ], ServiceWithConstructorInject);
52
+ exports.ServiceWithConstructorInject = ServiceWithConstructorInject;
53
+ class ServiceWithPropertyInject {
54
+ }
55
+ tslib_1.__decorate([
56
+ core_1.inject('currentUser'),
57
+ tslib_1.__metadata("design:type", String)
58
+ ], ServiceWithPropertyInject.prototype, "user", void 0);
59
+ exports.ServiceWithPropertyInject = ServiceWithPropertyInject;
60
+ class ServiceWithMethodInject {
61
+ greet(user) {
62
+ return `Hello, ${user}`;
63
+ }
64
+ }
65
+ tslib_1.__decorate([
66
+ tslib_1.__param(0, core_1.inject('currentUser')),
67
+ tslib_1.__metadata("design:type", Function),
68
+ tslib_1.__metadata("design:paramtypes", [String]),
69
+ tslib_1.__metadata("design:returntype", void 0)
70
+ ], ServiceWithMethodInject.prototype, "greet", null);
71
+ exports.ServiceWithMethodInject = ServiceWithMethodInject;
43
72
  //# sourceMappingURL=bindable-classes.artifact.js.map
44
73
  //# sourceMappingURL=/Users/rfeng/Projects/loopback4/loopback-next/packages/boot/dist/__tests__/fixtures/bindable-classes.artifact.js.map
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ // Copyright IBM Corp. 2019. All Rights Reserved.
3
+ // Node module: @loopback/boot
4
+ // This file is licensed under the MIT License.
5
+ // License text available at https://opensource.org/licenses/MIT
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.DynamicDateProvider = void 0;
8
+ class DynamicDateProvider {
9
+ static value() {
10
+ return new Date();
11
+ }
12
+ }
13
+ exports.DynamicDateProvider = DynamicDateProvider;
14
+ //# sourceMappingURL=service-dynamic-value-provider.artifact.js.map
15
+ //# sourceMappingURL=/Users/rfeng/Projects/loopback4/loopback-next/packages/boot/dist/__tests__/fixtures/service-dynamic-value-provider.artifact.js.map
@@ -70,11 +70,18 @@ function isBindableClass(cls) {
70
70
  if (core_1.MetadataInspector.getClassMetadata(core_1.BINDING_METADATA_KEY, cls)) {
71
71
  return true;
72
72
  }
73
+ if (core_1.hasInjections(cls)) {
74
+ return true;
75
+ }
73
76
  if (isServiceProvider(cls)) {
74
77
  debug('Provider class found: %s', cls.name);
75
78
  return true;
76
79
  }
77
- debug('Skip class not decorated with @bind: %s', cls.name);
80
+ if (core_1.isDynamicValueProviderClass(cls)) {
81
+ debug('Dynamic value provider class found: %s', cls.name);
82
+ return true;
83
+ }
84
+ debug('Skip class not decorated with @injectable: %s', cls.name);
78
85
  return false;
79
86
  }
80
87
  //# sourceMappingURL=service.booter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.booter.js","sourceRoot":"","sources":["../../src/booters/service.booter.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,yCAOwB;AAExB,0DAAiC;AACjC,kCAAqC;AACrC,oCAAiD;AACjD,iEAA0D;AAE1D,MAAM,KAAK,GAAG,eAAY,CAAC,8BAA8B,CAAC,CAAC;AAE3D;;;;;;;;;GASG;AAEH,IAAa,aAAa,GAA1B,MAAa,aAAc,SAAQ,yCAAkB;IACnD,YAES,GAA4B,EACA,WAAmB,EAE/C,gBAAiC,EAAE;QAE1C,KAAK,CACH,WAAW;QACX,yDAAyD;QACzD,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,uBAAe,EAAE,aAAa,CAAC,CAClD,CAAC;QATK,QAAG,GAAH,GAAG,CAAyB;QAG5B,kBAAa,GAAb,aAAa,CAAsB;IAO5C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QAEnB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE;YAC9B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;gBAAE,SAAS;YAEpC,KAAK,CAAC,gBAAgB,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACtC,KAAK,CAAC,+BAA+B,EAAE,OAAO,CAAC,CAAC;SACjD;IACH,CAAC;CACF,CAAA;AA9BY,aAAa;IADzB,cAAM,CAAC,UAAU,CAAC;IAGd,mBAAA,aAAM,CAAC,mBAAY,CAAC,oBAAoB,CAAC,CAAA;IAEzC,mBAAA,aAAM,CAAC,mBAAY,CAAC,YAAY,CAAC,CAAA;IACjC,mBAAA,aAAM,EAAE,CAAA;;GALA,aAAa,CA8BzB;AA9BY,sCAAa;AAgC1B;;GAEG;AACU,QAAA,eAAe,GAAoB;IAC9C,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,UAAU,EAAE,CAAC,aAAa,CAAC;IAC3B,MAAM,EAAE,IAAI;CACb,CAAC;AAEF,SAAS,iBAAiB,CAAC,GAAyB;IAClD,MAAM,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,cAAc,GAAG,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,KAAK,UAAU,CAAC;IACjE,OAAO,gBAAgB,IAAI,cAAc,CAAC;AAC5C,CAAC;AAED,SAAS,eAAe,CAAC,GAAyB;IAChD,IAAI,wBAAiB,CAAC,gBAAgB,CAAC,2BAAoB,EAAE,GAAG,CAAC,EAAE;QACjE,OAAO,IAAI,CAAC;KACb;IACD,IAAI,iBAAiB,CAAC,GAAG,CAAC,EAAE;QAC1B,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;KACb;IACD,KAAK,CAAC,yCAAyC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3D,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"service.booter.js","sourceRoot":"","sources":["../../src/booters/service.booter.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,yCASwB;AAExB,0DAAiC;AACjC,kCAAqC;AACrC,oCAAiD;AACjD,iEAA0D;AAE1D,MAAM,KAAK,GAAG,eAAY,CAAC,8BAA8B,CAAC,CAAC;AAE3D;;;;;;;;;GASG;AAEH,IAAa,aAAa,GAA1B,MAAa,aAAc,SAAQ,yCAAkB;IACnD,YAES,GAA4B,EACA,WAAmB,EAE/C,gBAAiC,EAAE;QAE1C,KAAK,CACH,WAAW;QACX,yDAAyD;QACzD,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,uBAAe,EAAE,aAAa,CAAC,CAClD,CAAC;QATK,QAAG,GAAH,GAAG,CAAyB;QAG5B,kBAAa,GAAb,aAAa,CAAsB;IAO5C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QAEnB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE;YAC9B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;gBAAE,SAAS;YAEpC,KAAK,CAAC,gBAAgB,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACtC,KAAK,CAAC,+BAA+B,EAAE,OAAO,CAAC,CAAC;SACjD;IACH,CAAC;CACF,CAAA;AA9BY,aAAa;IADzB,cAAM,CAAC,UAAU,CAAC;IAGd,mBAAA,aAAM,CAAC,mBAAY,CAAC,oBAAoB,CAAC,CAAA;IAEzC,mBAAA,aAAM,CAAC,mBAAY,CAAC,YAAY,CAAC,CAAA;IACjC,mBAAA,aAAM,EAAE,CAAA;;GALA,aAAa,CA8BzB;AA9BY,sCAAa;AAgC1B;;GAEG;AACU,QAAA,eAAe,GAAoB;IAC9C,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,UAAU,EAAE,CAAC,aAAa,CAAC;IAC3B,MAAM,EAAE,IAAI;CACb,CAAC;AAEF,SAAS,iBAAiB,CAAC,GAAyB;IAClD,MAAM,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,cAAc,GAAG,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,KAAK,UAAU,CAAC;IACjE,OAAO,gBAAgB,IAAI,cAAc,CAAC;AAC5C,CAAC;AAED,SAAS,eAAe,CAAC,GAAyB;IAChD,IAAI,wBAAiB,CAAC,gBAAgB,CAAC,2BAAoB,EAAE,GAAG,CAAC,EAAE;QACjE,OAAO,IAAI,CAAC;KACb;IACD,IAAI,oBAAa,CAAC,GAAG,CAAC,EAAE;QACtB,OAAO,IAAI,CAAC;KACb;IACD,IAAI,iBAAiB,CAAC,GAAG,CAAC,EAAE;QAC1B,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;KACb;IACD,IAAI,kCAA2B,CAAC,GAAG,CAAC,EAAE;QACpC,KAAK,CAAC,wCAAwC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC;KACb;IACD,KAAK,CAAC,+CAA+C,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IACjE,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -64,7 +64,7 @@ let Bootstrapper = class Bootstrapper {
64
64
  // Find booters registered to the BOOTERS_TAG by getting the bindings
65
65
  const bindings = bootCtx.findByTag(keys_1.BootTags.BOOTER);
66
66
  // Prefix length. +1 because of `.` => 'booters.'
67
- const prefixLength = keys_1.BootBindings.BOOTER_PREFIX.length + 1;
67
+ const prefixLength = keys_1.BootBindings.BOOTERS.length + 1;
68
68
  // Names of all registered booters.
69
69
  const defaultBooterNames = bindings.map(binding => binding.key.slice(prefixLength));
70
70
  // Determining the booters to be run. If a user set a booters filter (class
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrapper.js","sourceRoot":"","sources":["../src/bootstrapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootstrapper.js","sourceRoot":"","sources":["../src/bootstrapper.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,yCAMwB;AACxB,0DAAgC;AAChC,+BAA6B;AAC7B,iCAA8C;AAC9C,qCAAoC;AACpC,mCAKiB;AAEjB,MAAM,KAAK,GAAG,eAAW,CAAC,4BAA4B,CAAC,CAAC;AAExD;;;;;;;;;;GAUG;AACH,IAAa,YAAY,GAAzB,MAAa,YAAY;IACvB,YAEU,GAA2B,EACQ,WAAmB,EAEtD,cAA2B,EAAE;QAH7B,QAAG,GAAH,GAAG,CAAwB;QACQ,gBAAW,GAAX,WAAW,CAAQ;QAEtD,gBAAW,GAAX,WAAW,CAAkB;QAErC,0CAA0C;QAC1C,IAAI,CAAC,WAAW,GAAG,cAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7C,GAAG,CAAC,IAAI,CAAC,mBAAY,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEzD,+EAA+E;QAC/E,mDAAmD;QACnD,GAAG,CAAC,IAAI,CAAC,mBAAY,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,IAAI,CACR,WAAkC,EAClC,GAAa;;QAEb,MAAM,OAAO,GAAG,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,IAAI,cAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE7C,kDAAkD;QAClD,iEAAiE;QACjE,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,EAAE;YACxB,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,mBAAU,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;SACrE;QAED,uEAAuE;QACvE,oEAAoE;QACpE,MAAM,MAAM,eAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,0CAAE,MAAM,mCAAI,qBAAa,CAAC;QAE5D,qEAAqE;QACrE,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,eAAQ,CAAC,MAAM,CAAC,CAAC;QAEpD,iDAAiD;QACjD,MAAM,YAAY,GAAG,mBAAY,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QAErD,mCAAmC;QACnC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAChC,CAAC;QAEF,2EAA2E;QAC3E,wEAAwE;QACxE,4CAA4C;QAC5C,MAAM,KAAK,GAAG,WAAW;YACvB,CAAC,CAAC,OAAA,WAAW,CAAC,MAAM,0CAAE,OAAO,EAC3B,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO;gBAC5B,CAAC,CAAC,kBAAkB;YACtB,CAAC,CAAC,kBAAkB,CAAC;QAEvB,2BAA2B;QAC3B,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CACjD,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAChD,CAAC;QAEF,2BAA2B;QAC3B,MAAM,WAAW,GAAG,MAAM,kBAAW,CAAC,gBAAgB,EAAE,OAAO,CAAC,EAAE;QAChE,+DAA+D;QAC/D,8DAA8D;QAC9D,sBAAsB;QACtB,OAAO,CAAC,GAAG,CAAyC,OAAO,CAAC,GAAG,CAAC,CACjE,CAAC;QAEF,wBAAwB;QACxB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE;gBAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;gBACvC,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;oBACf,KAAK,CAAC,GAAG,QAAQ,WAAW,KAAK,YAAY,CAAC,CAAC;oBAC/C,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBACpB,KAAK,CAAC,GAAG,QAAQ,WAAW,KAAK,YAAY,CAAC,CAAC;iBAChD;qBAAM;oBACL,KAAK,CAAC,GAAG,QAAQ,WAAW,KAAK,mBAAmB,CAAC,CAAC;iBACvD;aACF;SACF;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAA;AAhGY,YAAY;IAEpB,mBAAA,aAAM,CAAC,mBAAY,CAAC,oBAAoB,CAAC,CAAA;IAEzC,mBAAA,aAAM,CAAC,mBAAY,CAAC,YAAY,CAAC,CAAA;IACjC,mBAAA,aAAM,CAAC,mBAAY,CAAC,YAAY,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAA;;GAL3C,YAAY,CAgGxB;AAhGY,oCAAY"}
package/dist/keys.d.ts CHANGED
@@ -17,6 +17,10 @@ export declare namespace BootBindings {
17
17
  * Binding key for binding the BootStrapper class
18
18
  */
19
19
  const BOOTSTRAPPER_KEY: BindingKey<Bootstrapper>;
20
+ /**
21
+ * Booter binding namespace
22
+ */
23
+ const BOOTERS = "booters";
20
24
  const BOOTER_PREFIX = "booters";
21
25
  }
22
26
  /**
package/dist/keys.js CHANGED
@@ -23,6 +23,10 @@ var BootBindings;
23
23
  * Binding key for binding the BootStrapper class
24
24
  */
25
25
  BootBindings.BOOTSTRAPPER_KEY = core_1.BindingKey.create('application.bootstrapper');
26
+ /**
27
+ * Booter binding namespace
28
+ */
29
+ BootBindings.BOOTERS = 'booters';
26
30
  BootBindings.BOOTER_PREFIX = 'booters';
27
31
  })(BootBindings = exports.BootBindings || (exports.BootBindings = {}));
28
32
  /**
package/dist/keys.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"keys.js","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;AAEhE,yCAA0C;AAI1C;;GAEG;AACH,IAAiB,YAAY,CAkB5B;AAlBD,WAAiB,YAAY;IAC3B;;OAEG;IACU,yBAAY,GAAG,iBAAU,CAAC,MAAM,CAAc,cAAc,CAAC,CAAC;IAC3E;;OAEG;IACU,yBAAY,GAAG,iBAAU,CAAC,MAAM,CAAS,mBAAmB,CAAC,CAAC;IAE3E;;OAEG;IACU,6BAAgB,GAAG,iBAAU,CAAC,MAAM,CAC/C,0BAA0B,CAC3B,CAAC;IAEW,0BAAa,GAAG,SAAS,CAAC;AACzC,CAAC,EAlBgB,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAkB5B;AAED;;GAEG;AACH,IAAiB,QAAQ,CAMxB;AAND,WAAiB,QAAQ;IACV,eAAM,GAAG,QAAQ,CAAC;IAC/B;;OAEG;IACU,mBAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC5C,CAAC,EANgB,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAMxB"}
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;AAEhE,yCAA0C;AAI1C;;GAEG;AACH,IAAiB,YAAY,CAsB5B;AAtBD,WAAiB,YAAY;IAC3B;;OAEG;IACU,yBAAY,GAAG,iBAAU,CAAC,MAAM,CAAc,cAAc,CAAC,CAAC;IAC3E;;OAEG;IACU,yBAAY,GAAG,iBAAU,CAAC,MAAM,CAAS,mBAAmB,CAAC,CAAC;IAE3E;;OAEG;IACU,6BAAgB,GAAG,iBAAU,CAAC,MAAM,CAC/C,0BAA0B,CAC3B,CAAC;IAEF;;OAEG;IACU,oBAAO,GAAG,SAAS,CAAC;IACpB,0BAAa,GAAG,SAAS,CAAC;AACzC,CAAC,EAtBgB,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAsB5B;AAED;;GAEG;AACH,IAAiB,QAAQ,CAMxB;AAND,WAAiB,QAAQ;IACV,eAAM,GAAG,QAAQ,CAAC;IAC/B;;OAEG;IACU,mBAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC5C,CAAC,EANgB,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAMxB"}
@@ -1,5 +1,4 @@
1
- import { Binding, BindingFilter, BindingFromClassOptions, Constructor, Context } from '@loopback/core';
2
- import { Application, Component, MixinTarget } from '@loopback/core';
1
+ import { Binding, BindingFilter, BindingFromClassOptions, BindingScope, Constructor, Context, Application, Component, MixinTarget } from '@loopback/core';
3
2
  import { Bootable, Booter, BootOptions, InstanceWithBooters } from '../types';
4
3
  import * as loopbackContext from '@loopback/core';
5
4
  export { Binding };
@@ -88,13 +87,16 @@ export declare function BootMixin<T extends MixinTarget<Application>>(superClass
88
87
  server: <T_2 extends loopbackContext.Server>(ctor: Constructor<T_2>, nameOrOptions?: string | BindingFromClassOptions | undefined) => Binding<T_2>;
89
88
  servers: <T_3 extends loopbackContext.Server>(ctors: Constructor<T_3>[]) => Binding<any>[];
90
89
  getServer: <T_4 extends loopbackContext.Server>(target: string | Constructor<T_4>) => Promise<T_4>;
90
+ onStart: (fn: () => void | PromiseLike<void>) => Binding<loopbackContext.LifeCycleObserver>;
91
91
  stop: () => Promise<void>;
92
+ onStop: (fn: () => void | PromiseLike<void>) => Binding<loopbackContext.LifeCycleObserver>;
92
93
  setMetadata: (metadata: loopbackContext.ApplicationMetadata) => void;
93
94
  lifeCycleObserver: <T_5 extends loopbackContext.LifeCycleObserver>(ctor: Constructor<T_5>, nameOrOptions?: string | BindingFromClassOptions | undefined) => Binding<T_5>;
94
- service: <S>(cls: Constructor<S | loopbackContext.Provider<S>>, nameOrOptions?: string | loopbackContext.ServiceOptions | undefined) => Binding<S>;
95
+ service: <S>(cls: loopbackContext.ServiceOrProviderClass<S>, nameOrOptions?: string | loopbackContext.ServiceOptions | undefined) => Binding<S>;
95
96
  interceptor: (interceptor: loopbackContext.Interceptor | Constructor<loopbackContext.Provider<loopbackContext.Interceptor>>, nameOrOptions?: string | loopbackContext.InterceptorBindingOptions | undefined) => Binding<loopbackContext.Interceptor>;
96
97
  readonly name: string;
97
98
  readonly subscriptionManager: loopbackContext.ContextSubscriptionManager;
99
+ scope: BindingScope;
98
100
  readonly parent: Context | undefined;
99
101
  emitEvent: <T_6 extends loopbackContext.ContextEvent>(type: string, event: T_6) => void;
100
102
  emitError: (err: unknown) => void;
@@ -112,7 +114,10 @@ export declare function BootMixin<T extends MixinTarget<Application>>(superClass
112
114
  createView: <T_7 = unknown>(filter: BindingFilter, comparator?: loopbackContext.BindingComparator | undefined) => loopbackContext.ContextView<T_7>;
113
115
  contains: (key: loopbackContext.BindingAddress<unknown>) => boolean;
114
116
  isBound: (key: loopbackContext.BindingAddress<unknown>) => boolean;
115
- getOwnerContext: (key: loopbackContext.BindingAddress<unknown>) => Context | undefined;
117
+ getOwnerContext: (keyOrBinding: string | Readonly<Binding<unknown>> | loopbackContext.BindingKey<unknown>) => Context | undefined;
118
+ getScopedContext: (scope: BindingScope.APPLICATION | BindingScope.SERVER | BindingScope.REQUEST) => Context | undefined;
119
+ getResolutionContext: (binding: Readonly<Binding<unknown>>) => Context | undefined;
120
+ isVisibleTo: (ctx: Context) => boolean;
116
121
  find: <ValueType_1 = any>(pattern?: string | RegExp | BindingFilter | undefined) => Readonly<Binding<ValueType_1>>[];
117
122
  findByTag: <ValueType_2 = any>(tagFilter: string | RegExp | Record<string, any>) => Readonly<Binding<ValueType_2>>[];
118
123
  get: {
@@ -7,7 +7,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports._bindBooter = exports.bindBooter = exports.BootMixin = exports.Binding = void 0;
8
8
  const core_1 = require("@loopback/core");
9
9
  Object.defineProperty(exports, "Binding", { enumerable: true, get: function () { return core_1.Binding; } });
10
- const core_2 = require("@loopback/core");
11
10
  const boot_component_1 = require("../boot.component");
12
11
  const component_application_booter_1 = require("../booters/component-application.booter");
13
12
  const keys_1 = require("../keys");
@@ -157,7 +156,7 @@ function BootMixin(superClass) {
157
156
  }
158
157
  // TODO(semver-major) @bajtos: Reminder to remove this on the next major release
159
158
  const componentName = componentInstanceOrClass.name;
160
- const componentKey = `${core_2.CoreBindings.COMPONENTS}.${componentName}`;
159
+ const componentKey = `${core_1.CoreBindings.COMPONENTS}.${componentName}`;
161
160
  return ctx.getSync(componentKey);
162
161
  }
163
162
  }
@@ -173,7 +172,7 @@ exports.BootMixin = BootMixin;
173
172
  */
174
173
  function bindBooter(ctx, booterCls) {
175
174
  const binding = core_1.createBindingFromClass(booterCls, {
176
- namespace: keys_1.BootBindings.BOOTER_PREFIX,
175
+ namespace: keys_1.BootBindings.BOOTERS,
177
176
  defaultScope: core_1.BindingScope.SINGLETON,
178
177
  }).tag(keys_1.BootTags.BOOTER);
179
178
  ctx.add(binding);
@@ -1 +1 @@
1
- {"version":3,"file":"boot.mixin.js","sourceRoot":"","sources":["../../src/mixins/boot.mixin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"boot.mixin.js","sourceRoot":"","sources":["../../src/mixins/boot.mixin.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -39,7 +39,13 @@ exports.BOOTER_PHASES = ['configure', 'discover', 'load'];
39
39
  * @param specs - Extra specs for the binding
40
40
  */
41
41
  function booter(artifactNamespace, ...specs) {
42
- return core_1.bind({ tags: { artifactNamespace, [keys_1.BootTags.BOOTER]: keys_1.BootTags.BOOTER } }, ...specs);
42
+ return core_1.injectable({
43
+ tags: {
44
+ artifactNamespace,
45
+ [keys_1.BootTags.BOOTER]: keys_1.BootTags.BOOTER,
46
+ [core_1.ContextTags.NAMESPACE]: keys_1.BootBindings.BOOTERS,
47
+ },
48
+ }, ...specs);
43
49
  }
44
50
  exports.booter = booter;
45
51
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;AAEhE,yCAAuE;AACvE,iCAAgC;AAoDhC;;;GAGG;AACU,QAAA,aAAa,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AAmE/D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,SAAgB,MAAM,CAAC,iBAAyB,EAAE,GAAG,KAAoB;IACvE,OAAO,WAAI,CACT,EAAC,IAAI,EAAE,EAAC,iBAAiB,EAAE,CAAC,eAAQ,CAAC,MAAM,CAAC,EAAE,eAAQ,CAAC,MAAM,EAAC,EAAC,EAC/D,GAAG,KAAK,CACT,CAAC;AACJ,CAAC;AALD,wBAKC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;AAEhE,yCAMwB;AACxB,iCAA8C;AAoD9C;;;GAGG;AACU,QAAA,aAAa,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AAmE/D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,SAAgB,MAAM,CAAC,iBAAyB,EAAE,GAAG,KAAoB;IACvE,OAAO,iBAAU,CACf;QACE,IAAI,EAAE;YACJ,iBAAiB;YACjB,CAAC,eAAQ,CAAC,MAAM,CAAC,EAAE,eAAQ,CAAC,MAAM;YAClC,CAAC,kBAAW,CAAC,SAAS,CAAC,EAAE,mBAAY,CAAC,OAAO;SAC9C;KACF,EACD,GAAG,KAAK,CACT,CAAC;AACJ,CAAC;AAXD,wBAWC"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@loopback/boot",
3
- "version": "2.5.0",
3
+ "version": "3.0.2",
4
4
  "description": "A collection of Booters for LoopBack 4 Applications",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "engines": {
8
- "node": ">=10.16"
8
+ "node": "^10.16 || 12 || 14"
9
9
  },
10
10
  "scripts": {
11
11
  "acceptance": "lb-mocha \"dist/__tests__/acceptance/**/*.js\"",
@@ -23,24 +23,27 @@
23
23
  "publishConfig": {
24
24
  "access": "public"
25
25
  },
26
+ "peerDependencies": {
27
+ "@loopback/core": "^2.11.0"
28
+ },
26
29
  "dependencies": {
27
- "@loopback/core": "^2.9.4",
28
- "@loopback/model-api-builder": "^2.1.12",
29
- "@loopback/repository": "^2.11.1",
30
- "@loopback/service-proxy": "^2.3.7",
30
+ "@loopback/model-api-builder": "^2.1.16",
31
+ "@loopback/repository": "^3.1.0",
32
+ "@loopback/service-proxy": "^3.0.2",
31
33
  "@types/debug": "^4.1.5",
32
34
  "@types/glob": "^7.1.3",
33
- "debug": "^4.1.1",
35
+ "debug": "^4.2.0",
34
36
  "glob": "^7.1.6",
35
- "tslib": "^2.0.1"
37
+ "tslib": "^2.0.2"
36
38
  },
37
39
  "devDependencies": {
38
- "@loopback/build": "^6.2.1",
39
- "@loopback/eslint-config": "^9.0.1",
40
- "@loopback/rest": "^6.1.0",
41
- "@loopback/rest-crud": "^0.8.12",
42
- "@loopback/testlab": "^3.2.3",
43
- "@types/node": "^10.17.28"
40
+ "@loopback/build": "^6.2.5",
41
+ "@loopback/core": "^2.11.0",
42
+ "@loopback/eslint-config": "^10.0.1",
43
+ "@loopback/rest": "^8.0.0",
44
+ "@loopback/rest-crud": "^0.8.16",
45
+ "@loopback/testlab": "^3.2.7",
46
+ "@types/node": "^10.17.35"
44
47
  },
45
48
  "files": [
46
49
  "README.md",
@@ -53,5 +56,5 @@
53
56
  "url": "https://github.com/strongloop/loopback-next.git",
54
57
  "directory": "packages/boot"
55
58
  },
56
- "gitHead": "a056555744367da9caccb6be64095e27d2fe2e28"
59
+ "gitHead": "390f2794d10eea3d969ae417963af815ce1bc417"
57
60
  }
@@ -8,7 +8,9 @@ import {
8
8
  config,
9
9
  Constructor,
10
10
  CoreBindings,
11
+ hasInjections,
11
12
  inject,
13
+ isDynamicValueProviderClass,
12
14
  MetadataInspector,
13
15
  } from '@loopback/core';
14
16
  import {ApplicationWithServices} from '@loopback/service-proxy';
@@ -81,10 +83,17 @@ function isBindableClass(cls: Constructor<unknown>) {
81
83
  if (MetadataInspector.getClassMetadata(BINDING_METADATA_KEY, cls)) {
82
84
  return true;
83
85
  }
86
+ if (hasInjections(cls)) {
87
+ return true;
88
+ }
84
89
  if (isServiceProvider(cls)) {
85
90
  debug('Provider class found: %s', cls.name);
86
91
  return true;
87
92
  }
88
- debug('Skip class not decorated with @bind: %s', cls.name);
93
+ if (isDynamicValueProviderClass(cls)) {
94
+ debug('Dynamic value provider class found: %s', cls.name);
95
+ return true;
96
+ }
97
+ debug('Skip class not decorated with @injectable: %s', cls.name);
89
98
  return false;
90
99
  }
@@ -85,7 +85,7 @@ export class Bootstrapper {
85
85
  const bindings = bootCtx.findByTag(BootTags.BOOTER);
86
86
 
87
87
  // Prefix length. +1 because of `.` => 'booters.'
88
- const prefixLength = BootBindings.BOOTER_PREFIX.length + 1;
88
+ const prefixLength = BootBindings.BOOTERS.length + 1;
89
89
 
90
90
  // Names of all registered booters.
91
91
  const defaultBooterNames = bindings.map(binding =>
package/src/keys.ts CHANGED
@@ -27,6 +27,10 @@ export namespace BootBindings {
27
27
  'application.bootstrapper',
28
28
  );
29
29
 
30
+ /**
31
+ * Booter binding namespace
32
+ */
33
+ export const BOOTERS = 'booters';
30
34
  export const BOOTER_PREFIX = 'booters';
31
35
  }
32
36
 
@@ -11,8 +11,6 @@ import {
11
11
  Constructor,
12
12
  Context,
13
13
  createBindingFromClass,
14
- } from '@loopback/core';
15
- import {
16
14
  Application,
17
15
  Component,
18
16
  CoreBindings,
@@ -235,7 +233,7 @@ export function bindBooter(
235
233
  booterCls: Constructor<Booter>,
236
234
  ): Binding {
237
235
  const binding = createBindingFromClass(booterCls, {
238
- namespace: BootBindings.BOOTER_PREFIX,
236
+ namespace: BootBindings.BOOTERS,
239
237
  defaultScope: BindingScope.SINGLETON,
240
238
  }).tag(BootTags.BOOTER);
241
239
  ctx.add(binding);
package/src/types.ts CHANGED
@@ -3,8 +3,14 @@
3
3
  // This file is licensed under the MIT License.
4
4
  // License text available at https://opensource.org/licenses/MIT
5
5
 
6
- import {bind, Binding, BindingSpec, Constructor} from '@loopback/core';
7
- import {BootTags} from './keys';
6
+ import {
7
+ Binding,
8
+ BindingSpec,
9
+ Constructor,
10
+ ContextTags,
11
+ injectable,
12
+ } from '@loopback/core';
13
+ import {BootBindings, BootTags} from './keys';
8
14
 
9
15
  /**
10
16
  * Type definition for ArtifactOptions. These are the options supported by
@@ -154,8 +160,14 @@ export interface Bootable {
154
160
  * @param specs - Extra specs for the binding
155
161
  */
156
162
  export function booter(artifactNamespace: string, ...specs: BindingSpec[]) {
157
- return bind(
158
- {tags: {artifactNamespace, [BootTags.BOOTER]: BootTags.BOOTER}},
163
+ return injectable(
164
+ {
165
+ tags: {
166
+ artifactNamespace,
167
+ [BootTags.BOOTER]: BootTags.BOOTER,
168
+ [ContextTags.NAMESPACE]: BootBindings.BOOTERS,
169
+ },
170
+ },
159
171
  ...specs,
160
172
  );
161
173
  }