inversify 5.1.0 → 5.1.1
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.
- package/.nyc_output/{9608da81-ca67-4100-9d7e-60d47b391c2b.json → 4df1ad3a-a319-42b9-bb65-746cefa3318e.json} +1 -1
- package/.nyc_output/processinfo/{9608da81-ca67-4100-9d7e-60d47b391c2b.json → 4df1ad3a-a319-42b9-bb65-746cefa3318e.json} +1 -1
- package/.nyc_output/processinfo/index.json +1 -1
- package/CHANGELOG.md +4 -1
- package/amd/annotation/decorator_utils.js +60 -0
- package/amd/annotation/decorator_utils.js.map +1 -0
- package/amd/annotation/inject.js +31 -0
- package/amd/annotation/inject.js.map +1 -0
- package/amd/annotation/injectable.js +17 -0
- package/amd/annotation/injectable.js.map +1 -0
- package/amd/annotation/multi_inject.js +18 -0
- package/amd/annotation/multi_inject.js.map +1 -0
- package/amd/annotation/named.js +18 -0
- package/amd/annotation/named.js.map +1 -0
- package/amd/annotation/optional.js +18 -0
- package/amd/annotation/optional.js.map +1 -0
- package/amd/annotation/post_construct.js +16 -0
- package/amd/annotation/post_construct.js.map +1 -0
- package/amd/annotation/tagged.js +18 -0
- package/amd/annotation/tagged.js.map +1 -0
- package/amd/annotation/target_name.js +13 -0
- package/amd/annotation/target_name.js.map +1 -0
- package/amd/annotation/unmanaged.js +13 -0
- package/amd/annotation/unmanaged.js.map +1 -0
- package/amd/bindings/binding.js +38 -0
- package/amd/bindings/binding.js.map +1 -0
- package/amd/bindings/binding_count.js +12 -0
- package/amd/bindings/binding_count.js.map +1 -0
- package/amd/constants/error_msgs.js +68 -0
- package/amd/constants/error_msgs.js.map +1 -0
- package/amd/constants/literal_types.js +29 -0
- package/amd/constants/literal_types.js.map +1 -0
- package/amd/constants/metadata_keys.js +28 -0
- package/amd/constants/metadata_keys.js.map +1 -0
- package/amd/container/container.js +332 -0
- package/amd/container/container.js.map +1 -0
- package/amd/container/container_module.js +22 -0
- package/amd/container/container_module.js.map +1 -0
- package/amd/container/container_snapshot.js +18 -0
- package/amd/container/container_snapshot.js.map +1 -0
- package/amd/container/lookup.js +82 -0
- package/amd/container/lookup.js.map +1 -0
- package/amd/interfaces/interfaces.js +5 -0
- package/amd/interfaces/interfaces.js.map +1 -0
- package/amd/inversify.js +32 -0
- package/amd/inversify.js.map +1 -0
- package/amd/planning/context.js +20 -0
- package/amd/planning/context.js.map +1 -0
- package/amd/planning/metadata.js +22 -0
- package/amd/planning/metadata.js.map +1 -0
- package/amd/planning/metadata_reader.js +24 -0
- package/amd/planning/metadata_reader.js.map +1 -0
- package/amd/planning/plan.js +14 -0
- package/amd/planning/plan.js.map +1 -0
- package/amd/planning/planner.js +147 -0
- package/amd/planning/planner.js.map +1 -0
- package/amd/planning/queryable_string.js +31 -0
- package/amd/planning/queryable_string.js.map +1 -0
- package/amd/planning/reflection_utils.js +128 -0
- package/amd/planning/reflection_utils.js.map +1 -0
- package/amd/planning/request.js +27 -0
- package/amd/planning/request.js.map +1 -0
- package/amd/planning/target.js +80 -0
- package/amd/planning/target.js.map +1 -0
- package/amd/resolution/instantiation.js +56 -0
- package/amd/resolution/instantiation.js.map +1 -0
- package/amd/resolution/resolver.js +99 -0
- package/amd/resolution/resolver.js.map +1 -0
- package/amd/syntax/binding_in_syntax.js +25 -0
- package/amd/syntax/binding_in_syntax.js.map +1 -0
- package/amd/syntax/binding_in_when_on_syntax.js +73 -0
- package/amd/syntax/binding_in_when_on_syntax.js.map +1 -0
- package/amd/syntax/binding_on_syntax.js +17 -0
- package/amd/syntax/binding_on_syntax.js.map +1 -0
- package/amd/syntax/binding_to_syntax.js +79 -0
- package/amd/syntax/binding_to_syntax.js.map +1 -0
- package/amd/syntax/binding_when_on_syntax.js +63 -0
- package/amd/syntax/binding_when_on_syntax.js.map +1 -0
- package/amd/syntax/binding_when_syntax.js +100 -0
- package/amd/syntax/binding_when_syntax.js.map +1 -0
- package/amd/syntax/constraint_helpers.js +42 -0
- package/amd/syntax/constraint_helpers.js.map +1 -0
- package/amd/utils/binding_utils.js +18 -0
- package/amd/utils/binding_utils.js.map +1 -0
- package/amd/utils/exceptions.js +11 -0
- package/amd/utils/exceptions.js.map +1 -0
- package/amd/utils/id.js +11 -0
- package/amd/utils/id.js.map +1 -0
- package/amd/utils/serialization.js +106 -0
- package/amd/utils/serialization.js.map +1 -0
- package/es/annotation/decorator_utils.js +55 -0
- package/es/annotation/decorator_utils.js.map +1 -0
- package/es/annotation/inject.js +30 -0
- package/es/annotation/inject.js.map +1 -0
- package/es/annotation/injectable.js +14 -0
- package/es/annotation/injectable.js.map +1 -0
- package/es/annotation/multi_inject.js +16 -0
- package/es/annotation/multi_inject.js.map +1 -0
- package/es/annotation/named.js +16 -0
- package/es/annotation/named.js.map +1 -0
- package/es/annotation/optional.js +16 -0
- package/es/annotation/optional.js.map +1 -0
- package/es/annotation/post_construct.js +14 -0
- package/es/annotation/post_construct.js.map +1 -0
- package/es/annotation/tagged.js +15 -0
- package/es/annotation/tagged.js.map +1 -0
- package/es/annotation/target_name.js +11 -0
- package/es/annotation/target_name.js.map +1 -0
- package/es/annotation/unmanaged.js +11 -0
- package/es/annotation/unmanaged.js.map +1 -0
- package/es/bindings/binding.js +35 -0
- package/es/bindings/binding.js.map +1 -0
- package/es/bindings/binding_count.js +7 -0
- package/es/bindings/binding_count.js.map +1 -0
- package/es/constants/error_msgs.js +59 -0
- package/es/constants/error_msgs.js.map +1 -0
- package/es/constants/literal_types.js +22 -0
- package/es/constants/literal_types.js.map +1 -0
- package/es/constants/metadata_keys.js +23 -0
- package/es/constants/metadata_keys.js.map +1 -0
- package/es/container/container.js +339 -0
- package/es/container/container.js.map +1 -0
- package/es/container/container_module.js +18 -0
- package/es/container/container_module.js.map +1 -0
- package/es/container/container_snapshot.js +13 -0
- package/es/container/container_snapshot.js.map +1 -0
- package/es/container/lookup.js +78 -0
- package/es/container/lookup.js.map +1 -0
- package/es/interfaces/interfaces.js +2 -0
- package/es/interfaces/interfaces.js.map +1 -0
- package/es/inversify.js +21 -0
- package/es/inversify.js.map +1 -0
- package/es/planning/context.js +16 -0
- package/es/planning/context.js.map +1 -0
- package/es/planning/metadata.js +18 -0
- package/es/planning/metadata.js.map +1 -0
- package/es/planning/metadata_reader.js +20 -0
- package/es/planning/metadata_reader.js.map +1 -0
- package/es/planning/plan.js +9 -0
- package/es/planning/plan.js.map +1 -0
- package/es/planning/planner.js +152 -0
- package/es/planning/planner.js.map +1 -0
- package/es/planning/queryable_string.js +26 -0
- package/es/planning/queryable_string.js.map +1 -0
- package/es/planning/reflection_utils.js +127 -0
- package/es/planning/reflection_utils.js.map +1 -0
- package/es/planning/request.js +23 -0
- package/es/planning/request.js.map +1 -0
- package/es/planning/target.js +79 -0
- package/es/planning/target.js.map +1 -0
- package/es/resolution/instantiation.js +54 -0
- package/es/resolution/instantiation.js.map +1 -0
- package/es/resolution/resolver.js +99 -0
- package/es/resolution/resolver.js.map +1 -0
- package/es/syntax/binding_in_syntax.js +22 -0
- package/es/syntax/binding_in_syntax.js.map +1 -0
- package/es/syntax/binding_in_when_on_syntax.js +71 -0
- package/es/syntax/binding_in_when_on_syntax.js.map +1 -0
- package/es/syntax/binding_on_syntax.js +13 -0
- package/es/syntax/binding_on_syntax.js.map +1 -0
- package/es/syntax/binding_to_syntax.js +78 -0
- package/es/syntax/binding_to_syntax.js.map +1 -0
- package/es/syntax/binding_when_on_syntax.js +60 -0
- package/es/syntax/binding_when_on_syntax.js.map +1 -0
- package/es/syntax/binding_when_syntax.js +97 -0
- package/es/syntax/binding_when_syntax.js.map +1 -0
- package/es/syntax/constraint_helpers.js +36 -0
- package/es/syntax/constraint_helpers.js.map +1 -0
- package/es/utils/binding_utils.js +12 -0
- package/es/utils/binding_utils.js.map +1 -0
- package/es/utils/exceptions.js +6 -0
- package/es/utils/exceptions.js.map +1 -0
- package/es/utils/id.js +6 -0
- package/es/utils/id.js.map +1 -0
- package/es/utils/serialization.js +98 -0
- package/es/utils/serialization.js.map +1 -0
- package/es6/annotation/decorator_utils.js +59 -0
- package/es6/annotation/decorator_utils.js.map +1 -0
- package/es6/annotation/inject.js +32 -0
- package/es6/annotation/inject.js.map +1 -0
- package/es6/annotation/injectable.js +17 -0
- package/es6/annotation/injectable.js.map +1 -0
- package/es6/annotation/multi_inject.js +19 -0
- package/es6/annotation/multi_inject.js.map +1 -0
- package/es6/annotation/named.js +19 -0
- package/es6/annotation/named.js.map +1 -0
- package/es6/annotation/optional.js +19 -0
- package/es6/annotation/optional.js.map +1 -0
- package/es6/annotation/post_construct.js +17 -0
- package/es6/annotation/post_construct.js.map +1 -0
- package/es6/annotation/tagged.js +18 -0
- package/es6/annotation/tagged.js.map +1 -0
- package/es6/annotation/target_name.js +14 -0
- package/es6/annotation/target_name.js.map +1 -0
- package/es6/annotation/unmanaged.js +14 -0
- package/es6/annotation/unmanaged.js.map +1 -0
- package/es6/bindings/binding.js +37 -0
- package/es6/bindings/binding.js.map +1 -0
- package/es6/bindings/binding_count.js +10 -0
- package/es6/bindings/binding_count.js.map +1 -0
- package/es6/constants/error_msgs.js +46 -0
- package/es6/constants/error_msgs.js.map +1 -0
- package/es6/constants/literal_types.js +27 -0
- package/es6/constants/literal_types.js.map +1 -0
- package/es6/constants/metadata_keys.js +26 -0
- package/es6/constants/metadata_keys.js.map +1 -0
- package/es6/container/container.js +260 -0
- package/es6/container/container.js.map +1 -0
- package/es6/container/container_module.js +19 -0
- package/es6/container/container_module.js.map +1 -0
- package/es6/container/container_snapshot.js +13 -0
- package/es6/container/container_snapshot.js.map +1 -0
- package/es6/container/lookup.js +79 -0
- package/es6/container/lookup.js.map +1 -0
- package/es6/interfaces/interfaces.js +3 -0
- package/es6/interfaces/interfaces.js.map +1 -0
- package/es6/inversify.js +49 -0
- package/es6/inversify.js.map +1 -0
- package/es6/planning/context.js +18 -0
- package/es6/planning/context.js.map +1 -0
- package/es6/planning/metadata.js +20 -0
- package/es6/planning/metadata.js.map +1 -0
- package/es6/planning/metadata_reader.js +20 -0
- package/es6/planning/metadata_reader.js.map +1 -0
- package/es6/planning/plan.js +11 -0
- package/es6/planning/plan.js.map +1 -0
- package/es6/planning/planner.js +156 -0
- package/es6/planning/planner.js.map +1 -0
- package/es6/planning/queryable_string.js +28 -0
- package/es6/planning/queryable_string.js.map +1 -0
- package/es6/planning/reflection_utils.js +128 -0
- package/es6/planning/reflection_utils.js.map +1 -0
- package/es6/planning/request.js +25 -0
- package/es6/planning/request.js.map +1 -0
- package/es6/planning/target.js +78 -0
- package/es6/planning/target.js.map +1 -0
- package/es6/resolution/instantiation.js +48 -0
- package/es6/resolution/instantiation.js.map +1 -0
- package/es6/resolution/resolver.js +100 -0
- package/es6/resolution/resolver.js.map +1 -0
- package/es6/syntax/binding_in_syntax.js +24 -0
- package/es6/syntax/binding_in_syntax.js.map +1 -0
- package/es6/syntax/binding_in_when_on_syntax.js +73 -0
- package/es6/syntax/binding_in_when_on_syntax.js.map +1 -0
- package/es6/syntax/binding_on_syntax.js +15 -0
- package/es6/syntax/binding_on_syntax.js.map +1 -0
- package/es6/syntax/binding_to_syntax.js +80 -0
- package/es6/syntax/binding_to_syntax.js.map +1 -0
- package/es6/syntax/binding_when_on_syntax.js +62 -0
- package/es6/syntax/binding_when_on_syntax.js.map +1 -0
- package/es6/syntax/binding_when_syntax.js +77 -0
- package/es6/syntax/binding_when_syntax.js.map +1 -0
- package/es6/syntax/constraint_helpers.js +40 -0
- package/es6/syntax/constraint_helpers.js.map +1 -0
- package/es6/utils/binding_utils.js +6 -0
- package/es6/utils/binding_utils.js.map +1 -0
- package/es6/utils/exceptions.js +10 -0
- package/es6/utils/exceptions.js.map +1 -0
- package/es6/utils/id.js +9 -0
- package/es6/utils/id.js.map +1 -0
- package/es6/utils/serialization.js +104 -0
- package/es6/utils/serialization.js.map +1 -0
- package/lib/annotation/decorator_utils.d.ts +5 -0
- package/lib/annotation/decorator_utils.js +60 -0
- package/lib/annotation/decorator_utils.js.map +1 -0
- package/lib/annotation/inject.d.ts +9 -0
- package/lib/annotation/inject.js +33 -0
- package/lib/annotation/inject.js.map +1 -0
- package/lib/annotation/injectable.d.ts +2 -0
- package/lib/annotation/injectable.js +17 -0
- package/lib/annotation/injectable.js.map +1 -0
- package/lib/annotation/multi_inject.d.ts +3 -0
- package/lib/annotation/multi_inject.js +19 -0
- package/lib/annotation/multi_inject.js.map +1 -0
- package/lib/annotation/named.d.ts +2 -0
- package/lib/annotation/named.js +19 -0
- package/lib/annotation/named.js.map +1 -0
- package/lib/annotation/optional.d.ts +2 -0
- package/lib/annotation/optional.js +19 -0
- package/lib/annotation/optional.js.map +1 -0
- package/lib/annotation/post_construct.d.ts +2 -0
- package/lib/annotation/post_construct.js +17 -0
- package/lib/annotation/post_construct.js.map +1 -0
- package/lib/annotation/tagged.d.ts +2 -0
- package/lib/annotation/tagged.js +18 -0
- package/lib/annotation/tagged.js.map +1 -0
- package/lib/annotation/target_name.d.ts +2 -0
- package/lib/annotation/target_name.js +14 -0
- package/lib/annotation/target_name.js.map +1 -0
- package/lib/annotation/unmanaged.d.ts +2 -0
- package/lib/annotation/unmanaged.js +14 -0
- package/lib/annotation/unmanaged.js.map +1 -0
- package/lib/bindings/binding.d.ts +19 -0
- package/lib/bindings/binding.js +38 -0
- package/lib/bindings/binding.js.map +1 -0
- package/lib/bindings/binding_count.d.ts +6 -0
- package/lib/bindings/binding_count.js +10 -0
- package/lib/bindings/binding_count.js.map +1 -0
- package/lib/constants/error_msgs.d.ts +27 -0
- package/lib/constants/error_msgs.js +66 -0
- package/lib/constants/error_msgs.js.map +1 -0
- package/lib/constants/literal_types.d.ts +5 -0
- package/lib/constants/literal_types.js +27 -0
- package/lib/constants/literal_types.js.map +1 -0
- package/lib/constants/metadata_keys.d.ts +12 -0
- package/lib/constants/metadata_keys.js +26 -0
- package/lib/constants/metadata_keys.js.map +1 -0
- package/lib/container/container.d.ts +39 -0
- package/lib/container/container.js +342 -0
- package/lib/container/container.js.map +1 -0
- package/lib/container/container_module.d.ts +11 -0
- package/lib/container/container_module.js +21 -0
- package/lib/container/container_module.js.map +1 -0
- package/lib/container/container_snapshot.d.ts +7 -0
- package/lib/container/container_snapshot.js +16 -0
- package/lib/container/container_snapshot.js.map +1 -0
- package/lib/container/lookup.d.ts +14 -0
- package/lib/container/lookup.js +81 -0
- package/lib/container/lookup.js.map +1 -0
- package/lib/interfaces/interfaces.d.ts +237 -0
- package/lib/interfaces/interfaces.js +3 -0
- package/lib/interfaces/interfaces.js.map +1 -0
- package/lib/inversify.d.ts +21 -0
- package/lib/inversify.js +49 -0
- package/lib/inversify.js.map +1 -0
- package/lib/planning/context.d.ts +11 -0
- package/lib/planning/context.js +19 -0
- package/lib/planning/context.js.map +1 -0
- package/lib/planning/metadata.d.ts +8 -0
- package/lib/planning/metadata.js +21 -0
- package/lib/planning/metadata.js.map +1 -0
- package/lib/planning/metadata_reader.d.ts +6 -0
- package/lib/planning/metadata_reader.js +23 -0
- package/lib/planning/metadata_reader.js.map +1 -0
- package/lib/planning/plan.d.ts +7 -0
- package/lib/planning/plan.js +12 -0
- package/lib/planning/plan.js.map +1 -0
- package/lib/planning/planner.d.ts +5 -0
- package/lib/planning/planner.js +157 -0
- package/lib/planning/planner.js.map +1 -0
- package/lib/planning/queryable_string.d.ts +11 -0
- package/lib/planning/queryable_string.js +29 -0
- package/lib/planning/queryable_string.js.map +1 -0
- package/lib/planning/reflection_utils.d.ts +5 -0
- package/lib/planning/reflection_utils.js +132 -0
- package/lib/planning/reflection_utils.js.map +1 -0
- package/lib/planning/request.d.ts +14 -0
- package/lib/planning/request.js +26 -0
- package/lib/planning/request.js.map +1 -0
- package/lib/planning/target.d.ts +21 -0
- package/lib/planning/target.js +82 -0
- package/lib/planning/target.js.map +1 -0
- package/lib/resolution/instantiation.d.ts +3 -0
- package/lib/resolution/instantiation.js +57 -0
- package/lib/resolution/instantiation.js.map +1 -0
- package/lib/resolution/resolver.d.ts +3 -0
- package/lib/resolution/resolver.js +102 -0
- package/lib/resolution/resolver.js.map +1 -0
- package/lib/syntax/binding_in_syntax.d.ts +9 -0
- package/lib/syntax/binding_in_syntax.js +25 -0
- package/lib/syntax/binding_in_syntax.js.map +1 -0
- package/lib/syntax/binding_in_when_on_syntax.d.ts +28 -0
- package/lib/syntax/binding_in_when_on_syntax.js +74 -0
- package/lib/syntax/binding_in_when_on_syntax.js.map +1 -0
- package/lib/syntax/binding_on_syntax.d.ts +7 -0
- package/lib/syntax/binding_on_syntax.js +16 -0
- package/lib/syntax/binding_on_syntax.js.map +1 -0
- package/lib/syntax/binding_to_syntax.d.ts +16 -0
- package/lib/syntax/binding_to_syntax.js +81 -0
- package/lib/syntax/binding_to_syntax.js.map +1 -0
- package/lib/syntax/binding_when_on_syntax.d.ts +24 -0
- package/lib/syntax/binding_when_on_syntax.js +63 -0
- package/lib/syntax/binding_when_on_syntax.js.map +1 -0
- package/lib/syntax/binding_when_syntax.d.ts +21 -0
- package/lib/syntax/binding_when_syntax.js +100 -0
- package/lib/syntax/binding_when_syntax.js.map +1 -0
- package/lib/syntax/constraint_helpers.d.ts +6 -0
- package/lib/syntax/constraint_helpers.js +42 -0
- package/lib/syntax/constraint_helpers.js.map +1 -0
- package/lib/tsconfig.tsbuildinfo +719 -0
- package/lib/utils/binding_utils.d.ts +2 -0
- package/lib/utils/binding_utils.js +16 -0
- package/lib/utils/binding_utils.js.map +1 -0
- package/lib/utils/exceptions.d.ts +1 -0
- package/lib/utils/exceptions.js +10 -0
- package/lib/utils/exceptions.js.map +1 -0
- package/lib/utils/id.d.ts +2 -0
- package/lib/utils/id.js +9 -0
- package/lib/utils/id.js.map +1 -0
- package/lib/utils/serialization.d.ts +7 -0
- package/lib/utils/serialization.js +105 -0
- package/lib/utils/serialization.js.map +1 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/decorator_utils.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/decorator_utils.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":71}},"2":{"start":{"line":4,"column":17},"end":{"line":4,"column":51}},"3":{"start":{"line":5,"column":19},"end":{"line":5,"column":56}},"4":{"start":{"line":7,"column":22},"end":{"line":7,"column":41}},"5":{"start":{"line":8,"column":4},"end":{"line":8,"column":99}},"6":{"start":{"line":10,"column":0},"end":{"line":10,"column":36}},"7":{"start":{"line":12,"column":22},"end":{"line":12,"column":46}},"8":{"start":{"line":13,"column":4},"end":{"line":13,"column":95}},"9":{"start":{"line":15,"column":0},"end":{"line":15,"column":34}},"10":{"start":{"line":17,"column":37},"end":{"line":17,"column":39}},"11":{"start":{"line":18,"column":32},"end":{"line":18,"column":66}},"12":{"start":{"line":19,"column":14},"end":{"line":19,"column":111}},"13":{"start":{"line":20,"column":4},"end":{"line":22,"column":5}},"14":{"start":{"line":21,"column":8},"end":{"line":21,"column":64}},"15":{"start":{"line":23,"column":4},"end":{"line":25,"column":5}},"16":{"start":{"line":24,"column":8},"end":{"line":24,"column":88}},"17":{"start":{"line":26,"column":34},"end":{"line":26,"column":65}},"18":{"start":{"line":27,"column":4},"end":{"line":37,"column":5}},"19":{"start":{"line":28,"column":8},"end":{"line":28,"column":37}},"20":{"start":{"line":31,"column":8},"end":{"line":36,"column":9}},"21":{"start":{"line":31,"column":22},"end":{"line":31,"column":23}},"22":{"start":{"line":31,"column":53},"end":{"line":31,"column":76}},"23":{"start":{"line":32,"column":20},"end":{"line":32,"column":49}},"24":{"start":{"line":33,"column":12},"end":{"line":35,"column":13}},"25":{"start":{"line":34,"column":16},"end":{"line":34,"column":89}},"26":{"start":{"line":38,"column":4},"end":{"line":38,"column":43}},"27":{"start":{"line":39,"column":4},"end":{"line":39,"column":62}},"28":{"start":{"line":40,"column":4},"end":{"line":40,"column":86}},"29":{"start":{"line":43,"column":4},"end":{"line":43,"column":41}},"30":{"start":{"line":46,"column":4},"end":{"line":46,"column":74}},"31":{"start":{"line":46,"column":36},"end":{"line":46,"column":71}},"32":{"start":{"line":49,"column":4},"end":{"line":57,"column":5}},"33":{"start":{"line":50,"column":8},"end":{"line":50,"column":63}},"34":{"start":{"line":52,"column":9},"end":{"line":57,"column":5}},"35":{"start":{"line":53,"column":8},"end":{"line":53,"column":62}},"36":{"start":{"line":56,"column":8},"end":{"line":56,"column":39}},"37":{"start":{"line":59,"column":0},"end":{"line":59,"column":28}}},"fnMap":{"0":{"name":"tagParameter","decl":{"start":{"line":6,"column":9},"end":{"line":6,"column":21}},"loc":{"start":{"line":6,"column":80},"end":{"line":9,"column":1}},"line":6},"1":{"name":"tagProperty","decl":{"start":{"line":11,"column":9},"end":{"line":11,"column":20}},"loc":{"start":{"line":11,"column":63},"end":{"line":14,"column":1}},"line":11},"2":{"name":"_tagParameterOrProperty","decl":{"start":{"line":16,"column":9},"end":{"line":16,"column":32}},"loc":{"start":{"line":16,"column":104},"end":{"line":41,"column":1}},"line":16},"3":{"name":"_decorate","decl":{"start":{"line":42,"column":9},"end":{"line":42,"column":18}},"loc":{"start":{"line":42,"column":39},"end":{"line":44,"column":1}},"line":42},"4":{"name":"_param","decl":{"start":{"line":45,"column":9},"end":{"line":45,"column":15}},"loc":{"start":{"line":45,"column":39},"end":{"line":47,"column":1}},"line":45},"5":{"name":"(anonymous_5)","decl":{"start":{"line":46,"column":11},"end":{"line":46,"column":12}},"loc":{"start":{"line":46,"column":34},"end":{"line":46,"column":73}},"line":46},"6":{"name":"decorate","decl":{"start":{"line":48,"column":9},"end":{"line":48,"column":17}},"loc":{"start":{"line":48,"column":53},"end":{"line":58,"column":1}},"line":48}},"branchMap":{"0":{"loc":{"start":{"line":19,"column":14},"end":{"line":19,"column":111}},"type":"cond-expr","locations":[{"start":{"line":19,"column":71},"end":{"line":19,"column":96}},{"start":{"line":19,"column":99},"end":{"line":19,"column":111}}],"line":19},"1":{"loc":{"start":{"line":19,"column":15},"end":{"line":19,"column":67}},"type":"binary-expr","locations":[{"start":{"line":19,"column":15},"end":{"line":19,"column":43}},{"start":{"line":19,"column":47},"end":{"line":19,"column":67}}],"line":19},"2":{"loc":{"start":{"line":20,"column":4},"end":{"line":22,"column":5}},"type":"if","locations":[{"start":{"line":20,"column":4},"end":{"line":22,"column":5}},{"start":{"line":20,"column":4},"end":{"line":22,"column":5}}],"line":20},"3":{"loc":{"start":{"line":20,"column":8},"end":{"line":20,"column":58}},"type":"binary-expr","locations":[{"start":{"line":20,"column":8},"end":{"line":20,"column":28}},{"start":{"line":20,"column":32},"end":{"line":20,"column":58}}],"line":20},"4":{"loc":{"start":{"line":23,"column":4},"end":{"line":25,"column":5}},"type":"if","locations":[{"start":{"line":23,"column":4},"end":{"line":25,"column":5}},{"start":{"line":23,"column":4},"end":{"line":25,"column":5}}],"line":23},"5":{"loc":{"start":{"line":27,"column":4},"end":{"line":37,"column":5}},"type":"if","locations":[{"start":{"line":27,"column":4},"end":{"line":37,"column":5}},{"start":{"line":27,"column":4},"end":{"line":37,"column":5}}],"line":27},"6":{"loc":{"start":{"line":33,"column":12},"end":{"line":35,"column":13}},"type":"if","locations":[{"start":{"line":33,"column":12},"end":{"line":35,"column":13}},{"start":{"line":33,"column":12},"end":{"line":35,"column":13}}],"line":33},"7":{"loc":{"start":{"line":49,"column":4},"end":{"line":57,"column":5}},"type":"if","locations":[{"start":{"line":49,"column":4},"end":{"line":57,"column":5}},{"start":{"line":49,"column":4},"end":{"line":57,"column":5}}],"line":49},"8":{"loc":{"start":{"line":52,"column":9},"end":{"line":57,"column":5}},"type":"if","locations":[{"start":{"line":52,"column":9},"end":{"line":57,"column":5}},{"start":{"line":52,"column":9},"end":{"line":57,"column":5}}],"line":52}},"s":{"0":1,"1":1,"2":1,"3":1,"4":236,"5":236,"6":1,"7":24,"8":24,"9":1,"10":260,"11":260,"12":260,"13":260,"14":4,"15":256,"16":154,"17":256,"18":256,"19":163,"20":93,"21":93,"22":93,"23":99,"24":99,"25":4,"26":252,"27":252,"28":252,"29":12,"30":9,"31":9,"32":13,"33":9,"34":4,"35":1,"36":3,"37":1},"f":{"0":236,"1":24,"2":260,"3":12,"4":9,"5":9,"6":13},"b":{"0":[236,24],"1":[260,236],"2":[4,256],"3":[260,236],"4":[154,102],"5":[163,93],"6":[4,95],"7":[9,4],"8":[1,3]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/decorator_utils.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/decorator_utils.ts"],"names":[],"mappings":";;;AAAA,oDAAsD;AACtD,yDAA2D;AAG3D,SAAS,YAAY,CACjB,gBAAqB,EACrB,YAAoB,EACpB,cAAsB,EACtB,QAA6B;IAE7B,IAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC;IACxC,uBAAuB,CAAC,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;AACnG,CAAC;AAgFkB,oCAAY;AA9E/B,SAAS,WAAW,CAChB,gBAAqB,EACrB,YAAoB,EACpB,QAA6B;IAE7B,IAAM,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC;IAC7C,uBAAuB,CAAC,WAAW,EAAE,gBAAgB,CAAC,WAAW,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;AAC/F,CAAC;AAuEgC,kCAAW;AArE5C,SAAS,uBAAuB,CAC5B,WAAmB,EACnB,gBAAqB,EACrB,YAAoB,EACpB,QAA6B,EAC7B,cAAuB;IAGvB,IAAI,0BAA0B,GAA6B,EAAE,CAAC;IAC9D,IAAM,oBAAoB,GAAG,CAAC,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC;IAClE,IAAM,GAAG,GAAW,CAAC,cAAc,KAAK,SAAS,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;IAGtH,IAAI,oBAAoB,IAAI,YAAY,KAAK,SAAS,EAAE;QACpD,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,2BAA2B,CAAC,CAAC;KAC3D;IAGD,IAAI,OAAO,CAAC,cAAc,CAAC,WAAW,EAAE,gBAAgB,CAAC,EAAE;QACvD,0BAA0B,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;KACnF;IAGD,IAAI,uBAAuB,GAA0B,0BAA0B,CAAC,GAAG,CAAC,CAAC;IAErF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE;QACzC,uBAAuB,GAAG,EAAE,CAAC;KAChC;SAAM;QACH,KAAgB,UAAuB,EAAvB,mDAAuB,EAAvB,qCAAuB,EAAvB,IAAuB,EAAE;YAApC,IAAM,CAAC,gCAAA;YACR,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,EAAE;gBACxB,MAAM,IAAI,KAAK,CAAI,UAAU,CAAC,mBAAmB,SAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAI,CAAC,CAAC;aAC5E;SACJ;KACJ;IAGD,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,0BAA0B,CAAC,GAAG,CAAC,GAAG,uBAAuB,CAAC;IAC1D,OAAO,CAAC,cAAc,CAAC,WAAW,EAAE,0BAA0B,EAAE,gBAAgB,CAAC,CAAC;AAEtF,CAAC;AAED,SAAS,SAAS,CAAC,UAAiB,EAAE,MAAW;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,MAAM,CAAC,UAAkB,EAAE,SAA6B;IAC7D,OAAO,UAAU,MAAW,EAAE,GAAW,IAAI,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACvF,CAAC;AAOD,SAAS,QAAQ,CACb,SAAkE,EAClE,MAAW,EACX,cAAgC;IAEhC,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;QACpC,SAAS,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,SAA+B,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;KAChF;SAAM,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;QAC3C,OAAO,CAAC,QAAQ,CAAC,CAAC,SAA4B,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;KAC5E;SAAM;QACH,SAAS,CAAC,CAAC,SAA2B,CAAC,EAAE,MAAM,CAAC,CAAC;KACpD;AACL,CAAC;AAEQ,4BAAQ","sourcesContent":["import * as ERROR_MSGS from \"../constants/error_msgs\";\nimport * as METADATA_KEY from \"../constants/metadata_keys\";\nimport { interfaces } from \"../interfaces/interfaces\";\n\nfunction tagParameter(\n annotationTarget: any,\n propertyName: string,\n parameterIndex: number,\n metadata: interfaces.Metadata\n) {\n const metadataKey = METADATA_KEY.TAGGED;\n _tagParameterOrProperty(metadataKey, annotationTarget, propertyName, metadata, parameterIndex);\n}\n\nfunction tagProperty(\n annotationTarget: any,\n propertyName: string,\n metadata: interfaces.Metadata\n) {\n const metadataKey = METADATA_KEY.TAGGED_PROP;\n _tagParameterOrProperty(metadataKey, annotationTarget.constructor, propertyName, metadata);\n}\n\nfunction _tagParameterOrProperty(\n metadataKey: string,\n annotationTarget: any,\n propertyName: string,\n metadata: interfaces.Metadata,\n parameterIndex?: number\n) {\n\n let paramsOrPropertiesMetadata: interfaces.ReflectResult = {};\n const isParameterDecorator = (typeof parameterIndex === \"number\");\n const key: string = (parameterIndex !== undefined && isParameterDecorator) ? parameterIndex.toString() : propertyName;\n\n // if the decorator is used as a parameter decorator, the property name must be provided\n if (isParameterDecorator && propertyName !== undefined) {\n throw new Error(ERROR_MSGS.INVALID_DECORATOR_OPERATION);\n }\n\n // read metadata if available\n if (Reflect.hasOwnMetadata(metadataKey, annotationTarget)) {\n paramsOrPropertiesMetadata = Reflect.getMetadata(metadataKey, annotationTarget);\n }\n\n // get metadata for the decorated parameter by its index\n let paramOrPropertyMetadata: interfaces.Metadata[] = paramsOrPropertiesMetadata[key];\n\n if (!Array.isArray(paramOrPropertyMetadata)) {\n paramOrPropertyMetadata = [];\n } else {\n for (const m of paramOrPropertyMetadata) {\n if (m.key === metadata.key) {\n throw new Error(`${ERROR_MSGS.DUPLICATED_METADATA} ${m.key.toString()}`);\n }\n }\n }\n\n // set metadata\n paramOrPropertyMetadata.push(metadata);\n paramsOrPropertiesMetadata[key] = paramOrPropertyMetadata;\n Reflect.defineMetadata(metadataKey, paramsOrPropertiesMetadata, annotationTarget);\n\n}\n\nfunction _decorate(decorators: any[], target: any): void {\n Reflect.decorate(decorators, target);\n}\n\nfunction _param(paramIndex: number, decorator: ParameterDecorator) {\n return function (target: any, key: string) { decorator(target, key, paramIndex); };\n}\n\n// Allows VanillaJS developers to use decorators:\n// decorate(injectable(\"Foo\", \"Bar\"), FooBar);\n// decorate(targetName(\"foo\", \"bar\"), FooBar);\n// decorate(named(\"foo\"), FooBar, 0);\n// decorate(tagged(\"bar\"), FooBar, 1);\nfunction decorate(\n decorator: (ClassDecorator | ParameterDecorator | MethodDecorator),\n target: any,\n parameterIndex?: number | string): void {\n\n if (typeof parameterIndex === \"number\") {\n _decorate([_param(parameterIndex, decorator as ParameterDecorator)], target);\n } else if (typeof parameterIndex === \"string\") {\n Reflect.decorate([decorator as MethodDecorator], target, parameterIndex);\n } else {\n _decorate([decorator as ClassDecorator], target);\n }\n}\n\nexport { decorate, tagParameter, tagProperty };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"906f1d79ebe4f9468eaf16749e04af38f047b803","contentHash":"608bc43ba788302f241133aee66153168e46cfb3aa9fd41cd41716b738468d47"},"/Users/dan/jsProjects/inversify/InversifyJS/src/constants/error_msgs.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/constants/error_msgs.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":962}},"2":{"start":{"line":4,"column":0},"end":{"line":4,"column":95}},"3":{"start":{"line":5,"column":0},"end":{"line":5,"column":85}},"4":{"start":{"line":6,"column":0},"end":{"line":6,"column":40}},"5":{"start":{"line":7,"column":0},"end":{"line":7,"column":40}},"6":{"start":{"line":8,"column":0},"end":{"line":8,"column":73}},"7":{"start":{"line":9,"column":0},"end":{"line":9,"column":62}},"8":{"start":{"line":10,"column":0},"end":{"line":10,"column":77}},"9":{"start":{"line":11,"column":0},"end":{"line":11,"column":86}},"10":{"start":{"line":12,"column":0},"end":{"line":12,"column":94}},"11":{"start":{"line":13,"column":34},"end":{"line":17,"column":1}},"12":{"start":{"line":14,"column":4},"end":{"line":16,"column":36}},"13":{"start":{"line":18,"column":0},"end":{"line":18,"column":66}},"14":{"start":{"line":19,"column":0},"end":{"line":19,"column":59}},"15":{"start":{"line":20,"column":0},"end":{"line":20,"column":78}},"16":{"start":{"line":21,"column":0},"end":{"line":21,"column":55}},"17":{"start":{"line":22,"column":0},"end":{"line":22,"column":74}},"18":{"start":{"line":23,"column":0},"end":{"line":23,"column":97}},"19":{"start":{"line":24,"column":0},"end":{"line":24,"column":92}},"20":{"start":{"line":25,"column":0},"end":{"line":26,"column":33}},"21":{"start":{"line":27,"column":0},"end":{"line":28,"column":84}},"22":{"start":{"line":29,"column":32},"end":{"line":36,"column":1}},"23":{"start":{"line":30,"column":17},"end":{"line":30,"column":19}},"24":{"start":{"line":31,"column":4},"end":{"line":33,"column":5}},"25":{"start":{"line":31,"column":18},"end":{"line":31,"column":19}},"26":{"start":{"line":32,"column":8},"end":{"line":32,"column":35}},"27":{"start":{"line":34,"column":4},"end":{"line":35,"column":96}},"28":{"start":{"line":37,"column":0},"end":{"line":37,"column":62}},"29":{"start":{"line":38,"column":0},"end":{"line":39,"column":25}},"30":{"start":{"line":40,"column":0},"end":{"line":41,"column":48}},"31":{"start":{"line":42,"column":0},"end":{"line":43,"column":19}},"32":{"start":{"line":44,"column":0},"end":{"line":45,"column":19}},"33":{"start":{"line":46,"column":0},"end":{"line":46,"column":115}},"34":{"start":{"line":47,"column":27},"end":{"line":53,"column":1}},"35":{"start":{"line":48,"column":17},"end":{"line":48,"column":19}},"36":{"start":{"line":49,"column":4},"end":{"line":51,"column":5}},"37":{"start":{"line":49,"column":18},"end":{"line":49,"column":19}},"38":{"start":{"line":50,"column":8},"end":{"line":50,"column":35}},"39":{"start":{"line":52,"column":4},"end":{"line":52,"column":75}},"40":{"start":{"line":54,"column":0},"end":{"line":54,"column":52}},"41":{"start":{"line":55,"column":37},"end":{"line":63,"column":1}},"42":{"start":{"line":56,"column":17},"end":{"line":56,"column":19}},"43":{"start":{"line":57,"column":4},"end":{"line":59,"column":5}},"44":{"start":{"line":57,"column":18},"end":{"line":57,"column":19}},"45":{"start":{"line":58,"column":8},"end":{"line":58,"column":35}},"46":{"start":{"line":60,"column":4},"end":{"line":62,"column":52}},"47":{"start":{"line":64,"column":0},"end":{"line":64,"column":72}},"48":{"start":{"line":65,"column":0},"end":{"line":65,"column":60}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":13,"column":34},"end":{"line":13,"column":35}},"loc":{"start":{"line":13,"column":50},"end":{"line":17,"column":1}},"line":13},"1":{"name":"(anonymous_1)","decl":{"start":{"line":29,"column":32},"end":{"line":29,"column":33}},"loc":{"start":{"line":29,"column":44},"end":{"line":36,"column":1}},"line":29},"2":{"name":"(anonymous_2)","decl":{"start":{"line":47,"column":27},"end":{"line":47,"column":28}},"loc":{"start":{"line":47,"column":39},"end":{"line":53,"column":1}},"line":47},"3":{"name":"(anonymous_3)","decl":{"start":{"line":55,"column":37},"end":{"line":55,"column":38}},"loc":{"start":{"line":55,"column":49},"end":{"line":63,"column":1}},"line":55}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":2,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":2,"24":2,"25":2,"26":2,"27":2,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":2,"36":2,"37":2,"38":4,"39":2,"40":1,"41":1,"42":3,"43":3,"44":3,"45":6,"46":3,"47":1,"48":1},"f":{"0":2,"1":2,"2":2,"3":3},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/constants/error_msgs.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/constants/error_msgs.ts"],"names":[],"mappings":";;;AAAa,QAAA,+BAA+B,GAAG,oDAAoD,CAAC;AACvF,QAAA,mBAAmB,GAAG,sDAAsD,CAAC;AAC7E,QAAA,aAAa,GAAG,eAAe,CAAC;AAChC,QAAA,aAAa,GAAG,eAAe,CAAC;AAChC,QAAA,eAAe,GAAG,8CAA8C,CAAC;AACjE,QAAA,aAAa,GAAG,qCAAqC,CAAC;AACtD,QAAA,cAAc,GAAG,mDAAmD,CAAC;AACrE,QAAA,6BAA6B,GAAG,6CAA6C,CAAC;AAC9E,QAAA,yBAAyB,GAAG,yDAAyD,CAAC;AAC5F,IAAM,2BAA2B,GAAG,UAAC,IAAY;IAC5C,OAAA,kEAAgE,IAAI,UAAO;QAC3E,wEAAwE;QACxE,2BAA2B;AAF3B,CAE2B,CAAC;AAH3B,QAAA,2BAA2B,+BAGA;AAC3B,QAAA,mBAAmB,GAAG,4BAA4B,CAAC;AACnD,QAAA,eAAe,GAAG,mDAAmD,CAAC;AACtE,QAAA,oBAAoB,GAAG,uBAAuB,CAAC;AAC/C,QAAA,2BAA2B,GAAG,mCAAmC,CAAC;AAClE,QAAA,yBAAyB,GAAG,4DAA4D,CAAC;AACzF,QAAA,wBAAwB,GAAG,wDAAwD,CAAC;AAEpF,QAAA,qBAAqB,GAAG,gEAAgE;IACjG,4BAA4B,CAAC;AAEpB,QAAA,2BAA2B,GAAG,yDAAyD;IAChG,+EAA+E,CAAC;AAE7E,IAAM,yBAAyB,GAAG;IAAC,gBAAgB;SAAhB,UAAgB,EAAhB,qBAAgB,EAAhB,IAAgB;QAAhB,2BAAgB;;IAAK,OAAA,2DAA2D;SACnH,MAAM,CAAC,CAAC,CAAC,4EAAyE,CAAA;AAD1B,CAC0B,CAAC;AAD7E,QAAA,yBAAyB,6BACoD;AAE7E,QAAA,mCAAmC,GAAG,4DAA4D;IAC3G,oBAAoB,CAAC;AAEZ,QAAA,uCAAuC,GAAG,+CAA+C;IAClG,2CAA2C,CAAC;AAEnC,QAAA,8CAA8C,GAAG,sDAAsD;IAChH,cAAc,CAAC;AAEN,QAAA,yCAAyC,GAAG,iDAAiD;IACtG,cAAc,CAAC;AAEN,QAAA,+BAA+B,GAAG,wEAAwE,CAAC;AACjH,IAAM,oBAAoB,GAAG;IAAC,gBAAgB;SAAhB,UAAgB,EAAhB,qBAAgB,EAAhB,IAAgB;QAAhB,2BAAgB;;IAAK,OAAA,mCAAiC,MAAM,CAAC,CAAC,CAAC,UAAK,MAAM,CAAC,CAAC,CAAG;AAA1D,CAA0D,CAAC;AAAxG,QAAA,oBAAoB,wBAAoF;AAE9G,IAAM,8BAA8B,GAAG;IAAC,gBAAgB;SAAhB,UAAgB,EAAhB,qBAAgB,EAAhB,IAAgB;QAAhB,2BAAgB;;IAAM,OAAA,+CAA+C;SAChH,oBAAkB,MAAM,CAAC,CAAC,CAAC,iDAA8C,CAAA;SACzE,yBAAuB,MAAM,CAAC,CAAC,CAAC,OAAI,CAAA;AAF6B,CAE7B,CAAC;AAF5B,QAAA,8BAA8B,kCAEF;AAE5B,QAAA,cAAc,GAAG,kCAAkC,CAAC","sourcesContent":["export const DUPLICATED_INJECTABLE_DECORATOR = \"Cannot apply @injectable decorator multiple times.\";\nexport const DUPLICATED_METADATA = \"Metadata key was used more than once in a parameter:\";\nexport const NULL_ARGUMENT = \"NULL argument\";\nexport const KEY_NOT_FOUND = \"Key Not Found\";\nexport const AMBIGUOUS_MATCH = \"Ambiguous match found for serviceIdentifier:\";\nexport const CANNOT_UNBIND = \"Could not unbind serviceIdentifier:\";\nexport const NOT_REGISTERED = \"No matching bindings found for serviceIdentifier:\";\nexport const MISSING_INJECTABLE_ANNOTATION = \"Missing required @injectable annotation in:\";\nexport const MISSING_INJECT_ANNOTATION = \"Missing required @inject or @multiInject annotation in:\";\nexport const UNDEFINED_INJECT_ANNOTATION = (name: string) =>\n `@inject called with undefined this could mean that the class ${name} has ` +\n \"a circular dependency problem. You can use a LazyServiceIdentifer to \" +\n \"overcome this limitation.\";\nexport const CIRCULAR_DEPENDENCY = \"Circular dependency found:\";\nexport const NOT_IMPLEMENTED = \"Sorry, this feature is not fully implemented yet.\";\nexport const INVALID_BINDING_TYPE = \"Invalid binding type:\";\nexport const NO_MORE_SNAPSHOTS_AVAILABLE = \"No snapshot available to restore.\";\nexport const INVALID_MIDDLEWARE_RETURN = \"Invalid return type in middleware. Middleware must return!\";\nexport const INVALID_FUNCTION_BINDING = \"Value provided to function binding must be a function!\";\n\nexport const INVALID_TO_SELF_VALUE = \"The toSelf function can only be applied when a constructor is \" +\n \"used as service identifier\";\n\nexport const INVALID_DECORATOR_OPERATION = \"The @inject @multiInject @tagged and @named decorators \" +\n \"must be applied to the parameters of a class constructor or a class property.\";\n\nexport const ARGUMENTS_LENGTH_MISMATCH = (...values: any[]) => \"The number of constructor arguments in the derived class \" +\n `${values[0]} must be >= than the number of constructor arguments of its base class.`;\n\nexport const CONTAINER_OPTIONS_MUST_BE_AN_OBJECT = \"Invalid Container constructor argument. Container options \" +\n \"must be an object.\";\n\nexport const CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE = \"Invalid Container option. Default scope must \" +\n \"be a string ('singleton' or 'transient').\";\n\nexport const CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE = \"Invalid Container option. Auto bind injectable must \" +\n \"be a boolean\";\n\nexport const CONTAINER_OPTIONS_INVALID_SKIP_BASE_CHECK = \"Invalid Container option. Skip base check must \" +\n \"be a boolean\";\n\nexport const MULTIPLE_POST_CONSTRUCT_METHODS = \"Cannot apply @postConstruct decorator multiple times in the same class\";\nexport const POST_CONSTRUCT_ERROR = (...values: any[]) => `@postConstruct error in class ${values[0]}: ${values[1]}`;\n\nexport const CIRCULAR_DEPENDENCY_IN_FACTORY = (...values: any[]) => \"It looks like there is a circular dependency \" +\n `in one of the '${values[0]}' bindings. Please investigate bindings with` +\n `service identifier '${values[1]}'.`;\n\nexport const STACK_OVERFLOW = \"Maximum call stack size exceeded\";\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"4960a6923ab5d5ebd32ebb6628388cd0195810cd","contentHash":"ea65b722fd7cf02d25c9ed3e34e047417e641020957f218d01402c716211fd76"},"/Users/dan/jsProjects/inversify/InversifyJS/src/constants/metadata_keys.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/constants/metadata_keys.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":286}},"2":{"start":{"line":4,"column":0},"end":{"line":4,"column":28}},"3":{"start":{"line":5,"column":0},"end":{"line":5,"column":26}},"4":{"start":{"line":6,"column":0},"end":{"line":6,"column":36}},"5":{"start":{"line":7,"column":0},"end":{"line":7,"column":34}},"6":{"start":{"line":8,"column":0},"end":{"line":8,"column":30}},"7":{"start":{"line":9,"column":0},"end":{"line":9,"column":42}},"8":{"start":{"line":10,"column":0},"end":{"line":10,"column":36}},"9":{"start":{"line":11,"column":0},"end":{"line":11,"column":47}},"10":{"start":{"line":12,"column":0},"end":{"line":12,"column":45}},"11":{"start":{"line":13,"column":0},"end":{"line":13,"column":49}},"12":{"start":{"line":14,"column":0},"end":{"line":14,"column":42}},"13":{"start":{"line":16,"column":4},"end":{"line":23,"column":6}},"14":{"start":{"line":25,"column":0},"end":{"line":25,"column":52}}},"fnMap":{"0":{"name":"getNonCustomTagKeys","decl":{"start":{"line":15,"column":9},"end":{"line":15,"column":28}},"loc":{"start":{"line":15,"column":31},"end":{"line":24,"column":1}},"line":15}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1},"f":{"0":1},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/constants/metadata_keys.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/constants/metadata_keys.ts"],"names":[],"mappings":";;;AACa,QAAA,SAAS,GAAG,OAAO,CAAC;AAGpB,QAAA,QAAQ,GAAG,MAAM,CAAC;AAGlB,QAAA,aAAa,GAAG,WAAW,CAAC;AAG5B,QAAA,YAAY,GAAG,UAAU,CAAC;AAG1B,QAAA,UAAU,GAAG,QAAQ,CAAC;AAGtB,QAAA,gBAAgB,GAAG,cAAc,CAAC;AAGlC,QAAA,MAAM,GAAG,kBAAkB,CAAC;AAG5B,QAAA,WAAW,GAAG,wBAAwB,CAAC;AAGvC,QAAA,WAAW,GAAG,sBAAsB,CAAC;AAGrC,QAAA,kBAAkB,GAAG,mBAAmB,CAAC;AAGzC,QAAA,cAAc,GAAG,gBAAgB,CAAC;AAE/C,SAAS,mBAAmB;IACxB,OAAO;QACH,kBAAU;QACV,wBAAgB;QAChB,gBAAQ;QACR,qBAAa;QACb,iBAAS;QACT,oBAAY;KACf,CAAC;AACN,CAAC;AAEY,QAAA,mBAAmB,GAAa,mBAAmB,EAAE,CAAC","sourcesContent":["// Used for named bindings\nexport const NAMED_TAG = \"named\";\n\n// The name of the target at design time\nexport const NAME_TAG = \"name\";\n\n// The for unmanaged injections (in base classes when using inheritance)\nexport const UNMANAGED_TAG = \"unmanaged\";\n\n// The for optional injections\nexport const OPTIONAL_TAG = \"optional\";\n\n// The type of the binding at design time\nexport const INJECT_TAG = \"inject\";\n\n// The type of the binding at design type for multi-injections\nexport const MULTI_INJECT_TAG = \"multi_inject\";\n\n// used to store constructor arguments tags\nexport const TAGGED = \"inversify:tagged\";\n\n// used to store class properties tags\nexport const TAGGED_PROP = \"inversify:tagged_props\";\n\n// used to store types to be injected\nexport const PARAM_TYPES = \"inversify:paramtypes\";\n\n// used to access design time types\nexport const DESIGN_PARAM_TYPES = \"design:paramtypes\";\n\n// used to identify postConstruct functions\nexport const POST_CONSTRUCT = \"post_construct\";\n\nfunction getNonCustomTagKeys(): string[] {\n return [\n INJECT_TAG,\n MULTI_INJECT_TAG,\n NAME_TAG,\n UNMANAGED_TAG,\n NAMED_TAG,\n OPTIONAL_TAG,\n ];\n}\n\nexport const NON_CUSTOM_TAG_KEYS: string[] = getNonCustomTagKeys();\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"37e04d36d02ff2bfd296e51c4c2abbc7286fea5f","contentHash":"296fa45f11d90c4fbdf52ddb3d1d467bced5c37902ea0e1e829575e1c7b452b2"},"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/inject.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/inject.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":55}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":53}},"3":{"start":{"line":5,"column":19},"end":{"line":5,"column":56}},"4":{"start":{"line":6,"column":17},"end":{"line":6,"column":48}},"5":{"start":{"line":7,"column":24},"end":{"line":7,"column":52}},"6":{"start":{"line":8,"column":28},"end":{"line":16,"column":3}},"7":{"start":{"line":10,"column":8},"end":{"line":10,"column":22}},"8":{"start":{"line":12,"column":4},"end":{"line":14,"column":6}},"9":{"start":{"line":13,"column":8},"end":{"line":13,"column":26}},"10":{"start":{"line":15,"column":4},"end":{"line":15,"column":32}},"11":{"start":{"line":17,"column":0},"end":{"line":17,"column":52}},"12":{"start":{"line":19,"column":4},"end":{"line":30,"column":6}},"13":{"start":{"line":20,"column":8},"end":{"line":22,"column":9}},"14":{"start":{"line":21,"column":12},"end":{"line":21,"column":83}},"15":{"start":{"line":23,"column":23},"end":{"line":23,"column":90}},"16":{"start":{"line":24,"column":8},"end":{"line":29,"column":9}},"17":{"start":{"line":25,"column":12},"end":{"line":25,"column":79}},"18":{"start":{"line":28,"column":12},"end":{"line":28,"column":71}},"19":{"start":{"line":32,"column":0},"end":{"line":32,"column":24}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":28},"end":{"line":8,"column":29}},"loc":{"start":{"line":8,"column":40},"end":{"line":16,"column":1}},"line":8},"1":{"name":"LazyServiceIdentifer","decl":{"start":{"line":9,"column":13},"end":{"line":9,"column":33}},"loc":{"start":{"line":9,"column":38},"end":{"line":11,"column":5}},"line":9},"2":{"name":"(anonymous_2)","decl":{"start":{"line":12,"column":44},"end":{"line":12,"column":45}},"loc":{"start":{"line":12,"column":56},"end":{"line":14,"column":5}},"line":12},"3":{"name":"inject","decl":{"start":{"line":18,"column":9},"end":{"line":18,"column":15}},"loc":{"start":{"line":18,"column":35},"end":{"line":31,"column":1}},"line":18},"4":{"name":"(anonymous_4)","decl":{"start":{"line":19,"column":11},"end":{"line":19,"column":12}},"loc":{"start":{"line":19,"column":47},"end":{"line":30,"column":5}},"line":19}},"branchMap":{"0":{"loc":{"start":{"line":20,"column":8},"end":{"line":22,"column":9}},"type":"if","locations":[{"start":{"line":20,"column":8},"end":{"line":22,"column":9}},{"start":{"line":20,"column":8},"end":{"line":22,"column":9}}],"line":20},"1":{"loc":{"start":{"line":24,"column":8},"end":{"line":29,"column":9}},"type":"if","locations":[{"start":{"line":24,"column":8},"end":{"line":29,"column":9}},{"start":{"line":24,"column":8},"end":{"line":29,"column":9}}],"line":24}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":0,"10":1,"11":1,"12":134,"13":134,"14":1,"15":133,"16":133,"17":122,"18":11,"19":1},"f":{"0":1,"1":1,"2":0,"3":134,"4":134},"b":{"0":[1,133],"1":[122,11]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/inject.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/inject.ts"],"names":[],"mappings":";;;AAAA,sDAAsE;AACtE,yDAA2D;AAE3D,iDAAgD;AAChD,qDAA8D;AAI9D;IAEE,8BAAmB,EAAyC;QACxD,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;IAClB,CAAC;IAEM,qCAAM,GAAb;QACE,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;IACH,2BAAC;AAAD,CAAC,AATD,IASC;AATY,oDAAoB;AAWjC,SAAS,MAAM,CAAC,iBAA0C;IACxD,OAAO,UAAS,MAAW,EAAE,SAAiB,EAAE,KAAmC;QACjF,IAAI,iBAAiB,KAAK,SAAS,EAAE;YACnC,MAAM,IAAI,KAAK,CAAC,wCAA2B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;SAC3D;QAED,IAAM,QAAQ,GAAG,IAAI,mBAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;QAE1E,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,8BAAY,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;SAClD;aAAM;YACL,6BAAW,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;SAC1C;IAEH,CAAC,CAAC;AACJ,CAAC;AAEQ,wBAAM","sourcesContent":["import { UNDEFINED_INJECT_ANNOTATION } from \"../constants/error_msgs\";\r\nimport * as METADATA_KEY from \"../constants/metadata_keys\";\r\nimport { interfaces } from \"../interfaces/interfaces\";\r\nimport { Metadata } from \"../planning/metadata\";\r\nimport { tagParameter, tagProperty } from \"./decorator_utils\";\r\n\r\nexport type ServiceIdentifierOrFunc = interfaces.ServiceIdentifier<any> | LazyServiceIdentifer;\r\n\r\nexport class LazyServiceIdentifer<T = any> {\r\n private _cb: () => interfaces.ServiceIdentifier<T>;\r\n public constructor(cb: () => interfaces.ServiceIdentifier<T>) {\r\n this._cb = cb;\r\n }\r\n\r\n public unwrap() {\r\n return this._cb();\r\n }\r\n}\r\n\r\nfunction inject(serviceIdentifier: ServiceIdentifierOrFunc) {\r\n return function(target: any, targetKey: string, index?: number | PropertyDescriptor): void {\r\n if (serviceIdentifier === undefined) {\r\n throw new Error(UNDEFINED_INJECT_ANNOTATION(target.name));\r\n }\r\n\r\n const metadata = new Metadata(METADATA_KEY.INJECT_TAG, serviceIdentifier);\r\n\r\n if (typeof index === \"number\") {\r\n tagParameter(target, targetKey, index, metadata);\r\n } else {\r\n tagProperty(target, targetKey, metadata);\r\n }\r\n\r\n };\r\n}\r\n\r\nexport { inject };\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"668bce71f74de4f2139aaa9b01e5517323745d68","contentHash":"097ceca45c44dac0e371268f4e93be61befdd07bc16fe2579cf12ac4cd60f8b2"},"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/metadata.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/metadata.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":26}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":56}},"3":{"start":{"line":5,"column":16},"end":{"line":19,"column":3}},"4":{"start":{"line":7,"column":8},"end":{"line":7,"column":23}},"5":{"start":{"line":8,"column":8},"end":{"line":8,"column":27}},"6":{"start":{"line":10,"column":4},"end":{"line":17,"column":6}},"7":{"start":{"line":11,"column":8},"end":{"line":16,"column":9}},"8":{"start":{"line":12,"column":12},"end":{"line":12,"column":59}},"9":{"start":{"line":15,"column":12},"end":{"line":15,"column":92}},"10":{"start":{"line":18,"column":4},"end":{"line":18,"column":20}},"11":{"start":{"line":20,"column":0},"end":{"line":20,"column":28}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":16},"end":{"line":5,"column":17}},"loc":{"start":{"line":5,"column":28},"end":{"line":19,"column":1}},"line":5},"1":{"name":"Metadata","decl":{"start":{"line":6,"column":13},"end":{"line":6,"column":21}},"loc":{"start":{"line":6,"column":34},"end":{"line":9,"column":5}},"line":6},"2":{"name":"(anonymous_2)","decl":{"start":{"line":10,"column":34},"end":{"line":10,"column":35}},"loc":{"start":{"line":10,"column":46},"end":{"line":17,"column":5}},"line":10}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":8},"end":{"line":16,"column":9}},"type":"if","locations":[{"start":{"line":11,"column":8},"end":{"line":16,"column":9}},{"start":{"line":11,"column":8},"end":{"line":16,"column":9}}],"line":11}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1395,"5":1395,"6":1,"7":23,"8":15,"9":8,"10":1,"11":1},"f":{"0":1,"1":1395,"2":23},"b":{"0":[15,8]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/metadata.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/planning/metadata.ts"],"names":[],"mappings":";;;AAAA,yDAA2D;AAG3D;IAKE,kBAAmB,GAA6B,EAAE,KAAU;QAC1D,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAEM,2BAAQ,GAAf;QACE,IAAI,IAAI,CAAC,GAAG,KAAK,YAAY,CAAC,SAAS,EAAE;YACvC,OAAO,YAAU,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAG,CAAC;SAC3C;aAAM;YACL,OAAO,mBAAiB,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,iBAAY,IAAI,CAAC,KAAK,OAAI,CAAC;SACvE;IACH,CAAC;IACH,eAAC;AAAD,CAAC,AAjBD,IAiBC;AAEQ,4BAAQ","sourcesContent":["import * as METADATA_KEY from \"../constants/metadata_keys\";\nimport { interfaces } from \"../interfaces/interfaces\";\n\nclass Metadata implements interfaces.Metadata {\n\n public key: string | number | symbol;\n public value: any;\n\n public constructor(key: string | number | symbol, value: any) {\n this.key = key;\n this.value = value;\n }\n\n public toString() {\n if (this.key === METADATA_KEY.NAMED_TAG) {\n return `named: ${this.value.toString()} `;\n } else {\n return `tagged: { key:${this.key.toString()}, value: ${this.value} }`;\n }\n }\n}\n\nexport { Metadata };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"5e42a6df487475b9720e7dc6acedf2fafa51d74b","contentHash":"0399a40687d163f2daf3011b29074827b78562548c84e75f814c4d806ba94778"},"/Users/dan/jsProjects/inversify/InversifyJS/src/inversify.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/inversify.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":625}},"2":{"start":{"line":4,"column":11},"end":{"line":4,"column":47}},"3":{"start":{"line":5,"column":0},"end":{"line":5,"column":28}},"4":{"start":{"line":6,"column":18},"end":{"line":6,"column":50}},"5":{"start":{"line":7,"column":0},"end":{"line":7,"column":118}},"6":{"start":{"line":7,"column":83},"end":{"line":7,"column":112}},"7":{"start":{"line":8,"column":22},"end":{"line":8,"column":58}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":136}},"9":{"start":{"line":9,"column":90},"end":{"line":9,"column":130}},"10":{"start":{"line":10,"column":0},"end":{"line":10,"column":134}},"11":{"start":{"line":10,"column":89},"end":{"line":10,"column":128}},"12":{"start":{"line":11,"column":0},"end":{"line":11,"column":132}},"13":{"start":{"line":11,"column":88},"end":{"line":11,"column":126}},"14":{"start":{"line":12,"column":25},"end":{"line":12,"column":64}},"15":{"start":{"line":13,"column":0},"end":{"line":13,"column":147}},"16":{"start":{"line":13,"column":94},"end":{"line":13,"column":141}},"17":{"start":{"line":14,"column":0},"end":{"line":14,"column":137}},"18":{"start":{"line":14,"column":89},"end":{"line":14,"column":131}},"19":{"start":{"line":15,"column":19},"end":{"line":15,"column":53}},"20":{"start":{"line":16,"column":0},"end":{"line":16,"column":121}},"21":{"start":{"line":16,"column":84},"end":{"line":16,"column":115}},"22":{"start":{"line":17,"column":15},"end":{"line":17,"column":45}},"23":{"start":{"line":18,"column":0},"end":{"line":18,"column":109}},"24":{"start":{"line":18,"column":80},"end":{"line":18,"column":103}},"25":{"start":{"line":19,"column":14},"end":{"line":19,"column":43}},"26":{"start":{"line":20,"column":0},"end":{"line":20,"column":106}},"27":{"start":{"line":20,"column":79},"end":{"line":20,"column":100}},"28":{"start":{"line":21,"column":15},"end":{"line":21,"column":45}},"29":{"start":{"line":22,"column":0},"end":{"line":22,"column":109}},"30":{"start":{"line":22,"column":80},"end":{"line":22,"column":103}},"31":{"start":{"line":23,"column":0},"end":{"line":23,"column":137}},"32":{"start":{"line":23,"column":94},"end":{"line":23,"column":131}},"33":{"start":{"line":24,"column":17},"end":{"line":24,"column":49}},"34":{"start":{"line":25,"column":0},"end":{"line":25,"column":115}},"35":{"start":{"line":25,"column":82},"end":{"line":25,"column":109}},"36":{"start":{"line":26,"column":18},"end":{"line":26,"column":51}},"37":{"start":{"line":27,"column":0},"end":{"line":27,"column":118}},"38":{"start":{"line":27,"column":83},"end":{"line":27,"column":112}},"39":{"start":{"line":28,"column":21},"end":{"line":28,"column":57}},"40":{"start":{"line":29,"column":0},"end":{"line":29,"column":125}},"41":{"start":{"line":29,"column":85},"end":{"line":29,"column":119}},"42":{"start":{"line":30,"column":20},"end":{"line":30,"column":55}},"43":{"start":{"line":31,"column":0},"end":{"line":31,"column":122}},"44":{"start":{"line":31,"column":84},"end":{"line":31,"column":116}},"45":{"start":{"line":32,"column":23},"end":{"line":32,"column":61}},"46":{"start":{"line":33,"column":0},"end":{"line":33,"column":131}},"47":{"start":{"line":33,"column":87},"end":{"line":33,"column":125}},"48":{"start":{"line":34,"column":24},"end":{"line":34,"column":61}},"49":{"start":{"line":35,"column":0},"end":{"line":35,"column":134}},"50":{"start":{"line":35,"column":88},"end":{"line":35,"column":128}},"51":{"start":{"line":36,"column":11},"end":{"line":36,"column":32}},"52":{"start":{"line":37,"column":0},"end":{"line":37,"column":97}},"53":{"start":{"line":37,"column":76},"end":{"line":37,"column":91}},"54":{"start":{"line":38,"column":24},"end":{"line":38,"column":63}},"55":{"start":{"line":39,"column":0},"end":{"line":39,"column":122}},"56":{"start":{"line":39,"column":82},"end":{"line":39,"column":116}},"57":{"start":{"line":40,"column":27},"end":{"line":40,"column":65}},"58":{"start":{"line":41,"column":0},"end":{"line":41,"column":145}},"59":{"start":{"line":41,"column":92},"end":{"line":41,"column":139}},"60":{"start":{"line":42,"column":0},"end":{"line":42,"column":141}},"61":{"start":{"line":42,"column":90},"end":{"line":42,"column":135}},"62":{"start":{"line":43,"column":0},"end":{"line":43,"column":139}},"63":{"start":{"line":43,"column":89},"end":{"line":43,"column":133}},"64":{"start":{"line":44,"column":0},"end":{"line":44,"column":137}},"65":{"start":{"line":44,"column":88},"end":{"line":44,"column":131}},"66":{"start":{"line":45,"column":22},"end":{"line":45,"column":54}},"67":{"start":{"line":46,"column":0},"end":{"line":46,"column":160}},"68":{"start":{"line":46,"column":102},"end":{"line":46,"column":154}},"69":{"start":{"line":47,"column":22},"end":{"line":47,"column":54}},"70":{"start":{"line":48,"column":0},"end":{"line":48,"column":140}},"71":{"start":{"line":48,"column":92},"end":{"line":48,"column":134}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":69},"end":{"line":7,"column":70}},"loc":{"start":{"line":7,"column":81},"end":{"line":7,"column":114}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":9,"column":76},"end":{"line":9,"column":77}},"loc":{"start":{"line":9,"column":88},"end":{"line":9,"column":132}},"line":9},"2":{"name":"(anonymous_2)","decl":{"start":{"line":10,"column":75},"end":{"line":10,"column":76}},"loc":{"start":{"line":10,"column":87},"end":{"line":10,"column":130}},"line":10},"3":{"name":"(anonymous_3)","decl":{"start":{"line":11,"column":74},"end":{"line":11,"column":75}},"loc":{"start":{"line":11,"column":86},"end":{"line":11,"column":128}},"line":11},"4":{"name":"(anonymous_4)","decl":{"start":{"line":13,"column":80},"end":{"line":13,"column":81}},"loc":{"start":{"line":13,"column":92},"end":{"line":13,"column":143}},"line":13},"5":{"name":"(anonymous_5)","decl":{"start":{"line":14,"column":75},"end":{"line":14,"column":76}},"loc":{"start":{"line":14,"column":87},"end":{"line":14,"column":133}},"line":14},"6":{"name":"(anonymous_6)","decl":{"start":{"line":16,"column":70},"end":{"line":16,"column":71}},"loc":{"start":{"line":16,"column":82},"end":{"line":16,"column":117}},"line":16},"7":{"name":"(anonymous_7)","decl":{"start":{"line":18,"column":66},"end":{"line":18,"column":67}},"loc":{"start":{"line":18,"column":78},"end":{"line":18,"column":105}},"line":18},"8":{"name":"(anonymous_8)","decl":{"start":{"line":20,"column":65},"end":{"line":20,"column":66}},"loc":{"start":{"line":20,"column":77},"end":{"line":20,"column":102}},"line":20},"9":{"name":"(anonymous_9)","decl":{"start":{"line":22,"column":66},"end":{"line":22,"column":67}},"loc":{"start":{"line":22,"column":78},"end":{"line":22,"column":105}},"line":22},"10":{"name":"(anonymous_10)","decl":{"start":{"line":23,"column":80},"end":{"line":23,"column":81}},"loc":{"start":{"line":23,"column":92},"end":{"line":23,"column":133}},"line":23},"11":{"name":"(anonymous_11)","decl":{"start":{"line":25,"column":68},"end":{"line":25,"column":69}},"loc":{"start":{"line":25,"column":80},"end":{"line":25,"column":111}},"line":25},"12":{"name":"(anonymous_12)","decl":{"start":{"line":27,"column":69},"end":{"line":27,"column":70}},"loc":{"start":{"line":27,"column":81},"end":{"line":27,"column":114}},"line":27},"13":{"name":"(anonymous_13)","decl":{"start":{"line":29,"column":71},"end":{"line":29,"column":72}},"loc":{"start":{"line":29,"column":83},"end":{"line":29,"column":121}},"line":29},"14":{"name":"(anonymous_14)","decl":{"start":{"line":31,"column":70},"end":{"line":31,"column":71}},"loc":{"start":{"line":31,"column":82},"end":{"line":31,"column":118}},"line":31},"15":{"name":"(anonymous_15)","decl":{"start":{"line":33,"column":73},"end":{"line":33,"column":74}},"loc":{"start":{"line":33,"column":85},"end":{"line":33,"column":127}},"line":33},"16":{"name":"(anonymous_16)","decl":{"start":{"line":35,"column":74},"end":{"line":35,"column":75}},"loc":{"start":{"line":35,"column":86},"end":{"line":35,"column":130}},"line":35},"17":{"name":"(anonymous_17)","decl":{"start":{"line":37,"column":62},"end":{"line":37,"column":63}},"loc":{"start":{"line":37,"column":74},"end":{"line":37,"column":93}},"line":37},"18":{"name":"(anonymous_18)","decl":{"start":{"line":39,"column":68},"end":{"line":39,"column":69}},"loc":{"start":{"line":39,"column":80},"end":{"line":39,"column":118}},"line":39},"19":{"name":"(anonymous_19)","decl":{"start":{"line":41,"column":78},"end":{"line":41,"column":79}},"loc":{"start":{"line":41,"column":90},"end":{"line":41,"column":141}},"line":41},"20":{"name":"(anonymous_20)","decl":{"start":{"line":42,"column":76},"end":{"line":42,"column":77}},"loc":{"start":{"line":42,"column":88},"end":{"line":42,"column":137}},"line":42},"21":{"name":"(anonymous_21)","decl":{"start":{"line":43,"column":75},"end":{"line":43,"column":76}},"loc":{"start":{"line":43,"column":87},"end":{"line":43,"column":135}},"line":43},"22":{"name":"(anonymous_22)","decl":{"start":{"line":44,"column":74},"end":{"line":44,"column":75}},"loc":{"start":{"line":44,"column":86},"end":{"line":44,"column":133}},"line":44},"23":{"name":"(anonymous_23)","decl":{"start":{"line":46,"column":88},"end":{"line":46,"column":89}},"loc":{"start":{"line":46,"column":100},"end":{"line":46,"column":156}},"line":46},"24":{"name":"(anonymous_24)","decl":{"start":{"line":48,"column":78},"end":{"line":48,"column":79}},"loc":{"start":{"line":48,"column":90},"end":{"line":48,"column":136}},"line":48}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":75,"7":1,"8":1,"9":1,"10":1,"11":0,"12":1,"13":0,"14":1,"15":1,"16":0,"17":1,"18":0,"19":1,"20":1,"21":138,"22":1,"23":1,"24":9,"25":1,"26":1,"27":15,"28":1,"29":1,"30":65,"31":1,"32":0,"33":1,"34":1,"35":6,"36":1,"37":1,"38":6,"39":1,"40":1,"41":3,"42":1,"43":1,"44":1,"45":1,"46":1,"47":0,"48":1,"49":1,"50":1,"51":1,"52":1,"53":0,"54":1,"55":1,"56":4,"57":1,"58":1,"59":0,"60":1,"61":0,"62":1,"63":0,"64":1,"65":0,"66":1,"67":1,"68":0,"69":1,"70":1,"71":1},"f":{"0":75,"1":1,"2":0,"3":0,"4":0,"5":0,"6":138,"7":9,"8":15,"9":65,"10":0,"11":6,"12":6,"13":3,"14":1,"15":0,"16":1,"17":0,"18":4,"19":0,"20":0,"21":0,"22":0,"23":0,"24":1},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/inversify.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/inversify.ts"],"names":[],"mappings":";;;AAAA,gDAAkD;AACrC,QAAA,YAAY,GAAG,IAAI,CAAC;AACjC,mDAAkD;AAAzC,sGAAA,SAAS,OAAA;AAClB,2DAA8F;AAArF,iHAAA,gBAAgB,OAAA;AAAE,gHAAA,eAAe,OAAA;AAAE,+GAAA,cAAc,OAAA;AAC1D,iEAAqF;AAA5E,wHAAA,oBAAoB,OAAA;AAAE,mHAAA,eAAe,OAAA;AAC9C,sDAAqD;AAA5C,wGAAA,UAAU,OAAA;AACnB,8CAA6C;AAApC,gGAAA,MAAM,OAAA;AACf,4CAA2C;AAAlC,8FAAA,KAAK,OAAA;AACd,8CAAmE;AAA1D,gGAAA,MAAM,OAAA;AAAE,8GAAA,oBAAoB,OAAA;AACrC,kDAAiD;AAAxC,oGAAA,QAAQ,OAAA;AACjB,oDAAmD;AAA1C,sGAAA,SAAS,OAAA;AAClB,0DAAwD;AAA/C,2GAAA,WAAW,OAAA;AACpB,wDAAsD;AAA7C,yGAAA,UAAU,OAAA;AACnB,8DAA4D;AAAnD,+GAAA,aAAa,OAAA;AACtB,8DAA4D;AAAnD,iHAAA,cAAc,OAAA;AACvB,iCAAgC;AAAvB,wFAAA,EAAE,OAAA;AAEX,gEAAwD;AAA/C,2GAAA,QAAQ,OAAA;AACjB,kEAAoH;AAA3G,wHAAA,kBAAkB,OAAA;AAAE,sHAAA,gBAAgB,OAAA;AAAE,qHAAA,eAAe,OAAA;AAAE,oHAAA,cAAc,OAAA;AAC9E,uDAAqE;AAA5D,6HAAA,4BAA4B,OAAA;AACrC,uDAA2D;AAAlD,mHAAA,kBAAkB,OAAA","sourcesContent":["import * as keys from \"./constants/metadata_keys\";\nexport const METADATA_KEY = keys;\nexport { Container } from \"./container/container\";\nexport { BindingScopeEnum, BindingTypeEnum, TargetTypeEnum } from \"./constants/literal_types\";\nexport { AsyncContainerModule, ContainerModule } from \"./container/container_module\";\nexport { injectable } from \"./annotation/injectable\";\nexport { tagged } from \"./annotation/tagged\";\nexport { named } from \"./annotation/named\";\nexport { inject, LazyServiceIdentifer } from \"./annotation/inject\";\nexport { optional } from \"./annotation/optional\";\nexport { unmanaged } from \"./annotation/unmanaged\";\nexport { multiInject } from \"./annotation/multi_inject\";\nexport { targetName } from \"./annotation/target_name\";\nexport { postConstruct } from \"./annotation/post_construct\";\nexport { MetadataReader } from \"./planning/metadata_reader\";\nexport { id } from \"./utils/id\";\nexport { interfaces } from \"./interfaces/interfaces\";\nexport { decorate } from \"./annotation/decorator_utils\";\nexport { traverseAncerstors, taggedConstraint, namedConstraint, typeConstraint } from \"./syntax/constraint_helpers\";\nexport { getServiceIdentifierAsString } from \"./utils/serialization\";\nexport { multiBindToService } from \"./utils/binding_utils\";\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"a19df9309869e128fcc4d864c9cefcc15525f7ea","contentHash":"4dba0dfff97d0d5f0e8afea6ef3dae6030aa5e176f2e6c8c32784044d8adce4f"},"/Users/dan/jsProjects/inversify/InversifyJS/src/container/container.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/container/container.ts","statementMap":{"0":{"start":{"line":2,"column":16},"end":{"line":10,"column":1}},"1":{"start":{"line":3,"column":28},"end":{"line":3,"column":110}},"2":{"start":{"line":3,"column":91},"end":{"line":3,"column":106}},"3":{"start":{"line":4,"column":4},"end":{"line":9,"column":7}},"4":{"start":{"line":5,"column":36},"end":{"line":5,"column":97}},"5":{"start":{"line":5,"column":42},"end":{"line":5,"column":70}},"6":{"start":{"line":5,"column":85},"end":{"line":5,"column":95}},"7":{"start":{"line":6,"column":35},"end":{"line":6,"column":100}},"8":{"start":{"line":6,"column":41},"end":{"line":6,"column":73}},"9":{"start":{"line":6,"column":88},"end":{"line":6,"column":98}},"10":{"start":{"line":7,"column":32},"end":{"line":7,"column":116}},"11":{"start":{"line":8,"column":8},"end":{"line":8,"column":78}},"12":{"start":{"line":11,"column":18},"end":{"line":37,"column":1}},"13":{"start":{"line":12,"column":12},"end":{"line":12,"column":104}},"14":{"start":{"line":12,"column":43},"end":{"line":12,"column":68}},"15":{"start":{"line":12,"column":57},"end":{"line":12,"column":68}},"16":{"start":{"line":12,"column":69},"end":{"line":12,"column":81}},"17":{"start":{"line":13,"column":4},"end":{"line":13,"column":157}},"18":{"start":{"line":13,"column":138},"end":{"line":13,"column":150}},"19":{"start":{"line":14,"column":23},"end":{"line":14,"column":68}},"20":{"start":{"line":14,"column":45},"end":{"line":14,"column":65}},"21":{"start":{"line":16,"column":8},"end":{"line":16,"column":70}},"22":{"start":{"line":16,"column":15},"end":{"line":16,"column":70}},"23":{"start":{"line":17,"column":8},"end":{"line":34,"column":66}},"24":{"start":{"line":17,"column":18},"end":{"line":34,"column":66}},"25":{"start":{"line":18,"column":12},"end":{"line":18,"column":169}},"26":{"start":{"line":18,"column":160},"end":{"line":18,"column":169}},"27":{"start":{"line":19,"column":12},"end":{"line":19,"column":52}},"28":{"start":{"line":19,"column":26},"end":{"line":19,"column":52}},"29":{"start":{"line":20,"column":12},"end":{"line":32,"column":13}},"30":{"start":{"line":21,"column":32},"end":{"line":21,"column":39}},"31":{"start":{"line":21,"column":40},"end":{"line":21,"column":46}},"32":{"start":{"line":22,"column":24},"end":{"line":22,"column":34}},"33":{"start":{"line":22,"column":35},"end":{"line":22,"column":72}},"34":{"start":{"line":23,"column":24},"end":{"line":23,"column":34}},"35":{"start":{"line":23,"column":35},"end":{"line":23,"column":45}},"36":{"start":{"line":23,"column":46},"end":{"line":23,"column":55}},"37":{"start":{"line":23,"column":56},"end":{"line":23,"column":65}},"38":{"start":{"line":24,"column":24},"end":{"line":24,"column":41}},"39":{"start":{"line":24,"column":42},"end":{"line":24,"column":55}},"40":{"start":{"line":24,"column":56},"end":{"line":24,"column":65}},"41":{"start":{"line":26,"column":20},"end":{"line":26,"column":128}},"42":{"start":{"line":26,"column":110},"end":{"line":26,"column":116}},"43":{"start":{"line":26,"column":117},"end":{"line":26,"column":126}},"44":{"start":{"line":27,"column":20},"end":{"line":27,"column":106}},"45":{"start":{"line":27,"column":81},"end":{"line":27,"column":97}},"46":{"start":{"line":27,"column":98},"end":{"line":27,"column":104}},"47":{"start":{"line":28,"column":20},"end":{"line":28,"column":89}},"48":{"start":{"line":28,"column":57},"end":{"line":28,"column":72}},"49":{"start":{"line":28,"column":73},"end":{"line":28,"column":80}},"50":{"start":{"line":28,"column":81},"end":{"line":28,"column":87}},"51":{"start":{"line":29,"column":20},"end":{"line":29,"column":87}},"52":{"start":{"line":29,"column":47},"end":{"line":29,"column":62}},"53":{"start":{"line":29,"column":63},"end":{"line":29,"column":78}},"54":{"start":{"line":29,"column":79},"end":{"line":29,"column":85}},"55":{"start":{"line":30,"column":20},"end":{"line":30,"column":42}},"56":{"start":{"line":30,"column":30},"end":{"line":30,"column":42}},"57":{"start":{"line":31,"column":20},"end":{"line":31,"column":33}},"58":{"start":{"line":31,"column":34},"end":{"line":31,"column":43}},"59":{"start":{"line":33,"column":12},"end":{"line":33,"column":39}},"60":{"start":{"line":34,"column":22},"end":{"line":34,"column":34}},"61":{"start":{"line":34,"column":35},"end":{"line":34,"column":41}},"62":{"start":{"line":34,"column":54},"end":{"line":34,"column":64}},"63":{"start":{"line":35,"column":8},"end":{"line":35,"column":35}},"64":{"start":{"line":35,"column":23},"end":{"line":35,"column":35}},"65":{"start":{"line":35,"column":36},"end":{"line":35,"column":89}},"66":{"start":{"line":38,"column":20},"end":{"line":42,"column":1}},"67":{"start":{"line":39,"column":4},"end":{"line":40,"column":24}},"68":{"start":{"line":39,"column":17},"end":{"line":39,"column":18}},"69":{"start":{"line":39,"column":25},"end":{"line":39,"column":36}},"70":{"start":{"line":39,"column":42},"end":{"line":39,"column":51}},"71":{"start":{"line":40,"column":8},"end":{"line":40,"column":24}},"72":{"start":{"line":41,"column":4},"end":{"line":41,"column":14}},"73":{"start":{"line":43,"column":0},"end":{"line":43,"column":62}},"74":{"start":{"line":44,"column":0},"end":{"line":44,"column":27}},"75":{"start":{"line":45,"column":16},"end":{"line":45,"column":46}},"76":{"start":{"line":46,"column":17},"end":{"line":46,"column":51}},"77":{"start":{"line":47,"column":22},"end":{"line":47,"column":59}},"78":{"start":{"line":48,"column":19},"end":{"line":48,"column":56}},"79":{"start":{"line":49,"column":24},"end":{"line":49,"column":62}},"80":{"start":{"line":50,"column":16},"end":{"line":50,"column":46}},"81":{"start":{"line":51,"column":17},"end":{"line":51,"column":50}},"82":{"start":{"line":52,"column":26},"end":{"line":52,"column":64}},"83":{"start":{"line":53,"column":11},"end":{"line":53,"column":33}},"84":{"start":{"line":54,"column":22},"end":{"line":54,"column":55}},"85":{"start":{"line":55,"column":27},"end":{"line":55,"column":58}},"86":{"start":{"line":56,"column":15},"end":{"line":56,"column":34}},"87":{"start":{"line":57,"column":17},"end":{"line":340,"column":3}},"88":{"start":{"line":59,"column":8},"end":{"line":59,"column":37}},"89":{"start":{"line":60,"column":22},"end":{"line":60,"column":44}},"90":{"start":{"line":61,"column":8},"end":{"line":63,"column":9}},"91":{"start":{"line":62,"column":12},"end":{"line":62,"column":81}},"92":{"start":{"line":64,"column":8},"end":{"line":71,"column":9}},"93":{"start":{"line":65,"column":12},"end":{"line":65,"column":78}},"94":{"start":{"line":67,"column":13},"end":{"line":71,"column":9}},"95":{"start":{"line":70,"column":12},"end":{"line":70,"column":85}},"96":{"start":{"line":72,"column":8},"end":{"line":77,"column":9}},"97":{"start":{"line":73,"column":12},"end":{"line":73,"column":47}},"98":{"start":{"line":75,"column":13},"end":{"line":77,"column":9}},"99":{"start":{"line":76,"column":12},"end":{"line":76,"column":92}},"100":{"start":{"line":78,"column":8},"end":{"line":83,"column":9}},"101":{"start":{"line":79,"column":12},"end":{"line":79,"column":48}},"102":{"start":{"line":81,"column":13},"end":{"line":83,"column":9}},"103":{"start":{"line":82,"column":12},"end":{"line":82,"column":87}},"104":{"start":{"line":84,"column":8},"end":{"line":88,"column":10}},"105":{"start":{"line":89,"column":8},"end":{"line":89,"column":28}},"106":{"start":{"line":90,"column":8},"end":{"line":90,"column":56}},"107":{"start":{"line":91,"column":8},"end":{"line":91,"column":29}},"108":{"start":{"line":92,"column":8},"end":{"line":92,"column":32}},"109":{"start":{"line":93,"column":8},"end":{"line":93,"column":27}},"110":{"start":{"line":94,"column":8},"end":{"line":94,"column":70}},"111":{"start":{"line":96,"column":4},"end":{"line":115,"column":6}},"112":{"start":{"line":97,"column":25},"end":{"line":97,"column":27}},"113":{"start":{"line":98,"column":8},"end":{"line":100,"column":9}},"114":{"start":{"line":98,"column":22},"end":{"line":98,"column":23}},"115":{"start":{"line":99,"column":12},"end":{"line":99,"column":47}},"116":{"start":{"line":101,"column":24},"end":{"line":101,"column":39}},"117":{"start":{"line":102,"column":31},"end":{"line":102,"column":174}},"118":{"start":{"line":102,"column":116},"end":{"line":102,"column":171}},"119":{"start":{"line":103,"column":32},"end":{"line":103,"column":73}},"120":{"start":{"line":105,"column":12},"end":{"line":109,"column":15}},"121":{"start":{"line":106,"column":16},"end":{"line":108,"column":19}},"122":{"start":{"line":107,"column":20},"end":{"line":107,"column":80}},"123":{"start":{"line":111,"column":8},"end":{"line":113,"column":11}},"124":{"start":{"line":112,"column":12},"end":{"line":112,"column":71}},"125":{"start":{"line":114,"column":8},"end":{"line":114,"column":25}},"126":{"start":{"line":116,"column":4},"end":{"line":127,"column":6}},"127":{"start":{"line":117,"column":22},"end":{"line":117,"column":24}},"128":{"start":{"line":118,"column":8},"end":{"line":120,"column":9}},"129":{"start":{"line":118,"column":22},"end":{"line":118,"column":23}},"130":{"start":{"line":119,"column":12},"end":{"line":119,"column":40}},"131":{"start":{"line":121,"column":25},"end":{"line":121,"column":65}},"132":{"start":{"line":122,"column":8},"end":{"line":126,"column":9}},"133":{"start":{"line":122,"column":22},"end":{"line":122,"column":23}},"134":{"start":{"line":122,"column":37},"end":{"line":122,"column":44}},"135":{"start":{"line":123,"column":32},"end":{"line":123,"column":45}},"136":{"start":{"line":124,"column":41},"end":{"line":124,"column":69}},"137":{"start":{"line":125,"column":12},"end":{"line":125,"column":190}},"138":{"start":{"line":128,"column":4},"end":{"line":156,"column":6}},"139":{"start":{"line":129,"column":22},"end":{"line":129,"column":24}},"140":{"start":{"line":130,"column":8},"end":{"line":132,"column":9}},"141":{"start":{"line":130,"column":22},"end":{"line":130,"column":23}},"142":{"start":{"line":131,"column":12},"end":{"line":131,"column":40}},"143":{"start":{"line":133,"column":8},"end":{"line":155,"column":11}},"144":{"start":{"line":135,"column":12},"end":{"line":154,"column":15}},"145":{"start":{"line":136,"column":16},"end":{"line":153,"column":17}},"146":{"start":{"line":138,"column":24},"end":{"line":138,"column":78}},"147":{"start":{"line":139,"column":24},"end":{"line":139,"column":52}},"148":{"start":{"line":140,"column":24},"end":{"line":140,"column":37}},"149":{"start":{"line":142,"column":24},"end":{"line":142,"column":68}},"150":{"start":{"line":142,"column":54},"end":{"line":142,"column":68}},"151":{"start":{"line":143,"column":24},"end":{"line":143,"column":54}},"152":{"start":{"line":144,"column":24},"end":{"line":144,"column":78}},"153":{"start":{"line":145,"column":24},"end":{"line":145,"column":214}},"154":{"start":{"line":147,"column":24},"end":{"line":147,"column":34}},"155":{"start":{"line":148,"column":24},"end":{"line":148,"column":37}},"156":{"start":{"line":150,"column":24},"end":{"line":150,"column":29}},"157":{"start":{"line":151,"column":24},"end":{"line":151,"column":38}},"158":{"start":{"line":152,"column":28},"end":{"line":152,"column":39}},"159":{"start":{"line":157,"column":4},"end":{"line":170,"column":6}},"160":{"start":{"line":158,"column":20},"end":{"line":158,"column":24}},"161":{"start":{"line":159,"column":22},"end":{"line":159,"column":24}},"162":{"start":{"line":160,"column":8},"end":{"line":162,"column":9}},"163":{"start":{"line":160,"column":22},"end":{"line":160,"column":23}},"164":{"start":{"line":161,"column":12},"end":{"line":161,"column":40}},"165":{"start":{"line":163,"column":31},"end":{"line":165,"column":12}},"166":{"start":{"line":163,"column":53},"end":{"line":165,"column":10}},"167":{"start":{"line":164,"column":12},"end":{"line":164,"column":46}},"168":{"start":{"line":166,"column":8},"end":{"line":169,"column":11}},"169":{"start":{"line":167,"column":28},"end":{"line":167,"column":55}},"170":{"start":{"line":168,"column":12},"end":{"line":168,"column":66}},"171":{"start":{"line":171,"column":4},"end":{"line":176,"column":6}},"172":{"start":{"line":172,"column":20},"end":{"line":172,"column":91}},"173":{"start":{"line":173,"column":22},"end":{"line":173,"column":69}},"174":{"start":{"line":174,"column":8},"end":{"line":174,"column":64}},"175":{"start":{"line":175,"column":8},"end":{"line":175,"column":64}},"176":{"start":{"line":177,"column":4},"end":{"line":180,"column":6}},"177":{"start":{"line":178,"column":8},"end":{"line":178,"column":39}},"178":{"start":{"line":179,"column":8},"end":{"line":179,"column":44}},"179":{"start":{"line":181,"column":4},"end":{"line":188,"column":6}},"180":{"start":{"line":182,"column":8},"end":{"line":187,"column":9}},"181":{"start":{"line":183,"column":12},"end":{"line":183,"column":62}},"182":{"start":{"line":186,"column":12},"end":{"line":186,"column":126}},"183":{"start":{"line":189,"column":4},"end":{"line":191,"column":6}},"184":{"start":{"line":190,"column":8},"end":{"line":190,"column":56}},"185":{"start":{"line":192,"column":4},"end":{"line":198,"column":6}},"186":{"start":{"line":193,"column":20},"end":{"line":193,"column":69}},"187":{"start":{"line":194,"column":8},"end":{"line":196,"column":9}},"188":{"start":{"line":195,"column":12},"end":{"line":195,"column":59}},"189":{"start":{"line":197,"column":8},"end":{"line":197,"column":21}},"190":{"start":{"line":199,"column":4},"end":{"line":201,"column":6}},"191":{"start":{"line":200,"column":8},"end":{"line":200,"column":84}},"192":{"start":{"line":202,"column":4},"end":{"line":213,"column":6}},"193":{"start":{"line":203,"column":20},"end":{"line":203,"column":25}},"194":{"start":{"line":204,"column":8},"end":{"line":208,"column":9}},"195":{"start":{"line":205,"column":27},"end":{"line":205,"column":73}},"196":{"start":{"line":206,"column":28},"end":{"line":206,"column":92}},"197":{"start":{"line":207,"column":12},"end":{"line":207,"column":84}},"198":{"start":{"line":207,"column":49},"end":{"line":207,"column":80}},"199":{"start":{"line":209,"column":8},"end":{"line":211,"column":9}},"200":{"start":{"line":210,"column":12},"end":{"line":210,"column":77}},"201":{"start":{"line":212,"column":8},"end":{"line":212,"column":21}},"202":{"start":{"line":214,"column":4},"end":{"line":216,"column":6}},"203":{"start":{"line":215,"column":8},"end":{"line":215,"column":123}},"204":{"start":{"line":217,"column":4},"end":{"line":224,"column":6}},"205":{"start":{"line":218,"column":23},"end":{"line":218,"column":44}},"206":{"start":{"line":219,"column":8},"end":{"line":221,"column":9}},"207":{"start":{"line":220,"column":12},"end":{"line":220,"column":68}},"208":{"start":{"line":222,"column":8},"end":{"line":222,"column":52}},"209":{"start":{"line":223,"column":8},"end":{"line":223,"column":47}},"210":{"start":{"line":225,"column":4},"end":{"line":229,"column":6}},"211":{"start":{"line":226,"column":20},"end":{"line":226,"column":67}},"212":{"start":{"line":227,"column":8},"end":{"line":227,"column":28}},"213":{"start":{"line":228,"column":8},"end":{"line":228,"column":21}},"214":{"start":{"line":230,"column":4},"end":{"line":238,"column":6}},"215":{"start":{"line":231,"column":26},"end":{"line":231,"column":28}},"216":{"start":{"line":232,"column":8},"end":{"line":234,"column":9}},"217":{"start":{"line":232,"column":22},"end":{"line":232,"column":23}},"218":{"start":{"line":233,"column":12},"end":{"line":233,"column":44}},"219":{"start":{"line":235,"column":8},"end":{"line":235,"column":78}},"220":{"start":{"line":236,"column":22},"end":{"line":236,"column":84}},"221":{"start":{"line":237,"column":8},"end":{"line":237,"column":101}},"222":{"start":{"line":237,"column":70},"end":{"line":237,"column":88}},"223":{"start":{"line":239,"column":4},"end":{"line":241,"column":6}},"224":{"start":{"line":240,"column":8},"end":{"line":240,"column":46}},"225":{"start":{"line":242,"column":4},"end":{"line":244,"column":6}},"226":{"start":{"line":243,"column":8},"end":{"line":243,"column":99}},"227":{"start":{"line":245,"column":4},"end":{"line":247,"column":6}},"228":{"start":{"line":246,"column":8},"end":{"line":246,"column":111}},"229":{"start":{"line":248,"column":4},"end":{"line":250,"column":6}},"230":{"start":{"line":249,"column":8},"end":{"line":249,"column":80}},"231":{"start":{"line":251,"column":4},"end":{"line":253,"column":6}},"232":{"start":{"line":252,"column":8},"end":{"line":252,"column":97}},"233":{"start":{"line":254,"column":4},"end":{"line":256,"column":6}},"234":{"start":{"line":255,"column":8},"end":{"line":255,"column":110}},"235":{"start":{"line":257,"column":4},"end":{"line":259,"column":6}},"236":{"start":{"line":258,"column":8},"end":{"line":258,"column":83}},"237":{"start":{"line":260,"column":4},"end":{"line":267,"column":6}},"238":{"start":{"line":261,"column":28},"end":{"line":261,"column":46}},"239":{"start":{"line":262,"column":8},"end":{"line":262,"column":57}},"240":{"start":{"line":263,"column":8},"end":{"line":265,"column":11}},"241":{"start":{"line":264,"column":12},"end":{"line":264,"column":45}},"242":{"start":{"line":266,"column":8},"end":{"line":266,"column":54}},"243":{"start":{"line":268,"column":4},"end":{"line":307,"column":6}},"244":{"start":{"line":269,"column":20},"end":{"line":269,"column":24}},"245":{"start":{"line":270,"column":26},"end":{"line":272,"column":9}},"246":{"start":{"line":271,"column":12},"end":{"line":271,"column":57}},"247":{"start":{"line":273,"column":30},"end":{"line":280,"column":9}},"248":{"start":{"line":274,"column":12},"end":{"line":279,"column":14}},"249":{"start":{"line":275,"column":28},"end":{"line":275,"column":50}},"250":{"start":{"line":276,"column":38},"end":{"line":276,"column":62}},"251":{"start":{"line":277,"column":16},"end":{"line":277,"column":55}},"252":{"start":{"line":278,"column":16},"end":{"line":278,"column":39}},"253":{"start":{"line":281,"column":32},"end":{"line":286,"column":9}},"254":{"start":{"line":282,"column":12},"end":{"line":285,"column":14}},"255":{"start":{"line":283,"column":30},"end":{"line":283,"column":54}},"256":{"start":{"line":284,"column":16},"end":{"line":284,"column":43}},"257":{"start":{"line":287,"column":33},"end":{"line":292,"column":9}},"258":{"start":{"line":288,"column":12},"end":{"line":291,"column":14}},"259":{"start":{"line":289,"column":31},"end":{"line":289,"column":56}},"260":{"start":{"line":290,"column":16},"end":{"line":290,"column":51}},"261":{"start":{"line":293,"column":32},"end":{"line":300,"column":9}},"262":{"start":{"line":294,"column":12},"end":{"line":299,"column":14}},"263":{"start":{"line":295,"column":30},"end":{"line":295,"column":54}},"264":{"start":{"line":296,"column":38},"end":{"line":296,"column":64}},"265":{"start":{"line":297,"column":16},"end":{"line":297,"column":55}},"266":{"start":{"line":298,"column":16},"end":{"line":298,"column":39}},"267":{"start":{"line":301,"column":8},"end":{"line":306,"column":14}},"268":{"start":{"line":301,"column":32},"end":{"line":306,"column":11}},"269":{"start":{"line":308,"column":4},"end":{"line":329,"column":6}},"270":{"start":{"line":309,"column":21},"end":{"line":309,"column":25}},"271":{"start":{"line":310,"column":26},"end":{"line":318,"column":9}},"272":{"start":{"line":312,"column":53},"end":{"line":312,"column":68}},"273":{"start":{"line":319,"column":8},"end":{"line":327,"column":9}},"274":{"start":{"line":320,"column":12},"end":{"line":320,"column":51}},"275":{"start":{"line":321,"column":12},"end":{"line":323,"column":13}},"276":{"start":{"line":322,"column":16},"end":{"line":322,"column":70}},"277":{"start":{"line":326,"column":12},"end":{"line":326,"column":57}},"278":{"start":{"line":328,"column":8},"end":{"line":328,"column":22}},"279":{"start":{"line":330,"column":4},"end":{"line":338,"column":6}},"280":{"start":{"line":331,"column":20},"end":{"line":331,"column":24}},"281":{"start":{"line":332,"column":8},"end":{"line":337,"column":10}},"282":{"start":{"line":333,"column":26},"end":{"line":333,"column":176}},"283":{"start":{"line":334,"column":12},"end":{"line":334,"column":55}},"284":{"start":{"line":335,"column":25},"end":{"line":335,"column":52}},"285":{"start":{"line":336,"column":12},"end":{"line":336,"column":26}},"286":{"start":{"line":339,"column":4},"end":{"line":339,"column":21}},"287":{"start":{"line":341,"column":0},"end":{"line":341,"column":30}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":44},"end":{"line":2,"column":45}},"loc":{"start":{"line":2,"column":89},"end":{"line":10,"column":1}},"line":2},"1":{"name":"adopt","decl":{"start":{"line":3,"column":13},"end":{"line":3,"column":18}},"loc":{"start":{"line":3,"column":26},"end":{"line":3,"column":112}},"line":3},"2":{"name":"(anonymous_2)","decl":{"start":{"line":3,"column":70},"end":{"line":3,"column":71}},"loc":{"start":{"line":3,"column":89},"end":{"line":3,"column":108}},"line":3},"3":{"name":"(anonymous_3)","decl":{"start":{"line":4,"column":36},"end":{"line":4,"column":37}},"loc":{"start":{"line":4,"column":63},"end":{"line":9,"column":5}},"line":4},"4":{"name":"fulfilled","decl":{"start":{"line":5,"column":17},"end":{"line":5,"column":26}},"loc":{"start":{"line":5,"column":34},"end":{"line":5,"column":99}},"line":5},"5":{"name":"rejected","decl":{"start":{"line":6,"column":17},"end":{"line":6,"column":25}},"loc":{"start":{"line":6,"column":33},"end":{"line":6,"column":102}},"line":6},"6":{"name":"step","decl":{"start":{"line":7,"column":17},"end":{"line":7,"column":21}},"loc":{"start":{"line":7,"column":30},"end":{"line":7,"column":118}},"line":7},"7":{"name":"(anonymous_7)","decl":{"start":{"line":11,"column":48},"end":{"line":11,"column":49}},"loc":{"start":{"line":11,"column":73},"end":{"line":37,"column":1}},"line":11},"8":{"name":"(anonymous_8)","decl":{"start":{"line":12,"column":30},"end":{"line":12,"column":31}},"loc":{"start":{"line":12,"column":41},"end":{"line":12,"column":83}},"line":12},"9":{"name":"(anonymous_9)","decl":{"start":{"line":13,"column":125},"end":{"line":13,"column":126}},"loc":{"start":{"line":13,"column":136},"end":{"line":13,"column":152}},"line":13},"10":{"name":"verb","decl":{"start":{"line":14,"column":13},"end":{"line":14,"column":17}},"loc":{"start":{"line":14,"column":21},"end":{"line":14,"column":70}},"line":14},"11":{"name":"(anonymous_11)","decl":{"start":{"line":14,"column":30},"end":{"line":14,"column":31}},"loc":{"start":{"line":14,"column":43},"end":{"line":14,"column":67}},"line":14},"12":{"name":"step","decl":{"start":{"line":15,"column":13},"end":{"line":15,"column":17}},"loc":{"start":{"line":15,"column":22},"end":{"line":36,"column":5}},"line":15},"13":{"name":"(anonymous_13)","decl":{"start":{"line":38,"column":52},"end":{"line":38,"column":53}},"loc":{"start":{"line":38,"column":72},"end":{"line":42,"column":1}},"line":38},"14":{"name":"(anonymous_14)","decl":{"start":{"line":57,"column":17},"end":{"line":57,"column":18}},"loc":{"start":{"line":57,"column":29},"end":{"line":340,"column":1}},"line":57},"15":{"name":"Container","decl":{"start":{"line":58,"column":13},"end":{"line":58,"column":22}},"loc":{"start":{"line":58,"column":41},"end":{"line":95,"column":5}},"line":58},"16":{"name":"(anonymous_16)","decl":{"start":{"line":96,"column":22},"end":{"line":96,"column":23}},"loc":{"start":{"line":96,"column":56},"end":{"line":115,"column":5}},"line":96},"17":{"name":"(anonymous_17)","decl":{"start":{"line":102,"column":87},"end":{"line":102,"column":88}},"loc":{"start":{"line":102,"column":114},"end":{"line":102,"column":173}},"line":102},"18":{"name":"copyDictionary","decl":{"start":{"line":104,"column":17},"end":{"line":104,"column":31}},"loc":{"start":{"line":104,"column":53},"end":{"line":110,"column":9}},"line":104},"19":{"name":"(anonymous_19)","decl":{"start":{"line":105,"column":28},"end":{"line":105,"column":29}},"loc":{"start":{"line":105,"column":50},"end":{"line":109,"column":13}},"line":105},"20":{"name":"(anonymous_20)","decl":{"start":{"line":106,"column":30},"end":{"line":106,"column":31}},"loc":{"start":{"line":106,"column":49},"end":{"line":108,"column":17}},"line":106},"21":{"name":"(anonymous_21)","decl":{"start":{"line":111,"column":33},"end":{"line":111,"column":34}},"loc":{"start":{"line":111,"column":68},"end":{"line":113,"column":9}},"line":111},"22":{"name":"(anonymous_22)","decl":{"start":{"line":116,"column":31},"end":{"line":116,"column":32}},"loc":{"start":{"line":116,"column":43},"end":{"line":127,"column":5}},"line":116},"23":{"name":"(anonymous_23)","decl":{"start":{"line":128,"column":36},"end":{"line":128,"column":37}},"loc":{"start":{"line":128,"column":48},"end":{"line":156,"column":5}},"line":128},"24":{"name":"(anonymous_24)","decl":{"start":{"line":133,"column":47},"end":{"line":133,"column":48}},"loc":{"start":{"line":133,"column":59},"end":{"line":155,"column":9}},"line":133},"25":{"name":"(anonymous_25)","decl":{"start":{"line":135,"column":37},"end":{"line":135,"column":38}},"loc":{"start":{"line":135,"column":51},"end":{"line":154,"column":13}},"line":135},"26":{"name":"(anonymous_26)","decl":{"start":{"line":157,"column":33},"end":{"line":157,"column":34}},"loc":{"start":{"line":157,"column":45},"end":{"line":170,"column":5}},"line":157},"27":{"name":"(anonymous_27)","decl":{"start":{"line":163,"column":31},"end":{"line":163,"column":32}},"loc":{"start":{"line":163,"column":51},"end":{"line":165,"column":12}},"line":163},"28":{"name":"(anonymous_28)","decl":{"start":{"line":163,"column":60},"end":{"line":163,"column":61}},"loc":{"start":{"line":163,"column":76},"end":{"line":165,"column":9}},"line":163},"29":{"name":"(anonymous_29)","decl":{"start":{"line":166,"column":24},"end":{"line":166,"column":25}},"loc":{"start":{"line":166,"column":42},"end":{"line":169,"column":9}},"line":166},"30":{"name":"(anonymous_30)","decl":{"start":{"line":171,"column":31},"end":{"line":171,"column":32}},"loc":{"start":{"line":171,"column":60},"end":{"line":176,"column":5}},"line":171},"31":{"name":"(anonymous_31)","decl":{"start":{"line":177,"column":33},"end":{"line":177,"column":34}},"loc":{"start":{"line":177,"column":62},"end":{"line":180,"column":5}},"line":177},"32":{"name":"(anonymous_32)","decl":{"start":{"line":181,"column":33},"end":{"line":181,"column":34}},"loc":{"start":{"line":181,"column":62},"end":{"line":188,"column":5}},"line":181},"33":{"name":"(anonymous_33)","decl":{"start":{"line":189,"column":36},"end":{"line":189,"column":37}},"loc":{"start":{"line":189,"column":48},"end":{"line":191,"column":5}},"line":189},"34":{"name":"(anonymous_34)","decl":{"start":{"line":192,"column":34},"end":{"line":192,"column":35}},"loc":{"start":{"line":192,"column":63},"end":{"line":198,"column":5}},"line":192},"35":{"name":"(anonymous_35)","decl":{"start":{"line":199,"column":39},"end":{"line":199,"column":40}},"loc":{"start":{"line":199,"column":75},"end":{"line":201,"column":5}},"line":199},"36":{"name":"(anonymous_36)","decl":{"start":{"line":202,"column":40},"end":{"line":202,"column":41}},"loc":{"start":{"line":202,"column":81},"end":{"line":213,"column":5}},"line":202},"37":{"name":"(anonymous_37)","decl":{"start":{"line":207,"column":34},"end":{"line":207,"column":35}},"loc":{"start":{"line":207,"column":47},"end":{"line":207,"column":82}},"line":207},"38":{"name":"(anonymous_38)","decl":{"start":{"line":214,"column":35},"end":{"line":214,"column":36}},"loc":{"start":{"line":214,"column":47},"end":{"line":216,"column":5}},"line":214},"39":{"name":"(anonymous_39)","decl":{"start":{"line":217,"column":34},"end":{"line":217,"column":35}},"loc":{"start":{"line":217,"column":46},"end":{"line":224,"column":5}},"line":217},"40":{"name":"(anonymous_40)","decl":{"start":{"line":225,"column":38},"end":{"line":225,"column":39}},"loc":{"start":{"line":225,"column":66},"end":{"line":229,"column":5}},"line":225},"41":{"name":"(anonymous_41)","decl":{"start":{"line":230,"column":42},"end":{"line":230,"column":43}},"loc":{"start":{"line":230,"column":54},"end":{"line":238,"column":5}},"line":230},"42":{"name":"(anonymous_42)","decl":{"start":{"line":237,"column":46},"end":{"line":237,"column":47}},"loc":{"start":{"line":237,"column":68},"end":{"line":237,"column":90}},"line":237},"43":{"name":"(anonymous_43)","decl":{"start":{"line":239,"column":52},"end":{"line":239,"column":53}},"loc":{"start":{"line":239,"column":78},"end":{"line":241,"column":5}},"line":239},"44":{"name":"(anonymous_44)","decl":{"start":{"line":242,"column":30},"end":{"line":242,"column":31}},"loc":{"start":{"line":242,"column":59},"end":{"line":244,"column":5}},"line":242},"45":{"name":"(anonymous_45)","decl":{"start":{"line":245,"column":36},"end":{"line":245,"column":37}},"loc":{"start":{"line":245,"column":77},"end":{"line":247,"column":5}},"line":245},"46":{"name":"(anonymous_46)","decl":{"start":{"line":248,"column":35},"end":{"line":248,"column":36}},"loc":{"start":{"line":248,"column":71},"end":{"line":250,"column":5}},"line":248},"47":{"name":"(anonymous_47)","decl":{"start":{"line":251,"column":33},"end":{"line":251,"column":34}},"loc":{"start":{"line":251,"column":62},"end":{"line":253,"column":5}},"line":251},"48":{"name":"(anonymous_48)","decl":{"start":{"line":254,"column":39},"end":{"line":254,"column":40}},"loc":{"start":{"line":254,"column":80},"end":{"line":256,"column":5}},"line":254},"49":{"name":"(anonymous_49)","decl":{"start":{"line":257,"column":38},"end":{"line":257,"column":39}},"loc":{"start":{"line":257,"column":74},"end":{"line":259,"column":5}},"line":257},"50":{"name":"(anonymous_50)","decl":{"start":{"line":260,"column":34},"end":{"line":260,"column":35}},"loc":{"start":{"line":260,"column":65},"end":{"line":267,"column":5}},"line":260},"51":{"name":"(anonymous_51)","decl":{"start":{"line":263,"column":40},"end":{"line":263,"column":41}},"loc":{"start":{"line":263,"column":53},"end":{"line":265,"column":9}},"line":263},"52":{"name":"(anonymous_52)","decl":{"start":{"line":268,"column":60},"end":{"line":268,"column":61}},"loc":{"start":{"line":268,"column":72},"end":{"line":307,"column":5}},"line":268},"53":{"name":"(anonymous_53)","decl":{"start":{"line":270,"column":26},"end":{"line":270,"column":27}},"loc":{"start":{"line":270,"column":63},"end":{"line":272,"column":9}},"line":270},"54":{"name":"(anonymous_54)","decl":{"start":{"line":273,"column":30},"end":{"line":273,"column":31}},"loc":{"start":{"line":273,"column":50},"end":{"line":280,"column":9}},"line":273},"55":{"name":"(anonymous_55)","decl":{"start":{"line":274,"column":19},"end":{"line":274,"column":20}},"loc":{"start":{"line":274,"column":48},"end":{"line":279,"column":13}},"line":274},"56":{"name":"(anonymous_56)","decl":{"start":{"line":281,"column":32},"end":{"line":281,"column":33}},"loc":{"start":{"line":281,"column":52},"end":{"line":286,"column":9}},"line":281},"57":{"name":"(anonymous_57)","decl":{"start":{"line":282,"column":19},"end":{"line":282,"column":20}},"loc":{"start":{"line":282,"column":48},"end":{"line":285,"column":13}},"line":282},"58":{"name":"(anonymous_58)","decl":{"start":{"line":287,"column":33},"end":{"line":287,"column":34}},"loc":{"start":{"line":287,"column":53},"end":{"line":292,"column":9}},"line":287},"59":{"name":"(anonymous_59)","decl":{"start":{"line":288,"column":19},"end":{"line":288,"column":20}},"loc":{"start":{"line":288,"column":48},"end":{"line":291,"column":13}},"line":288},"60":{"name":"(anonymous_60)","decl":{"start":{"line":293,"column":32},"end":{"line":293,"column":33}},"loc":{"start":{"line":293,"column":52},"end":{"line":300,"column":9}},"line":293},"61":{"name":"(anonymous_61)","decl":{"start":{"line":294,"column":19},"end":{"line":294,"column":20}},"loc":{"start":{"line":294,"column":48},"end":{"line":299,"column":13}},"line":294},"62":{"name":"(anonymous_62)","decl":{"start":{"line":301,"column":15},"end":{"line":301,"column":16}},"loc":{"start":{"line":301,"column":30},"end":{"line":306,"column":13}},"line":301},"63":{"name":"(anonymous_63)","decl":{"start":{"line":308,"column":31},"end":{"line":308,"column":32}},"loc":{"start":{"line":308,"column":117},"end":{"line":329,"column":5}},"line":308},"64":{"name":"(anonymous_64)","decl":{"start":{"line":312,"column":32},"end":{"line":312,"column":33}},"loc":{"start":{"line":312,"column":51},"end":{"line":312,"column":70}},"line":312},"65":{"name":"(anonymous_65)","decl":{"start":{"line":330,"column":42},"end":{"line":330,"column":43}},"loc":{"start":{"line":330,"column":54},"end":{"line":338,"column":5}},"line":330},"66":{"name":"(anonymous_66)","decl":{"start":{"line":332,"column":15},"end":{"line":332,"column":16}},"loc":{"start":{"line":332,"column":31},"end":{"line":337,"column":9}},"line":332}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":16},"end":{"line":10,"column":1}},"type":"binary-expr","locations":[{"start":{"line":2,"column":17},"end":{"line":2,"column":21}},{"start":{"line":2,"column":25},"end":{"line":2,"column":39}},{"start":{"line":2,"column":44},"end":{"line":10,"column":1}}],"line":2},"1":{"loc":{"start":{"line":3,"column":35},"end":{"line":3,"column":109}},"type":"cond-expr","locations":[{"start":{"line":3,"column":56},"end":{"line":3,"column":61}},{"start":{"line":3,"column":64},"end":{"line":3,"column":109}}],"line":3},"2":{"loc":{"start":{"line":4,"column":16},"end":{"line":4,"column":34}},"type":"binary-expr","locations":[{"start":{"line":4,"column":16},"end":{"line":4,"column":17}},{"start":{"line":4,"column":22},"end":{"line":4,"column":33}}],"line":4},"3":{"loc":{"start":{"line":7,"column":32},"end":{"line":7,"column":115}},"type":"cond-expr","locations":[{"start":{"line":7,"column":46},"end":{"line":7,"column":67}},{"start":{"line":7,"column":70},"end":{"line":7,"column":115}}],"line":7},"4":{"loc":{"start":{"line":8,"column":51},"end":{"line":8,"column":67}},"type":"binary-expr","locations":[{"start":{"line":8,"column":51},"end":{"line":8,"column":61}},{"start":{"line":8,"column":65},"end":{"line":8,"column":67}}],"line":8},"5":{"loc":{"start":{"line":11,"column":18},"end":{"line":37,"column":1}},"type":"binary-expr","locations":[{"start":{"line":11,"column":19},"end":{"line":11,"column":23}},{"start":{"line":11,"column":27},"end":{"line":11,"column":43}},{"start":{"line":11,"column":48},"end":{"line":37,"column":1}}],"line":11},"6":{"loc":{"start":{"line":12,"column":43},"end":{"line":12,"column":68}},"type":"if","locations":[{"start":{"line":12,"column":43},"end":{"line":12,"column":68}},{"start":{"line":12,"column":43},"end":{"line":12,"column":68}}],"line":12},"7":{"loc":{"start":{"line":13,"column":71},"end":{"line":13,"column":153}},"type":"binary-expr","locations":[{"start":{"line":13,"column":71},"end":{"line":13,"column":99}},{"start":{"line":13,"column":104},"end":{"line":13,"column":152}}],"line":13},"8":{"loc":{"start":{"line":16,"column":8},"end":{"line":16,"column":70}},"type":"if","locations":[{"start":{"line":16,"column":8},"end":{"line":16,"column":70}},{"start":{"line":16,"column":8},"end":{"line":16,"column":70}}],"line":16},"9":{"loc":{"start":{"line":18,"column":12},"end":{"line":18,"column":169}},"type":"if","locations":[{"start":{"line":18,"column":12},"end":{"line":18,"column":169}},{"start":{"line":18,"column":12},"end":{"line":18,"column":169}}],"line":18},"10":{"loc":{"start":{"line":18,"column":23},"end":{"line":18,"column":158}},"type":"binary-expr","locations":[{"start":{"line":18,"column":23},"end":{"line":18,"column":24}},{"start":{"line":18,"column":29},"end":{"line":18,"column":125}},{"start":{"line":18,"column":130},"end":{"line":18,"column":158}}],"line":18},"11":{"loc":{"start":{"line":18,"column":33},"end":{"line":18,"column":125}},"type":"cond-expr","locations":[{"start":{"line":18,"column":45},"end":{"line":18,"column":56}},{"start":{"line":18,"column":59},"end":{"line":18,"column":125}}],"line":18},"12":{"loc":{"start":{"line":18,"column":59},"end":{"line":18,"column":125}},"type":"cond-expr","locations":[{"start":{"line":18,"column":67},"end":{"line":18,"column":116}},{"start":{"line":18,"column":119},"end":{"line":18,"column":125}}],"line":18},"13":{"loc":{"start":{"line":18,"column":67},"end":{"line":18,"column":116}},"type":"binary-expr","locations":[{"start":{"line":18,"column":67},"end":{"line":18,"column":77}},{"start":{"line":18,"column":82},"end":{"line":18,"column":115}}],"line":18},"14":{"loc":{"start":{"line":18,"column":82},"end":{"line":18,"column":112}},"type":"binary-expr","locations":[{"start":{"line":18,"column":83},"end":{"line":18,"column":98}},{"start":{"line":18,"column":103},"end":{"line":18,"column":112}}],"line":18},"15":{"loc":{"start":{"line":19,"column":12},"end":{"line":19,"column":52}},"type":"if","locations":[{"start":{"line":19,"column":12},"end":{"line":19,"column":52}},{"start":{"line":19,"column":12},"end":{"line":19,"column":52}}],"line":19},"16":{"loc":{"start":{"line":20,"column":12},"end":{"line":32,"column":13}},"type":"switch","locations":[{"start":{"line":21,"column":16},"end":{"line":21,"column":23}},{"start":{"line":21,"column":24},"end":{"line":21,"column":46}},{"start":{"line":22,"column":16},"end":{"line":22,"column":72}},{"start":{"line":23,"column":16},"end":{"line":23,"column":65}},{"start":{"line":24,"column":16},"end":{"line":24,"column":65}},{"start":{"line":25,"column":16},"end":{"line":31,"column":43}}],"line":20},"17":{"loc":{"start":{"line":26,"column":20},"end":{"line":26,"column":128}},"type":"if","locations":[{"start":{"line":26,"column":20},"end":{"line":26,"column":128}},{"start":{"line":26,"column":20},"end":{"line":26,"column":128}}],"line":26},"18":{"loc":{"start":{"line":26,"column":24},"end":{"line":26,"column":106}},"type":"binary-expr","locations":[{"start":{"line":26,"column":24},"end":{"line":26,"column":74}},{"start":{"line":26,"column":79},"end":{"line":26,"column":90}},{"start":{"line":26,"column":94},"end":{"line":26,"column":105}}],"line":26},"19":{"loc":{"start":{"line":26,"column":42},"end":{"line":26,"column":73}},"type":"binary-expr","locations":[{"start":{"line":26,"column":42},"end":{"line":26,"column":54}},{"start":{"line":26,"column":58},"end":{"line":26,"column":73}}],"line":26},"20":{"loc":{"start":{"line":27,"column":20},"end":{"line":27,"column":106}},"type":"if","locations":[{"start":{"line":27,"column":20},"end":{"line":27,"column":106}},{"start":{"line":27,"column":20},"end":{"line":27,"column":106}}],"line":27},"21":{"loc":{"start":{"line":27,"column":24},"end":{"line":27,"column":77}},"type":"binary-expr","locations":[{"start":{"line":27,"column":24},"end":{"line":27,"column":35}},{"start":{"line":27,"column":40},"end":{"line":27,"column":42}},{"start":{"line":27,"column":47},"end":{"line":27,"column":59}},{"start":{"line":27,"column":63},"end":{"line":27,"column":75}}],"line":27},"22":{"loc":{"start":{"line":28,"column":20},"end":{"line":28,"column":89}},"type":"if","locations":[{"start":{"line":28,"column":20},"end":{"line":28,"column":89}},{"start":{"line":28,"column":20},"end":{"line":28,"column":89}}],"line":28},"23":{"loc":{"start":{"line":28,"column":24},"end":{"line":28,"column":53}},"type":"binary-expr","locations":[{"start":{"line":28,"column":24},"end":{"line":28,"column":35}},{"start":{"line":28,"column":39},"end":{"line":28,"column":53}}],"line":28},"24":{"loc":{"start":{"line":29,"column":20},"end":{"line":29,"column":87}},"type":"if","locations":[{"start":{"line":29,"column":20},"end":{"line":29,"column":87}},{"start":{"line":29,"column":20},"end":{"line":29,"column":87}}],"line":29},"25":{"loc":{"start":{"line":29,"column":24},"end":{"line":29,"column":43}},"type":"binary-expr","locations":[{"start":{"line":29,"column":24},"end":{"line":29,"column":25}},{"start":{"line":29,"column":29},"end":{"line":29,"column":43}}],"line":29},"26":{"loc":{"start":{"line":30,"column":20},"end":{"line":30,"column":42}},"type":"if","locations":[{"start":{"line":30,"column":20},"end":{"line":30,"column":42}},{"start":{"line":30,"column":20},"end":{"line":30,"column":42}}],"line":30},"27":{"loc":{"start":{"line":35,"column":8},"end":{"line":35,"column":35}},"type":"if","locations":[{"start":{"line":35,"column":8},"end":{"line":35,"column":35}},{"start":{"line":35,"column":8},"end":{"line":35,"column":35}}],"line":35},"28":{"loc":{"start":{"line":35,"column":52},"end":{"line":35,"column":74}},"type":"cond-expr","locations":[{"start":{"line":35,"column":60},"end":{"line":35,"column":65}},{"start":{"line":35,"column":68},"end":{"line":35,"column":74}}],"line":35},"29":{"loc":{"start":{"line":38,"column":20},"end":{"line":42,"column":1}},"type":"binary-expr","locations":[{"start":{"line":38,"column":21},"end":{"line":38,"column":25}},{"start":{"line":38,"column":29},"end":{"line":38,"column":47}},{"start":{"line":38,"column":52},"end":{"line":42,"column":1}}],"line":38},"30":{"loc":{"start":{"line":60,"column":22},"end":{"line":60,"column":44}},"type":"binary-expr","locations":[{"start":{"line":60,"column":22},"end":{"line":60,"column":38}},{"start":{"line":60,"column":42},"end":{"line":60,"column":44}}],"line":60},"31":{"loc":{"start":{"line":61,"column":8},"end":{"line":63,"column":9}},"type":"if","locations":[{"start":{"line":61,"column":8},"end":{"line":63,"column":9}},{"start":{"line":61,"column":8},"end":{"line":63,"column":9}}],"line":61},"32":{"loc":{"start":{"line":64,"column":8},"end":{"line":71,"column":9}},"type":"if","locations":[{"start":{"line":64,"column":8},"end":{"line":71,"column":9}},{"start":{"line":64,"column":8},"end":{"line":71,"column":9}}],"line":64},"33":{"loc":{"start":{"line":67,"column":13},"end":{"line":71,"column":9}},"type":"if","locations":[{"start":{"line":67,"column":13},"end":{"line":71,"column":9}},{"start":{"line":67,"column":13},"end":{"line":71,"column":9}}],"line":67},"34":{"loc":{"start":{"line":67,"column":17},"end":{"line":69,"column":77}},"type":"binary-expr","locations":[{"start":{"line":67,"column":17},"end":{"line":67,"column":84}},{"start":{"line":68,"column":12},"end":{"line":68,"column":79}},{"start":{"line":69,"column":12},"end":{"line":69,"column":77}}],"line":67},"35":{"loc":{"start":{"line":72,"column":8},"end":{"line":77,"column":9}},"type":"if","locations":[{"start":{"line":72,"column":8},"end":{"line":77,"column":9}},{"start":{"line":72,"column":8},"end":{"line":77,"column":9}}],"line":72},"36":{"loc":{"start":{"line":75,"column":13},"end":{"line":77,"column":9}},"type":"if","locations":[{"start":{"line":75,"column":13},"end":{"line":77,"column":9}},{"start":{"line":75,"column":13},"end":{"line":77,"column":9}}],"line":75},"37":{"loc":{"start":{"line":78,"column":8},"end":{"line":83,"column":9}},"type":"if","locations":[{"start":{"line":78,"column":8},"end":{"line":83,"column":9}},{"start":{"line":78,"column":8},"end":{"line":83,"column":9}}],"line":78},"38":{"loc":{"start":{"line":81,"column":13},"end":{"line":83,"column":9}},"type":"if","locations":[{"start":{"line":81,"column":13},"end":{"line":83,"column":9}},{"start":{"line":81,"column":13},"end":{"line":83,"column":9}}],"line":81},"39":{"loc":{"start":{"line":136,"column":16},"end":{"line":153,"column":17}},"type":"switch","locations":[{"start":{"line":137,"column":20},"end":{"line":140,"column":37}},{"start":{"line":141,"column":20},"end":{"line":145,"column":214}},{"start":{"line":146,"column":20},"end":{"line":148,"column":37}},{"start":{"line":149,"column":20},"end":{"line":151,"column":38}},{"start":{"line":152,"column":20},"end":{"line":152,"column":39}}],"line":136},"40":{"loc":{"start":{"line":142,"column":24},"end":{"line":142,"column":68}},"type":"if","locations":[{"start":{"line":142,"column":24},"end":{"line":142,"column":68}},{"start":{"line":142,"column":24},"end":{"line":142,"column":68}}],"line":142},"41":{"loc":{"start":{"line":172,"column":20},"end":{"line":172,"column":91}},"type":"binary-expr","locations":[{"start":{"line":172,"column":20},"end":{"line":172,"column":45}},{"start":{"line":172,"column":49},"end":{"line":172,"column":91}}],"line":172},"42":{"loc":{"start":{"line":194,"column":8},"end":{"line":196,"column":9}},"type":"if","locations":[{"start":{"line":194,"column":8},"end":{"line":196,"column":9}},{"start":{"line":194,"column":8},"end":{"line":196,"column":9}}],"line":194},"43":{"loc":{"start":{"line":194,"column":12},"end":{"line":194,"column":33}},"type":"binary-expr","locations":[{"start":{"line":194,"column":12},"end":{"line":194,"column":18}},{"start":{"line":194,"column":22},"end":{"line":194,"column":33}}],"line":194},"44":{"loc":{"start":{"line":204,"column":8},"end":{"line":208,"column":9}},"type":"if","locations":[{"start":{"line":204,"column":8},"end":{"line":208,"column":9}},{"start":{"line":204,"column":8},"end":{"line":208,"column":9}}],"line":204},"45":{"loc":{"start":{"line":209,"column":8},"end":{"line":211,"column":9}},"type":"if","locations":[{"start":{"line":209,"column":8},"end":{"line":211,"column":9}},{"start":{"line":209,"column":8},"end":{"line":211,"column":9}}],"line":209},"46":{"loc":{"start":{"line":209,"column":12},"end":{"line":209,"column":33}},"type":"binary-expr","locations":[{"start":{"line":209,"column":12},"end":{"line":209,"column":18}},{"start":{"line":209,"column":22},"end":{"line":209,"column":33}}],"line":209},"47":{"loc":{"start":{"line":219,"column":8},"end":{"line":221,"column":9}},"type":"if","locations":[{"start":{"line":219,"column":8},"end":{"line":221,"column":9}},{"start":{"line":219,"column":8},"end":{"line":221,"column":9}}],"line":219},"48":{"loc":{"start":{"line":226,"column":34},"end":{"line":226,"column":66}},"type":"binary-expr","locations":[{"start":{"line":226,"column":34},"end":{"line":226,"column":50}},{"start":{"line":226,"column":54},"end":{"line":226,"column":66}}],"line":226},"49":{"loc":{"start":{"line":236,"column":22},"end":{"line":236,"column":84}},"type":"cond-expr","locations":[{"start":{"line":236,"column":43},"end":{"line":236,"column":59}},{"start":{"line":236,"column":62},"end":{"line":236,"column":84}}],"line":236},"50":{"loc":{"start":{"line":319,"column":8},"end":{"line":327,"column":9}},"type":"if","locations":[{"start":{"line":319,"column":8},"end":{"line":327,"column":9}},{"start":{"line":319,"column":8},"end":{"line":327,"column":9}}],"line":319},"51":{"loc":{"start":{"line":321,"column":12},"end":{"line":323,"column":13}},"type":"if","locations":[{"start":{"line":321,"column":12},"end":{"line":323,"column":13}},{"start":{"line":321,"column":12},"end":{"line":323,"column":13}}],"line":321},"52":{"loc":{"start":{"line":321,"column":16},"end":{"line":321,"column":55}},"type":"binary-expr","locations":[{"start":{"line":321,"column":16},"end":{"line":321,"column":36}},{"start":{"line":321,"column":40},"end":{"line":321,"column":55}}],"line":321}},"s":{"0":1,"1":2,"2":0,"3":1,"4":2,"5":2,"6":0,"7":0,"8":0,"9":0,"10":3,"11":1,"12":1,"13":1,"14":2,"15":0,"16":2,"17":1,"18":0,"19":3,"20":3,"21":3,"22":0,"23":3,"24":9,"25":9,"26":0,"27":9,"28":0,"29":9,"30":3,"31":3,"32":2,"33":2,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":4,"42":1,"43":1,"44":3,"45":3,"46":3,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":6,"60":0,"61":0,"62":9,"63":1,"64":0,"65":1,"66":1,"67":2,"68":2,"69":2,"70":2,"71":1,"72":2,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":196,"89":196,"90":196,"91":1,"92":195,"93":175,"94":20,"95":1,"96":194,"97":176,"98":18,"99":1,"100":193,"101":179,"102":14,"103":0,"104":193,"105":193,"106":193,"107":193,"108":193,"109":193,"110":193,"111":1,"112":2,"113":2,"114":2,"115":1,"116":2,"117":2,"118":5,"119":2,"120":5,"121":10,"122":10,"123":2,"124":5,"125":2,"126":1,"127":5,"128":5,"129":5,"130":6,"131":5,"132":5,"133":5,"134":5,"135":6,"136":6,"137":6,"138":1,"139":1,"140":1,"141":1,"142":2,"143":1,"144":1,"145":6,"146":1,"147":1,"148":1,"149":3,"150":1,"151":2,"152":2,"153":2,"154":2,"155":2,"156":2,"157":2,"158":1,"159":1,"160":2,"161":2,"162":2,"163":2,"164":2,"165":2,"166":2,"167":5,"168":2,"169":2,"170":2,"171":1,"172":24344,"173":24344,"174":24344,"175":24344,"176":1,"177":2,"178":2,"179":1,"180":9,"181":9,"182":1,"183":1,"184":3,"185":1,"186":18,"187":18,"188":2,"189":18,"190":1,"191":8,"192":1,"193":32,"194":32,"195":16,"196":16,"197":16,"198":20,"199":32,"200":16,"201":32,"202":1,"203":3,"204":1,"205":4,"206":4,"207":1,"208":3,"209":3,"210":1,"211":13,"212":13,"213":13,"214":1,"215":25,"216":25,"217":25,"218":38,"219":25,"220":25,"221":25,"222":38,"223":1,"224":3,"225":1,"226":881,"227":1,"228":22,"229":1,"230":13,"231":1,"232":6,"233":1,"234":8,"235":1,"236":4,"237":1,"238":4,"239":4,"240":4,"241":8,"242":4,"243":1,"244":6,"245":6,"246":10,"247":6,"248":8,"249":9,"250":9,"251":9,"252":9,"253":6,"254":8,"255":2,"256":2,"257":6,"258":8,"259":2,"260":2,"261":6,"262":8,"263":1,"264":1,"265":1,"266":1,"267":6,"268":8,"269":1,"270":917,"271":917,"272":881,"273":917,"274":13,"275":13,"276":1,"277":904,"278":209,"279":1,"280":920,"281":920,"282":917,"283":881,"284":881,"285":206,"286":1,"287":1},"f":{"0":1,"1":2,"2":0,"3":1,"4":2,"5":0,"6":3,"7":1,"8":2,"9":0,"10":3,"11":3,"12":3,"13":2,"14":1,"15":196,"16":2,"17":5,"18":5,"19":10,"20":10,"21":5,"22":5,"23":1,"24":1,"25":6,"26":2,"27":2,"28":5,"29":2,"30":24344,"31":2,"32":9,"33":3,"34":18,"35":8,"36":32,"37":20,"38":3,"39":4,"40":13,"41":25,"42":38,"43":3,"44":881,"45":22,"46":13,"47":6,"48":8,"49":4,"50":4,"51":8,"52":6,"53":10,"54":8,"55":9,"56":8,"57":2,"58":8,"59":2,"60":8,"61":1,"62":8,"63":917,"64":881,"65":920,"66":917},"b":{"0":[1,1,1],"1":[2,0],"2":[1,1],"3":[1,2],"4":[1,1],"5":[1,1,1],"6":[0,2],"7":[1,1],"8":[0,3],"9":[0,9],"10":[9,0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,9],"16":[3,3,2,0,0,4],"17":[1,3],"18":[4,4,4],"19":[4,0],"20":[3,0],"21":[3,3,0,0],"22":[0,0],"23":[0,0],"24":[0,0],"25":[0,0],"26":[0,0],"27":[0,1],"28":[1,0],"29":[1,1,1],"30":[196,168],"31":[1,195],"32":[175,20],"33":[1,19],"34":[20,13,2],"35":[176,18],"36":[1,17],"37":[179,14],"38":[0,14],"39":[1,3,2,2,1],"40":[1,2],"41":[24344,0],"42":[2,16],"43":[18,10],"44":[16,16],"45":[16,16],"46":[32,20],"47":[1,3],"48":[13,12],"49":[9,16],"50":[13,904],"51":[1,12],"52":[13,12]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/container/container.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/container/container.ts"],"names":[],"mappings":"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","sourcesContent":["import { Binding } from \"../bindings/binding\";\nimport * as ERROR_MSGS from \"../constants/error_msgs\";\nimport { BindingScopeEnum, TargetTypeEnum } from \"../constants/literal_types\";\nimport * as METADATA_KEY from \"../constants/metadata_keys\";\nimport { interfaces } from \"../interfaces/interfaces\";\nimport { MetadataReader } from \"../planning/metadata_reader\";\nimport { createMockRequest, getBindingDictionary, plan } from \"../planning/planner\";\nimport { resolve } from \"../resolution/resolver\";\nimport { BindingToSyntax } from \"../syntax/binding_to_syntax\";\nimport { id } from \"../utils/id\";\nimport { getServiceIdentifierAsString } from \"../utils/serialization\";\nimport { ContainerSnapshot } from \"./container_snapshot\";\nimport { Lookup } from \"./lookup\";\n\nclass Container implements interfaces.Container {\n\n public id: number;\n public parent: interfaces.Container | null;\n public readonly options: interfaces.ContainerOptions;\n private _middleware: interfaces.Next | null;\n private _bindingDictionary: interfaces.Lookup<interfaces.Binding<any>>;\n private _snapshots: interfaces.ContainerSnapshot[];\n private _metadataReader: interfaces.MetadataReader;\n private _appliedMiddleware: interfaces.Middleware[] = [];\n\n public static merge(\n container1: interfaces.Container,\n container2: interfaces.Container,\n ...container3: interfaces.Container[]\n ): interfaces.Container {\n const container = new Container();\n const targetContainers: interfaces.Lookup<interfaces.Binding<any>>[] = [container1, container2, ...container3]\n .map((targetContainer) => getBindingDictionary(targetContainer));\n const bindingDictionary: interfaces.Lookup<interfaces.Binding<any>> = getBindingDictionary(container);\n\n function copyDictionary(\n origin: interfaces.Lookup<interfaces.Binding<any>>,\n destination: interfaces.Lookup<interfaces.Binding<any>>\n ) {\n\n origin.traverse((key, value) => {\n value.forEach((binding) => {\n destination.add(binding.serviceIdentifier, binding.clone());\n });\n });\n\n }\n\n targetContainers.forEach((targetBindingDictionary) => {\n copyDictionary(targetBindingDictionary, bindingDictionary);\n });\n\n return container;\n }\n\n public constructor(containerOptions?: interfaces.ContainerOptions) {\n const options = containerOptions || {};\n if (typeof options !== \"object\") {\n throw new Error(`${ERROR_MSGS.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT}`);\n }\n\n if (options.defaultScope === undefined) {\n options.defaultScope = BindingScopeEnum.Transient;\n } else if (\n options.defaultScope !== BindingScopeEnum.Singleton &&\n options.defaultScope !== BindingScopeEnum.Transient &&\n options.defaultScope !== BindingScopeEnum.Request\n ) {\n throw new Error(`${ERROR_MSGS.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE}`);\n }\n\n if (options.autoBindInjectable === undefined) {\n options.autoBindInjectable = false;\n } else if (\n typeof options.autoBindInjectable !== \"boolean\"\n ) {\n throw new Error(`${ERROR_MSGS.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE}`);\n }\n\n if (options.skipBaseClassChecks === undefined) {\n options.skipBaseClassChecks = false;\n } else if (\n typeof options.skipBaseClassChecks !== \"boolean\"\n ) {\n throw new Error(`${ERROR_MSGS.CONTAINER_OPTIONS_INVALID_SKIP_BASE_CHECK}`);\n }\n\n this.options = {\n autoBindInjectable: options.autoBindInjectable,\n defaultScope: options.defaultScope,\n skipBaseClassChecks: options.skipBaseClassChecks\n };\n\n this.id = id();\n this._bindingDictionary = new Lookup<interfaces.Binding<any>>();\n this._snapshots = [];\n this._middleware = null;\n this.parent = null;\n this._metadataReader = new MetadataReader();\n }\n\n public load(...modules: interfaces.ContainerModule[]) {\n\n const getHelpers = this._getContainerModuleHelpersFactory();\n\n for (const currentModule of modules) {\n\n const containerModuleHelpers = getHelpers(currentModule.id);\n\n currentModule.registry(\n containerModuleHelpers.bindFunction,\n containerModuleHelpers.unbindFunction,\n containerModuleHelpers.isboundFunction,\n containerModuleHelpers.rebindFunction\n );\n\n }\n\n }\n\n public async loadAsync(...modules: interfaces.AsyncContainerModule[]) {\n\n const getHelpers = this._getContainerModuleHelpersFactory();\n\n for (const currentModule of modules) {\n\n const containerModuleHelpers = getHelpers(currentModule.id);\n\n await currentModule.registry(\n containerModuleHelpers.bindFunction,\n containerModuleHelpers.unbindFunction,\n containerModuleHelpers.isboundFunction,\n containerModuleHelpers.rebindFunction\n );\n\n }\n\n }\n\n public unload(...modules: interfaces.ContainerModule[]): void {\n\n const conditionFactory = (expected: any) => (item: interfaces.Binding<any>): boolean =>\n item.moduleId === expected;\n\n modules.forEach((module) => {\n const condition = conditionFactory(module.id);\n this._bindingDictionary.removeByCondition(condition);\n });\n\n }\n\n // Registers a type binding\n public bind<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): interfaces.BindingToSyntax<T> {\n const scope = this.options.defaultScope || BindingScopeEnum.Transient;\n const binding = new Binding<T>(serviceIdentifier, scope);\n this._bindingDictionary.add(serviceIdentifier, binding);\n return new BindingToSyntax<T>(binding);\n }\n\n public rebind<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): interfaces.BindingToSyntax<T> {\n this.unbind(serviceIdentifier);\n return this.bind(serviceIdentifier);\n }\n\n // Removes a type binding from the registry by its key\n public unbind(serviceIdentifier: interfaces.ServiceIdentifier<any>): void {\n try {\n this._bindingDictionary.remove(serviceIdentifier);\n } catch (e) {\n throw new Error(`${ERROR_MSGS.CANNOT_UNBIND} ${getServiceIdentifierAsString(serviceIdentifier)}`);\n }\n }\n\n // Removes all the type bindings from the registry\n public unbindAll(): void {\n this._bindingDictionary = new Lookup<Binding<any>>();\n }\n\n // Allows to check if there are bindings available for serviceIdentifier\n public isBound(serviceIdentifier: interfaces.ServiceIdentifier<any>): boolean {\n let bound = this._bindingDictionary.hasKey(serviceIdentifier);\n if (!bound && this.parent) {\n bound = this.parent.isBound(serviceIdentifier);\n }\n return bound;\n }\n\n public isBoundNamed(serviceIdentifier: interfaces.ServiceIdentifier<any>, named: string | number | symbol): boolean {\n return this.isBoundTagged(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\n }\n\n // Check if a binding with a complex constraint is available without throwing a error. Ancestors are also verified.\n public isBoundTagged(serviceIdentifier: interfaces.ServiceIdentifier<any>, key: string | number | symbol, value: any): boolean {\n let bound = false;\n\n // verify if there are bindings available for serviceIdentifier on current binding dictionary\n if (this._bindingDictionary.hasKey(serviceIdentifier)) {\n const bindings = this._bindingDictionary.get(serviceIdentifier);\n const request = createMockRequest(this, serviceIdentifier, key, value);\n bound = bindings.some((b) => b.constraint(request));\n }\n\n // verify if there is a parent container that could solve the request\n if (!bound && this.parent) {\n bound = this.parent.isBoundTagged(serviceIdentifier, key, value);\n }\n\n return bound;\n }\n\n public snapshot(): void {\n this._snapshots.push(ContainerSnapshot.of(this._bindingDictionary.clone(), this._middleware));\n }\n\n public restore(): void {\n const snapshot = this._snapshots.pop();\n if (snapshot === undefined) {\n throw new Error(ERROR_MSGS.NO_MORE_SNAPSHOTS_AVAILABLE);\n }\n this._bindingDictionary = snapshot.bindings;\n this._middleware = snapshot.middleware;\n }\n\n public createChild(containerOptions?: interfaces.ContainerOptions): Container {\n const child = new Container(containerOptions || this.options);\n child.parent = this;\n return child;\n }\n\n public applyMiddleware(...middlewares: interfaces.Middleware[]): void {\n this._appliedMiddleware = this._appliedMiddleware.concat(middlewares);\n const initial: interfaces.Next = (this._middleware) ? this._middleware : this._planAndResolve();\n this._middleware = middlewares.reduce(\n (prev, curr) => curr(prev),\n initial);\n }\n\n public applyCustomMetadataReader(metadataReader: interfaces.MetadataReader) {\n this._metadataReader = metadataReader;\n }\n\n // Resolves a dependency by its runtime identifier\n // The runtime identifier must be associated with only one binding\n // use getAll when the runtime identifier is associated with multiple bindings\n public get<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): T {\n return this._get<T>(false, false, TargetTypeEnum.Variable, serviceIdentifier) as T;\n }\n\n public getTagged<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string | number | symbol, value: any): T {\n return this._get<T>(false, false, TargetTypeEnum.Variable, serviceIdentifier, key, value) as T;\n }\n\n public getNamed<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): T {\n return this.getTagged<T>(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\n }\n\n // Resolves a dependency by its runtime identifier\n // The runtime identifier can be associated with one or multiple bindings\n public getAll<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): T[] {\n return this._get<T>(true, true, TargetTypeEnum.Variable, serviceIdentifier) as T[];\n }\n\n public getAllTagged<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string | number | symbol, value: any): T[] {\n return this._get<T>(false, true, TargetTypeEnum.Variable, serviceIdentifier, key, value) as T[];\n }\n\n public getAllNamed<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): T[] {\n return this.getAllTagged<T>(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\n }\n\n public resolve<T>(constructorFunction: interfaces.Newable<T>) {\n const tempContainer = this.createChild();\n tempContainer.bind<T>(constructorFunction).toSelf();\n this._appliedMiddleware.forEach((m) => {\n tempContainer.applyMiddleware(m);\n });\n\n return tempContainer.get<T>(constructorFunction);\n }\n\n private _getContainerModuleHelpersFactory() {\n\n const setModuleId = (bindingToSyntax: any, moduleId: number) => {\n bindingToSyntax._binding.moduleId = moduleId;\n };\n\n const getBindFunction = (moduleId: number) =>\n (serviceIdentifier: interfaces.ServiceIdentifier<any>) => {\n const _bind = this.bind.bind(this);\n const bindingToSyntax = _bind(serviceIdentifier);\n setModuleId(bindingToSyntax, moduleId);\n return bindingToSyntax;\n };\n\n const getUnbindFunction = (moduleId: number) =>\n (serviceIdentifier: interfaces.ServiceIdentifier<any>) => {\n const _unbind = this.unbind.bind(this);\n _unbind(serviceIdentifier);\n };\n\n const getIsboundFunction = (moduleId: number) =>\n (serviceIdentifier: interfaces.ServiceIdentifier<any>) => {\n const _isBound = this.isBound.bind(this);\n return _isBound(serviceIdentifier);\n };\n\n const getRebindFunction = (moduleId: number) =>\n (serviceIdentifier: interfaces.ServiceIdentifier<any>) => {\n const _rebind = this.rebind.bind(this);\n const bindingToSyntax = _rebind(serviceIdentifier);\n setModuleId(bindingToSyntax, moduleId);\n return bindingToSyntax;\n };\n\n return (mId: number) => ({\n bindFunction: getBindFunction(mId),\n isboundFunction: getIsboundFunction(mId),\n rebindFunction: getRebindFunction(mId),\n unbindFunction: getUnbindFunction(mId)\n });\n\n }\n\n // Prepares arguments required for resolution and\n // delegates resolution to _middleware if available\n // otherwise it delegates resolution to _planAndResolve\n private _get<T>(\n avoidConstraints: boolean,\n isMultiInject: boolean,\n targetType: interfaces.TargetType,\n serviceIdentifier: interfaces.ServiceIdentifier<any>,\n key?: string | number | symbol,\n value?: any\n ): (T | T[]) {\n\n let result: (T | T[]) | null = null;\n\n const defaultArgs: interfaces.NextArgs = {\n avoidConstraints,\n contextInterceptor: (context: interfaces.Context) => context,\n isMultiInject,\n key,\n serviceIdentifier,\n targetType,\n value\n };\n\n if (this._middleware) {\n result = this._middleware(defaultArgs);\n if (result === undefined || result === null) {\n throw new Error(ERROR_MSGS.INVALID_MIDDLEWARE_RETURN);\n }\n } else {\n result = this._planAndResolve<T>()(defaultArgs);\n }\n\n return result;\n }\n\n // Planner creates a plan and Resolver resolves a plan\n // one of the jobs of the Container is to links the Planner\n // with the Resolver and that is what this function is about\n private _planAndResolve<T>(): (args: interfaces.NextArgs) => (T | T[]) {\n return (args: interfaces.NextArgs) => {\n\n // create a plan\n let context = plan(\n this._metadataReader,\n this,\n args.isMultiInject,\n args.targetType,\n args.serviceIdentifier,\n args.key,\n args.value,\n args.avoidConstraints\n );\n\n // apply context interceptor\n context = args.contextInterceptor(context);\n\n // resolve plan\n const result = resolve<T>(context);\n return result;\n\n };\n }\n\n}\n\nexport { Container };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"dc14c5504e24a47942acca44d274028569b62f5c","contentHash":"444cbe836ba14900ed5852391158fbd79698e9dfded58fd6d40225fb99add32a"},"/Users/dan/jsProjects/inversify/InversifyJS/src/bindings/binding.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/bindings/binding.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":25}},"2":{"start":{"line":4,"column":22},"end":{"line":4,"column":59}},"3":{"start":{"line":5,"column":11},"end":{"line":5,"column":33}},"4":{"start":{"line":6,"column":15},"end":{"line":36,"column":3}},"5":{"start":{"line":8,"column":8},"end":{"line":8,"column":28}},"6":{"start":{"line":9,"column":8},"end":{"line":9,"column":31}},"7":{"start":{"line":10,"column":8},"end":{"line":10,"column":51}},"8":{"start":{"line":11,"column":8},"end":{"line":11,"column":27}},"9":{"start":{"line":12,"column":8},"end":{"line":12,"column":60}},"10":{"start":{"line":13,"column":8},"end":{"line":13,"column":62}},"11":{"start":{"line":13,"column":47},"end":{"line":13,"column":59}},"12":{"start":{"line":14,"column":8},"end":{"line":14,"column":39}},"13":{"start":{"line":15,"column":8},"end":{"line":15,"column":26}},"14":{"start":{"line":16,"column":8},"end":{"line":16,"column":28}},"15":{"start":{"line":17,"column":8},"end":{"line":17,"column":29}},"16":{"start":{"line":18,"column":8},"end":{"line":18,"column":33}},"17":{"start":{"line":19,"column":8},"end":{"line":19,"column":33}},"18":{"start":{"line":21,"column":4},"end":{"line":34,"column":6}},"19":{"start":{"line":22,"column":20},"end":{"line":22,"column":67}},"20":{"start":{"line":23,"column":8},"end":{"line":23,"column":112}},"21":{"start":{"line":24,"column":8},"end":{"line":24,"column":59}},"22":{"start":{"line":25,"column":8},"end":{"line":25,"column":47}},"23":{"start":{"line":26,"column":8},"end":{"line":26,"column":33}},"24":{"start":{"line":27,"column":8},"end":{"line":27,"column":31}},"25":{"start":{"line":28,"column":8},"end":{"line":28,"column":37}},"26":{"start":{"line":29,"column":8},"end":{"line":29,"column":39}},"27":{"start":{"line":30,"column":8},"end":{"line":30,"column":43}},"28":{"start":{"line":31,"column":8},"end":{"line":31,"column":47}},"29":{"start":{"line":32,"column":8},"end":{"line":32,"column":33}},"30":{"start":{"line":33,"column":8},"end":{"line":33,"column":21}},"31":{"start":{"line":35,"column":4},"end":{"line":35,"column":19}},"32":{"start":{"line":37,"column":0},"end":{"line":37,"column":26}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":15},"end":{"line":6,"column":16}},"loc":{"start":{"line":6,"column":27},"end":{"line":36,"column":1}},"line":6},"1":{"name":"Binding","decl":{"start":{"line":7,"column":13},"end":{"line":7,"column":20}},"loc":{"start":{"line":7,"column":47},"end":{"line":20,"column":5}},"line":7},"2":{"name":"(anonymous_2)","decl":{"start":{"line":13,"column":26},"end":{"line":13,"column":27}},"loc":{"start":{"line":13,"column":45},"end":{"line":13,"column":61}},"line":13},"3":{"name":"(anonymous_3)","decl":{"start":{"line":21,"column":30},"end":{"line":21,"column":31}},"loc":{"start":{"line":21,"column":42},"end":{"line":34,"column":5}},"line":21}},"branchMap":{"0":{"loc":{"start":{"line":23,"column":26},"end":{"line":23,"column":111}},"type":"cond-expr","locations":[{"start":{"line":23,"column":89},"end":{"line":23,"column":103}},{"start":{"line":23,"column":106},"end":{"line":23,"column":111}}],"line":23}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":24403,"6":24403,"7":24403,"8":24403,"9":24403,"10":24403,"11":8747,"12":24403,"13":24403,"14":24403,"15":24403,"16":24403,"17":24403,"18":1,"19":14,"20":14,"21":14,"22":14,"23":14,"24":14,"25":14,"26":14,"27":14,"28":14,"29":14,"30":14,"31":1,"32":1},"f":{"0":1,"1":24403,"2":8747,"3":14},"b":{"0":[1,13]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/bindings/binding.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/bindings/binding.ts"],"names":[],"mappings":";;;AAAA,4DAA+E;AAE/E,kCAAiC;AAEjC;IAwCI,iBAAmB,iBAAkD,EAAE,KAA8B;QACjG,IAAI,CAAC,EAAE,GAAG,OAAE,EAAE,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,+BAAe,CAAC,OAAO,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,UAAC,OAA2B,IAAK,OAAA,IAAI,EAAJ,CAAI,CAAC;QACxD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC7B,CAAC;IAEM,uBAAK,GAAZ;QACI,IAAM,KAAK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9D,KAAK,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,gCAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;QACxF,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACnD,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,OAAO,KAAK,CAAC;IACjB,CAAC;IAEL,cAAC;AAAD,CAAC,AAtED,IAsEC;AAEQ,0BAAO","sourcesContent":["import { BindingScopeEnum, BindingTypeEnum } from \"../constants/literal_types\";\nimport { interfaces } from \"../interfaces/interfaces\";\nimport { id } from \"../utils/id\";\n\nclass Binding<T> implements interfaces.Binding<T> {\n\n public id: number;\n public moduleId: string;\n\n // Determines weather the bindings has been already activated\n // The activation action takes place when an instance is resolved\n // If the scope is singleton it only happens once\n public activated: boolean;\n\n // A runtime identifier because at runtime we don't have interfaces\n public serviceIdentifier: interfaces.ServiceIdentifier<T>;\n\n // The constructor of a class which must implement T\n public implementationType: interfaces.Newable<T> | null;\n\n // Cache used to allow singleton scope and BindingType.ConstantValue bindings\n public cache: T | null;\n\n // Cache used to allow BindingType.DynamicValue bindings\n public dynamicValue: ((context: interfaces.Context) => T) | null;\n\n // The scope mode to be used\n public scope: interfaces.BindingScope;\n\n // The kind of binding\n public type: interfaces.BindingType;\n\n // A factory method used in BindingType.Factory bindings\n public factory: interfaces.FactoryCreator<T> | null;\n\n // An async factory method used in BindingType.Provider bindings\n public provider: interfaces.ProviderCreator<T> | null;\n\n // A constraint used to limit the contexts in which this binding is applicable\n public constraint: (request: interfaces.Request) => boolean;\n\n // On activation handler (invoked just before an instance is added to cache and injected)\n public onActivation: ((context: interfaces.Context, injectable: T) => T) | null;\n\n public constructor(serviceIdentifier: interfaces.ServiceIdentifier<T>, scope: interfaces.BindingScope) {\n this.id = id();\n this.activated = false;\n this.serviceIdentifier = serviceIdentifier;\n this.scope = scope;\n this.type = BindingTypeEnum.Invalid;\n this.constraint = (request: interfaces.Request) => true;\n this.implementationType = null;\n this.cache = null;\n this.factory = null;\n this.provider = null;\n this.onActivation = null;\n this.dynamicValue = null;\n }\n\n public clone(): interfaces.Binding<T> {\n const clone = new Binding(this.serviceIdentifier, this.scope);\n clone.activated = (clone.scope === BindingScopeEnum.Singleton) ? this.activated : false;\n clone.implementationType = this.implementationType;\n clone.dynamicValue = this.dynamicValue;\n clone.scope = this.scope;\n clone.type = this.type;\n clone.factory = this.factory;\n clone.provider = this.provider;\n clone.constraint = this.constraint;\n clone.onActivation = this.onActivation;\n clone.cache = this.cache;\n return clone;\n }\n\n}\n\nexport { Binding };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"0609bb17b88f12e424c8c6946a95a34d08b8ffb9","contentHash":"37338c9e7db49fc34cd5211a9bde66c0c3350bba310fd403b0c7bf392b185651"},"/Users/dan/jsProjects/inversify/InversifyJS/src/constants/literal_types.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/constants/literal_types.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":85}},"2":{"start":{"line":4,"column":23},"end":{"line":8,"column":1}},"3":{"start":{"line":9,"column":0},"end":{"line":9,"column":44}},"4":{"start":{"line":10,"column":22},"end":{"line":19,"column":1}},"5":{"start":{"line":20,"column":0},"end":{"line":20,"column":42}},"6":{"start":{"line":21,"column":21},"end":{"line":25,"column":1}},"7":{"start":{"line":26,"column":0},"end":{"line":26,"column":40}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1},"f":{},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/constants/literal_types.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/constants/literal_types.ts"],"names":[],"mappings":";;;AAEA,IAAM,gBAAgB,GAAgC;IAClD,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;CACzB,CAAC;AAmBO,4CAAgB;AAjBzB,IAAM,eAAe,GAA+B;IAChD,aAAa,EAAE,eAAe;IAC9B,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,cAAc;IAC5B,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;CACvB,CAAC;AAQyB,0CAAe;AAN1C,IAAM,cAAc,GAA8B;IAC9C,aAAa,EAAE,eAAe;IAC9B,mBAAmB,EAAE,qBAAqB;IAC1C,QAAQ,EAAE,UAAU;CACvB,CAAC;AAE0C,wCAAc","sourcesContent":["import { interfaces } from \"../interfaces/interfaces\";\n\nconst BindingScopeEnum: interfaces.BindingScopeEnum = {\n Request: \"Request\",\n Singleton: \"Singleton\",\n Transient: \"Transient\"\n};\n\nconst BindingTypeEnum: interfaces.BindingTypeEnum = {\n ConstantValue: \"ConstantValue\",\n Constructor: \"Constructor\",\n DynamicValue: \"DynamicValue\",\n Factory: \"Factory\",\n Function: \"Function\",\n Instance: \"Instance\",\n Invalid: \"Invalid\",\n Provider: \"Provider\"\n};\n\nconst TargetTypeEnum: interfaces.TargetTypeEnum = {\n ClassProperty: \"ClassProperty\",\n ConstructorArgument: \"ConstructorArgument\",\n Variable: \"Variable\"\n};\n\nexport { BindingScopeEnum, BindingTypeEnum, TargetTypeEnum };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"22f303b750a1fb02bbdab03160ce735ae1297604","contentHash":"b6e88d3ca31a9ae7f67ae38171e9d4870be1478142985b079289db6e44f81a86"},"/Users/dan/jsProjects/inversify/InversifyJS/src/utils/id.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/utils/id.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":20}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":17}},"3":{"start":{"line":6,"column":4},"end":{"line":6,"column":23}},"4":{"start":{"line":8,"column":0},"end":{"line":8,"column":16}}},"fnMap":{"0":{"name":"id","decl":{"start":{"line":5,"column":9},"end":{"line":5,"column":11}},"loc":{"start":{"line":5,"column":14},"end":{"line":7,"column":1}},"line":5}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":52235,"4":1},"f":{"0":52235},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/utils/id.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/utils/id.ts"],"names":[],"mappings":";;;AAAA,IAAI,SAAS,GAAG,CAAC,CAAC;AAElB,SAAS,EAAE;IACT,OAAO,SAAS,EAAE,CAAC;AACrB,CAAC;AAEQ,gBAAE","sourcesContent":["let idCounter = 0;\r\n\r\nfunction id(): number {\r\n return idCounter++;\r\n}\r\n\r\nexport { id };\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"8ba4c68240233d847cc7506ed5856c6d1e1ce490","contentHash":"4dd75dcee820ca7fc36fe66d1a6ac1f04e68b50a90420b80a70f26e39c327c4a"},"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/metadata_reader.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/metadata_reader.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":32}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":56}},"3":{"start":{"line":5,"column":22},"end":{"line":21,"column":3}},"4":{"start":{"line":8,"column":4},"end":{"line":15,"column":6}},"5":{"start":{"line":9,"column":40},"end":{"line":9,"column":102}},"6":{"start":{"line":10,"column":36},"end":{"line":10,"column":93}},"7":{"start":{"line":11,"column":8},"end":{"line":14,"column":10}},"8":{"start":{"line":16,"column":4},"end":{"line":19,"column":6}},"9":{"start":{"line":17,"column":36},"end":{"line":17,"column":104}},"10":{"start":{"line":18,"column":8},"end":{"line":18,"column":37}},"11":{"start":{"line":20,"column":4},"end":{"line":20,"column":26}},"12":{"start":{"line":22,"column":0},"end":{"line":22,"column":40}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":22},"end":{"line":5,"column":23}},"loc":{"start":{"line":5,"column":34},"end":{"line":21,"column":1}},"line":5},"1":{"name":"MetadataReader","decl":{"start":{"line":6,"column":13},"end":{"line":6,"column":27}},"loc":{"start":{"line":6,"column":30},"end":{"line":7,"column":5}},"line":6},"2":{"name":"(anonymous_2)","decl":{"start":{"line":8,"column":54},"end":{"line":8,"column":55}},"loc":{"start":{"line":8,"column":81},"end":{"line":15,"column":5}},"line":8},"3":{"name":"(anonymous_3)","decl":{"start":{"line":16,"column":53},"end":{"line":16,"column":54}},"loc":{"start":{"line":16,"column":80},"end":{"line":19,"column":5}},"line":16}},"branchMap":{"0":{"loc":{"start":{"line":13,"column":35},"end":{"line":13,"column":62}},"type":"binary-expr","locations":[{"start":{"line":13,"column":35},"end":{"line":13,"column":56}},{"start":{"line":13,"column":60},"end":{"line":13,"column":62}}],"line":13},"1":{"loc":{"start":{"line":17,"column":36},"end":{"line":17,"column":104}},"type":"binary-expr","locations":[{"start":{"line":17,"column":36},"end":{"line":17,"column":98}},{"start":{"line":17,"column":102},"end":{"line":17,"column":104}}],"line":17}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":8030,"6":8030,"7":8030,"8":1,"9":8034,"10":8034,"11":1,"12":1},"f":{"0":1,"1":221,"2":8030,"3":8034},"b":{"0":[8030,2315],"1":[8034,8021]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/metadata_reader.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/planning/metadata_reader.ts"],"names":[],"mappings":";;;AAAA,yDAA2D;AAG3D;IAAA;IAuBA,CAAC;IArBU,+CAAsB,GAA7B,UAA8B,eAAyB;QAGnD,IAAM,yBAAyB,GAAG,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QAGjG,IAAM,qBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAExF,OAAO;YACH,yBAAyB,2BAAA;YACzB,qBAAqB,EAAE,qBAAqB,IAAI,EAAE;SACrD,CAAC;IAEN,CAAC;IAEM,8CAAqB,GAA5B,UAA6B,eAAyB;QAElD,IAAM,qBAAqB,GAAI,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,EAAE,CAAC;QACpG,OAAO,qBAAqB,CAAC;IACjC,CAAC;IAEL,qBAAC;AAAD,CAAC,AAvBD,IAuBC;AAEQ,wCAAc","sourcesContent":["import * as METADATA_KEY from \"../constants/metadata_keys\";\nimport { interfaces } from \"../interfaces/interfaces\";\n\nclass MetadataReader implements interfaces.MetadataReader {\n\n public getConstructorMetadata(constructorFunc: Function): interfaces.ConstructorMetadata {\n\n // TypeScript compiler generated annotations\n const compilerGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.PARAM_TYPES, constructorFunc);\n\n // User generated constructor annotations\n const userGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.TAGGED, constructorFunc);\n\n return {\n compilerGeneratedMetadata,\n userGeneratedMetadata: userGeneratedMetadata || {}\n };\n\n }\n\n public getPropertiesMetadata(constructorFunc: Function): interfaces.MetadataMap {\n // User generated properties annotations\n const userGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.TAGGED_PROP, constructorFunc) || [];\n return userGeneratedMetadata;\n }\n\n}\n\nexport { MetadataReader };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"971fbda66819c0656adcd040e11a9d0da11f25af","contentHash":"37cdda8fece1be04179b6e99a0fe62f39b6fb6c9fc3c26793041c340a45a670e"},"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/planner.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/planner.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":81}},"2":{"start":{"line":4,"column":22},"end":{"line":4,"column":58}},"3":{"start":{"line":5,"column":17},"end":{"line":5,"column":51}},"4":{"start":{"line":6,"column":22},"end":{"line":6,"column":59}},"5":{"start":{"line":7,"column":19},"end":{"line":7,"column":56}},"6":{"start":{"line":8,"column":19},"end":{"line":8,"column":49}},"7":{"start":{"line":9,"column":22},"end":{"line":9,"column":55}},"8":{"start":{"line":10,"column":16},"end":{"line":10,"column":36}},"9":{"start":{"line":11,"column":17},"end":{"line":11,"column":38}},"10":{"start":{"line":12,"column":13},"end":{"line":12,"column":30}},"11":{"start":{"line":13,"column":25},"end":{"line":13,"column":54}},"12":{"start":{"line":14,"column":16},"end":{"line":14,"column":36}},"13":{"start":{"line":15,"column":15},"end":{"line":15,"column":34}},"14":{"start":{"line":17,"column":4},"end":{"line":17,"column":36}},"15":{"start":{"line":19,"column":0},"end":{"line":19,"column":52}},"16":{"start":{"line":21,"column":22},"end":{"line":21,"column":93}},"17":{"start":{"line":22,"column":25},"end":{"line":22,"column":80}},"18":{"start":{"line":23,"column":17},"end":{"line":23,"column":89}},"19":{"start":{"line":24,"column":4},"end":{"line":27,"column":5}},"20":{"start":{"line":25,"column":26},"end":{"line":25,"column":61}},"21":{"start":{"line":26,"column":8},"end":{"line":26,"column":42}},"22":{"start":{"line":28,"column":4},"end":{"line":28,"column":18}},"23":{"start":{"line":31,"column":19},"end":{"line":31,"column":75}},"24":{"start":{"line":32,"column":25},"end":{"line":32,"column":27}},"25":{"start":{"line":33,"column":4},"end":{"line":39,"column":5}},"26":{"start":{"line":37,"column":8},"end":{"line":37,"column":66}},"27":{"start":{"line":38,"column":8},"end":{"line":38,"column":76}},"28":{"start":{"line":40,"column":4},"end":{"line":48,"column":5}},"29":{"start":{"line":41,"column":8},"end":{"line":44,"column":11}},"30":{"start":{"line":42,"column":26},"end":{"line":42,"column":115}},"31":{"start":{"line":43,"column":12},"end":{"line":43,"column":47}},"32":{"start":{"line":47,"column":8},"end":{"line":47,"column":34}},"33":{"start":{"line":49,"column":4},"end":{"line":49,"column":101}},"34":{"start":{"line":50,"column":4},"end":{"line":50,"column":26}},"35":{"start":{"line":53,"column":4},"end":{"line":80,"column":5}},"36":{"start":{"line":55,"column":12},"end":{"line":64,"column":13}},"37":{"start":{"line":56,"column":16},"end":{"line":56,"column":32}},"38":{"start":{"line":59,"column":46},"end":{"line":59,"column":109}},"39":{"start":{"line":60,"column":26},"end":{"line":60,"column":51}},"40":{"start":{"line":61,"column":16},"end":{"line":61,"column":94}},"41":{"start":{"line":62,"column":16},"end":{"line":62,"column":131}},"42":{"start":{"line":63,"column":16},"end":{"line":63,"column":37}},"43":{"start":{"line":66,"column":12},"end":{"line":68,"column":13}},"44":{"start":{"line":67,"column":16},"end":{"line":67,"column":32}},"45":{"start":{"line":71,"column":12},"end":{"line":79,"column":13}},"46":{"start":{"line":72,"column":46},"end":{"line":72,"column":109}},"47":{"start":{"line":73,"column":26},"end":{"line":73,"column":84}},"48":{"start":{"line":74,"column":16},"end":{"line":74,"column":131}},"49":{"start":{"line":75,"column":16},"end":{"line":75,"column":37}},"50":{"start":{"line":78,"column":16},"end":{"line":78,"column":32}},"51":{"start":{"line":85,"column":4},"end":{"line":94,"column":5}},"52":{"start":{"line":86,"column":8},"end":{"line":86,"column":101}},"53":{"start":{"line":87,"column":8},"end":{"line":87,"column":103}},"54":{"start":{"line":88,"column":22},"end":{"line":88,"column":60}},"55":{"start":{"line":89,"column":8},"end":{"line":89,"column":33}},"56":{"start":{"line":92,"column":8},"end":{"line":92,"column":110}},"57":{"start":{"line":93,"column":8},"end":{"line":93,"column":103}},"58":{"start":{"line":95,"column":4},"end":{"line":119,"column":7}},"59":{"start":{"line":96,"column":30},"end":{"line":96,"column":34}},"60":{"start":{"line":97,"column":8},"end":{"line":105,"column":9}},"61":{"start":{"line":98,"column":12},"end":{"line":98,"column":103}},"62":{"start":{"line":101,"column":12},"end":{"line":103,"column":13}},"63":{"start":{"line":102,"column":16},"end":{"line":102,"column":23}},"64":{"start":{"line":104,"column":12},"end":{"line":104,"column":43}},"65":{"start":{"line":106,"column":8},"end":{"line":118,"column":9}},"66":{"start":{"line":107,"column":31},"end":{"line":107,"column":109}},"67":{"start":{"line":108,"column":12},"end":{"line":114,"column":13}},"68":{"start":{"line":109,"column":47},"end":{"line":109,"column":137}},"69":{"start":{"line":110,"column":16},"end":{"line":113,"column":17}},"70":{"start":{"line":111,"column":32},"end":{"line":111,"column":132}},"71":{"start":{"line":112,"column":20},"end":{"line":112,"column":43}},"72":{"start":{"line":115,"column":12},"end":{"line":117,"column":15}},"73":{"start":{"line":116,"column":16},"end":{"line":116,"column":126}},"74":{"start":{"line":122,"column":19},"end":{"line":122,"column":21}},"75":{"start":{"line":123,"column":28},"end":{"line":123,"column":59}},"76":{"start":{"line":124,"column":4},"end":{"line":129,"column":5}},"77":{"start":{"line":125,"column":8},"end":{"line":125,"column":60}},"78":{"start":{"line":127,"column":9},"end":{"line":129,"column":5}},"79":{"start":{"line":128,"column":8},"end":{"line":128,"column":68}},"80":{"start":{"line":130,"column":4},"end":{"line":130,"column":20}},"81":{"start":{"line":133,"column":4},"end":{"line":133,"column":66}},"82":{"start":{"line":133,"column":39},"end":{"line":133,"column":64}},"83":{"start":{"line":134,"column":18},"end":{"line":134,"column":50}},"84":{"start":{"line":135,"column":17},"end":{"line":135,"column":92}},"85":{"start":{"line":136,"column":4},"end":{"line":147,"column":5}},"86":{"start":{"line":137,"column":8},"end":{"line":137,"column":103}},"87":{"start":{"line":138,"column":8},"end":{"line":138,"column":23}},"88":{"start":{"line":141,"column":8},"end":{"line":145,"column":9}},"89":{"start":{"line":142,"column":12},"end":{"line":144,"column":13}},"90":{"start":{"line":143,"column":16},"end":{"line":143,"column":88}},"91":{"start":{"line":146,"column":8},"end":{"line":146,"column":20}},"92":{"start":{"line":149,"column":0},"end":{"line":149,"column":20}},"93":{"start":{"line":151,"column":17},"end":{"line":151,"column":137}},"94":{"start":{"line":152,"column":18},"end":{"line":152,"column":50}},"95":{"start":{"line":153,"column":18},"end":{"line":153,"column":85}},"96":{"start":{"line":154,"column":4},"end":{"line":154,"column":19}},"97":{"start":{"line":156,"column":0},"end":{"line":156,"column":46}}},"fnMap":{"0":{"name":"getBindingDictionary","decl":{"start":{"line":16,"column":9},"end":{"line":16,"column":29}},"loc":{"start":{"line":16,"column":37},"end":{"line":18,"column":1}},"line":16},"1":{"name":"_createTarget","decl":{"start":{"line":20,"column":9},"end":{"line":20,"column":22}},"loc":{"start":{"line":20,"column":87},"end":{"line":29,"column":1}},"line":20},"2":{"name":"_getActiveBindings","decl":{"start":{"line":30,"column":9},"end":{"line":30,"column":27}},"loc":{"start":{"line":30,"column":94},"end":{"line":51,"column":1}},"line":30},"3":{"name":"(anonymous_3)","decl":{"start":{"line":41,"column":41},"end":{"line":41,"column":42}},"loc":{"start":{"line":41,"column":60},"end":{"line":44,"column":9}},"line":41},"4":{"name":"_validateActiveBindingCount","decl":{"start":{"line":52,"column":9},"end":{"line":52,"column":36}},"loc":{"start":{"line":52,"column":85},"end":{"line":81,"column":1}},"line":52},"5":{"name":"_createSubRequests","decl":{"start":{"line":82,"column":9},"end":{"line":82,"column":27}},"loc":{"start":{"line":82,"column":113},"end":{"line":120,"column":1}},"line":82},"6":{"name":"(anonymous_6)","decl":{"start":{"line":95,"column":27},"end":{"line":95,"column":28}},"loc":{"start":{"line":95,"column":46},"end":{"line":119,"column":5}},"line":95},"7":{"name":"(anonymous_7)","decl":{"start":{"line":115,"column":33},"end":{"line":115,"column":34}},"loc":{"start":{"line":115,"column":55},"end":{"line":117,"column":13}},"line":115},"8":{"name":"getBindings","decl":{"start":{"line":121,"column":9},"end":{"line":121,"column":20}},"loc":{"start":{"line":121,"column":51},"end":{"line":131,"column":1}},"line":121},"9":{"name":"plan","decl":{"start":{"line":132,"column":9},"end":{"line":132,"column":13}},"loc":{"start":{"line":132,"column":117},"end":{"line":148,"column":1}},"line":132},"10":{"name":"createMockRequest","decl":{"start":{"line":150,"column":9},"end":{"line":150,"column":26}},"loc":{"start":{"line":150,"column":69},"end":{"line":155,"column":1}},"line":150}},"branchMap":{"0":{"loc":{"start":{"line":21,"column":22},"end":{"line":21,"column":93}},"type":"cond-expr","locations":[{"start":{"line":21,"column":38},"end":{"line":21,"column":67}},{"start":{"line":21,"column":70},"end":{"line":21,"column":93}}],"line":21},"1":{"loc":{"start":{"line":24,"column":4},"end":{"line":27,"column":5}},"type":"if","locations":[{"start":{"line":24,"column":4},"end":{"line":27,"column":5}},{"start":{"line":24,"column":4},"end":{"line":27,"column":5}}],"line":24},"2":{"loc":{"start":{"line":33,"column":4},"end":{"line":39,"column":5}},"type":"if","locations":[{"start":{"line":33,"column":4},"end":{"line":39,"column":5}},{"start":{"line":33,"column":4},"end":{"line":39,"column":5}}],"line":33},"3":{"loc":{"start":{"line":33,"column":8},"end":{"line":36,"column":97}},"type":"binary-expr","locations":[{"start":{"line":33,"column":8},"end":{"line":33,"column":76}},{"start":{"line":34,"column":8},"end":{"line":34,"column":52}},{"start":{"line":35,"column":8},"end":{"line":35,"column":54}},{"start":{"line":36,"column":8},"end":{"line":36,"column":97}}],"line":33},"4":{"loc":{"start":{"line":40,"column":4},"end":{"line":48,"column":5}},"type":"if","locations":[{"start":{"line":40,"column":4},"end":{"line":48,"column":5}},{"start":{"line":40,"column":4},"end":{"line":48,"column":5}}],"line":40},"5":{"loc":{"start":{"line":53,"column":4},"end":{"line":80,"column":5}},"type":"switch","locations":[{"start":{"line":54,"column":8},"end":{"line":64,"column":13}},{"start":{"line":65,"column":8},"end":{"line":68,"column":13}},{"start":{"line":69,"column":8},"end":{"line":69,"column":68}},{"start":{"line":70,"column":8},"end":{"line":79,"column":13}}],"line":53},"6":{"loc":{"start":{"line":55,"column":12},"end":{"line":64,"column":13}},"type":"if","locations":[{"start":{"line":55,"column":12},"end":{"line":64,"column":13}},{"start":{"line":55,"column":12},"end":{"line":64,"column":13}}],"line":55},"7":{"loc":{"start":{"line":66,"column":12},"end":{"line":68,"column":13}},"type":"if","locations":[{"start":{"line":66,"column":12},"end":{"line":68,"column":13}},{"start":{"line":66,"column":12},"end":{"line":68,"column":13}}],"line":66},"8":{"loc":{"start":{"line":71,"column":12},"end":{"line":79,"column":13}},"type":"if","locations":[{"start":{"line":71,"column":12},"end":{"line":79,"column":13}},{"start":{"line":71,"column":12},"end":{"line":79,"column":13}}],"line":71},"9":{"loc":{"start":{"line":85,"column":4},"end":{"line":94,"column":5}},"type":"if","locations":[{"start":{"line":85,"column":4},"end":{"line":94,"column":5}},{"start":{"line":85,"column":4},"end":{"line":94,"column":5}}],"line":85},"10":{"loc":{"start":{"line":97,"column":8},"end":{"line":105,"column":9}},"type":"if","locations":[{"start":{"line":97,"column":8},"end":{"line":105,"column":9}},{"start":{"line":97,"column":8},"end":{"line":105,"column":9}}],"line":97},"11":{"loc":{"start":{"line":101,"column":12},"end":{"line":103,"column":13}},"type":"if","locations":[{"start":{"line":101,"column":12},"end":{"line":103,"column":13}},{"start":{"line":101,"column":12},"end":{"line":103,"column":13}}],"line":101},"12":{"loc":{"start":{"line":106,"column":8},"end":{"line":118,"column":9}},"type":"if","locations":[{"start":{"line":106,"column":8},"end":{"line":118,"column":9}},{"start":{"line":106,"column":8},"end":{"line":118,"column":9}}],"line":106},"13":{"loc":{"start":{"line":106,"column":12},"end":{"line":106,"column":108}},"type":"binary-expr","locations":[{"start":{"line":106,"column":12},"end":{"line":106,"column":69}},{"start":{"line":106,"column":73},"end":{"line":106,"column":108}}],"line":106},"14":{"loc":{"start":{"line":108,"column":12},"end":{"line":114,"column":13}},"type":"if","locations":[{"start":{"line":108,"column":12},"end":{"line":114,"column":13}},{"start":{"line":108,"column":12},"end":{"line":114,"column":13}}],"line":108},"15":{"loc":{"start":{"line":110,"column":16},"end":{"line":113,"column":17}},"type":"if","locations":[{"start":{"line":110,"column":16},"end":{"line":113,"column":17}},{"start":{"line":110,"column":16},"end":{"line":113,"column":17}}],"line":110},"16":{"loc":{"start":{"line":124,"column":4},"end":{"line":129,"column":5}},"type":"if","locations":[{"start":{"line":124,"column":4},"end":{"line":129,"column":5}},{"start":{"line":124,"column":4},"end":{"line":129,"column":5}}],"line":124},"17":{"loc":{"start":{"line":127,"column":9},"end":{"line":129,"column":5}},"type":"if","locations":[{"start":{"line":127,"column":9},"end":{"line":129,"column":5}},{"start":{"line":127,"column":9},"end":{"line":129,"column":5}}],"line":127},"18":{"loc":{"start":{"line":133,"column":4},"end":{"line":133,"column":66}},"type":"if","locations":[{"start":{"line":133,"column":4},"end":{"line":133,"column":66}},{"start":{"line":133,"column":4},"end":{"line":133,"column":66}}],"line":133},"19":{"loc":{"start":{"line":141,"column":8},"end":{"line":145,"column":9}},"type":"if","locations":[{"start":{"line":141,"column":8},"end":{"line":145,"column":9}},{"start":{"line":141,"column":8},"end":{"line":145,"column":9}}],"line":141},"20":{"loc":{"start":{"line":142,"column":12},"end":{"line":144,"column":13}},"type":"if","locations":[{"start":{"line":142,"column":12},"end":{"line":144,"column":13}},{"start":{"line":142,"column":12},"end":{"line":144,"column":13}}],"line":142}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":8896,"15":1,"16":943,"17":943,"18":943,"19":943,"20":30,"21":30,"22":943,"23":8829,"24":8829,"25":8829,"26":6,"27":6,"28":8829,"29":8823,"30":8874,"31":8874,"32":6,"33":8829,"34":8797,"35":8829,"36":31,"37":3,"38":28,"39":28,"40":28,"41":28,"42":28,"43":8783,"44":8777,"45":21,"46":4,"47":4,"48":4,"49":4,"50":17,"51":8829,"52":943,"53":913,"54":913,"55":913,"56":7886,"57":7884,"58":8797,"59":8805,"60":8805,"61":28,"62":8777,"63":72,"64":8705,"65":8733,"66":8012,"67":8006,"68":8004,"69":8002,"70":1,"71":1,"72":8003,"73":7886,"74":8876,"75":8876,"76":8876,"77":8812,"78":64,"79":9,"80":8876,"81":943,"82":26,"83":943,"84":943,"85":943,"86":943,"87":902,"88":41,"89":4,"90":4,"91":38,"92":1,"93":16,"94":16,"95":16,"96":16,"97":1},"f":{"0":8896,"1":943,"2":8829,"3":8874,"4":8829,"5":8829,"6":8805,"7":7886,"8":8876,"9":943,"10":16},"b":{"0":[14,929],"1":[30,913],"2":[6,8823],"3":[8829,32,7,7],"4":[8823,6],"5":[31,8783,21,21],"6":[3,28],"7":[8777,6],"8":[4,17],"9":[943,7886],"10":[28,8777],"11":[72,8705],"12":[8012,721],"13":[8733,8012],"14":[8004,2],"15":[1,8001],"16":[8812,64],"17":[9,55],"18":[26,917],"19":[4,37],"20":[4,0]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/planner.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/planning/planner.ts"],"names":[],"mappings":"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","sourcesContent":["import { BindingCount } from \"../bindings/binding_count\";\nimport * as ERROR_MSGS from \"../constants/error_msgs\";\nimport { BindingTypeEnum, TargetTypeEnum } from \"../constants/literal_types\";\nimport * as METADATA_KEY from \"../constants/metadata_keys\";\nimport { interfaces } from \"../interfaces/interfaces\";\nimport { isStackOverflowExeption } from \"../utils/exceptions\";\nimport {\n circularDependencyToException,\n getServiceIdentifierAsString,\n listMetadataForTarget,\n listRegisteredBindingsForServiceIdentifier\n} from \"../utils/serialization\";\nimport { Context } from \"./context\";\nimport { Metadata } from \"./metadata\";\nimport { Plan } from \"./plan\";\nimport { getBaseClassDependencyCount, getDependencies, getFunctionName } from \"./reflection_utils\";\nimport { Request } from \"./request\";\nimport { Target } from \"./target\";\n\nfunction getBindingDictionary (cntnr: any): interfaces.Lookup<interfaces.Binding<any>> {\n return cntnr._bindingDictionary;\n}\n\nfunction _createTarget(\n isMultiInject: boolean,\n targetType: interfaces.TargetType,\n serviceIdentifier: interfaces.ServiceIdentifier<any>,\n name: string,\n key?: string | number | symbol,\n value?: any\n): interfaces.Target {\n\n const metadataKey = isMultiInject ? METADATA_KEY.MULTI_INJECT_TAG : METADATA_KEY.INJECT_TAG;\n const injectMetadata = new Metadata(metadataKey, serviceIdentifier);\n const target = new Target(targetType, name, serviceIdentifier, injectMetadata);\n\n if (key !== undefined) {\n const tagMetadata = new Metadata(key, value);\n target.metadata.push(tagMetadata);\n }\n\n return target;\n\n}\n\nfunction _getActiveBindings(\n metadataReader: interfaces.MetadataReader,\n avoidConstraints: boolean,\n context: interfaces.Context,\n parentRequest: interfaces.Request | null,\n target: interfaces.Target\n): interfaces.Binding<any>[] {\n\n let bindings = getBindings<any>(context.container, target.serviceIdentifier);\n let activeBindings: interfaces.Binding<any>[] = [];\n\n // automatic binding\n if (bindings.length === BindingCount.NoBindingsAvailable &&\n context.container.options.autoBindInjectable &&\n typeof target.serviceIdentifier === \"function\" &&\n metadataReader.getConstructorMetadata(target.serviceIdentifier).compilerGeneratedMetadata\n ) {\n context.container.bind(target.serviceIdentifier).toSelf();\n bindings = getBindings(context.container, target.serviceIdentifier);\n }\n\n // multiple bindings available\n if (!avoidConstraints) {\n\n // apply constraints if available to reduce the number of active bindings\n activeBindings = bindings.filter((binding) => {\n\n const request = new Request(\n binding.serviceIdentifier,\n context,\n parentRequest,\n binding,\n target\n );\n\n return binding.constraint(request);\n\n });\n\n } else {\n // simple injection or multi-injection without constraints\n activeBindings = bindings;\n }\n\n // validate active bindings\n _validateActiveBindingCount(target.serviceIdentifier, activeBindings, target, context.container);\n\n return activeBindings;\n}\n\nfunction _validateActiveBindingCount(\n serviceIdentifier: interfaces.ServiceIdentifier<any>,\n bindings: interfaces.Binding<any>[],\n target: interfaces.Target,\n container: interfaces.Container\n): interfaces.Binding<any>[] {\n\n switch (bindings.length) {\n\n case BindingCount.NoBindingsAvailable:\n if (target.isOptional()) {\n return bindings;\n } else {\n const serviceIdentifierString = getServiceIdentifierAsString(serviceIdentifier);\n let msg = ERROR_MSGS.NOT_REGISTERED;\n msg += listMetadataForTarget(serviceIdentifierString, target);\n msg += listRegisteredBindingsForServiceIdentifier(container, serviceIdentifierString, getBindings);\n throw new Error(msg);\n }\n\n case BindingCount.OnlyOneBindingAvailable:\n if (!target.isArray()) {\n return bindings;\n }\n\n case BindingCount.MultipleBindingsAvailable:\n default:\n if (!target.isArray()) {\n const serviceIdentifierString = getServiceIdentifierAsString(serviceIdentifier);\n let msg = `${ERROR_MSGS.AMBIGUOUS_MATCH} ${serviceIdentifierString}`;\n msg += listRegisteredBindingsForServiceIdentifier(container, serviceIdentifierString, getBindings);\n throw new Error(msg);\n } else {\n return bindings;\n }\n }\n\n}\n\nfunction _createSubRequests(\n metadataReader: interfaces.MetadataReader,\n avoidConstraints: boolean,\n serviceIdentifier: interfaces.ServiceIdentifier<any>,\n context: interfaces.Context,\n parentRequest: interfaces.Request | null,\n target: interfaces.Target\n) {\n\n let activeBindings: interfaces.Binding<any>[];\n let childRequest: interfaces.Request;\n\n if (parentRequest === null) {\n\n activeBindings = _getActiveBindings(metadataReader, avoidConstraints, context, null, target);\n\n childRequest = new Request(\n serviceIdentifier,\n context,\n null,\n activeBindings,\n target\n );\n\n const thePlan = new Plan(context, childRequest);\n context.addPlan(thePlan);\n\n } else {\n activeBindings = _getActiveBindings(metadataReader, avoidConstraints, context, parentRequest, target);\n childRequest = parentRequest.addChildRequest(target.serviceIdentifier, activeBindings, target);\n }\n\n activeBindings.forEach((binding) => {\n\n let subChildRequest: interfaces.Request | null = null;\n\n if (target.isArray()) {\n subChildRequest = childRequest.addChildRequest(binding.serviceIdentifier, binding, target);\n } else {\n if (binding.cache) {\n return;\n }\n subChildRequest = childRequest;\n }\n\n if (binding.type === BindingTypeEnum.Instance && binding.implementationType !== null) {\n\n const dependencies = getDependencies(metadataReader, binding.implementationType);\n\n if (!context.container.options.skipBaseClassChecks) {\n // Throw if a derived class does not implement its constructor explicitly\n // We do this to prevent errors when a base class (parent) has dependencies\n // and one of the derived classes (children) has no dependencies\n const baseClassDependencyCount = getBaseClassDependencyCount(metadataReader, binding.implementationType);\n\n if (dependencies.length < baseClassDependencyCount) {\n const error = ERROR_MSGS.ARGUMENTS_LENGTH_MISMATCH(getFunctionName(binding.implementationType));\n throw new Error(error);\n }\n }\n\n dependencies.forEach((dependency: interfaces.Target) => {\n _createSubRequests(metadataReader, false, dependency.serviceIdentifier, context, subChildRequest, dependency);\n });\n\n }\n\n });\n\n}\n\nfunction getBindings<T>(\n container: interfaces.Container,\n serviceIdentifier: interfaces.ServiceIdentifier<T>\n): interfaces.Binding<T>[] {\n\n let bindings: interfaces.Binding<T>[] = [];\n const bindingDictionary: interfaces.Lookup<interfaces.Binding<any>> = getBindingDictionary(container);\n\n if (bindingDictionary.hasKey(serviceIdentifier)) {\n\n bindings = bindingDictionary.get(serviceIdentifier);\n\n } else if (container.parent !== null) {\n\n // recursively try to get bindings from parent container\n bindings = getBindings<T>(container.parent, serviceIdentifier);\n\n }\n\n return bindings;\n}\n\nfunction plan(\n metadataReader: interfaces.MetadataReader,\n container: interfaces.Container,\n isMultiInject: boolean,\n targetType: interfaces.TargetType,\n serviceIdentifier: interfaces.ServiceIdentifier<any>,\n key?: string | number | symbol,\n value?: any,\n avoidConstraints = false\n): interfaces.Context {\n\n const context = new Context(container);\n const target = _createTarget(isMultiInject, targetType, serviceIdentifier, \"\", key, value);\n\n try {\n _createSubRequests(metadataReader, avoidConstraints, serviceIdentifier, context, null, target);\n return context;\n } catch (error) {\n if (\n isStackOverflowExeption(error)\n ) {\n if (context.plan) {\n circularDependencyToException(context.plan.rootRequest);\n }\n }\n throw error;\n }\n\n}\n\nfunction createMockRequest(\n container: interfaces.Container,\n serviceIdentifier: interfaces.ServiceIdentifier<any>,\n key: string | number | symbol,\n value: any\n): interfaces.Request {\n\n const target = new Target(TargetTypeEnum.Variable, \"\", serviceIdentifier, new Metadata(key, value));\n const context = new Context(container);\n const request = new Request(serviceIdentifier, context, null, [], target);\n return request;\n}\n\nexport { plan, createMockRequest, getBindingDictionary };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"418b8b46da5402d81ede1c2c6c86529259e8a94f","contentHash":"3d4e9654781be6e0d2e63e7fadfa0e2ac8bcf7cf3b6a44ecec79c0511f13e9be"},"/Users/dan/jsProjects/inversify/InversifyJS/src/bindings/binding_count.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/bindings/binding_count.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":30}},"2":{"start":{"line":4,"column":19},"end":{"line":8,"column":1}},"3":{"start":{"line":9,"column":0},"end":{"line":9,"column":36}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1},"f":{},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/bindings/binding_count.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/bindings/binding_count.ts"],"names":[],"mappings":";;;AAAA,IAAM,YAAY,GAAG;IACjB,yBAAyB,EAAE,CAAC;IAC5B,mBAAmB,EAAE,CAAC;IACtB,uBAAuB,EAAE,CAAC;CAC7B,CAAC;AAEO,oCAAY","sourcesContent":["const BindingCount = {\n MultipleBindingsAvailable: 2,\n NoBindingsAvailable: 0,\n OnlyOneBindingAvailable: 1\n};\n\nexport { BindingCount };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"0f60fb12930999994fd0e7a3c60705b22720d8ad","contentHash":"6db64ac02caf12977d76e72b6dd2a8b17a15d4d0dc8e19fcfccc7df4f2d1fbf8"},"/Users/dan/jsProjects/inversify/InversifyJS/src/utils/exceptions.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/utils/exceptions.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":41}},"2":{"start":{"line":4,"column":17},"end":{"line":4,"column":51}},"3":{"start":{"line":6,"column":4},"end":{"line":7,"column":53}},"4":{"start":{"line":9,"column":0},"end":{"line":9,"column":58}}},"fnMap":{"0":{"name":"isStackOverflowExeption","decl":{"start":{"line":5,"column":9},"end":{"line":5,"column":32}},"loc":{"start":{"line":5,"column":40},"end":{"line":8,"column":1}},"line":5}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":12},"end":{"line":7,"column":51}},"type":"binary-expr","locations":[{"start":{"line":6,"column":12},"end":{"line":6,"column":39}},{"start":{"line":7,"column":8},"end":{"line":7,"column":51}}],"line":6}},"s":{"0":1,"1":1,"2":1,"3":715,"4":1},"f":{"0":715},"b":{"0":[715,683]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/utils/exceptions.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/utils/exceptions.ts"],"names":[],"mappings":";;;AAAA,oDAAsD;AAEtD,SAAgB,uBAAuB,CAAC,KAAY;IAChD,OAAO,CACH,KAAK,YAAY,UAAU;QAC3B,KAAK,CAAC,OAAO,KAAK,UAAU,CAAC,cAAc,CAC9C,CAAC;AACN,CAAC;AALD,0DAKC","sourcesContent":["import * as ERROR_MSGS from \"../constants/error_msgs\";\n\nexport function isStackOverflowExeption(error: Error) {\n return (\n error instanceof RangeError ||\n error.message === ERROR_MSGS.STACK_OVERFLOW\n );\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"2dfd2ab93c4bb16bc258dbbaf7e50db5afdb6954","contentHash":"8d72b9dd58dd5428b967910cd94ce1ff2e310b286f1fe7707f28a10b13bacb6a"},"/Users/dan/jsProjects/inversify/InversifyJS/src/utils/serialization.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/utils/serialization.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":197}},"2":{"start":{"line":4,"column":17},"end":{"line":4,"column":51}},"3":{"start":{"line":6,"column":4},"end":{"line":16,"column":5}},"4":{"start":{"line":7,"column":33},"end":{"line":7,"column":50}},"5":{"start":{"line":8,"column":8},"end":{"line":8,"column":39}},"6":{"start":{"line":10,"column":9},"end":{"line":16,"column":5}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":44}},"8":{"start":{"line":14,"column":33},"end":{"line":14,"column":50}},"9":{"start":{"line":15,"column":8},"end":{"line":15,"column":34}},"10":{"start":{"line":18,"column":0},"end":{"line":18,"column":68}},"11":{"start":{"line":20,"column":33},"end":{"line":20,"column":35}},"12":{"start":{"line":21,"column":29},"end":{"line":21,"column":70}},"13":{"start":{"line":22,"column":4},"end":{"line":34,"column":5}},"14":{"start":{"line":23,"column":8},"end":{"line":23,"column":58}},"15":{"start":{"line":24,"column":8},"end":{"line":33,"column":11}},"16":{"start":{"line":25,"column":23},"end":{"line":25,"column":31}},"17":{"start":{"line":26,"column":12},"end":{"line":28,"column":13}},"18":{"start":{"line":27,"column":16},"end":{"line":27,"column":67}},"19":{"start":{"line":29,"column":12},"end":{"line":29,"column":75}},"20":{"start":{"line":30,"column":12},"end":{"line":32,"column":13}},"21":{"start":{"line":31,"column":16},"end":{"line":31,"column":102}},"22":{"start":{"line":35,"column":4},"end":{"line":35,"column":34}},"23":{"start":{"line":37,"column":0},"end":{"line":37,"column":96}},"24":{"start":{"line":39,"column":4},"end":{"line":47,"column":5}},"25":{"start":{"line":40,"column":8},"end":{"line":40,"column":21}},"26":{"start":{"line":42,"column":9},"end":{"line":47,"column":5}},"27":{"start":{"line":43,"column":8},"end":{"line":43,"column":20}},"28":{"start":{"line":46,"column":8},"end":{"line":46,"column":80}},"29":{"start":{"line":51,"column":8},"end":{"line":51,"column":47}},"30":{"start":{"line":51,"column":33},"end":{"line":51,"column":45}},"31":{"start":{"line":52,"column":32},"end":{"line":52,"column":83}},"32":{"start":{"line":53,"column":8},"end":{"line":53,"column":39}},"33":{"start":{"line":54,"column":8},"end":{"line":56,"column":9}},"34":{"start":{"line":55,"column":12},"end":{"line":55,"column":63}},"35":{"start":{"line":57,"column":8},"end":{"line":57,"column":22}},"36":{"start":{"line":59,"column":20},"end":{"line":59,"column":45}},"37":{"start":{"line":60,"column":4},"end":{"line":60,"column":45}},"38":{"start":{"line":63,"column":4},"end":{"line":71,"column":7}},"39":{"start":{"line":64,"column":8},"end":{"line":70,"column":9}},"40":{"start":{"line":65,"column":27},"end":{"line":65,"column":64}},"41":{"start":{"line":66,"column":12},"end":{"line":66,"column":77}},"42":{"start":{"line":69,"column":12},"end":{"line":69,"column":56}},"43":{"start":{"line":73,"column":0},"end":{"line":73,"column":70}},"44":{"start":{"line":75,"column":4},"end":{"line":91,"column":5}},"45":{"start":{"line":76,"column":18},"end":{"line":76,"column":20}},"46":{"start":{"line":77,"column":23},"end":{"line":77,"column":43}},"47":{"start":{"line":78,"column":24},"end":{"line":78,"column":46}},"48":{"start":{"line":79,"column":8},"end":{"line":81,"column":9}},"49":{"start":{"line":80,"column":12},"end":{"line":80,"column":46}},"50":{"start":{"line":82,"column":8},"end":{"line":86,"column":9}},"51":{"start":{"line":83,"column":12},"end":{"line":85,"column":15}},"52":{"start":{"line":84,"column":16},"end":{"line":84,"column":45}},"53":{"start":{"line":87,"column":8},"end":{"line":87,"column":93}},"54":{"start":{"line":90,"column":8},"end":{"line":90,"column":45}},"55":{"start":{"line":93,"column":0},"end":{"line":93,"column":54}},"56":{"start":{"line":95,"column":4},"end":{"line":102,"column":5}},"57":{"start":{"line":96,"column":8},"end":{"line":96,"column":22}},"58":{"start":{"line":99,"column":21},"end":{"line":99,"column":33}},"59":{"start":{"line":100,"column":20},"end":{"line":100,"column":57}},"60":{"start":{"line":101,"column":8},"end":{"line":101,"column":66}},"61":{"start":{"line":104,"column":0},"end":{"line":104,"column":42}}},"fnMap":{"0":{"name":"getServiceIdentifierAsString","decl":{"start":{"line":5,"column":9},"end":{"line":5,"column":37}},"loc":{"start":{"line":5,"column":57},"end":{"line":17,"column":1}},"line":5},"1":{"name":"listRegisteredBindingsForServiceIdentifier","decl":{"start":{"line":19,"column":9},"end":{"line":19,"column":51}},"loc":{"start":{"line":19,"column":95},"end":{"line":36,"column":1}},"line":19},"2":{"name":"(anonymous_2)","decl":{"start":{"line":24,"column":35},"end":{"line":24,"column":36}},"loc":{"start":{"line":24,"column":54},"end":{"line":33,"column":9}},"line":24},"3":{"name":"alreadyDependencyChain","decl":{"start":{"line":38,"column":9},"end":{"line":38,"column":31}},"loc":{"start":{"line":38,"column":60},"end":{"line":48,"column":1}},"line":38},"4":{"name":"dependencyChainToString","decl":{"start":{"line":49,"column":9},"end":{"line":49,"column":32}},"loc":{"start":{"line":49,"column":42},"end":{"line":61,"column":1}},"line":49},"5":{"name":"_createStringArr","decl":{"start":{"line":50,"column":13},"end":{"line":50,"column":29}},"loc":{"start":{"line":50,"column":43},"end":{"line":58,"column":5}},"line":50},"6":{"name":"circularDependencyToException","decl":{"start":{"line":62,"column":9},"end":{"line":62,"column":38}},"loc":{"start":{"line":62,"column":48},"end":{"line":72,"column":1}},"line":62},"7":{"name":"(anonymous_7)","decl":{"start":{"line":63,"column":34},"end":{"line":63,"column":35}},"loc":{"start":{"line":63,"column":58},"end":{"line":71,"column":5}},"line":63},"8":{"name":"listMetadataForTarget","decl":{"start":{"line":74,"column":9},"end":{"line":74,"column":30}},"loc":{"start":{"line":74,"column":64},"end":{"line":92,"column":1}},"line":74},"9":{"name":"(anonymous_9)","decl":{"start":{"line":83,"column":30},"end":{"line":83,"column":31}},"loc":{"start":{"line":83,"column":45},"end":{"line":85,"column":13}},"line":83},"10":{"name":"getFunctionName","decl":{"start":{"line":94,"column":9},"end":{"line":94,"column":24}},"loc":{"start":{"line":94,"column":28},"end":{"line":103,"column":1}},"line":94}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":4},"end":{"line":16,"column":5}},"type":"if","locations":[{"start":{"line":6,"column":4},"end":{"line":16,"column":5}},{"start":{"line":6,"column":4},"end":{"line":16,"column":5}}],"line":6},"1":{"loc":{"start":{"line":10,"column":9},"end":{"line":16,"column":5}},"type":"if","locations":[{"start":{"line":10,"column":9},"end":{"line":16,"column":5}},{"start":{"line":10,"column":9},"end":{"line":16,"column":5}}],"line":10},"2":{"loc":{"start":{"line":22,"column":4},"end":{"line":34,"column":5}},"type":"if","locations":[{"start":{"line":22,"column":4},"end":{"line":34,"column":5}},{"start":{"line":22,"column":4},"end":{"line":34,"column":5}}],"line":22},"3":{"loc":{"start":{"line":26,"column":12},"end":{"line":28,"column":13}},"type":"if","locations":[{"start":{"line":26,"column":12},"end":{"line":28,"column":13}},{"start":{"line":26,"column":12},"end":{"line":28,"column":13}}],"line":26},"4":{"loc":{"start":{"line":30,"column":12},"end":{"line":32,"column":13}},"type":"if","locations":[{"start":{"line":30,"column":12},"end":{"line":32,"column":13}},{"start":{"line":30,"column":12},"end":{"line":32,"column":13}}],"line":30},"5":{"loc":{"start":{"line":39,"column":4},"end":{"line":47,"column":5}},"type":"if","locations":[{"start":{"line":39,"column":4},"end":{"line":47,"column":5}},{"start":{"line":39,"column":4},"end":{"line":47,"column":5}}],"line":39},"6":{"loc":{"start":{"line":42,"column":9},"end":{"line":47,"column":5}},"type":"if","locations":[{"start":{"line":42,"column":9},"end":{"line":47,"column":5}},{"start":{"line":42,"column":9},"end":{"line":47,"column":5}}],"line":42},"7":{"loc":{"start":{"line":51,"column":8},"end":{"line":51,"column":47}},"type":"if","locations":[{"start":{"line":51,"column":8},"end":{"line":51,"column":47}},{"start":{"line":51,"column":8},"end":{"line":51,"column":47}}],"line":51},"8":{"loc":{"start":{"line":54,"column":8},"end":{"line":56,"column":9}},"type":"if","locations":[{"start":{"line":54,"column":8},"end":{"line":56,"column":9}},{"start":{"line":54,"column":8},"end":{"line":56,"column":9}}],"line":54},"9":{"loc":{"start":{"line":64,"column":8},"end":{"line":70,"column":9}},"type":"if","locations":[{"start":{"line":64,"column":8},"end":{"line":70,"column":9}},{"start":{"line":64,"column":8},"end":{"line":70,"column":9}}],"line":64},"10":{"loc":{"start":{"line":75,"column":4},"end":{"line":91,"column":5}},"type":"if","locations":[{"start":{"line":75,"column":4},"end":{"line":91,"column":5}},{"start":{"line":75,"column":4},"end":{"line":91,"column":5}}],"line":75},"11":{"loc":{"start":{"line":75,"column":8},"end":{"line":75,"column":45}},"type":"binary-expr","locations":[{"start":{"line":75,"column":8},"end":{"line":75,"column":25}},{"start":{"line":75,"column":29},"end":{"line":75,"column":45}}],"line":75},"12":{"loc":{"start":{"line":79,"column":8},"end":{"line":81,"column":9}},"type":"if","locations":[{"start":{"line":79,"column":8},"end":{"line":81,"column":9}},{"start":{"line":79,"column":8},"end":{"line":81,"column":9}}],"line":79},"13":{"loc":{"start":{"line":82,"column":8},"end":{"line":86,"column":9}},"type":"if","locations":[{"start":{"line":82,"column":8},"end":{"line":86,"column":9}},{"start":{"line":82,"column":8},"end":{"line":86,"column":9}}],"line":82},"14":{"loc":{"start":{"line":95,"column":4},"end":{"line":102,"column":5}},"type":"if","locations":[{"start":{"line":95,"column":4},"end":{"line":102,"column":5}},{"start":{"line":95,"column":4},"end":{"line":102,"column":5}}],"line":95},"15":{"loc":{"start":{"line":101,"column":15},"end":{"line":101,"column":65}},"type":"cond-expr","locations":[{"start":{"line":101,"column":23},"end":{"line":101,"column":31}},{"start":{"line":101,"column":34},"end":{"line":101,"column":65}}],"line":101}},"s":{"0":1,"1":1,"2":1,"3":53,"4":6,"5":6,"6":47,"7":8,"8":39,"9":39,"10":1,"11":32,"12":32,"13":32,"14":9,"15":9,"16":19,"17":19,"18":17,"19":19,"20":19,"21":13,"22":32,"23":1,"24":41,"25":12,"26":29,"27":3,"28":26,"29":13,"30":3,"31":13,"32":13,"33":13,"34":10,"35":3,"36":3,"37":3,"38":16,"39":15,"40":3,"41":3,"42":12,"43":1,"44":29,"45":10,"46":10,"47":10,"48":10,"49":6,"50":10,"51":4,"52":4,"53":10,"54":19,"55":1,"56":8050,"57":8048,"58":2,"59":2,"60":2,"61":1},"f":{"0":53,"1":32,"2":19,"3":41,"4":3,"5":13,"6":16,"7":15,"8":29,"9":4,"10":8050},"b":{"0":[6,47],"1":[8,39],"2":[9,23],"3":[17,2],"4":[13,6],"5":[12,29],"6":[3,26],"7":[3,10],"8":[10,3],"9":[3,12],"10":[10,19],"11":[29,25],"12":[6,4],"13":[4,6],"14":[8048,2],"15":[1,1]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/utils/serialization.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/utils/serialization.ts"],"names":[],"mappings":"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","sourcesContent":["import * as ERROR_MSGS from \"../constants/error_msgs\";\nimport { interfaces } from \"../interfaces/interfaces\";\n\nfunction getServiceIdentifierAsString(serviceIdentifier: interfaces.ServiceIdentifier<any>): string {\n if (typeof serviceIdentifier === \"function\") {\n const _serviceIdentifier: any = serviceIdentifier;\n return _serviceIdentifier.name;\n } else if (typeof serviceIdentifier === \"symbol\") {\n return serviceIdentifier.toString();\n } else { // string\n const _serviceIdentifier: any = serviceIdentifier;\n return _serviceIdentifier;\n }\n}\n\nfunction listRegisteredBindingsForServiceIdentifier(\n container: interfaces.Container,\n serviceIdentifier: string,\n getBindings: <T>(\n container: interfaces.Container,\n serviceIdentifier: interfaces.ServiceIdentifier<T>\n ) => interfaces.Binding<T>[]\n): string {\n\n let registeredBindingsList = \"\";\n const registeredBindings = getBindings(container, serviceIdentifier);\n\n if (registeredBindings.length !== 0) {\n\n registeredBindingsList = \"\\nRegistered bindings:\";\n\n registeredBindings.forEach((binding: interfaces.Binding<any>) => {\n\n // Use \"Object as name of constant value injections\"\n let name = \"Object\";\n\n // Use function name if available\n if (binding.implementationType !== null) {\n name = getFunctionName(binding.implementationType);\n }\n\n registeredBindingsList = `${registeredBindingsList}\\n ${name}`;\n\n if (binding.constraint.metaData) {\n registeredBindingsList = `${registeredBindingsList} - ${binding.constraint.metaData}`;\n }\n\n });\n\n }\n\n return registeredBindingsList;\n}\n\nfunction alreadyDependencyChain(\n request: interfaces.Request,\n serviceIdentifier: interfaces.ServiceIdentifier<any>\n): boolean {\n if (request.parentRequest === null) {\n return false;\n } else if (request.parentRequest.serviceIdentifier === serviceIdentifier) {\n return true;\n } else {\n return alreadyDependencyChain(request.parentRequest, serviceIdentifier);\n }\n}\n\nfunction dependencyChainToString(\n request: interfaces.Request\n) {\n\n function _createStringArr(\n req: interfaces.Request,\n result: string[] = []\n ): string[] {\n const serviceIdentifier = getServiceIdentifierAsString(req.serviceIdentifier);\n result.push(serviceIdentifier);\n if (req.parentRequest !== null) {\n return _createStringArr(req.parentRequest, result);\n }\n return result;\n }\n\n const stringArr = _createStringArr(request);\n return stringArr.reverse().join(\" --> \");\n\n}\n\nfunction circularDependencyToException(\n request: interfaces.Request\n) {\n request.childRequests.forEach((childRequest) => {\n if (alreadyDependencyChain(childRequest, childRequest.serviceIdentifier)) {\n const services = dependencyChainToString(childRequest);\n throw new Error(`${ERROR_MSGS.CIRCULAR_DEPENDENCY} ${services}`);\n } else {\n circularDependencyToException(childRequest);\n }\n });\n}\n\nfunction listMetadataForTarget(serviceIdentifierString: string, target: interfaces.Target): string {\n if (target.isTagged() || target.isNamed()) {\n\n let m = \"\";\n\n const namedTag = target.getNamedTag();\n const otherTags = target.getCustomTags();\n\n if (namedTag !== null) {\n m += namedTag.toString() + \"\\n\";\n }\n\n if (otherTags !== null) {\n otherTags.forEach((tag) => {\n m += tag.toString() + \"\\n\";\n });\n }\n\n return ` ${serviceIdentifierString}\\n ${serviceIdentifierString} - ${m}`;\n\n } else {\n return ` ${serviceIdentifierString}`;\n }\n}\n\nfunction getFunctionName(v: any): string {\n if (v.name) {\n return v.name;\n } else {\n const name = v.toString();\n const match = name.match(/^function\\s*([^\\s(]+)/);\n return match ? match[1] : `Anonymous function: ${name}`;\n }\n}\n\nexport {\n getFunctionName,\n getServiceIdentifierAsString,\n listRegisteredBindingsForServiceIdentifier,\n listMetadataForTarget,\n circularDependencyToException\n};\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"b8b1c2c537a1a9e849c1533f7106017b81861f5b","contentHash":"ebc0d9c6e30d6abc08ff8951b4f78244d9f4f676cbb48f0b2cb283dc7c2f8bc7"},"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/context.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/context.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":25}},"2":{"start":{"line":4,"column":11},"end":{"line":4,"column":33}},"3":{"start":{"line":5,"column":15},"end":{"line":17,"column":3}},"4":{"start":{"line":7,"column":8},"end":{"line":7,"column":28}},"5":{"start":{"line":8,"column":8},"end":{"line":8,"column":35}},"6":{"start":{"line":10,"column":4},"end":{"line":12,"column":6}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":25}},"8":{"start":{"line":13,"column":4},"end":{"line":15,"column":6}},"9":{"start":{"line":14,"column":8},"end":{"line":14,"column":45}},"10":{"start":{"line":16,"column":4},"end":{"line":16,"column":19}},"11":{"start":{"line":18,"column":0},"end":{"line":18,"column":26}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":15},"end":{"line":5,"column":16}},"loc":{"start":{"line":5,"column":27},"end":{"line":17,"column":1}},"line":5},"1":{"name":"Context","decl":{"start":{"line":6,"column":13},"end":{"line":6,"column":20}},"loc":{"start":{"line":6,"column":32},"end":{"line":9,"column":5}},"line":6},"2":{"name":"(anonymous_2)","decl":{"start":{"line":10,"column":32},"end":{"line":10,"column":33}},"loc":{"start":{"line":10,"column":48},"end":{"line":12,"column":5}},"line":10},"3":{"name":"(anonymous_3)","decl":{"start":{"line":13,"column":42},"end":{"line":13,"column":43}},"loc":{"start":{"line":13,"column":68},"end":{"line":15,"column":5}},"line":13}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":972,"5":972,"6":1,"7":914,"8":1,"9":1724,"10":1,"11":1},"f":{"0":1,"1":972,"2":914,"3":1724},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/context.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/planning/context.ts"],"names":[],"mappings":";;;AACA,kCAAiC;AAEjC;IAOI,iBACI,SAA+B;QAC/B,IAAI,CAAC,EAAE,GAAG,OAAE,EAAE,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAEM,yBAAO,GAAd,UAAe,IAAqB;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAEM,mCAAiB,GAAxB,UAAyB,cAAkC;QACvD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACzC,CAAC;IAEL,cAAC;AAAD,CAAC,AArBD,IAqBC;AAEQ,0BAAO","sourcesContent":["import { interfaces } from \"../interfaces/interfaces\";\nimport { id } from \"../utils/id\";\n\nclass Context implements interfaces.Context {\n\n public id: number;\n public container: interfaces.Container;\n public plan: interfaces.Plan;\n public currentRequest: interfaces.Request;\n\n public constructor(\n container: interfaces.Container) {\n this.id = id();\n this.container = container;\n }\n\n public addPlan(plan: interfaces.Plan) {\n this.plan = plan;\n }\n\n public setCurrentRequest(currentRequest: interfaces.Request) {\n this.currentRequest = currentRequest;\n }\n\n}\n\nexport { Context };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"aa005119ea8a4529be9b4c1a7369dc50a4a8149f","contentHash":"03e3aa53d31aed658c5c4f4bd10d0bc73c2cddfda76d98fa46d787ea5f2bb13e"},"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/plan.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/plan.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":22}},"2":{"start":{"line":4,"column":12},"end":{"line":10,"column":3}},"3":{"start":{"line":6,"column":8},"end":{"line":6,"column":43}},"4":{"start":{"line":7,"column":8},"end":{"line":7,"column":39}},"5":{"start":{"line":9,"column":4},"end":{"line":9,"column":16}},"6":{"start":{"line":11,"column":0},"end":{"line":11,"column":20}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":12},"end":{"line":4,"column":13}},"loc":{"start":{"line":4,"column":24},"end":{"line":10,"column":1}},"line":4},"1":{"name":"Plan","decl":{"start":{"line":5,"column":13},"end":{"line":5,"column":17}},"loc":{"start":{"line":5,"column":46},"end":{"line":8,"column":5}},"line":5}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":915,"4":915,"5":1,"6":1},"f":{"0":1,"1":915},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/plan.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/planning/plan.ts"],"names":[],"mappings":";;;AAEA;IAKI,cAAmB,aAAiC,EAAE,WAA+B;QACjF,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;IACL,WAAC;AAAD,CAAC,AATD,IASC;AAEQ,oBAAI","sourcesContent":["import { interfaces } from \"../interfaces/interfaces\";\n\nclass Plan implements interfaces.Plan {\n\n public parentContext: interfaces.Context;\n public rootRequest: interfaces.Request;\n\n public constructor(parentContext: interfaces.Context, rootRequest: interfaces.Request) {\n this.parentContext = parentContext;\n this.rootRequest = rootRequest;\n }\n}\n\nexport { Plan };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"0c9b78c60e1bc3d911d8d76e1d4d5ab1cf8c37e7","contentHash":"43530cc60f6b97bd37d02dc305255ce89e5085fa606022a99cbcfdf6ab902348"},"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/reflection_utils.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/reflection_utils.ts","statementMap":{"0":{"start":{"line":2,"column":20},"end":{"line":6,"column":1}},"1":{"start":{"line":3,"column":4},"end":{"line":4,"column":24}},"2":{"start":{"line":3,"column":17},"end":{"line":3,"column":18}},"3":{"start":{"line":3,"column":25},"end":{"line":3,"column":36}},"4":{"start":{"line":3,"column":42},"end":{"line":3,"column":51}},"5":{"start":{"line":4,"column":8},"end":{"line":4,"column":24}},"6":{"start":{"line":5,"column":4},"end":{"line":5,"column":14}},"7":{"start":{"line":7,"column":0},"end":{"line":7,"column":62}},"8":{"start":{"line":8,"column":0},"end":{"line":8,"column":97}},"9":{"start":{"line":9,"column":15},"end":{"line":9,"column":46}},"10":{"start":{"line":10,"column":17},"end":{"line":10,"column":51}},"11":{"start":{"line":11,"column":22},"end":{"line":11,"column":59}},"12":{"start":{"line":12,"column":19},"end":{"line":12,"column":56}},"13":{"start":{"line":13,"column":22},"end":{"line":13,"column":55}},"14":{"start":{"line":14,"column":0},"end":{"line":14,"column":134}},"15":{"start":{"line":14,"column":89},"end":{"line":14,"column":128}},"16":{"start":{"line":15,"column":15},"end":{"line":15,"column":34}},"17":{"start":{"line":17,"column":26},"end":{"line":17,"column":63}},"18":{"start":{"line":18,"column":18},"end":{"line":18,"column":74}},"19":{"start":{"line":19,"column":4},"end":{"line":19,"column":19}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":42}},"21":{"start":{"line":23,"column":19},"end":{"line":23,"column":62}},"22":{"start":{"line":24,"column":29},"end":{"line":24,"column":63}},"23":{"start":{"line":25,"column":4},"end":{"line":28,"column":5}},"24":{"start":{"line":26,"column":18},"end":{"line":26,"column":88}},"25":{"start":{"line":27,"column":8},"end":{"line":27,"column":29}},"26":{"start":{"line":29,"column":34},"end":{"line":29,"column":64}},"27":{"start":{"line":30,"column":15},"end":{"line":30,"column":51}},"28":{"start":{"line":31,"column":44},"end":{"line":31,"column":80}},"29":{"start":{"line":32,"column":32},"end":{"line":32,"column":57}},"30":{"start":{"line":33,"column":21},"end":{"line":33,"column":108}},"31":{"start":{"line":34,"column":29},"end":{"line":34,"column":143}},"32":{"start":{"line":35,"column":26},"end":{"line":35,"column":70}},"33":{"start":{"line":36,"column":18},"end":{"line":36,"column":87}},"34":{"start":{"line":37,"column":4},"end":{"line":37,"column":19}},"35":{"start":{"line":40,"column":25},"end":{"line":40,"column":72}},"36":{"start":{"line":41,"column":19},"end":{"line":41,"column":55}},"37":{"start":{"line":42,"column":20},"end":{"line":42,"column":47}},"38":{"start":{"line":43,"column":28},"end":{"line":43,"column":53}},"39":{"start":{"line":44,"column":28},"end":{"line":44,"column":67}},"40":{"start":{"line":45,"column":4},"end":{"line":45,"column":84}},"41":{"start":{"line":46,"column":4},"end":{"line":48,"column":5}},"42":{"start":{"line":47,"column":8},"end":{"line":47,"column":55}},"43":{"start":{"line":49,"column":4},"end":{"line":61,"column":5}},"44":{"start":{"line":50,"column":23},"end":{"line":50,"column":51}},"45":{"start":{"line":51,"column":25},"end":{"line":51,"column":55}},"46":{"start":{"line":52,"column":26},"end":{"line":52,"column":57}},"47":{"start":{"line":53,"column":29},"end":{"line":53,"column":66}},"48":{"start":{"line":54,"column":8},"end":{"line":57,"column":9}},"49":{"start":{"line":55,"column":22},"end":{"line":55,"column":120}},"50":{"start":{"line":56,"column":12},"end":{"line":56,"column":33}},"51":{"start":{"line":58,"column":21},"end":{"line":58,"column":132}},"52":{"start":{"line":59,"column":8},"end":{"line":59,"column":41}},"53":{"start":{"line":60,"column":8},"end":{"line":60,"column":22}},"54":{"start":{"line":62,"column":4},"end":{"line":62,"column":16}},"55":{"start":{"line":65,"column":18},"end":{"line":65,"column":20}},"56":{"start":{"line":66,"column":4},"end":{"line":72,"column":5}},"57":{"start":{"line":66,"column":17},"end":{"line":66,"column":18}},"58":{"start":{"line":67,"column":20},"end":{"line":67,"column":21}},"59":{"start":{"line":68,"column":21},"end":{"line":68,"column":129}},"60":{"start":{"line":69,"column":8},"end":{"line":71,"column":9}},"61":{"start":{"line":70,"column":12},"end":{"line":70,"column":33}},"62":{"start":{"line":73,"column":4},"end":{"line":73,"column":19}},"63":{"start":{"line":76,"column":29},"end":{"line":76,"column":82}},"64":{"start":{"line":77,"column":18},"end":{"line":77,"column":20}},"65":{"start":{"line":78,"column":15},"end":{"line":78,"column":46}},"66":{"start":{"line":79,"column":4},"end":{"line":88,"column":5}},"67":{"start":{"line":79,"column":18},"end":{"line":79,"column":19}},"68":{"start":{"line":79,"column":30},"end":{"line":79,"column":34}},"69":{"start":{"line":80,"column":18},"end":{"line":80,"column":28}},"70":{"start":{"line":81,"column":29},"end":{"line":81,"column":52}},"71":{"start":{"line":82,"column":23},"end":{"line":82,"column":68}},"72":{"start":{"line":83,"column":25},"end":{"line":83,"column":51}},"73":{"start":{"line":84,"column":33},"end":{"line":84,"column":72}},"74":{"start":{"line":85,"column":21},"end":{"line":85,"column":117}},"75":{"start":{"line":86,"column":8},"end":{"line":86,"column":41}},"76":{"start":{"line":87,"column":8},"end":{"line":87,"column":29}},"77":{"start":{"line":89,"column":26},"end":{"line":89,"column":86}},"78":{"start":{"line":90,"column":4},"end":{"line":93,"column":5}},"79":{"start":{"line":91,"column":26},"end":{"line":91,"column":81}},"80":{"start":{"line":92,"column":8},"end":{"line":92,"column":73}},"81":{"start":{"line":94,"column":4},"end":{"line":94,"column":19}},"82":{"start":{"line":97,"column":26},"end":{"line":97,"column":75}},"83":{"start":{"line":98,"column":4},"end":{"line":117,"column":5}},"84":{"start":{"line":99,"column":34},"end":{"line":99,"column":82}},"85":{"start":{"line":100,"column":22},"end":{"line":100,"column":92}},"86":{"start":{"line":101,"column":23},"end":{"line":105,"column":10}},"87":{"start":{"line":102,"column":12},"end":{"line":104,"column":15}},"88":{"start":{"line":103,"column":16},"end":{"line":103,"column":60}},"89":{"start":{"line":106,"column":29},"end":{"line":106,"column":65}},"90":{"start":{"line":107,"column":30},"end":{"line":107,"column":61}},"91":{"start":{"line":108,"column":8},"end":{"line":113,"column":9}},"92":{"start":{"line":109,"column":12},"end":{"line":109,"column":35}},"93":{"start":{"line":112,"column":12},"end":{"line":112,"column":80}},"94":{"start":{"line":116,"column":8},"end":{"line":116,"column":17}},"95":{"start":{"line":119,"column":0},"end":{"line":119,"column":66}},"96":{"start":{"line":121,"column":28},"end":{"line":121,"column":30}},"97":{"start":{"line":122,"column":4},"end":{"line":124,"column":7}},"98":{"start":{"line":123,"column":8},"end":{"line":123,"column":54}},"99":{"start":{"line":125,"column":4},"end":{"line":130,"column":6}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":52},"end":{"line":2,"column":53}},"loc":{"start":{"line":2,"column":72},"end":{"line":6,"column":1}},"line":2},"1":{"name":"(anonymous_1)","decl":{"start":{"line":14,"column":75},"end":{"line":14,"column":76}},"loc":{"start":{"line":14,"column":87},"end":{"line":14,"column":130}},"line":14},"2":{"name":"getDependencies","decl":{"start":{"line":16,"column":9},"end":{"line":16,"column":24}},"loc":{"start":{"line":16,"column":47},"end":{"line":20,"column":1}},"line":16},"3":{"name":"getTargets","decl":{"start":{"line":22,"column":9},"end":{"line":22,"column":19}},"loc":{"start":{"line":22,"column":72},"end":{"line":38,"column":1}},"line":22},"4":{"name":"getConstructorArgsAsTarget","decl":{"start":{"line":39,"column":9},"end":{"line":39,"column":35}},"loc":{"start":{"line":39,"column":118},"end":{"line":63,"column":1}},"line":39},"5":{"name":"getConstructorArgsAsTargets","decl":{"start":{"line":64,"column":9},"end":{"line":64,"column":36}},"loc":{"start":{"line":64,"column":124},"end":{"line":74,"column":1}},"line":64},"6":{"name":"getClassPropsAsTargets","decl":{"start":{"line":75,"column":9},"end":{"line":75,"column":31}},"loc":{"start":{"line":75,"column":65},"end":{"line":95,"column":1}},"line":75},"7":{"name":"getBaseClassDependencyCount","decl":{"start":{"line":96,"column":9},"end":{"line":96,"column":36}},"loc":{"start":{"line":96,"column":59},"end":{"line":118,"column":1}},"line":96},"8":{"name":"(anonymous_8)","decl":{"start":{"line":101,"column":35},"end":{"line":101,"column":36}},"loc":{"start":{"line":101,"column":48},"end":{"line":105,"column":9}},"line":101},"9":{"name":"(anonymous_9)","decl":{"start":{"line":102,"column":37},"end":{"line":102,"column":38}},"loc":{"start":{"line":102,"column":50},"end":{"line":104,"column":13}},"line":102},"10":{"name":"formatTargetMetadata","decl":{"start":{"line":120,"column":9},"end":{"line":120,"column":29}},"loc":{"start":{"line":120,"column":46},"end":{"line":131,"column":1}},"line":120},"11":{"name":"(anonymous_11)","decl":{"start":{"line":122,"column":27},"end":{"line":122,"column":28}},"loc":{"start":{"line":122,"column":40},"end":{"line":124,"column":5}},"line":122}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":20},"end":{"line":6,"column":1}},"type":"binary-expr","locations":[{"start":{"line":2,"column":21},"end":{"line":2,"column":25}},{"start":{"line":2,"column":29},"end":{"line":2,"column":47}},{"start":{"line":2,"column":52},"end":{"line":6,"column":1}}],"line":2},"1":{"loc":{"start":{"line":25,"column":4},"end":{"line":28,"column":5}},"type":"if","locations":[{"start":{"line":25,"column":4},"end":{"line":28,"column":5}},{"start":{"line":25,"column":4},"end":{"line":28,"column":5}}],"line":25},"2":{"loc":{"start":{"line":31,"column":44},"end":{"line":31,"column":80}},"type":"binary-expr","locations":[{"start":{"line":31,"column":44},"end":{"line":31,"column":61}},{"start":{"line":31,"column":65},"end":{"line":31,"column":80}}],"line":31},"3":{"loc":{"start":{"line":33,"column":21},"end":{"line":33,"column":108}},"type":"cond-expr","locations":[{"start":{"line":33,"column":83},"end":{"line":33,"column":94}},{"start":{"line":33,"column":97},"end":{"line":33,"column":108}}],"line":33},"4":{"loc":{"start":{"line":33,"column":22},"end":{"line":33,"column":79}},"type":"binary-expr","locations":[{"start":{"line":33,"column":22},"end":{"line":33,"column":54}},{"start":{"line":33,"column":58},"end":{"line":33,"column":79}}],"line":33},"5":{"loc":{"start":{"line":40,"column":25},"end":{"line":40,"column":72}},"type":"binary-expr","locations":[{"start":{"line":40,"column":25},"end":{"line":40,"column":66}},{"start":{"line":40,"column":70},"end":{"line":40,"column":72}}],"line":40},"6":{"loc":{"start":{"line":44,"column":28},"end":{"line":44,"column":67}},"type":"binary-expr","locations":[{"start":{"line":44,"column":28},"end":{"line":44,"column":43}},{"start":{"line":44,"column":47},"end":{"line":44,"column":67}}],"line":44},"7":{"loc":{"start":{"line":45,"column":24},"end":{"line":45,"column":83}},"type":"cond-expr","locations":[{"start":{"line":45,"column":46},"end":{"line":45,"column":62}},{"start":{"line":45,"column":66},"end":{"line":45,"column":83}}],"line":45},"8":{"loc":{"start":{"line":46,"column":4},"end":{"line":48,"column":5}},"type":"if","locations":[{"start":{"line":46,"column":4},"end":{"line":48,"column":5}},{"start":{"line":46,"column":4},"end":{"line":48,"column":5}}],"line":46},"9":{"loc":{"start":{"line":49,"column":4},"end":{"line":61,"column":5}},"type":"if","locations":[{"start":{"line":49,"column":4},"end":{"line":61,"column":5}},{"start":{"line":49,"column":4},"end":{"line":61,"column":5}}],"line":49},"10":{"loc":{"start":{"line":53,"column":29},"end":{"line":53,"column":66}},"type":"binary-expr","locations":[{"start":{"line":53,"column":29},"end":{"line":53,"column":37}},{"start":{"line":53,"column":41},"end":{"line":53,"column":51}},{"start":{"line":53,"column":55},"end":{"line":53,"column":66}}],"line":53},"11":{"loc":{"start":{"line":54,"column":8},"end":{"line":57,"column":9}},"type":"if","locations":[{"start":{"line":54,"column":8},"end":{"line":57,"column":9}},{"start":{"line":54,"column":8},"end":{"line":57,"column":9}}],"line":54},"12":{"loc":{"start":{"line":54,"column":12},"end":{"line":54,"column":41}},"type":"binary-expr","locations":[{"start":{"line":54,"column":12},"end":{"line":54,"column":24}},{"start":{"line":54,"column":28},"end":{"line":54,"column":41}}],"line":54},"13":{"loc":{"start":{"line":69,"column":8},"end":{"line":71,"column":9}},"type":"if","locations":[{"start":{"line":69,"column":8},"end":{"line":71,"column":9}},{"start":{"line":69,"column":8},"end":{"line":71,"column":9}}],"line":69},"14":{"loc":{"start":{"line":83,"column":25},"end":{"line":83,"column":51}},"type":"binary-expr","locations":[{"start":{"line":83,"column":25},"end":{"line":83,"column":44}},{"start":{"line":83,"column":48},"end":{"line":83,"column":51}}],"line":83},"15":{"loc":{"start":{"line":84,"column":33},"end":{"line":84,"column":72}},"type":"binary-expr","locations":[{"start":{"line":84,"column":33},"end":{"line":84,"column":48}},{"start":{"line":84,"column":52},"end":{"line":84,"column":72}}],"line":84},"16":{"loc":{"start":{"line":90,"column":4},"end":{"line":93,"column":5}},"type":"if","locations":[{"start":{"line":90,"column":4},"end":{"line":93,"column":5}},{"start":{"line":90,"column":4},"end":{"line":93,"column":5}}],"line":90},"17":{"loc":{"start":{"line":98,"column":4},"end":{"line":117,"column":5}},"type":"if","locations":[{"start":{"line":98,"column":4},"end":{"line":117,"column":5}},{"start":{"line":98,"column":4},"end":{"line":117,"column":5}}],"line":98},"18":{"loc":{"start":{"line":108,"column":8},"end":{"line":113,"column":9}},"type":"if","locations":[{"start":{"line":108,"column":8},"end":{"line":113,"column":9}},{"start":{"line":108,"column":8},"end":{"line":113,"column":9}}],"line":108}},"s":{"0":1,"1":16080,"2":16080,"3":16080,"4":16080,"5":7906,"6":16080,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":8013,"18":8013,"19":8007,"20":1,"21":8029,"22":8029,"23":8029,"24":2,"25":2,"26":8027,"27":8027,"28":8027,"29":8027,"30":8027,"31":8027,"32":8022,"33":8022,"34":8022,"35":7896,"36":7896,"37":7896,"38":7896,"39":7896,"40":7896,"41":7896,"42":0,"43":7896,"44":7887,"45":7887,"46":7887,"47":7887,"48":7887,"49":2,"50":2,"51":7885,"52":7885,"53":7885,"54":9,"55":8027,"56":8027,"57":8027,"58":7899,"59":7899,"60":7894,"61":7885,"62":8022,"63":8040,"64":8040,"65":8040,"66":8040,"67":8040,"68":8040,"69":17,"70":17,"71":17,"72":17,"73":17,"74":17,"75":17,"76":17,"77":8040,"78":8040,"79":18,"80":18,"81":8040,"82":8008,"83":8008,"84":16,"85":16,"86":15,"87":11,"88":10,"89":15,"90":15,"91":15,"92":10,"93":5,"94":7992,"95":1,"96":7913,"97":7913,"98":7977,"99":7913},"f":{"0":16080,"1":1,"2":8013,"3":8029,"4":7896,"5":8027,"6":8040,"7":8008,"8":11,"9":10,"10":7913,"11":7977},"b":{"0":[1,1,1],"1":[2,8027],"2":[8027,2299],"3":[9,8018],"4":[8027,8018],"5":[7896,22],"6":[7896,37],"7":[7865,31],"8":[0,7896],"9":[7887,9],"10":[7887,7885,7884],"11":[2,7885],"12":[7887,7878],"13":[7885,9],"14":[17,17],"15":[17,1],"16":[18,8022],"17":[16,7992],"18":[10,5]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/reflection_utils.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/planning/reflection_utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { LazyServiceIdentifer } from \"../annotation/inject\";\nimport * as ERROR_MSGS from \"../constants/error_msgs\";\nimport { TargetTypeEnum } from \"../constants/literal_types\";\nimport * as METADATA_KEY from \"../constants/metadata_keys\";\nimport { interfaces } from \"../interfaces/interfaces\";\nimport { getFunctionName } from \"../utils/serialization\";\nimport { Target } from \"./target\";\n\nfunction getDependencies(\n metadataReader: interfaces.MetadataReader, func: Function\n): interfaces.Target[] {\n const constructorName = getFunctionName(func);\n const targets: interfaces.Target[] = getTargets(metadataReader, constructorName, func, false);\n return targets;\n}\n\nfunction getTargets(\n metadataReader: interfaces.MetadataReader, constructorName: string, func: Function, isBaseClass: boolean\n): interfaces.Target[] {\n\n const metadata = metadataReader.getConstructorMetadata(func);\n\n // TypeScript compiler generated annotations\n const serviceIdentifiers = metadata.compilerGeneratedMetadata;\n\n // All types resolved must be annotated with @injectable\n if (serviceIdentifiers === undefined) {\n const msg = `${ERROR_MSGS.MISSING_INJECTABLE_ANNOTATION} ${constructorName}.`;\n throw new Error(msg);\n }\n\n // User generated annotations\n const constructorArgsMetadata = metadata.userGeneratedMetadata;\n\n const keys = Object.keys(constructorArgsMetadata);\n const hasUserDeclaredUnknownInjections = (func.length === 0 && keys.length > 0);\n const hasOptionalParameters = keys.length > func.length;\n\n const iterations = (hasUserDeclaredUnknownInjections || hasOptionalParameters) ? keys.length : func.length;\n\n // Target instances that represent constructor arguments to be injected\n const constructorTargets = getConstructorArgsAsTargets(\n isBaseClass,\n constructorName,\n serviceIdentifiers,\n constructorArgsMetadata,\n iterations\n );\n\n // Target instances that represent properties to be injected\n const propertyTargets = getClassPropsAsTargets(metadataReader, func);\n\n const targets = [\n ...constructorTargets,\n ...propertyTargets\n ];\n\n return targets;\n\n}\nfunction getConstructorArgsAsTarget(\n index: number,\n isBaseClass: boolean,\n constructorName: string,\n serviceIdentifiers: any,\n constructorArgsMetadata: any\n) {\n // Create map from array of metadata for faster access to metadata\n const targetMetadata = constructorArgsMetadata[index.toString()] || [];\n const metadata = formatTargetMetadata(targetMetadata);\n const isManaged = metadata.unmanaged !== true;\n\n // Take types to be injected from user-generated metadata\n // if not available use compiler-generated metadata\n let serviceIdentifier = serviceIdentifiers[index];\n const injectIdentifier = (metadata.inject || metadata.multiInject);\n serviceIdentifier = (injectIdentifier) ? (injectIdentifier) : serviceIdentifier;\n\n // we unwrap LazyServiceIdentifer wrappers to allow circular dependencies on symbols\n if (serviceIdentifier instanceof LazyServiceIdentifer) {\n serviceIdentifier = serviceIdentifier.unwrap();\n }\n\n // Types Object and Function are too ambiguous to be resolved\n // user needs to generate metadata manually for those\n if (isManaged) {\n\n const isObject = serviceIdentifier === Object;\n const isFunction = serviceIdentifier === Function;\n const isUndefined = serviceIdentifier === undefined;\n const isUnknownType = (isObject || isFunction || isUndefined);\n\n if (!isBaseClass && isUnknownType) {\n const msg = `${ERROR_MSGS.MISSING_INJECT_ANNOTATION} argument ${index} in class ${constructorName}.`;\n throw new Error(msg);\n }\n\n const target = new Target(TargetTypeEnum.ConstructorArgument, metadata.targetName, serviceIdentifier);\n target.metadata = targetMetadata;\n return target;\n }\n\n return null;\n\n}\n\nfunction getConstructorArgsAsTargets(\n isBaseClass: boolean,\n constructorName: string,\n serviceIdentifiers: any,\n constructorArgsMetadata: any,\n iterations: number\n) {\n\n const targets: interfaces.Target[] = [];\n for (let i = 0; i < iterations; i++) {\n const index = i;\n const target = getConstructorArgsAsTarget(\n index,\n isBaseClass,\n constructorName,\n serviceIdentifiers,\n constructorArgsMetadata\n );\n if (target !== null) {\n targets.push(target);\n }\n }\n\n return targets;\n}\n\nfunction getClassPropsAsTargets(metadataReader: interfaces.MetadataReader, constructorFunc: Function) {\n\n const classPropsMetadata = metadataReader.getPropertiesMetadata(constructorFunc);\n let targets: interfaces.Target[] = [];\n const keys = Object.keys(classPropsMetadata);\n\n for (const key of keys) {\n\n // the metadata for the property being injected\n const targetMetadata = classPropsMetadata[key];\n\n // the metadata formatted for easier access\n const metadata = formatTargetMetadata(classPropsMetadata[key]);\n\n // the name of the property being injected\n const targetName = metadata.targetName || key;\n\n // Take types to be injected from user-generated metadata\n const serviceIdentifier = (metadata.inject || metadata.multiInject);\n\n // The property target\n const target = new Target(TargetTypeEnum.ClassProperty, targetName, serviceIdentifier);\n target.metadata = targetMetadata;\n targets.push(target);\n }\n\n // Check if base class has injected properties\n const baseConstructor = Object.getPrototypeOf(constructorFunc.prototype).constructor;\n\n if (baseConstructor !== Object) {\n\n const baseTargets = getClassPropsAsTargets(metadataReader, baseConstructor);\n\n targets = [\n ...targets,\n ...baseTargets\n ];\n\n }\n\n return targets;\n}\n\nfunction getBaseClassDependencyCount(metadataReader: interfaces.MetadataReader, func: Function): number {\n\n const baseConstructor = Object.getPrototypeOf(func.prototype).constructor;\n\n if (baseConstructor !== Object) {\n\n // get targets for base class\n const baseConstructorName = getFunctionName(baseConstructor);\n\n const targets = getTargets(metadataReader, baseConstructorName, baseConstructor, true);\n\n // get unmanaged metadata\n const metadata: any[] = targets.map((t: interfaces.Target) =>\n t.metadata.filter((m: interfaces.Metadata) =>\n m.key === METADATA_KEY.UNMANAGED_TAG));\n\n // Compare the number of constructor arguments with the number of\n // unmanaged dependencies unmanaged dependencies are not required\n const unmanagedCount = [].concat.apply([], metadata).length;\n const dependencyCount = targets.length - unmanagedCount;\n\n if (dependencyCount > 0) {\n return dependencyCount;\n } else {\n return getBaseClassDependencyCount(metadataReader, baseConstructor);\n }\n\n } else {\n return 0;\n }\n\n}\n\nfunction formatTargetMetadata(targetMetadata: any[]) {\n\n // Create map from array of metadata for faster access to metadata\n const targetMetadataMap: any = {};\n targetMetadata.forEach((m: interfaces.Metadata) => {\n targetMetadataMap[m.key.toString()] = m.value;\n });\n\n // user generated metadata\n return {\n inject : targetMetadataMap[METADATA_KEY.INJECT_TAG],\n multiInject: targetMetadataMap[METADATA_KEY.MULTI_INJECT_TAG],\n targetName: targetMetadataMap[METADATA_KEY.NAME_TAG],\n unmanaged: targetMetadataMap[METADATA_KEY.UNMANAGED_TAG]\n };\n\n}\n\nexport { getDependencies, getBaseClassDependencyCount, getFunctionName };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"933ad57b7883867530a3f4487130ca426ff93d24","contentHash":"7aff82fe6c1d28c8f9fb5b91d21968fa55782027646b66ef5b45c19cfdd68962"},"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/target.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/target.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":24}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":56}},"3":{"start":{"line":5,"column":11},"end":{"line":5,"column":33}},"4":{"start":{"line":6,"column":17},"end":{"line":6,"column":38}},"5":{"start":{"line":7,"column":25},"end":{"line":7,"column":54}},"6":{"start":{"line":8,"column":14},"end":{"line":80,"column":3}},"7":{"start":{"line":10,"column":8},"end":{"line":10,"column":28}},"8":{"start":{"line":11,"column":8},"end":{"line":11,"column":25}},"9":{"start":{"line":12,"column":8},"end":{"line":12,"column":51}},"10":{"start":{"line":13,"column":8},"end":{"line":13,"column":71}},"11":{"start":{"line":14,"column":8},"end":{"line":14,"column":36}},"12":{"start":{"line":15,"column":27},"end":{"line":15,"column":31}},"13":{"start":{"line":16,"column":8},"end":{"line":21,"column":9}},"14":{"start":{"line":17,"column":12},"end":{"line":17,"column":90}},"15":{"start":{"line":19,"column":13},"end":{"line":21,"column":9}},"16":{"start":{"line":20,"column":12},"end":{"line":20,"column":41}},"17":{"start":{"line":22,"column":8},"end":{"line":24,"column":9}},"18":{"start":{"line":23,"column":12},"end":{"line":23,"column":45}},"19":{"start":{"line":26,"column":4},"end":{"line":34,"column":6}},"20":{"start":{"line":27,"column":8},"end":{"line":32,"column":9}},"21":{"start":{"line":27,"column":22},"end":{"line":27,"column":23}},"22":{"start":{"line":27,"column":30},"end":{"line":27,"column":43}},"23":{"start":{"line":28,"column":20},"end":{"line":28,"column":26}},"24":{"start":{"line":29,"column":12},"end":{"line":31,"column":13}},"25":{"start":{"line":30,"column":16},"end":{"line":30,"column":28}},"26":{"start":{"line":33,"column":8},"end":{"line":33,"column":21}},"27":{"start":{"line":35,"column":4},"end":{"line":37,"column":6}},"28":{"start":{"line":36,"column":8},"end":{"line":36,"column":58}},"29":{"start":{"line":38,"column":4},"end":{"line":40,"column":6}},"30":{"start":{"line":39,"column":8},"end":{"line":39,"column":68}},"31":{"start":{"line":41,"column":4},"end":{"line":43,"column":6}},"32":{"start":{"line":42,"column":8},"end":{"line":42,"column":51}},"33":{"start":{"line":44,"column":4},"end":{"line":46,"column":6}},"34":{"start":{"line":45,"column":8},"end":{"line":45,"column":155}},"35":{"start":{"line":45,"column":56},"end":{"line":45,"column":151}},"36":{"start":{"line":45,"column":119},"end":{"line":45,"column":147}},"37":{"start":{"line":47,"column":4},"end":{"line":49,"column":6}},"38":{"start":{"line":48,"column":8},"end":{"line":48,"column":64}},"39":{"start":{"line":50,"column":4},"end":{"line":55,"column":6}},"40":{"start":{"line":51,"column":8},"end":{"line":53,"column":9}},"41":{"start":{"line":52,"column":12},"end":{"line":52,"column":102}},"42":{"start":{"line":52,"column":55},"end":{"line":52,"column":95}},"43":{"start":{"line":54,"column":8},"end":{"line":54,"column":20}},"44":{"start":{"line":56,"column":4},"end":{"line":63,"column":6}},"45":{"start":{"line":57,"column":8},"end":{"line":62,"column":9}},"46":{"start":{"line":58,"column":12},"end":{"line":58,"column":161}},"47":{"start":{"line":58,"column":62},"end":{"line":58,"column":157}},"48":{"start":{"line":58,"column":125},"end":{"line":58,"column":153}},"49":{"start":{"line":61,"column":12},"end":{"line":61,"column":24}},"50":{"start":{"line":64,"column":4},"end":{"line":66,"column":6}},"51":{"start":{"line":65,"column":8},"end":{"line":65,"column":61}},"52":{"start":{"line":67,"column":4},"end":{"line":78,"column":6}},"53":{"start":{"line":68,"column":20},"end":{"line":68,"column":24}},"54":{"start":{"line":69,"column":8},"end":{"line":77,"column":10}},"55":{"start":{"line":70,"column":12},"end":{"line":75,"column":13}},"56":{"start":{"line":70,"column":26},"end":{"line":70,"column":27}},"57":{"start":{"line":70,"column":34},"end":{"line":70,"column":48}},"58":{"start":{"line":71,"column":24},"end":{"line":71,"column":30}},"59":{"start":{"line":72,"column":16},"end":{"line":74,"column":17}},"60":{"start":{"line":73,"column":20},"end":{"line":73,"column":32}},"61":{"start":{"line":76,"column":12},"end":{"line":76,"column":25}},"62":{"start":{"line":79,"column":4},"end":{"line":79,"column":18}},"63":{"start":{"line":81,"column":0},"end":{"line":81,"column":24}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":14},"end":{"line":8,"column":15}},"loc":{"start":{"line":8,"column":26},"end":{"line":80,"column":1}},"line":8},"1":{"name":"Target","decl":{"start":{"line":9,"column":13},"end":{"line":9,"column":19}},"loc":{"start":{"line":9,"column":66},"end":{"line":25,"column":5}},"line":9},"2":{"name":"(anonymous_2)","decl":{"start":{"line":26,"column":30},"end":{"line":26,"column":31}},"loc":{"start":{"line":26,"column":45},"end":{"line":34,"column":5}},"line":26},"3":{"name":"(anonymous_3)","decl":{"start":{"line":35,"column":31},"end":{"line":35,"column":32}},"loc":{"start":{"line":35,"column":43},"end":{"line":37,"column":5}},"line":35},"4":{"name":"(anonymous_4)","decl":{"start":{"line":38,"column":36},"end":{"line":38,"column":37}},"loc":{"start":{"line":38,"column":52},"end":{"line":40,"column":5}},"line":38},"5":{"name":"(anonymous_5)","decl":{"start":{"line":41,"column":31},"end":{"line":41,"column":32}},"loc":{"start":{"line":41,"column":43},"end":{"line":43,"column":5}},"line":41},"6":{"name":"(anonymous_6)","decl":{"start":{"line":44,"column":32},"end":{"line":44,"column":33}},"loc":{"start":{"line":44,"column":44},"end":{"line":46,"column":5}},"line":44},"7":{"name":"(anonymous_7)","decl":{"start":{"line":45,"column":34},"end":{"line":45,"column":35}},"loc":{"start":{"line":45,"column":54},"end":{"line":45,"column":153}},"line":45},"8":{"name":"(anonymous_8)","decl":{"start":{"line":45,"column":102},"end":{"line":45,"column":103}},"loc":{"start":{"line":45,"column":117},"end":{"line":45,"column":149}},"line":45},"9":{"name":"(anonymous_9)","decl":{"start":{"line":47,"column":34},"end":{"line":47,"column":35}},"loc":{"start":{"line":47,"column":46},"end":{"line":49,"column":5}},"line":47},"10":{"name":"(anonymous_10)","decl":{"start":{"line":50,"column":35},"end":{"line":50,"column":36}},"loc":{"start":{"line":50,"column":47},"end":{"line":55,"column":5}},"line":50},"11":{"name":"(anonymous_11)","decl":{"start":{"line":52,"column":40},"end":{"line":52,"column":41}},"loc":{"start":{"line":52,"column":53},"end":{"line":52,"column":97}},"line":52},"12":{"name":"(anonymous_12)","decl":{"start":{"line":56,"column":37},"end":{"line":56,"column":38}},"loc":{"start":{"line":56,"column":49},"end":{"line":63,"column":5}},"line":56},"13":{"name":"(anonymous_13)","decl":{"start":{"line":58,"column":40},"end":{"line":58,"column":41}},"loc":{"start":{"line":58,"column":60},"end":{"line":58,"column":159}},"line":58},"14":{"name":"(anonymous_14)","decl":{"start":{"line":58,"column":108},"end":{"line":58,"column":109}},"loc":{"start":{"line":58,"column":123},"end":{"line":58,"column":155}},"line":58},"15":{"name":"(anonymous_15)","decl":{"start":{"line":64,"column":39},"end":{"line":64,"column":40}},"loc":{"start":{"line":64,"column":55},"end":{"line":66,"column":5}},"line":64},"16":{"name":"(anonymous_16)","decl":{"start":{"line":67,"column":34},"end":{"line":67,"column":35}},"loc":{"start":{"line":67,"column":49},"end":{"line":78,"column":5}},"line":67},"17":{"name":"(anonymous_17)","decl":{"start":{"line":69,"column":15},"end":{"line":69,"column":16}},"loc":{"start":{"line":69,"column":32},"end":{"line":77,"column":9}},"line":69}},"branchMap":{"0":{"loc":{"start":{"line":13,"column":59},"end":{"line":13,"column":69}},"type":"binary-expr","locations":[{"start":{"line":13,"column":59},"end":{"line":13,"column":63}},{"start":{"line":13,"column":67},"end":{"line":13,"column":69}}],"line":13},"1":{"loc":{"start":{"line":16,"column":8},"end":{"line":21,"column":9}},"type":"if","locations":[{"start":{"line":16,"column":8},"end":{"line":21,"column":9}},{"start":{"line":16,"column":8},"end":{"line":21,"column":9}}],"line":16},"2":{"loc":{"start":{"line":19,"column":13},"end":{"line":21,"column":9}},"type":"if","locations":[{"start":{"line":19,"column":13},"end":{"line":21,"column":9}},{"start":{"line":19,"column":13},"end":{"line":21,"column":9}}],"line":19},"3":{"loc":{"start":{"line":22,"column":8},"end":{"line":24,"column":9}},"type":"if","locations":[{"start":{"line":22,"column":8},"end":{"line":24,"column":9}},{"start":{"line":22,"column":8},"end":{"line":24,"column":9}}],"line":22},"4":{"loc":{"start":{"line":29,"column":12},"end":{"line":31,"column":13}},"type":"if","locations":[{"start":{"line":29,"column":12},"end":{"line":31,"column":13}},{"start":{"line":29,"column":12},"end":{"line":31,"column":13}}],"line":29},"5":{"loc":{"start":{"line":51,"column":8},"end":{"line":53,"column":9}},"type":"if","locations":[{"start":{"line":51,"column":8},"end":{"line":53,"column":9}},{"start":{"line":51,"column":8},"end":{"line":53,"column":9}}],"line":51},"6":{"loc":{"start":{"line":57,"column":8},"end":{"line":62,"column":9}},"type":"if","locations":[{"start":{"line":57,"column":8},"end":{"line":62,"column":9}},{"start":{"line":57,"column":8},"end":{"line":62,"column":9}}],"line":57},"7":{"loc":{"start":{"line":72,"column":16},"end":{"line":74,"column":17}},"type":"if","locations":[{"start":{"line":72,"column":16},"end":{"line":74,"column":17}},{"start":{"line":72,"column":16},"end":{"line":74,"column":17}}],"line":72},"8":{"loc":{"start":{"line":72,"column":20},"end":{"line":72,"column":54}},"type":"binary-expr","locations":[{"start":{"line":72,"column":20},"end":{"line":72,"column":33}},{"start":{"line":72,"column":37},"end":{"line":72,"column":54}}],"line":72}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":8911,"8":8911,"9":8911,"10":8911,"11":8911,"12":8911,"13":8911,"14":7,"15":8904,"16":971,"17":8911,"18":978,"19":1,"20":19390,"21":19390,"22":19390,"23":19640,"24":19640,"25":116,"26":19274,"27":1,"28":19340,"29":1,"30":827,"31":1,"32":50,"33":1,"34":57,"35":79,"36":220,"37":1,"38":1739,"39":1,"40":12,"41":8,"42":16,"43":4,"44":1,"45":10,"46":4,"47":8,"48":29,"49":6,"50":1,"51":2,"52":1,"53":2742,"54":2742,"55":2742,"56":2742,"57":2742,"58":2920,"59":2920,"60":116,"61":2626,"62":1,"63":1},"f":{"0":1,"1":8911,"2":19390,"3":19340,"4":827,"5":50,"6":57,"7":79,"8":220,"9":1739,"10":12,"11":16,"12":10,"13":8,"14":29,"15":2,"16":2742,"17":2742},"b":{"0":[8911,8815],"1":[7,8904],"2":[971,7933],"3":[978,7933],"4":[116,19524],"5":[8,4],"6":[4,6],"7":[116,2804],"8":[2920,189]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/target.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/planning/target.ts"],"names":[],"mappings":"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","sourcesContent":["import * as METADATA_KEY from \"../constants/metadata_keys\";\nimport { interfaces } from \"../interfaces/interfaces\";\nimport { id } from \"../utils/id\";\nimport { Metadata } from \"./metadata\";\nimport { QueryableString } from \"./queryable_string\";\n\nclass Target implements interfaces.Target {\n\n public id: number;\n public type: interfaces.TargetType;\n public serviceIdentifier: interfaces.ServiceIdentifier<any>;\n public name: interfaces.QueryableString;\n public metadata: Metadata[];\n\n public constructor(\n type: interfaces.TargetType,\n name: string,\n serviceIdentifier: interfaces.ServiceIdentifier<any>,\n namedOrTagged?: (string | Metadata)\n ) {\n\n this.id = id();\n this.type = type;\n this.serviceIdentifier = serviceIdentifier;\n this.name = new QueryableString(name || \"\");\n this.metadata = new Array<Metadata>();\n\n let metadataItem: interfaces.Metadata | null = null;\n\n // is named target\n if (typeof namedOrTagged === \"string\") {\n metadataItem = new Metadata(METADATA_KEY.NAMED_TAG, namedOrTagged);\n } else if (namedOrTagged instanceof Metadata) {\n // is target with metadata\n metadataItem = namedOrTagged;\n }\n\n // target has metadata\n if (metadataItem !== null) {\n this.metadata.push(metadataItem);\n }\n\n }\n\n public hasTag(key: string): boolean {\n for (const m of this.metadata) {\n if (m.key === key) {\n return true;\n }\n }\n return false;\n }\n\n public isArray(): boolean {\n return this.hasTag(METADATA_KEY.MULTI_INJECT_TAG);\n }\n\n public matchesArray(name: interfaces.ServiceIdentifier<any>): boolean {\n return this.matchesTag(METADATA_KEY.MULTI_INJECT_TAG)(name);\n }\n\n public isNamed(): boolean {\n return this.hasTag(METADATA_KEY.NAMED_TAG);\n }\n\n public isTagged(): boolean {\n return this.metadata.some(\n (metadata) => METADATA_KEY.NON_CUSTOM_TAG_KEYS.every((key) => metadata.key !== key),\n );\n }\n\n public isOptional(): boolean {\n return this.matchesTag(METADATA_KEY.OPTIONAL_TAG)(true);\n }\n\n public getNamedTag(): interfaces.Metadata | null {\n if (this.isNamed()) {\n return this.metadata.filter((m) => m.key === METADATA_KEY.NAMED_TAG)[0];\n }\n return null;\n }\n\n public getCustomTags(): interfaces.Metadata[] | null {\n if (this.isTagged()) {\n return this.metadata.filter(\n (metadata) => METADATA_KEY.NON_CUSTOM_TAG_KEYS.every((key) => metadata.key !== key),\n );\n } else {\n return null;\n }\n }\n\n public matchesNamedTag(name: string): boolean {\n return this.matchesTag(METADATA_KEY.NAMED_TAG)(name);\n }\n\n public matchesTag(key: string) {\n return (value: any) => {\n for (const m of this.metadata) {\n if (m.key === key && m.value === value) {\n return true;\n }\n }\n return false;\n };\n }\n\n}\n\nexport { Target };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"0e31ac14310725cc81a3b90a8cc76706a4200b1e","contentHash":"68b7da9fa6ec5463b1ddcc567f4fe1cf68e005519f541a1e40bf63384f2c47b0"},"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/queryable_string.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/queryable_string.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":33}},"2":{"start":{"line":4,"column":23},"end":{"line":27,"column":3}},"3":{"start":{"line":6,"column":8},"end":{"line":6,"column":23}},"4":{"start":{"line":8,"column":4},"end":{"line":10,"column":6}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":52}},"6":{"start":{"line":11,"column":4},"end":{"line":16,"column":6}},"7":{"start":{"line":12,"column":28},"end":{"line":12,"column":30}},"8":{"start":{"line":13,"column":34},"end":{"line":13,"column":75}},"9":{"start":{"line":14,"column":8},"end":{"line":14,"column":62}},"10":{"start":{"line":15,"column":8},"end":{"line":15,"column":81}},"11":{"start":{"line":17,"column":4},"end":{"line":19,"column":6}},"12":{"start":{"line":18,"column":8},"end":{"line":18,"column":55}},"13":{"start":{"line":20,"column":4},"end":{"line":22,"column":6}},"14":{"start":{"line":21,"column":8},"end":{"line":21,"column":42}},"15":{"start":{"line":23,"column":4},"end":{"line":25,"column":6}},"16":{"start":{"line":24,"column":8},"end":{"line":24,"column":24}},"17":{"start":{"line":26,"column":4},"end":{"line":26,"column":27}},"18":{"start":{"line":28,"column":0},"end":{"line":28,"column":42}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":23},"end":{"line":4,"column":24}},"loc":{"start":{"line":4,"column":35},"end":{"line":27,"column":1}},"line":4},"1":{"name":"QueryableString","decl":{"start":{"line":5,"column":13},"end":{"line":5,"column":28}},"loc":{"start":{"line":5,"column":34},"end":{"line":7,"column":5}},"line":5},"2":{"name":"(anonymous_2)","decl":{"start":{"line":8,"column":43},"end":{"line":8,"column":44}},"loc":{"start":{"line":8,"column":67},"end":{"line":10,"column":5}},"line":8},"3":{"name":"(anonymous_3)","decl":{"start":{"line":11,"column":41},"end":{"line":11,"column":42}},"loc":{"start":{"line":11,"column":65},"end":{"line":16,"column":5}},"line":11},"4":{"name":"(anonymous_4)","decl":{"start":{"line":17,"column":41},"end":{"line":17,"column":42}},"loc":{"start":{"line":17,"column":65},"end":{"line":19,"column":5}},"line":17},"5":{"name":"(anonymous_5)","decl":{"start":{"line":20,"column":39},"end":{"line":20,"column":40}},"loc":{"start":{"line":20,"column":64},"end":{"line":22,"column":5}},"line":20},"6":{"name":"(anonymous_6)","decl":{"start":{"line":23,"column":38},"end":{"line":23,"column":39}},"loc":{"start":{"line":23,"column":50},"end":{"line":25,"column":5}},"line":23}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":8916,"4":1,"5":8,"6":1,"7":4,"8":4,"9":4,"10":4,"11":1,"12":2,"13":1,"14":6,"15":1,"16":28,"17":1,"18":1},"f":{"0":1,"1":8916,"2":8,"3":4,"4":2,"5":6,"6":28},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/queryable_string.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/planning/queryable_string.ts"],"names":[],"mappings":";;;AAEA;IAIE,yBAAmB,GAAW;QAC5B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAEM,oCAAU,GAAjB,UAAkB,YAAoB;QACpC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAEM,kCAAQ,GAAf,UAAgB,YAAoB;QAClC,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,IAAM,mBAAmB,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtE,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,EAAG,aAAa,EAAE,EAAE,mBAAmB,CAAC,CAAC;IAC5E,CAAC;IAEM,kCAAQ,GAAf,UAAgB,YAAoB;QAClC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IAEM,gCAAM,GAAb,UAAc,aAAqB;QACjC,OAAO,IAAI,CAAC,GAAG,KAAK,aAAa,CAAC;IACpC,CAAC;IAEM,+BAAK,GAAZ;QACE,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAEH,sBAAC;AAAD,CAAC,AA/BD,IA+BC;AAEQ,0CAAe","sourcesContent":["import { interfaces } from \"../interfaces/interfaces\";\n\nclass QueryableString implements interfaces.QueryableString {\n\n private str: string;\n\n public constructor(str: string) {\n this.str = str;\n }\n\n public startsWith(searchString: string): boolean {\n return this.str.indexOf(searchString) === 0;\n }\n\n public endsWith(searchString: string): boolean {\n let reverseString = \"\";\n const reverseSearchString = searchString.split(\"\").reverse().join(\"\");\n reverseString = this.str.split(\"\").reverse().join(\"\");\n return this.startsWith.call({ str : reverseString }, reverseSearchString);\n }\n\n public contains(searchString: string): boolean {\n return (this.str.indexOf(searchString) !== -1);\n }\n\n public equals(compareString: string): boolean {\n return this.str === compareString;\n }\n\n public value(): string {\n return this.str;\n }\n\n}\n\nexport { QueryableString };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"ababb78a728292b7d13f9c251378c450bf31dc53","contentHash":"c0ff535606def42f49e50c483e3900eb2067a9352435f8f1cfc0a40a26944736"},"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/request.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/request.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":25}},"2":{"start":{"line":4,"column":11},"end":{"line":4,"column":33}},"3":{"start":{"line":5,"column":15},"end":{"line":24,"column":3}},"4":{"start":{"line":7,"column":8},"end":{"line":7,"column":28}},"5":{"start":{"line":8,"column":8},"end":{"line":8,"column":51}},"6":{"start":{"line":9,"column":8},"end":{"line":9,"column":43}},"7":{"start":{"line":10,"column":8},"end":{"line":10,"column":43}},"8":{"start":{"line":11,"column":8},"end":{"line":11,"column":29}},"9":{"start":{"line":12,"column":8},"end":{"line":12,"column":32}},"10":{"start":{"line":13,"column":8},"end":{"line":13,"column":74}},"11":{"start":{"line":14,"column":8},"end":{"line":16,"column":19}},"12":{"start":{"line":18,"column":4},"end":{"line":22,"column":6}},"13":{"start":{"line":19,"column":20},"end":{"line":19,"column":94}},"14":{"start":{"line":20,"column":8},"end":{"line":20,"column":39}},"15":{"start":{"line":21,"column":8},"end":{"line":21,"column":21}},"16":{"start":{"line":23,"column":4},"end":{"line":23,"column":19}},"17":{"start":{"line":25,"column":0},"end":{"line":25,"column":26}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":15},"end":{"line":5,"column":16}},"loc":{"start":{"line":5,"column":27},"end":{"line":24,"column":1}},"line":5},"1":{"name":"Request","decl":{"start":{"line":6,"column":13},"end":{"line":6,"column":20}},"loc":{"start":{"line":6,"column":88},"end":{"line":17,"column":5}},"line":6},"2":{"name":"(anonymous_2)","decl":{"start":{"line":18,"column":40},"end":{"line":18,"column":41}},"loc":{"start":{"line":18,"column":87},"end":{"line":22,"column":5}},"line":18}},"branchMap":{"0":{"loc":{"start":{"line":13,"column":25},"end":{"line":13,"column":72}},"type":"cond-expr","locations":[{"start":{"line":13,"column":51},"end":{"line":13,"column":59}},{"start":{"line":13,"column":62},"end":{"line":13,"column":72}}],"line":13},"1":{"loc":{"start":{"line":14,"column":28},"end":{"line":16,"column":18}},"type":"cond-expr","locations":[{"start":{"line":15,"column":14},"end":{"line":15,"column":23}},{"start":{"line":16,"column":14},"end":{"line":16,"column":18}}],"line":14}},"s":{"0":1,"1":1,"2":1,"3":1,"4":17746,"5":17746,"6":17746,"7":17746,"8":17746,"9":17746,"10":17746,"11":17746,"12":1,"13":7913,"14":7913,"15":7913,"16":1,"17":1},"f":{"0":1,"1":17746,"2":7913},"b":{"0":[8819,8927],"1":[1902,15844]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/request.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/planning/request.ts"],"names":[],"mappings":";;;AACA,kCAAiC;AAEjC;IAWI,iBACI,iBAAoD,EACpD,aAAiC,EACjC,aAAwC,EACxC,QAA+D,EAC/D,MAAyB;QAErB,IAAI,CAAC,EAAE,GAAG,OAAE,EAAE,CAAC;QACf,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAGlE,IAAI,CAAC,YAAY,GAAG,aAAa,KAAK,IAAI;YACtC,CAAC,CAAC,IAAI,GAAG,EAAY;YACrB,CAAC,CAAC,IAAI,CAAC;IACnB,CAAC;IAEM,iCAAe,GAAtB,UACI,iBAAoD,EACpD,QAA+D,EAC/D,MAAyB;QAGrB,IAAM,KAAK,GAAG,IAAI,OAAO,CACrB,iBAAiB,EACjB,IAAI,CAAC,aAAa,EAClB,IAAI,EACJ,QAAQ,EACR,MAAM,CACT,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,KAAK,CAAC;IACrB,CAAC;IACL,cAAC;AAAD,CAAC,AAhDD,IAgDC;AAEQ,0BAAO","sourcesContent":["import { interfaces } from \"../interfaces/interfaces\";\nimport { id } from \"../utils/id\";\n\nclass Request implements interfaces.Request {\n\n public id: number;\n public serviceIdentifier: interfaces.ServiceIdentifier<any>;\n public parentContext: interfaces.Context;\n public parentRequest: interfaces.Request | null;\n public bindings: interfaces.Binding<any>[];\n public childRequests: interfaces.Request[];\n public target: interfaces.Target;\n public requestScope: interfaces.RequestScope;\n\n public constructor(\n serviceIdentifier: interfaces.ServiceIdentifier<any>,\n parentContext: interfaces.Context,\n parentRequest: interfaces.Request | null,\n bindings: (interfaces.Binding<any> | interfaces.Binding<any>[]),\n target: interfaces.Target\n ) {\n this.id = id();\n this.serviceIdentifier = serviceIdentifier;\n this.parentContext = parentContext;\n this.parentRequest = parentRequest;\n this.target = target;\n this.childRequests = [];\n this.bindings = (Array.isArray(bindings) ? bindings : [bindings]);\n\n // Set requestScope if Request is the root request\n this.requestScope = parentRequest === null\n ? new Map<any, any>()\n : null;\n }\n\n public addChildRequest(\n serviceIdentifier: interfaces.ServiceIdentifier<any>,\n bindings: (interfaces.Binding<any> | interfaces.Binding<any>[]),\n target: interfaces.Target\n ): interfaces.Request {\n\n const child = new Request(\n serviceIdentifier,\n this.parentContext,\n this,\n bindings,\n target\n );\n this.childRequests.push(child);\n return child;\n }\n}\n\nexport { Request };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"cca4490051c80e31ee364fc9a66a4a3e1734bab7","contentHash":"fab72fba5f88df27e4dcd104936cb175891050dbc7ce79e75caf1e8f0dd2e6cc"},"/Users/dan/jsProjects/inversify/InversifyJS/src/resolution/resolver.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/resolution/resolver.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":25}},"2":{"start":{"line":4,"column":17},"end":{"line":4,"column":51}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":59}},"4":{"start":{"line":6,"column":19},"end":{"line":6,"column":49}},"5":{"start":{"line":7,"column":22},"end":{"line":7,"column":55}},"6":{"start":{"line":8,"column":22},"end":{"line":8,"column":48}},"7":{"start":{"line":9,"column":20},"end":{"line":21,"column":1}},"8":{"start":{"line":10,"column":4},"end":{"line":20,"column":5}},"9":{"start":{"line":11,"column":8},"end":{"line":11,"column":20}},"10":{"start":{"line":14,"column":8},"end":{"line":19,"column":9}},"11":{"start":{"line":15,"column":12},"end":{"line":15,"column":114}},"12":{"start":{"line":18,"column":12},"end":{"line":18,"column":24}},"13":{"start":{"line":22,"column":22},"end":{"line":96,"column":1}},"14":{"start":{"line":23,"column":4},"end":{"line":95,"column":6}},"15":{"start":{"line":24,"column":8},"end":{"line":24,"column":57}},"16":{"start":{"line":25,"column":23},"end":{"line":25,"column":39}},"17":{"start":{"line":26,"column":28},"end":{"line":26,"column":49}},"18":{"start":{"line":27,"column":30},"end":{"line":27,"column":72}},"19":{"start":{"line":28,"column":39},"end":{"line":31,"column":88}},"20":{"start":{"line":32,"column":8},"end":{"line":94,"column":9}},"21":{"start":{"line":33,"column":12},"end":{"line":36,"column":15}},"22":{"start":{"line":34,"column":25},"end":{"line":34,"column":54}},"23":{"start":{"line":35,"column":16},"end":{"line":35,"column":40}},"24":{"start":{"line":39,"column":25},"end":{"line":39,"column":29}},"25":{"start":{"line":40,"column":12},"end":{"line":42,"column":13}},"26":{"start":{"line":41,"column":16},"end":{"line":41,"column":33}},"27":{"start":{"line":43,"column":28},"end":{"line":43,"column":39}},"28":{"start":{"line":44,"column":30},"end":{"line":44,"column":92}},"29":{"start":{"line":45,"column":37},"end":{"line":45,"column":97}},"30":{"start":{"line":46,"column":12},"end":{"line":48,"column":13}},"31":{"start":{"line":47,"column":16},"end":{"line":47,"column":39}},"32":{"start":{"line":49,"column":12},"end":{"line":53,"column":13}},"33":{"start":{"line":52,"column":16},"end":{"line":52,"column":54}},"34":{"start":{"line":54,"column":12},"end":{"line":80,"column":13}},"35":{"start":{"line":55,"column":16},"end":{"line":55,"column":41}},"36":{"start":{"line":56,"column":16},"end":{"line":56,"column":43}},"37":{"start":{"line":58,"column":17},"end":{"line":80,"column":13}},"38":{"start":{"line":59,"column":16},"end":{"line":59,"column":41}},"39":{"start":{"line":60,"column":16},"end":{"line":60,"column":43}},"40":{"start":{"line":62,"column":17},"end":{"line":80,"column":13}},"41":{"start":{"line":63,"column":16},"end":{"line":63,"column":54}},"42":{"start":{"line":65,"column":17},"end":{"line":80,"column":13}},"43":{"start":{"line":66,"column":16},"end":{"line":66,"column":157}},"44":{"start":{"line":66,"column":100},"end":{"line":66,"column":153}},"45":{"start":{"line":68,"column":17},"end":{"line":80,"column":13}},"46":{"start":{"line":69,"column":16},"end":{"line":69,"column":147}},"47":{"start":{"line":69,"column":95},"end":{"line":69,"column":143}},"48":{"start":{"line":71,"column":17},"end":{"line":80,"column":13}},"49":{"start":{"line":72,"column":16},"end":{"line":72,"column":149}},"50":{"start":{"line":72,"column":96},"end":{"line":72,"column":145}},"51":{"start":{"line":74,"column":17},"end":{"line":80,"column":13}},"52":{"start":{"line":75,"column":16},"end":{"line":75,"column":133}},"53":{"start":{"line":78,"column":40},"end":{"line":78,"column":111}},"54":{"start":{"line":79,"column":16},"end":{"line":79,"column":91}},"55":{"start":{"line":81,"column":12},"end":{"line":83,"column":13}},"56":{"start":{"line":82,"column":16},"end":{"line":82,"column":79}},"57":{"start":{"line":84,"column":12},"end":{"line":87,"column":13}},"58":{"start":{"line":85,"column":16},"end":{"line":85,"column":41}},"59":{"start":{"line":86,"column":16},"end":{"line":86,"column":43}},"60":{"start":{"line":88,"column":12},"end":{"line":92,"column":13}},"61":{"start":{"line":91,"column":16},"end":{"line":91,"column":55}},"62":{"start":{"line":93,"column":12},"end":{"line":93,"column":26}},"63":{"start":{"line":98,"column":13},"end":{"line":98,"column":67}},"64":{"start":{"line":99,"column":4},"end":{"line":99,"column":40}},"65":{"start":{"line":101,"column":0},"end":{"line":101,"column":26}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":20},"end":{"line":9,"column":21}},"loc":{"start":{"line":9,"column":66},"end":{"line":21,"column":1}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":22,"column":22},"end":{"line":22,"column":23}},"loc":{"start":{"line":22,"column":46},"end":{"line":96,"column":1}},"line":22},"2":{"name":"(anonymous_2)","decl":{"start":{"line":23,"column":11},"end":{"line":23,"column":12}},"loc":{"start":{"line":23,"column":30},"end":{"line":95,"column":5}},"line":23},"3":{"name":"(anonymous_3)","decl":{"start":{"line":33,"column":37},"end":{"line":33,"column":38}},"loc":{"start":{"line":33,"column":61},"end":{"line":36,"column":13}},"line":33},"4":{"name":"(anonymous_4)","decl":{"start":{"line":66,"column":86},"end":{"line":66,"column":87}},"loc":{"start":{"line":66,"column":98},"end":{"line":66,"column":155}},"line":66},"5":{"name":"(anonymous_5)","decl":{"start":{"line":69,"column":81},"end":{"line":69,"column":82}},"loc":{"start":{"line":69,"column":93},"end":{"line":69,"column":145}},"line":69},"6":{"name":"(anonymous_6)","decl":{"start":{"line":72,"column":82},"end":{"line":72,"column":83}},"loc":{"start":{"line":72,"column":94},"end":{"line":72,"column":147}},"line":72},"7":{"name":"resolve","decl":{"start":{"line":97,"column":9},"end":{"line":97,"column":16}},"loc":{"start":{"line":97,"column":26},"end":{"line":100,"column":1}},"line":97}},"branchMap":{"0":{"loc":{"start":{"line":14,"column":8},"end":{"line":19,"column":9}},"type":"if","locations":[{"start":{"line":14,"column":8},"end":{"line":19,"column":9}},{"start":{"line":14,"column":8},"end":{"line":19,"column":9}}],"line":14},"1":{"loc":{"start":{"line":27,"column":30},"end":{"line":27,"column":72}},"type":"binary-expr","locations":[{"start":{"line":27,"column":30},"end":{"line":27,"column":44}},{"start":{"line":27,"column":48},"end":{"line":27,"column":72}}],"line":27},"2":{"loc":{"start":{"line":28,"column":39},"end":{"line":31,"column":88}},"type":"binary-expr","locations":[{"start":{"line":28,"column":39},"end":{"line":28,"column":61}},{"start":{"line":29,"column":12},"end":{"line":29,"column":41}},{"start":{"line":30,"column":12},"end":{"line":30,"column":27}},{"start":{"line":31,"column":12},"end":{"line":31,"column":88}}],"line":28},"3":{"loc":{"start":{"line":32,"column":8},"end":{"line":94,"column":9}},"type":"if","locations":[{"start":{"line":32,"column":8},"end":{"line":94,"column":9}},{"start":{"line":32,"column":8},"end":{"line":94,"column":9}}],"line":32},"4":{"loc":{"start":{"line":32,"column":12},"end":{"line":32,"column":55}},"type":"binary-expr","locations":[{"start":{"line":32,"column":12},"end":{"line":32,"column":27}},{"start":{"line":32,"column":31},"end":{"line":32,"column":55}}],"line":32},"5":{"loc":{"start":{"line":40,"column":12},"end":{"line":42,"column":13}},"type":"if","locations":[{"start":{"line":40,"column":12},"end":{"line":42,"column":13}},{"start":{"line":40,"column":12},"end":{"line":42,"column":13}}],"line":40},"6":{"loc":{"start":{"line":40,"column":16},"end":{"line":40,"column":68}},"type":"binary-expr","locations":[{"start":{"line":40,"column":16},"end":{"line":40,"column":43}},{"start":{"line":40,"column":47},"end":{"line":40,"column":68}}],"line":40},"7":{"loc":{"start":{"line":46,"column":12},"end":{"line":48,"column":13}},"type":"if","locations":[{"start":{"line":46,"column":12},"end":{"line":48,"column":13}},{"start":{"line":46,"column":12},"end":{"line":48,"column":13}}],"line":46},"8":{"loc":{"start":{"line":46,"column":16},"end":{"line":46,"column":50}},"type":"binary-expr","locations":[{"start":{"line":46,"column":16},"end":{"line":46,"column":27}},{"start":{"line":46,"column":31},"end":{"line":46,"column":50}}],"line":46},"9":{"loc":{"start":{"line":49,"column":12},"end":{"line":53,"column":13}},"type":"if","locations":[{"start":{"line":49,"column":12},"end":{"line":53,"column":13}},{"start":{"line":49,"column":12},"end":{"line":53,"column":13}}],"line":49},"10":{"loc":{"start":{"line":49,"column":16},"end":{"line":51,"column":46}},"type":"binary-expr","locations":[{"start":{"line":49,"column":16},"end":{"line":49,"column":34}},{"start":{"line":50,"column":16},"end":{"line":50,"column":37}},{"start":{"line":51,"column":16},"end":{"line":51,"column":46}}],"line":49},"11":{"loc":{"start":{"line":54,"column":12},"end":{"line":80,"column":13}},"type":"if","locations":[{"start":{"line":54,"column":12},"end":{"line":80,"column":13}},{"start":{"line":54,"column":12},"end":{"line":80,"column":13}}],"line":54},"12":{"loc":{"start":{"line":58,"column":17},"end":{"line":80,"column":13}},"type":"if","locations":[{"start":{"line":58,"column":17},"end":{"line":80,"column":13}},{"start":{"line":58,"column":17},"end":{"line":80,"column":13}}],"line":58},"13":{"loc":{"start":{"line":62,"column":17},"end":{"line":80,"column":13}},"type":"if","locations":[{"start":{"line":62,"column":17},"end":{"line":80,"column":13}},{"start":{"line":62,"column":17},"end":{"line":80,"column":13}}],"line":62},"14":{"loc":{"start":{"line":65,"column":17},"end":{"line":80,"column":13}},"type":"if","locations":[{"start":{"line":65,"column":17},"end":{"line":80,"column":13}},{"start":{"line":65,"column":17},"end":{"line":80,"column":13}}],"line":65},"15":{"loc":{"start":{"line":65,"column":21},"end":{"line":65,"column":119}},"type":"binary-expr","locations":[{"start":{"line":65,"column":21},"end":{"line":65,"column":84}},{"start":{"line":65,"column":88},"end":{"line":65,"column":119}}],"line":65},"16":{"loc":{"start":{"line":68,"column":17},"end":{"line":80,"column":13}},"type":"if","locations":[{"start":{"line":68,"column":17},"end":{"line":80,"column":13}},{"start":{"line":68,"column":17},"end":{"line":80,"column":13}}],"line":68},"17":{"loc":{"start":{"line":68,"column":21},"end":{"line":68,"column":109}},"type":"binary-expr","locations":[{"start":{"line":68,"column":21},"end":{"line":68,"column":79}},{"start":{"line":68,"column":83},"end":{"line":68,"column":109}}],"line":68},"18":{"loc":{"start":{"line":71,"column":17},"end":{"line":80,"column":13}},"type":"if","locations":[{"start":{"line":71,"column":17},"end":{"line":80,"column":13}},{"start":{"line":71,"column":17},"end":{"line":80,"column":13}}],"line":71},"19":{"loc":{"start":{"line":71,"column":21},"end":{"line":71,"column":111}},"type":"binary-expr","locations":[{"start":{"line":71,"column":21},"end":{"line":71,"column":80}},{"start":{"line":71,"column":84},"end":{"line":71,"column":111}}],"line":71},"20":{"loc":{"start":{"line":74,"column":17},"end":{"line":80,"column":13}},"type":"if","locations":[{"start":{"line":74,"column":17},"end":{"line":80,"column":13}},{"start":{"line":74,"column":17},"end":{"line":80,"column":13}}],"line":74},"21":{"loc":{"start":{"line":74,"column":21},"end":{"line":74,"column":121}},"type":"binary-expr","locations":[{"start":{"line":74,"column":21},"end":{"line":74,"column":80}},{"start":{"line":74,"column":84},"end":{"line":74,"column":121}}],"line":74},"22":{"loc":{"start":{"line":81,"column":12},"end":{"line":83,"column":13}},"type":"if","locations":[{"start":{"line":81,"column":12},"end":{"line":83,"column":13}},{"start":{"line":81,"column":12},"end":{"line":83,"column":13}}],"line":81},"23":{"loc":{"start":{"line":84,"column":12},"end":{"line":87,"column":13}},"type":"if","locations":[{"start":{"line":84,"column":12},"end":{"line":87,"column":13}},{"start":{"line":84,"column":12},"end":{"line":87,"column":13}}],"line":84},"24":{"loc":{"start":{"line":88,"column":12},"end":{"line":92,"column":13}},"type":"if","locations":[{"start":{"line":88,"column":12},"end":{"line":92,"column":13}},{"start":{"line":88,"column":12},"end":{"line":92,"column":13}}],"line":88},"25":{"loc":{"start":{"line":88,"column":16},"end":{"line":90,"column":47}},"type":"binary-expr","locations":[{"start":{"line":88,"column":16},"end":{"line":88,"column":34}},{"start":{"line":89,"column":16},"end":{"line":89,"column":37}},{"start":{"line":90,"column":16},"end":{"line":90,"column":47}}],"line":88}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":696,"9":696,"10":674,"11":28,"12":646,"13":1,"14":1833,"15":1724,"16":1724,"17":1724,"18":1724,"19":1724,"20":1724,"21":16,"22":26,"23":26,"24":1708,"25":1708,"26":3,"27":1705,"28":1705,"29":1705,"30":1705,"31":54,"32":1651,"33":4,"34":1647,"35":36,"36":36,"37":1611,"38":2,"39":2,"40":1609,"41":3,"42":1606,"43":686,"44":686,"45":920,"46":4,"47":4,"48":916,"49":6,"50":6,"51":910,"52":908,"53":2,"54":2,"55":297,"56":8,"57":297,"58":72,"59":72,"60":297,"61":6,"62":297,"63":899,"64":899,"65":1},"f":{"0":696,"1":1833,"2":1724,"3":26,"4":686,"5":4,"6":6,"7":899},"b":{"0":[28,646],"1":[1724,1724],"2":[1724,825,825,825],"3":[16,1708],"4":[1724,42],"5":[3,1705],"6":[1708,8],"7":[54,1651],"8":[1705,1474],"9":[4,1647],"10":[1651,10,10],"11":[36,1611],"12":[2,1609],"13":[3,1606],"14":[686,920],"15":[1606,686],"16":[4,916],"17":[920,4],"18":[6,910],"19":[916,6],"20":[908,2],"21":[910,908],"22":[8,289],"23":[72,225],"24":[6,291],"25":[297,6,6]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/resolution/resolver.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/resolution/resolver.ts"],"names":[],"mappings":"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","sourcesContent":["import * as ERROR_MSGS from \"../constants/error_msgs\";\nimport { BindingScopeEnum, BindingTypeEnum } from \"../constants/literal_types\";\nimport { interfaces } from \"../interfaces/interfaces\";\nimport { isStackOverflowExeption } from \"../utils/exceptions\";\nimport { getServiceIdentifierAsString } from \"../utils/serialization\";\nimport { resolveInstance } from \"./instantiation\";\n\ntype FactoryType = \"toDynamicValue\" | \"toFactory\" | \"toAutoFactory\" | \"toProvider\";\n\nconst invokeFactory = (\n factoryType: FactoryType,\n serviceIdentifier: interfaces.ServiceIdentifier<any>,\n fn: () => any\n) => {\n try {\n return fn();\n } catch (error) {\n if (isStackOverflowExeption(error)) {\n throw new Error(\n ERROR_MSGS.CIRCULAR_DEPENDENCY_IN_FACTORY(factoryType, serviceIdentifier.toString())\n );\n } else {\n throw error;\n }\n }\n};\n\nconst _resolveRequest = (requestScope: interfaces.RequestScope) =>\n (request: interfaces.Request): any => {\n\n request.parentContext.setCurrentRequest(request);\n\n const bindings = request.bindings;\n const childRequests = request.childRequests;\n\n const targetIsAnArray = request.target && request.target.isArray();\n\n const targetParentIsNotAnArray = !request.parentRequest ||\n !request.parentRequest.target ||\n !request.target ||\n !request.parentRequest.target.matchesArray(request.target.serviceIdentifier);\n\n if (targetIsAnArray && targetParentIsNotAnArray) {\n\n // Create an array instead of creating an instance\n return childRequests.map((childRequest: interfaces.Request) => {\n const _f = _resolveRequest(requestScope);\n return _f(childRequest);\n });\n\n } else {\n\n let result: any = null;\n\n if (request.target.isOptional() && bindings.length === 0) {\n return undefined;\n }\n\n const binding = bindings[0];\n const isSingleton = binding.scope === BindingScopeEnum.Singleton;\n const isRequestSingleton = binding.scope === BindingScopeEnum.Request;\n\n if (isSingleton && binding.activated) {\n return binding.cache;\n }\n\n if (\n isRequestSingleton &&\n requestScope !== null &&\n requestScope.has(binding.id)\n ) {\n return requestScope.get(binding.id);\n }\n\n if (binding.type === BindingTypeEnum.ConstantValue) {\n result = binding.cache;\n binding.activated = true;\n } else if (binding.type === BindingTypeEnum.Function) {\n result = binding.cache;\n binding.activated = true;\n } else if (binding.type === BindingTypeEnum.Constructor) {\n result = binding.implementationType;\n } else if (binding.type === BindingTypeEnum.DynamicValue && binding.dynamicValue !== null) {\n result = invokeFactory(\n \"toDynamicValue\",\n binding.serviceIdentifier,\n () => (binding.dynamicValue as (context: interfaces.Context) => any)(request.parentContext)\n );\n } else if (binding.type === BindingTypeEnum.Factory && binding.factory !== null) {\n result = invokeFactory(\n \"toFactory\",\n binding.serviceIdentifier,\n () => (binding.factory as interfaces.FactoryCreator<any>)(request.parentContext)\n );\n } else if (binding.type === BindingTypeEnum.Provider && binding.provider !== null) {\n result = invokeFactory(\n \"toProvider\",\n binding.serviceIdentifier,\n () => (binding.provider as interfaces.Provider<any>)(request.parentContext)\n );\n } else if (binding.type === BindingTypeEnum.Instance && binding.implementationType !== null) {\n result = resolveInstance(\n binding.implementationType,\n childRequests,\n _resolveRequest(requestScope)\n );\n } else {\n // The user probably created a binding but didn't finish it\n // e.g. container.bind<T>(\"Something\"); missing BindingToSyntax\n const serviceIdentifier = getServiceIdentifierAsString(request.serviceIdentifier);\n throw new Error(`${ERROR_MSGS.INVALID_BINDING_TYPE} ${serviceIdentifier}`);\n }\n\n // use activation handler if available\n if (typeof binding.onActivation === \"function\") {\n result = binding.onActivation(request.parentContext, result);\n }\n\n // store in cache if scope is singleton\n if (isSingleton) {\n binding.cache = result;\n binding.activated = true;\n }\n\n if (\n isRequestSingleton &&\n requestScope !== null &&\n !requestScope.has(binding.id)\n ) {\n requestScope.set(binding.id, result);\n }\n\n return result;\n }\n\n};\n\nfunction resolve<T>(context: interfaces.Context): T {\n const _f = _resolveRequest(context.plan.rootRequest.requestScope);\n return _f(context.plan.rootRequest);\n}\n\nexport { resolve };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"c3e1388b541bb6da0c62d7f985136d3475eeb07e","contentHash":"bd0e7010d5e06da73fa3f1d017d54335614ea72e278fe3c2a95ccfdd4749b601"},"/Users/dan/jsProjects/inversify/InversifyJS/src/resolution/instantiation.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/resolution/instantiation.ts","statementMap":{"0":{"start":{"line":2,"column":20},"end":{"line":6,"column":1}},"1":{"start":{"line":3,"column":4},"end":{"line":4,"column":24}},"2":{"start":{"line":3,"column":17},"end":{"line":3,"column":18}},"3":{"start":{"line":3,"column":25},"end":{"line":3,"column":36}},"4":{"start":{"line":3,"column":42},"end":{"line":3,"column":51}},"5":{"start":{"line":4,"column":8},"end":{"line":4,"column":24}},"6":{"start":{"line":5,"column":4},"end":{"line":5,"column":14}},"7":{"start":{"line":7,"column":0},"end":{"line":7,"column":62}},"8":{"start":{"line":8,"column":0},"end":{"line":8,"column":33}},"9":{"start":{"line":9,"column":19},"end":{"line":9,"column":53}},"10":{"start":{"line":10,"column":22},"end":{"line":10,"column":59}},"11":{"start":{"line":11,"column":19},"end":{"line":11,"column":56}},"12":{"start":{"line":13,"column":37},"end":{"line":16,"column":6}},"13":{"start":{"line":14,"column":8},"end":{"line":15,"column":87}},"14":{"start":{"line":17,"column":29},"end":{"line":17,"column":75}},"15":{"start":{"line":18,"column":4},"end":{"line":23,"column":7}},"16":{"start":{"line":19,"column":27},"end":{"line":19,"column":29}},"17":{"start":{"line":20,"column":8},"end":{"line":20,"column":45}},"18":{"start":{"line":21,"column":24},"end":{"line":21,"column":49}},"19":{"start":{"line":22,"column":8},"end":{"line":22,"column":43}},"20":{"start":{"line":24,"column":4},"end":{"line":24,"column":20}},"21":{"start":{"line":27,"column":4},"end":{"line":27,"column":78}},"22":{"start":{"line":30,"column":4},"end":{"line":38,"column":5}},"23":{"start":{"line":31,"column":19},"end":{"line":31,"column":75}},"24":{"start":{"line":32,"column":8},"end":{"line":37,"column":9}},"25":{"start":{"line":33,"column":12},"end":{"line":33,"column":33}},"26":{"start":{"line":36,"column":12},"end":{"line":36,"column":87}},"27":{"start":{"line":41,"column":17},"end":{"line":41,"column":21}},"28":{"start":{"line":42,"column":4},"end":{"line":52,"column":5}},"29":{"start":{"line":43,"column":44},"end":{"line":45,"column":10}},"30":{"start":{"line":44,"column":12},"end":{"line":44,"column":133}},"31":{"start":{"line":46,"column":36},"end":{"line":46,"column":85}},"32":{"start":{"line":47,"column":8},"end":{"line":47,"column":64}},"33":{"start":{"line":48,"column":8},"end":{"line":48,"column":74}},"34":{"start":{"line":51,"column":8},"end":{"line":51,"column":30}},"35":{"start":{"line":53,"column":4},"end":{"line":53,"column":35}},"36":{"start":{"line":54,"column":4},"end":{"line":54,"column":18}},"37":{"start":{"line":56,"column":0},"end":{"line":56,"column":42}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":52},"end":{"line":2,"column":53}},"loc":{"start":{"line":2,"column":72},"end":{"line":6,"column":1}},"line":2},"1":{"name":"_injectProperties","decl":{"start":{"line":12,"column":9},"end":{"line":12,"column":26}},"loc":{"start":{"line":12,"column":68},"end":{"line":25,"column":1}},"line":12},"2":{"name":"(anonymous_2)","decl":{"start":{"line":13,"column":58},"end":{"line":13,"column":59}},"loc":{"start":{"line":13,"column":82},"end":{"line":16,"column":5}},"line":13},"3":{"name":"(anonymous_3)","decl":{"start":{"line":18,"column":39},"end":{"line":18,"column":40}},"loc":{"start":{"line":18,"column":59},"end":{"line":23,"column":5}},"line":18},"4":{"name":"_createInstance","decl":{"start":{"line":26,"column":9},"end":{"line":26,"column":24}},"loc":{"start":{"line":26,"column":43},"end":{"line":28,"column":1}},"line":26},"5":{"name":"_postConstruct","decl":{"start":{"line":29,"column":9},"end":{"line":29,"column":23}},"loc":{"start":{"line":29,"column":40},"end":{"line":39,"column":1}},"line":29},"6":{"name":"resolveInstance","decl":{"start":{"line":40,"column":9},"end":{"line":40,"column":24}},"loc":{"start":{"line":40,"column":64},"end":{"line":55,"column":1}},"line":40},"7":{"name":"(anonymous_7)","decl":{"start":{"line":43,"column":65},"end":{"line":43,"column":66}},"loc":{"start":{"line":43,"column":89},"end":{"line":45,"column":9}},"line":43}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":20},"end":{"line":6,"column":1}},"type":"binary-expr","locations":[{"start":{"line":2,"column":21},"end":{"line":2,"column":25}},{"start":{"line":2,"column":29},"end":{"line":2,"column":47}},{"start":{"line":2,"column":52},"end":{"line":6,"column":1}}],"line":2},"1":{"loc":{"start":{"line":14,"column":16},"end":{"line":15,"column":85}},"type":"binary-expr","locations":[{"start":{"line":14,"column":16},"end":{"line":14,"column":44}},{"start":{"line":15,"column":12},"end":{"line":15,"column":85}}],"line":14},"2":{"loc":{"start":{"line":30,"column":4},"end":{"line":38,"column":5}},"type":"if","locations":[{"start":{"line":30,"column":4},"end":{"line":38,"column":5}},{"start":{"line":30,"column":4},"end":{"line":38,"column":5}}],"line":30},"3":{"loc":{"start":{"line":42,"column":4},"end":{"line":52,"column":5}},"type":"if","locations":[{"start":{"line":42,"column":4},"end":{"line":52,"column":5}},{"start":{"line":42,"column":4},"end":{"line":52,"column":5}}],"line":42},"4":{"loc":{"start":{"line":44,"column":20},"end":{"line":44,"column":131}},"type":"binary-expr","locations":[{"start":{"line":44,"column":20},"end":{"line":44,"column":48}},{"start":{"line":44,"column":52},"end":{"line":44,"column":131}}],"line":44}},"s":{"0":1,"1":80,"2":80,"3":80,"4":80,"5":110,"6":80,"7":1,"8":1,"9":1,"10":1,"11":1,"12":80,"13":125,"14":80,"15":80,"16":15,"17":15,"18":15,"19":15,"20":80,"21":80,"22":235,"23":5,"24":5,"25":5,"26":1,"27":909,"28":909,"29":754,"30":799,"31":754,"32":80,"33":80,"34":155,"35":235,"36":234,"37":1},"f":{"0":80,"1":80,"2":125,"3":15,"4":80,"5":235,"6":909,"7":799},"b":{"0":[1,1,1],"1":[125,125],"2":[5,230],"3":[754,155],"4":[799,799]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/resolution/instantiation.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/resolution/instantiation.ts"],"names":[],"mappings":";;;;;;;;AAAA,sDAA+D;AAC/D,4DAA4D;AAC5D,yDAA2D;AAI3D,SAAS,iBAAiB,CACtB,QAAa,EACb,aAAmC,EACnC,cAAgD;IAGhD,IAAM,0BAA0B,GAAG,aAAa,CAAC,MAAM,CAAC,UAAC,YAAgC;QACrF,OAAA,CACI,YAAY,CAAC,MAAM,KAAK,IAAI;YAC5B,YAAY,CAAC,MAAM,CAAC,IAAI,KAAK,8BAAc,CAAC,aAAa,CAC5D;IAHD,CAGC,CAAC,CAAC;IAEP,IAAM,kBAAkB,GAAG,0BAA0B,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAE1E,0BAA0B,CAAC,OAAO,CAAC,UAAC,CAAqB,EAAE,KAAa;QACpE,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACrC,IAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC5C,QAAQ,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAEpB,CAAC;AAED,SAAS,eAAe,CAAC,IAA6B,EAAE,UAAoB;IACxE,YAAW,IAAI,YAAJ,IAAI,0BAAI,UAAU,MAAE;AACnC,CAAC;AAED,SAAS,cAAc,CAAC,MAA+B,EAAE,MAAW;IAChE,IAAI,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,EAAE;QAC1D,IAAM,IAAI,GAAa,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAChF,IAAI;YACA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;SACxB;QAAC,OAAO,CAAC,EAAE;YACR,MAAM,IAAI,KAAK,CAAC,iCAAoB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;SACjE;KACJ;AACL,CAAC;AAED,SAAS,eAAe,CACpB,MAA+B,EAC/B,aAAmC,EACnC,cAAgD;IAGhD,IAAI,MAAM,GAAQ,IAAI,CAAC;IAEvB,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;QAE1B,IAAM,6BAA6B,GAAG,aAAa,CAAC,MAAM,CAAC,UAAC,YAAgC;YACxF,OAAA,CAAC,YAAY,CAAC,MAAM,KAAK,IAAI,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,KAAK,8BAAc,CAAC,mBAAmB,CAAC;QAAjG,CAAiG,CAAC,CAAC;QAEvG,IAAM,qBAAqB,GAAG,6BAA6B,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAEhF,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;QACxD,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;KAErE;SAAM;QACH,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;KACzB;IACD,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE/B,OAAO,MAAM,CAAC;AAClB,CAAC;AAEQ,0CAAe","sourcesContent":["import { POST_CONSTRUCT_ERROR } from \"../constants/error_msgs\";\nimport { TargetTypeEnum } from \"../constants/literal_types\";\nimport * as METADATA_KEY from \"../constants/metadata_keys\";\nimport { interfaces } from \"../interfaces/interfaces\";\nimport { Metadata } from \"../planning/metadata\";\n\nfunction _injectProperties(\n instance: any,\n childRequests: interfaces.Request[],\n resolveRequest: interfaces.ResolveRequestHandler\n): any {\n\n const propertyInjectionsRequests = childRequests.filter((childRequest: interfaces.Request) =>\n (\n childRequest.target !== null &&\n childRequest.target.type === TargetTypeEnum.ClassProperty\n ));\n\n const propertyInjections = propertyInjectionsRequests.map(resolveRequest);\n\n propertyInjectionsRequests.forEach((r: interfaces.Request, index: number) => {\n let propertyName = \"\";\n propertyName = r.target.name.value();\n const injection = propertyInjections[index];\n instance[propertyName] = injection;\n });\n\n return instance;\n\n}\n\nfunction _createInstance(Func: interfaces.Newable<any>, injections: Object[]): any {\n return new Func(...injections);\n}\n\nfunction _postConstruct(constr: interfaces.Newable<any>, result: any): void {\n if (Reflect.hasMetadata(METADATA_KEY.POST_CONSTRUCT, constr)) {\n const data: Metadata = Reflect.getMetadata(METADATA_KEY.POST_CONSTRUCT, constr);\n try {\n result[data.value]();\n } catch (e) {\n throw new Error(POST_CONSTRUCT_ERROR(constr.name, e.message));\n }\n }\n}\n\nfunction resolveInstance(\n constr: interfaces.Newable<any>,\n childRequests: interfaces.Request[],\n resolveRequest: interfaces.ResolveRequestHandler\n): any {\n\n let result: any = null;\n\n if (childRequests.length > 0) {\n\n const constructorInjectionsRequests = childRequests.filter((childRequest: interfaces.Request) =>\n (childRequest.target !== null && childRequest.target.type === TargetTypeEnum.ConstructorArgument));\n\n const constructorInjections = constructorInjectionsRequests.map(resolveRequest);\n\n result = _createInstance(constr, constructorInjections);\n result = _injectProperties(result, childRequests, resolveRequest);\n\n } else {\n result = new constr();\n }\n _postConstruct(constr, result);\n\n return result;\n}\n\nexport { resolveInstance };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"e86de3989a0faf971e70eecc620a4f9d9701cbc0","contentHash":"8737aa41587c0e4480aebe9b16307e80fb43767fce57560a364faa78ede6f7ec"},"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_to_syntax.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_to_syntax.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":33}},"2":{"start":{"line":4,"column":17},"end":{"line":4,"column":51}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":59}},"4":{"start":{"line":6,"column":34},"end":{"line":6,"column":72}},"5":{"start":{"line":7,"column":31},"end":{"line":7,"column":66}},"6":{"start":{"line":8,"column":23},"end":{"line":79,"column":3}},"7":{"start":{"line":10,"column":8},"end":{"line":10,"column":32}},"8":{"start":{"line":12,"column":4},"end":{"line":16,"column":6}},"9":{"start":{"line":13,"column":8},"end":{"line":13,"column":70}},"10":{"start":{"line":14,"column":8},"end":{"line":14,"column":55}},"11":{"start":{"line":15,"column":8},"end":{"line":15,"column":84}},"12":{"start":{"line":17,"column":4},"end":{"line":23,"column":6}},"13":{"start":{"line":18,"column":8},"end":{"line":20,"column":9}},"14":{"start":{"line":19,"column":12},"end":{"line":19,"column":67}},"15":{"start":{"line":21,"column":19},"end":{"line":21,"column":50}},"16":{"start":{"line":22,"column":8},"end":{"line":22,"column":29}},"17":{"start":{"line":24,"column":4},"end":{"line":31,"column":6}},"18":{"start":{"line":25,"column":8},"end":{"line":25,"column":75}},"19":{"start":{"line":26,"column":8},"end":{"line":26,"column":36}},"20":{"start":{"line":27,"column":8},"end":{"line":27,"column":42}},"21":{"start":{"line":28,"column":8},"end":{"line":28,"column":48}},"22":{"start":{"line":29,"column":8},"end":{"line":29,"column":73}},"23":{"start":{"line":30,"column":8},"end":{"line":30,"column":79}},"24":{"start":{"line":32,"column":4},"end":{"line":38,"column":6}},"25":{"start":{"line":33,"column":8},"end":{"line":33,"column":74}},"26":{"start":{"line":34,"column":8},"end":{"line":34,"column":35}},"27":{"start":{"line":35,"column":8},"end":{"line":35,"column":42}},"28":{"start":{"line":36,"column":8},"end":{"line":36,"column":48}},"29":{"start":{"line":37,"column":8},"end":{"line":37,"column":84}},"30":{"start":{"line":39,"column":4},"end":{"line":44,"column":6}},"31":{"start":{"line":40,"column":8},"end":{"line":40,"column":73}},"32":{"start":{"line":41,"column":8},"end":{"line":41,"column":55}},"33":{"start":{"line":42,"column":8},"end":{"line":42,"column":73}},"34":{"start":{"line":43,"column":8},"end":{"line":43,"column":79}},"35":{"start":{"line":45,"column":4},"end":{"line":50,"column":6}},"36":{"start":{"line":46,"column":8},"end":{"line":46,"column":69}},"37":{"start":{"line":47,"column":8},"end":{"line":47,"column":40}},"38":{"start":{"line":48,"column":8},"end":{"line":48,"column":73}},"39":{"start":{"line":49,"column":8},"end":{"line":49,"column":79}},"40":{"start":{"line":51,"column":4},"end":{"line":59,"column":6}},"41":{"start":{"line":52,"column":8},"end":{"line":54,"column":9}},"42":{"start":{"line":53,"column":12},"end":{"line":53,"column":65}},"43":{"start":{"line":55,"column":34},"end":{"line":55,"column":60}},"44":{"start":{"line":56,"column":8},"end":{"line":56,"column":70}},"45":{"start":{"line":57,"column":8},"end":{"line":57,"column":73}},"46":{"start":{"line":58,"column":8},"end":{"line":58,"column":35}},"47":{"start":{"line":60,"column":4},"end":{"line":68,"column":6}},"48":{"start":{"line":61,"column":8},"end":{"line":61,"column":69}},"49":{"start":{"line":62,"column":8},"end":{"line":65,"column":10}},"50":{"start":{"line":63,"column":30},"end":{"line":63,"column":94}},"51":{"start":{"line":63,"column":44},"end":{"line":63,"column":92}},"52":{"start":{"line":64,"column":12},"end":{"line":64,"column":31}},"53":{"start":{"line":66,"column":8},"end":{"line":66,"column":73}},"54":{"start":{"line":67,"column":8},"end":{"line":67,"column":79}},"55":{"start":{"line":69,"column":4},"end":{"line":74,"column":6}},"56":{"start":{"line":70,"column":8},"end":{"line":70,"column":70}},"57":{"start":{"line":71,"column":8},"end":{"line":71,"column":42}},"58":{"start":{"line":72,"column":8},"end":{"line":72,"column":73}},"59":{"start":{"line":73,"column":8},"end":{"line":73,"column":79}},"60":{"start":{"line":75,"column":4},"end":{"line":77,"column":6}},"61":{"start":{"line":76,"column":8},"end":{"line":76,"column":91}},"62":{"start":{"line":76,"column":49},"end":{"line":76,"column":87}},"63":{"start":{"line":78,"column":4},"end":{"line":78,"column":27}},"64":{"start":{"line":80,"column":0},"end":{"line":80,"column":42}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":23},"end":{"line":8,"column":24}},"loc":{"start":{"line":8,"column":35},"end":{"line":79,"column":1}},"line":8},"1":{"name":"BindingToSyntax","decl":{"start":{"line":9,"column":13},"end":{"line":9,"column":28}},"loc":{"start":{"line":9,"column":38},"end":{"line":11,"column":5}},"line":9},"2":{"name":"(anonymous_2)","decl":{"start":{"line":12,"column":35},"end":{"line":12,"column":36}},"loc":{"start":{"line":12,"column":58},"end":{"line":16,"column":5}},"line":12},"3":{"name":"(anonymous_3)","decl":{"start":{"line":17,"column":39},"end":{"line":17,"column":40}},"loc":{"start":{"line":17,"column":51},"end":{"line":23,"column":5}},"line":17},"4":{"name":"(anonymous_4)","decl":{"start":{"line":24,"column":48},"end":{"line":24,"column":49}},"loc":{"start":{"line":24,"column":65},"end":{"line":31,"column":5}},"line":24},"5":{"name":"(anonymous_5)","decl":{"start":{"line":32,"column":47},"end":{"line":32,"column":48}},"loc":{"start":{"line":32,"column":63},"end":{"line":38,"column":5}},"line":32},"6":{"name":"(anonymous_6)","decl":{"start":{"line":39,"column":46},"end":{"line":39,"column":47}},"loc":{"start":{"line":39,"column":69},"end":{"line":44,"column":5}},"line":39},"7":{"name":"(anonymous_7)","decl":{"start":{"line":45,"column":42},"end":{"line":45,"column":43}},"loc":{"start":{"line":45,"column":61},"end":{"line":50,"column":5}},"line":45},"8":{"name":"(anonymous_8)","decl":{"start":{"line":51,"column":43},"end":{"line":51,"column":44}},"loc":{"start":{"line":51,"column":59},"end":{"line":59,"column":5}},"line":51},"9":{"name":"(anonymous_9)","decl":{"start":{"line":60,"column":46},"end":{"line":60,"column":47}},"loc":{"start":{"line":60,"column":75},"end":{"line":68,"column":5}},"line":60},"10":{"name":"(anonymous_10)","decl":{"start":{"line":62,"column":32},"end":{"line":62,"column":33}},"loc":{"start":{"line":62,"column":51},"end":{"line":65,"column":9}},"line":62},"11":{"name":"(anonymous_11)","decl":{"start":{"line":63,"column":30},"end":{"line":63,"column":31}},"loc":{"start":{"line":63,"column":42},"end":{"line":63,"column":94}},"line":63},"12":{"name":"(anonymous_12)","decl":{"start":{"line":69,"column":43},"end":{"line":69,"column":44}},"loc":{"start":{"line":69,"column":63},"end":{"line":74,"column":5}},"line":69},"13":{"name":"(anonymous_13)","decl":{"start":{"line":75,"column":42},"end":{"line":75,"column":43}},"loc":{"start":{"line":75,"column":61},"end":{"line":77,"column":5}},"line":75},"14":{"name":"(anonymous_14)","decl":{"start":{"line":76,"column":28},"end":{"line":76,"column":29}},"loc":{"start":{"line":76,"column":47},"end":{"line":76,"column":89}},"line":76}},"branchMap":{"0":{"loc":{"start":{"line":18,"column":8},"end":{"line":20,"column":9}},"type":"if","locations":[{"start":{"line":18,"column":8},"end":{"line":20,"column":9}},{"start":{"line":18,"column":8},"end":{"line":20,"column":9}}],"line":18},"1":{"loc":{"start":{"line":52,"column":8},"end":{"line":54,"column":9}},"type":"if","locations":[{"start":{"line":52,"column":8},"end":{"line":54,"column":9}},{"start":{"line":52,"column":8},"end":{"line":54,"column":9}}],"line":52}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":24347,"8":1,"9":266,"10":266,"11":266,"12":1,"13":32,"14":1,"15":31,"16":31,"17":1,"18":24054,"19":24054,"20":24054,"21":24054,"22":24054,"23":24054,"24":1,"25":11,"26":11,"27":11,"28":11,"29":11,"30":1,"31":4,"32":4,"33":4,"34":4,"35":1,"36":4,"37":4,"38":4,"39":4,"40":1,"41":4,"42":1,"43":3,"44":3,"45":3,"46":3,"47":1,"48":3,"49":3,"50":2,"51":1,"52":2,"53":3,"54":3,"55":1,"56":7,"57":7,"58":7,"59":7,"60":1,"61":4,"62":5,"63":1,"64":1},"f":{"0":1,"1":24347,"2":266,"3":32,"4":24054,"5":11,"6":4,"7":4,"8":4,"9":3,"10":2,"11":1,"12":7,"13":4,"14":5},"b":{"0":[1,31],"1":[1,3]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_to_syntax.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_to_syntax.ts"],"names":[],"mappings":"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","sourcesContent":["import * as ERROR_MSGS from \"../constants/error_msgs\";\nimport { BindingScopeEnum, BindingTypeEnum } from \"../constants/literal_types\";\nimport { interfaces } from \"../interfaces/interfaces\";\nimport { BindingInWhenOnSyntax } from \"./binding_in_when_on_syntax\";\nimport { BindingWhenOnSyntax } from \"./binding_when_on_syntax\";\n\nclass BindingToSyntax<T> implements interfaces.BindingToSyntax<T> {\n\n private _binding: interfaces.Binding<T>;\n\n public constructor(binding: interfaces.Binding<T>) {\n this._binding = binding;\n }\n\n public to(constructor: new (...args: any[]) => T): interfaces.BindingInWhenOnSyntax<T> {\n this._binding.type = BindingTypeEnum.Instance;\n this._binding.implementationType = constructor;\n return new BindingInWhenOnSyntax<T>(this._binding);\n }\n\n public toSelf(): interfaces.BindingInWhenOnSyntax<T> {\n if (typeof this._binding.serviceIdentifier !== \"function\") {\n throw new Error(`${ERROR_MSGS.INVALID_TO_SELF_VALUE}`);\n }\n const self: any = this._binding.serviceIdentifier;\n return this.to(self);\n }\n\n public toConstantValue(value: T): interfaces.BindingWhenOnSyntax<T> {\n this._binding.type = BindingTypeEnum.ConstantValue;\n this._binding.cache = value;\n this._binding.dynamicValue = null;\n this._binding.implementationType = null;\n this._binding.scope = BindingScopeEnum.Singleton;\n return new BindingWhenOnSyntax<T>(this._binding);\n }\n\n public toDynamicValue(func: (context: interfaces.Context) => T): interfaces.BindingInWhenOnSyntax<T> {\n this._binding.type = BindingTypeEnum.DynamicValue;\n this._binding.cache = null;\n this._binding.dynamicValue = func;\n this._binding.implementationType = null;\n return new BindingInWhenOnSyntax<T>(this._binding);\n }\n\n public toConstructor<T2>(constructor: interfaces.Newable<T2>): interfaces.BindingWhenOnSyntax<T> {\n this._binding.type = BindingTypeEnum.Constructor;\n this._binding.implementationType = constructor as any;\n this._binding.scope = BindingScopeEnum.Singleton;\n return new BindingWhenOnSyntax<T>(this._binding);\n }\n\n public toFactory<T2>(factory: interfaces.FactoryCreator<T2>): interfaces.BindingWhenOnSyntax<T> {\n this._binding.type = BindingTypeEnum.Factory;\n this._binding.factory = factory;\n this._binding.scope = BindingScopeEnum.Singleton;\n return new BindingWhenOnSyntax<T>(this._binding);\n }\n\n public toFunction(func: T): interfaces.BindingWhenOnSyntax<T> {\n // toFunction is an alias of toConstantValue\n if (typeof func !== \"function\") { throw new Error(ERROR_MSGS.INVALID_FUNCTION_BINDING); }\n const bindingWhenOnSyntax = this.toConstantValue(func);\n this._binding.type = BindingTypeEnum.Function;\n this._binding.scope = BindingScopeEnum.Singleton;\n return bindingWhenOnSyntax;\n }\n\n public toAutoFactory<T2>(serviceIdentifier: interfaces.ServiceIdentifier<T2>): interfaces.BindingWhenOnSyntax<T> {\n this._binding.type = BindingTypeEnum.Factory;\n this._binding.factory = (context) => {\n const autofactory = () => context.container.get<T2>(serviceIdentifier);\n return autofactory;\n };\n this._binding.scope = BindingScopeEnum.Singleton;\n return new BindingWhenOnSyntax<T>(this._binding);\n }\n\n public toProvider<T2>(provider: interfaces.ProviderCreator<T2>): interfaces.BindingWhenOnSyntax<T> {\n this._binding.type = BindingTypeEnum.Provider;\n this._binding.provider = provider;\n this._binding.scope = BindingScopeEnum.Singleton;\n return new BindingWhenOnSyntax<T>(this._binding);\n }\n\n public toService(service: string | symbol | interfaces.Newable<T> | interfaces.Abstract<T>): void {\n this.toDynamicValue(\n (context) => context.container.get<T>(service)\n );\n }\n\n}\n\nexport { BindingToSyntax };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"68ba12da23e0cdd890318e5321e15dffae7ae4c9","contentHash":"7c1ab81b9c4832c6ce5da42535103b506b122ea6622600d83e94d8deee715940"},"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_in_when_on_syntax.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_in_when_on_syntax.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":39}},"2":{"start":{"line":4,"column":26},"end":{"line":4,"column":56}},"3":{"start":{"line":5,"column":26},"end":{"line":5,"column":56}},"4":{"start":{"line":6,"column":28},"end":{"line":6,"column":60}},"5":{"start":{"line":7,"column":29},"end":{"line":72,"column":3}},"6":{"start":{"line":9,"column":8},"end":{"line":9,"column":32}},"7":{"start":{"line":10,"column":8},"end":{"line":10,"column":93}},"8":{"start":{"line":11,"column":8},"end":{"line":11,"column":87}},"9":{"start":{"line":12,"column":8},"end":{"line":12,"column":81}},"10":{"start":{"line":14,"column":4},"end":{"line":16,"column":6}},"11":{"start":{"line":15,"column":8},"end":{"line":15,"column":54}},"12":{"start":{"line":17,"column":4},"end":{"line":19,"column":6}},"13":{"start":{"line":18,"column":8},"end":{"line":18,"column":56}},"14":{"start":{"line":20,"column":4},"end":{"line":22,"column":6}},"15":{"start":{"line":21,"column":8},"end":{"line":21,"column":56}},"16":{"start":{"line":23,"column":4},"end":{"line":25,"column":6}},"17":{"start":{"line":24,"column":8},"end":{"line":24,"column":56}},"18":{"start":{"line":26,"column":4},"end":{"line":28,"column":6}},"19":{"start":{"line":27,"column":8},"end":{"line":27,"column":61}},"20":{"start":{"line":29,"column":4},"end":{"line":31,"column":6}},"21":{"start":{"line":30,"column":8},"end":{"line":30,"column":61}},"22":{"start":{"line":32,"column":4},"end":{"line":34,"column":6}},"23":{"start":{"line":33,"column":8},"end":{"line":33,"column":68}},"24":{"start":{"line":35,"column":4},"end":{"line":37,"column":6}},"25":{"start":{"line":36,"column":8},"end":{"line":36,"column":64}},"26":{"start":{"line":38,"column":4},"end":{"line":40,"column":6}},"27":{"start":{"line":39,"column":8},"end":{"line":39,"column":61}},"28":{"start":{"line":41,"column":4},"end":{"line":43,"column":6}},"29":{"start":{"line":42,"column":8},"end":{"line":42,"column":68}},"30":{"start":{"line":44,"column":4},"end":{"line":46,"column":6}},"31":{"start":{"line":45,"column":8},"end":{"line":45,"column":67}},"32":{"start":{"line":47,"column":4},"end":{"line":49,"column":6}},"33":{"start":{"line":48,"column":8},"end":{"line":48,"column":66}},"34":{"start":{"line":50,"column":4},"end":{"line":52,"column":6}},"35":{"start":{"line":51,"column":8},"end":{"line":51,"column":66}},"36":{"start":{"line":53,"column":4},"end":{"line":55,"column":6}},"37":{"start":{"line":54,"column":8},"end":{"line":54,"column":73}},"38":{"start":{"line":56,"column":4},"end":{"line":58,"column":6}},"39":{"start":{"line":57,"column":8},"end":{"line":57,"column":65}},"40":{"start":{"line":59,"column":4},"end":{"line":61,"column":6}},"41":{"start":{"line":60,"column":8},"end":{"line":60,"column":72}},"42":{"start":{"line":62,"column":4},"end":{"line":64,"column":6}},"43":{"start":{"line":63,"column":8},"end":{"line":63,"column":74}},"44":{"start":{"line":65,"column":4},"end":{"line":67,"column":6}},"45":{"start":{"line":66,"column":8},"end":{"line":66,"column":73}},"46":{"start":{"line":68,"column":4},"end":{"line":70,"column":6}},"47":{"start":{"line":69,"column":8},"end":{"line":69,"column":59}},"48":{"start":{"line":71,"column":4},"end":{"line":71,"column":33}},"49":{"start":{"line":73,"column":0},"end":{"line":73,"column":54}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":29},"end":{"line":7,"column":30}},"loc":{"start":{"line":7,"column":41},"end":{"line":72,"column":1}},"line":7},"1":{"name":"BindingInWhenOnSyntax","decl":{"start":{"line":8,"column":13},"end":{"line":8,"column":34}},"loc":{"start":{"line":8,"column":44},"end":{"line":13,"column":5}},"line":8},"2":{"name":"(anonymous_2)","decl":{"start":{"line":14,"column":53},"end":{"line":14,"column":54}},"loc":{"start":{"line":14,"column":65},"end":{"line":16,"column":5}},"line":14},"3":{"name":"(anonymous_3)","decl":{"start":{"line":17,"column":55},"end":{"line":17,"column":56}},"loc":{"start":{"line":17,"column":67},"end":{"line":19,"column":5}},"line":17},"4":{"name":"(anonymous_4)","decl":{"start":{"line":20,"column":55},"end":{"line":20,"column":56}},"loc":{"start":{"line":20,"column":67},"end":{"line":22,"column":5}},"line":20},"5":{"name":"(anonymous_5)","decl":{"start":{"line":23,"column":43},"end":{"line":23,"column":44}},"loc":{"start":{"line":23,"column":65},"end":{"line":25,"column":5}},"line":23},"6":{"name":"(anonymous_6)","decl":{"start":{"line":26,"column":54},"end":{"line":26,"column":55}},"loc":{"start":{"line":26,"column":70},"end":{"line":28,"column":5}},"line":26},"7":{"name":"(anonymous_7)","decl":{"start":{"line":29,"column":58},"end":{"line":29,"column":59}},"loc":{"start":{"line":29,"column":70},"end":{"line":31,"column":5}},"line":29},"8":{"name":"(anonymous_8)","decl":{"start":{"line":32,"column":55},"end":{"line":32,"column":56}},"loc":{"start":{"line":32,"column":77},"end":{"line":34,"column":5}},"line":32},"9":{"name":"(anonymous_9)","decl":{"start":{"line":35,"column":55},"end":{"line":35,"column":56}},"loc":{"start":{"line":35,"column":73},"end":{"line":37,"column":5}},"line":35},"10":{"name":"(anonymous_10)","decl":{"start":{"line":38,"column":54},"end":{"line":38,"column":55}},"loc":{"start":{"line":38,"column":70},"end":{"line":40,"column":5}},"line":38},"11":{"name":"(anonymous_11)","decl":{"start":{"line":41,"column":55},"end":{"line":41,"column":56}},"loc":{"start":{"line":41,"column":77},"end":{"line":43,"column":5}},"line":41},"12":{"name":"(anonymous_12)","decl":{"start":{"line":44,"column":56},"end":{"line":44,"column":57}},"loc":{"start":{"line":44,"column":76},"end":{"line":46,"column":5}},"line":44},"13":{"name":"(anonymous_13)","decl":{"start":{"line":47,"column":55},"end":{"line":47,"column":56}},"loc":{"start":{"line":47,"column":75},"end":{"line":49,"column":5}},"line":47},"14":{"name":"(anonymous_14)","decl":{"start":{"line":50,"column":59},"end":{"line":50,"column":60}},"loc":{"start":{"line":50,"column":75},"end":{"line":52,"column":5}},"line":50},"15":{"name":"(anonymous_15)","decl":{"start":{"line":53,"column":60},"end":{"line":53,"column":61}},"loc":{"start":{"line":53,"column":82},"end":{"line":55,"column":5}},"line":53},"16":{"name":"(anonymous_16)","decl":{"start":{"line":56,"column":58},"end":{"line":56,"column":59}},"loc":{"start":{"line":56,"column":74},"end":{"line":58,"column":5}},"line":56},"17":{"name":"(anonymous_17)","decl":{"start":{"line":59,"column":59},"end":{"line":59,"column":60}},"loc":{"start":{"line":59,"column":81},"end":{"line":61,"column":5}},"line":59},"18":{"name":"(anonymous_18)","decl":{"start":{"line":62,"column":61},"end":{"line":62,"column":62}},"loc":{"start":{"line":62,"column":83},"end":{"line":64,"column":5}},"line":62},"19":{"name":"(anonymous_19)","decl":{"start":{"line":65,"column":60},"end":{"line":65,"column":61}},"loc":{"start":{"line":65,"column":82},"end":{"line":67,"column":5}},"line":65},"20":{"name":"(anonymous_20)","decl":{"start":{"line":68,"column":51},"end":{"line":68,"column":52}},"loc":{"start":{"line":68,"column":70},"end":{"line":70,"column":5}},"line":68}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":281,"7":281,"8":281,"9":281,"10":1,"11":3,"12":1,"13":16,"14":1,"15":2,"16":1,"17":3,"18":1,"19":23,"20":1,"21":2,"22":1,"23":13,"24":1,"25":5,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":3,"48":1,"49":1},"f":{"0":1,"1":281,"2":3,"3":16,"4":2,"5":3,"6":23,"7":2,"8":13,"9":5,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":3},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_in_when_on_syntax.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_in_when_on_syntax.ts"],"names":[],"mappings":";;;AACA,yDAAsD;AACtD,yDAAsD;AACtD,6DAA0D;AAE1D;IAOI,+BAAmB,OAA8B;QAC7C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,kBAAkB,GAAG,IAAI,uCAAiB,CAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClE,IAAI,CAAC,gBAAgB,GAAG,IAAI,mCAAe,CAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9D,IAAI,CAAC,gBAAgB,GAAG,IAAI,mCAAe,CAAI,OAAO,CAAC,CAAC;IAC5D,CAAC;IAEM,8CAAc,GAArB;QACI,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC;IAClD,CAAC;IAEM,gDAAgB,GAAvB;QACI,OAAO,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC;IACpD,CAAC;IAEM,gDAAgB,GAAvB;QACI,OAAO,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC;IACpD,CAAC;IAEM,oCAAI,GAAX,UAAY,UAAoD;QAC5D,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpD,CAAC;IAEM,+CAAe,GAAtB,UAAuB,IAAY;QAC/B,OAAO,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAEM,mDAAmB,GAA1B;QACI,OAAO,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,CAAC;IACzD,CAAC;IAEM,gDAAgB,GAAvB,UAAwB,GAAW,EAAE,KAAU;QAC3C,OAAO,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;IAEM,gDAAgB,GAAvB,UAAwB,MAA2B;QAC/C,OAAO,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC5D,CAAC;IAEM,+CAAe,GAAtB,UAAuB,IAAY;QAC/B,OAAO,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAEM,gDAAgB,GAAvB,UAAwB,GAAW,EAAE,KAAU;QAC3C,OAAO,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;IAEM,iDAAiB,GAAxB,UAAyB,QAA6B;QAClD,OAAO,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAEM,gDAAgB,GAAvB,UAAwB,QAA6B;QACjD,OAAO,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAEM,oDAAoB,GAA3B,UAA4B,IAAY;QACpC,OAAO,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC;IAEM,qDAAqB,GAA5B,UAA6B,GAAW,EAAE,KAAU;QAChD,OAAO,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrE,CAAC;IAEM,mDAAmB,GAA1B,UAA2B,IAAY;QACnC,OAAO,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;IAEM,oDAAoB,GAA3B,UAA4B,GAAW,EAAE,KAAU;QAC/C,OAAO,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpE,CAAC;IAEM,sDAAsB,GAA7B,UAA8B,UAAoD;QAC9E,OAAO,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;IACtE,CAAC;IAEM,qDAAqB,GAA5B,UAA6B,UAAoD;QAC7E,OAAO,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;IACrE,CAAC;IAEM,4CAAY,GAAnB,UAAoB,OAA0D;QAC1E,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IAEL,4BAAC;AAAD,CAAC,AA1FD,IA0FC;AAEQ,sDAAqB","sourcesContent":["import { interfaces } from \"../interfaces/interfaces\";\nimport { BindingInSyntax } from \"./binding_in_syntax\";\nimport { BindingOnSyntax } from \"./binding_on_syntax\";\nimport { BindingWhenSyntax } from \"./binding_when_syntax\";\n\nclass BindingInWhenOnSyntax<T> implements interfaces.BindingInSyntax<T>, interfaces.BindingWhenSyntax<T>, interfaces.BindingOnSyntax<T> {\n\n private _bindingInSyntax: interfaces.BindingInSyntax<T>;\n private _bindingWhenSyntax: interfaces.BindingWhenSyntax<T>;\n private _bindingOnSyntax: interfaces.BindingOnSyntax<T>;\n private _binding: interfaces.Binding<T>;\n\n public constructor(binding: interfaces.Binding<T>) {\n this._binding = binding;\n this._bindingWhenSyntax = new BindingWhenSyntax<T>(this._binding);\n this._bindingOnSyntax = new BindingOnSyntax<T>(this._binding);\n this._bindingInSyntax = new BindingInSyntax<T>(binding);\n }\n\n public inRequestScope(): interfaces.BindingWhenOnSyntax<T> {\n return this._bindingInSyntax.inRequestScope();\n }\n\n public inSingletonScope(): interfaces.BindingWhenOnSyntax<T> {\n return this._bindingInSyntax.inSingletonScope();\n }\n\n public inTransientScope(): interfaces.BindingWhenOnSyntax<T> {\n return this._bindingInSyntax.inTransientScope();\n }\n\n public when(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.when(constraint);\n }\n\n public whenTargetNamed(name: string): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenTargetNamed(name);\n }\n\n public whenTargetIsDefault(): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenTargetIsDefault();\n }\n\n public whenTargetTagged(tag: string, value: any): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenTargetTagged(tag, value);\n }\n\n public whenInjectedInto(parent: (Function | string)): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenInjectedInto(parent);\n }\n\n public whenParentNamed(name: string): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenParentNamed(name);\n }\n\n public whenParentTagged(tag: string, value: any): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenParentTagged(tag, value);\n }\n\n public whenAnyAncestorIs(ancestor: (Function | string)): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenAnyAncestorIs(ancestor);\n }\n\n public whenNoAncestorIs(ancestor: (Function | string)): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenNoAncestorIs(ancestor);\n }\n\n public whenAnyAncestorNamed(name: string): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenAnyAncestorNamed(name);\n }\n\n public whenAnyAncestorTagged(tag: string, value: any): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenAnyAncestorTagged(tag, value);\n }\n\n public whenNoAncestorNamed(name: string): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenNoAncestorNamed(name);\n }\n\n public whenNoAncestorTagged(tag: string, value: any): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenNoAncestorTagged(tag, value);\n }\n\n public whenAnyAncestorMatches(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenAnyAncestorMatches(constraint);\n }\n\n public whenNoAncestorMatches(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenNoAncestorMatches(constraint);\n }\n\n public onActivation(handler: (context: interfaces.Context, injectable: T) => T): interfaces.BindingWhenSyntax<T> {\n return this._bindingOnSyntax.onActivation(handler);\n }\n\n}\n\nexport { BindingInWhenOnSyntax };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"f93e867844f23461e2f01397b9040199f6e45740","contentHash":"8789953fa8e692b5e9637cecf90f577d2b1d05151bc30897fd15400d9e624910"},"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_in_syntax.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_in_syntax.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":33}},"2":{"start":{"line":4,"column":22},"end":{"line":4,"column":59}},"3":{"start":{"line":5,"column":31},"end":{"line":5,"column":66}},"4":{"start":{"line":6,"column":23},"end":{"line":23,"column":3}},"5":{"start":{"line":8,"column":8},"end":{"line":8,"column":32}},"6":{"start":{"line":10,"column":4},"end":{"line":13,"column":6}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":71}},"8":{"start":{"line":12,"column":8},"end":{"line":12,"column":79}},"9":{"start":{"line":14,"column":4},"end":{"line":17,"column":6}},"10":{"start":{"line":15,"column":8},"end":{"line":15,"column":73}},"11":{"start":{"line":16,"column":8},"end":{"line":16,"column":79}},"12":{"start":{"line":18,"column":4},"end":{"line":21,"column":6}},"13":{"start":{"line":19,"column":8},"end":{"line":19,"column":73}},"14":{"start":{"line":20,"column":8},"end":{"line":20,"column":79}},"15":{"start":{"line":22,"column":4},"end":{"line":22,"column":27}},"16":{"start":{"line":24,"column":0},"end":{"line":24,"column":42}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":23},"end":{"line":6,"column":24}},"loc":{"start":{"line":6,"column":35},"end":{"line":23,"column":1}},"line":6},"1":{"name":"BindingInSyntax","decl":{"start":{"line":7,"column":13},"end":{"line":7,"column":28}},"loc":{"start":{"line":7,"column":38},"end":{"line":9,"column":5}},"line":7},"2":{"name":"(anonymous_2)","decl":{"start":{"line":10,"column":47},"end":{"line":10,"column":48}},"loc":{"start":{"line":10,"column":59},"end":{"line":13,"column":5}},"line":10},"3":{"name":"(anonymous_3)","decl":{"start":{"line":14,"column":49},"end":{"line":14,"column":50}},"loc":{"start":{"line":14,"column":61},"end":{"line":17,"column":5}},"line":14},"4":{"name":"(anonymous_4)","decl":{"start":{"line":18,"column":49},"end":{"line":18,"column":50}},"loc":{"start":{"line":18,"column":61},"end":{"line":21,"column":5}},"line":18}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":283,"6":1,"7":3,"8":3,"9":1,"10":16,"11":16,"12":1,"13":2,"14":2,"15":1,"16":1},"f":{"0":1,"1":283,"2":3,"3":16,"4":2},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_in_syntax.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_in_syntax.ts"],"names":[],"mappings":";;;AAAA,4DAA8D;AAE9D,mEAA+D;AAE/D;IAII,yBAAmB,OAA8B;QAC7C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC5B,CAAC;IAEM,wCAAc,GAArB;QACI,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,gCAAgB,CAAC,OAAO,CAAC;QAC/C,OAAO,IAAI,4CAAmB,CAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC;IAEM,0CAAgB,GAAvB;QACI,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,gCAAgB,CAAC,SAAS,CAAC;QACjD,OAAO,IAAI,4CAAmB,CAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC;IAEM,0CAAgB,GAAvB;QACI,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,gCAAgB,CAAC,SAAS,CAAC;QACjD,OAAO,IAAI,4CAAmB,CAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC;IAEL,sBAAC;AAAD,CAAC,AAvBD,IAuBC;AAEQ,0CAAe","sourcesContent":["import { BindingScopeEnum } from \"../constants/literal_types\";\nimport { interfaces } from \"../interfaces/interfaces\";\nimport { BindingWhenOnSyntax } from \"./binding_when_on_syntax\";\n\nclass BindingInSyntax<T> implements interfaces.BindingInSyntax<T> {\n\n private _binding: interfaces.Binding<T>;\n\n public constructor(binding: interfaces.Binding<T>) {\n this._binding = binding;\n }\n\n public inRequestScope(): interfaces.BindingWhenOnSyntax<T> {\n this._binding.scope = BindingScopeEnum.Request;\n return new BindingWhenOnSyntax<T>(this._binding);\n }\n\n public inSingletonScope(): interfaces.BindingWhenOnSyntax<T> {\n this._binding.scope = BindingScopeEnum.Singleton;\n return new BindingWhenOnSyntax<T>(this._binding);\n }\n\n public inTransientScope(): interfaces.BindingWhenOnSyntax<T> {\n this._binding.scope = BindingScopeEnum.Transient;\n return new BindingWhenOnSyntax<T>(this._binding);\n }\n\n}\n\nexport { BindingInSyntax };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"88c5d0e4402bcb859a714fbcff78043e3ef00c2b","contentHash":"960f8f12b2aef0f7dbd1afb5843382a27996dc348e26ed28e7e698b77238dbe5"},"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_when_on_syntax.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_when_on_syntax.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":37}},"2":{"start":{"line":4,"column":26},"end":{"line":4,"column":56}},"3":{"start":{"line":5,"column":28},"end":{"line":5,"column":60}},"4":{"start":{"line":6,"column":27},"end":{"line":61,"column":3}},"5":{"start":{"line":8,"column":8},"end":{"line":8,"column":32}},"6":{"start":{"line":9,"column":8},"end":{"line":9,"column":93}},"7":{"start":{"line":10,"column":8},"end":{"line":10,"column":87}},"8":{"start":{"line":12,"column":4},"end":{"line":14,"column":6}},"9":{"start":{"line":13,"column":8},"end":{"line":13,"column":56}},"10":{"start":{"line":15,"column":4},"end":{"line":17,"column":6}},"11":{"start":{"line":16,"column":8},"end":{"line":16,"column":61}},"12":{"start":{"line":18,"column":4},"end":{"line":20,"column":6}},"13":{"start":{"line":19,"column":8},"end":{"line":19,"column":61}},"14":{"start":{"line":21,"column":4},"end":{"line":23,"column":6}},"15":{"start":{"line":22,"column":8},"end":{"line":22,"column":68}},"16":{"start":{"line":24,"column":4},"end":{"line":26,"column":6}},"17":{"start":{"line":25,"column":8},"end":{"line":25,"column":64}},"18":{"start":{"line":27,"column":4},"end":{"line":29,"column":6}},"19":{"start":{"line":28,"column":8},"end":{"line":28,"column":61}},"20":{"start":{"line":30,"column":4},"end":{"line":32,"column":6}},"21":{"start":{"line":31,"column":8},"end":{"line":31,"column":68}},"22":{"start":{"line":33,"column":4},"end":{"line":35,"column":6}},"23":{"start":{"line":34,"column":8},"end":{"line":34,"column":67}},"24":{"start":{"line":36,"column":4},"end":{"line":38,"column":6}},"25":{"start":{"line":37,"column":8},"end":{"line":37,"column":66}},"26":{"start":{"line":39,"column":4},"end":{"line":41,"column":6}},"27":{"start":{"line":40,"column":8},"end":{"line":40,"column":66}},"28":{"start":{"line":42,"column":4},"end":{"line":44,"column":6}},"29":{"start":{"line":43,"column":8},"end":{"line":43,"column":73}},"30":{"start":{"line":45,"column":4},"end":{"line":47,"column":6}},"31":{"start":{"line":46,"column":8},"end":{"line":46,"column":65}},"32":{"start":{"line":48,"column":4},"end":{"line":50,"column":6}},"33":{"start":{"line":49,"column":8},"end":{"line":49,"column":72}},"34":{"start":{"line":51,"column":4},"end":{"line":53,"column":6}},"35":{"start":{"line":52,"column":8},"end":{"line":52,"column":74}},"36":{"start":{"line":54,"column":4},"end":{"line":56,"column":6}},"37":{"start":{"line":55,"column":8},"end":{"line":55,"column":73}},"38":{"start":{"line":57,"column":4},"end":{"line":59,"column":6}},"39":{"start":{"line":58,"column":8},"end":{"line":58,"column":59}},"40":{"start":{"line":60,"column":4},"end":{"line":60,"column":31}},"41":{"start":{"line":62,"column":0},"end":{"line":62,"column":50}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":27},"end":{"line":6,"column":28}},"loc":{"start":{"line":6,"column":39},"end":{"line":61,"column":1}},"line":6},"1":{"name":"BindingWhenOnSyntax","decl":{"start":{"line":7,"column":13},"end":{"line":7,"column":32}},"loc":{"start":{"line":7,"column":42},"end":{"line":11,"column":5}},"line":7},"2":{"name":"(anonymous_2)","decl":{"start":{"line":12,"column":41},"end":{"line":12,"column":42}},"loc":{"start":{"line":12,"column":63},"end":{"line":14,"column":5}},"line":12},"3":{"name":"(anonymous_3)","decl":{"start":{"line":15,"column":52},"end":{"line":15,"column":53}},"loc":{"start":{"line":15,"column":68},"end":{"line":17,"column":5}},"line":15},"4":{"name":"(anonymous_4)","decl":{"start":{"line":18,"column":56},"end":{"line":18,"column":57}},"loc":{"start":{"line":18,"column":68},"end":{"line":20,"column":5}},"line":18},"5":{"name":"(anonymous_5)","decl":{"start":{"line":21,"column":53},"end":{"line":21,"column":54}},"loc":{"start":{"line":21,"column":75},"end":{"line":23,"column":5}},"line":21},"6":{"name":"(anonymous_6)","decl":{"start":{"line":24,"column":53},"end":{"line":24,"column":54}},"loc":{"start":{"line":24,"column":71},"end":{"line":26,"column":5}},"line":24},"7":{"name":"(anonymous_7)","decl":{"start":{"line":27,"column":52},"end":{"line":27,"column":53}},"loc":{"start":{"line":27,"column":68},"end":{"line":29,"column":5}},"line":27},"8":{"name":"(anonymous_8)","decl":{"start":{"line":30,"column":53},"end":{"line":30,"column":54}},"loc":{"start":{"line":30,"column":75},"end":{"line":32,"column":5}},"line":30},"9":{"name":"(anonymous_9)","decl":{"start":{"line":33,"column":54},"end":{"line":33,"column":55}},"loc":{"start":{"line":33,"column":74},"end":{"line":35,"column":5}},"line":33},"10":{"name":"(anonymous_10)","decl":{"start":{"line":36,"column":53},"end":{"line":36,"column":54}},"loc":{"start":{"line":36,"column":73},"end":{"line":38,"column":5}},"line":36},"11":{"name":"(anonymous_11)","decl":{"start":{"line":39,"column":57},"end":{"line":39,"column":58}},"loc":{"start":{"line":39,"column":73},"end":{"line":41,"column":5}},"line":39},"12":{"name":"(anonymous_12)","decl":{"start":{"line":42,"column":58},"end":{"line":42,"column":59}},"loc":{"start":{"line":42,"column":80},"end":{"line":44,"column":5}},"line":42},"13":{"name":"(anonymous_13)","decl":{"start":{"line":45,"column":56},"end":{"line":45,"column":57}},"loc":{"start":{"line":45,"column":72},"end":{"line":47,"column":5}},"line":45},"14":{"name":"(anonymous_14)","decl":{"start":{"line":48,"column":57},"end":{"line":48,"column":58}},"loc":{"start":{"line":48,"column":79},"end":{"line":50,"column":5}},"line":48},"15":{"name":"(anonymous_15)","decl":{"start":{"line":51,"column":59},"end":{"line":51,"column":60}},"loc":{"start":{"line":51,"column":81},"end":{"line":53,"column":5}},"line":51},"16":{"name":"(anonymous_16)","decl":{"start":{"line":54,"column":58},"end":{"line":54,"column":59}},"loc":{"start":{"line":54,"column":80},"end":{"line":56,"column":5}},"line":54},"17":{"name":"(anonymous_17)","decl":{"start":{"line":57,"column":49},"end":{"line":57,"column":50}},"loc":{"start":{"line":57,"column":68},"end":{"line":59,"column":5}},"line":57}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":24096,"6":24096,"7":24096,"8":1,"9":1,"10":1,"11":13,"12":1,"13":1,"14":1,"15":15,"16":1,"17":2,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":7,"40":1,"41":1},"f":{"0":1,"1":24096,"2":1,"3":13,"4":1,"5":15,"6":2,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":7},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_when_on_syntax.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_when_on_syntax.ts"],"names":[],"mappings":";;;AACA,yDAAsD;AACtD,6DAA0D;AAE1D;IAMI,6BAAmB,OAA8B;QAC7C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,kBAAkB,GAAG,IAAI,uCAAiB,CAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClE,IAAI,CAAC,gBAAgB,GAAG,IAAI,mCAAe,CAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClE,CAAC;IAEM,kCAAI,GAAX,UAAY,UAAoD;QAC5D,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpD,CAAC;IAEM,6CAAe,GAAtB,UAAuB,IAAY;QAC/B,OAAO,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAEM,iDAAmB,GAA1B;QACI,OAAO,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,CAAC;IACzD,CAAC;IAEM,8CAAgB,GAAvB,UAAwB,GAAW,EAAE,KAAU;QAC3C,OAAO,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;IAEM,8CAAgB,GAAvB,UAAwB,MAA2B;QAC/C,OAAO,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC5D,CAAC;IAEM,6CAAe,GAAtB,UAAuB,IAAY;QAC/B,OAAO,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAEM,8CAAgB,GAAvB,UAAwB,GAAW,EAAE,KAAU;QAC3C,OAAO,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;IAEM,+CAAiB,GAAxB,UAAyB,QAA6B;QAClD,OAAO,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAEM,8CAAgB,GAAvB,UAAwB,QAA6B;QACjD,OAAO,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAEM,kDAAoB,GAA3B,UAA4B,IAAY;QACpC,OAAO,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC;IAEM,mDAAqB,GAA5B,UAA6B,GAAW,EAAE,KAAU;QAChD,OAAO,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrE,CAAC;IAEM,iDAAmB,GAA1B,UAA2B,IAAY;QACnC,OAAO,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;IAEM,kDAAoB,GAA3B,UAA4B,GAAW,EAAE,KAAU;QAC/C,OAAO,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpE,CAAC;IAEM,oDAAsB,GAA7B,UAA8B,UAAoD;QAC9E,OAAO,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;IACtE,CAAC;IAEM,mDAAqB,GAA5B,UAA6B,UAAoD;QAC7E,OAAO,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;IACrE,CAAC;IAEM,0CAAY,GAAnB,UAAoB,OAA0D;QAC1E,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IAEL,0BAAC;AAAD,CAAC,AA5ED,IA4EC;AAEQ,kDAAmB","sourcesContent":["import { interfaces } from \"../interfaces/interfaces\";\nimport { BindingOnSyntax } from \"./binding_on_syntax\";\nimport { BindingWhenSyntax } from \"./binding_when_syntax\";\n\nclass BindingWhenOnSyntax<T> implements interfaces.BindingWhenSyntax<T>, interfaces.BindingOnSyntax<T> {\n\n private _bindingWhenSyntax: interfaces.BindingWhenSyntax<T>;\n private _bindingOnSyntax: interfaces.BindingOnSyntax<T>;\n private _binding: interfaces.Binding<T>;\n\n public constructor(binding: interfaces.Binding<T>) {\n this._binding = binding;\n this._bindingWhenSyntax = new BindingWhenSyntax<T>(this._binding);\n this._bindingOnSyntax = new BindingOnSyntax<T>(this._binding);\n }\n\n public when(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.when(constraint);\n }\n\n public whenTargetNamed(name: string): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenTargetNamed(name);\n }\n\n public whenTargetIsDefault(): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenTargetIsDefault();\n }\n\n public whenTargetTagged(tag: string, value: any): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenTargetTagged(tag, value);\n }\n\n public whenInjectedInto(parent: (Function | string)): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenInjectedInto(parent);\n }\n\n public whenParentNamed(name: string): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenParentNamed(name);\n }\n\n public whenParentTagged(tag: string, value: any): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenParentTagged(tag, value);\n }\n\n public whenAnyAncestorIs(ancestor: (Function | string)): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenAnyAncestorIs(ancestor);\n }\n\n public whenNoAncestorIs(ancestor: (Function | string)): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenNoAncestorIs(ancestor);\n }\n\n public whenAnyAncestorNamed(name: string): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenAnyAncestorNamed(name);\n }\n\n public whenAnyAncestorTagged(tag: string, value: any): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenAnyAncestorTagged(tag, value);\n }\n\n public whenNoAncestorNamed(name: string): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenNoAncestorNamed(name);\n }\n\n public whenNoAncestorTagged(tag: string, value: any): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenNoAncestorTagged(tag, value);\n }\n\n public whenAnyAncestorMatches(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenAnyAncestorMatches(constraint);\n }\n\n public whenNoAncestorMatches(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenNoAncestorMatches(constraint);\n }\n\n public onActivation(handler: (context: interfaces.Context, injectable: T) => T): interfaces.BindingWhenSyntax<T> {\n return this._bindingOnSyntax.onActivation(handler);\n }\n\n}\n\nexport { BindingWhenOnSyntax };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"85b951cd8e368ac50bf5b955b6750c9bd75b00f9","contentHash":"86981e41e6e3e99fd3f7d3e190eef56bb628e05d17ce873ad3c4e812bcd8861a"},"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_on_syntax.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_on_syntax.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":33}},"2":{"start":{"line":4,"column":28},"end":{"line":4,"column":60}},"3":{"start":{"line":5,"column":23},"end":{"line":14,"column":3}},"4":{"start":{"line":7,"column":8},"end":{"line":7,"column":32}},"5":{"start":{"line":9,"column":4},"end":{"line":12,"column":6}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":45}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":74}},"8":{"start":{"line":13,"column":4},"end":{"line":13,"column":27}},"9":{"start":{"line":15,"column":0},"end":{"line":15,"column":42}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":23},"end":{"line":5,"column":24}},"loc":{"start":{"line":5,"column":35},"end":{"line":14,"column":1}},"line":5},"1":{"name":"BindingOnSyntax","decl":{"start":{"line":6,"column":13},"end":{"line":6,"column":28}},"loc":{"start":{"line":6,"column":38},"end":{"line":8,"column":5}},"line":6},"2":{"name":"(anonymous_2)","decl":{"start":{"line":9,"column":45},"end":{"line":9,"column":46}},"loc":{"start":{"line":9,"column":64},"end":{"line":12,"column":5}},"line":9}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":24498,"5":1,"6":9,"7":9,"8":1,"9":1},"f":{"0":1,"1":24498,"2":9},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_on_syntax.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_on_syntax.ts"],"names":[],"mappings":";;;AACA,6DAA0D;AAE1D;IAII,yBAAmB,OAA8B;QAC7C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC5B,CAAC;IAEM,sCAAY,GAAnB,UAAoB,OAA0D;QAC1E,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,OAAO,CAAC;QACrC,OAAO,IAAI,uCAAiB,CAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IAEL,sBAAC;AAAD,CAAC,AAbD,IAaC;AAEQ,0CAAe","sourcesContent":["import { interfaces } from \"../interfaces/interfaces\";\nimport { BindingWhenSyntax } from \"./binding_when_syntax\";\n\nclass BindingOnSyntax<T> implements interfaces.BindingOnSyntax<T> {\n\n private _binding: interfaces.Binding<T>;\n\n public constructor(binding: interfaces.Binding<T>) {\n this._binding = binding;\n }\n\n public onActivation(handler: (context: interfaces.Context, injectable: T) => T): interfaces.BindingWhenSyntax<T> {\n this._binding.onActivation = handler;\n return new BindingWhenSyntax<T>(this._binding);\n }\n\n}\n\nexport { BindingOnSyntax };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"fda5bfc157bd0718c3ecdb3ae848cd763fd1c7e5","contentHash":"6eb70045a61b737de89e662c2d5567d7594a4a71b7b17f2afb304f4413346014"},"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_when_syntax.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_when_syntax.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":35}},"2":{"start":{"line":4,"column":26},"end":{"line":4,"column":56}},"3":{"start":{"line":5,"column":27},"end":{"line":5,"column":58}},"4":{"start":{"line":6,"column":25},"end":{"line":98,"column":3}},"5":{"start":{"line":8,"column":8},"end":{"line":8,"column":32}},"6":{"start":{"line":10,"column":4},"end":{"line":13,"column":6}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":46}},"8":{"start":{"line":12,"column":8},"end":{"line":12,"column":70}},"9":{"start":{"line":14,"column":4},"end":{"line":17,"column":6}},"10":{"start":{"line":15,"column":8},"end":{"line":15,"column":78}},"11":{"start":{"line":16,"column":8},"end":{"line":16,"column":70}},"12":{"start":{"line":18,"column":4},"end":{"line":26,"column":6}},"13":{"start":{"line":19,"column":8},"end":{"line":24,"column":10}},"14":{"start":{"line":20,"column":34},"end":{"line":22,"column":44}},"15":{"start":{"line":23,"column":12},"end":{"line":23,"column":35}},"16":{"start":{"line":25,"column":8},"end":{"line":25,"column":70}},"17":{"start":{"line":27,"column":4},"end":{"line":30,"column":6}},"18":{"start":{"line":28,"column":8},"end":{"line":28,"column":85}},"19":{"start":{"line":29,"column":8},"end":{"line":29,"column":70}},"20":{"start":{"line":31,"column":4},"end":{"line":36,"column":6}},"21":{"start":{"line":32,"column":8},"end":{"line":34,"column":10}},"22":{"start":{"line":33,"column":12},"end":{"line":33,"column":86}},"23":{"start":{"line":35,"column":8},"end":{"line":35,"column":70}},"24":{"start":{"line":37,"column":4},"end":{"line":42,"column":6}},"25":{"start":{"line":38,"column":8},"end":{"line":40,"column":10}},"26":{"start":{"line":39,"column":12},"end":{"line":39,"column":85}},"27":{"start":{"line":41,"column":8},"end":{"line":41,"column":70}},"28":{"start":{"line":43,"column":4},"end":{"line":48,"column":6}},"29":{"start":{"line":44,"column":8},"end":{"line":46,"column":10}},"30":{"start":{"line":45,"column":12},"end":{"line":45,"column":92}},"31":{"start":{"line":47,"column":8},"end":{"line":47,"column":70}},"32":{"start":{"line":49,"column":4},"end":{"line":54,"column":6}},"33":{"start":{"line":50,"column":8},"end":{"line":52,"column":10}},"34":{"start":{"line":51,"column":12},"end":{"line":51,"column":115}},"35":{"start":{"line":53,"column":8},"end":{"line":53,"column":70}},"36":{"start":{"line":55,"column":4},"end":{"line":60,"column":6}},"37":{"start":{"line":56,"column":8},"end":{"line":58,"column":10}},"38":{"start":{"line":57,"column":12},"end":{"line":57,"column":116}},"39":{"start":{"line":59,"column":8},"end":{"line":59,"column":70}},"40":{"start":{"line":61,"column":4},"end":{"line":66,"column":6}},"41":{"start":{"line":62,"column":8},"end":{"line":64,"column":10}},"42":{"start":{"line":63,"column":12},"end":{"line":63,"column":112}},"43":{"start":{"line":65,"column":8},"end":{"line":65,"column":70}},"44":{"start":{"line":67,"column":4},"end":{"line":72,"column":6}},"45":{"start":{"line":68,"column":8},"end":{"line":70,"column":10}},"46":{"start":{"line":69,"column":12},"end":{"line":69,"column":113}},"47":{"start":{"line":71,"column":8},"end":{"line":71,"column":70}},"48":{"start":{"line":73,"column":4},"end":{"line":78,"column":6}},"49":{"start":{"line":74,"column":8},"end":{"line":76,"column":10}},"50":{"start":{"line":75,"column":12},"end":{"line":75,"column":119}},"51":{"start":{"line":77,"column":8},"end":{"line":77,"column":70}},"52":{"start":{"line":79,"column":4},"end":{"line":84,"column":6}},"53":{"start":{"line":80,"column":8},"end":{"line":82,"column":10}},"54":{"start":{"line":81,"column":12},"end":{"line":81,"column":120}},"55":{"start":{"line":83,"column":8},"end":{"line":83,"column":70}},"56":{"start":{"line":85,"column":4},"end":{"line":90,"column":6}},"57":{"start":{"line":86,"column":8},"end":{"line":88,"column":10}},"58":{"start":{"line":87,"column":12},"end":{"line":87,"column":80}},"59":{"start":{"line":89,"column":8},"end":{"line":89,"column":70}},"60":{"start":{"line":91,"column":4},"end":{"line":96,"column":6}},"61":{"start":{"line":92,"column":8},"end":{"line":94,"column":10}},"62":{"start":{"line":93,"column":12},"end":{"line":93,"column":81}},"63":{"start":{"line":95,"column":8},"end":{"line":95,"column":70}},"64":{"start":{"line":97,"column":4},"end":{"line":97,"column":29}},"65":{"start":{"line":99,"column":0},"end":{"line":99,"column":46}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":25},"end":{"line":6,"column":26}},"loc":{"start":{"line":6,"column":37},"end":{"line":98,"column":1}},"line":6},"1":{"name":"BindingWhenSyntax","decl":{"start":{"line":7,"column":13},"end":{"line":7,"column":30}},"loc":{"start":{"line":7,"column":40},"end":{"line":9,"column":5}},"line":7},"2":{"name":"(anonymous_2)","decl":{"start":{"line":10,"column":39},"end":{"line":10,"column":40}},"loc":{"start":{"line":10,"column":61},"end":{"line":13,"column":5}},"line":10},"3":{"name":"(anonymous_3)","decl":{"start":{"line":14,"column":50},"end":{"line":14,"column":51}},"loc":{"start":{"line":14,"column":66},"end":{"line":17,"column":5}},"line":14},"4":{"name":"(anonymous_4)","decl":{"start":{"line":18,"column":54},"end":{"line":18,"column":55}},"loc":{"start":{"line":18,"column":66},"end":{"line":26,"column":5}},"line":18},"5":{"name":"(anonymous_5)","decl":{"start":{"line":19,"column":35},"end":{"line":19,"column":36}},"loc":{"start":{"line":19,"column":54},"end":{"line":24,"column":9}},"line":19},"6":{"name":"(anonymous_6)","decl":{"start":{"line":27,"column":51},"end":{"line":27,"column":52}},"loc":{"start":{"line":27,"column":73},"end":{"line":30,"column":5}},"line":27},"7":{"name":"(anonymous_7)","decl":{"start":{"line":31,"column":51},"end":{"line":31,"column":52}},"loc":{"start":{"line":31,"column":69},"end":{"line":36,"column":5}},"line":31},"8":{"name":"(anonymous_8)","decl":{"start":{"line":32,"column":35},"end":{"line":32,"column":36}},"loc":{"start":{"line":32,"column":54},"end":{"line":34,"column":9}},"line":32},"9":{"name":"(anonymous_9)","decl":{"start":{"line":37,"column":50},"end":{"line":37,"column":51}},"loc":{"start":{"line":37,"column":66},"end":{"line":42,"column":5}},"line":37},"10":{"name":"(anonymous_10)","decl":{"start":{"line":38,"column":35},"end":{"line":38,"column":36}},"loc":{"start":{"line":38,"column":54},"end":{"line":40,"column":9}},"line":38},"11":{"name":"(anonymous_11)","decl":{"start":{"line":43,"column":51},"end":{"line":43,"column":52}},"loc":{"start":{"line":43,"column":73},"end":{"line":48,"column":5}},"line":43},"12":{"name":"(anonymous_12)","decl":{"start":{"line":44,"column":35},"end":{"line":44,"column":36}},"loc":{"start":{"line":44,"column":54},"end":{"line":46,"column":9}},"line":44},"13":{"name":"(anonymous_13)","decl":{"start":{"line":49,"column":52},"end":{"line":49,"column":53}},"loc":{"start":{"line":49,"column":72},"end":{"line":54,"column":5}},"line":49},"14":{"name":"(anonymous_14)","decl":{"start":{"line":50,"column":35},"end":{"line":50,"column":36}},"loc":{"start":{"line":50,"column":54},"end":{"line":52,"column":9}},"line":50},"15":{"name":"(anonymous_15)","decl":{"start":{"line":55,"column":51},"end":{"line":55,"column":52}},"loc":{"start":{"line":55,"column":71},"end":{"line":60,"column":5}},"line":55},"16":{"name":"(anonymous_16)","decl":{"start":{"line":56,"column":35},"end":{"line":56,"column":36}},"loc":{"start":{"line":56,"column":54},"end":{"line":58,"column":9}},"line":56},"17":{"name":"(anonymous_17)","decl":{"start":{"line":61,"column":55},"end":{"line":61,"column":56}},"loc":{"start":{"line":61,"column":71},"end":{"line":66,"column":5}},"line":61},"18":{"name":"(anonymous_18)","decl":{"start":{"line":62,"column":35},"end":{"line":62,"column":36}},"loc":{"start":{"line":62,"column":54},"end":{"line":64,"column":9}},"line":62},"19":{"name":"(anonymous_19)","decl":{"start":{"line":67,"column":54},"end":{"line":67,"column":55}},"loc":{"start":{"line":67,"column":70},"end":{"line":72,"column":5}},"line":67},"20":{"name":"(anonymous_20)","decl":{"start":{"line":68,"column":35},"end":{"line":68,"column":36}},"loc":{"start":{"line":68,"column":54},"end":{"line":70,"column":9}},"line":68},"21":{"name":"(anonymous_21)","decl":{"start":{"line":73,"column":56},"end":{"line":73,"column":57}},"loc":{"start":{"line":73,"column":78},"end":{"line":78,"column":5}},"line":73},"22":{"name":"(anonymous_22)","decl":{"start":{"line":74,"column":35},"end":{"line":74,"column":36}},"loc":{"start":{"line":74,"column":54},"end":{"line":76,"column":9}},"line":74},"23":{"name":"(anonymous_23)","decl":{"start":{"line":79,"column":55},"end":{"line":79,"column":56}},"loc":{"start":{"line":79,"column":77},"end":{"line":84,"column":5}},"line":79},"24":{"name":"(anonymous_24)","decl":{"start":{"line":80,"column":35},"end":{"line":80,"column":36}},"loc":{"start":{"line":80,"column":54},"end":{"line":82,"column":9}},"line":80},"25":{"name":"(anonymous_25)","decl":{"start":{"line":85,"column":57},"end":{"line":85,"column":58}},"loc":{"start":{"line":85,"column":79},"end":{"line":90,"column":5}},"line":85},"26":{"name":"(anonymous_26)","decl":{"start":{"line":86,"column":35},"end":{"line":86,"column":36}},"loc":{"start":{"line":86,"column":54},"end":{"line":88,"column":9}},"line":86},"27":{"name":"(anonymous_27)","decl":{"start":{"line":91,"column":56},"end":{"line":91,"column":57}},"loc":{"start":{"line":91,"column":78},"end":{"line":96,"column":5}},"line":91},"28":{"name":"(anonymous_28)","decl":{"start":{"line":92,"column":35},"end":{"line":92,"column":36}},"loc":{"start":{"line":92,"column":54},"end":{"line":94,"column":9}},"line":92}},"branchMap":{"0":{"loc":{"start":{"line":20,"column":34},"end":{"line":22,"column":44}},"type":"binary-expr","locations":[{"start":{"line":20,"column":35},"end":{"line":20,"column":58}},{"start":{"line":21,"column":17},"end":{"line":21,"column":42}},{"start":{"line":22,"column":17},"end":{"line":22,"column":43}}],"line":20}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":24398,"6":1,"7":3,"8":3,"9":1,"10":35,"11":35,"12":1,"13":3,"14":6,"15":6,"16":3,"17":1,"18":27,"19":27,"20":1,"21":11,"22":25,"23":11,"24":1,"25":4,"26":4,"27":4,"28":1,"29":4,"30":4,"31":4,"32":1,"33":4,"34":8,"35":4,"36":1,"37":4,"38":8,"39":4,"40":1,"41":4,"42":8,"43":4,"44":1,"45":4,"46":8,"47":4,"48":1,"49":4,"50":8,"51":4,"52":1,"53":4,"54":8,"55":4,"56":1,"57":4,"58":8,"59":4,"60":1,"61":4,"62":8,"63":4,"64":1,"65":1},"f":{"0":1,"1":24398,"2":3,"3":35,"4":3,"5":6,"6":27,"7":11,"8":25,"9":4,"10":4,"11":4,"12":4,"13":4,"14":8,"15":4,"16":8,"17":4,"18":8,"19":4,"20":8,"21":4,"22":8,"23":4,"24":8,"25":4,"26":8,"27":4,"28":8},"b":{"0":[6,6,3]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_when_syntax.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_when_syntax.ts"],"names":[],"mappings":"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","sourcesContent":["import { interfaces } from \"../interfaces/interfaces\";\nimport { BindingOnSyntax } from \"./binding_on_syntax\";\nimport { namedConstraint, taggedConstraint, traverseAncerstors, typeConstraint } from \"./constraint_helpers\";\n\nclass BindingWhenSyntax<T> implements interfaces.BindingWhenSyntax<T> {\n\n private _binding: interfaces.Binding<T>;\n\n public constructor(binding: interfaces.Binding<T>) {\n this._binding = binding;\n }\n\n public when(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T> {\n this._binding.constraint = constraint;\n return new BindingOnSyntax<T>(this._binding);\n }\n\n public whenTargetNamed(name: string | number | symbol): interfaces.BindingOnSyntax<T> {\n this._binding.constraint = namedConstraint(name);\n return new BindingOnSyntax<T>(this._binding);\n }\n\n public whenTargetIsDefault(): interfaces.BindingOnSyntax<T> {\n\n this._binding.constraint = (request: interfaces.Request) => {\n\n const targetIsDefault = (request.target !== null) &&\n (!request.target.isNamed()) &&\n (!request.target.isTagged());\n\n return targetIsDefault;\n };\n\n return new BindingOnSyntax<T>(this._binding);\n }\n\n public whenTargetTagged(tag: string | number | symbol, value: any): interfaces.BindingOnSyntax<T> {\n this._binding.constraint = taggedConstraint(tag)(value);\n return new BindingOnSyntax<T>(this._binding);\n }\n\n public whenInjectedInto(parent: (Function | string)): interfaces.BindingOnSyntax<T> {\n this._binding.constraint = (request: interfaces.Request) =>\n typeConstraint(parent)(request.parentRequest);\n return new BindingOnSyntax<T>(this._binding);\n }\n\n public whenParentNamed(name: string | number | symbol): interfaces.BindingOnSyntax<T> {\n this._binding.constraint = (request: interfaces.Request) =>\n namedConstraint(name)(request.parentRequest);\n return new BindingOnSyntax<T>(this._binding);\n }\n\n public whenParentTagged(tag: string | number | symbol, value: any): interfaces.BindingOnSyntax<T> {\n this._binding.constraint = (request: interfaces.Request) =>\n taggedConstraint(tag)(value)(request.parentRequest);\n return new BindingOnSyntax<T>(this._binding);\n }\n\n public whenAnyAncestorIs(ancestor: (Function | string)): interfaces.BindingOnSyntax<T> {\n this._binding.constraint = (request: interfaces.Request) =>\n traverseAncerstors(request, typeConstraint(ancestor));\n return new BindingOnSyntax<T>(this._binding);\n }\n\n public whenNoAncestorIs(ancestor: (Function | string)): interfaces.BindingOnSyntax<T> {\n this._binding.constraint = (request: interfaces.Request) =>\n !traverseAncerstors(request, typeConstraint(ancestor));\n return new BindingOnSyntax<T>(this._binding);\n }\n\n public whenAnyAncestorNamed(name: string | number | symbol): interfaces.BindingOnSyntax<T> {\n\n this._binding.constraint = (request: interfaces.Request) =>\n traverseAncerstors(request, namedConstraint(name));\n\n return new BindingOnSyntax<T>(this._binding);\n }\n\n public whenNoAncestorNamed(name: string | number | symbol): interfaces.BindingOnSyntax<T> {\n\n this._binding.constraint = (request: interfaces.Request) =>\n !traverseAncerstors(request, namedConstraint(name));\n\n return new BindingOnSyntax<T>(this._binding);\n }\n\n public whenAnyAncestorTagged(tag: string | number | symbol, value: any): interfaces.BindingOnSyntax<T> {\n\n this._binding.constraint = (request: interfaces.Request) =>\n traverseAncerstors(request, taggedConstraint(tag)(value));\n\n return new BindingOnSyntax<T>(this._binding);\n }\n\n public whenNoAncestorTagged(tag: string | number | symbol, value: any): interfaces.BindingOnSyntax<T> {\n\n this._binding.constraint = (request: interfaces.Request) =>\n !traverseAncerstors(request, taggedConstraint(tag)(value));\n\n return new BindingOnSyntax<T>(this._binding);\n }\n\n public whenAnyAncestorMatches(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T> {\n\n this._binding.constraint = (request: interfaces.Request) =>\n traverseAncerstors(request, constraint);\n\n return new BindingOnSyntax<T>(this._binding);\n }\n\n public whenNoAncestorMatches(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T> {\n\n this._binding.constraint = (request: interfaces.Request) =>\n !traverseAncerstors(request, constraint);\n\n return new BindingOnSyntax<T>(this._binding);\n }\n\n}\n\nexport { BindingWhenSyntax };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"bc8b57189480c5f6ed1d4e893a93c179d8dbab07","contentHash":"9006a44f42b281069e828faa7f43f52e795a3606924aeeca903555f9621eb340"},"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/constraint_helpers.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/constraint_helpers.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":114}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":56}},"3":{"start":{"line":5,"column":17},"end":{"line":5,"column":48}},"4":{"start":{"line":6,"column":25},"end":{"line":14,"column":1}},"5":{"start":{"line":7,"column":17},"end":{"line":7,"column":38}},"6":{"start":{"line":8,"column":4},"end":{"line":13,"column":5}},"7":{"start":{"line":9,"column":8},"end":{"line":9,"column":82}},"8":{"start":{"line":12,"column":8},"end":{"line":12,"column":21}},"9":{"start":{"line":15,"column":0},"end":{"line":15,"column":48}},"10":{"start":{"line":16,"column":23},"end":{"line":22,"column":4}},"11":{"start":{"line":16,"column":40},"end":{"line":22,"column":2}},"12":{"start":{"line":17,"column":21},"end":{"line":19,"column":5}},"13":{"start":{"line":18,"column":8},"end":{"line":18,"column":100}},"14":{"start":{"line":20,"column":4},"end":{"line":20,"column":62}},"15":{"start":{"line":21,"column":4},"end":{"line":21,"column":22}},"16":{"start":{"line":23,"column":0},"end":{"line":23,"column":44}},"17":{"start":{"line":24,"column":22},"end":{"line":24,"column":62}},"18":{"start":{"line":25,"column":0},"end":{"line":25,"column":42}},"19":{"start":{"line":26,"column":21},"end":{"line":40,"column":4}},"20":{"start":{"line":26,"column":39},"end":{"line":40,"column":2}},"21":{"start":{"line":27,"column":18},"end":{"line":27,"column":22}},"22":{"start":{"line":28,"column":4},"end":{"line":38,"column":5}},"23":{"start":{"line":29,"column":8},"end":{"line":29,"column":38}},"24":{"start":{"line":30,"column":8},"end":{"line":37,"column":9}},"25":{"start":{"line":31,"column":36},"end":{"line":31,"column":61}},"26":{"start":{"line":32,"column":12},"end":{"line":32,"column":46}},"27":{"start":{"line":35,"column":30},"end":{"line":35,"column":68}},"28":{"start":{"line":36,"column":12},"end":{"line":36,"column":40}},"29":{"start":{"line":39,"column":4},"end":{"line":39,"column":17}},"30":{"start":{"line":41,"column":0},"end":{"line":41,"column":40}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":25},"end":{"line":6,"column":26}},"loc":{"start":{"line":6,"column":56},"end":{"line":14,"column":1}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":16,"column":23},"end":{"line":16,"column":24}},"loc":{"start":{"line":16,"column":38},"end":{"line":22,"column":4}},"line":16},"2":{"name":"(anonymous_2)","decl":{"start":{"line":16,"column":47},"end":{"line":16,"column":48}},"loc":{"start":{"line":16,"column":64},"end":{"line":22,"column":1}},"line":16},"3":{"name":"(anonymous_3)","decl":{"start":{"line":17,"column":21},"end":{"line":17,"column":22}},"loc":{"start":{"line":17,"column":40},"end":{"line":19,"column":5}},"line":17},"4":{"name":"(anonymous_4)","decl":{"start":{"line":26,"column":21},"end":{"line":26,"column":22}},"loc":{"start":{"line":26,"column":37},"end":{"line":40,"column":4}},"line":26},"5":{"name":"(anonymous_5)","decl":{"start":{"line":26,"column":46},"end":{"line":26,"column":47}},"loc":{"start":{"line":26,"column":65},"end":{"line":40,"column":1}},"line":26}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":4},"end":{"line":13,"column":5}},"type":"if","locations":[{"start":{"line":8,"column":4},"end":{"line":13,"column":5}},{"start":{"line":8,"column":4},"end":{"line":13,"column":5}}],"line":8},"1":{"loc":{"start":{"line":9,"column":15},"end":{"line":9,"column":81}},"type":"cond-expr","locations":[{"start":{"line":9,"column":36},"end":{"line":9,"column":40}},{"start":{"line":9,"column":43},"end":{"line":9,"column":81}}],"line":9},"2":{"loc":{"start":{"line":18,"column":15},"end":{"line":18,"column":99}},"type":"binary-expr","locations":[{"start":{"line":18,"column":15},"end":{"line":18,"column":31}},{"start":{"line":18,"column":35},"end":{"line":18,"column":58}},{"start":{"line":18,"column":62},"end":{"line":18,"column":99}}],"line":18},"3":{"loc":{"start":{"line":28,"column":4},"end":{"line":38,"column":5}},"type":"if","locations":[{"start":{"line":28,"column":4},"end":{"line":38,"column":5}},{"start":{"line":28,"column":4},"end":{"line":38,"column":5}}],"line":28},"4":{"loc":{"start":{"line":30,"column":8},"end":{"line":37,"column":9}},"type":"if","locations":[{"start":{"line":30,"column":8},"end":{"line":37,"column":9}},{"start":{"line":30,"column":8},"end":{"line":37,"column":9}}],"line":30}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":104,"6":104,"7":64,"8":40,"9":1,"10":1,"11":48,"12":102,"13":172,"14":102,"15":102,"16":1,"17":1,"18":1,"19":1,"20":50,"21":58,"22":58,"23":57,"24":57,"25":8,"26":8,"27":49,"28":49,"29":1,"30":1},"f":{"0":104,"1":48,"2":102,"3":172,"4":50,"5":58},"b":{"0":[64,40],"1":[24,40],"2":[172,172,172],"3":[57,1],"4":[8,49]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/constraint_helpers.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/constraint_helpers.ts"],"names":[],"mappings":";;;AAAA,yDAA2D;AAE3D,iDAAgD;AAEhD,IAAM,kBAAkB,GAAG,UACvB,OAA2B,EAC3B,UAAyC;IAGzC,IAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IACrC,IAAI,MAAM,KAAK,IAAI,EAAE;QACjB,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;KAC7E;SAAM;QACH,OAAO,KAAK,CAAC;KAChB;AACL,CAAC,CAAC;AAoCO,gDAAkB;AAhC3B,IAAM,gBAAgB,GAAG,UAAC,GAA6B,IAAK,OAAA,UAAC,KAAU;IAEnE,IAAM,UAAU,GAAmC,UAAC,OAAkC;QAClF,OAAA,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;IAApF,CAAoF,CAAC;IAEzF,UAAU,CAAC,QAAQ,GAAG,IAAI,mBAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAE/C,OAAO,UAAU,CAAC;AACtB,CAAC,EAR2D,CAQ3D,CAAC;AAwB2B,4CAAgB;AAtB7C,IAAM,eAAe,GAAG,gBAAgB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;AAsBlB,0CAAe;AApB9D,IAAM,cAAc,GAAG,UAAC,IAAyB,IAAK,OAAA,UAAC,OAAkC;IAIrF,IAAI,OAAO,GAAmC,IAAI,CAAC;IAEnD,IAAI,OAAO,KAAK,IAAI,EAAE;QAClB,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC1B,IAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;YACpD,OAAO,iBAAiB,KAAK,IAAI,CAAC;SACrC;aAAM;YACH,IAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;YAC3D,OAAO,IAAI,KAAK,WAAW,CAAC;SAC/B;KACJ;IAED,OAAO,KAAK,CAAC;AACjB,CAAC,EAlBqD,CAkBrD,CAAC;AAE8D,wCAAc","sourcesContent":["import * as METADATA_KEY from \"../constants/metadata_keys\";\nimport { interfaces } from \"../interfaces/interfaces\";\nimport { Metadata } from \"../planning/metadata\";\n\nconst traverseAncerstors = (\n request: interfaces.Request,\n constraint: interfaces.ConstraintFunction\n): boolean => {\n\n const parent = request.parentRequest;\n if (parent !== null) {\n return constraint(parent) ? true : traverseAncerstors(parent, constraint);\n } else {\n return false;\n }\n};\n\n// This helpers use currying to help you to generate constraints\n\nconst taggedConstraint = (key: string | number | symbol) => (value: any) => {\n\n const constraint: interfaces.ConstraintFunction = (request: interfaces.Request | null) =>\n request !== null && request.target !== null && request.target.matchesTag(key)(value);\n\n constraint.metaData = new Metadata(key, value);\n\n return constraint;\n};\n\nconst namedConstraint = taggedConstraint(METADATA_KEY.NAMED_TAG);\n\nconst typeConstraint = (type: (Function | string)) => (request: interfaces.Request | null) => {\n\n // Using index 0 because constraints are applied\n // to one binding at a time (see Planner class)\n let binding: interfaces.Binding<any> | null = null;\n\n if (request !== null) {\n binding = request.bindings[0];\n if (typeof type === \"string\") {\n const serviceIdentifier = binding.serviceIdentifier;\n return serviceIdentifier === type;\n } else {\n const constructor = request.bindings[0].implementationType;\n return type === constructor;\n }\n }\n\n return false;\n};\n\nexport { traverseAncerstors, taggedConstraint, namedConstraint, typeConstraint };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"50cc1fc5786ba2543c51cfa0e1bf1d20d109777e","contentHash":"cfcf264b7af62ea5bfef8099e8c0f425cfc1b7a6d5f5741929e67cea0098c46e"},"/Users/dan/jsProjects/inversify/InversifyJS/src/container/container_snapshot.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/container/container_snapshot.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":35}},"2":{"start":{"line":4,"column":25},"end":{"line":14,"column":3}},"3":{"start":{"line":7,"column":4},"end":{"line":12,"column":6}},"4":{"start":{"line":8,"column":23},"end":{"line":8,"column":46}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":37}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":41}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":24}},"8":{"start":{"line":13,"column":4},"end":{"line":13,"column":29}},"9":{"start":{"line":15,"column":0},"end":{"line":15,"column":46}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":25},"end":{"line":4,"column":26}},"loc":{"start":{"line":4,"column":37},"end":{"line":14,"column":1}},"line":4},"1":{"name":"ContainerSnapshot","decl":{"start":{"line":5,"column":13},"end":{"line":5,"column":30}},"loc":{"start":{"line":5,"column":33},"end":{"line":6,"column":5}},"line":5},"2":{"name":"(anonymous_2)","decl":{"start":{"line":7,"column":27},"end":{"line":7,"column":28}},"loc":{"start":{"line":7,"column":59},"end":{"line":12,"column":5}},"line":7}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":3,"5":3,"6":3,"7":3,"8":1,"9":1},"f":{"0":1,"1":3,"2":3},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/container/container_snapshot.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/container/container_snapshot.ts"],"names":[],"mappings":";;;AAEA;IAAA;IAYA,CAAC;IAPiB,oBAAE,GAAhB,UAAiB,QAAoD,EAAE,UAAkC;QACrG,IAAM,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACzC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC7B,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;QACjC,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEL,wBAAC;AAAD,CAAC,AAZD,IAYC;AAEQ,8CAAiB","sourcesContent":["import { interfaces } from \"../interfaces/interfaces\";\n\nclass ContainerSnapshot implements interfaces.ContainerSnapshot {\n\n public bindings: interfaces.Lookup<interfaces.Binding<any>>;\n public middleware: interfaces.Next | null;\n\n public static of(bindings: interfaces.Lookup<interfaces.Binding<any>>, middleware: interfaces.Next | null) {\n const snapshot = new ContainerSnapshot();\n snapshot.bindings = bindings;\n snapshot.middleware = middleware;\n return snapshot;\n }\n\n}\n\nexport { ContainerSnapshot };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"f6768ad8c13dd3d879c32ed5943b8e56354ad196","contentHash":"00bb8b15b7e772caf2c9e43dddba078bed594ee68b77f1a47474766cfafff618"},"/Users/dan/jsProjects/inversify/InversifyJS/src/container/lookup.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/container/lookup.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":24}},"2":{"start":{"line":4,"column":17},"end":{"line":4,"column":51}},"3":{"start":{"line":5,"column":14},"end":{"line":79,"column":3}},"4":{"start":{"line":7,"column":8},"end":{"line":7,"column":30}},"5":{"start":{"line":9,"column":4},"end":{"line":11,"column":6}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":25}},"7":{"start":{"line":12,"column":4},"end":{"line":27,"column":6}},"8":{"start":{"line":13,"column":8},"end":{"line":15,"column":9}},"9":{"start":{"line":14,"column":12},"end":{"line":14,"column":54}},"10":{"start":{"line":16,"column":8},"end":{"line":18,"column":9}},"11":{"start":{"line":17,"column":12},"end":{"line":17,"column":54}},"12":{"start":{"line":19,"column":20},"end":{"line":19,"column":52}},"13":{"start":{"line":20,"column":8},"end":{"line":26,"column":9}},"14":{"start":{"line":21,"column":12},"end":{"line":21,"column":30}},"15":{"start":{"line":22,"column":12},"end":{"line":22,"column":52}},"16":{"start":{"line":25,"column":12},"end":{"line":25,"column":54}},"17":{"start":{"line":28,"column":4},"end":{"line":39,"column":6}},"18":{"start":{"line":29,"column":8},"end":{"line":31,"column":9}},"19":{"start":{"line":30,"column":12},"end":{"line":30,"column":54}},"20":{"start":{"line":32,"column":20},"end":{"line":32,"column":52}},"21":{"start":{"line":33,"column":8},"end":{"line":38,"column":9}},"22":{"start":{"line":34,"column":12},"end":{"line":34,"column":25}},"23":{"start":{"line":37,"column":12},"end":{"line":37,"column":54}},"24":{"start":{"line":40,"column":4},"end":{"line":47,"column":6}},"25":{"start":{"line":41,"column":8},"end":{"line":43,"column":9}},"26":{"start":{"line":42,"column":12},"end":{"line":42,"column":54}},"27":{"start":{"line":44,"column":8},"end":{"line":46,"column":9}},"28":{"start":{"line":45,"column":12},"end":{"line":45,"column":54}},"29":{"start":{"line":48,"column":4},"end":{"line":59,"column":6}},"30":{"start":{"line":49,"column":20},"end":{"line":49,"column":24}},"31":{"start":{"line":50,"column":8},"end":{"line":58,"column":11}},"32":{"start":{"line":51,"column":33},"end":{"line":51,"column":95}},"33":{"start":{"line":51,"column":67},"end":{"line":51,"column":92}},"34":{"start":{"line":52,"column":12},"end":{"line":57,"column":13}},"35":{"start":{"line":53,"column":16},"end":{"line":53,"column":52}},"36":{"start":{"line":56,"column":16},"end":{"line":56,"column":39}},"37":{"start":{"line":60,"column":4},"end":{"line":65,"column":6}},"38":{"start":{"line":61,"column":8},"end":{"line":63,"column":9}},"39":{"start":{"line":62,"column":12},"end":{"line":62,"column":54}},"40":{"start":{"line":64,"column":8},"end":{"line":64,"column":48}},"41":{"start":{"line":66,"column":4},"end":{"line":72,"column":6}},"42":{"start":{"line":67,"column":19},"end":{"line":67,"column":31}},"43":{"start":{"line":68,"column":8},"end":{"line":70,"column":11}},"44":{"start":{"line":69,"column":12},"end":{"line":69,"column":77}},"45":{"start":{"line":69,"column":41},"end":{"line":69,"column":73}},"46":{"start":{"line":71,"column":8},"end":{"line":71,"column":20}},"47":{"start":{"line":73,"column":4},"end":{"line":77,"column":6}},"48":{"start":{"line":74,"column":8},"end":{"line":76,"column":11}},"49":{"start":{"line":75,"column":12},"end":{"line":75,"column":29}},"50":{"start":{"line":78,"column":4},"end":{"line":78,"column":18}},"51":{"start":{"line":80,"column":0},"end":{"line":80,"column":24}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":14},"end":{"line":5,"column":15}},"loc":{"start":{"line":5,"column":26},"end":{"line":79,"column":1}},"line":5},"1":{"name":"Lookup","decl":{"start":{"line":6,"column":13},"end":{"line":6,"column":19}},"loc":{"start":{"line":6,"column":22},"end":{"line":8,"column":5}},"line":6},"2":{"name":"(anonymous_2)","decl":{"start":{"line":9,"column":30},"end":{"line":9,"column":31}},"loc":{"start":{"line":9,"column":42},"end":{"line":11,"column":5}},"line":9},"3":{"name":"(anonymous_3)","decl":{"start":{"line":12,"column":27},"end":{"line":12,"column":28}},"loc":{"start":{"line":12,"column":63},"end":{"line":27,"column":5}},"line":12},"4":{"name":"(anonymous_4)","decl":{"start":{"line":28,"column":27},"end":{"line":28,"column":28}},"loc":{"start":{"line":28,"column":56},"end":{"line":39,"column":5}},"line":28},"5":{"name":"(anonymous_5)","decl":{"start":{"line":40,"column":30},"end":{"line":40,"column":31}},"loc":{"start":{"line":40,"column":59},"end":{"line":47,"column":5}},"line":40},"6":{"name":"(anonymous_6)","decl":{"start":{"line":48,"column":41},"end":{"line":48,"column":42}},"loc":{"start":{"line":48,"column":62},"end":{"line":59,"column":5}},"line":48},"7":{"name":"(anonymous_7)","decl":{"start":{"line":50,"column":26},"end":{"line":50,"column":27}},"loc":{"start":{"line":50,"column":50},"end":{"line":58,"column":9}},"line":50},"8":{"name":"(anonymous_8)","decl":{"start":{"line":51,"column":48},"end":{"line":51,"column":49}},"loc":{"start":{"line":51,"column":65},"end":{"line":51,"column":94}},"line":51},"9":{"name":"(anonymous_9)","decl":{"start":{"line":60,"column":30},"end":{"line":60,"column":31}},"loc":{"start":{"line":60,"column":59},"end":{"line":65,"column":5}},"line":60},"10":{"name":"(anonymous_10)","decl":{"start":{"line":66,"column":29},"end":{"line":66,"column":30}},"loc":{"start":{"line":66,"column":41},"end":{"line":72,"column":5}},"line":66},"11":{"name":"(anonymous_11)","decl":{"start":{"line":68,"column":26},"end":{"line":68,"column":27}},"loc":{"start":{"line":68,"column":48},"end":{"line":70,"column":9}},"line":68},"12":{"name":"(anonymous_12)","decl":{"start":{"line":69,"column":26},"end":{"line":69,"column":27}},"loc":{"start":{"line":69,"column":39},"end":{"line":69,"column":75}},"line":69},"13":{"name":"(anonymous_13)","decl":{"start":{"line":73,"column":32},"end":{"line":73,"column":33}},"loc":{"start":{"line":73,"column":48},"end":{"line":77,"column":5}},"line":73},"14":{"name":"(anonymous_14)","decl":{"start":{"line":74,"column":26},"end":{"line":74,"column":27}},"loc":{"start":{"line":74,"column":48},"end":{"line":76,"column":9}},"line":74}},"branchMap":{"0":{"loc":{"start":{"line":13,"column":8},"end":{"line":15,"column":9}},"type":"if","locations":[{"start":{"line":13,"column":8},"end":{"line":15,"column":9}},{"start":{"line":13,"column":8},"end":{"line":15,"column":9}}],"line":13},"1":{"loc":{"start":{"line":13,"column":12},"end":{"line":13,"column":73}},"type":"binary-expr","locations":[{"start":{"line":13,"column":12},"end":{"line":13,"column":38}},{"start":{"line":13,"column":42},"end":{"line":13,"column":73}}],"line":13},"2":{"loc":{"start":{"line":16,"column":8},"end":{"line":18,"column":9}},"type":"if","locations":[{"start":{"line":16,"column":8},"end":{"line":18,"column":9}},{"start":{"line":16,"column":8},"end":{"line":18,"column":9}}],"line":16},"3":{"loc":{"start":{"line":16,"column":12},"end":{"line":16,"column":49}},"type":"binary-expr","locations":[{"start":{"line":16,"column":12},"end":{"line":16,"column":26}},{"start":{"line":16,"column":30},"end":{"line":16,"column":49}}],"line":16},"4":{"loc":{"start":{"line":20,"column":8},"end":{"line":26,"column":9}},"type":"if","locations":[{"start":{"line":20,"column":8},"end":{"line":26,"column":9}},{"start":{"line":20,"column":8},"end":{"line":26,"column":9}}],"line":20},"5":{"loc":{"start":{"line":29,"column":8},"end":{"line":31,"column":9}},"type":"if","locations":[{"start":{"line":29,"column":8},"end":{"line":31,"column":9}},{"start":{"line":29,"column":8},"end":{"line":31,"column":9}}],"line":29},"6":{"loc":{"start":{"line":29,"column":12},"end":{"line":29,"column":73}},"type":"binary-expr","locations":[{"start":{"line":29,"column":12},"end":{"line":29,"column":38}},{"start":{"line":29,"column":42},"end":{"line":29,"column":73}}],"line":29},"7":{"loc":{"start":{"line":33,"column":8},"end":{"line":38,"column":9}},"type":"if","locations":[{"start":{"line":33,"column":8},"end":{"line":38,"column":9}},{"start":{"line":33,"column":8},"end":{"line":38,"column":9}}],"line":33},"8":{"loc":{"start":{"line":41,"column":8},"end":{"line":43,"column":9}},"type":"if","locations":[{"start":{"line":41,"column":8},"end":{"line":43,"column":9}},{"start":{"line":41,"column":8},"end":{"line":43,"column":9}}],"line":41},"9":{"loc":{"start":{"line":41,"column":12},"end":{"line":41,"column":73}},"type":"binary-expr","locations":[{"start":{"line":41,"column":12},"end":{"line":41,"column":38}},{"start":{"line":41,"column":42},"end":{"line":41,"column":73}}],"line":41},"10":{"loc":{"start":{"line":44,"column":8},"end":{"line":46,"column":9}},"type":"if","locations":[{"start":{"line":44,"column":8},"end":{"line":46,"column":9}},{"start":{"line":44,"column":8},"end":{"line":46,"column":9}}],"line":44},"11":{"loc":{"start":{"line":52,"column":12},"end":{"line":57,"column":13}},"type":"if","locations":[{"start":{"line":52,"column":12},"end":{"line":57,"column":13}},{"start":{"line":52,"column":12},"end":{"line":57,"column":13}}],"line":52},"12":{"loc":{"start":{"line":61,"column":8},"end":{"line":63,"column":9}},"type":"if","locations":[{"start":{"line":61,"column":8},"end":{"line":63,"column":9}},{"start":{"line":61,"column":8},"end":{"line":63,"column":9}}],"line":61},"13":{"loc":{"start":{"line":61,"column":12},"end":{"line":61,"column":73}},"type":"binary-expr","locations":[{"start":{"line":61,"column":12},"end":{"line":61,"column":38}},{"start":{"line":61,"column":42},"end":{"line":61,"column":73}}],"line":61}},"s":{"0":1,"1":1,"2":1,"3":1,"4":209,"5":1,"6":10,"7":1,"8":24376,"9":1,"10":24375,"11":1,"12":24374,"13":24374,"14":54,"15":54,"16":24320,"17":1,"18":8841,"19":1,"20":8840,"21":8840,"22":8839,"23":1,"24":1,"25":12,"26":1,"27":11,"28":2,"29":1,"30":5,"31":5,"32":11,"33":15,"34":11,"35":6,"36":5,"37":1,"38":8937,"39":1,"40":8936,"41":1,"42":4,"43":4,"44":5,"45":6,"46":4,"47":1,"48":5,"49":10,"50":1,"51":1},"f":{"0":1,"1":209,"2":10,"3":24376,"4":8841,"5":12,"6":5,"7":11,"8":15,"9":8937,"10":4,"11":5,"12":6,"13":5,"14":10},"b":{"0":[1,24375],"1":[24376,24375],"2":[1,24374],"3":[24375,24374],"4":[54,24320],"5":[1,8840],"6":[8841,8840],"7":[8839,1],"8":[1,11],"9":[12,11],"10":[2,9],"11":[6,5],"12":[1,8936],"13":[8937,8936]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/container/lookup.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/container/lookup.ts"],"names":[],"mappings":"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","sourcesContent":["import * as ERROR_MSGS from \"../constants/error_msgs\";\nimport { interfaces } from \"../interfaces/interfaces\";\n\nclass Lookup<T extends interfaces.Clonable<T>> implements interfaces.Lookup<T> {\n\n // dictionary used store multiple values for each key <key>\n private _map: Map<interfaces.ServiceIdentifier<any>, T[]>;\n\n public constructor() {\n this._map = new Map<interfaces.ServiceIdentifier<any>, T[]>();\n }\n\n public getMap() {\n return this._map;\n }\n\n // adds a new entry to _map\n public add(serviceIdentifier: interfaces.ServiceIdentifier<any>, value: T): void {\n\n if (serviceIdentifier === null || serviceIdentifier === undefined) {\n throw new Error(ERROR_MSGS.NULL_ARGUMENT);\n }\n\n if (value === null || value === undefined) {\n throw new Error(ERROR_MSGS.NULL_ARGUMENT);\n }\n\n const entry = this._map.get(serviceIdentifier);\n if (entry !== undefined) {\n entry.push(value);\n this._map.set(serviceIdentifier, entry);\n } else {\n this._map.set(serviceIdentifier, [value]);\n }\n }\n\n // gets the value of a entry by its key (serviceIdentifier)\n public get(serviceIdentifier: interfaces.ServiceIdentifier<any>): T[] {\n\n if (serviceIdentifier === null || serviceIdentifier === undefined) {\n throw new Error(ERROR_MSGS.NULL_ARGUMENT);\n }\n\n const entry = this._map.get(serviceIdentifier);\n\n if (entry !== undefined) {\n return entry;\n } else {\n throw new Error(ERROR_MSGS.KEY_NOT_FOUND);\n }\n }\n\n // removes a entry from _map by its key (serviceIdentifier)\n public remove(serviceIdentifier: interfaces.ServiceIdentifier<any>): void {\n\n if (serviceIdentifier === null || serviceIdentifier === undefined) {\n throw new Error(ERROR_MSGS.NULL_ARGUMENT);\n }\n\n if (!this._map.delete(serviceIdentifier)) {\n throw new Error(ERROR_MSGS.KEY_NOT_FOUND);\n }\n\n }\n\n public removeByCondition(condition: (item: T) => boolean): void {\n this._map.forEach((entries, key) => {\n const updatedEntries = entries.filter((entry) => !condition(entry));\n if (updatedEntries.length > 0) {\n this._map.set(key, updatedEntries);\n } else {\n this._map.delete(key);\n }\n });\n }\n\n // returns true if _map contains a key (serviceIdentifier)\n public hasKey(serviceIdentifier: interfaces.ServiceIdentifier<any>): boolean {\n\n if (serviceIdentifier === null || serviceIdentifier === undefined) {\n throw new Error(ERROR_MSGS.NULL_ARGUMENT);\n }\n\n return this._map.has(serviceIdentifier);\n }\n\n // returns a new Lookup instance; note: this is not a deep clone, only Lookup related data structure (dictionary) is\n // cloned, content remains the same\n public clone(): interfaces.Lookup<T> {\n\n const copy = new Lookup<T>();\n\n this._map.forEach((value, key) => {\n value.forEach((b) => copy.add(key, b.clone()));\n });\n\n return copy;\n }\n\n public traverse(func: (key: interfaces.ServiceIdentifier<any>, value: T[]) => void): void {\n this._map.forEach((value, key) => {\n func(key, value);\n });\n }\n\n}\n\nexport { Lookup };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"7beddb9f2943229926bf2abb2a418f23eaccda44","contentHash":"b419b92986e1a30af430c2cf2148e3adc92b7f98445948ddcfbed414649ad8a5"},"/Users/dan/jsProjects/inversify/InversifyJS/src/container/container_module.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/container/container_module.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":64}},"2":{"start":{"line":4,"column":11},"end":{"line":4,"column":33}},"3":{"start":{"line":5,"column":23},"end":{"line":11,"column":3}},"4":{"start":{"line":7,"column":8},"end":{"line":7,"column":28}},"5":{"start":{"line":8,"column":8},"end":{"line":8,"column":33}},"6":{"start":{"line":10,"column":4},"end":{"line":10,"column":27}},"7":{"start":{"line":12,"column":0},"end":{"line":12,"column":42}},"8":{"start":{"line":13,"column":28},"end":{"line":19,"column":3}},"9":{"start":{"line":15,"column":8},"end":{"line":15,"column":28}},"10":{"start":{"line":16,"column":8},"end":{"line":16,"column":33}},"11":{"start":{"line":18,"column":4},"end":{"line":18,"column":32}},"12":{"start":{"line":20,"column":0},"end":{"line":20,"column":52}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":23},"end":{"line":5,"column":24}},"loc":{"start":{"line":5,"column":35},"end":{"line":11,"column":1}},"line":5},"1":{"name":"ContainerModule","decl":{"start":{"line":6,"column":13},"end":{"line":6,"column":28}},"loc":{"start":{"line":6,"column":39},"end":{"line":9,"column":5}},"line":6},"2":{"name":"(anonymous_2)","decl":{"start":{"line":13,"column":28},"end":{"line":13,"column":29}},"loc":{"start":{"line":13,"column":40},"end":{"line":19,"column":1}},"line":13},"3":{"name":"AsyncContainerModule","decl":{"start":{"line":14,"column":13},"end":{"line":14,"column":33}},"loc":{"start":{"line":14,"column":44},"end":{"line":17,"column":5}},"line":14}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":7,"5":7,"6":1,"7":1,"8":1,"9":2,"10":2,"11":1,"12":1},"f":{"0":1,"1":7,"2":1,"3":2},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/container/container_module.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/container/container_module.ts"],"names":[],"mappings":";;;AACA,kCAAiC;AAEjC;IAKI,yBAAmB,QAA4C;QAC3D,IAAI,CAAC,EAAE,GAAG,OAAE,EAAE,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAEL,sBAAC;AAAD,CAAC,AAVD,IAUC;AAVY,0CAAe;AAY5B;IAKI,8BAAmB,QAAiD;QAChE,IAAI,CAAC,EAAE,GAAG,OAAE,EAAE,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAEL,2BAAC;AAAD,CAAC,AAVD,IAUC;AAVY,oDAAoB","sourcesContent":["import { interfaces } from \"../interfaces/interfaces\";\r\nimport { id } from \"../utils/id\";\r\n\r\nexport class ContainerModule implements interfaces.ContainerModule {\r\n\r\n public id: number;\r\n public registry: interfaces.ContainerModuleCallBack;\r\n\r\n public constructor(registry: interfaces.ContainerModuleCallBack) {\r\n this.id = id();\r\n this.registry = registry;\r\n }\r\n\r\n}\r\n\r\nexport class AsyncContainerModule implements interfaces.AsyncContainerModule {\r\n\r\n public id: number;\r\n public registry: interfaces.AsyncContainerModuleCallBack;\r\n\r\n public constructor(registry: interfaces.AsyncContainerModuleCallBack) {\r\n this.id = id();\r\n this.registry = registry;\r\n }\r\n\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"10f37e2f6b446654333f1d1abcb82d3fced07a73","contentHash":"4b3ba78513664d093b36b063464f1904e1622ba16651cd8376f8911b1ac5a6ce"},"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/injectable.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/injectable.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":28}},"2":{"start":{"line":4,"column":18},"end":{"line":4,"column":52}},"3":{"start":{"line":5,"column":19},"end":{"line":5,"column":56}},"4":{"start":{"line":7,"column":4},"end":{"line":14,"column":6}},"5":{"start":{"line":8,"column":8},"end":{"line":10,"column":9}},"6":{"start":{"line":9,"column":12},"end":{"line":9,"column":73}},"7":{"start":{"line":11,"column":20},"end":{"line":11,"column":86}},"8":{"start":{"line":12,"column":8},"end":{"line":12,"column":72}},"9":{"start":{"line":13,"column":8},"end":{"line":13,"column":22}},"10":{"start":{"line":16,"column":0},"end":{"line":16,"column":32}}},"fnMap":{"0":{"name":"injectable","decl":{"start":{"line":6,"column":9},"end":{"line":6,"column":19}},"loc":{"start":{"line":6,"column":22},"end":{"line":15,"column":1}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":7,"column":11},"end":{"line":7,"column":12}},"loc":{"start":{"line":7,"column":29},"end":{"line":14,"column":5}},"line":7}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":8},"end":{"line":10,"column":9}},"type":"if","locations":[{"start":{"line":8,"column":8},"end":{"line":10,"column":9}},{"start":{"line":8,"column":8},"end":{"line":10,"column":9}}],"line":8},"1":{"loc":{"start":{"line":11,"column":20},"end":{"line":11,"column":86}},"type":"binary-expr","locations":[{"start":{"line":11,"column":20},"end":{"line":11,"column":80}},{"start":{"line":11,"column":84},"end":{"line":11,"column":86}}],"line":11}},"s":{"0":1,"1":1,"2":1,"3":1,"4":289,"5":289,"6":1,"7":288,"8":288,"9":288,"10":1},"f":{"0":289,"1":289},"b":{"0":[1,288],"1":[288,146]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/injectable.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/injectable.ts"],"names":[],"mappings":";;;AAAA,qDAAuD;AACvD,yDAA2D;AAE3D,SAAS,UAAU;IACjB,OAAO,UAAS,MAAW;QAEzB,IAAI,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE;YAC5D,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,+BAA+B,CAAC,CAAC;SAC9D;QAED,IAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,kBAAkB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QACjF,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAEhE,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAEQ,gCAAU","sourcesContent":["import * as ERRORS_MSGS from \"../constants/error_msgs\";\nimport * as METADATA_KEY from \"../constants/metadata_keys\";\n\nfunction injectable() {\n return function(target: any) {\n\n if (Reflect.hasOwnMetadata(METADATA_KEY.PARAM_TYPES, target)) {\n throw new Error(ERRORS_MSGS.DUPLICATED_INJECTABLE_DECORATOR);\n }\n\n const types = Reflect.getMetadata(METADATA_KEY.DESIGN_PARAM_TYPES, target) || [];\n Reflect.defineMetadata(METADATA_KEY.PARAM_TYPES, types, target);\n\n return target;\n };\n}\n\nexport { injectable };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"fa584855767f4e2c73c8b86b0bd16b5b6d9009f1","contentHash":"f1f5d4edadb43937d7511c086564e3bb61a409df1cb976cc6ad7551d9ff36bab"},"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/tagged.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/tagged.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":24}},"2":{"start":{"line":4,"column":17},"end":{"line":4,"column":48}},"3":{"start":{"line":5,"column":24},"end":{"line":5,"column":52}},"4":{"start":{"line":7,"column":4},"end":{"line":15,"column":6}},"5":{"start":{"line":8,"column":23},"end":{"line":8,"column":74}},"6":{"start":{"line":9,"column":8},"end":{"line":14,"column":9}},"7":{"start":{"line":10,"column":12},"end":{"line":10,"column":79}},"8":{"start":{"line":13,"column":12},"end":{"line":13,"column":71}},"9":{"start":{"line":17,"column":0},"end":{"line":17,"column":24}}},"fnMap":{"0":{"name":"tagged","decl":{"start":{"line":6,"column":9},"end":{"line":6,"column":15}},"loc":{"start":{"line":6,"column":44},"end":{"line":16,"column":1}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":7,"column":11},"end":{"line":7,"column":12}},"loc":{"start":{"line":7,"column":47},"end":{"line":15,"column":5}},"line":7}},"branchMap":{"0":{"loc":{"start":{"line":9,"column":8},"end":{"line":14,"column":9}},"type":"if","locations":[{"start":{"line":9,"column":8},"end":{"line":14,"column":9}},{"start":{"line":9,"column":8},"end":{"line":14,"column":9}}],"line":9}},"s":{"0":1,"1":1,"2":1,"3":1,"4":25,"5":25,"6":25,"7":18,"8":7,"9":1},"f":{"0":25,"1":25},"b":{"0":[18,7]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/tagged.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/tagged.ts"],"names":[],"mappings":";;;AAAA,iDAAgD;AAChD,qDAA8D;AAG9D,SAAS,MAAM,CAAC,WAAqC,EAAE,aAAkB;IACrE,OAAO,UAAS,MAAW,EAAE,SAAiB,EAAE,KAAc;QAC1D,IAAM,QAAQ,GAAG,IAAI,mBAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,8BAAY,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;SACpD;aAAM;YACH,6BAAW,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;SAC5C;IACL,CAAC,CAAC;AACN,CAAC;AAEQ,wBAAM","sourcesContent":["import { Metadata } from \"../planning/metadata\";\nimport { tagParameter, tagProperty } from \"./decorator_utils\";\n\n// Used to add custom metadata which is used to resolve metadata-based contextual bindings.\nfunction tagged(metadataKey: string | number | symbol, metadataValue: any) {\n return function(target: any, targetKey: string, index?: number) {\n const metadata = new Metadata(metadataKey, metadataValue);\n if (typeof index === \"number\") {\n tagParameter(target, targetKey, index, metadata);\n } else {\n tagProperty(target, targetKey, metadata);\n }\n };\n}\n\nexport { tagged };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"b5c7bd192364e2e140bdfd2a0211a9b5a098ff7f","contentHash":"3ce05c9c2f34b1dca85c023a5d2e33d9f52e4bb234ed0cc8dc6b24516f1678a4"},"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/named.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/named.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":23}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":56}},"3":{"start":{"line":5,"column":17},"end":{"line":5,"column":48}},"4":{"start":{"line":6,"column":24},"end":{"line":6,"column":52}},"5":{"start":{"line":8,"column":4},"end":{"line":16,"column":6}},"6":{"start":{"line":9,"column":23},"end":{"line":9,"column":76}},"7":{"start":{"line":10,"column":8},"end":{"line":15,"column":9}},"8":{"start":{"line":11,"column":12},"end":{"line":11,"column":79}},"9":{"start":{"line":14,"column":12},"end":{"line":14,"column":71}},"10":{"start":{"line":18,"column":0},"end":{"line":18,"column":22}}},"fnMap":{"0":{"name":"named","decl":{"start":{"line":7,"column":9},"end":{"line":7,"column":14}},"loc":{"start":{"line":7,"column":21},"end":{"line":17,"column":1}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":11},"end":{"line":8,"column":12}},"loc":{"start":{"line":8,"column":47},"end":{"line":16,"column":5}},"line":8}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":8},"end":{"line":15,"column":9}},"type":"if","locations":[{"start":{"line":10,"column":8},"end":{"line":15,"column":9}},{"start":{"line":10,"column":8},"end":{"line":15,"column":9}}],"line":10}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":25,"6":25,"7":25,"8":21,"9":4,"10":1},"f":{"0":25,"1":25},"b":{"0":[21,4]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/named.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/named.ts"],"names":[],"mappings":";;;AAAA,yDAA2D;AAC3D,iDAAgD;AAChD,qDAA8D;AAG9D,SAAS,KAAK,CAAC,IAA8B;IACzC,OAAO,UAAS,MAAW,EAAE,SAAiB,EAAE,KAAc;QAC1D,IAAM,QAAQ,GAAG,IAAI,mBAAQ,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC5D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,8BAAY,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;SACpD;aAAM;YACH,6BAAW,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;SAC5C;IACL,CAAC,CAAC;AACN,CAAC;AAEQ,sBAAK","sourcesContent":["import * as METADATA_KEY from \"../constants/metadata_keys\";\r\nimport { Metadata } from \"../planning/metadata\";\r\nimport { tagParameter, tagProperty } from \"./decorator_utils\";\r\n\r\n// Used to add named metadata which is used to resolve name-based contextual bindings.\r\nfunction named(name: string | number | symbol) {\r\n return function(target: any, targetKey: string, index?: number) {\r\n const metadata = new Metadata(METADATA_KEY.NAMED_TAG, name);\r\n if (typeof index === \"number\") {\r\n tagParameter(target, targetKey, index, metadata);\r\n } else {\r\n tagProperty(target, targetKey, metadata);\r\n }\r\n };\r\n}\r\n\r\nexport { named };\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"9ca90ebaa41f2c6c67ab1ba74f5f7d628d250344","contentHash":"448ab5a6f8ca59d9a4b7a5b74b72d51cae8791984a00d91de6a1a4cf8880f315"},"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/optional.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/optional.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":26}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":56}},"3":{"start":{"line":5,"column":17},"end":{"line":5,"column":48}},"4":{"start":{"line":6,"column":24},"end":{"line":6,"column":52}},"5":{"start":{"line":8,"column":4},"end":{"line":16,"column":6}},"6":{"start":{"line":9,"column":23},"end":{"line":9,"column":79}},"7":{"start":{"line":10,"column":8},"end":{"line":15,"column":9}},"8":{"start":{"line":11,"column":12},"end":{"line":11,"column":79}},"9":{"start":{"line":14,"column":12},"end":{"line":14,"column":71}},"10":{"start":{"line":18,"column":0},"end":{"line":18,"column":28}}},"fnMap":{"0":{"name":"optional","decl":{"start":{"line":7,"column":9},"end":{"line":7,"column":17}},"loc":{"start":{"line":7,"column":20},"end":{"line":17,"column":1}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":11},"end":{"line":8,"column":12}},"loc":{"start":{"line":8,"column":47},"end":{"line":16,"column":5}},"line":8}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":8},"end":{"line":15,"column":9}},"type":"if","locations":[{"start":{"line":10,"column":8},"end":{"line":15,"column":9}},{"start":{"line":10,"column":8},"end":{"line":15,"column":9}}],"line":10}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":6,"6":6,"7":6,"8":5,"9":1,"10":1},"f":{"0":6,"1":6},"b":{"0":[5,1]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/optional.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/optional.ts"],"names":[],"mappings":";;;AAAA,yDAA2D;AAC3D,iDAAgD;AAChD,qDAA8D;AAE9D,SAAS,QAAQ;IACb,OAAO,UAAS,MAAW,EAAE,SAAiB,EAAE,KAAc;QAE1D,IAAM,QAAQ,GAAG,IAAI,mBAAQ,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAE/D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,8BAAY,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;SACpD;aAAM;YACH,6BAAW,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;SAC5C;IAEL,CAAC,CAAC;AACN,CAAC;AAEQ,4BAAQ","sourcesContent":["import * as METADATA_KEY from \"../constants/metadata_keys\";\nimport { Metadata } from \"../planning/metadata\";\nimport { tagParameter, tagProperty } from \"./decorator_utils\";\n\nfunction optional() {\n return function(target: any, targetKey: string, index?: number) {\n\n const metadata = new Metadata(METADATA_KEY.OPTIONAL_TAG, true);\n\n if (typeof index === \"number\") {\n tagParameter(target, targetKey, index, metadata);\n } else {\n tagProperty(target, targetKey, metadata);\n }\n\n };\n}\n\nexport { optional };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"f7ebeea657e511af63ee83d72bd30088be02f181","contentHash":"e7b055e6ee9559fe66c428884926aeaa51d042f6daa9feda3a79b10b5fa2e727"},"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/unmanaged.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/unmanaged.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":27}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":56}},"3":{"start":{"line":5,"column":17},"end":{"line":5,"column":48}},"4":{"start":{"line":6,"column":24},"end":{"line":6,"column":52}},"5":{"start":{"line":8,"column":4},"end":{"line":11,"column":6}},"6":{"start":{"line":9,"column":23},"end":{"line":9,"column":80}},"7":{"start":{"line":10,"column":8},"end":{"line":10,"column":75}},"8":{"start":{"line":13,"column":0},"end":{"line":13,"column":30}}},"fnMap":{"0":{"name":"unmanaged","decl":{"start":{"line":7,"column":9},"end":{"line":7,"column":18}},"loc":{"start":{"line":7,"column":21},"end":{"line":12,"column":1}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":11},"end":{"line":8,"column":12}},"loc":{"start":{"line":8,"column":47},"end":{"line":11,"column":5}},"line":8}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":6,"6":6,"7":6,"8":1},"f":{"0":6,"1":6},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/unmanaged.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/unmanaged.ts"],"names":[],"mappings":";;;AAAA,yDAA2D;AAC3D,iDAAgD;AAChD,qDAAiD;AAEjD,SAAS,SAAS;IACd,OAAO,UAAS,MAAW,EAAE,SAAiB,EAAE,KAAa;QACzD,IAAM,QAAQ,GAAG,IAAI,mBAAQ,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAChE,8BAAY,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC,CAAC;AACN,CAAC;AAEQ,8BAAS","sourcesContent":["import * as METADATA_KEY from \"../constants/metadata_keys\";\nimport { Metadata } from \"../planning/metadata\";\nimport { tagParameter } from \"./decorator_utils\";\n\nfunction unmanaged() {\n return function(target: any, targetKey: string, index: number) {\n const metadata = new Metadata(METADATA_KEY.UNMANAGED_TAG, true);\n tagParameter(target, targetKey, index, metadata);\n };\n}\n\nexport { unmanaged };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"c47f8ff01ff2897c3ae7c5a64b38ad6df1c970c9","contentHash":"886286c3d426a145a8e4036251a494b68591756074c0fe58b71f3b8ddd1b9391"},"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/multi_inject.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/multi_inject.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":29}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":56}},"3":{"start":{"line":5,"column":17},"end":{"line":5,"column":48}},"4":{"start":{"line":6,"column":24},"end":{"line":6,"column":52}},"5":{"start":{"line":8,"column":4},"end":{"line":16,"column":6}},"6":{"start":{"line":9,"column":23},"end":{"line":9,"column":96}},"7":{"start":{"line":10,"column":8},"end":{"line":15,"column":9}},"8":{"start":{"line":11,"column":12},"end":{"line":11,"column":79}},"9":{"start":{"line":14,"column":12},"end":{"line":14,"column":71}},"10":{"start":{"line":18,"column":0},"end":{"line":18,"column":34}}},"fnMap":{"0":{"name":"multiInject","decl":{"start":{"line":7,"column":9},"end":{"line":7,"column":20}},"loc":{"start":{"line":7,"column":40},"end":{"line":17,"column":1}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":11},"end":{"line":8,"column":12}},"loc":{"start":{"line":8,"column":47},"end":{"line":16,"column":5}},"line":8}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":8},"end":{"line":15,"column":9}},"type":"if","locations":[{"start":{"line":10,"column":8},"end":{"line":15,"column":9}},{"start":{"line":10,"column":8},"end":{"line":15,"column":9}}],"line":10}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":10,"6":10,"7":10,"8":9,"9":1,"10":1},"f":{"0":10,"1":10},"b":{"0":[9,1]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/multi_inject.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/multi_inject.ts"],"names":[],"mappings":";;;AAAA,yDAA2D;AAE3D,iDAAgD;AAChD,qDAA8D;AAE9D,SAAS,WAAW,CAAC,iBAAoD;IACvE,OAAO,UAAS,MAAW,EAAE,SAAiB,EAAE,KAAc;QAE5D,IAAM,QAAQ,GAAG,IAAI,mBAAQ,CAAC,YAAY,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;QAEhF,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,8BAAY,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;SAClD;aAAM;YACL,6BAAW,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;SAC1C;IAEH,CAAC,CAAC;AACJ,CAAC;AAEQ,kCAAW","sourcesContent":["import * as METADATA_KEY from \"../constants/metadata_keys\";\nimport { interfaces } from \"../interfaces/interfaces\";\nimport { Metadata } from \"../planning/metadata\";\nimport { tagParameter, tagProperty } from \"./decorator_utils\";\n\nfunction multiInject(serviceIdentifier: interfaces.ServiceIdentifier<any>) {\n return function(target: any, targetKey: string, index?: number) {\n\n const metadata = new Metadata(METADATA_KEY.MULTI_INJECT_TAG, serviceIdentifier);\n\n if (typeof index === \"number\") {\n tagParameter(target, targetKey, index, metadata);\n } else {\n tagProperty(target, targetKey, metadata);\n }\n\n };\n}\n\nexport { multiInject };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"10837eff6ffd52a66ce2b7019239f48315235cd8","contentHash":"e1c1c55c5705633fb1672fbe7b4a312573f8c1e1fa362aa1aa1bf0115cb13e51"},"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/target_name.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/target_name.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":28}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":56}},"3":{"start":{"line":5,"column":17},"end":{"line":5,"column":48}},"4":{"start":{"line":6,"column":24},"end":{"line":6,"column":52}},"5":{"start":{"line":8,"column":4},"end":{"line":11,"column":6}},"6":{"start":{"line":9,"column":23},"end":{"line":9,"column":75}},"7":{"start":{"line":10,"column":8},"end":{"line":10,"column":75}},"8":{"start":{"line":13,"column":0},"end":{"line":13,"column":32}}},"fnMap":{"0":{"name":"targetName","decl":{"start":{"line":7,"column":9},"end":{"line":7,"column":19}},"loc":{"start":{"line":7,"column":26},"end":{"line":12,"column":1}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":11},"end":{"line":8,"column":12}},"loc":{"start":{"line":8,"column":47},"end":{"line":11,"column":5}},"line":8}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":55,"6":55,"7":55,"8":1},"f":{"0":55,"1":55},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/target_name.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/target_name.ts"],"names":[],"mappings":";;;AAAA,yDAA2D;AAC3D,iDAAgD;AAChD,qDAAiD;AAEjD,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,UAAS,MAAW,EAAE,SAAiB,EAAE,KAAa;QAC3D,IAAM,QAAQ,GAAG,IAAI,mBAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC3D,8BAAY,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC,CAAC;AACJ,CAAC;AAEQ,gCAAU","sourcesContent":["import * as METADATA_KEY from \"../constants/metadata_keys\";\nimport { Metadata } from \"../planning/metadata\";\nimport { tagParameter } from \"./decorator_utils\";\n\nfunction targetName(name: string) {\n return function(target: any, targetKey: string, index: number) {\n const metadata = new Metadata(METADATA_KEY.NAME_TAG, name);\n tagParameter(target, targetKey, index, metadata);\n };\n}\n\nexport { targetName };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"027e6c4d6500bf7eb8549076c5e3ef79de0d2fc8","contentHash":"8a64575ea0f62cabe1148df43d8f85fe8799a04461ca5a29c4958f371898f0b1"},"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/post_construct.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/post_construct.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":31}},"2":{"start":{"line":4,"column":18},"end":{"line":4,"column":52}},"3":{"start":{"line":5,"column":19},"end":{"line":5,"column":56}},"4":{"start":{"line":6,"column":17},"end":{"line":6,"column":48}},"5":{"start":{"line":8,"column":4},"end":{"line":14,"column":6}},"6":{"start":{"line":9,"column":23},"end":{"line":9,"column":88}},"7":{"start":{"line":10,"column":8},"end":{"line":12,"column":9}},"8":{"start":{"line":11,"column":12},"end":{"line":11,"column":73}},"9":{"start":{"line":13,"column":8},"end":{"line":13,"column":90}},"10":{"start":{"line":16,"column":0},"end":{"line":16,"column":38}}},"fnMap":{"0":{"name":"postConstruct","decl":{"start":{"line":7,"column":9},"end":{"line":7,"column":22}},"loc":{"start":{"line":7,"column":25},"end":{"line":15,"column":1}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":11},"end":{"line":8,"column":12}},"loc":{"start":{"line":8,"column":54},"end":{"line":14,"column":5}},"line":8}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":8},"end":{"line":12,"column":9}},"type":"if","locations":[{"start":{"line":10,"column":8},"end":{"line":12,"column":9}},{"start":{"line":10,"column":8},"end":{"line":12,"column":9}}],"line":10}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":9,"6":9,"7":9,"8":1,"9":8,"10":1},"f":{"0":9,"1":9},"b":{"0":[1,8]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/post_construct.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/post_construct.ts"],"names":[],"mappings":";;;AAAA,qDAAuD;AACvD,yDAA2D;AAC3D,iDAAgD;AAEhD,SAAS,aAAa;IAClB,OAAO,UAAU,MAAW,EAAE,WAAmB,EAAE,UAA8B;QAC7E,IAAM,QAAQ,GAAG,IAAI,mBAAQ,CAAC,YAAY,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QAExE,IAAI,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE;YACzE,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,+BAA+B,CAAC,CAAC;SAChE;QACD,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,cAAc,EAAE,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IACtF,CAAC,CAAC;AACN,CAAC;AAEQ,sCAAa","sourcesContent":["import * as ERRORS_MSGS from \"../constants/error_msgs\";\nimport * as METADATA_KEY from \"../constants/metadata_keys\";\nimport { Metadata } from \"../planning/metadata\";\n\nfunction postConstruct() {\n return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n const metadata = new Metadata(METADATA_KEY.POST_CONSTRUCT, propertyKey);\n\n if (Reflect.hasOwnMetadata(METADATA_KEY.POST_CONSTRUCT, target.constructor)) {\n throw new Error(ERRORS_MSGS.MULTIPLE_POST_CONSTRUCT_METHODS);\n }\n Reflect.defineMetadata(METADATA_KEY.POST_CONSTRUCT, metadata, target.constructor);\n };\n}\n\nexport { postConstruct };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"732395571241e81d93fb7fa8a7207c525e072781","contentHash":"be0b471a3c065b6f9aa70cca94ce5457b94b3a7dfdd8ebcda8c98dc84d64d679"},"/Users/dan/jsProjects/inversify/InversifyJS/src/utils/binding_utils.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/utils/binding_utils.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":36}},"2":{"start":{"line":4,"column":25},"end":{"line":14,"column":1}},"3":{"start":{"line":5,"column":4},"end":{"line":13,"column":6}},"4":{"start":{"line":6,"column":8},"end":{"line":12,"column":10}},"5":{"start":{"line":7,"column":24},"end":{"line":7,"column":26}},"6":{"start":{"line":8,"column":12},"end":{"line":10,"column":13}},"7":{"start":{"line":8,"column":26},"end":{"line":8,"column":27}},"8":{"start":{"line":9,"column":16},"end":{"line":9,"column":42}},"9":{"start":{"line":11,"column":12},"end":{"line":11,"column":96}},"10":{"start":{"line":11,"column":48},"end":{"line":11,"column":92}},"11":{"start":{"line":15,"column":0},"end":{"line":15,"column":48}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":25},"end":{"line":4,"column":26}},"loc":{"start":{"line":4,"column":46},"end":{"line":14,"column":1}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":5,"column":11},"end":{"line":5,"column":12}},"loc":{"start":{"line":5,"column":30},"end":{"line":13,"column":5}},"line":5},"2":{"name":"(anonymous_2)","decl":{"start":{"line":6,"column":15},"end":{"line":6,"column":16}},"loc":{"start":{"line":6,"column":27},"end":{"line":12,"column":9}},"line":6},"3":{"name":"(anonymous_3)","decl":{"start":{"line":11,"column":33},"end":{"line":11,"column":34}},"loc":{"start":{"line":11,"column":46},"end":{"line":11,"column":94}},"line":11}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":2,"9":1,"10":2,"11":1},"f":{"0":1,"1":1,"2":1,"3":2},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/utils/binding_utils.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/utils/binding_utils.ts"],"names":[],"mappings":";;;AAEO,IAAM,kBAAkB,GAAG,UAAC,SAA+B;IAC9D,OAAA,UAAC,OAA0C;QACvC,OAAA;YAAC,eAA6C;iBAA7C,UAA6C,EAA7C,qBAA6C,EAA7C,IAA6C;gBAA7C,0BAA6C;;YAC1C,OAAA,KAAK,CAAC,OAAO,CAAC,UAAC,CAAC,IAAK,OAAA,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAApC,CAAoC,CAAC;QAA1D,CAA0D;IAD9D,CAC8D;AAFlE,CAEkE,CAAC;AAH1D,QAAA,kBAAkB,sBAGwC","sourcesContent":["import { interfaces } from \"../inversify\";\n\nexport const multiBindToService = (container: interfaces.Container) =>\n (service: interfaces.ServiceIdentifier<any>) =>\n (...types: interfaces.ServiceIdentifier<any>[]) =>\n types.forEach((t) => container.bind(t).toService(service));\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"dcb1520025563bed8ae0fa713be0cbf3716b6210","contentHash":"f84633982420f9af76bb6c91ebdf0c315a4e5a80014ad5c23eb2dcc24f64a6ae"}}
|
|
1
|
+
{"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/decorator_utils.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/decorator_utils.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":71}},"2":{"start":{"line":4,"column":17},"end":{"line":4,"column":51}},"3":{"start":{"line":5,"column":19},"end":{"line":5,"column":56}},"4":{"start":{"line":7,"column":22},"end":{"line":7,"column":41}},"5":{"start":{"line":8,"column":4},"end":{"line":8,"column":99}},"6":{"start":{"line":10,"column":0},"end":{"line":10,"column":36}},"7":{"start":{"line":12,"column":22},"end":{"line":12,"column":46}},"8":{"start":{"line":13,"column":4},"end":{"line":13,"column":95}},"9":{"start":{"line":15,"column":0},"end":{"line":15,"column":34}},"10":{"start":{"line":17,"column":37},"end":{"line":17,"column":39}},"11":{"start":{"line":18,"column":32},"end":{"line":18,"column":66}},"12":{"start":{"line":19,"column":14},"end":{"line":19,"column":111}},"13":{"start":{"line":20,"column":4},"end":{"line":22,"column":5}},"14":{"start":{"line":21,"column":8},"end":{"line":21,"column":64}},"15":{"start":{"line":23,"column":4},"end":{"line":25,"column":5}},"16":{"start":{"line":24,"column":8},"end":{"line":24,"column":88}},"17":{"start":{"line":26,"column":34},"end":{"line":26,"column":65}},"18":{"start":{"line":27,"column":4},"end":{"line":37,"column":5}},"19":{"start":{"line":28,"column":8},"end":{"line":28,"column":37}},"20":{"start":{"line":31,"column":8},"end":{"line":36,"column":9}},"21":{"start":{"line":31,"column":22},"end":{"line":31,"column":23}},"22":{"start":{"line":31,"column":53},"end":{"line":31,"column":76}},"23":{"start":{"line":32,"column":20},"end":{"line":32,"column":49}},"24":{"start":{"line":33,"column":12},"end":{"line":35,"column":13}},"25":{"start":{"line":34,"column":16},"end":{"line":34,"column":89}},"26":{"start":{"line":38,"column":4},"end":{"line":38,"column":43}},"27":{"start":{"line":39,"column":4},"end":{"line":39,"column":62}},"28":{"start":{"line":40,"column":4},"end":{"line":40,"column":86}},"29":{"start":{"line":43,"column":4},"end":{"line":43,"column":41}},"30":{"start":{"line":46,"column":4},"end":{"line":46,"column":74}},"31":{"start":{"line":46,"column":36},"end":{"line":46,"column":71}},"32":{"start":{"line":49,"column":4},"end":{"line":57,"column":5}},"33":{"start":{"line":50,"column":8},"end":{"line":50,"column":63}},"34":{"start":{"line":52,"column":9},"end":{"line":57,"column":5}},"35":{"start":{"line":53,"column":8},"end":{"line":53,"column":62}},"36":{"start":{"line":56,"column":8},"end":{"line":56,"column":39}},"37":{"start":{"line":59,"column":0},"end":{"line":59,"column":28}}},"fnMap":{"0":{"name":"tagParameter","decl":{"start":{"line":6,"column":9},"end":{"line":6,"column":21}},"loc":{"start":{"line":6,"column":80},"end":{"line":9,"column":1}},"line":6},"1":{"name":"tagProperty","decl":{"start":{"line":11,"column":9},"end":{"line":11,"column":20}},"loc":{"start":{"line":11,"column":63},"end":{"line":14,"column":1}},"line":11},"2":{"name":"_tagParameterOrProperty","decl":{"start":{"line":16,"column":9},"end":{"line":16,"column":32}},"loc":{"start":{"line":16,"column":104},"end":{"line":41,"column":1}},"line":16},"3":{"name":"_decorate","decl":{"start":{"line":42,"column":9},"end":{"line":42,"column":18}},"loc":{"start":{"line":42,"column":39},"end":{"line":44,"column":1}},"line":42},"4":{"name":"_param","decl":{"start":{"line":45,"column":9},"end":{"line":45,"column":15}},"loc":{"start":{"line":45,"column":39},"end":{"line":47,"column":1}},"line":45},"5":{"name":"(anonymous_5)","decl":{"start":{"line":46,"column":11},"end":{"line":46,"column":12}},"loc":{"start":{"line":46,"column":34},"end":{"line":46,"column":73}},"line":46},"6":{"name":"decorate","decl":{"start":{"line":48,"column":9},"end":{"line":48,"column":17}},"loc":{"start":{"line":48,"column":53},"end":{"line":58,"column":1}},"line":48}},"branchMap":{"0":{"loc":{"start":{"line":19,"column":14},"end":{"line":19,"column":111}},"type":"cond-expr","locations":[{"start":{"line":19,"column":71},"end":{"line":19,"column":96}},{"start":{"line":19,"column":99},"end":{"line":19,"column":111}}],"line":19},"1":{"loc":{"start":{"line":19,"column":15},"end":{"line":19,"column":67}},"type":"binary-expr","locations":[{"start":{"line":19,"column":15},"end":{"line":19,"column":43}},{"start":{"line":19,"column":47},"end":{"line":19,"column":67}}],"line":19},"2":{"loc":{"start":{"line":20,"column":4},"end":{"line":22,"column":5}},"type":"if","locations":[{"start":{"line":20,"column":4},"end":{"line":22,"column":5}},{"start":{"line":20,"column":4},"end":{"line":22,"column":5}}],"line":20},"3":{"loc":{"start":{"line":20,"column":8},"end":{"line":20,"column":58}},"type":"binary-expr","locations":[{"start":{"line":20,"column":8},"end":{"line":20,"column":28}},{"start":{"line":20,"column":32},"end":{"line":20,"column":58}}],"line":20},"4":{"loc":{"start":{"line":23,"column":4},"end":{"line":25,"column":5}},"type":"if","locations":[{"start":{"line":23,"column":4},"end":{"line":25,"column":5}},{"start":{"line":23,"column":4},"end":{"line":25,"column":5}}],"line":23},"5":{"loc":{"start":{"line":27,"column":4},"end":{"line":37,"column":5}},"type":"if","locations":[{"start":{"line":27,"column":4},"end":{"line":37,"column":5}},{"start":{"line":27,"column":4},"end":{"line":37,"column":5}}],"line":27},"6":{"loc":{"start":{"line":33,"column":12},"end":{"line":35,"column":13}},"type":"if","locations":[{"start":{"line":33,"column":12},"end":{"line":35,"column":13}},{"start":{"line":33,"column":12},"end":{"line":35,"column":13}}],"line":33},"7":{"loc":{"start":{"line":49,"column":4},"end":{"line":57,"column":5}},"type":"if","locations":[{"start":{"line":49,"column":4},"end":{"line":57,"column":5}},{"start":{"line":49,"column":4},"end":{"line":57,"column":5}}],"line":49},"8":{"loc":{"start":{"line":52,"column":9},"end":{"line":57,"column":5}},"type":"if","locations":[{"start":{"line":52,"column":9},"end":{"line":57,"column":5}},{"start":{"line":52,"column":9},"end":{"line":57,"column":5}}],"line":52}},"s":{"0":1,"1":1,"2":1,"3":1,"4":236,"5":236,"6":1,"7":24,"8":24,"9":1,"10":260,"11":260,"12":260,"13":260,"14":4,"15":256,"16":154,"17":256,"18":256,"19":163,"20":93,"21":93,"22":93,"23":99,"24":99,"25":4,"26":252,"27":252,"28":252,"29":12,"30":9,"31":9,"32":13,"33":9,"34":4,"35":1,"36":3,"37":1},"f":{"0":236,"1":24,"2":260,"3":12,"4":9,"5":9,"6":13},"b":{"0":[236,24],"1":[260,236],"2":[4,256],"3":[260,236],"4":[154,102],"5":[163,93],"6":[4,95],"7":[9,4],"8":[1,3]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/decorator_utils.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/decorator_utils.ts"],"names":[],"mappings":"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","sourcesContent":["import * as ERROR_MSGS from \"../constants/error_msgs\";\nimport * as METADATA_KEY from \"../constants/metadata_keys\";\nimport { interfaces } from \"../interfaces/interfaces\";\n\nfunction tagParameter(\n annotationTarget: any,\n propertyName: string,\n parameterIndex: number,\n metadata: interfaces.Metadata\n) {\n const metadataKey = METADATA_KEY.TAGGED;\n _tagParameterOrProperty(metadataKey, annotationTarget, propertyName, metadata, parameterIndex);\n}\n\nfunction tagProperty(\n annotationTarget: any,\n propertyName: string,\n metadata: interfaces.Metadata\n) {\n const metadataKey = METADATA_KEY.TAGGED_PROP;\n _tagParameterOrProperty(metadataKey, annotationTarget.constructor, propertyName, metadata);\n}\n\nfunction _tagParameterOrProperty(\n metadataKey: string,\n annotationTarget: any,\n propertyName: string,\n metadata: interfaces.Metadata,\n parameterIndex?: number\n) {\n\n let paramsOrPropertiesMetadata: interfaces.ReflectResult = {};\n const isParameterDecorator = (typeof parameterIndex === \"number\");\n const key: string = (parameterIndex !== undefined && isParameterDecorator) ? parameterIndex.toString() : propertyName;\n\n // if the decorator is used as a parameter decorator, the property name must be provided\n if (isParameterDecorator && propertyName !== undefined) {\n throw new Error(ERROR_MSGS.INVALID_DECORATOR_OPERATION);\n }\n\n // read metadata if available\n if (Reflect.hasOwnMetadata(metadataKey, annotationTarget)) {\n paramsOrPropertiesMetadata = Reflect.getMetadata(metadataKey, annotationTarget);\n }\n\n // get metadata for the decorated parameter by its index\n let paramOrPropertyMetadata: interfaces.Metadata[] = paramsOrPropertiesMetadata[key];\n\n if (!Array.isArray(paramOrPropertyMetadata)) {\n paramOrPropertyMetadata = [];\n } else {\n for (const m of paramOrPropertyMetadata) {\n if (m.key === metadata.key) {\n throw new Error(`${ERROR_MSGS.DUPLICATED_METADATA} ${m.key.toString()}`);\n }\n }\n }\n\n // set metadata\n paramOrPropertyMetadata.push(metadata);\n paramsOrPropertiesMetadata[key] = paramOrPropertyMetadata;\n Reflect.defineMetadata(metadataKey, paramsOrPropertiesMetadata, annotationTarget);\n\n}\n\nfunction _decorate(decorators: any[], target: any): void {\n Reflect.decorate(decorators, target);\n}\n\nfunction _param(paramIndex: number, decorator: ParameterDecorator) {\n return function (target: any, key: string) { decorator(target, key, paramIndex); };\n}\n\n// Allows VanillaJS developers to use decorators:\n// decorate(injectable(\"Foo\", \"Bar\"), FooBar);\n// decorate(targetName(\"foo\", \"bar\"), FooBar);\n// decorate(named(\"foo\"), FooBar, 0);\n// decorate(tagged(\"bar\"), FooBar, 1);\nfunction decorate(\n decorator: (ClassDecorator | ParameterDecorator | MethodDecorator),\n target: any,\n parameterIndex?: number | string): void {\n\n if (typeof parameterIndex === \"number\") {\n _decorate([_param(parameterIndex, decorator as ParameterDecorator)], target);\n } else if (typeof parameterIndex === \"string\") {\n Reflect.decorate([decorator as MethodDecorator], target, parameterIndex);\n } else {\n _decorate([decorator as ClassDecorator], target);\n }\n}\n\nexport { decorate, tagParameter, tagProperty };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"906f1d79ebe4f9468eaf16749e04af38f047b803","contentHash":"608bc43ba788302f241133aee66153168e46cfb3aa9fd41cd41716b738468d47"},"/Users/dan/jsProjects/inversify/InversifyJS/src/constants/error_msgs.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/constants/error_msgs.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":962}},"2":{"start":{"line":4,"column":0},"end":{"line":4,"column":95}},"3":{"start":{"line":5,"column":0},"end":{"line":5,"column":85}},"4":{"start":{"line":6,"column":0},"end":{"line":6,"column":40}},"5":{"start":{"line":7,"column":0},"end":{"line":7,"column":40}},"6":{"start":{"line":8,"column":0},"end":{"line":8,"column":73}},"7":{"start":{"line":9,"column":0},"end":{"line":9,"column":62}},"8":{"start":{"line":10,"column":0},"end":{"line":10,"column":77}},"9":{"start":{"line":11,"column":0},"end":{"line":11,"column":86}},"10":{"start":{"line":12,"column":0},"end":{"line":12,"column":94}},"11":{"start":{"line":13,"column":34},"end":{"line":17,"column":1}},"12":{"start":{"line":14,"column":4},"end":{"line":16,"column":36}},"13":{"start":{"line":18,"column":0},"end":{"line":18,"column":66}},"14":{"start":{"line":19,"column":0},"end":{"line":19,"column":59}},"15":{"start":{"line":20,"column":0},"end":{"line":20,"column":78}},"16":{"start":{"line":21,"column":0},"end":{"line":21,"column":55}},"17":{"start":{"line":22,"column":0},"end":{"line":22,"column":74}},"18":{"start":{"line":23,"column":0},"end":{"line":23,"column":97}},"19":{"start":{"line":24,"column":0},"end":{"line":24,"column":92}},"20":{"start":{"line":25,"column":0},"end":{"line":26,"column":33}},"21":{"start":{"line":27,"column":0},"end":{"line":28,"column":84}},"22":{"start":{"line":29,"column":32},"end":{"line":36,"column":1}},"23":{"start":{"line":30,"column":17},"end":{"line":30,"column":19}},"24":{"start":{"line":31,"column":4},"end":{"line":33,"column":5}},"25":{"start":{"line":31,"column":18},"end":{"line":31,"column":19}},"26":{"start":{"line":32,"column":8},"end":{"line":32,"column":35}},"27":{"start":{"line":34,"column":4},"end":{"line":35,"column":96}},"28":{"start":{"line":37,"column":0},"end":{"line":37,"column":62}},"29":{"start":{"line":38,"column":0},"end":{"line":39,"column":25}},"30":{"start":{"line":40,"column":0},"end":{"line":41,"column":48}},"31":{"start":{"line":42,"column":0},"end":{"line":43,"column":19}},"32":{"start":{"line":44,"column":0},"end":{"line":45,"column":19}},"33":{"start":{"line":46,"column":0},"end":{"line":46,"column":115}},"34":{"start":{"line":47,"column":27},"end":{"line":53,"column":1}},"35":{"start":{"line":48,"column":17},"end":{"line":48,"column":19}},"36":{"start":{"line":49,"column":4},"end":{"line":51,"column":5}},"37":{"start":{"line":49,"column":18},"end":{"line":49,"column":19}},"38":{"start":{"line":50,"column":8},"end":{"line":50,"column":35}},"39":{"start":{"line":52,"column":4},"end":{"line":52,"column":75}},"40":{"start":{"line":54,"column":0},"end":{"line":54,"column":52}},"41":{"start":{"line":55,"column":37},"end":{"line":63,"column":1}},"42":{"start":{"line":56,"column":17},"end":{"line":56,"column":19}},"43":{"start":{"line":57,"column":4},"end":{"line":59,"column":5}},"44":{"start":{"line":57,"column":18},"end":{"line":57,"column":19}},"45":{"start":{"line":58,"column":8},"end":{"line":58,"column":35}},"46":{"start":{"line":60,"column":4},"end":{"line":62,"column":52}},"47":{"start":{"line":64,"column":0},"end":{"line":64,"column":72}},"48":{"start":{"line":65,"column":0},"end":{"line":65,"column":60}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":13,"column":34},"end":{"line":13,"column":35}},"loc":{"start":{"line":13,"column":50},"end":{"line":17,"column":1}},"line":13},"1":{"name":"(anonymous_1)","decl":{"start":{"line":29,"column":32},"end":{"line":29,"column":33}},"loc":{"start":{"line":29,"column":44},"end":{"line":36,"column":1}},"line":29},"2":{"name":"(anonymous_2)","decl":{"start":{"line":47,"column":27},"end":{"line":47,"column":28}},"loc":{"start":{"line":47,"column":39},"end":{"line":53,"column":1}},"line":47},"3":{"name":"(anonymous_3)","decl":{"start":{"line":55,"column":37},"end":{"line":55,"column":38}},"loc":{"start":{"line":55,"column":49},"end":{"line":63,"column":1}},"line":55}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":2,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":2,"24":2,"25":2,"26":2,"27":2,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":2,"36":2,"37":2,"38":4,"39":2,"40":1,"41":1,"42":3,"43":3,"44":3,"45":6,"46":3,"47":1,"48":1},"f":{"0":2,"1":2,"2":2,"3":3},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/constants/error_msgs.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/constants/error_msgs.ts"],"names":[],"mappings":";;;AAAa,QAAA,+BAA+B,GAAG,oDAAoD,CAAC;AACvF,QAAA,mBAAmB,GAAG,sDAAsD,CAAC;AAC7E,QAAA,aAAa,GAAG,eAAe,CAAC;AAChC,QAAA,aAAa,GAAG,eAAe,CAAC;AAChC,QAAA,eAAe,GAAG,8CAA8C,CAAC;AACjE,QAAA,aAAa,GAAG,qCAAqC,CAAC;AACtD,QAAA,cAAc,GAAG,mDAAmD,CAAC;AACrE,QAAA,6BAA6B,GAAG,6CAA6C,CAAC;AAC9E,QAAA,yBAAyB,GAAG,yDAAyD,CAAC;AAC5F,IAAM,2BAA2B,GAAG,UAAC,IAAY;IAC5C,OAAA,kEAAgE,IAAI,UAAO;QAC3E,wEAAwE;QACxE,2BAA2B;AAF3B,CAE2B,CAAC;AAH3B,QAAA,2BAA2B,+BAGA;AAC3B,QAAA,mBAAmB,GAAG,4BAA4B,CAAC;AACnD,QAAA,eAAe,GAAG,mDAAmD,CAAC;AACtE,QAAA,oBAAoB,GAAG,uBAAuB,CAAC;AAC/C,QAAA,2BAA2B,GAAG,mCAAmC,CAAC;AAClE,QAAA,yBAAyB,GAAG,4DAA4D,CAAC;AACzF,QAAA,wBAAwB,GAAG,wDAAwD,CAAC;AAEpF,QAAA,qBAAqB,GAAG,gEAAgE;IACjG,4BAA4B,CAAC;AAEpB,QAAA,2BAA2B,GAAG,yDAAyD;IAChG,+EAA+E,CAAC;AAE7E,IAAM,yBAAyB,GAAG;IAAC,gBAAgB;SAAhB,UAAgB,EAAhB,qBAAgB,EAAhB,IAAgB;QAAhB,2BAAgB;;IAAK,OAAA,2DAA2D;SACnH,MAAM,CAAC,CAAC,CAAC,4EAAyE,CAAA;AAD1B,CAC0B,CAAC;AAD7E,QAAA,yBAAyB,6BACoD;AAE7E,QAAA,mCAAmC,GAAG,4DAA4D;IAC3G,oBAAoB,CAAC;AAEZ,QAAA,uCAAuC,GAAG,+CAA+C;IAClG,2CAA2C,CAAC;AAEnC,QAAA,8CAA8C,GAAG,sDAAsD;IAChH,cAAc,CAAC;AAEN,QAAA,yCAAyC,GAAG,iDAAiD;IACtG,cAAc,CAAC;AAEN,QAAA,+BAA+B,GAAG,wEAAwE,CAAC;AACjH,IAAM,oBAAoB,GAAG;IAAC,gBAAgB;SAAhB,UAAgB,EAAhB,qBAAgB,EAAhB,IAAgB;QAAhB,2BAAgB;;IAAK,OAAA,mCAAiC,MAAM,CAAC,CAAC,CAAC,UAAK,MAAM,CAAC,CAAC,CAAG;AAA1D,CAA0D,CAAC;AAAxG,QAAA,oBAAoB,wBAAoF;AAE9G,IAAM,8BAA8B,GAAG;IAAC,gBAAgB;SAAhB,UAAgB,EAAhB,qBAAgB,EAAhB,IAAgB;QAAhB,2BAAgB;;IAAM,OAAA,+CAA+C;SAChH,oBAAkB,MAAM,CAAC,CAAC,CAAC,iDAA8C,CAAA;SACzE,yBAAuB,MAAM,CAAC,CAAC,CAAC,OAAI,CAAA;AAF6B,CAE7B,CAAC;AAF5B,QAAA,8BAA8B,kCAEF;AAE5B,QAAA,cAAc,GAAG,kCAAkC,CAAC","sourcesContent":["export const DUPLICATED_INJECTABLE_DECORATOR = \"Cannot apply @injectable decorator multiple times.\";\nexport const DUPLICATED_METADATA = \"Metadata key was used more than once in a parameter:\";\nexport const NULL_ARGUMENT = \"NULL argument\";\nexport const KEY_NOT_FOUND = \"Key Not Found\";\nexport const AMBIGUOUS_MATCH = \"Ambiguous match found for serviceIdentifier:\";\nexport const CANNOT_UNBIND = \"Could not unbind serviceIdentifier:\";\nexport const NOT_REGISTERED = \"No matching bindings found for serviceIdentifier:\";\nexport const MISSING_INJECTABLE_ANNOTATION = \"Missing required @injectable annotation in:\";\nexport const MISSING_INJECT_ANNOTATION = \"Missing required @inject or @multiInject annotation in:\";\nexport const UNDEFINED_INJECT_ANNOTATION = (name: string) =>\n `@inject called with undefined this could mean that the class ${name} has ` +\n \"a circular dependency problem. You can use a LazyServiceIdentifer to \" +\n \"overcome this limitation.\";\nexport const CIRCULAR_DEPENDENCY = \"Circular dependency found:\";\nexport const NOT_IMPLEMENTED = \"Sorry, this feature is not fully implemented yet.\";\nexport const INVALID_BINDING_TYPE = \"Invalid binding type:\";\nexport const NO_MORE_SNAPSHOTS_AVAILABLE = \"No snapshot available to restore.\";\nexport const INVALID_MIDDLEWARE_RETURN = \"Invalid return type in middleware. Middleware must return!\";\nexport const INVALID_FUNCTION_BINDING = \"Value provided to function binding must be a function!\";\n\nexport const INVALID_TO_SELF_VALUE = \"The toSelf function can only be applied when a constructor is \" +\n \"used as service identifier\";\n\nexport const INVALID_DECORATOR_OPERATION = \"The @inject @multiInject @tagged and @named decorators \" +\n \"must be applied to the parameters of a class constructor or a class property.\";\n\nexport const ARGUMENTS_LENGTH_MISMATCH = (...values: any[]) => \"The number of constructor arguments in the derived class \" +\n `${values[0]} must be >= than the number of constructor arguments of its base class.`;\n\nexport const CONTAINER_OPTIONS_MUST_BE_AN_OBJECT = \"Invalid Container constructor argument. Container options \" +\n \"must be an object.\";\n\nexport const CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE = \"Invalid Container option. Default scope must \" +\n \"be a string ('singleton' or 'transient').\";\n\nexport const CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE = \"Invalid Container option. Auto bind injectable must \" +\n \"be a boolean\";\n\nexport const CONTAINER_OPTIONS_INVALID_SKIP_BASE_CHECK = \"Invalid Container option. Skip base check must \" +\n \"be a boolean\";\n\nexport const MULTIPLE_POST_CONSTRUCT_METHODS = \"Cannot apply @postConstruct decorator multiple times in the same class\";\nexport const POST_CONSTRUCT_ERROR = (...values: any[]) => `@postConstruct error in class ${values[0]}: ${values[1]}`;\n\nexport const CIRCULAR_DEPENDENCY_IN_FACTORY = (...values: any[]) => \"It looks like there is a circular dependency \" +\n `in one of the '${values[0]}' bindings. Please investigate bindings with` +\n `service identifier '${values[1]}'.`;\n\nexport const STACK_OVERFLOW = \"Maximum call stack size exceeded\";\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"4960a6923ab5d5ebd32ebb6628388cd0195810cd","contentHash":"ea65b722fd7cf02d25c9ed3e34e047417e641020957f218d01402c716211fd76"},"/Users/dan/jsProjects/inversify/InversifyJS/src/constants/metadata_keys.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/constants/metadata_keys.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":286}},"2":{"start":{"line":4,"column":0},"end":{"line":4,"column":28}},"3":{"start":{"line":5,"column":0},"end":{"line":5,"column":26}},"4":{"start":{"line":6,"column":0},"end":{"line":6,"column":36}},"5":{"start":{"line":7,"column":0},"end":{"line":7,"column":34}},"6":{"start":{"line":8,"column":0},"end":{"line":8,"column":30}},"7":{"start":{"line":9,"column":0},"end":{"line":9,"column":42}},"8":{"start":{"line":10,"column":0},"end":{"line":10,"column":36}},"9":{"start":{"line":11,"column":0},"end":{"line":11,"column":47}},"10":{"start":{"line":12,"column":0},"end":{"line":12,"column":45}},"11":{"start":{"line":13,"column":0},"end":{"line":13,"column":49}},"12":{"start":{"line":14,"column":0},"end":{"line":14,"column":42}},"13":{"start":{"line":16,"column":4},"end":{"line":23,"column":6}},"14":{"start":{"line":25,"column":0},"end":{"line":25,"column":52}}},"fnMap":{"0":{"name":"getNonCustomTagKeys","decl":{"start":{"line":15,"column":9},"end":{"line":15,"column":28}},"loc":{"start":{"line":15,"column":31},"end":{"line":24,"column":1}},"line":15}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1},"f":{"0":1},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/constants/metadata_keys.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/constants/metadata_keys.ts"],"names":[],"mappings":";;;AACa,QAAA,SAAS,GAAG,OAAO,CAAC;AAGpB,QAAA,QAAQ,GAAG,MAAM,CAAC;AAGlB,QAAA,aAAa,GAAG,WAAW,CAAC;AAG5B,QAAA,YAAY,GAAG,UAAU,CAAC;AAG1B,QAAA,UAAU,GAAG,QAAQ,CAAC;AAGtB,QAAA,gBAAgB,GAAG,cAAc,CAAC;AAGlC,QAAA,MAAM,GAAG,kBAAkB,CAAC;AAG5B,QAAA,WAAW,GAAG,wBAAwB,CAAC;AAGvC,QAAA,WAAW,GAAG,sBAAsB,CAAC;AAGrC,QAAA,kBAAkB,GAAG,mBAAmB,CAAC;AAGzC,QAAA,cAAc,GAAG,gBAAgB,CAAC;AAE/C,SAAS,mBAAmB;IACxB,OAAO;QACH,kBAAU;QACV,wBAAgB;QAChB,gBAAQ;QACR,qBAAa;QACb,iBAAS;QACT,oBAAY;KACf,CAAC;AACN,CAAC;AAEY,QAAA,mBAAmB,GAAa,mBAAmB,EAAE,CAAC","sourcesContent":["// Used for named bindings\nexport const NAMED_TAG = \"named\";\n\n// The name of the target at design time\nexport const NAME_TAG = \"name\";\n\n// The for unmanaged injections (in base classes when using inheritance)\nexport const UNMANAGED_TAG = \"unmanaged\";\n\n// The for optional injections\nexport const OPTIONAL_TAG = \"optional\";\n\n// The type of the binding at design time\nexport const INJECT_TAG = \"inject\";\n\n// The type of the binding at design type for multi-injections\nexport const MULTI_INJECT_TAG = \"multi_inject\";\n\n// used to store constructor arguments tags\nexport const TAGGED = \"inversify:tagged\";\n\n// used to store class properties tags\nexport const TAGGED_PROP = \"inversify:tagged_props\";\n\n// used to store types to be injected\nexport const PARAM_TYPES = \"inversify:paramtypes\";\n\n// used to access design time types\nexport const DESIGN_PARAM_TYPES = \"design:paramtypes\";\n\n// used to identify postConstruct functions\nexport const POST_CONSTRUCT = \"post_construct\";\n\nfunction getNonCustomTagKeys(): string[] {\n return [\n INJECT_TAG,\n MULTI_INJECT_TAG,\n NAME_TAG,\n UNMANAGED_TAG,\n NAMED_TAG,\n OPTIONAL_TAG,\n ];\n}\n\nexport const NON_CUSTOM_TAG_KEYS: string[] = getNonCustomTagKeys();\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"37e04d36d02ff2bfd296e51c4c2abbc7286fea5f","contentHash":"296fa45f11d90c4fbdf52ddb3d1d467bced5c37902ea0e1e829575e1c7b452b2"},"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/inject.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/inject.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":55}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":53}},"3":{"start":{"line":5,"column":19},"end":{"line":5,"column":56}},"4":{"start":{"line":6,"column":17},"end":{"line":6,"column":48}},"5":{"start":{"line":7,"column":24},"end":{"line":7,"column":52}},"6":{"start":{"line":8,"column":28},"end":{"line":16,"column":3}},"7":{"start":{"line":10,"column":8},"end":{"line":10,"column":22}},"8":{"start":{"line":12,"column":4},"end":{"line":14,"column":6}},"9":{"start":{"line":13,"column":8},"end":{"line":13,"column":26}},"10":{"start":{"line":15,"column":4},"end":{"line":15,"column":32}},"11":{"start":{"line":17,"column":0},"end":{"line":17,"column":52}},"12":{"start":{"line":19,"column":4},"end":{"line":30,"column":6}},"13":{"start":{"line":20,"column":8},"end":{"line":22,"column":9}},"14":{"start":{"line":21,"column":12},"end":{"line":21,"column":83}},"15":{"start":{"line":23,"column":23},"end":{"line":23,"column":90}},"16":{"start":{"line":24,"column":8},"end":{"line":29,"column":9}},"17":{"start":{"line":25,"column":12},"end":{"line":25,"column":79}},"18":{"start":{"line":28,"column":12},"end":{"line":28,"column":71}},"19":{"start":{"line":32,"column":0},"end":{"line":32,"column":24}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":28},"end":{"line":8,"column":29}},"loc":{"start":{"line":8,"column":40},"end":{"line":16,"column":1}},"line":8},"1":{"name":"LazyServiceIdentifer","decl":{"start":{"line":9,"column":13},"end":{"line":9,"column":33}},"loc":{"start":{"line":9,"column":38},"end":{"line":11,"column":5}},"line":9},"2":{"name":"(anonymous_2)","decl":{"start":{"line":12,"column":44},"end":{"line":12,"column":45}},"loc":{"start":{"line":12,"column":56},"end":{"line":14,"column":5}},"line":12},"3":{"name":"inject","decl":{"start":{"line":18,"column":9},"end":{"line":18,"column":15}},"loc":{"start":{"line":18,"column":35},"end":{"line":31,"column":1}},"line":18},"4":{"name":"(anonymous_4)","decl":{"start":{"line":19,"column":11},"end":{"line":19,"column":12}},"loc":{"start":{"line":19,"column":47},"end":{"line":30,"column":5}},"line":19}},"branchMap":{"0":{"loc":{"start":{"line":20,"column":8},"end":{"line":22,"column":9}},"type":"if","locations":[{"start":{"line":20,"column":8},"end":{"line":22,"column":9}},{"start":{"line":20,"column":8},"end":{"line":22,"column":9}}],"line":20},"1":{"loc":{"start":{"line":24,"column":8},"end":{"line":29,"column":9}},"type":"if","locations":[{"start":{"line":24,"column":8},"end":{"line":29,"column":9}},{"start":{"line":24,"column":8},"end":{"line":29,"column":9}}],"line":24}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":0,"10":1,"11":1,"12":134,"13":134,"14":1,"15":133,"16":133,"17":122,"18":11,"19":1},"f":{"0":1,"1":1,"2":0,"3":134,"4":134},"b":{"0":[1,133],"1":[122,11]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/inject.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/inject.ts"],"names":[],"mappings":";;;AAAA,sDAAsE;AACtE,yDAA2D;AAE3D,iDAAgD;AAChD,qDAA8D;AAI9D;IAEE,8BAAmB,EAAyC;QACxD,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;IAClB,CAAC;IAEM,qCAAM,GAAb;QACE,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;IACH,2BAAC;AAAD,CAAC,AATD,IASC;AATY,oDAAoB;AAWjC,SAAS,MAAM,CAAC,iBAA0C;IACxD,OAAO,UAAS,MAAW,EAAE,SAAiB,EAAE,KAAmC;QACjF,IAAI,iBAAiB,KAAK,SAAS,EAAE;YACnC,MAAM,IAAI,KAAK,CAAC,wCAA2B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;SAC3D;QAED,IAAM,QAAQ,GAAG,IAAI,mBAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;QAE1E,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,8BAAY,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;SAClD;aAAM;YACL,6BAAW,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;SAC1C;IAEH,CAAC,CAAC;AACJ,CAAC;AAEQ,wBAAM","sourcesContent":["import { UNDEFINED_INJECT_ANNOTATION } from \"../constants/error_msgs\";\r\nimport * as METADATA_KEY from \"../constants/metadata_keys\";\r\nimport { interfaces } from \"../interfaces/interfaces\";\r\nimport { Metadata } from \"../planning/metadata\";\r\nimport { tagParameter, tagProperty } from \"./decorator_utils\";\r\n\r\nexport type ServiceIdentifierOrFunc = interfaces.ServiceIdentifier<any> | LazyServiceIdentifer;\r\n\r\nexport class LazyServiceIdentifer<T = any> {\r\n private _cb: () => interfaces.ServiceIdentifier<T>;\r\n public constructor(cb: () => interfaces.ServiceIdentifier<T>) {\r\n this._cb = cb;\r\n }\r\n\r\n public unwrap() {\r\n return this._cb();\r\n }\r\n}\r\n\r\nfunction inject(serviceIdentifier: ServiceIdentifierOrFunc) {\r\n return function(target: any, targetKey: string, index?: number | PropertyDescriptor): void {\r\n if (serviceIdentifier === undefined) {\r\n throw new Error(UNDEFINED_INJECT_ANNOTATION(target.name));\r\n }\r\n\r\n const metadata = new Metadata(METADATA_KEY.INJECT_TAG, serviceIdentifier);\r\n\r\n if (typeof index === \"number\") {\r\n tagParameter(target, targetKey, index, metadata);\r\n } else {\r\n tagProperty(target, targetKey, metadata);\r\n }\r\n\r\n };\r\n}\r\n\r\nexport { inject };\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"668bce71f74de4f2139aaa9b01e5517323745d68","contentHash":"097ceca45c44dac0e371268f4e93be61befdd07bc16fe2579cf12ac4cd60f8b2"},"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/metadata.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/metadata.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":26}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":56}},"3":{"start":{"line":5,"column":16},"end":{"line":19,"column":3}},"4":{"start":{"line":7,"column":8},"end":{"line":7,"column":23}},"5":{"start":{"line":8,"column":8},"end":{"line":8,"column":27}},"6":{"start":{"line":10,"column":4},"end":{"line":17,"column":6}},"7":{"start":{"line":11,"column":8},"end":{"line":16,"column":9}},"8":{"start":{"line":12,"column":12},"end":{"line":12,"column":59}},"9":{"start":{"line":15,"column":12},"end":{"line":15,"column":92}},"10":{"start":{"line":18,"column":4},"end":{"line":18,"column":20}},"11":{"start":{"line":20,"column":0},"end":{"line":20,"column":28}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":16},"end":{"line":5,"column":17}},"loc":{"start":{"line":5,"column":28},"end":{"line":19,"column":1}},"line":5},"1":{"name":"Metadata","decl":{"start":{"line":6,"column":13},"end":{"line":6,"column":21}},"loc":{"start":{"line":6,"column":34},"end":{"line":9,"column":5}},"line":6},"2":{"name":"(anonymous_2)","decl":{"start":{"line":10,"column":34},"end":{"line":10,"column":35}},"loc":{"start":{"line":10,"column":46},"end":{"line":17,"column":5}},"line":10}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":8},"end":{"line":16,"column":9}},"type":"if","locations":[{"start":{"line":11,"column":8},"end":{"line":16,"column":9}},{"start":{"line":11,"column":8},"end":{"line":16,"column":9}}],"line":11}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1395,"5":1395,"6":1,"7":23,"8":15,"9":8,"10":1,"11":1},"f":{"0":1,"1":1395,"2":23},"b":{"0":[15,8]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/metadata.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/planning/metadata.ts"],"names":[],"mappings":";;;AAAA,yDAA2D;AAG3D;IAKE,kBAAmB,GAA6B,EAAE,KAAU;QAC1D,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAEM,2BAAQ,GAAf;QACE,IAAI,IAAI,CAAC,GAAG,KAAK,YAAY,CAAC,SAAS,EAAE;YACvC,OAAO,YAAU,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAG,CAAC;SAC3C;aAAM;YACL,OAAO,mBAAiB,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,iBAAY,IAAI,CAAC,KAAK,OAAI,CAAC;SACvE;IACH,CAAC;IACH,eAAC;AAAD,CAAC,AAjBD,IAiBC;AAEQ,4BAAQ","sourcesContent":["import * as METADATA_KEY from \"../constants/metadata_keys\";\nimport { interfaces } from \"../interfaces/interfaces\";\n\nclass Metadata implements interfaces.Metadata {\n\n public key: string | number | symbol;\n public value: any;\n\n public constructor(key: string | number | symbol, value: any) {\n this.key = key;\n this.value = value;\n }\n\n public toString() {\n if (this.key === METADATA_KEY.NAMED_TAG) {\n return `named: ${this.value.toString()} `;\n } else {\n return `tagged: { key:${this.key.toString()}, value: ${this.value} }`;\n }\n }\n}\n\nexport { Metadata };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"5e42a6df487475b9720e7dc6acedf2fafa51d74b","contentHash":"0399a40687d163f2daf3011b29074827b78562548c84e75f814c4d806ba94778"},"/Users/dan/jsProjects/inversify/InversifyJS/src/inversify.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/inversify.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":625}},"2":{"start":{"line":4,"column":11},"end":{"line":4,"column":47}},"3":{"start":{"line":5,"column":0},"end":{"line":5,"column":28}},"4":{"start":{"line":6,"column":18},"end":{"line":6,"column":50}},"5":{"start":{"line":7,"column":0},"end":{"line":7,"column":118}},"6":{"start":{"line":7,"column":83},"end":{"line":7,"column":112}},"7":{"start":{"line":8,"column":22},"end":{"line":8,"column":58}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":136}},"9":{"start":{"line":9,"column":90},"end":{"line":9,"column":130}},"10":{"start":{"line":10,"column":0},"end":{"line":10,"column":134}},"11":{"start":{"line":10,"column":89},"end":{"line":10,"column":128}},"12":{"start":{"line":11,"column":0},"end":{"line":11,"column":132}},"13":{"start":{"line":11,"column":88},"end":{"line":11,"column":126}},"14":{"start":{"line":12,"column":25},"end":{"line":12,"column":64}},"15":{"start":{"line":13,"column":0},"end":{"line":13,"column":147}},"16":{"start":{"line":13,"column":94},"end":{"line":13,"column":141}},"17":{"start":{"line":14,"column":0},"end":{"line":14,"column":137}},"18":{"start":{"line":14,"column":89},"end":{"line":14,"column":131}},"19":{"start":{"line":15,"column":19},"end":{"line":15,"column":53}},"20":{"start":{"line":16,"column":0},"end":{"line":16,"column":121}},"21":{"start":{"line":16,"column":84},"end":{"line":16,"column":115}},"22":{"start":{"line":17,"column":15},"end":{"line":17,"column":45}},"23":{"start":{"line":18,"column":0},"end":{"line":18,"column":109}},"24":{"start":{"line":18,"column":80},"end":{"line":18,"column":103}},"25":{"start":{"line":19,"column":14},"end":{"line":19,"column":43}},"26":{"start":{"line":20,"column":0},"end":{"line":20,"column":106}},"27":{"start":{"line":20,"column":79},"end":{"line":20,"column":100}},"28":{"start":{"line":21,"column":15},"end":{"line":21,"column":45}},"29":{"start":{"line":22,"column":0},"end":{"line":22,"column":109}},"30":{"start":{"line":22,"column":80},"end":{"line":22,"column":103}},"31":{"start":{"line":23,"column":0},"end":{"line":23,"column":137}},"32":{"start":{"line":23,"column":94},"end":{"line":23,"column":131}},"33":{"start":{"line":24,"column":17},"end":{"line":24,"column":49}},"34":{"start":{"line":25,"column":0},"end":{"line":25,"column":115}},"35":{"start":{"line":25,"column":82},"end":{"line":25,"column":109}},"36":{"start":{"line":26,"column":18},"end":{"line":26,"column":51}},"37":{"start":{"line":27,"column":0},"end":{"line":27,"column":118}},"38":{"start":{"line":27,"column":83},"end":{"line":27,"column":112}},"39":{"start":{"line":28,"column":21},"end":{"line":28,"column":57}},"40":{"start":{"line":29,"column":0},"end":{"line":29,"column":125}},"41":{"start":{"line":29,"column":85},"end":{"line":29,"column":119}},"42":{"start":{"line":30,"column":20},"end":{"line":30,"column":55}},"43":{"start":{"line":31,"column":0},"end":{"line":31,"column":122}},"44":{"start":{"line":31,"column":84},"end":{"line":31,"column":116}},"45":{"start":{"line":32,"column":23},"end":{"line":32,"column":61}},"46":{"start":{"line":33,"column":0},"end":{"line":33,"column":131}},"47":{"start":{"line":33,"column":87},"end":{"line":33,"column":125}},"48":{"start":{"line":34,"column":24},"end":{"line":34,"column":61}},"49":{"start":{"line":35,"column":0},"end":{"line":35,"column":134}},"50":{"start":{"line":35,"column":88},"end":{"line":35,"column":128}},"51":{"start":{"line":36,"column":11},"end":{"line":36,"column":32}},"52":{"start":{"line":37,"column":0},"end":{"line":37,"column":97}},"53":{"start":{"line":37,"column":76},"end":{"line":37,"column":91}},"54":{"start":{"line":38,"column":24},"end":{"line":38,"column":63}},"55":{"start":{"line":39,"column":0},"end":{"line":39,"column":122}},"56":{"start":{"line":39,"column":82},"end":{"line":39,"column":116}},"57":{"start":{"line":40,"column":27},"end":{"line":40,"column":65}},"58":{"start":{"line":41,"column":0},"end":{"line":41,"column":145}},"59":{"start":{"line":41,"column":92},"end":{"line":41,"column":139}},"60":{"start":{"line":42,"column":0},"end":{"line":42,"column":141}},"61":{"start":{"line":42,"column":90},"end":{"line":42,"column":135}},"62":{"start":{"line":43,"column":0},"end":{"line":43,"column":139}},"63":{"start":{"line":43,"column":89},"end":{"line":43,"column":133}},"64":{"start":{"line":44,"column":0},"end":{"line":44,"column":137}},"65":{"start":{"line":44,"column":88},"end":{"line":44,"column":131}},"66":{"start":{"line":45,"column":22},"end":{"line":45,"column":54}},"67":{"start":{"line":46,"column":0},"end":{"line":46,"column":160}},"68":{"start":{"line":46,"column":102},"end":{"line":46,"column":154}},"69":{"start":{"line":47,"column":22},"end":{"line":47,"column":54}},"70":{"start":{"line":48,"column":0},"end":{"line":48,"column":140}},"71":{"start":{"line":48,"column":92},"end":{"line":48,"column":134}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":69},"end":{"line":7,"column":70}},"loc":{"start":{"line":7,"column":81},"end":{"line":7,"column":114}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":9,"column":76},"end":{"line":9,"column":77}},"loc":{"start":{"line":9,"column":88},"end":{"line":9,"column":132}},"line":9},"2":{"name":"(anonymous_2)","decl":{"start":{"line":10,"column":75},"end":{"line":10,"column":76}},"loc":{"start":{"line":10,"column":87},"end":{"line":10,"column":130}},"line":10},"3":{"name":"(anonymous_3)","decl":{"start":{"line":11,"column":74},"end":{"line":11,"column":75}},"loc":{"start":{"line":11,"column":86},"end":{"line":11,"column":128}},"line":11},"4":{"name":"(anonymous_4)","decl":{"start":{"line":13,"column":80},"end":{"line":13,"column":81}},"loc":{"start":{"line":13,"column":92},"end":{"line":13,"column":143}},"line":13},"5":{"name":"(anonymous_5)","decl":{"start":{"line":14,"column":75},"end":{"line":14,"column":76}},"loc":{"start":{"line":14,"column":87},"end":{"line":14,"column":133}},"line":14},"6":{"name":"(anonymous_6)","decl":{"start":{"line":16,"column":70},"end":{"line":16,"column":71}},"loc":{"start":{"line":16,"column":82},"end":{"line":16,"column":117}},"line":16},"7":{"name":"(anonymous_7)","decl":{"start":{"line":18,"column":66},"end":{"line":18,"column":67}},"loc":{"start":{"line":18,"column":78},"end":{"line":18,"column":105}},"line":18},"8":{"name":"(anonymous_8)","decl":{"start":{"line":20,"column":65},"end":{"line":20,"column":66}},"loc":{"start":{"line":20,"column":77},"end":{"line":20,"column":102}},"line":20},"9":{"name":"(anonymous_9)","decl":{"start":{"line":22,"column":66},"end":{"line":22,"column":67}},"loc":{"start":{"line":22,"column":78},"end":{"line":22,"column":105}},"line":22},"10":{"name":"(anonymous_10)","decl":{"start":{"line":23,"column":80},"end":{"line":23,"column":81}},"loc":{"start":{"line":23,"column":92},"end":{"line":23,"column":133}},"line":23},"11":{"name":"(anonymous_11)","decl":{"start":{"line":25,"column":68},"end":{"line":25,"column":69}},"loc":{"start":{"line":25,"column":80},"end":{"line":25,"column":111}},"line":25},"12":{"name":"(anonymous_12)","decl":{"start":{"line":27,"column":69},"end":{"line":27,"column":70}},"loc":{"start":{"line":27,"column":81},"end":{"line":27,"column":114}},"line":27},"13":{"name":"(anonymous_13)","decl":{"start":{"line":29,"column":71},"end":{"line":29,"column":72}},"loc":{"start":{"line":29,"column":83},"end":{"line":29,"column":121}},"line":29},"14":{"name":"(anonymous_14)","decl":{"start":{"line":31,"column":70},"end":{"line":31,"column":71}},"loc":{"start":{"line":31,"column":82},"end":{"line":31,"column":118}},"line":31},"15":{"name":"(anonymous_15)","decl":{"start":{"line":33,"column":73},"end":{"line":33,"column":74}},"loc":{"start":{"line":33,"column":85},"end":{"line":33,"column":127}},"line":33},"16":{"name":"(anonymous_16)","decl":{"start":{"line":35,"column":74},"end":{"line":35,"column":75}},"loc":{"start":{"line":35,"column":86},"end":{"line":35,"column":130}},"line":35},"17":{"name":"(anonymous_17)","decl":{"start":{"line":37,"column":62},"end":{"line":37,"column":63}},"loc":{"start":{"line":37,"column":74},"end":{"line":37,"column":93}},"line":37},"18":{"name":"(anonymous_18)","decl":{"start":{"line":39,"column":68},"end":{"line":39,"column":69}},"loc":{"start":{"line":39,"column":80},"end":{"line":39,"column":118}},"line":39},"19":{"name":"(anonymous_19)","decl":{"start":{"line":41,"column":78},"end":{"line":41,"column":79}},"loc":{"start":{"line":41,"column":90},"end":{"line":41,"column":141}},"line":41},"20":{"name":"(anonymous_20)","decl":{"start":{"line":42,"column":76},"end":{"line":42,"column":77}},"loc":{"start":{"line":42,"column":88},"end":{"line":42,"column":137}},"line":42},"21":{"name":"(anonymous_21)","decl":{"start":{"line":43,"column":75},"end":{"line":43,"column":76}},"loc":{"start":{"line":43,"column":87},"end":{"line":43,"column":135}},"line":43},"22":{"name":"(anonymous_22)","decl":{"start":{"line":44,"column":74},"end":{"line":44,"column":75}},"loc":{"start":{"line":44,"column":86},"end":{"line":44,"column":133}},"line":44},"23":{"name":"(anonymous_23)","decl":{"start":{"line":46,"column":88},"end":{"line":46,"column":89}},"loc":{"start":{"line":46,"column":100},"end":{"line":46,"column":156}},"line":46},"24":{"name":"(anonymous_24)","decl":{"start":{"line":48,"column":78},"end":{"line":48,"column":79}},"loc":{"start":{"line":48,"column":90},"end":{"line":48,"column":136}},"line":48}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":75,"7":1,"8":1,"9":1,"10":1,"11":0,"12":1,"13":0,"14":1,"15":1,"16":0,"17":1,"18":0,"19":1,"20":1,"21":138,"22":1,"23":1,"24":9,"25":1,"26":1,"27":15,"28":1,"29":1,"30":65,"31":1,"32":0,"33":1,"34":1,"35":6,"36":1,"37":1,"38":6,"39":1,"40":1,"41":3,"42":1,"43":1,"44":1,"45":1,"46":1,"47":0,"48":1,"49":1,"50":1,"51":1,"52":1,"53":0,"54":1,"55":1,"56":4,"57":1,"58":1,"59":0,"60":1,"61":0,"62":1,"63":0,"64":1,"65":0,"66":1,"67":1,"68":0,"69":1,"70":1,"71":1},"f":{"0":75,"1":1,"2":0,"3":0,"4":0,"5":0,"6":138,"7":9,"8":15,"9":65,"10":0,"11":6,"12":6,"13":3,"14":1,"15":0,"16":1,"17":0,"18":4,"19":0,"20":0,"21":0,"22":0,"23":0,"24":1},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/inversify.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/inversify.ts"],"names":[],"mappings":";;;AAAA,gDAAkD;AACrC,QAAA,YAAY,GAAG,IAAI,CAAC;AACjC,mDAAkD;AAAzC,sGAAA,SAAS,OAAA;AAClB,2DAA8F;AAArF,iHAAA,gBAAgB,OAAA;AAAE,gHAAA,eAAe,OAAA;AAAE,+GAAA,cAAc,OAAA;AAC1D,iEAAqF;AAA5E,wHAAA,oBAAoB,OAAA;AAAE,mHAAA,eAAe,OAAA;AAC9C,sDAAqD;AAA5C,wGAAA,UAAU,OAAA;AACnB,8CAA6C;AAApC,gGAAA,MAAM,OAAA;AACf,4CAA2C;AAAlC,8FAAA,KAAK,OAAA;AACd,8CAAmE;AAA1D,gGAAA,MAAM,OAAA;AAAE,8GAAA,oBAAoB,OAAA;AACrC,kDAAiD;AAAxC,oGAAA,QAAQ,OAAA;AACjB,oDAAmD;AAA1C,sGAAA,SAAS,OAAA;AAClB,0DAAwD;AAA/C,2GAAA,WAAW,OAAA;AACpB,wDAAsD;AAA7C,yGAAA,UAAU,OAAA;AACnB,8DAA4D;AAAnD,+GAAA,aAAa,OAAA;AACtB,8DAA4D;AAAnD,iHAAA,cAAc,OAAA;AACvB,iCAAgC;AAAvB,wFAAA,EAAE,OAAA;AAEX,gEAAwD;AAA/C,2GAAA,QAAQ,OAAA;AACjB,kEAAoH;AAA3G,wHAAA,kBAAkB,OAAA;AAAE,sHAAA,gBAAgB,OAAA;AAAE,qHAAA,eAAe,OAAA;AAAE,oHAAA,cAAc,OAAA;AAC9E,uDAAqE;AAA5D,6HAAA,4BAA4B,OAAA;AACrC,uDAA2D;AAAlD,mHAAA,kBAAkB,OAAA","sourcesContent":["import * as keys from \"./constants/metadata_keys\";\nexport const METADATA_KEY = keys;\nexport { Container } from \"./container/container\";\nexport { BindingScopeEnum, BindingTypeEnum, TargetTypeEnum } from \"./constants/literal_types\";\nexport { AsyncContainerModule, ContainerModule } from \"./container/container_module\";\nexport { injectable } from \"./annotation/injectable\";\nexport { tagged } from \"./annotation/tagged\";\nexport { named } from \"./annotation/named\";\nexport { inject, LazyServiceIdentifer } from \"./annotation/inject\";\nexport { optional } from \"./annotation/optional\";\nexport { unmanaged } from \"./annotation/unmanaged\";\nexport { multiInject } from \"./annotation/multi_inject\";\nexport { targetName } from \"./annotation/target_name\";\nexport { postConstruct } from \"./annotation/post_construct\";\nexport { MetadataReader } from \"./planning/metadata_reader\";\nexport { id } from \"./utils/id\";\nexport { interfaces } from \"./interfaces/interfaces\";\nexport { decorate } from \"./annotation/decorator_utils\";\nexport { traverseAncerstors, taggedConstraint, namedConstraint, typeConstraint } from \"./syntax/constraint_helpers\";\nexport { getServiceIdentifierAsString } from \"./utils/serialization\";\nexport { multiBindToService } from \"./utils/binding_utils\";\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"a19df9309869e128fcc4d864c9cefcc15525f7ea","contentHash":"4dba0dfff97d0d5f0e8afea6ef3dae6030aa5e176f2e6c8c32784044d8adce4f"},"/Users/dan/jsProjects/inversify/InversifyJS/src/container/container.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/container/container.ts","statementMap":{"0":{"start":{"line":2,"column":16},"end":{"line":10,"column":1}},"1":{"start":{"line":3,"column":28},"end":{"line":3,"column":110}},"2":{"start":{"line":3,"column":91},"end":{"line":3,"column":106}},"3":{"start":{"line":4,"column":4},"end":{"line":9,"column":7}},"4":{"start":{"line":5,"column":36},"end":{"line":5,"column":97}},"5":{"start":{"line":5,"column":42},"end":{"line":5,"column":70}},"6":{"start":{"line":5,"column":85},"end":{"line":5,"column":95}},"7":{"start":{"line":6,"column":35},"end":{"line":6,"column":100}},"8":{"start":{"line":6,"column":41},"end":{"line":6,"column":73}},"9":{"start":{"line":6,"column":88},"end":{"line":6,"column":98}},"10":{"start":{"line":7,"column":32},"end":{"line":7,"column":116}},"11":{"start":{"line":8,"column":8},"end":{"line":8,"column":78}},"12":{"start":{"line":11,"column":18},"end":{"line":37,"column":1}},"13":{"start":{"line":12,"column":12},"end":{"line":12,"column":104}},"14":{"start":{"line":12,"column":43},"end":{"line":12,"column":68}},"15":{"start":{"line":12,"column":57},"end":{"line":12,"column":68}},"16":{"start":{"line":12,"column":69},"end":{"line":12,"column":81}},"17":{"start":{"line":13,"column":4},"end":{"line":13,"column":157}},"18":{"start":{"line":13,"column":138},"end":{"line":13,"column":150}},"19":{"start":{"line":14,"column":23},"end":{"line":14,"column":68}},"20":{"start":{"line":14,"column":45},"end":{"line":14,"column":65}},"21":{"start":{"line":16,"column":8},"end":{"line":16,"column":70}},"22":{"start":{"line":16,"column":15},"end":{"line":16,"column":70}},"23":{"start":{"line":17,"column":8},"end":{"line":34,"column":66}},"24":{"start":{"line":17,"column":18},"end":{"line":34,"column":66}},"25":{"start":{"line":18,"column":12},"end":{"line":18,"column":169}},"26":{"start":{"line":18,"column":160},"end":{"line":18,"column":169}},"27":{"start":{"line":19,"column":12},"end":{"line":19,"column":52}},"28":{"start":{"line":19,"column":26},"end":{"line":19,"column":52}},"29":{"start":{"line":20,"column":12},"end":{"line":32,"column":13}},"30":{"start":{"line":21,"column":32},"end":{"line":21,"column":39}},"31":{"start":{"line":21,"column":40},"end":{"line":21,"column":46}},"32":{"start":{"line":22,"column":24},"end":{"line":22,"column":34}},"33":{"start":{"line":22,"column":35},"end":{"line":22,"column":72}},"34":{"start":{"line":23,"column":24},"end":{"line":23,"column":34}},"35":{"start":{"line":23,"column":35},"end":{"line":23,"column":45}},"36":{"start":{"line":23,"column":46},"end":{"line":23,"column":55}},"37":{"start":{"line":23,"column":56},"end":{"line":23,"column":65}},"38":{"start":{"line":24,"column":24},"end":{"line":24,"column":41}},"39":{"start":{"line":24,"column":42},"end":{"line":24,"column":55}},"40":{"start":{"line":24,"column":56},"end":{"line":24,"column":65}},"41":{"start":{"line":26,"column":20},"end":{"line":26,"column":128}},"42":{"start":{"line":26,"column":110},"end":{"line":26,"column":116}},"43":{"start":{"line":26,"column":117},"end":{"line":26,"column":126}},"44":{"start":{"line":27,"column":20},"end":{"line":27,"column":106}},"45":{"start":{"line":27,"column":81},"end":{"line":27,"column":97}},"46":{"start":{"line":27,"column":98},"end":{"line":27,"column":104}},"47":{"start":{"line":28,"column":20},"end":{"line":28,"column":89}},"48":{"start":{"line":28,"column":57},"end":{"line":28,"column":72}},"49":{"start":{"line":28,"column":73},"end":{"line":28,"column":80}},"50":{"start":{"line":28,"column":81},"end":{"line":28,"column":87}},"51":{"start":{"line":29,"column":20},"end":{"line":29,"column":87}},"52":{"start":{"line":29,"column":47},"end":{"line":29,"column":62}},"53":{"start":{"line":29,"column":63},"end":{"line":29,"column":78}},"54":{"start":{"line":29,"column":79},"end":{"line":29,"column":85}},"55":{"start":{"line":30,"column":20},"end":{"line":30,"column":42}},"56":{"start":{"line":30,"column":30},"end":{"line":30,"column":42}},"57":{"start":{"line":31,"column":20},"end":{"line":31,"column":33}},"58":{"start":{"line":31,"column":34},"end":{"line":31,"column":43}},"59":{"start":{"line":33,"column":12},"end":{"line":33,"column":39}},"60":{"start":{"line":34,"column":22},"end":{"line":34,"column":34}},"61":{"start":{"line":34,"column":35},"end":{"line":34,"column":41}},"62":{"start":{"line":34,"column":54},"end":{"line":34,"column":64}},"63":{"start":{"line":35,"column":8},"end":{"line":35,"column":35}},"64":{"start":{"line":35,"column":23},"end":{"line":35,"column":35}},"65":{"start":{"line":35,"column":36},"end":{"line":35,"column":89}},"66":{"start":{"line":38,"column":20},"end":{"line":42,"column":1}},"67":{"start":{"line":39,"column":4},"end":{"line":40,"column":24}},"68":{"start":{"line":39,"column":17},"end":{"line":39,"column":18}},"69":{"start":{"line":39,"column":25},"end":{"line":39,"column":36}},"70":{"start":{"line":39,"column":42},"end":{"line":39,"column":51}},"71":{"start":{"line":40,"column":8},"end":{"line":40,"column":24}},"72":{"start":{"line":41,"column":4},"end":{"line":41,"column":14}},"73":{"start":{"line":43,"column":0},"end":{"line":43,"column":62}},"74":{"start":{"line":44,"column":0},"end":{"line":44,"column":27}},"75":{"start":{"line":45,"column":16},"end":{"line":45,"column":46}},"76":{"start":{"line":46,"column":17},"end":{"line":46,"column":51}},"77":{"start":{"line":47,"column":22},"end":{"line":47,"column":59}},"78":{"start":{"line":48,"column":19},"end":{"line":48,"column":56}},"79":{"start":{"line":49,"column":24},"end":{"line":49,"column":62}},"80":{"start":{"line":50,"column":16},"end":{"line":50,"column":46}},"81":{"start":{"line":51,"column":17},"end":{"line":51,"column":50}},"82":{"start":{"line":52,"column":26},"end":{"line":52,"column":64}},"83":{"start":{"line":53,"column":11},"end":{"line":53,"column":33}},"84":{"start":{"line":54,"column":22},"end":{"line":54,"column":55}},"85":{"start":{"line":55,"column":27},"end":{"line":55,"column":58}},"86":{"start":{"line":56,"column":15},"end":{"line":56,"column":34}},"87":{"start":{"line":57,"column":17},"end":{"line":340,"column":3}},"88":{"start":{"line":59,"column":8},"end":{"line":59,"column":37}},"89":{"start":{"line":60,"column":22},"end":{"line":60,"column":44}},"90":{"start":{"line":61,"column":8},"end":{"line":63,"column":9}},"91":{"start":{"line":62,"column":12},"end":{"line":62,"column":81}},"92":{"start":{"line":64,"column":8},"end":{"line":71,"column":9}},"93":{"start":{"line":65,"column":12},"end":{"line":65,"column":78}},"94":{"start":{"line":67,"column":13},"end":{"line":71,"column":9}},"95":{"start":{"line":70,"column":12},"end":{"line":70,"column":85}},"96":{"start":{"line":72,"column":8},"end":{"line":77,"column":9}},"97":{"start":{"line":73,"column":12},"end":{"line":73,"column":47}},"98":{"start":{"line":75,"column":13},"end":{"line":77,"column":9}},"99":{"start":{"line":76,"column":12},"end":{"line":76,"column":92}},"100":{"start":{"line":78,"column":8},"end":{"line":83,"column":9}},"101":{"start":{"line":79,"column":12},"end":{"line":79,"column":48}},"102":{"start":{"line":81,"column":13},"end":{"line":83,"column":9}},"103":{"start":{"line":82,"column":12},"end":{"line":82,"column":87}},"104":{"start":{"line":84,"column":8},"end":{"line":88,"column":10}},"105":{"start":{"line":89,"column":8},"end":{"line":89,"column":28}},"106":{"start":{"line":90,"column":8},"end":{"line":90,"column":56}},"107":{"start":{"line":91,"column":8},"end":{"line":91,"column":29}},"108":{"start":{"line":92,"column":8},"end":{"line":92,"column":32}},"109":{"start":{"line":93,"column":8},"end":{"line":93,"column":27}},"110":{"start":{"line":94,"column":8},"end":{"line":94,"column":70}},"111":{"start":{"line":96,"column":4},"end":{"line":115,"column":6}},"112":{"start":{"line":97,"column":25},"end":{"line":97,"column":27}},"113":{"start":{"line":98,"column":8},"end":{"line":100,"column":9}},"114":{"start":{"line":98,"column":22},"end":{"line":98,"column":23}},"115":{"start":{"line":99,"column":12},"end":{"line":99,"column":47}},"116":{"start":{"line":101,"column":24},"end":{"line":101,"column":39}},"117":{"start":{"line":102,"column":31},"end":{"line":102,"column":174}},"118":{"start":{"line":102,"column":116},"end":{"line":102,"column":171}},"119":{"start":{"line":103,"column":32},"end":{"line":103,"column":73}},"120":{"start":{"line":105,"column":12},"end":{"line":109,"column":15}},"121":{"start":{"line":106,"column":16},"end":{"line":108,"column":19}},"122":{"start":{"line":107,"column":20},"end":{"line":107,"column":80}},"123":{"start":{"line":111,"column":8},"end":{"line":113,"column":11}},"124":{"start":{"line":112,"column":12},"end":{"line":112,"column":71}},"125":{"start":{"line":114,"column":8},"end":{"line":114,"column":25}},"126":{"start":{"line":116,"column":4},"end":{"line":127,"column":6}},"127":{"start":{"line":117,"column":22},"end":{"line":117,"column":24}},"128":{"start":{"line":118,"column":8},"end":{"line":120,"column":9}},"129":{"start":{"line":118,"column":22},"end":{"line":118,"column":23}},"130":{"start":{"line":119,"column":12},"end":{"line":119,"column":40}},"131":{"start":{"line":121,"column":25},"end":{"line":121,"column":65}},"132":{"start":{"line":122,"column":8},"end":{"line":126,"column":9}},"133":{"start":{"line":122,"column":22},"end":{"line":122,"column":23}},"134":{"start":{"line":122,"column":37},"end":{"line":122,"column":44}},"135":{"start":{"line":123,"column":32},"end":{"line":123,"column":45}},"136":{"start":{"line":124,"column":41},"end":{"line":124,"column":69}},"137":{"start":{"line":125,"column":12},"end":{"line":125,"column":190}},"138":{"start":{"line":128,"column":4},"end":{"line":156,"column":6}},"139":{"start":{"line":129,"column":22},"end":{"line":129,"column":24}},"140":{"start":{"line":130,"column":8},"end":{"line":132,"column":9}},"141":{"start":{"line":130,"column":22},"end":{"line":130,"column":23}},"142":{"start":{"line":131,"column":12},"end":{"line":131,"column":40}},"143":{"start":{"line":133,"column":8},"end":{"line":155,"column":11}},"144":{"start":{"line":135,"column":12},"end":{"line":154,"column":15}},"145":{"start":{"line":136,"column":16},"end":{"line":153,"column":17}},"146":{"start":{"line":138,"column":24},"end":{"line":138,"column":78}},"147":{"start":{"line":139,"column":24},"end":{"line":139,"column":52}},"148":{"start":{"line":140,"column":24},"end":{"line":140,"column":37}},"149":{"start":{"line":142,"column":24},"end":{"line":142,"column":68}},"150":{"start":{"line":142,"column":54},"end":{"line":142,"column":68}},"151":{"start":{"line":143,"column":24},"end":{"line":143,"column":54}},"152":{"start":{"line":144,"column":24},"end":{"line":144,"column":78}},"153":{"start":{"line":145,"column":24},"end":{"line":145,"column":214}},"154":{"start":{"line":147,"column":24},"end":{"line":147,"column":34}},"155":{"start":{"line":148,"column":24},"end":{"line":148,"column":37}},"156":{"start":{"line":150,"column":24},"end":{"line":150,"column":29}},"157":{"start":{"line":151,"column":24},"end":{"line":151,"column":38}},"158":{"start":{"line":152,"column":28},"end":{"line":152,"column":39}},"159":{"start":{"line":157,"column":4},"end":{"line":170,"column":6}},"160":{"start":{"line":158,"column":20},"end":{"line":158,"column":24}},"161":{"start":{"line":159,"column":22},"end":{"line":159,"column":24}},"162":{"start":{"line":160,"column":8},"end":{"line":162,"column":9}},"163":{"start":{"line":160,"column":22},"end":{"line":160,"column":23}},"164":{"start":{"line":161,"column":12},"end":{"line":161,"column":40}},"165":{"start":{"line":163,"column":31},"end":{"line":165,"column":12}},"166":{"start":{"line":163,"column":53},"end":{"line":165,"column":10}},"167":{"start":{"line":164,"column":12},"end":{"line":164,"column":46}},"168":{"start":{"line":166,"column":8},"end":{"line":169,"column":11}},"169":{"start":{"line":167,"column":28},"end":{"line":167,"column":55}},"170":{"start":{"line":168,"column":12},"end":{"line":168,"column":66}},"171":{"start":{"line":171,"column":4},"end":{"line":176,"column":6}},"172":{"start":{"line":172,"column":20},"end":{"line":172,"column":91}},"173":{"start":{"line":173,"column":22},"end":{"line":173,"column":69}},"174":{"start":{"line":174,"column":8},"end":{"line":174,"column":64}},"175":{"start":{"line":175,"column":8},"end":{"line":175,"column":64}},"176":{"start":{"line":177,"column":4},"end":{"line":180,"column":6}},"177":{"start":{"line":178,"column":8},"end":{"line":178,"column":39}},"178":{"start":{"line":179,"column":8},"end":{"line":179,"column":44}},"179":{"start":{"line":181,"column":4},"end":{"line":188,"column":6}},"180":{"start":{"line":182,"column":8},"end":{"line":187,"column":9}},"181":{"start":{"line":183,"column":12},"end":{"line":183,"column":62}},"182":{"start":{"line":186,"column":12},"end":{"line":186,"column":126}},"183":{"start":{"line":189,"column":4},"end":{"line":191,"column":6}},"184":{"start":{"line":190,"column":8},"end":{"line":190,"column":56}},"185":{"start":{"line":192,"column":4},"end":{"line":198,"column":6}},"186":{"start":{"line":193,"column":20},"end":{"line":193,"column":69}},"187":{"start":{"line":194,"column":8},"end":{"line":196,"column":9}},"188":{"start":{"line":195,"column":12},"end":{"line":195,"column":59}},"189":{"start":{"line":197,"column":8},"end":{"line":197,"column":21}},"190":{"start":{"line":199,"column":4},"end":{"line":201,"column":6}},"191":{"start":{"line":200,"column":8},"end":{"line":200,"column":84}},"192":{"start":{"line":202,"column":4},"end":{"line":213,"column":6}},"193":{"start":{"line":203,"column":20},"end":{"line":203,"column":25}},"194":{"start":{"line":204,"column":8},"end":{"line":208,"column":9}},"195":{"start":{"line":205,"column":27},"end":{"line":205,"column":73}},"196":{"start":{"line":206,"column":28},"end":{"line":206,"column":92}},"197":{"start":{"line":207,"column":12},"end":{"line":207,"column":84}},"198":{"start":{"line":207,"column":49},"end":{"line":207,"column":80}},"199":{"start":{"line":209,"column":8},"end":{"line":211,"column":9}},"200":{"start":{"line":210,"column":12},"end":{"line":210,"column":77}},"201":{"start":{"line":212,"column":8},"end":{"line":212,"column":21}},"202":{"start":{"line":214,"column":4},"end":{"line":216,"column":6}},"203":{"start":{"line":215,"column":8},"end":{"line":215,"column":123}},"204":{"start":{"line":217,"column":4},"end":{"line":224,"column":6}},"205":{"start":{"line":218,"column":23},"end":{"line":218,"column":44}},"206":{"start":{"line":219,"column":8},"end":{"line":221,"column":9}},"207":{"start":{"line":220,"column":12},"end":{"line":220,"column":68}},"208":{"start":{"line":222,"column":8},"end":{"line":222,"column":52}},"209":{"start":{"line":223,"column":8},"end":{"line":223,"column":47}},"210":{"start":{"line":225,"column":4},"end":{"line":229,"column":6}},"211":{"start":{"line":226,"column":20},"end":{"line":226,"column":67}},"212":{"start":{"line":227,"column":8},"end":{"line":227,"column":28}},"213":{"start":{"line":228,"column":8},"end":{"line":228,"column":21}},"214":{"start":{"line":230,"column":4},"end":{"line":238,"column":6}},"215":{"start":{"line":231,"column":26},"end":{"line":231,"column":28}},"216":{"start":{"line":232,"column":8},"end":{"line":234,"column":9}},"217":{"start":{"line":232,"column":22},"end":{"line":232,"column":23}},"218":{"start":{"line":233,"column":12},"end":{"line":233,"column":44}},"219":{"start":{"line":235,"column":8},"end":{"line":235,"column":78}},"220":{"start":{"line":236,"column":22},"end":{"line":236,"column":84}},"221":{"start":{"line":237,"column":8},"end":{"line":237,"column":101}},"222":{"start":{"line":237,"column":70},"end":{"line":237,"column":88}},"223":{"start":{"line":239,"column":4},"end":{"line":241,"column":6}},"224":{"start":{"line":240,"column":8},"end":{"line":240,"column":46}},"225":{"start":{"line":242,"column":4},"end":{"line":244,"column":6}},"226":{"start":{"line":243,"column":8},"end":{"line":243,"column":99}},"227":{"start":{"line":245,"column":4},"end":{"line":247,"column":6}},"228":{"start":{"line":246,"column":8},"end":{"line":246,"column":111}},"229":{"start":{"line":248,"column":4},"end":{"line":250,"column":6}},"230":{"start":{"line":249,"column":8},"end":{"line":249,"column":80}},"231":{"start":{"line":251,"column":4},"end":{"line":253,"column":6}},"232":{"start":{"line":252,"column":8},"end":{"line":252,"column":97}},"233":{"start":{"line":254,"column":4},"end":{"line":256,"column":6}},"234":{"start":{"line":255,"column":8},"end":{"line":255,"column":110}},"235":{"start":{"line":257,"column":4},"end":{"line":259,"column":6}},"236":{"start":{"line":258,"column":8},"end":{"line":258,"column":83}},"237":{"start":{"line":260,"column":4},"end":{"line":267,"column":6}},"238":{"start":{"line":261,"column":28},"end":{"line":261,"column":46}},"239":{"start":{"line":262,"column":8},"end":{"line":262,"column":57}},"240":{"start":{"line":263,"column":8},"end":{"line":265,"column":11}},"241":{"start":{"line":264,"column":12},"end":{"line":264,"column":45}},"242":{"start":{"line":266,"column":8},"end":{"line":266,"column":54}},"243":{"start":{"line":268,"column":4},"end":{"line":307,"column":6}},"244":{"start":{"line":269,"column":20},"end":{"line":269,"column":24}},"245":{"start":{"line":270,"column":26},"end":{"line":272,"column":9}},"246":{"start":{"line":271,"column":12},"end":{"line":271,"column":57}},"247":{"start":{"line":273,"column":30},"end":{"line":280,"column":9}},"248":{"start":{"line":274,"column":12},"end":{"line":279,"column":14}},"249":{"start":{"line":275,"column":28},"end":{"line":275,"column":50}},"250":{"start":{"line":276,"column":38},"end":{"line":276,"column":62}},"251":{"start":{"line":277,"column":16},"end":{"line":277,"column":55}},"252":{"start":{"line":278,"column":16},"end":{"line":278,"column":39}},"253":{"start":{"line":281,"column":32},"end":{"line":286,"column":9}},"254":{"start":{"line":282,"column":12},"end":{"line":285,"column":14}},"255":{"start":{"line":283,"column":30},"end":{"line":283,"column":54}},"256":{"start":{"line":284,"column":16},"end":{"line":284,"column":43}},"257":{"start":{"line":287,"column":33},"end":{"line":292,"column":9}},"258":{"start":{"line":288,"column":12},"end":{"line":291,"column":14}},"259":{"start":{"line":289,"column":31},"end":{"line":289,"column":56}},"260":{"start":{"line":290,"column":16},"end":{"line":290,"column":51}},"261":{"start":{"line":293,"column":32},"end":{"line":300,"column":9}},"262":{"start":{"line":294,"column":12},"end":{"line":299,"column":14}},"263":{"start":{"line":295,"column":30},"end":{"line":295,"column":54}},"264":{"start":{"line":296,"column":38},"end":{"line":296,"column":64}},"265":{"start":{"line":297,"column":16},"end":{"line":297,"column":55}},"266":{"start":{"line":298,"column":16},"end":{"line":298,"column":39}},"267":{"start":{"line":301,"column":8},"end":{"line":306,"column":14}},"268":{"start":{"line":301,"column":32},"end":{"line":306,"column":11}},"269":{"start":{"line":308,"column":4},"end":{"line":329,"column":6}},"270":{"start":{"line":309,"column":21},"end":{"line":309,"column":25}},"271":{"start":{"line":310,"column":26},"end":{"line":318,"column":9}},"272":{"start":{"line":312,"column":53},"end":{"line":312,"column":68}},"273":{"start":{"line":319,"column":8},"end":{"line":327,"column":9}},"274":{"start":{"line":320,"column":12},"end":{"line":320,"column":51}},"275":{"start":{"line":321,"column":12},"end":{"line":323,"column":13}},"276":{"start":{"line":322,"column":16},"end":{"line":322,"column":70}},"277":{"start":{"line":326,"column":12},"end":{"line":326,"column":57}},"278":{"start":{"line":328,"column":8},"end":{"line":328,"column":22}},"279":{"start":{"line":330,"column":4},"end":{"line":338,"column":6}},"280":{"start":{"line":331,"column":20},"end":{"line":331,"column":24}},"281":{"start":{"line":332,"column":8},"end":{"line":337,"column":10}},"282":{"start":{"line":333,"column":26},"end":{"line":333,"column":176}},"283":{"start":{"line":334,"column":12},"end":{"line":334,"column":55}},"284":{"start":{"line":335,"column":25},"end":{"line":335,"column":52}},"285":{"start":{"line":336,"column":12},"end":{"line":336,"column":26}},"286":{"start":{"line":339,"column":4},"end":{"line":339,"column":21}},"287":{"start":{"line":341,"column":0},"end":{"line":341,"column":30}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":44},"end":{"line":2,"column":45}},"loc":{"start":{"line":2,"column":89},"end":{"line":10,"column":1}},"line":2},"1":{"name":"adopt","decl":{"start":{"line":3,"column":13},"end":{"line":3,"column":18}},"loc":{"start":{"line":3,"column":26},"end":{"line":3,"column":112}},"line":3},"2":{"name":"(anonymous_2)","decl":{"start":{"line":3,"column":70},"end":{"line":3,"column":71}},"loc":{"start":{"line":3,"column":89},"end":{"line":3,"column":108}},"line":3},"3":{"name":"(anonymous_3)","decl":{"start":{"line":4,"column":36},"end":{"line":4,"column":37}},"loc":{"start":{"line":4,"column":63},"end":{"line":9,"column":5}},"line":4},"4":{"name":"fulfilled","decl":{"start":{"line":5,"column":17},"end":{"line":5,"column":26}},"loc":{"start":{"line":5,"column":34},"end":{"line":5,"column":99}},"line":5},"5":{"name":"rejected","decl":{"start":{"line":6,"column":17},"end":{"line":6,"column":25}},"loc":{"start":{"line":6,"column":33},"end":{"line":6,"column":102}},"line":6},"6":{"name":"step","decl":{"start":{"line":7,"column":17},"end":{"line":7,"column":21}},"loc":{"start":{"line":7,"column":30},"end":{"line":7,"column":118}},"line":7},"7":{"name":"(anonymous_7)","decl":{"start":{"line":11,"column":48},"end":{"line":11,"column":49}},"loc":{"start":{"line":11,"column":73},"end":{"line":37,"column":1}},"line":11},"8":{"name":"(anonymous_8)","decl":{"start":{"line":12,"column":30},"end":{"line":12,"column":31}},"loc":{"start":{"line":12,"column":41},"end":{"line":12,"column":83}},"line":12},"9":{"name":"(anonymous_9)","decl":{"start":{"line":13,"column":125},"end":{"line":13,"column":126}},"loc":{"start":{"line":13,"column":136},"end":{"line":13,"column":152}},"line":13},"10":{"name":"verb","decl":{"start":{"line":14,"column":13},"end":{"line":14,"column":17}},"loc":{"start":{"line":14,"column":21},"end":{"line":14,"column":70}},"line":14},"11":{"name":"(anonymous_11)","decl":{"start":{"line":14,"column":30},"end":{"line":14,"column":31}},"loc":{"start":{"line":14,"column":43},"end":{"line":14,"column":67}},"line":14},"12":{"name":"step","decl":{"start":{"line":15,"column":13},"end":{"line":15,"column":17}},"loc":{"start":{"line":15,"column":22},"end":{"line":36,"column":5}},"line":15},"13":{"name":"(anonymous_13)","decl":{"start":{"line":38,"column":52},"end":{"line":38,"column":53}},"loc":{"start":{"line":38,"column":72},"end":{"line":42,"column":1}},"line":38},"14":{"name":"(anonymous_14)","decl":{"start":{"line":57,"column":17},"end":{"line":57,"column":18}},"loc":{"start":{"line":57,"column":29},"end":{"line":340,"column":1}},"line":57},"15":{"name":"Container","decl":{"start":{"line":58,"column":13},"end":{"line":58,"column":22}},"loc":{"start":{"line":58,"column":41},"end":{"line":95,"column":5}},"line":58},"16":{"name":"(anonymous_16)","decl":{"start":{"line":96,"column":22},"end":{"line":96,"column":23}},"loc":{"start":{"line":96,"column":56},"end":{"line":115,"column":5}},"line":96},"17":{"name":"(anonymous_17)","decl":{"start":{"line":102,"column":87},"end":{"line":102,"column":88}},"loc":{"start":{"line":102,"column":114},"end":{"line":102,"column":173}},"line":102},"18":{"name":"copyDictionary","decl":{"start":{"line":104,"column":17},"end":{"line":104,"column":31}},"loc":{"start":{"line":104,"column":53},"end":{"line":110,"column":9}},"line":104},"19":{"name":"(anonymous_19)","decl":{"start":{"line":105,"column":28},"end":{"line":105,"column":29}},"loc":{"start":{"line":105,"column":50},"end":{"line":109,"column":13}},"line":105},"20":{"name":"(anonymous_20)","decl":{"start":{"line":106,"column":30},"end":{"line":106,"column":31}},"loc":{"start":{"line":106,"column":49},"end":{"line":108,"column":17}},"line":106},"21":{"name":"(anonymous_21)","decl":{"start":{"line":111,"column":33},"end":{"line":111,"column":34}},"loc":{"start":{"line":111,"column":68},"end":{"line":113,"column":9}},"line":111},"22":{"name":"(anonymous_22)","decl":{"start":{"line":116,"column":31},"end":{"line":116,"column":32}},"loc":{"start":{"line":116,"column":43},"end":{"line":127,"column":5}},"line":116},"23":{"name":"(anonymous_23)","decl":{"start":{"line":128,"column":36},"end":{"line":128,"column":37}},"loc":{"start":{"line":128,"column":48},"end":{"line":156,"column":5}},"line":128},"24":{"name":"(anonymous_24)","decl":{"start":{"line":133,"column":47},"end":{"line":133,"column":48}},"loc":{"start":{"line":133,"column":59},"end":{"line":155,"column":9}},"line":133},"25":{"name":"(anonymous_25)","decl":{"start":{"line":135,"column":37},"end":{"line":135,"column":38}},"loc":{"start":{"line":135,"column":51},"end":{"line":154,"column":13}},"line":135},"26":{"name":"(anonymous_26)","decl":{"start":{"line":157,"column":33},"end":{"line":157,"column":34}},"loc":{"start":{"line":157,"column":45},"end":{"line":170,"column":5}},"line":157},"27":{"name":"(anonymous_27)","decl":{"start":{"line":163,"column":31},"end":{"line":163,"column":32}},"loc":{"start":{"line":163,"column":51},"end":{"line":165,"column":12}},"line":163},"28":{"name":"(anonymous_28)","decl":{"start":{"line":163,"column":60},"end":{"line":163,"column":61}},"loc":{"start":{"line":163,"column":76},"end":{"line":165,"column":9}},"line":163},"29":{"name":"(anonymous_29)","decl":{"start":{"line":166,"column":24},"end":{"line":166,"column":25}},"loc":{"start":{"line":166,"column":42},"end":{"line":169,"column":9}},"line":166},"30":{"name":"(anonymous_30)","decl":{"start":{"line":171,"column":31},"end":{"line":171,"column":32}},"loc":{"start":{"line":171,"column":60},"end":{"line":176,"column":5}},"line":171},"31":{"name":"(anonymous_31)","decl":{"start":{"line":177,"column":33},"end":{"line":177,"column":34}},"loc":{"start":{"line":177,"column":62},"end":{"line":180,"column":5}},"line":177},"32":{"name":"(anonymous_32)","decl":{"start":{"line":181,"column":33},"end":{"line":181,"column":34}},"loc":{"start":{"line":181,"column":62},"end":{"line":188,"column":5}},"line":181},"33":{"name":"(anonymous_33)","decl":{"start":{"line":189,"column":36},"end":{"line":189,"column":37}},"loc":{"start":{"line":189,"column":48},"end":{"line":191,"column":5}},"line":189},"34":{"name":"(anonymous_34)","decl":{"start":{"line":192,"column":34},"end":{"line":192,"column":35}},"loc":{"start":{"line":192,"column":63},"end":{"line":198,"column":5}},"line":192},"35":{"name":"(anonymous_35)","decl":{"start":{"line":199,"column":39},"end":{"line":199,"column":40}},"loc":{"start":{"line":199,"column":75},"end":{"line":201,"column":5}},"line":199},"36":{"name":"(anonymous_36)","decl":{"start":{"line":202,"column":40},"end":{"line":202,"column":41}},"loc":{"start":{"line":202,"column":81},"end":{"line":213,"column":5}},"line":202},"37":{"name":"(anonymous_37)","decl":{"start":{"line":207,"column":34},"end":{"line":207,"column":35}},"loc":{"start":{"line":207,"column":47},"end":{"line":207,"column":82}},"line":207},"38":{"name":"(anonymous_38)","decl":{"start":{"line":214,"column":35},"end":{"line":214,"column":36}},"loc":{"start":{"line":214,"column":47},"end":{"line":216,"column":5}},"line":214},"39":{"name":"(anonymous_39)","decl":{"start":{"line":217,"column":34},"end":{"line":217,"column":35}},"loc":{"start":{"line":217,"column":46},"end":{"line":224,"column":5}},"line":217},"40":{"name":"(anonymous_40)","decl":{"start":{"line":225,"column":38},"end":{"line":225,"column":39}},"loc":{"start":{"line":225,"column":66},"end":{"line":229,"column":5}},"line":225},"41":{"name":"(anonymous_41)","decl":{"start":{"line":230,"column":42},"end":{"line":230,"column":43}},"loc":{"start":{"line":230,"column":54},"end":{"line":238,"column":5}},"line":230},"42":{"name":"(anonymous_42)","decl":{"start":{"line":237,"column":46},"end":{"line":237,"column":47}},"loc":{"start":{"line":237,"column":68},"end":{"line":237,"column":90}},"line":237},"43":{"name":"(anonymous_43)","decl":{"start":{"line":239,"column":52},"end":{"line":239,"column":53}},"loc":{"start":{"line":239,"column":78},"end":{"line":241,"column":5}},"line":239},"44":{"name":"(anonymous_44)","decl":{"start":{"line":242,"column":30},"end":{"line":242,"column":31}},"loc":{"start":{"line":242,"column":59},"end":{"line":244,"column":5}},"line":242},"45":{"name":"(anonymous_45)","decl":{"start":{"line":245,"column":36},"end":{"line":245,"column":37}},"loc":{"start":{"line":245,"column":77},"end":{"line":247,"column":5}},"line":245},"46":{"name":"(anonymous_46)","decl":{"start":{"line":248,"column":35},"end":{"line":248,"column":36}},"loc":{"start":{"line":248,"column":71},"end":{"line":250,"column":5}},"line":248},"47":{"name":"(anonymous_47)","decl":{"start":{"line":251,"column":33},"end":{"line":251,"column":34}},"loc":{"start":{"line":251,"column":62},"end":{"line":253,"column":5}},"line":251},"48":{"name":"(anonymous_48)","decl":{"start":{"line":254,"column":39},"end":{"line":254,"column":40}},"loc":{"start":{"line":254,"column":80},"end":{"line":256,"column":5}},"line":254},"49":{"name":"(anonymous_49)","decl":{"start":{"line":257,"column":38},"end":{"line":257,"column":39}},"loc":{"start":{"line":257,"column":74},"end":{"line":259,"column":5}},"line":257},"50":{"name":"(anonymous_50)","decl":{"start":{"line":260,"column":34},"end":{"line":260,"column":35}},"loc":{"start":{"line":260,"column":65},"end":{"line":267,"column":5}},"line":260},"51":{"name":"(anonymous_51)","decl":{"start":{"line":263,"column":40},"end":{"line":263,"column":41}},"loc":{"start":{"line":263,"column":53},"end":{"line":265,"column":9}},"line":263},"52":{"name":"(anonymous_52)","decl":{"start":{"line":268,"column":60},"end":{"line":268,"column":61}},"loc":{"start":{"line":268,"column":72},"end":{"line":307,"column":5}},"line":268},"53":{"name":"(anonymous_53)","decl":{"start":{"line":270,"column":26},"end":{"line":270,"column":27}},"loc":{"start":{"line":270,"column":63},"end":{"line":272,"column":9}},"line":270},"54":{"name":"(anonymous_54)","decl":{"start":{"line":273,"column":30},"end":{"line":273,"column":31}},"loc":{"start":{"line":273,"column":50},"end":{"line":280,"column":9}},"line":273},"55":{"name":"(anonymous_55)","decl":{"start":{"line":274,"column":19},"end":{"line":274,"column":20}},"loc":{"start":{"line":274,"column":48},"end":{"line":279,"column":13}},"line":274},"56":{"name":"(anonymous_56)","decl":{"start":{"line":281,"column":32},"end":{"line":281,"column":33}},"loc":{"start":{"line":281,"column":52},"end":{"line":286,"column":9}},"line":281},"57":{"name":"(anonymous_57)","decl":{"start":{"line":282,"column":19},"end":{"line":282,"column":20}},"loc":{"start":{"line":282,"column":48},"end":{"line":285,"column":13}},"line":282},"58":{"name":"(anonymous_58)","decl":{"start":{"line":287,"column":33},"end":{"line":287,"column":34}},"loc":{"start":{"line":287,"column":53},"end":{"line":292,"column":9}},"line":287},"59":{"name":"(anonymous_59)","decl":{"start":{"line":288,"column":19},"end":{"line":288,"column":20}},"loc":{"start":{"line":288,"column":48},"end":{"line":291,"column":13}},"line":288},"60":{"name":"(anonymous_60)","decl":{"start":{"line":293,"column":32},"end":{"line":293,"column":33}},"loc":{"start":{"line":293,"column":52},"end":{"line":300,"column":9}},"line":293},"61":{"name":"(anonymous_61)","decl":{"start":{"line":294,"column":19},"end":{"line":294,"column":20}},"loc":{"start":{"line":294,"column":48},"end":{"line":299,"column":13}},"line":294},"62":{"name":"(anonymous_62)","decl":{"start":{"line":301,"column":15},"end":{"line":301,"column":16}},"loc":{"start":{"line":301,"column":30},"end":{"line":306,"column":13}},"line":301},"63":{"name":"(anonymous_63)","decl":{"start":{"line":308,"column":31},"end":{"line":308,"column":32}},"loc":{"start":{"line":308,"column":117},"end":{"line":329,"column":5}},"line":308},"64":{"name":"(anonymous_64)","decl":{"start":{"line":312,"column":32},"end":{"line":312,"column":33}},"loc":{"start":{"line":312,"column":51},"end":{"line":312,"column":70}},"line":312},"65":{"name":"(anonymous_65)","decl":{"start":{"line":330,"column":42},"end":{"line":330,"column":43}},"loc":{"start":{"line":330,"column":54},"end":{"line":338,"column":5}},"line":330},"66":{"name":"(anonymous_66)","decl":{"start":{"line":332,"column":15},"end":{"line":332,"column":16}},"loc":{"start":{"line":332,"column":31},"end":{"line":337,"column":9}},"line":332}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":16},"end":{"line":10,"column":1}},"type":"binary-expr","locations":[{"start":{"line":2,"column":17},"end":{"line":2,"column":21}},{"start":{"line":2,"column":25},"end":{"line":2,"column":39}},{"start":{"line":2,"column":44},"end":{"line":10,"column":1}}],"line":2},"1":{"loc":{"start":{"line":3,"column":35},"end":{"line":3,"column":109}},"type":"cond-expr","locations":[{"start":{"line":3,"column":56},"end":{"line":3,"column":61}},{"start":{"line":3,"column":64},"end":{"line":3,"column":109}}],"line":3},"2":{"loc":{"start":{"line":4,"column":16},"end":{"line":4,"column":34}},"type":"binary-expr","locations":[{"start":{"line":4,"column":16},"end":{"line":4,"column":17}},{"start":{"line":4,"column":22},"end":{"line":4,"column":33}}],"line":4},"3":{"loc":{"start":{"line":7,"column":32},"end":{"line":7,"column":115}},"type":"cond-expr","locations":[{"start":{"line":7,"column":46},"end":{"line":7,"column":67}},{"start":{"line":7,"column":70},"end":{"line":7,"column":115}}],"line":7},"4":{"loc":{"start":{"line":8,"column":51},"end":{"line":8,"column":67}},"type":"binary-expr","locations":[{"start":{"line":8,"column":51},"end":{"line":8,"column":61}},{"start":{"line":8,"column":65},"end":{"line":8,"column":67}}],"line":8},"5":{"loc":{"start":{"line":11,"column":18},"end":{"line":37,"column":1}},"type":"binary-expr","locations":[{"start":{"line":11,"column":19},"end":{"line":11,"column":23}},{"start":{"line":11,"column":27},"end":{"line":11,"column":43}},{"start":{"line":11,"column":48},"end":{"line":37,"column":1}}],"line":11},"6":{"loc":{"start":{"line":12,"column":43},"end":{"line":12,"column":68}},"type":"if","locations":[{"start":{"line":12,"column":43},"end":{"line":12,"column":68}},{"start":{"line":12,"column":43},"end":{"line":12,"column":68}}],"line":12},"7":{"loc":{"start":{"line":13,"column":71},"end":{"line":13,"column":153}},"type":"binary-expr","locations":[{"start":{"line":13,"column":71},"end":{"line":13,"column":99}},{"start":{"line":13,"column":104},"end":{"line":13,"column":152}}],"line":13},"8":{"loc":{"start":{"line":16,"column":8},"end":{"line":16,"column":70}},"type":"if","locations":[{"start":{"line":16,"column":8},"end":{"line":16,"column":70}},{"start":{"line":16,"column":8},"end":{"line":16,"column":70}}],"line":16},"9":{"loc":{"start":{"line":18,"column":12},"end":{"line":18,"column":169}},"type":"if","locations":[{"start":{"line":18,"column":12},"end":{"line":18,"column":169}},{"start":{"line":18,"column":12},"end":{"line":18,"column":169}}],"line":18},"10":{"loc":{"start":{"line":18,"column":23},"end":{"line":18,"column":158}},"type":"binary-expr","locations":[{"start":{"line":18,"column":23},"end":{"line":18,"column":24}},{"start":{"line":18,"column":29},"end":{"line":18,"column":125}},{"start":{"line":18,"column":130},"end":{"line":18,"column":158}}],"line":18},"11":{"loc":{"start":{"line":18,"column":33},"end":{"line":18,"column":125}},"type":"cond-expr","locations":[{"start":{"line":18,"column":45},"end":{"line":18,"column":56}},{"start":{"line":18,"column":59},"end":{"line":18,"column":125}}],"line":18},"12":{"loc":{"start":{"line":18,"column":59},"end":{"line":18,"column":125}},"type":"cond-expr","locations":[{"start":{"line":18,"column":67},"end":{"line":18,"column":116}},{"start":{"line":18,"column":119},"end":{"line":18,"column":125}}],"line":18},"13":{"loc":{"start":{"line":18,"column":67},"end":{"line":18,"column":116}},"type":"binary-expr","locations":[{"start":{"line":18,"column":67},"end":{"line":18,"column":77}},{"start":{"line":18,"column":82},"end":{"line":18,"column":115}}],"line":18},"14":{"loc":{"start":{"line":18,"column":82},"end":{"line":18,"column":112}},"type":"binary-expr","locations":[{"start":{"line":18,"column":83},"end":{"line":18,"column":98}},{"start":{"line":18,"column":103},"end":{"line":18,"column":112}}],"line":18},"15":{"loc":{"start":{"line":19,"column":12},"end":{"line":19,"column":52}},"type":"if","locations":[{"start":{"line":19,"column":12},"end":{"line":19,"column":52}},{"start":{"line":19,"column":12},"end":{"line":19,"column":52}}],"line":19},"16":{"loc":{"start":{"line":20,"column":12},"end":{"line":32,"column":13}},"type":"switch","locations":[{"start":{"line":21,"column":16},"end":{"line":21,"column":23}},{"start":{"line":21,"column":24},"end":{"line":21,"column":46}},{"start":{"line":22,"column":16},"end":{"line":22,"column":72}},{"start":{"line":23,"column":16},"end":{"line":23,"column":65}},{"start":{"line":24,"column":16},"end":{"line":24,"column":65}},{"start":{"line":25,"column":16},"end":{"line":31,"column":43}}],"line":20},"17":{"loc":{"start":{"line":26,"column":20},"end":{"line":26,"column":128}},"type":"if","locations":[{"start":{"line":26,"column":20},"end":{"line":26,"column":128}},{"start":{"line":26,"column":20},"end":{"line":26,"column":128}}],"line":26},"18":{"loc":{"start":{"line":26,"column":24},"end":{"line":26,"column":106}},"type":"binary-expr","locations":[{"start":{"line":26,"column":24},"end":{"line":26,"column":74}},{"start":{"line":26,"column":79},"end":{"line":26,"column":90}},{"start":{"line":26,"column":94},"end":{"line":26,"column":105}}],"line":26},"19":{"loc":{"start":{"line":26,"column":42},"end":{"line":26,"column":73}},"type":"binary-expr","locations":[{"start":{"line":26,"column":42},"end":{"line":26,"column":54}},{"start":{"line":26,"column":58},"end":{"line":26,"column":73}}],"line":26},"20":{"loc":{"start":{"line":27,"column":20},"end":{"line":27,"column":106}},"type":"if","locations":[{"start":{"line":27,"column":20},"end":{"line":27,"column":106}},{"start":{"line":27,"column":20},"end":{"line":27,"column":106}}],"line":27},"21":{"loc":{"start":{"line":27,"column":24},"end":{"line":27,"column":77}},"type":"binary-expr","locations":[{"start":{"line":27,"column":24},"end":{"line":27,"column":35}},{"start":{"line":27,"column":40},"end":{"line":27,"column":42}},{"start":{"line":27,"column":47},"end":{"line":27,"column":59}},{"start":{"line":27,"column":63},"end":{"line":27,"column":75}}],"line":27},"22":{"loc":{"start":{"line":28,"column":20},"end":{"line":28,"column":89}},"type":"if","locations":[{"start":{"line":28,"column":20},"end":{"line":28,"column":89}},{"start":{"line":28,"column":20},"end":{"line":28,"column":89}}],"line":28},"23":{"loc":{"start":{"line":28,"column":24},"end":{"line":28,"column":53}},"type":"binary-expr","locations":[{"start":{"line":28,"column":24},"end":{"line":28,"column":35}},{"start":{"line":28,"column":39},"end":{"line":28,"column":53}}],"line":28},"24":{"loc":{"start":{"line":29,"column":20},"end":{"line":29,"column":87}},"type":"if","locations":[{"start":{"line":29,"column":20},"end":{"line":29,"column":87}},{"start":{"line":29,"column":20},"end":{"line":29,"column":87}}],"line":29},"25":{"loc":{"start":{"line":29,"column":24},"end":{"line":29,"column":43}},"type":"binary-expr","locations":[{"start":{"line":29,"column":24},"end":{"line":29,"column":25}},{"start":{"line":29,"column":29},"end":{"line":29,"column":43}}],"line":29},"26":{"loc":{"start":{"line":30,"column":20},"end":{"line":30,"column":42}},"type":"if","locations":[{"start":{"line":30,"column":20},"end":{"line":30,"column":42}},{"start":{"line":30,"column":20},"end":{"line":30,"column":42}}],"line":30},"27":{"loc":{"start":{"line":35,"column":8},"end":{"line":35,"column":35}},"type":"if","locations":[{"start":{"line":35,"column":8},"end":{"line":35,"column":35}},{"start":{"line":35,"column":8},"end":{"line":35,"column":35}}],"line":35},"28":{"loc":{"start":{"line":35,"column":52},"end":{"line":35,"column":74}},"type":"cond-expr","locations":[{"start":{"line":35,"column":60},"end":{"line":35,"column":65}},{"start":{"line":35,"column":68},"end":{"line":35,"column":74}}],"line":35},"29":{"loc":{"start":{"line":38,"column":20},"end":{"line":42,"column":1}},"type":"binary-expr","locations":[{"start":{"line":38,"column":21},"end":{"line":38,"column":25}},{"start":{"line":38,"column":29},"end":{"line":38,"column":47}},{"start":{"line":38,"column":52},"end":{"line":42,"column":1}}],"line":38},"30":{"loc":{"start":{"line":60,"column":22},"end":{"line":60,"column":44}},"type":"binary-expr","locations":[{"start":{"line":60,"column":22},"end":{"line":60,"column":38}},{"start":{"line":60,"column":42},"end":{"line":60,"column":44}}],"line":60},"31":{"loc":{"start":{"line":61,"column":8},"end":{"line":63,"column":9}},"type":"if","locations":[{"start":{"line":61,"column":8},"end":{"line":63,"column":9}},{"start":{"line":61,"column":8},"end":{"line":63,"column":9}}],"line":61},"32":{"loc":{"start":{"line":64,"column":8},"end":{"line":71,"column":9}},"type":"if","locations":[{"start":{"line":64,"column":8},"end":{"line":71,"column":9}},{"start":{"line":64,"column":8},"end":{"line":71,"column":9}}],"line":64},"33":{"loc":{"start":{"line":67,"column":13},"end":{"line":71,"column":9}},"type":"if","locations":[{"start":{"line":67,"column":13},"end":{"line":71,"column":9}},{"start":{"line":67,"column":13},"end":{"line":71,"column":9}}],"line":67},"34":{"loc":{"start":{"line":67,"column":17},"end":{"line":69,"column":77}},"type":"binary-expr","locations":[{"start":{"line":67,"column":17},"end":{"line":67,"column":84}},{"start":{"line":68,"column":12},"end":{"line":68,"column":79}},{"start":{"line":69,"column":12},"end":{"line":69,"column":77}}],"line":67},"35":{"loc":{"start":{"line":72,"column":8},"end":{"line":77,"column":9}},"type":"if","locations":[{"start":{"line":72,"column":8},"end":{"line":77,"column":9}},{"start":{"line":72,"column":8},"end":{"line":77,"column":9}}],"line":72},"36":{"loc":{"start":{"line":75,"column":13},"end":{"line":77,"column":9}},"type":"if","locations":[{"start":{"line":75,"column":13},"end":{"line":77,"column":9}},{"start":{"line":75,"column":13},"end":{"line":77,"column":9}}],"line":75},"37":{"loc":{"start":{"line":78,"column":8},"end":{"line":83,"column":9}},"type":"if","locations":[{"start":{"line":78,"column":8},"end":{"line":83,"column":9}},{"start":{"line":78,"column":8},"end":{"line":83,"column":9}}],"line":78},"38":{"loc":{"start":{"line":81,"column":13},"end":{"line":83,"column":9}},"type":"if","locations":[{"start":{"line":81,"column":13},"end":{"line":83,"column":9}},{"start":{"line":81,"column":13},"end":{"line":83,"column":9}}],"line":81},"39":{"loc":{"start":{"line":136,"column":16},"end":{"line":153,"column":17}},"type":"switch","locations":[{"start":{"line":137,"column":20},"end":{"line":140,"column":37}},{"start":{"line":141,"column":20},"end":{"line":145,"column":214}},{"start":{"line":146,"column":20},"end":{"line":148,"column":37}},{"start":{"line":149,"column":20},"end":{"line":151,"column":38}},{"start":{"line":152,"column":20},"end":{"line":152,"column":39}}],"line":136},"40":{"loc":{"start":{"line":142,"column":24},"end":{"line":142,"column":68}},"type":"if","locations":[{"start":{"line":142,"column":24},"end":{"line":142,"column":68}},{"start":{"line":142,"column":24},"end":{"line":142,"column":68}}],"line":142},"41":{"loc":{"start":{"line":172,"column":20},"end":{"line":172,"column":91}},"type":"binary-expr","locations":[{"start":{"line":172,"column":20},"end":{"line":172,"column":45}},{"start":{"line":172,"column":49},"end":{"line":172,"column":91}}],"line":172},"42":{"loc":{"start":{"line":194,"column":8},"end":{"line":196,"column":9}},"type":"if","locations":[{"start":{"line":194,"column":8},"end":{"line":196,"column":9}},{"start":{"line":194,"column":8},"end":{"line":196,"column":9}}],"line":194},"43":{"loc":{"start":{"line":194,"column":12},"end":{"line":194,"column":33}},"type":"binary-expr","locations":[{"start":{"line":194,"column":12},"end":{"line":194,"column":18}},{"start":{"line":194,"column":22},"end":{"line":194,"column":33}}],"line":194},"44":{"loc":{"start":{"line":204,"column":8},"end":{"line":208,"column":9}},"type":"if","locations":[{"start":{"line":204,"column":8},"end":{"line":208,"column":9}},{"start":{"line":204,"column":8},"end":{"line":208,"column":9}}],"line":204},"45":{"loc":{"start":{"line":209,"column":8},"end":{"line":211,"column":9}},"type":"if","locations":[{"start":{"line":209,"column":8},"end":{"line":211,"column":9}},{"start":{"line":209,"column":8},"end":{"line":211,"column":9}}],"line":209},"46":{"loc":{"start":{"line":209,"column":12},"end":{"line":209,"column":33}},"type":"binary-expr","locations":[{"start":{"line":209,"column":12},"end":{"line":209,"column":18}},{"start":{"line":209,"column":22},"end":{"line":209,"column":33}}],"line":209},"47":{"loc":{"start":{"line":219,"column":8},"end":{"line":221,"column":9}},"type":"if","locations":[{"start":{"line":219,"column":8},"end":{"line":221,"column":9}},{"start":{"line":219,"column":8},"end":{"line":221,"column":9}}],"line":219},"48":{"loc":{"start":{"line":226,"column":34},"end":{"line":226,"column":66}},"type":"binary-expr","locations":[{"start":{"line":226,"column":34},"end":{"line":226,"column":50}},{"start":{"line":226,"column":54},"end":{"line":226,"column":66}}],"line":226},"49":{"loc":{"start":{"line":236,"column":22},"end":{"line":236,"column":84}},"type":"cond-expr","locations":[{"start":{"line":236,"column":43},"end":{"line":236,"column":59}},{"start":{"line":236,"column":62},"end":{"line":236,"column":84}}],"line":236},"50":{"loc":{"start":{"line":319,"column":8},"end":{"line":327,"column":9}},"type":"if","locations":[{"start":{"line":319,"column":8},"end":{"line":327,"column":9}},{"start":{"line":319,"column":8},"end":{"line":327,"column":9}}],"line":319},"51":{"loc":{"start":{"line":321,"column":12},"end":{"line":323,"column":13}},"type":"if","locations":[{"start":{"line":321,"column":12},"end":{"line":323,"column":13}},{"start":{"line":321,"column":12},"end":{"line":323,"column":13}}],"line":321},"52":{"loc":{"start":{"line":321,"column":16},"end":{"line":321,"column":55}},"type":"binary-expr","locations":[{"start":{"line":321,"column":16},"end":{"line":321,"column":36}},{"start":{"line":321,"column":40},"end":{"line":321,"column":55}}],"line":321}},"s":{"0":1,"1":2,"2":0,"3":1,"4":2,"5":2,"6":0,"7":0,"8":0,"9":0,"10":3,"11":1,"12":1,"13":1,"14":2,"15":0,"16":2,"17":1,"18":0,"19":3,"20":3,"21":3,"22":0,"23":3,"24":9,"25":9,"26":0,"27":9,"28":0,"29":9,"30":3,"31":3,"32":2,"33":2,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":4,"42":1,"43":1,"44":3,"45":3,"46":3,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":6,"60":0,"61":0,"62":9,"63":1,"64":0,"65":1,"66":1,"67":2,"68":2,"69":2,"70":2,"71":1,"72":2,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":196,"89":196,"90":196,"91":1,"92":195,"93":175,"94":20,"95":1,"96":194,"97":176,"98":18,"99":1,"100":193,"101":179,"102":14,"103":0,"104":193,"105":193,"106":193,"107":193,"108":193,"109":193,"110":193,"111":1,"112":2,"113":2,"114":2,"115":1,"116":2,"117":2,"118":5,"119":2,"120":5,"121":10,"122":10,"123":2,"124":5,"125":2,"126":1,"127":5,"128":5,"129":5,"130":6,"131":5,"132":5,"133":5,"134":5,"135":6,"136":6,"137":6,"138":1,"139":1,"140":1,"141":1,"142":2,"143":1,"144":1,"145":6,"146":1,"147":1,"148":1,"149":3,"150":1,"151":2,"152":2,"153":2,"154":2,"155":2,"156":2,"157":2,"158":1,"159":1,"160":2,"161":2,"162":2,"163":2,"164":2,"165":2,"166":2,"167":5,"168":2,"169":2,"170":2,"171":1,"172":24344,"173":24344,"174":24344,"175":24344,"176":1,"177":2,"178":2,"179":1,"180":9,"181":9,"182":1,"183":1,"184":3,"185":1,"186":18,"187":18,"188":2,"189":18,"190":1,"191":8,"192":1,"193":32,"194":32,"195":16,"196":16,"197":16,"198":20,"199":32,"200":16,"201":32,"202":1,"203":3,"204":1,"205":4,"206":4,"207":1,"208":3,"209":3,"210":1,"211":13,"212":13,"213":13,"214":1,"215":25,"216":25,"217":25,"218":38,"219":25,"220":25,"221":25,"222":38,"223":1,"224":3,"225":1,"226":881,"227":1,"228":22,"229":1,"230":13,"231":1,"232":6,"233":1,"234":8,"235":1,"236":4,"237":1,"238":4,"239":4,"240":4,"241":8,"242":4,"243":1,"244":6,"245":6,"246":10,"247":6,"248":8,"249":9,"250":9,"251":9,"252":9,"253":6,"254":8,"255":2,"256":2,"257":6,"258":8,"259":2,"260":2,"261":6,"262":8,"263":1,"264":1,"265":1,"266":1,"267":6,"268":8,"269":1,"270":917,"271":917,"272":881,"273":917,"274":13,"275":13,"276":1,"277":904,"278":209,"279":1,"280":920,"281":920,"282":917,"283":881,"284":881,"285":206,"286":1,"287":1},"f":{"0":1,"1":2,"2":0,"3":1,"4":2,"5":0,"6":3,"7":1,"8":2,"9":0,"10":3,"11":3,"12":3,"13":2,"14":1,"15":196,"16":2,"17":5,"18":5,"19":10,"20":10,"21":5,"22":5,"23":1,"24":1,"25":6,"26":2,"27":2,"28":5,"29":2,"30":24344,"31":2,"32":9,"33":3,"34":18,"35":8,"36":32,"37":20,"38":3,"39":4,"40":13,"41":25,"42":38,"43":3,"44":881,"45":22,"46":13,"47":6,"48":8,"49":4,"50":4,"51":8,"52":6,"53":10,"54":8,"55":9,"56":8,"57":2,"58":8,"59":2,"60":8,"61":1,"62":8,"63":917,"64":881,"65":920,"66":917},"b":{"0":[1,1,1],"1":[2,0],"2":[1,1],"3":[1,2],"4":[1,1],"5":[1,1,1],"6":[0,2],"7":[1,1],"8":[0,3],"9":[0,9],"10":[9,0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,9],"16":[3,3,2,0,0,4],"17":[1,3],"18":[4,4,4],"19":[4,0],"20":[3,0],"21":[3,3,0,0],"22":[0,0],"23":[0,0],"24":[0,0],"25":[0,0],"26":[0,0],"27":[0,1],"28":[1,0],"29":[1,1,1],"30":[196,168],"31":[1,195],"32":[175,20],"33":[1,19],"34":[20,13,2],"35":[176,18],"36":[1,17],"37":[179,14],"38":[0,14],"39":[1,3,2,2,1],"40":[1,2],"41":[24344,0],"42":[2,16],"43":[18,10],"44":[16,16],"45":[16,16],"46":[32,20],"47":[1,3],"48":[13,12],"49":[9,16],"50":[13,904],"51":[1,12],"52":[13,12]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/container/container.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/container/container.ts"],"names":[],"mappings":"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","sourcesContent":["import { Binding } from \"../bindings/binding\";\nimport * as ERROR_MSGS from \"../constants/error_msgs\";\nimport { BindingScopeEnum, TargetTypeEnum } from \"../constants/literal_types\";\nimport * as METADATA_KEY from \"../constants/metadata_keys\";\nimport { interfaces } from \"../interfaces/interfaces\";\nimport { MetadataReader } from \"../planning/metadata_reader\";\nimport { createMockRequest, getBindingDictionary, plan } from \"../planning/planner\";\nimport { resolve } from \"../resolution/resolver\";\nimport { BindingToSyntax } from \"../syntax/binding_to_syntax\";\nimport { id } from \"../utils/id\";\nimport { getServiceIdentifierAsString } from \"../utils/serialization\";\nimport { ContainerSnapshot } from \"./container_snapshot\";\nimport { Lookup } from \"./lookup\";\n\nclass Container implements interfaces.Container {\n\n public id: number;\n public parent: interfaces.Container | null;\n public readonly options: interfaces.ContainerOptions;\n private _middleware: interfaces.Next | null;\n private _bindingDictionary: interfaces.Lookup<interfaces.Binding<any>>;\n private _snapshots: interfaces.ContainerSnapshot[];\n private _metadataReader: interfaces.MetadataReader;\n private _appliedMiddleware: interfaces.Middleware[] = [];\n\n public static merge(\n container1: interfaces.Container,\n container2: interfaces.Container,\n ...container3: interfaces.Container[]\n ): interfaces.Container {\n const container = new Container();\n const targetContainers: interfaces.Lookup<interfaces.Binding<any>>[] = [container1, container2, ...container3]\n .map((targetContainer) => getBindingDictionary(targetContainer));\n const bindingDictionary: interfaces.Lookup<interfaces.Binding<any>> = getBindingDictionary(container);\n\n function copyDictionary(\n origin: interfaces.Lookup<interfaces.Binding<any>>,\n destination: interfaces.Lookup<interfaces.Binding<any>>\n ) {\n\n origin.traverse((key, value) => {\n value.forEach((binding) => {\n destination.add(binding.serviceIdentifier, binding.clone());\n });\n });\n\n }\n\n targetContainers.forEach((targetBindingDictionary) => {\n copyDictionary(targetBindingDictionary, bindingDictionary);\n });\n\n return container;\n }\n\n public constructor(containerOptions?: interfaces.ContainerOptions) {\n const options = containerOptions || {};\n if (typeof options !== \"object\") {\n throw new Error(`${ERROR_MSGS.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT}`);\n }\n\n if (options.defaultScope === undefined) {\n options.defaultScope = BindingScopeEnum.Transient;\n } else if (\n options.defaultScope !== BindingScopeEnum.Singleton &&\n options.defaultScope !== BindingScopeEnum.Transient &&\n options.defaultScope !== BindingScopeEnum.Request\n ) {\n throw new Error(`${ERROR_MSGS.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE}`);\n }\n\n if (options.autoBindInjectable === undefined) {\n options.autoBindInjectable = false;\n } else if (\n typeof options.autoBindInjectable !== \"boolean\"\n ) {\n throw new Error(`${ERROR_MSGS.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE}`);\n }\n\n if (options.skipBaseClassChecks === undefined) {\n options.skipBaseClassChecks = false;\n } else if (\n typeof options.skipBaseClassChecks !== \"boolean\"\n ) {\n throw new Error(`${ERROR_MSGS.CONTAINER_OPTIONS_INVALID_SKIP_BASE_CHECK}`);\n }\n\n this.options = {\n autoBindInjectable: options.autoBindInjectable,\n defaultScope: options.defaultScope,\n skipBaseClassChecks: options.skipBaseClassChecks\n };\n\n this.id = id();\n this._bindingDictionary = new Lookup<interfaces.Binding<any>>();\n this._snapshots = [];\n this._middleware = null;\n this.parent = null;\n this._metadataReader = new MetadataReader();\n }\n\n public load(...modules: interfaces.ContainerModule[]) {\n\n const getHelpers = this._getContainerModuleHelpersFactory();\n\n for (const currentModule of modules) {\n\n const containerModuleHelpers = getHelpers(currentModule.id);\n\n currentModule.registry(\n containerModuleHelpers.bindFunction,\n containerModuleHelpers.unbindFunction,\n containerModuleHelpers.isboundFunction,\n containerModuleHelpers.rebindFunction\n );\n\n }\n\n }\n\n public async loadAsync(...modules: interfaces.AsyncContainerModule[]) {\n\n const getHelpers = this._getContainerModuleHelpersFactory();\n\n for (const currentModule of modules) {\n\n const containerModuleHelpers = getHelpers(currentModule.id);\n\n await currentModule.registry(\n containerModuleHelpers.bindFunction,\n containerModuleHelpers.unbindFunction,\n containerModuleHelpers.isboundFunction,\n containerModuleHelpers.rebindFunction\n );\n\n }\n\n }\n\n public unload(...modules: interfaces.ContainerModule[]): void {\n\n const conditionFactory = (expected: any) => (item: interfaces.Binding<any>): boolean =>\n item.moduleId === expected;\n\n modules.forEach((module) => {\n const condition = conditionFactory(module.id);\n this._bindingDictionary.removeByCondition(condition);\n });\n\n }\n\n // Registers a type binding\n public bind<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): interfaces.BindingToSyntax<T> {\n const scope = this.options.defaultScope || BindingScopeEnum.Transient;\n const binding = new Binding<T>(serviceIdentifier, scope);\n this._bindingDictionary.add(serviceIdentifier, binding);\n return new BindingToSyntax<T>(binding);\n }\n\n public rebind<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): interfaces.BindingToSyntax<T> {\n this.unbind(serviceIdentifier);\n return this.bind(serviceIdentifier);\n }\n\n // Removes a type binding from the registry by its key\n public unbind(serviceIdentifier: interfaces.ServiceIdentifier<any>): void {\n try {\n this._bindingDictionary.remove(serviceIdentifier);\n } catch (e) {\n throw new Error(`${ERROR_MSGS.CANNOT_UNBIND} ${getServiceIdentifierAsString(serviceIdentifier)}`);\n }\n }\n\n // Removes all the type bindings from the registry\n public unbindAll(): void {\n this._bindingDictionary = new Lookup<Binding<any>>();\n }\n\n // Allows to check if there are bindings available for serviceIdentifier\n public isBound(serviceIdentifier: interfaces.ServiceIdentifier<any>): boolean {\n let bound = this._bindingDictionary.hasKey(serviceIdentifier);\n if (!bound && this.parent) {\n bound = this.parent.isBound(serviceIdentifier);\n }\n return bound;\n }\n\n public isBoundNamed(serviceIdentifier: interfaces.ServiceIdentifier<any>, named: string | number | symbol): boolean {\n return this.isBoundTagged(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\n }\n\n // Check if a binding with a complex constraint is available without throwing a error. Ancestors are also verified.\n public isBoundTagged(serviceIdentifier: interfaces.ServiceIdentifier<any>, key: string | number | symbol, value: any): boolean {\n let bound = false;\n\n // verify if there are bindings available for serviceIdentifier on current binding dictionary\n if (this._bindingDictionary.hasKey(serviceIdentifier)) {\n const bindings = this._bindingDictionary.get(serviceIdentifier);\n const request = createMockRequest(this, serviceIdentifier, key, value);\n bound = bindings.some((b) => b.constraint(request));\n }\n\n // verify if there is a parent container that could solve the request\n if (!bound && this.parent) {\n bound = this.parent.isBoundTagged(serviceIdentifier, key, value);\n }\n\n return bound;\n }\n\n public snapshot(): void {\n this._snapshots.push(ContainerSnapshot.of(this._bindingDictionary.clone(), this._middleware));\n }\n\n public restore(): void {\n const snapshot = this._snapshots.pop();\n if (snapshot === undefined) {\n throw new Error(ERROR_MSGS.NO_MORE_SNAPSHOTS_AVAILABLE);\n }\n this._bindingDictionary = snapshot.bindings;\n this._middleware = snapshot.middleware;\n }\n\n public createChild(containerOptions?: interfaces.ContainerOptions): Container {\n const child = new Container(containerOptions || this.options);\n child.parent = this;\n return child;\n }\n\n public applyMiddleware(...middlewares: interfaces.Middleware[]): void {\n this._appliedMiddleware = this._appliedMiddleware.concat(middlewares);\n const initial: interfaces.Next = (this._middleware) ? this._middleware : this._planAndResolve();\n this._middleware = middlewares.reduce(\n (prev, curr) => curr(prev),\n initial);\n }\n\n public applyCustomMetadataReader(metadataReader: interfaces.MetadataReader) {\n this._metadataReader = metadataReader;\n }\n\n // Resolves a dependency by its runtime identifier\n // The runtime identifier must be associated with only one binding\n // use getAll when the runtime identifier is associated with multiple bindings\n public get<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): T {\n return this._get<T>(false, false, TargetTypeEnum.Variable, serviceIdentifier) as T;\n }\n\n public getTagged<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string | number | symbol, value: any): T {\n return this._get<T>(false, false, TargetTypeEnum.Variable, serviceIdentifier, key, value) as T;\n }\n\n public getNamed<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): T {\n return this.getTagged<T>(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\n }\n\n // Resolves a dependency by its runtime identifier\n // The runtime identifier can be associated with one or multiple bindings\n public getAll<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): T[] {\n return this._get<T>(true, true, TargetTypeEnum.Variable, serviceIdentifier) as T[];\n }\n\n public getAllTagged<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string | number | symbol, value: any): T[] {\n return this._get<T>(false, true, TargetTypeEnum.Variable, serviceIdentifier, key, value) as T[];\n }\n\n public getAllNamed<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): T[] {\n return this.getAllTagged<T>(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\n }\n\n public resolve<T>(constructorFunction: interfaces.Newable<T>) {\n const tempContainer = this.createChild();\n tempContainer.bind<T>(constructorFunction).toSelf();\n this._appliedMiddleware.forEach((m) => {\n tempContainer.applyMiddleware(m);\n });\n\n return tempContainer.get<T>(constructorFunction);\n }\n\n private _getContainerModuleHelpersFactory() {\n\n const setModuleId = (bindingToSyntax: any, moduleId: number) => {\n bindingToSyntax._binding.moduleId = moduleId;\n };\n\n const getBindFunction = (moduleId: number) =>\n (serviceIdentifier: interfaces.ServiceIdentifier<any>) => {\n const _bind = this.bind.bind(this);\n const bindingToSyntax = _bind(serviceIdentifier);\n setModuleId(bindingToSyntax, moduleId);\n return bindingToSyntax;\n };\n\n const getUnbindFunction = (moduleId: number) =>\n (serviceIdentifier: interfaces.ServiceIdentifier<any>) => {\n const _unbind = this.unbind.bind(this);\n _unbind(serviceIdentifier);\n };\n\n const getIsboundFunction = (moduleId: number) =>\n (serviceIdentifier: interfaces.ServiceIdentifier<any>) => {\n const _isBound = this.isBound.bind(this);\n return _isBound(serviceIdentifier);\n };\n\n const getRebindFunction = (moduleId: number) =>\n (serviceIdentifier: interfaces.ServiceIdentifier<any>) => {\n const _rebind = this.rebind.bind(this);\n const bindingToSyntax = _rebind(serviceIdentifier);\n setModuleId(bindingToSyntax, moduleId);\n return bindingToSyntax;\n };\n\n return (mId: number) => ({\n bindFunction: getBindFunction(mId),\n isboundFunction: getIsboundFunction(mId),\n rebindFunction: getRebindFunction(mId),\n unbindFunction: getUnbindFunction(mId)\n });\n\n }\n\n // Prepares arguments required for resolution and\n // delegates resolution to _middleware if available\n // otherwise it delegates resolution to _planAndResolve\n private _get<T>(\n avoidConstraints: boolean,\n isMultiInject: boolean,\n targetType: interfaces.TargetType,\n serviceIdentifier: interfaces.ServiceIdentifier<any>,\n key?: string | number | symbol,\n value?: any\n ): (T | T[]) {\n\n let result: (T | T[]) | null = null;\n\n const defaultArgs: interfaces.NextArgs = {\n avoidConstraints,\n contextInterceptor: (context: interfaces.Context) => context,\n isMultiInject,\n key,\n serviceIdentifier,\n targetType,\n value\n };\n\n if (this._middleware) {\n result = this._middleware(defaultArgs);\n if (result === undefined || result === null) {\n throw new Error(ERROR_MSGS.INVALID_MIDDLEWARE_RETURN);\n }\n } else {\n result = this._planAndResolve<T>()(defaultArgs);\n }\n\n return result;\n }\n\n // Planner creates a plan and Resolver resolves a plan\n // one of the jobs of the Container is to links the Planner\n // with the Resolver and that is what this function is about\n private _planAndResolve<T>(): (args: interfaces.NextArgs) => (T | T[]) {\n return (args: interfaces.NextArgs) => {\n\n // create a plan\n let context = plan(\n this._metadataReader,\n this,\n args.isMultiInject,\n args.targetType,\n args.serviceIdentifier,\n args.key,\n args.value,\n args.avoidConstraints\n );\n\n // apply context interceptor\n context = args.contextInterceptor(context);\n\n // resolve plan\n const result = resolve<T>(context);\n return result;\n\n };\n }\n\n}\n\nexport { Container };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"dc14c5504e24a47942acca44d274028569b62f5c","contentHash":"444cbe836ba14900ed5852391158fbd79698e9dfded58fd6d40225fb99add32a"},"/Users/dan/jsProjects/inversify/InversifyJS/src/bindings/binding.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/bindings/binding.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":25}},"2":{"start":{"line":4,"column":22},"end":{"line":4,"column":59}},"3":{"start":{"line":5,"column":11},"end":{"line":5,"column":33}},"4":{"start":{"line":6,"column":15},"end":{"line":36,"column":3}},"5":{"start":{"line":8,"column":8},"end":{"line":8,"column":28}},"6":{"start":{"line":9,"column":8},"end":{"line":9,"column":31}},"7":{"start":{"line":10,"column":8},"end":{"line":10,"column":51}},"8":{"start":{"line":11,"column":8},"end":{"line":11,"column":27}},"9":{"start":{"line":12,"column":8},"end":{"line":12,"column":60}},"10":{"start":{"line":13,"column":8},"end":{"line":13,"column":62}},"11":{"start":{"line":13,"column":47},"end":{"line":13,"column":59}},"12":{"start":{"line":14,"column":8},"end":{"line":14,"column":39}},"13":{"start":{"line":15,"column":8},"end":{"line":15,"column":26}},"14":{"start":{"line":16,"column":8},"end":{"line":16,"column":28}},"15":{"start":{"line":17,"column":8},"end":{"line":17,"column":29}},"16":{"start":{"line":18,"column":8},"end":{"line":18,"column":33}},"17":{"start":{"line":19,"column":8},"end":{"line":19,"column":33}},"18":{"start":{"line":21,"column":4},"end":{"line":34,"column":6}},"19":{"start":{"line":22,"column":20},"end":{"line":22,"column":67}},"20":{"start":{"line":23,"column":8},"end":{"line":23,"column":112}},"21":{"start":{"line":24,"column":8},"end":{"line":24,"column":59}},"22":{"start":{"line":25,"column":8},"end":{"line":25,"column":47}},"23":{"start":{"line":26,"column":8},"end":{"line":26,"column":33}},"24":{"start":{"line":27,"column":8},"end":{"line":27,"column":31}},"25":{"start":{"line":28,"column":8},"end":{"line":28,"column":37}},"26":{"start":{"line":29,"column":8},"end":{"line":29,"column":39}},"27":{"start":{"line":30,"column":8},"end":{"line":30,"column":43}},"28":{"start":{"line":31,"column":8},"end":{"line":31,"column":47}},"29":{"start":{"line":32,"column":8},"end":{"line":32,"column":33}},"30":{"start":{"line":33,"column":8},"end":{"line":33,"column":21}},"31":{"start":{"line":35,"column":4},"end":{"line":35,"column":19}},"32":{"start":{"line":37,"column":0},"end":{"line":37,"column":26}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":15},"end":{"line":6,"column":16}},"loc":{"start":{"line":6,"column":27},"end":{"line":36,"column":1}},"line":6},"1":{"name":"Binding","decl":{"start":{"line":7,"column":13},"end":{"line":7,"column":20}},"loc":{"start":{"line":7,"column":47},"end":{"line":20,"column":5}},"line":7},"2":{"name":"(anonymous_2)","decl":{"start":{"line":13,"column":26},"end":{"line":13,"column":27}},"loc":{"start":{"line":13,"column":45},"end":{"line":13,"column":61}},"line":13},"3":{"name":"(anonymous_3)","decl":{"start":{"line":21,"column":30},"end":{"line":21,"column":31}},"loc":{"start":{"line":21,"column":42},"end":{"line":34,"column":5}},"line":21}},"branchMap":{"0":{"loc":{"start":{"line":23,"column":26},"end":{"line":23,"column":111}},"type":"cond-expr","locations":[{"start":{"line":23,"column":89},"end":{"line":23,"column":103}},{"start":{"line":23,"column":106},"end":{"line":23,"column":111}}],"line":23}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":24403,"6":24403,"7":24403,"8":24403,"9":24403,"10":24403,"11":8744,"12":24403,"13":24403,"14":24403,"15":24403,"16":24403,"17":24403,"18":1,"19":14,"20":14,"21":14,"22":14,"23":14,"24":14,"25":14,"26":14,"27":14,"28":14,"29":14,"30":14,"31":1,"32":1},"f":{"0":1,"1":24403,"2":8744,"3":14},"b":{"0":[1,13]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/bindings/binding.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/bindings/binding.ts"],"names":[],"mappings":";;;AAAA,4DAA+E;AAE/E,kCAAiC;AAEjC;IAwCI,iBAAmB,iBAAkD,EAAE,KAA8B;QACjG,IAAI,CAAC,EAAE,GAAG,OAAE,EAAE,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,+BAAe,CAAC,OAAO,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,UAAC,OAA2B,IAAK,OAAA,IAAI,EAAJ,CAAI,CAAC;QACxD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC7B,CAAC;IAEM,uBAAK,GAAZ;QACI,IAAM,KAAK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9D,KAAK,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,gCAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;QACxF,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACnD,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,OAAO,KAAK,CAAC;IACjB,CAAC;IAEL,cAAC;AAAD,CAAC,AAtED,IAsEC;AAEQ,0BAAO","sourcesContent":["import { BindingScopeEnum, BindingTypeEnum } from \"../constants/literal_types\";\nimport { interfaces } from \"../interfaces/interfaces\";\nimport { id } from \"../utils/id\";\n\nclass Binding<T> implements interfaces.Binding<T> {\n\n public id: number;\n public moduleId: string;\n\n // Determines weather the bindings has been already activated\n // The activation action takes place when an instance is resolved\n // If the scope is singleton it only happens once\n public activated: boolean;\n\n // A runtime identifier because at runtime we don't have interfaces\n public serviceIdentifier: interfaces.ServiceIdentifier<T>;\n\n // The constructor of a class which must implement T\n public implementationType: interfaces.Newable<T> | null;\n\n // Cache used to allow singleton scope and BindingType.ConstantValue bindings\n public cache: T | null;\n\n // Cache used to allow BindingType.DynamicValue bindings\n public dynamicValue: ((context: interfaces.Context) => T) | null;\n\n // The scope mode to be used\n public scope: interfaces.BindingScope;\n\n // The kind of binding\n public type: interfaces.BindingType;\n\n // A factory method used in BindingType.Factory bindings\n public factory: interfaces.FactoryCreator<T> | null;\n\n // An async factory method used in BindingType.Provider bindings\n public provider: interfaces.ProviderCreator<T> | null;\n\n // A constraint used to limit the contexts in which this binding is applicable\n public constraint: (request: interfaces.Request) => boolean;\n\n // On activation handler (invoked just before an instance is added to cache and injected)\n public onActivation: ((context: interfaces.Context, injectable: T) => T) | null;\n\n public constructor(serviceIdentifier: interfaces.ServiceIdentifier<T>, scope: interfaces.BindingScope) {\n this.id = id();\n this.activated = false;\n this.serviceIdentifier = serviceIdentifier;\n this.scope = scope;\n this.type = BindingTypeEnum.Invalid;\n this.constraint = (request: interfaces.Request) => true;\n this.implementationType = null;\n this.cache = null;\n this.factory = null;\n this.provider = null;\n this.onActivation = null;\n this.dynamicValue = null;\n }\n\n public clone(): interfaces.Binding<T> {\n const clone = new Binding(this.serviceIdentifier, this.scope);\n clone.activated = (clone.scope === BindingScopeEnum.Singleton) ? this.activated : false;\n clone.implementationType = this.implementationType;\n clone.dynamicValue = this.dynamicValue;\n clone.scope = this.scope;\n clone.type = this.type;\n clone.factory = this.factory;\n clone.provider = this.provider;\n clone.constraint = this.constraint;\n clone.onActivation = this.onActivation;\n clone.cache = this.cache;\n return clone;\n }\n\n}\n\nexport { Binding };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"0609bb17b88f12e424c8c6946a95a34d08b8ffb9","contentHash":"37338c9e7db49fc34cd5211a9bde66c0c3350bba310fd403b0c7bf392b185651"},"/Users/dan/jsProjects/inversify/InversifyJS/src/constants/literal_types.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/constants/literal_types.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":85}},"2":{"start":{"line":4,"column":23},"end":{"line":8,"column":1}},"3":{"start":{"line":9,"column":0},"end":{"line":9,"column":44}},"4":{"start":{"line":10,"column":22},"end":{"line":19,"column":1}},"5":{"start":{"line":20,"column":0},"end":{"line":20,"column":42}},"6":{"start":{"line":21,"column":21},"end":{"line":25,"column":1}},"7":{"start":{"line":26,"column":0},"end":{"line":26,"column":40}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1},"f":{},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/constants/literal_types.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/constants/literal_types.ts"],"names":[],"mappings":";;;AAEA,IAAM,gBAAgB,GAAgC;IAClD,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;CACzB,CAAC;AAmBO,4CAAgB;AAjBzB,IAAM,eAAe,GAA+B;IAChD,aAAa,EAAE,eAAe;IAC9B,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,cAAc;IAC5B,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;CACvB,CAAC;AAQyB,0CAAe;AAN1C,IAAM,cAAc,GAA8B;IAC9C,aAAa,EAAE,eAAe;IAC9B,mBAAmB,EAAE,qBAAqB;IAC1C,QAAQ,EAAE,UAAU;CACvB,CAAC;AAE0C,wCAAc","sourcesContent":["import { interfaces } from \"../interfaces/interfaces\";\n\nconst BindingScopeEnum: interfaces.BindingScopeEnum = {\n Request: \"Request\",\n Singleton: \"Singleton\",\n Transient: \"Transient\"\n};\n\nconst BindingTypeEnum: interfaces.BindingTypeEnum = {\n ConstantValue: \"ConstantValue\",\n Constructor: \"Constructor\",\n DynamicValue: \"DynamicValue\",\n Factory: \"Factory\",\n Function: \"Function\",\n Instance: \"Instance\",\n Invalid: \"Invalid\",\n Provider: \"Provider\"\n};\n\nconst TargetTypeEnum: interfaces.TargetTypeEnum = {\n ClassProperty: \"ClassProperty\",\n ConstructorArgument: \"ConstructorArgument\",\n Variable: \"Variable\"\n};\n\nexport { BindingScopeEnum, BindingTypeEnum, TargetTypeEnum };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"22f303b750a1fb02bbdab03160ce735ae1297604","contentHash":"b6e88d3ca31a9ae7f67ae38171e9d4870be1478142985b079289db6e44f81a86"},"/Users/dan/jsProjects/inversify/InversifyJS/src/utils/id.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/utils/id.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":20}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":17}},"3":{"start":{"line":6,"column":4},"end":{"line":6,"column":23}},"4":{"start":{"line":8,"column":0},"end":{"line":8,"column":16}}},"fnMap":{"0":{"name":"id","decl":{"start":{"line":5,"column":9},"end":{"line":5,"column":11}},"loc":{"start":{"line":5,"column":14},"end":{"line":7,"column":1}},"line":5}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":52225,"4":1},"f":{"0":52225},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/utils/id.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/utils/id.ts"],"names":[],"mappings":";;;AAAA,IAAI,SAAS,GAAG,CAAC,CAAC;AAElB,SAAS,EAAE;IACT,OAAO,SAAS,EAAE,CAAC;AACrB,CAAC;AAEQ,gBAAE","sourcesContent":["let idCounter = 0;\r\n\r\nfunction id(): number {\r\n return idCounter++;\r\n}\r\n\r\nexport { id };\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"8ba4c68240233d847cc7506ed5856c6d1e1ce490","contentHash":"4dd75dcee820ca7fc36fe66d1a6ac1f04e68b50a90420b80a70f26e39c327c4a"},"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/metadata_reader.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/metadata_reader.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":32}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":56}},"3":{"start":{"line":5,"column":22},"end":{"line":21,"column":3}},"4":{"start":{"line":8,"column":4},"end":{"line":15,"column":6}},"5":{"start":{"line":9,"column":40},"end":{"line":9,"column":102}},"6":{"start":{"line":10,"column":36},"end":{"line":10,"column":93}},"7":{"start":{"line":11,"column":8},"end":{"line":14,"column":10}},"8":{"start":{"line":16,"column":4},"end":{"line":19,"column":6}},"9":{"start":{"line":17,"column":36},"end":{"line":17,"column":104}},"10":{"start":{"line":18,"column":8},"end":{"line":18,"column":37}},"11":{"start":{"line":20,"column":4},"end":{"line":20,"column":26}},"12":{"start":{"line":22,"column":0},"end":{"line":22,"column":40}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":22},"end":{"line":5,"column":23}},"loc":{"start":{"line":5,"column":34},"end":{"line":21,"column":1}},"line":5},"1":{"name":"MetadataReader","decl":{"start":{"line":6,"column":13},"end":{"line":6,"column":27}},"loc":{"start":{"line":6,"column":30},"end":{"line":7,"column":5}},"line":6},"2":{"name":"(anonymous_2)","decl":{"start":{"line":8,"column":54},"end":{"line":8,"column":55}},"loc":{"start":{"line":8,"column":81},"end":{"line":15,"column":5}},"line":8},"3":{"name":"(anonymous_3)","decl":{"start":{"line":16,"column":53},"end":{"line":16,"column":54}},"loc":{"start":{"line":16,"column":80},"end":{"line":19,"column":5}},"line":16}},"branchMap":{"0":{"loc":{"start":{"line":13,"column":35},"end":{"line":13,"column":62}},"type":"binary-expr","locations":[{"start":{"line":13,"column":35},"end":{"line":13,"column":56}},{"start":{"line":13,"column":60},"end":{"line":13,"column":62}}],"line":13},"1":{"loc":{"start":{"line":17,"column":36},"end":{"line":17,"column":104}},"type":"binary-expr","locations":[{"start":{"line":17,"column":36},"end":{"line":17,"column":98}},{"start":{"line":17,"column":102},"end":{"line":17,"column":104}}],"line":17}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":8026,"6":8026,"7":8026,"8":1,"9":8031,"10":8031,"11":1,"12":1},"f":{"0":1,"1":221,"2":8026,"3":8031},"b":{"0":[8026,2314],"1":[8031,8018]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/metadata_reader.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/planning/metadata_reader.ts"],"names":[],"mappings":";;;AAAA,yDAA2D;AAG3D;IAAA;IAuBA,CAAC;IArBU,+CAAsB,GAA7B,UAA8B,eAAyB;QAGnD,IAAM,yBAAyB,GAAG,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QAGjG,IAAM,qBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAExF,OAAO;YACH,yBAAyB,2BAAA;YACzB,qBAAqB,EAAE,qBAAqB,IAAI,EAAE;SACrD,CAAC;IAEN,CAAC;IAEM,8CAAqB,GAA5B,UAA6B,eAAyB;QAElD,IAAM,qBAAqB,GAAI,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,EAAE,CAAC;QACpG,OAAO,qBAAqB,CAAC;IACjC,CAAC;IAEL,qBAAC;AAAD,CAAC,AAvBD,IAuBC;AAEQ,wCAAc","sourcesContent":["import * as METADATA_KEY from \"../constants/metadata_keys\";\nimport { interfaces } from \"../interfaces/interfaces\";\n\nclass MetadataReader implements interfaces.MetadataReader {\n\n public getConstructorMetadata(constructorFunc: Function): interfaces.ConstructorMetadata {\n\n // TypeScript compiler generated annotations\n const compilerGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.PARAM_TYPES, constructorFunc);\n\n // User generated constructor annotations\n const userGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.TAGGED, constructorFunc);\n\n return {\n compilerGeneratedMetadata,\n userGeneratedMetadata: userGeneratedMetadata || {}\n };\n\n }\n\n public getPropertiesMetadata(constructorFunc: Function): interfaces.MetadataMap {\n // User generated properties annotations\n const userGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.TAGGED_PROP, constructorFunc) || [];\n return userGeneratedMetadata;\n }\n\n}\n\nexport { MetadataReader };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"971fbda66819c0656adcd040e11a9d0da11f25af","contentHash":"37cdda8fece1be04179b6e99a0fe62f39b6fb6c9fc3c26793041c340a45a670e"},"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/planner.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/planner.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":81}},"2":{"start":{"line":4,"column":22},"end":{"line":4,"column":58}},"3":{"start":{"line":5,"column":17},"end":{"line":5,"column":51}},"4":{"start":{"line":6,"column":22},"end":{"line":6,"column":59}},"5":{"start":{"line":7,"column":19},"end":{"line":7,"column":56}},"6":{"start":{"line":8,"column":19},"end":{"line":8,"column":49}},"7":{"start":{"line":9,"column":22},"end":{"line":9,"column":55}},"8":{"start":{"line":10,"column":16},"end":{"line":10,"column":36}},"9":{"start":{"line":11,"column":17},"end":{"line":11,"column":38}},"10":{"start":{"line":12,"column":13},"end":{"line":12,"column":30}},"11":{"start":{"line":13,"column":25},"end":{"line":13,"column":54}},"12":{"start":{"line":14,"column":16},"end":{"line":14,"column":36}},"13":{"start":{"line":15,"column":15},"end":{"line":15,"column":34}},"14":{"start":{"line":17,"column":4},"end":{"line":17,"column":36}},"15":{"start":{"line":19,"column":0},"end":{"line":19,"column":52}},"16":{"start":{"line":21,"column":22},"end":{"line":21,"column":93}},"17":{"start":{"line":22,"column":25},"end":{"line":22,"column":80}},"18":{"start":{"line":23,"column":17},"end":{"line":23,"column":89}},"19":{"start":{"line":24,"column":4},"end":{"line":27,"column":5}},"20":{"start":{"line":25,"column":26},"end":{"line":25,"column":61}},"21":{"start":{"line":26,"column":8},"end":{"line":26,"column":42}},"22":{"start":{"line":28,"column":4},"end":{"line":28,"column":18}},"23":{"start":{"line":31,"column":19},"end":{"line":31,"column":75}},"24":{"start":{"line":32,"column":25},"end":{"line":32,"column":27}},"25":{"start":{"line":33,"column":4},"end":{"line":39,"column":5}},"26":{"start":{"line":37,"column":8},"end":{"line":37,"column":66}},"27":{"start":{"line":38,"column":8},"end":{"line":38,"column":76}},"28":{"start":{"line":40,"column":4},"end":{"line":48,"column":5}},"29":{"start":{"line":41,"column":8},"end":{"line":44,"column":11}},"30":{"start":{"line":42,"column":26},"end":{"line":42,"column":115}},"31":{"start":{"line":43,"column":12},"end":{"line":43,"column":47}},"32":{"start":{"line":47,"column":8},"end":{"line":47,"column":34}},"33":{"start":{"line":49,"column":4},"end":{"line":49,"column":101}},"34":{"start":{"line":50,"column":4},"end":{"line":50,"column":26}},"35":{"start":{"line":53,"column":4},"end":{"line":80,"column":5}},"36":{"start":{"line":55,"column":12},"end":{"line":64,"column":13}},"37":{"start":{"line":56,"column":16},"end":{"line":56,"column":32}},"38":{"start":{"line":59,"column":46},"end":{"line":59,"column":109}},"39":{"start":{"line":60,"column":26},"end":{"line":60,"column":51}},"40":{"start":{"line":61,"column":16},"end":{"line":61,"column":94}},"41":{"start":{"line":62,"column":16},"end":{"line":62,"column":131}},"42":{"start":{"line":63,"column":16},"end":{"line":63,"column":37}},"43":{"start":{"line":66,"column":12},"end":{"line":68,"column":13}},"44":{"start":{"line":67,"column":16},"end":{"line":67,"column":32}},"45":{"start":{"line":71,"column":12},"end":{"line":79,"column":13}},"46":{"start":{"line":72,"column":46},"end":{"line":72,"column":109}},"47":{"start":{"line":73,"column":26},"end":{"line":73,"column":84}},"48":{"start":{"line":74,"column":16},"end":{"line":74,"column":131}},"49":{"start":{"line":75,"column":16},"end":{"line":75,"column":37}},"50":{"start":{"line":78,"column":16},"end":{"line":78,"column":32}},"51":{"start":{"line":85,"column":4},"end":{"line":94,"column":5}},"52":{"start":{"line":86,"column":8},"end":{"line":86,"column":101}},"53":{"start":{"line":87,"column":8},"end":{"line":87,"column":103}},"54":{"start":{"line":88,"column":22},"end":{"line":88,"column":60}},"55":{"start":{"line":89,"column":8},"end":{"line":89,"column":33}},"56":{"start":{"line":92,"column":8},"end":{"line":92,"column":110}},"57":{"start":{"line":93,"column":8},"end":{"line":93,"column":103}},"58":{"start":{"line":95,"column":4},"end":{"line":119,"column":7}},"59":{"start":{"line":96,"column":30},"end":{"line":96,"column":34}},"60":{"start":{"line":97,"column":8},"end":{"line":105,"column":9}},"61":{"start":{"line":98,"column":12},"end":{"line":98,"column":103}},"62":{"start":{"line":101,"column":12},"end":{"line":103,"column":13}},"63":{"start":{"line":102,"column":16},"end":{"line":102,"column":23}},"64":{"start":{"line":104,"column":12},"end":{"line":104,"column":43}},"65":{"start":{"line":106,"column":8},"end":{"line":118,"column":9}},"66":{"start":{"line":107,"column":31},"end":{"line":107,"column":109}},"67":{"start":{"line":108,"column":12},"end":{"line":114,"column":13}},"68":{"start":{"line":109,"column":47},"end":{"line":109,"column":137}},"69":{"start":{"line":110,"column":16},"end":{"line":113,"column":17}},"70":{"start":{"line":111,"column":32},"end":{"line":111,"column":132}},"71":{"start":{"line":112,"column":20},"end":{"line":112,"column":43}},"72":{"start":{"line":115,"column":12},"end":{"line":117,"column":15}},"73":{"start":{"line":116,"column":16},"end":{"line":116,"column":126}},"74":{"start":{"line":122,"column":19},"end":{"line":122,"column":21}},"75":{"start":{"line":123,"column":28},"end":{"line":123,"column":59}},"76":{"start":{"line":124,"column":4},"end":{"line":129,"column":5}},"77":{"start":{"line":125,"column":8},"end":{"line":125,"column":60}},"78":{"start":{"line":127,"column":9},"end":{"line":129,"column":5}},"79":{"start":{"line":128,"column":8},"end":{"line":128,"column":68}},"80":{"start":{"line":130,"column":4},"end":{"line":130,"column":20}},"81":{"start":{"line":133,"column":4},"end":{"line":133,"column":66}},"82":{"start":{"line":133,"column":39},"end":{"line":133,"column":64}},"83":{"start":{"line":134,"column":18},"end":{"line":134,"column":50}},"84":{"start":{"line":135,"column":17},"end":{"line":135,"column":92}},"85":{"start":{"line":136,"column":4},"end":{"line":147,"column":5}},"86":{"start":{"line":137,"column":8},"end":{"line":137,"column":103}},"87":{"start":{"line":138,"column":8},"end":{"line":138,"column":23}},"88":{"start":{"line":141,"column":8},"end":{"line":145,"column":9}},"89":{"start":{"line":142,"column":12},"end":{"line":144,"column":13}},"90":{"start":{"line":143,"column":16},"end":{"line":143,"column":88}},"91":{"start":{"line":146,"column":8},"end":{"line":146,"column":20}},"92":{"start":{"line":149,"column":0},"end":{"line":149,"column":20}},"93":{"start":{"line":151,"column":17},"end":{"line":151,"column":137}},"94":{"start":{"line":152,"column":18},"end":{"line":152,"column":50}},"95":{"start":{"line":153,"column":18},"end":{"line":153,"column":85}},"96":{"start":{"line":154,"column":4},"end":{"line":154,"column":19}},"97":{"start":{"line":156,"column":0},"end":{"line":156,"column":46}}},"fnMap":{"0":{"name":"getBindingDictionary","decl":{"start":{"line":16,"column":9},"end":{"line":16,"column":29}},"loc":{"start":{"line":16,"column":37},"end":{"line":18,"column":1}},"line":16},"1":{"name":"_createTarget","decl":{"start":{"line":20,"column":9},"end":{"line":20,"column":22}},"loc":{"start":{"line":20,"column":87},"end":{"line":29,"column":1}},"line":20},"2":{"name":"_getActiveBindings","decl":{"start":{"line":30,"column":9},"end":{"line":30,"column":27}},"loc":{"start":{"line":30,"column":94},"end":{"line":51,"column":1}},"line":30},"3":{"name":"(anonymous_3)","decl":{"start":{"line":41,"column":41},"end":{"line":41,"column":42}},"loc":{"start":{"line":41,"column":60},"end":{"line":44,"column":9}},"line":41},"4":{"name":"_validateActiveBindingCount","decl":{"start":{"line":52,"column":9},"end":{"line":52,"column":36}},"loc":{"start":{"line":52,"column":85},"end":{"line":81,"column":1}},"line":52},"5":{"name":"_createSubRequests","decl":{"start":{"line":82,"column":9},"end":{"line":82,"column":27}},"loc":{"start":{"line":82,"column":113},"end":{"line":120,"column":1}},"line":82},"6":{"name":"(anonymous_6)","decl":{"start":{"line":95,"column":27},"end":{"line":95,"column":28}},"loc":{"start":{"line":95,"column":46},"end":{"line":119,"column":5}},"line":95},"7":{"name":"(anonymous_7)","decl":{"start":{"line":115,"column":33},"end":{"line":115,"column":34}},"loc":{"start":{"line":115,"column":55},"end":{"line":117,"column":13}},"line":115},"8":{"name":"getBindings","decl":{"start":{"line":121,"column":9},"end":{"line":121,"column":20}},"loc":{"start":{"line":121,"column":51},"end":{"line":131,"column":1}},"line":121},"9":{"name":"plan","decl":{"start":{"line":132,"column":9},"end":{"line":132,"column":13}},"loc":{"start":{"line":132,"column":117},"end":{"line":148,"column":1}},"line":132},"10":{"name":"createMockRequest","decl":{"start":{"line":150,"column":9},"end":{"line":150,"column":26}},"loc":{"start":{"line":150,"column":69},"end":{"line":155,"column":1}},"line":150}},"branchMap":{"0":{"loc":{"start":{"line":21,"column":22},"end":{"line":21,"column":93}},"type":"cond-expr","locations":[{"start":{"line":21,"column":38},"end":{"line":21,"column":67}},{"start":{"line":21,"column":70},"end":{"line":21,"column":93}}],"line":21},"1":{"loc":{"start":{"line":24,"column":4},"end":{"line":27,"column":5}},"type":"if","locations":[{"start":{"line":24,"column":4},"end":{"line":27,"column":5}},{"start":{"line":24,"column":4},"end":{"line":27,"column":5}}],"line":24},"2":{"loc":{"start":{"line":33,"column":4},"end":{"line":39,"column":5}},"type":"if","locations":[{"start":{"line":33,"column":4},"end":{"line":39,"column":5}},{"start":{"line":33,"column":4},"end":{"line":39,"column":5}}],"line":33},"3":{"loc":{"start":{"line":33,"column":8},"end":{"line":36,"column":97}},"type":"binary-expr","locations":[{"start":{"line":33,"column":8},"end":{"line":33,"column":76}},{"start":{"line":34,"column":8},"end":{"line":34,"column":52}},{"start":{"line":35,"column":8},"end":{"line":35,"column":54}},{"start":{"line":36,"column":8},"end":{"line":36,"column":97}}],"line":33},"4":{"loc":{"start":{"line":40,"column":4},"end":{"line":48,"column":5}},"type":"if","locations":[{"start":{"line":40,"column":4},"end":{"line":48,"column":5}},{"start":{"line":40,"column":4},"end":{"line":48,"column":5}}],"line":40},"5":{"loc":{"start":{"line":53,"column":4},"end":{"line":80,"column":5}},"type":"switch","locations":[{"start":{"line":54,"column":8},"end":{"line":64,"column":13}},{"start":{"line":65,"column":8},"end":{"line":68,"column":13}},{"start":{"line":69,"column":8},"end":{"line":69,"column":68}},{"start":{"line":70,"column":8},"end":{"line":79,"column":13}}],"line":53},"6":{"loc":{"start":{"line":55,"column":12},"end":{"line":64,"column":13}},"type":"if","locations":[{"start":{"line":55,"column":12},"end":{"line":64,"column":13}},{"start":{"line":55,"column":12},"end":{"line":64,"column":13}}],"line":55},"7":{"loc":{"start":{"line":66,"column":12},"end":{"line":68,"column":13}},"type":"if","locations":[{"start":{"line":66,"column":12},"end":{"line":68,"column":13}},{"start":{"line":66,"column":12},"end":{"line":68,"column":13}}],"line":66},"8":{"loc":{"start":{"line":71,"column":12},"end":{"line":79,"column":13}},"type":"if","locations":[{"start":{"line":71,"column":12},"end":{"line":79,"column":13}},{"start":{"line":71,"column":12},"end":{"line":79,"column":13}}],"line":71},"9":{"loc":{"start":{"line":85,"column":4},"end":{"line":94,"column":5}},"type":"if","locations":[{"start":{"line":85,"column":4},"end":{"line":94,"column":5}},{"start":{"line":85,"column":4},"end":{"line":94,"column":5}}],"line":85},"10":{"loc":{"start":{"line":97,"column":8},"end":{"line":105,"column":9}},"type":"if","locations":[{"start":{"line":97,"column":8},"end":{"line":105,"column":9}},{"start":{"line":97,"column":8},"end":{"line":105,"column":9}}],"line":97},"11":{"loc":{"start":{"line":101,"column":12},"end":{"line":103,"column":13}},"type":"if","locations":[{"start":{"line":101,"column":12},"end":{"line":103,"column":13}},{"start":{"line":101,"column":12},"end":{"line":103,"column":13}}],"line":101},"12":{"loc":{"start":{"line":106,"column":8},"end":{"line":118,"column":9}},"type":"if","locations":[{"start":{"line":106,"column":8},"end":{"line":118,"column":9}},{"start":{"line":106,"column":8},"end":{"line":118,"column":9}}],"line":106},"13":{"loc":{"start":{"line":106,"column":12},"end":{"line":106,"column":108}},"type":"binary-expr","locations":[{"start":{"line":106,"column":12},"end":{"line":106,"column":69}},{"start":{"line":106,"column":73},"end":{"line":106,"column":108}}],"line":106},"14":{"loc":{"start":{"line":108,"column":12},"end":{"line":114,"column":13}},"type":"if","locations":[{"start":{"line":108,"column":12},"end":{"line":114,"column":13}},{"start":{"line":108,"column":12},"end":{"line":114,"column":13}}],"line":108},"15":{"loc":{"start":{"line":110,"column":16},"end":{"line":113,"column":17}},"type":"if","locations":[{"start":{"line":110,"column":16},"end":{"line":113,"column":17}},{"start":{"line":110,"column":16},"end":{"line":113,"column":17}}],"line":110},"16":{"loc":{"start":{"line":124,"column":4},"end":{"line":129,"column":5}},"type":"if","locations":[{"start":{"line":124,"column":4},"end":{"line":129,"column":5}},{"start":{"line":124,"column":4},"end":{"line":129,"column":5}}],"line":124},"17":{"loc":{"start":{"line":127,"column":9},"end":{"line":129,"column":5}},"type":"if","locations":[{"start":{"line":127,"column":9},"end":{"line":129,"column":5}},{"start":{"line":127,"column":9},"end":{"line":129,"column":5}}],"line":127},"18":{"loc":{"start":{"line":133,"column":4},"end":{"line":133,"column":66}},"type":"if","locations":[{"start":{"line":133,"column":4},"end":{"line":133,"column":66}},{"start":{"line":133,"column":4},"end":{"line":133,"column":66}}],"line":133},"19":{"loc":{"start":{"line":141,"column":8},"end":{"line":145,"column":9}},"type":"if","locations":[{"start":{"line":141,"column":8},"end":{"line":145,"column":9}},{"start":{"line":141,"column":8},"end":{"line":145,"column":9}}],"line":141},"20":{"loc":{"start":{"line":142,"column":12},"end":{"line":144,"column":13}},"type":"if","locations":[{"start":{"line":142,"column":12},"end":{"line":144,"column":13}},{"start":{"line":142,"column":12},"end":{"line":144,"column":13}}],"line":142}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":8893,"15":1,"16":943,"17":943,"18":943,"19":943,"20":30,"21":30,"22":943,"23":8826,"24":8826,"25":8826,"26":6,"27":6,"28":8826,"29":8820,"30":8871,"31":8871,"32":6,"33":8826,"34":8793,"35":8825,"36":31,"37":3,"38":28,"39":28,"40":28,"41":28,"42":28,"43":8779,"44":8773,"45":21,"46":4,"47":4,"48":4,"49":4,"50":17,"51":8826,"52":943,"53":913,"54":913,"55":913,"56":7883,"57":7880,"58":8793,"59":8801,"60":8801,"61":28,"62":8773,"63":72,"64":8701,"65":8729,"66":8008,"67":8003,"68":8001,"69":7999,"70":1,"71":1,"72":8000,"73":7883,"74":8873,"75":8873,"76":8873,"77":8809,"78":64,"79":9,"80":8873,"81":943,"82":26,"83":943,"84":943,"85":943,"86":943,"87":902,"88":41,"89":4,"90":4,"91":38,"92":1,"93":16,"94":16,"95":16,"96":16,"97":1},"f":{"0":8893,"1":943,"2":8826,"3":8871,"4":8825,"5":8826,"6":8801,"7":7883,"8":8873,"9":943,"10":16},"b":{"0":[14,929],"1":[30,913],"2":[6,8820],"3":[8826,32,7,7],"4":[8820,6],"5":[31,8779,21,21],"6":[3,28],"7":[8773,6],"8":[4,17],"9":[943,7883],"10":[28,8773],"11":[72,8701],"12":[8008,721],"13":[8729,8008],"14":[8001,2],"15":[1,7998],"16":[8809,64],"17":[9,55],"18":[26,917],"19":[4,37],"20":[4,0]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/planner.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/planning/planner.ts"],"names":[],"mappings":"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","sourcesContent":["import { BindingCount } from \"../bindings/binding_count\";\nimport * as ERROR_MSGS from \"../constants/error_msgs\";\nimport { BindingTypeEnum, TargetTypeEnum } from \"../constants/literal_types\";\nimport * as METADATA_KEY from \"../constants/metadata_keys\";\nimport { interfaces } from \"../interfaces/interfaces\";\nimport { isStackOverflowExeption } from \"../utils/exceptions\";\nimport {\n circularDependencyToException,\n getServiceIdentifierAsString,\n listMetadataForTarget,\n listRegisteredBindingsForServiceIdentifier\n} from \"../utils/serialization\";\nimport { Context } from \"./context\";\nimport { Metadata } from \"./metadata\";\nimport { Plan } from \"./plan\";\nimport { getBaseClassDependencyCount, getDependencies, getFunctionName } from \"./reflection_utils\";\nimport { Request } from \"./request\";\nimport { Target } from \"./target\";\n\nfunction getBindingDictionary (cntnr: any): interfaces.Lookup<interfaces.Binding<any>> {\n return cntnr._bindingDictionary;\n}\n\nfunction _createTarget(\n isMultiInject: boolean,\n targetType: interfaces.TargetType,\n serviceIdentifier: interfaces.ServiceIdentifier<any>,\n name: string,\n key?: string | number | symbol,\n value?: any\n): interfaces.Target {\n\n const metadataKey = isMultiInject ? METADATA_KEY.MULTI_INJECT_TAG : METADATA_KEY.INJECT_TAG;\n const injectMetadata = new Metadata(metadataKey, serviceIdentifier);\n const target = new Target(targetType, name, serviceIdentifier, injectMetadata);\n\n if (key !== undefined) {\n const tagMetadata = new Metadata(key, value);\n target.metadata.push(tagMetadata);\n }\n\n return target;\n\n}\n\nfunction _getActiveBindings(\n metadataReader: interfaces.MetadataReader,\n avoidConstraints: boolean,\n context: interfaces.Context,\n parentRequest: interfaces.Request | null,\n target: interfaces.Target\n): interfaces.Binding<any>[] {\n\n let bindings = getBindings<any>(context.container, target.serviceIdentifier);\n let activeBindings: interfaces.Binding<any>[] = [];\n\n // automatic binding\n if (bindings.length === BindingCount.NoBindingsAvailable &&\n context.container.options.autoBindInjectable &&\n typeof target.serviceIdentifier === \"function\" &&\n metadataReader.getConstructorMetadata(target.serviceIdentifier).compilerGeneratedMetadata\n ) {\n context.container.bind(target.serviceIdentifier).toSelf();\n bindings = getBindings(context.container, target.serviceIdentifier);\n }\n\n // multiple bindings available\n if (!avoidConstraints) {\n\n // apply constraints if available to reduce the number of active bindings\n activeBindings = bindings.filter((binding) => {\n\n const request = new Request(\n binding.serviceIdentifier,\n context,\n parentRequest,\n binding,\n target\n );\n\n return binding.constraint(request);\n\n });\n\n } else {\n // simple injection or multi-injection without constraints\n activeBindings = bindings;\n }\n\n // validate active bindings\n _validateActiveBindingCount(target.serviceIdentifier, activeBindings, target, context.container);\n\n return activeBindings;\n}\n\nfunction _validateActiveBindingCount(\n serviceIdentifier: interfaces.ServiceIdentifier<any>,\n bindings: interfaces.Binding<any>[],\n target: interfaces.Target,\n container: interfaces.Container\n): interfaces.Binding<any>[] {\n\n switch (bindings.length) {\n\n case BindingCount.NoBindingsAvailable:\n if (target.isOptional()) {\n return bindings;\n } else {\n const serviceIdentifierString = getServiceIdentifierAsString(serviceIdentifier);\n let msg = ERROR_MSGS.NOT_REGISTERED;\n msg += listMetadataForTarget(serviceIdentifierString, target);\n msg += listRegisteredBindingsForServiceIdentifier(container, serviceIdentifierString, getBindings);\n throw new Error(msg);\n }\n\n case BindingCount.OnlyOneBindingAvailable:\n if (!target.isArray()) {\n return bindings;\n }\n\n case BindingCount.MultipleBindingsAvailable:\n default:\n if (!target.isArray()) {\n const serviceIdentifierString = getServiceIdentifierAsString(serviceIdentifier);\n let msg = `${ERROR_MSGS.AMBIGUOUS_MATCH} ${serviceIdentifierString}`;\n msg += listRegisteredBindingsForServiceIdentifier(container, serviceIdentifierString, getBindings);\n throw new Error(msg);\n } else {\n return bindings;\n }\n }\n\n}\n\nfunction _createSubRequests(\n metadataReader: interfaces.MetadataReader,\n avoidConstraints: boolean,\n serviceIdentifier: interfaces.ServiceIdentifier<any>,\n context: interfaces.Context,\n parentRequest: interfaces.Request | null,\n target: interfaces.Target\n) {\n\n let activeBindings: interfaces.Binding<any>[];\n let childRequest: interfaces.Request;\n\n if (parentRequest === null) {\n\n activeBindings = _getActiveBindings(metadataReader, avoidConstraints, context, null, target);\n\n childRequest = new Request(\n serviceIdentifier,\n context,\n null,\n activeBindings,\n target\n );\n\n const thePlan = new Plan(context, childRequest);\n context.addPlan(thePlan);\n\n } else {\n activeBindings = _getActiveBindings(metadataReader, avoidConstraints, context, parentRequest, target);\n childRequest = parentRequest.addChildRequest(target.serviceIdentifier, activeBindings, target);\n }\n\n activeBindings.forEach((binding) => {\n\n let subChildRequest: interfaces.Request | null = null;\n\n if (target.isArray()) {\n subChildRequest = childRequest.addChildRequest(binding.serviceIdentifier, binding, target);\n } else {\n if (binding.cache) {\n return;\n }\n subChildRequest = childRequest;\n }\n\n if (binding.type === BindingTypeEnum.Instance && binding.implementationType !== null) {\n\n const dependencies = getDependencies(metadataReader, binding.implementationType);\n\n if (!context.container.options.skipBaseClassChecks) {\n // Throw if a derived class does not implement its constructor explicitly\n // We do this to prevent errors when a base class (parent) has dependencies\n // and one of the derived classes (children) has no dependencies\n const baseClassDependencyCount = getBaseClassDependencyCount(metadataReader, binding.implementationType);\n\n if (dependencies.length < baseClassDependencyCount) {\n const error = ERROR_MSGS.ARGUMENTS_LENGTH_MISMATCH(getFunctionName(binding.implementationType));\n throw new Error(error);\n }\n }\n\n dependencies.forEach((dependency: interfaces.Target) => {\n _createSubRequests(metadataReader, false, dependency.serviceIdentifier, context, subChildRequest, dependency);\n });\n\n }\n\n });\n\n}\n\nfunction getBindings<T>(\n container: interfaces.Container,\n serviceIdentifier: interfaces.ServiceIdentifier<T>\n): interfaces.Binding<T>[] {\n\n let bindings: interfaces.Binding<T>[] = [];\n const bindingDictionary: interfaces.Lookup<interfaces.Binding<any>> = getBindingDictionary(container);\n\n if (bindingDictionary.hasKey(serviceIdentifier)) {\n\n bindings = bindingDictionary.get(serviceIdentifier);\n\n } else if (container.parent !== null) {\n\n // recursively try to get bindings from parent container\n bindings = getBindings<T>(container.parent, serviceIdentifier);\n\n }\n\n return bindings;\n}\n\nfunction plan(\n metadataReader: interfaces.MetadataReader,\n container: interfaces.Container,\n isMultiInject: boolean,\n targetType: interfaces.TargetType,\n serviceIdentifier: interfaces.ServiceIdentifier<any>,\n key?: string | number | symbol,\n value?: any,\n avoidConstraints = false\n): interfaces.Context {\n\n const context = new Context(container);\n const target = _createTarget(isMultiInject, targetType, serviceIdentifier, \"\", key, value);\n\n try {\n _createSubRequests(metadataReader, avoidConstraints, serviceIdentifier, context, null, target);\n return context;\n } catch (error) {\n if (\n isStackOverflowExeption(error)\n ) {\n if (context.plan) {\n circularDependencyToException(context.plan.rootRequest);\n }\n }\n throw error;\n }\n\n}\n\nfunction createMockRequest(\n container: interfaces.Container,\n serviceIdentifier: interfaces.ServiceIdentifier<any>,\n key: string | number | symbol,\n value: any\n): interfaces.Request {\n\n const target = new Target(TargetTypeEnum.Variable, \"\", serviceIdentifier, new Metadata(key, value));\n const context = new Context(container);\n const request = new Request(serviceIdentifier, context, null, [], target);\n return request;\n}\n\nexport { plan, createMockRequest, getBindingDictionary };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"418b8b46da5402d81ede1c2c6c86529259e8a94f","contentHash":"3d4e9654781be6e0d2e63e7fadfa0e2ac8bcf7cf3b6a44ecec79c0511f13e9be"},"/Users/dan/jsProjects/inversify/InversifyJS/src/bindings/binding_count.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/bindings/binding_count.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":30}},"2":{"start":{"line":4,"column":19},"end":{"line":8,"column":1}},"3":{"start":{"line":9,"column":0},"end":{"line":9,"column":36}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1},"f":{},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/bindings/binding_count.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/bindings/binding_count.ts"],"names":[],"mappings":";;;AAAA,IAAM,YAAY,GAAG;IACjB,yBAAyB,EAAE,CAAC;IAC5B,mBAAmB,EAAE,CAAC;IACtB,uBAAuB,EAAE,CAAC;CAC7B,CAAC;AAEO,oCAAY","sourcesContent":["const BindingCount = {\n MultipleBindingsAvailable: 2,\n NoBindingsAvailable: 0,\n OnlyOneBindingAvailable: 1\n};\n\nexport { BindingCount };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"0f60fb12930999994fd0e7a3c60705b22720d8ad","contentHash":"6db64ac02caf12977d76e72b6dd2a8b17a15d4d0dc8e19fcfccc7df4f2d1fbf8"},"/Users/dan/jsProjects/inversify/InversifyJS/src/utils/exceptions.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/utils/exceptions.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":41}},"2":{"start":{"line":4,"column":17},"end":{"line":4,"column":51}},"3":{"start":{"line":6,"column":4},"end":{"line":7,"column":53}},"4":{"start":{"line":9,"column":0},"end":{"line":9,"column":58}}},"fnMap":{"0":{"name":"isStackOverflowExeption","decl":{"start":{"line":5,"column":9},"end":{"line":5,"column":32}},"loc":{"start":{"line":5,"column":40},"end":{"line":8,"column":1}},"line":5}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":12},"end":{"line":7,"column":51}},"type":"binary-expr","locations":[{"start":{"line":6,"column":12},"end":{"line":6,"column":39}},{"start":{"line":7,"column":8},"end":{"line":7,"column":51}}],"line":6}},"s":{"0":1,"1":1,"2":1,"3":715,"4":1},"f":{"0":715},"b":{"0":[715,683]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/utils/exceptions.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/utils/exceptions.ts"],"names":[],"mappings":";;;AAAA,oDAAsD;AAEtD,SAAgB,uBAAuB,CAAC,KAAY;IAChD,OAAO,CACH,KAAK,YAAY,UAAU;QAC3B,KAAK,CAAC,OAAO,KAAK,UAAU,CAAC,cAAc,CAC9C,CAAC;AACN,CAAC;AALD,0DAKC","sourcesContent":["import * as ERROR_MSGS from \"../constants/error_msgs\";\n\nexport function isStackOverflowExeption(error: Error) {\n return (\n error instanceof RangeError ||\n error.message === ERROR_MSGS.STACK_OVERFLOW\n );\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"2dfd2ab93c4bb16bc258dbbaf7e50db5afdb6954","contentHash":"8d72b9dd58dd5428b967910cd94ce1ff2e310b286f1fe7707f28a10b13bacb6a"},"/Users/dan/jsProjects/inversify/InversifyJS/src/utils/serialization.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/utils/serialization.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":197}},"2":{"start":{"line":4,"column":17},"end":{"line":4,"column":51}},"3":{"start":{"line":6,"column":4},"end":{"line":16,"column":5}},"4":{"start":{"line":7,"column":33},"end":{"line":7,"column":50}},"5":{"start":{"line":8,"column":8},"end":{"line":8,"column":39}},"6":{"start":{"line":10,"column":9},"end":{"line":16,"column":5}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":44}},"8":{"start":{"line":14,"column":33},"end":{"line":14,"column":50}},"9":{"start":{"line":15,"column":8},"end":{"line":15,"column":34}},"10":{"start":{"line":18,"column":0},"end":{"line":18,"column":68}},"11":{"start":{"line":20,"column":33},"end":{"line":20,"column":35}},"12":{"start":{"line":21,"column":29},"end":{"line":21,"column":70}},"13":{"start":{"line":22,"column":4},"end":{"line":34,"column":5}},"14":{"start":{"line":23,"column":8},"end":{"line":23,"column":58}},"15":{"start":{"line":24,"column":8},"end":{"line":33,"column":11}},"16":{"start":{"line":25,"column":23},"end":{"line":25,"column":31}},"17":{"start":{"line":26,"column":12},"end":{"line":28,"column":13}},"18":{"start":{"line":27,"column":16},"end":{"line":27,"column":67}},"19":{"start":{"line":29,"column":12},"end":{"line":29,"column":75}},"20":{"start":{"line":30,"column":12},"end":{"line":32,"column":13}},"21":{"start":{"line":31,"column":16},"end":{"line":31,"column":102}},"22":{"start":{"line":35,"column":4},"end":{"line":35,"column":34}},"23":{"start":{"line":37,"column":0},"end":{"line":37,"column":96}},"24":{"start":{"line":39,"column":4},"end":{"line":47,"column":5}},"25":{"start":{"line":40,"column":8},"end":{"line":40,"column":21}},"26":{"start":{"line":42,"column":9},"end":{"line":47,"column":5}},"27":{"start":{"line":43,"column":8},"end":{"line":43,"column":20}},"28":{"start":{"line":46,"column":8},"end":{"line":46,"column":80}},"29":{"start":{"line":51,"column":8},"end":{"line":51,"column":47}},"30":{"start":{"line":51,"column":33},"end":{"line":51,"column":45}},"31":{"start":{"line":52,"column":32},"end":{"line":52,"column":83}},"32":{"start":{"line":53,"column":8},"end":{"line":53,"column":39}},"33":{"start":{"line":54,"column":8},"end":{"line":56,"column":9}},"34":{"start":{"line":55,"column":12},"end":{"line":55,"column":63}},"35":{"start":{"line":57,"column":8},"end":{"line":57,"column":22}},"36":{"start":{"line":59,"column":20},"end":{"line":59,"column":45}},"37":{"start":{"line":60,"column":4},"end":{"line":60,"column":45}},"38":{"start":{"line":63,"column":4},"end":{"line":71,"column":7}},"39":{"start":{"line":64,"column":8},"end":{"line":70,"column":9}},"40":{"start":{"line":65,"column":27},"end":{"line":65,"column":64}},"41":{"start":{"line":66,"column":12},"end":{"line":66,"column":77}},"42":{"start":{"line":69,"column":12},"end":{"line":69,"column":56}},"43":{"start":{"line":73,"column":0},"end":{"line":73,"column":70}},"44":{"start":{"line":75,"column":4},"end":{"line":91,"column":5}},"45":{"start":{"line":76,"column":18},"end":{"line":76,"column":20}},"46":{"start":{"line":77,"column":23},"end":{"line":77,"column":43}},"47":{"start":{"line":78,"column":24},"end":{"line":78,"column":46}},"48":{"start":{"line":79,"column":8},"end":{"line":81,"column":9}},"49":{"start":{"line":80,"column":12},"end":{"line":80,"column":46}},"50":{"start":{"line":82,"column":8},"end":{"line":86,"column":9}},"51":{"start":{"line":83,"column":12},"end":{"line":85,"column":15}},"52":{"start":{"line":84,"column":16},"end":{"line":84,"column":45}},"53":{"start":{"line":87,"column":8},"end":{"line":87,"column":93}},"54":{"start":{"line":90,"column":8},"end":{"line":90,"column":45}},"55":{"start":{"line":93,"column":0},"end":{"line":93,"column":54}},"56":{"start":{"line":95,"column":4},"end":{"line":102,"column":5}},"57":{"start":{"line":96,"column":8},"end":{"line":96,"column":22}},"58":{"start":{"line":99,"column":21},"end":{"line":99,"column":33}},"59":{"start":{"line":100,"column":20},"end":{"line":100,"column":57}},"60":{"start":{"line":101,"column":8},"end":{"line":101,"column":66}},"61":{"start":{"line":104,"column":0},"end":{"line":104,"column":42}}},"fnMap":{"0":{"name":"getServiceIdentifierAsString","decl":{"start":{"line":5,"column":9},"end":{"line":5,"column":37}},"loc":{"start":{"line":5,"column":57},"end":{"line":17,"column":1}},"line":5},"1":{"name":"listRegisteredBindingsForServiceIdentifier","decl":{"start":{"line":19,"column":9},"end":{"line":19,"column":51}},"loc":{"start":{"line":19,"column":95},"end":{"line":36,"column":1}},"line":19},"2":{"name":"(anonymous_2)","decl":{"start":{"line":24,"column":35},"end":{"line":24,"column":36}},"loc":{"start":{"line":24,"column":54},"end":{"line":33,"column":9}},"line":24},"3":{"name":"alreadyDependencyChain","decl":{"start":{"line":38,"column":9},"end":{"line":38,"column":31}},"loc":{"start":{"line":38,"column":60},"end":{"line":48,"column":1}},"line":38},"4":{"name":"dependencyChainToString","decl":{"start":{"line":49,"column":9},"end":{"line":49,"column":32}},"loc":{"start":{"line":49,"column":42},"end":{"line":61,"column":1}},"line":49},"5":{"name":"_createStringArr","decl":{"start":{"line":50,"column":13},"end":{"line":50,"column":29}},"loc":{"start":{"line":50,"column":43},"end":{"line":58,"column":5}},"line":50},"6":{"name":"circularDependencyToException","decl":{"start":{"line":62,"column":9},"end":{"line":62,"column":38}},"loc":{"start":{"line":62,"column":48},"end":{"line":72,"column":1}},"line":62},"7":{"name":"(anonymous_7)","decl":{"start":{"line":63,"column":34},"end":{"line":63,"column":35}},"loc":{"start":{"line":63,"column":58},"end":{"line":71,"column":5}},"line":63},"8":{"name":"listMetadataForTarget","decl":{"start":{"line":74,"column":9},"end":{"line":74,"column":30}},"loc":{"start":{"line":74,"column":64},"end":{"line":92,"column":1}},"line":74},"9":{"name":"(anonymous_9)","decl":{"start":{"line":83,"column":30},"end":{"line":83,"column":31}},"loc":{"start":{"line":83,"column":45},"end":{"line":85,"column":13}},"line":83},"10":{"name":"getFunctionName","decl":{"start":{"line":94,"column":9},"end":{"line":94,"column":24}},"loc":{"start":{"line":94,"column":28},"end":{"line":103,"column":1}},"line":94}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":4},"end":{"line":16,"column":5}},"type":"if","locations":[{"start":{"line":6,"column":4},"end":{"line":16,"column":5}},{"start":{"line":6,"column":4},"end":{"line":16,"column":5}}],"line":6},"1":{"loc":{"start":{"line":10,"column":9},"end":{"line":16,"column":5}},"type":"if","locations":[{"start":{"line":10,"column":9},"end":{"line":16,"column":5}},{"start":{"line":10,"column":9},"end":{"line":16,"column":5}}],"line":10},"2":{"loc":{"start":{"line":22,"column":4},"end":{"line":34,"column":5}},"type":"if","locations":[{"start":{"line":22,"column":4},"end":{"line":34,"column":5}},{"start":{"line":22,"column":4},"end":{"line":34,"column":5}}],"line":22},"3":{"loc":{"start":{"line":26,"column":12},"end":{"line":28,"column":13}},"type":"if","locations":[{"start":{"line":26,"column":12},"end":{"line":28,"column":13}},{"start":{"line":26,"column":12},"end":{"line":28,"column":13}}],"line":26},"4":{"loc":{"start":{"line":30,"column":12},"end":{"line":32,"column":13}},"type":"if","locations":[{"start":{"line":30,"column":12},"end":{"line":32,"column":13}},{"start":{"line":30,"column":12},"end":{"line":32,"column":13}}],"line":30},"5":{"loc":{"start":{"line":39,"column":4},"end":{"line":47,"column":5}},"type":"if","locations":[{"start":{"line":39,"column":4},"end":{"line":47,"column":5}},{"start":{"line":39,"column":4},"end":{"line":47,"column":5}}],"line":39},"6":{"loc":{"start":{"line":42,"column":9},"end":{"line":47,"column":5}},"type":"if","locations":[{"start":{"line":42,"column":9},"end":{"line":47,"column":5}},{"start":{"line":42,"column":9},"end":{"line":47,"column":5}}],"line":42},"7":{"loc":{"start":{"line":51,"column":8},"end":{"line":51,"column":47}},"type":"if","locations":[{"start":{"line":51,"column":8},"end":{"line":51,"column":47}},{"start":{"line":51,"column":8},"end":{"line":51,"column":47}}],"line":51},"8":{"loc":{"start":{"line":54,"column":8},"end":{"line":56,"column":9}},"type":"if","locations":[{"start":{"line":54,"column":8},"end":{"line":56,"column":9}},{"start":{"line":54,"column":8},"end":{"line":56,"column":9}}],"line":54},"9":{"loc":{"start":{"line":64,"column":8},"end":{"line":70,"column":9}},"type":"if","locations":[{"start":{"line":64,"column":8},"end":{"line":70,"column":9}},{"start":{"line":64,"column":8},"end":{"line":70,"column":9}}],"line":64},"10":{"loc":{"start":{"line":75,"column":4},"end":{"line":91,"column":5}},"type":"if","locations":[{"start":{"line":75,"column":4},"end":{"line":91,"column":5}},{"start":{"line":75,"column":4},"end":{"line":91,"column":5}}],"line":75},"11":{"loc":{"start":{"line":75,"column":8},"end":{"line":75,"column":45}},"type":"binary-expr","locations":[{"start":{"line":75,"column":8},"end":{"line":75,"column":25}},{"start":{"line":75,"column":29},"end":{"line":75,"column":45}}],"line":75},"12":{"loc":{"start":{"line":79,"column":8},"end":{"line":81,"column":9}},"type":"if","locations":[{"start":{"line":79,"column":8},"end":{"line":81,"column":9}},{"start":{"line":79,"column":8},"end":{"line":81,"column":9}}],"line":79},"13":{"loc":{"start":{"line":82,"column":8},"end":{"line":86,"column":9}},"type":"if","locations":[{"start":{"line":82,"column":8},"end":{"line":86,"column":9}},{"start":{"line":82,"column":8},"end":{"line":86,"column":9}}],"line":82},"14":{"loc":{"start":{"line":95,"column":4},"end":{"line":102,"column":5}},"type":"if","locations":[{"start":{"line":95,"column":4},"end":{"line":102,"column":5}},{"start":{"line":95,"column":4},"end":{"line":102,"column":5}}],"line":95},"15":{"loc":{"start":{"line":101,"column":15},"end":{"line":101,"column":65}},"type":"cond-expr","locations":[{"start":{"line":101,"column":23},"end":{"line":101,"column":31}},{"start":{"line":101,"column":34},"end":{"line":101,"column":65}}],"line":101}},"s":{"0":1,"1":1,"2":1,"3":53,"4":6,"5":6,"6":47,"7":8,"8":39,"9":39,"10":1,"11":32,"12":32,"13":32,"14":9,"15":9,"16":19,"17":19,"18":17,"19":19,"20":19,"21":13,"22":32,"23":1,"24":41,"25":12,"26":29,"27":3,"28":26,"29":13,"30":3,"31":13,"32":13,"33":13,"34":10,"35":3,"36":3,"37":3,"38":16,"39":15,"40":3,"41":3,"42":12,"43":1,"44":29,"45":10,"46":10,"47":10,"48":10,"49":6,"50":10,"51":4,"52":4,"53":10,"54":19,"55":1,"56":8046,"57":8044,"58":2,"59":2,"60":2,"61":1},"f":{"0":53,"1":32,"2":19,"3":41,"4":3,"5":13,"6":16,"7":15,"8":29,"9":4,"10":8046},"b":{"0":[6,47],"1":[8,39],"2":[9,23],"3":[17,2],"4":[13,6],"5":[12,29],"6":[3,26],"7":[3,10],"8":[10,3],"9":[3,12],"10":[10,19],"11":[29,25],"12":[6,4],"13":[4,6],"14":[8044,2],"15":[1,1]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/utils/serialization.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/utils/serialization.ts"],"names":[],"mappings":"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","sourcesContent":["import * as ERROR_MSGS from \"../constants/error_msgs\";\nimport { interfaces } from \"../interfaces/interfaces\";\n\nfunction getServiceIdentifierAsString(serviceIdentifier: interfaces.ServiceIdentifier<any>): string {\n if (typeof serviceIdentifier === \"function\") {\n const _serviceIdentifier: any = serviceIdentifier;\n return _serviceIdentifier.name;\n } else if (typeof serviceIdentifier === \"symbol\") {\n return serviceIdentifier.toString();\n } else { // string\n const _serviceIdentifier: any = serviceIdentifier;\n return _serviceIdentifier;\n }\n}\n\nfunction listRegisteredBindingsForServiceIdentifier(\n container: interfaces.Container,\n serviceIdentifier: string,\n getBindings: <T>(\n container: interfaces.Container,\n serviceIdentifier: interfaces.ServiceIdentifier<T>\n ) => interfaces.Binding<T>[]\n): string {\n\n let registeredBindingsList = \"\";\n const registeredBindings = getBindings(container, serviceIdentifier);\n\n if (registeredBindings.length !== 0) {\n\n registeredBindingsList = \"\\nRegistered bindings:\";\n\n registeredBindings.forEach((binding: interfaces.Binding<any>) => {\n\n // Use \"Object as name of constant value injections\"\n let name = \"Object\";\n\n // Use function name if available\n if (binding.implementationType !== null) {\n name = getFunctionName(binding.implementationType);\n }\n\n registeredBindingsList = `${registeredBindingsList}\\n ${name}`;\n\n if (binding.constraint.metaData) {\n registeredBindingsList = `${registeredBindingsList} - ${binding.constraint.metaData}`;\n }\n\n });\n\n }\n\n return registeredBindingsList;\n}\n\nfunction alreadyDependencyChain(\n request: interfaces.Request,\n serviceIdentifier: interfaces.ServiceIdentifier<any>\n): boolean {\n if (request.parentRequest === null) {\n return false;\n } else if (request.parentRequest.serviceIdentifier === serviceIdentifier) {\n return true;\n } else {\n return alreadyDependencyChain(request.parentRequest, serviceIdentifier);\n }\n}\n\nfunction dependencyChainToString(\n request: interfaces.Request\n) {\n\n function _createStringArr(\n req: interfaces.Request,\n result: string[] = []\n ): string[] {\n const serviceIdentifier = getServiceIdentifierAsString(req.serviceIdentifier);\n result.push(serviceIdentifier);\n if (req.parentRequest !== null) {\n return _createStringArr(req.parentRequest, result);\n }\n return result;\n }\n\n const stringArr = _createStringArr(request);\n return stringArr.reverse().join(\" --> \");\n\n}\n\nfunction circularDependencyToException(\n request: interfaces.Request\n) {\n request.childRequests.forEach((childRequest) => {\n if (alreadyDependencyChain(childRequest, childRequest.serviceIdentifier)) {\n const services = dependencyChainToString(childRequest);\n throw new Error(`${ERROR_MSGS.CIRCULAR_DEPENDENCY} ${services}`);\n } else {\n circularDependencyToException(childRequest);\n }\n });\n}\n\nfunction listMetadataForTarget(serviceIdentifierString: string, target: interfaces.Target): string {\n if (target.isTagged() || target.isNamed()) {\n\n let m = \"\";\n\n const namedTag = target.getNamedTag();\n const otherTags = target.getCustomTags();\n\n if (namedTag !== null) {\n m += namedTag.toString() + \"\\n\";\n }\n\n if (otherTags !== null) {\n otherTags.forEach((tag) => {\n m += tag.toString() + \"\\n\";\n });\n }\n\n return ` ${serviceIdentifierString}\\n ${serviceIdentifierString} - ${m}`;\n\n } else {\n return ` ${serviceIdentifierString}`;\n }\n}\n\nfunction getFunctionName(v: any): string {\n if (v.name) {\n return v.name;\n } else {\n const name = v.toString();\n const match = name.match(/^function\\s*([^\\s(]+)/);\n return match ? match[1] : `Anonymous function: ${name}`;\n }\n}\n\nexport {\n getFunctionName,\n getServiceIdentifierAsString,\n listRegisteredBindingsForServiceIdentifier,\n listMetadataForTarget,\n circularDependencyToException\n};\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"b8b1c2c537a1a9e849c1533f7106017b81861f5b","contentHash":"ebc0d9c6e30d6abc08ff8951b4f78244d9f4f676cbb48f0b2cb283dc7c2f8bc7"},"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/context.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/context.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":25}},"2":{"start":{"line":4,"column":11},"end":{"line":4,"column":33}},"3":{"start":{"line":5,"column":15},"end":{"line":17,"column":3}},"4":{"start":{"line":7,"column":8},"end":{"line":7,"column":28}},"5":{"start":{"line":8,"column":8},"end":{"line":8,"column":35}},"6":{"start":{"line":10,"column":4},"end":{"line":12,"column":6}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":25}},"8":{"start":{"line":13,"column":4},"end":{"line":15,"column":6}},"9":{"start":{"line":14,"column":8},"end":{"line":14,"column":45}},"10":{"start":{"line":16,"column":4},"end":{"line":16,"column":19}},"11":{"start":{"line":18,"column":0},"end":{"line":18,"column":26}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":15},"end":{"line":5,"column":16}},"loc":{"start":{"line":5,"column":27},"end":{"line":17,"column":1}},"line":5},"1":{"name":"Context","decl":{"start":{"line":6,"column":13},"end":{"line":6,"column":20}},"loc":{"start":{"line":6,"column":32},"end":{"line":9,"column":5}},"line":6},"2":{"name":"(anonymous_2)","decl":{"start":{"line":10,"column":32},"end":{"line":10,"column":33}},"loc":{"start":{"line":10,"column":48},"end":{"line":12,"column":5}},"line":10},"3":{"name":"(anonymous_3)","decl":{"start":{"line":13,"column":42},"end":{"line":13,"column":43}},"loc":{"start":{"line":13,"column":68},"end":{"line":15,"column":5}},"line":13}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":972,"5":972,"6":1,"7":914,"8":1,"9":1724,"10":1,"11":1},"f":{"0":1,"1":972,"2":914,"3":1724},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/context.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/planning/context.ts"],"names":[],"mappings":";;;AACA,kCAAiC;AAEjC;IAOI,iBACI,SAA+B;QAC/B,IAAI,CAAC,EAAE,GAAG,OAAE,EAAE,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAEM,yBAAO,GAAd,UAAe,IAAqB;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAEM,mCAAiB,GAAxB,UAAyB,cAAkC;QACvD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACzC,CAAC;IAEL,cAAC;AAAD,CAAC,AArBD,IAqBC;AAEQ,0BAAO","sourcesContent":["import { interfaces } from \"../interfaces/interfaces\";\nimport { id } from \"../utils/id\";\n\nclass Context implements interfaces.Context {\n\n public id: number;\n public container: interfaces.Container;\n public plan: interfaces.Plan;\n public currentRequest: interfaces.Request;\n\n public constructor(\n container: interfaces.Container) {\n this.id = id();\n this.container = container;\n }\n\n public addPlan(plan: interfaces.Plan) {\n this.plan = plan;\n }\n\n public setCurrentRequest(currentRequest: interfaces.Request) {\n this.currentRequest = currentRequest;\n }\n\n}\n\nexport { Context };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"aa005119ea8a4529be9b4c1a7369dc50a4a8149f","contentHash":"03e3aa53d31aed658c5c4f4bd10d0bc73c2cddfda76d98fa46d787ea5f2bb13e"},"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/plan.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/plan.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":22}},"2":{"start":{"line":4,"column":12},"end":{"line":10,"column":3}},"3":{"start":{"line":6,"column":8},"end":{"line":6,"column":43}},"4":{"start":{"line":7,"column":8},"end":{"line":7,"column":39}},"5":{"start":{"line":9,"column":4},"end":{"line":9,"column":16}},"6":{"start":{"line":11,"column":0},"end":{"line":11,"column":20}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":12},"end":{"line":4,"column":13}},"loc":{"start":{"line":4,"column":24},"end":{"line":10,"column":1}},"line":4},"1":{"name":"Plan","decl":{"start":{"line":5,"column":13},"end":{"line":5,"column":17}},"loc":{"start":{"line":5,"column":46},"end":{"line":8,"column":5}},"line":5}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":915,"4":915,"5":1,"6":1},"f":{"0":1,"1":915},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/plan.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/planning/plan.ts"],"names":[],"mappings":";;;AAEA;IAKI,cAAmB,aAAiC,EAAE,WAA+B;QACjF,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;IACL,WAAC;AAAD,CAAC,AATD,IASC;AAEQ,oBAAI","sourcesContent":["import { interfaces } from \"../interfaces/interfaces\";\n\nclass Plan implements interfaces.Plan {\n\n public parentContext: interfaces.Context;\n public rootRequest: interfaces.Request;\n\n public constructor(parentContext: interfaces.Context, rootRequest: interfaces.Request) {\n this.parentContext = parentContext;\n this.rootRequest = rootRequest;\n }\n}\n\nexport { Plan };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"0c9b78c60e1bc3d911d8d76e1d4d5ab1cf8c37e7","contentHash":"43530cc60f6b97bd37d02dc305255ce89e5085fa606022a99cbcfdf6ab902348"},"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/reflection_utils.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/reflection_utils.ts","statementMap":{"0":{"start":{"line":2,"column":20},"end":{"line":6,"column":1}},"1":{"start":{"line":3,"column":4},"end":{"line":4,"column":24}},"2":{"start":{"line":3,"column":17},"end":{"line":3,"column":18}},"3":{"start":{"line":3,"column":25},"end":{"line":3,"column":36}},"4":{"start":{"line":3,"column":42},"end":{"line":3,"column":51}},"5":{"start":{"line":4,"column":8},"end":{"line":4,"column":24}},"6":{"start":{"line":5,"column":4},"end":{"line":5,"column":14}},"7":{"start":{"line":7,"column":0},"end":{"line":7,"column":62}},"8":{"start":{"line":8,"column":0},"end":{"line":8,"column":97}},"9":{"start":{"line":9,"column":15},"end":{"line":9,"column":46}},"10":{"start":{"line":10,"column":17},"end":{"line":10,"column":51}},"11":{"start":{"line":11,"column":22},"end":{"line":11,"column":59}},"12":{"start":{"line":12,"column":19},"end":{"line":12,"column":56}},"13":{"start":{"line":13,"column":22},"end":{"line":13,"column":55}},"14":{"start":{"line":14,"column":0},"end":{"line":14,"column":134}},"15":{"start":{"line":14,"column":89},"end":{"line":14,"column":128}},"16":{"start":{"line":15,"column":15},"end":{"line":15,"column":34}},"17":{"start":{"line":17,"column":26},"end":{"line":17,"column":63}},"18":{"start":{"line":18,"column":18},"end":{"line":18,"column":74}},"19":{"start":{"line":19,"column":4},"end":{"line":19,"column":19}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":42}},"21":{"start":{"line":23,"column":19},"end":{"line":23,"column":62}},"22":{"start":{"line":24,"column":29},"end":{"line":24,"column":63}},"23":{"start":{"line":25,"column":4},"end":{"line":28,"column":5}},"24":{"start":{"line":26,"column":18},"end":{"line":26,"column":88}},"25":{"start":{"line":27,"column":8},"end":{"line":27,"column":29}},"26":{"start":{"line":29,"column":34},"end":{"line":29,"column":64}},"27":{"start":{"line":30,"column":15},"end":{"line":30,"column":51}},"28":{"start":{"line":31,"column":44},"end":{"line":31,"column":80}},"29":{"start":{"line":32,"column":32},"end":{"line":32,"column":57}},"30":{"start":{"line":33,"column":21},"end":{"line":33,"column":108}},"31":{"start":{"line":34,"column":29},"end":{"line":34,"column":143}},"32":{"start":{"line":35,"column":26},"end":{"line":35,"column":70}},"33":{"start":{"line":36,"column":18},"end":{"line":36,"column":87}},"34":{"start":{"line":37,"column":4},"end":{"line":37,"column":19}},"35":{"start":{"line":40,"column":25},"end":{"line":40,"column":72}},"36":{"start":{"line":41,"column":19},"end":{"line":41,"column":55}},"37":{"start":{"line":42,"column":20},"end":{"line":42,"column":47}},"38":{"start":{"line":43,"column":28},"end":{"line":43,"column":53}},"39":{"start":{"line":44,"column":28},"end":{"line":44,"column":67}},"40":{"start":{"line":45,"column":4},"end":{"line":45,"column":84}},"41":{"start":{"line":46,"column":4},"end":{"line":48,"column":5}},"42":{"start":{"line":47,"column":8},"end":{"line":47,"column":55}},"43":{"start":{"line":49,"column":4},"end":{"line":61,"column":5}},"44":{"start":{"line":50,"column":23},"end":{"line":50,"column":51}},"45":{"start":{"line":51,"column":25},"end":{"line":51,"column":55}},"46":{"start":{"line":52,"column":26},"end":{"line":52,"column":57}},"47":{"start":{"line":53,"column":29},"end":{"line":53,"column":66}},"48":{"start":{"line":54,"column":8},"end":{"line":57,"column":9}},"49":{"start":{"line":55,"column":22},"end":{"line":55,"column":120}},"50":{"start":{"line":56,"column":12},"end":{"line":56,"column":33}},"51":{"start":{"line":58,"column":21},"end":{"line":58,"column":132}},"52":{"start":{"line":59,"column":8},"end":{"line":59,"column":41}},"53":{"start":{"line":60,"column":8},"end":{"line":60,"column":22}},"54":{"start":{"line":62,"column":4},"end":{"line":62,"column":16}},"55":{"start":{"line":65,"column":18},"end":{"line":65,"column":20}},"56":{"start":{"line":66,"column":4},"end":{"line":72,"column":5}},"57":{"start":{"line":66,"column":17},"end":{"line":66,"column":18}},"58":{"start":{"line":67,"column":20},"end":{"line":67,"column":21}},"59":{"start":{"line":68,"column":21},"end":{"line":68,"column":129}},"60":{"start":{"line":69,"column":8},"end":{"line":71,"column":9}},"61":{"start":{"line":70,"column":12},"end":{"line":70,"column":33}},"62":{"start":{"line":73,"column":4},"end":{"line":73,"column":19}},"63":{"start":{"line":76,"column":29},"end":{"line":76,"column":82}},"64":{"start":{"line":77,"column":18},"end":{"line":77,"column":20}},"65":{"start":{"line":78,"column":15},"end":{"line":78,"column":46}},"66":{"start":{"line":79,"column":4},"end":{"line":88,"column":5}},"67":{"start":{"line":79,"column":18},"end":{"line":79,"column":19}},"68":{"start":{"line":79,"column":30},"end":{"line":79,"column":34}},"69":{"start":{"line":80,"column":18},"end":{"line":80,"column":28}},"70":{"start":{"line":81,"column":29},"end":{"line":81,"column":52}},"71":{"start":{"line":82,"column":23},"end":{"line":82,"column":68}},"72":{"start":{"line":83,"column":25},"end":{"line":83,"column":51}},"73":{"start":{"line":84,"column":33},"end":{"line":84,"column":72}},"74":{"start":{"line":85,"column":21},"end":{"line":85,"column":117}},"75":{"start":{"line":86,"column":8},"end":{"line":86,"column":41}},"76":{"start":{"line":87,"column":8},"end":{"line":87,"column":29}},"77":{"start":{"line":89,"column":26},"end":{"line":89,"column":86}},"78":{"start":{"line":90,"column":4},"end":{"line":93,"column":5}},"79":{"start":{"line":91,"column":26},"end":{"line":91,"column":81}},"80":{"start":{"line":92,"column":8},"end":{"line":92,"column":73}},"81":{"start":{"line":94,"column":4},"end":{"line":94,"column":19}},"82":{"start":{"line":97,"column":26},"end":{"line":97,"column":75}},"83":{"start":{"line":98,"column":4},"end":{"line":117,"column":5}},"84":{"start":{"line":99,"column":34},"end":{"line":99,"column":82}},"85":{"start":{"line":100,"column":22},"end":{"line":100,"column":92}},"86":{"start":{"line":101,"column":23},"end":{"line":105,"column":10}},"87":{"start":{"line":102,"column":12},"end":{"line":104,"column":15}},"88":{"start":{"line":103,"column":16},"end":{"line":103,"column":60}},"89":{"start":{"line":106,"column":29},"end":{"line":106,"column":65}},"90":{"start":{"line":107,"column":30},"end":{"line":107,"column":61}},"91":{"start":{"line":108,"column":8},"end":{"line":113,"column":9}},"92":{"start":{"line":109,"column":12},"end":{"line":109,"column":35}},"93":{"start":{"line":112,"column":12},"end":{"line":112,"column":80}},"94":{"start":{"line":116,"column":8},"end":{"line":116,"column":17}},"95":{"start":{"line":119,"column":0},"end":{"line":119,"column":66}},"96":{"start":{"line":121,"column":28},"end":{"line":121,"column":30}},"97":{"start":{"line":122,"column":4},"end":{"line":124,"column":7}},"98":{"start":{"line":123,"column":8},"end":{"line":123,"column":54}},"99":{"start":{"line":125,"column":4},"end":{"line":130,"column":6}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":52},"end":{"line":2,"column":53}},"loc":{"start":{"line":2,"column":72},"end":{"line":6,"column":1}},"line":2},"1":{"name":"(anonymous_1)","decl":{"start":{"line":14,"column":75},"end":{"line":14,"column":76}},"loc":{"start":{"line":14,"column":87},"end":{"line":14,"column":130}},"line":14},"2":{"name":"getDependencies","decl":{"start":{"line":16,"column":9},"end":{"line":16,"column":24}},"loc":{"start":{"line":16,"column":47},"end":{"line":20,"column":1}},"line":16},"3":{"name":"getTargets","decl":{"start":{"line":22,"column":9},"end":{"line":22,"column":19}},"loc":{"start":{"line":22,"column":72},"end":{"line":38,"column":1}},"line":22},"4":{"name":"getConstructorArgsAsTarget","decl":{"start":{"line":39,"column":9},"end":{"line":39,"column":35}},"loc":{"start":{"line":39,"column":118},"end":{"line":63,"column":1}},"line":39},"5":{"name":"getConstructorArgsAsTargets","decl":{"start":{"line":64,"column":9},"end":{"line":64,"column":36}},"loc":{"start":{"line":64,"column":124},"end":{"line":74,"column":1}},"line":64},"6":{"name":"getClassPropsAsTargets","decl":{"start":{"line":75,"column":9},"end":{"line":75,"column":31}},"loc":{"start":{"line":75,"column":65},"end":{"line":95,"column":1}},"line":75},"7":{"name":"getBaseClassDependencyCount","decl":{"start":{"line":96,"column":9},"end":{"line":96,"column":36}},"loc":{"start":{"line":96,"column":59},"end":{"line":118,"column":1}},"line":96},"8":{"name":"(anonymous_8)","decl":{"start":{"line":101,"column":35},"end":{"line":101,"column":36}},"loc":{"start":{"line":101,"column":48},"end":{"line":105,"column":9}},"line":101},"9":{"name":"(anonymous_9)","decl":{"start":{"line":102,"column":37},"end":{"line":102,"column":38}},"loc":{"start":{"line":102,"column":50},"end":{"line":104,"column":13}},"line":102},"10":{"name":"formatTargetMetadata","decl":{"start":{"line":120,"column":9},"end":{"line":120,"column":29}},"loc":{"start":{"line":120,"column":46},"end":{"line":131,"column":1}},"line":120},"11":{"name":"(anonymous_11)","decl":{"start":{"line":122,"column":27},"end":{"line":122,"column":28}},"loc":{"start":{"line":122,"column":40},"end":{"line":124,"column":5}},"line":122}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":20},"end":{"line":6,"column":1}},"type":"binary-expr","locations":[{"start":{"line":2,"column":21},"end":{"line":2,"column":25}},{"start":{"line":2,"column":29},"end":{"line":2,"column":47}},{"start":{"line":2,"column":52},"end":{"line":6,"column":1}}],"line":2},"1":{"loc":{"start":{"line":25,"column":4},"end":{"line":28,"column":5}},"type":"if","locations":[{"start":{"line":25,"column":4},"end":{"line":28,"column":5}},{"start":{"line":25,"column":4},"end":{"line":28,"column":5}}],"line":25},"2":{"loc":{"start":{"line":31,"column":44},"end":{"line":31,"column":80}},"type":"binary-expr","locations":[{"start":{"line":31,"column":44},"end":{"line":31,"column":61}},{"start":{"line":31,"column":65},"end":{"line":31,"column":80}}],"line":31},"3":{"loc":{"start":{"line":33,"column":21},"end":{"line":33,"column":108}},"type":"cond-expr","locations":[{"start":{"line":33,"column":83},"end":{"line":33,"column":94}},{"start":{"line":33,"column":97},"end":{"line":33,"column":108}}],"line":33},"4":{"loc":{"start":{"line":33,"column":22},"end":{"line":33,"column":79}},"type":"binary-expr","locations":[{"start":{"line":33,"column":22},"end":{"line":33,"column":54}},{"start":{"line":33,"column":58},"end":{"line":33,"column":79}}],"line":33},"5":{"loc":{"start":{"line":40,"column":25},"end":{"line":40,"column":72}},"type":"binary-expr","locations":[{"start":{"line":40,"column":25},"end":{"line":40,"column":66}},{"start":{"line":40,"column":70},"end":{"line":40,"column":72}}],"line":40},"6":{"loc":{"start":{"line":44,"column":28},"end":{"line":44,"column":67}},"type":"binary-expr","locations":[{"start":{"line":44,"column":28},"end":{"line":44,"column":43}},{"start":{"line":44,"column":47},"end":{"line":44,"column":67}}],"line":44},"7":{"loc":{"start":{"line":45,"column":24},"end":{"line":45,"column":83}},"type":"cond-expr","locations":[{"start":{"line":45,"column":46},"end":{"line":45,"column":62}},{"start":{"line":45,"column":66},"end":{"line":45,"column":83}}],"line":45},"8":{"loc":{"start":{"line":46,"column":4},"end":{"line":48,"column":5}},"type":"if","locations":[{"start":{"line":46,"column":4},"end":{"line":48,"column":5}},{"start":{"line":46,"column":4},"end":{"line":48,"column":5}}],"line":46},"9":{"loc":{"start":{"line":49,"column":4},"end":{"line":61,"column":5}},"type":"if","locations":[{"start":{"line":49,"column":4},"end":{"line":61,"column":5}},{"start":{"line":49,"column":4},"end":{"line":61,"column":5}}],"line":49},"10":{"loc":{"start":{"line":53,"column":29},"end":{"line":53,"column":66}},"type":"binary-expr","locations":[{"start":{"line":53,"column":29},"end":{"line":53,"column":37}},{"start":{"line":53,"column":41},"end":{"line":53,"column":51}},{"start":{"line":53,"column":55},"end":{"line":53,"column":66}}],"line":53},"11":{"loc":{"start":{"line":54,"column":8},"end":{"line":57,"column":9}},"type":"if","locations":[{"start":{"line":54,"column":8},"end":{"line":57,"column":9}},{"start":{"line":54,"column":8},"end":{"line":57,"column":9}}],"line":54},"12":{"loc":{"start":{"line":54,"column":12},"end":{"line":54,"column":41}},"type":"binary-expr","locations":[{"start":{"line":54,"column":12},"end":{"line":54,"column":24}},{"start":{"line":54,"column":28},"end":{"line":54,"column":41}}],"line":54},"13":{"loc":{"start":{"line":69,"column":8},"end":{"line":71,"column":9}},"type":"if","locations":[{"start":{"line":69,"column":8},"end":{"line":71,"column":9}},{"start":{"line":69,"column":8},"end":{"line":71,"column":9}}],"line":69},"14":{"loc":{"start":{"line":83,"column":25},"end":{"line":83,"column":51}},"type":"binary-expr","locations":[{"start":{"line":83,"column":25},"end":{"line":83,"column":44}},{"start":{"line":83,"column":48},"end":{"line":83,"column":51}}],"line":83},"15":{"loc":{"start":{"line":84,"column":33},"end":{"line":84,"column":72}},"type":"binary-expr","locations":[{"start":{"line":84,"column":33},"end":{"line":84,"column":48}},{"start":{"line":84,"column":52},"end":{"line":84,"column":72}}],"line":84},"16":{"loc":{"start":{"line":90,"column":4},"end":{"line":93,"column":5}},"type":"if","locations":[{"start":{"line":90,"column":4},"end":{"line":93,"column":5}},{"start":{"line":90,"column":4},"end":{"line":93,"column":5}}],"line":90},"17":{"loc":{"start":{"line":98,"column":4},"end":{"line":117,"column":5}},"type":"if","locations":[{"start":{"line":98,"column":4},"end":{"line":117,"column":5}},{"start":{"line":98,"column":4},"end":{"line":117,"column":5}}],"line":98},"18":{"loc":{"start":{"line":108,"column":8},"end":{"line":113,"column":9}},"type":"if","locations":[{"start":{"line":108,"column":8},"end":{"line":113,"column":9}},{"start":{"line":108,"column":8},"end":{"line":113,"column":9}}],"line":108}},"s":{"0":1,"1":16074,"2":16074,"3":16074,"4":16074,"5":7903,"6":16074,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":8009,"18":8009,"19":8004,"20":1,"21":8025,"22":8025,"23":8025,"24":2,"25":2,"26":8023,"27":8023,"28":8023,"29":8023,"30":8023,"31":8023,"32":8019,"33":8019,"34":8019,"35":7893,"36":7893,"37":7893,"38":7893,"39":7893,"40":7893,"41":7893,"42":0,"43":7893,"44":7884,"45":7884,"46":7884,"47":7884,"48":7884,"49":2,"50":2,"51":7882,"52":7882,"53":7882,"54":9,"55":8023,"56":8023,"57":8023,"58":7895,"59":7895,"60":7891,"61":7882,"62":8019,"63":8037,"64":8037,"65":8037,"66":8037,"67":8037,"68":8037,"69":17,"70":17,"71":17,"72":17,"73":17,"74":17,"75":17,"76":17,"77":8037,"78":8037,"79":18,"80":18,"81":8037,"82":8005,"83":8005,"84":16,"85":16,"86":15,"87":11,"88":10,"89":15,"90":15,"91":15,"92":10,"93":5,"94":7989,"95":1,"96":7910,"97":7910,"98":7974,"99":7910},"f":{"0":16074,"1":1,"2":8009,"3":8025,"4":7893,"5":8023,"6":8037,"7":8005,"8":11,"9":10,"10":7910,"11":7974},"b":{"0":[1,1,1],"1":[2,8023],"2":[8023,2298],"3":[9,8014],"4":[8023,8014],"5":[7893,22],"6":[7893,37],"7":[7862,31],"8":[0,7893],"9":[7884,9],"10":[7884,7882,7881],"11":[2,7882],"12":[7884,7875],"13":[7882,9],"14":[17,17],"15":[17,1],"16":[18,8019],"17":[16,7989],"18":[10,5]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/reflection_utils.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/planning/reflection_utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { LazyServiceIdentifer } from \"../annotation/inject\";\nimport * as ERROR_MSGS from \"../constants/error_msgs\";\nimport { TargetTypeEnum } from \"../constants/literal_types\";\nimport * as METADATA_KEY from \"../constants/metadata_keys\";\nimport { interfaces } from \"../interfaces/interfaces\";\nimport { getFunctionName } from \"../utils/serialization\";\nimport { Target } from \"./target\";\n\nfunction getDependencies(\n metadataReader: interfaces.MetadataReader, func: Function\n): interfaces.Target[] {\n const constructorName = getFunctionName(func);\n const targets: interfaces.Target[] = getTargets(metadataReader, constructorName, func, false);\n return targets;\n}\n\nfunction getTargets(\n metadataReader: interfaces.MetadataReader, constructorName: string, func: Function, isBaseClass: boolean\n): interfaces.Target[] {\n\n const metadata = metadataReader.getConstructorMetadata(func);\n\n // TypeScript compiler generated annotations\n const serviceIdentifiers = metadata.compilerGeneratedMetadata;\n\n // All types resolved must be annotated with @injectable\n if (serviceIdentifiers === undefined) {\n const msg = `${ERROR_MSGS.MISSING_INJECTABLE_ANNOTATION} ${constructorName}.`;\n throw new Error(msg);\n }\n\n // User generated annotations\n const constructorArgsMetadata = metadata.userGeneratedMetadata;\n\n const keys = Object.keys(constructorArgsMetadata);\n const hasUserDeclaredUnknownInjections = (func.length === 0 && keys.length > 0);\n const hasOptionalParameters = keys.length > func.length;\n\n const iterations = (hasUserDeclaredUnknownInjections || hasOptionalParameters) ? keys.length : func.length;\n\n // Target instances that represent constructor arguments to be injected\n const constructorTargets = getConstructorArgsAsTargets(\n isBaseClass,\n constructorName,\n serviceIdentifiers,\n constructorArgsMetadata,\n iterations\n );\n\n // Target instances that represent properties to be injected\n const propertyTargets = getClassPropsAsTargets(metadataReader, func);\n\n const targets = [\n ...constructorTargets,\n ...propertyTargets\n ];\n\n return targets;\n\n}\nfunction getConstructorArgsAsTarget(\n index: number,\n isBaseClass: boolean,\n constructorName: string,\n serviceIdentifiers: any,\n constructorArgsMetadata: any\n) {\n // Create map from array of metadata for faster access to metadata\n const targetMetadata = constructorArgsMetadata[index.toString()] || [];\n const metadata = formatTargetMetadata(targetMetadata);\n const isManaged = metadata.unmanaged !== true;\n\n // Take types to be injected from user-generated metadata\n // if not available use compiler-generated metadata\n let serviceIdentifier = serviceIdentifiers[index];\n const injectIdentifier = (metadata.inject || metadata.multiInject);\n serviceIdentifier = (injectIdentifier) ? (injectIdentifier) : serviceIdentifier;\n\n // we unwrap LazyServiceIdentifer wrappers to allow circular dependencies on symbols\n if (serviceIdentifier instanceof LazyServiceIdentifer) {\n serviceIdentifier = serviceIdentifier.unwrap();\n }\n\n // Types Object and Function are too ambiguous to be resolved\n // user needs to generate metadata manually for those\n if (isManaged) {\n\n const isObject = serviceIdentifier === Object;\n const isFunction = serviceIdentifier === Function;\n const isUndefined = serviceIdentifier === undefined;\n const isUnknownType = (isObject || isFunction || isUndefined);\n\n if (!isBaseClass && isUnknownType) {\n const msg = `${ERROR_MSGS.MISSING_INJECT_ANNOTATION} argument ${index} in class ${constructorName}.`;\n throw new Error(msg);\n }\n\n const target = new Target(TargetTypeEnum.ConstructorArgument, metadata.targetName, serviceIdentifier);\n target.metadata = targetMetadata;\n return target;\n }\n\n return null;\n\n}\n\nfunction getConstructorArgsAsTargets(\n isBaseClass: boolean,\n constructorName: string,\n serviceIdentifiers: any,\n constructorArgsMetadata: any,\n iterations: number\n) {\n\n const targets: interfaces.Target[] = [];\n for (let i = 0; i < iterations; i++) {\n const index = i;\n const target = getConstructorArgsAsTarget(\n index,\n isBaseClass,\n constructorName,\n serviceIdentifiers,\n constructorArgsMetadata\n );\n if (target !== null) {\n targets.push(target);\n }\n }\n\n return targets;\n}\n\nfunction getClassPropsAsTargets(metadataReader: interfaces.MetadataReader, constructorFunc: Function) {\n\n const classPropsMetadata = metadataReader.getPropertiesMetadata(constructorFunc);\n let targets: interfaces.Target[] = [];\n const keys = Object.keys(classPropsMetadata);\n\n for (const key of keys) {\n\n // the metadata for the property being injected\n const targetMetadata = classPropsMetadata[key];\n\n // the metadata formatted for easier access\n const metadata = formatTargetMetadata(classPropsMetadata[key]);\n\n // the name of the property being injected\n const targetName = metadata.targetName || key;\n\n // Take types to be injected from user-generated metadata\n const serviceIdentifier = (metadata.inject || metadata.multiInject);\n\n // The property target\n const target = new Target(TargetTypeEnum.ClassProperty, targetName, serviceIdentifier);\n target.metadata = targetMetadata;\n targets.push(target);\n }\n\n // Check if base class has injected properties\n const baseConstructor = Object.getPrototypeOf(constructorFunc.prototype).constructor;\n\n if (baseConstructor !== Object) {\n\n const baseTargets = getClassPropsAsTargets(metadataReader, baseConstructor);\n\n targets = [\n ...targets,\n ...baseTargets\n ];\n\n }\n\n return targets;\n}\n\nfunction getBaseClassDependencyCount(metadataReader: interfaces.MetadataReader, func: Function): number {\n\n const baseConstructor = Object.getPrototypeOf(func.prototype).constructor;\n\n if (baseConstructor !== Object) {\n\n // get targets for base class\n const baseConstructorName = getFunctionName(baseConstructor);\n\n const targets = getTargets(metadataReader, baseConstructorName, baseConstructor, true);\n\n // get unmanaged metadata\n const metadata: any[] = targets.map((t: interfaces.Target) =>\n t.metadata.filter((m: interfaces.Metadata) =>\n m.key === METADATA_KEY.UNMANAGED_TAG));\n\n // Compare the number of constructor arguments with the number of\n // unmanaged dependencies unmanaged dependencies are not required\n const unmanagedCount = [].concat.apply([], metadata).length;\n const dependencyCount = targets.length - unmanagedCount;\n\n if (dependencyCount > 0) {\n return dependencyCount;\n } else {\n return getBaseClassDependencyCount(metadataReader, baseConstructor);\n }\n\n } else {\n return 0;\n }\n\n}\n\nfunction formatTargetMetadata(targetMetadata: any[]) {\n\n // Create map from array of metadata for faster access to metadata\n const targetMetadataMap: any = {};\n targetMetadata.forEach((m: interfaces.Metadata) => {\n targetMetadataMap[m.key.toString()] = m.value;\n });\n\n // user generated metadata\n return {\n inject : targetMetadataMap[METADATA_KEY.INJECT_TAG],\n multiInject: targetMetadataMap[METADATA_KEY.MULTI_INJECT_TAG],\n targetName: targetMetadataMap[METADATA_KEY.NAME_TAG],\n unmanaged: targetMetadataMap[METADATA_KEY.UNMANAGED_TAG]\n };\n\n}\n\nexport { getDependencies, getBaseClassDependencyCount, getFunctionName };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"933ad57b7883867530a3f4487130ca426ff93d24","contentHash":"7aff82fe6c1d28c8f9fb5b91d21968fa55782027646b66ef5b45c19cfdd68962"},"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/target.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/target.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":24}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":56}},"3":{"start":{"line":5,"column":11},"end":{"line":5,"column":33}},"4":{"start":{"line":6,"column":17},"end":{"line":6,"column":38}},"5":{"start":{"line":7,"column":25},"end":{"line":7,"column":54}},"6":{"start":{"line":8,"column":14},"end":{"line":80,"column":3}},"7":{"start":{"line":10,"column":8},"end":{"line":10,"column":28}},"8":{"start":{"line":11,"column":8},"end":{"line":11,"column":25}},"9":{"start":{"line":12,"column":8},"end":{"line":12,"column":51}},"10":{"start":{"line":13,"column":8},"end":{"line":13,"column":71}},"11":{"start":{"line":14,"column":8},"end":{"line":14,"column":36}},"12":{"start":{"line":15,"column":27},"end":{"line":15,"column":31}},"13":{"start":{"line":16,"column":8},"end":{"line":21,"column":9}},"14":{"start":{"line":17,"column":12},"end":{"line":17,"column":90}},"15":{"start":{"line":19,"column":13},"end":{"line":21,"column":9}},"16":{"start":{"line":20,"column":12},"end":{"line":20,"column":41}},"17":{"start":{"line":22,"column":8},"end":{"line":24,"column":9}},"18":{"start":{"line":23,"column":12},"end":{"line":23,"column":45}},"19":{"start":{"line":26,"column":4},"end":{"line":34,"column":6}},"20":{"start":{"line":27,"column":8},"end":{"line":32,"column":9}},"21":{"start":{"line":27,"column":22},"end":{"line":27,"column":23}},"22":{"start":{"line":27,"column":30},"end":{"line":27,"column":43}},"23":{"start":{"line":28,"column":20},"end":{"line":28,"column":26}},"24":{"start":{"line":29,"column":12},"end":{"line":31,"column":13}},"25":{"start":{"line":30,"column":16},"end":{"line":30,"column":28}},"26":{"start":{"line":33,"column":8},"end":{"line":33,"column":21}},"27":{"start":{"line":35,"column":4},"end":{"line":37,"column":6}},"28":{"start":{"line":36,"column":8},"end":{"line":36,"column":58}},"29":{"start":{"line":38,"column":4},"end":{"line":40,"column":6}},"30":{"start":{"line":39,"column":8},"end":{"line":39,"column":68}},"31":{"start":{"line":41,"column":4},"end":{"line":43,"column":6}},"32":{"start":{"line":42,"column":8},"end":{"line":42,"column":51}},"33":{"start":{"line":44,"column":4},"end":{"line":46,"column":6}},"34":{"start":{"line":45,"column":8},"end":{"line":45,"column":155}},"35":{"start":{"line":45,"column":56},"end":{"line":45,"column":151}},"36":{"start":{"line":45,"column":119},"end":{"line":45,"column":147}},"37":{"start":{"line":47,"column":4},"end":{"line":49,"column":6}},"38":{"start":{"line":48,"column":8},"end":{"line":48,"column":64}},"39":{"start":{"line":50,"column":4},"end":{"line":55,"column":6}},"40":{"start":{"line":51,"column":8},"end":{"line":53,"column":9}},"41":{"start":{"line":52,"column":12},"end":{"line":52,"column":102}},"42":{"start":{"line":52,"column":55},"end":{"line":52,"column":95}},"43":{"start":{"line":54,"column":8},"end":{"line":54,"column":20}},"44":{"start":{"line":56,"column":4},"end":{"line":63,"column":6}},"45":{"start":{"line":57,"column":8},"end":{"line":62,"column":9}},"46":{"start":{"line":58,"column":12},"end":{"line":58,"column":161}},"47":{"start":{"line":58,"column":62},"end":{"line":58,"column":157}},"48":{"start":{"line":58,"column":125},"end":{"line":58,"column":153}},"49":{"start":{"line":61,"column":12},"end":{"line":61,"column":24}},"50":{"start":{"line":64,"column":4},"end":{"line":66,"column":6}},"51":{"start":{"line":65,"column":8},"end":{"line":65,"column":61}},"52":{"start":{"line":67,"column":4},"end":{"line":78,"column":6}},"53":{"start":{"line":68,"column":20},"end":{"line":68,"column":24}},"54":{"start":{"line":69,"column":8},"end":{"line":77,"column":10}},"55":{"start":{"line":70,"column":12},"end":{"line":75,"column":13}},"56":{"start":{"line":70,"column":26},"end":{"line":70,"column":27}},"57":{"start":{"line":70,"column":34},"end":{"line":70,"column":48}},"58":{"start":{"line":71,"column":24},"end":{"line":71,"column":30}},"59":{"start":{"line":72,"column":16},"end":{"line":74,"column":17}},"60":{"start":{"line":73,"column":20},"end":{"line":73,"column":32}},"61":{"start":{"line":76,"column":12},"end":{"line":76,"column":25}},"62":{"start":{"line":79,"column":4},"end":{"line":79,"column":18}},"63":{"start":{"line":81,"column":0},"end":{"line":81,"column":24}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":14},"end":{"line":8,"column":15}},"loc":{"start":{"line":8,"column":26},"end":{"line":80,"column":1}},"line":8},"1":{"name":"Target","decl":{"start":{"line":9,"column":13},"end":{"line":9,"column":19}},"loc":{"start":{"line":9,"column":66},"end":{"line":25,"column":5}},"line":9},"2":{"name":"(anonymous_2)","decl":{"start":{"line":26,"column":30},"end":{"line":26,"column":31}},"loc":{"start":{"line":26,"column":45},"end":{"line":34,"column":5}},"line":26},"3":{"name":"(anonymous_3)","decl":{"start":{"line":35,"column":31},"end":{"line":35,"column":32}},"loc":{"start":{"line":35,"column":43},"end":{"line":37,"column":5}},"line":35},"4":{"name":"(anonymous_4)","decl":{"start":{"line":38,"column":36},"end":{"line":38,"column":37}},"loc":{"start":{"line":38,"column":52},"end":{"line":40,"column":5}},"line":38},"5":{"name":"(anonymous_5)","decl":{"start":{"line":41,"column":31},"end":{"line":41,"column":32}},"loc":{"start":{"line":41,"column":43},"end":{"line":43,"column":5}},"line":41},"6":{"name":"(anonymous_6)","decl":{"start":{"line":44,"column":32},"end":{"line":44,"column":33}},"loc":{"start":{"line":44,"column":44},"end":{"line":46,"column":5}},"line":44},"7":{"name":"(anonymous_7)","decl":{"start":{"line":45,"column":34},"end":{"line":45,"column":35}},"loc":{"start":{"line":45,"column":54},"end":{"line":45,"column":153}},"line":45},"8":{"name":"(anonymous_8)","decl":{"start":{"line":45,"column":102},"end":{"line":45,"column":103}},"loc":{"start":{"line":45,"column":117},"end":{"line":45,"column":149}},"line":45},"9":{"name":"(anonymous_9)","decl":{"start":{"line":47,"column":34},"end":{"line":47,"column":35}},"loc":{"start":{"line":47,"column":46},"end":{"line":49,"column":5}},"line":47},"10":{"name":"(anonymous_10)","decl":{"start":{"line":50,"column":35},"end":{"line":50,"column":36}},"loc":{"start":{"line":50,"column":47},"end":{"line":55,"column":5}},"line":50},"11":{"name":"(anonymous_11)","decl":{"start":{"line":52,"column":40},"end":{"line":52,"column":41}},"loc":{"start":{"line":52,"column":53},"end":{"line":52,"column":97}},"line":52},"12":{"name":"(anonymous_12)","decl":{"start":{"line":56,"column":37},"end":{"line":56,"column":38}},"loc":{"start":{"line":56,"column":49},"end":{"line":63,"column":5}},"line":56},"13":{"name":"(anonymous_13)","decl":{"start":{"line":58,"column":40},"end":{"line":58,"column":41}},"loc":{"start":{"line":58,"column":60},"end":{"line":58,"column":159}},"line":58},"14":{"name":"(anonymous_14)","decl":{"start":{"line":58,"column":108},"end":{"line":58,"column":109}},"loc":{"start":{"line":58,"column":123},"end":{"line":58,"column":155}},"line":58},"15":{"name":"(anonymous_15)","decl":{"start":{"line":64,"column":39},"end":{"line":64,"column":40}},"loc":{"start":{"line":64,"column":55},"end":{"line":66,"column":5}},"line":64},"16":{"name":"(anonymous_16)","decl":{"start":{"line":67,"column":34},"end":{"line":67,"column":35}},"loc":{"start":{"line":67,"column":49},"end":{"line":78,"column":5}},"line":67},"17":{"name":"(anonymous_17)","decl":{"start":{"line":69,"column":15},"end":{"line":69,"column":16}},"loc":{"start":{"line":69,"column":32},"end":{"line":77,"column":9}},"line":69}},"branchMap":{"0":{"loc":{"start":{"line":13,"column":59},"end":{"line":13,"column":69}},"type":"binary-expr","locations":[{"start":{"line":13,"column":59},"end":{"line":13,"column":63}},{"start":{"line":13,"column":67},"end":{"line":13,"column":69}}],"line":13},"1":{"loc":{"start":{"line":16,"column":8},"end":{"line":21,"column":9}},"type":"if","locations":[{"start":{"line":16,"column":8},"end":{"line":21,"column":9}},{"start":{"line":16,"column":8},"end":{"line":21,"column":9}}],"line":16},"2":{"loc":{"start":{"line":19,"column":13},"end":{"line":21,"column":9}},"type":"if","locations":[{"start":{"line":19,"column":13},"end":{"line":21,"column":9}},{"start":{"line":19,"column":13},"end":{"line":21,"column":9}}],"line":19},"3":{"loc":{"start":{"line":22,"column":8},"end":{"line":24,"column":9}},"type":"if","locations":[{"start":{"line":22,"column":8},"end":{"line":24,"column":9}},{"start":{"line":22,"column":8},"end":{"line":24,"column":9}}],"line":22},"4":{"loc":{"start":{"line":29,"column":12},"end":{"line":31,"column":13}},"type":"if","locations":[{"start":{"line":29,"column":12},"end":{"line":31,"column":13}},{"start":{"line":29,"column":12},"end":{"line":31,"column":13}}],"line":29},"5":{"loc":{"start":{"line":51,"column":8},"end":{"line":53,"column":9}},"type":"if","locations":[{"start":{"line":51,"column":8},"end":{"line":53,"column":9}},{"start":{"line":51,"column":8},"end":{"line":53,"column":9}}],"line":51},"6":{"loc":{"start":{"line":57,"column":8},"end":{"line":62,"column":9}},"type":"if","locations":[{"start":{"line":57,"column":8},"end":{"line":62,"column":9}},{"start":{"line":57,"column":8},"end":{"line":62,"column":9}}],"line":57},"7":{"loc":{"start":{"line":72,"column":16},"end":{"line":74,"column":17}},"type":"if","locations":[{"start":{"line":72,"column":16},"end":{"line":74,"column":17}},{"start":{"line":72,"column":16},"end":{"line":74,"column":17}}],"line":72},"8":{"loc":{"start":{"line":72,"column":20},"end":{"line":72,"column":54}},"type":"binary-expr","locations":[{"start":{"line":72,"column":20},"end":{"line":72,"column":33}},{"start":{"line":72,"column":37},"end":{"line":72,"column":54}}],"line":72}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":8908,"8":8908,"9":8908,"10":8908,"11":8908,"12":8908,"13":8908,"14":7,"15":8901,"16":971,"17":8908,"18":978,"19":1,"20":19382,"21":19382,"22":19382,"23":19632,"24":19632,"25":116,"26":19266,"27":1,"28":19332,"29":1,"30":827,"31":1,"32":50,"33":1,"34":57,"35":79,"36":220,"37":1,"38":1739,"39":1,"40":12,"41":8,"42":16,"43":4,"44":1,"45":10,"46":4,"47":8,"48":29,"49":6,"50":1,"51":2,"52":1,"53":2742,"54":2742,"55":2742,"56":2742,"57":2742,"58":2920,"59":2920,"60":116,"61":2626,"62":1,"63":1},"f":{"0":1,"1":8908,"2":19382,"3":19332,"4":827,"5":50,"6":57,"7":79,"8":220,"9":1739,"10":12,"11":16,"12":10,"13":8,"14":29,"15":2,"16":2742,"17":2742},"b":{"0":[8908,8812],"1":[7,8901],"2":[971,7930],"3":[978,7930],"4":[116,19516],"5":[8,4],"6":[4,6],"7":[116,2804],"8":[2920,189]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/target.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/planning/target.ts"],"names":[],"mappings":"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","sourcesContent":["import * as METADATA_KEY from \"../constants/metadata_keys\";\nimport { interfaces } from \"../interfaces/interfaces\";\nimport { id } from \"../utils/id\";\nimport { Metadata } from \"./metadata\";\nimport { QueryableString } from \"./queryable_string\";\n\nclass Target implements interfaces.Target {\n\n public id: number;\n public type: interfaces.TargetType;\n public serviceIdentifier: interfaces.ServiceIdentifier<any>;\n public name: interfaces.QueryableString;\n public metadata: Metadata[];\n\n public constructor(\n type: interfaces.TargetType,\n name: string,\n serviceIdentifier: interfaces.ServiceIdentifier<any>,\n namedOrTagged?: (string | Metadata)\n ) {\n\n this.id = id();\n this.type = type;\n this.serviceIdentifier = serviceIdentifier;\n this.name = new QueryableString(name || \"\");\n this.metadata = new Array<Metadata>();\n\n let metadataItem: interfaces.Metadata | null = null;\n\n // is named target\n if (typeof namedOrTagged === \"string\") {\n metadataItem = new Metadata(METADATA_KEY.NAMED_TAG, namedOrTagged);\n } else if (namedOrTagged instanceof Metadata) {\n // is target with metadata\n metadataItem = namedOrTagged;\n }\n\n // target has metadata\n if (metadataItem !== null) {\n this.metadata.push(metadataItem);\n }\n\n }\n\n public hasTag(key: string): boolean {\n for (const m of this.metadata) {\n if (m.key === key) {\n return true;\n }\n }\n return false;\n }\n\n public isArray(): boolean {\n return this.hasTag(METADATA_KEY.MULTI_INJECT_TAG);\n }\n\n public matchesArray(name: interfaces.ServiceIdentifier<any>): boolean {\n return this.matchesTag(METADATA_KEY.MULTI_INJECT_TAG)(name);\n }\n\n public isNamed(): boolean {\n return this.hasTag(METADATA_KEY.NAMED_TAG);\n }\n\n public isTagged(): boolean {\n return this.metadata.some(\n (metadata) => METADATA_KEY.NON_CUSTOM_TAG_KEYS.every((key) => metadata.key !== key),\n );\n }\n\n public isOptional(): boolean {\n return this.matchesTag(METADATA_KEY.OPTIONAL_TAG)(true);\n }\n\n public getNamedTag(): interfaces.Metadata | null {\n if (this.isNamed()) {\n return this.metadata.filter((m) => m.key === METADATA_KEY.NAMED_TAG)[0];\n }\n return null;\n }\n\n public getCustomTags(): interfaces.Metadata[] | null {\n if (this.isTagged()) {\n return this.metadata.filter(\n (metadata) => METADATA_KEY.NON_CUSTOM_TAG_KEYS.every((key) => metadata.key !== key),\n );\n } else {\n return null;\n }\n }\n\n public matchesNamedTag(name: string): boolean {\n return this.matchesTag(METADATA_KEY.NAMED_TAG)(name);\n }\n\n public matchesTag(key: string) {\n return (value: any) => {\n for (const m of this.metadata) {\n if (m.key === key && m.value === value) {\n return true;\n }\n }\n return false;\n };\n }\n\n}\n\nexport { Target };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"0e31ac14310725cc81a3b90a8cc76706a4200b1e","contentHash":"68b7da9fa6ec5463b1ddcc567f4fe1cf68e005519f541a1e40bf63384f2c47b0"},"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/queryable_string.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/queryable_string.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":33}},"2":{"start":{"line":4,"column":23},"end":{"line":27,"column":3}},"3":{"start":{"line":6,"column":8},"end":{"line":6,"column":23}},"4":{"start":{"line":8,"column":4},"end":{"line":10,"column":6}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":52}},"6":{"start":{"line":11,"column":4},"end":{"line":16,"column":6}},"7":{"start":{"line":12,"column":28},"end":{"line":12,"column":30}},"8":{"start":{"line":13,"column":34},"end":{"line":13,"column":75}},"9":{"start":{"line":14,"column":8},"end":{"line":14,"column":62}},"10":{"start":{"line":15,"column":8},"end":{"line":15,"column":81}},"11":{"start":{"line":17,"column":4},"end":{"line":19,"column":6}},"12":{"start":{"line":18,"column":8},"end":{"line":18,"column":55}},"13":{"start":{"line":20,"column":4},"end":{"line":22,"column":6}},"14":{"start":{"line":21,"column":8},"end":{"line":21,"column":42}},"15":{"start":{"line":23,"column":4},"end":{"line":25,"column":6}},"16":{"start":{"line":24,"column":8},"end":{"line":24,"column":24}},"17":{"start":{"line":26,"column":4},"end":{"line":26,"column":27}},"18":{"start":{"line":28,"column":0},"end":{"line":28,"column":42}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":23},"end":{"line":4,"column":24}},"loc":{"start":{"line":4,"column":35},"end":{"line":27,"column":1}},"line":4},"1":{"name":"QueryableString","decl":{"start":{"line":5,"column":13},"end":{"line":5,"column":28}},"loc":{"start":{"line":5,"column":34},"end":{"line":7,"column":5}},"line":5},"2":{"name":"(anonymous_2)","decl":{"start":{"line":8,"column":43},"end":{"line":8,"column":44}},"loc":{"start":{"line":8,"column":67},"end":{"line":10,"column":5}},"line":8},"3":{"name":"(anonymous_3)","decl":{"start":{"line":11,"column":41},"end":{"line":11,"column":42}},"loc":{"start":{"line":11,"column":65},"end":{"line":16,"column":5}},"line":11},"4":{"name":"(anonymous_4)","decl":{"start":{"line":17,"column":41},"end":{"line":17,"column":42}},"loc":{"start":{"line":17,"column":65},"end":{"line":19,"column":5}},"line":17},"5":{"name":"(anonymous_5)","decl":{"start":{"line":20,"column":39},"end":{"line":20,"column":40}},"loc":{"start":{"line":20,"column":64},"end":{"line":22,"column":5}},"line":20},"6":{"name":"(anonymous_6)","decl":{"start":{"line":23,"column":38},"end":{"line":23,"column":39}},"loc":{"start":{"line":23,"column":50},"end":{"line":25,"column":5}},"line":23}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":8913,"4":1,"5":8,"6":1,"7":4,"8":4,"9":4,"10":4,"11":1,"12":2,"13":1,"14":6,"15":1,"16":28,"17":1,"18":1},"f":{"0":1,"1":8913,"2":8,"3":4,"4":2,"5":6,"6":28},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/queryable_string.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/planning/queryable_string.ts"],"names":[],"mappings":";;;AAEA;IAIE,yBAAmB,GAAW;QAC5B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAEM,oCAAU,GAAjB,UAAkB,YAAoB;QACpC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAEM,kCAAQ,GAAf,UAAgB,YAAoB;QAClC,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,IAAM,mBAAmB,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtE,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,EAAG,aAAa,EAAE,EAAE,mBAAmB,CAAC,CAAC;IAC5E,CAAC;IAEM,kCAAQ,GAAf,UAAgB,YAAoB;QAClC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IAEM,gCAAM,GAAb,UAAc,aAAqB;QACjC,OAAO,IAAI,CAAC,GAAG,KAAK,aAAa,CAAC;IACpC,CAAC;IAEM,+BAAK,GAAZ;QACE,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAEH,sBAAC;AAAD,CAAC,AA/BD,IA+BC;AAEQ,0CAAe","sourcesContent":["import { interfaces } from \"../interfaces/interfaces\";\n\nclass QueryableString implements interfaces.QueryableString {\n\n private str: string;\n\n public constructor(str: string) {\n this.str = str;\n }\n\n public startsWith(searchString: string): boolean {\n return this.str.indexOf(searchString) === 0;\n }\n\n public endsWith(searchString: string): boolean {\n let reverseString = \"\";\n const reverseSearchString = searchString.split(\"\").reverse().join(\"\");\n reverseString = this.str.split(\"\").reverse().join(\"\");\n return this.startsWith.call({ str : reverseString }, reverseSearchString);\n }\n\n public contains(searchString: string): boolean {\n return (this.str.indexOf(searchString) !== -1);\n }\n\n public equals(compareString: string): boolean {\n return this.str === compareString;\n }\n\n public value(): string {\n return this.str;\n }\n\n}\n\nexport { QueryableString };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"ababb78a728292b7d13f9c251378c450bf31dc53","contentHash":"c0ff535606def42f49e50c483e3900eb2067a9352435f8f1cfc0a40a26944736"},"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/request.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/request.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":25}},"2":{"start":{"line":4,"column":11},"end":{"line":4,"column":33}},"3":{"start":{"line":5,"column":15},"end":{"line":24,"column":3}},"4":{"start":{"line":7,"column":8},"end":{"line":7,"column":28}},"5":{"start":{"line":8,"column":8},"end":{"line":8,"column":51}},"6":{"start":{"line":9,"column":8},"end":{"line":9,"column":43}},"7":{"start":{"line":10,"column":8},"end":{"line":10,"column":43}},"8":{"start":{"line":11,"column":8},"end":{"line":11,"column":29}},"9":{"start":{"line":12,"column":8},"end":{"line":12,"column":32}},"10":{"start":{"line":13,"column":8},"end":{"line":13,"column":74}},"11":{"start":{"line":14,"column":8},"end":{"line":16,"column":19}},"12":{"start":{"line":18,"column":4},"end":{"line":22,"column":6}},"13":{"start":{"line":19,"column":20},"end":{"line":19,"column":94}},"14":{"start":{"line":20,"column":8},"end":{"line":20,"column":39}},"15":{"start":{"line":21,"column":8},"end":{"line":21,"column":21}},"16":{"start":{"line":23,"column":4},"end":{"line":23,"column":19}},"17":{"start":{"line":25,"column":0},"end":{"line":25,"column":26}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":15},"end":{"line":5,"column":16}},"loc":{"start":{"line":5,"column":27},"end":{"line":24,"column":1}},"line":5},"1":{"name":"Request","decl":{"start":{"line":6,"column":13},"end":{"line":6,"column":20}},"loc":{"start":{"line":6,"column":88},"end":{"line":17,"column":5}},"line":6},"2":{"name":"(anonymous_2)","decl":{"start":{"line":18,"column":40},"end":{"line":18,"column":41}},"loc":{"start":{"line":18,"column":87},"end":{"line":22,"column":5}},"line":18}},"branchMap":{"0":{"loc":{"start":{"line":13,"column":25},"end":{"line":13,"column":72}},"type":"cond-expr","locations":[{"start":{"line":13,"column":51},"end":{"line":13,"column":59}},{"start":{"line":13,"column":62},"end":{"line":13,"column":72}}],"line":13},"1":{"loc":{"start":{"line":14,"column":28},"end":{"line":16,"column":18}},"type":"cond-expr","locations":[{"start":{"line":15,"column":14},"end":{"line":15,"column":23}},{"start":{"line":16,"column":14},"end":{"line":16,"column":18}}],"line":14}},"s":{"0":1,"1":1,"2":1,"3":1,"4":17739,"5":17739,"6":17739,"7":17739,"8":17739,"9":17739,"10":17739,"11":17739,"12":1,"13":7909,"14":7909,"15":7909,"16":1,"17":1},"f":{"0":1,"1":17739,"2":7909},"b":{"0":[8815,8924],"1":[1902,15837]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/planning/request.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/planning/request.ts"],"names":[],"mappings":";;;AACA,kCAAiC;AAEjC;IAWI,iBACI,iBAAoD,EACpD,aAAiC,EACjC,aAAwC,EACxC,QAA+D,EAC/D,MAAyB;QAErB,IAAI,CAAC,EAAE,GAAG,OAAE,EAAE,CAAC;QACf,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAGlE,IAAI,CAAC,YAAY,GAAG,aAAa,KAAK,IAAI;YACtC,CAAC,CAAC,IAAI,GAAG,EAAY;YACrB,CAAC,CAAC,IAAI,CAAC;IACnB,CAAC;IAEM,iCAAe,GAAtB,UACI,iBAAoD,EACpD,QAA+D,EAC/D,MAAyB;QAGrB,IAAM,KAAK,GAAG,IAAI,OAAO,CACrB,iBAAiB,EACjB,IAAI,CAAC,aAAa,EAClB,IAAI,EACJ,QAAQ,EACR,MAAM,CACT,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,KAAK,CAAC;IACrB,CAAC;IACL,cAAC;AAAD,CAAC,AAhDD,IAgDC;AAEQ,0BAAO","sourcesContent":["import { interfaces } from \"../interfaces/interfaces\";\nimport { id } from \"../utils/id\";\n\nclass Request implements interfaces.Request {\n\n public id: number;\n public serviceIdentifier: interfaces.ServiceIdentifier<any>;\n public parentContext: interfaces.Context;\n public parentRequest: interfaces.Request | null;\n public bindings: interfaces.Binding<any>[];\n public childRequests: interfaces.Request[];\n public target: interfaces.Target;\n public requestScope: interfaces.RequestScope;\n\n public constructor(\n serviceIdentifier: interfaces.ServiceIdentifier<any>,\n parentContext: interfaces.Context,\n parentRequest: interfaces.Request | null,\n bindings: (interfaces.Binding<any> | interfaces.Binding<any>[]),\n target: interfaces.Target\n ) {\n this.id = id();\n this.serviceIdentifier = serviceIdentifier;\n this.parentContext = parentContext;\n this.parentRequest = parentRequest;\n this.target = target;\n this.childRequests = [];\n this.bindings = (Array.isArray(bindings) ? bindings : [bindings]);\n\n // Set requestScope if Request is the root request\n this.requestScope = parentRequest === null\n ? new Map<any, any>()\n : null;\n }\n\n public addChildRequest(\n serviceIdentifier: interfaces.ServiceIdentifier<any>,\n bindings: (interfaces.Binding<any> | interfaces.Binding<any>[]),\n target: interfaces.Target\n ): interfaces.Request {\n\n const child = new Request(\n serviceIdentifier,\n this.parentContext,\n this,\n bindings,\n target\n );\n this.childRequests.push(child);\n return child;\n }\n}\n\nexport { Request };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"cca4490051c80e31ee364fc9a66a4a3e1734bab7","contentHash":"fab72fba5f88df27e4dcd104936cb175891050dbc7ce79e75caf1e8f0dd2e6cc"},"/Users/dan/jsProjects/inversify/InversifyJS/src/resolution/resolver.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/resolution/resolver.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":25}},"2":{"start":{"line":4,"column":17},"end":{"line":4,"column":51}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":59}},"4":{"start":{"line":6,"column":19},"end":{"line":6,"column":49}},"5":{"start":{"line":7,"column":22},"end":{"line":7,"column":55}},"6":{"start":{"line":8,"column":22},"end":{"line":8,"column":48}},"7":{"start":{"line":9,"column":20},"end":{"line":21,"column":1}},"8":{"start":{"line":10,"column":4},"end":{"line":20,"column":5}},"9":{"start":{"line":11,"column":8},"end":{"line":11,"column":20}},"10":{"start":{"line":14,"column":8},"end":{"line":19,"column":9}},"11":{"start":{"line":15,"column":12},"end":{"line":15,"column":114}},"12":{"start":{"line":18,"column":12},"end":{"line":18,"column":24}},"13":{"start":{"line":22,"column":22},"end":{"line":96,"column":1}},"14":{"start":{"line":23,"column":4},"end":{"line":95,"column":6}},"15":{"start":{"line":24,"column":8},"end":{"line":24,"column":57}},"16":{"start":{"line":25,"column":23},"end":{"line":25,"column":39}},"17":{"start":{"line":26,"column":28},"end":{"line":26,"column":49}},"18":{"start":{"line":27,"column":30},"end":{"line":27,"column":72}},"19":{"start":{"line":28,"column":39},"end":{"line":31,"column":88}},"20":{"start":{"line":32,"column":8},"end":{"line":94,"column":9}},"21":{"start":{"line":33,"column":12},"end":{"line":36,"column":15}},"22":{"start":{"line":34,"column":25},"end":{"line":34,"column":54}},"23":{"start":{"line":35,"column":16},"end":{"line":35,"column":40}},"24":{"start":{"line":39,"column":25},"end":{"line":39,"column":29}},"25":{"start":{"line":40,"column":12},"end":{"line":42,"column":13}},"26":{"start":{"line":41,"column":16},"end":{"line":41,"column":33}},"27":{"start":{"line":43,"column":28},"end":{"line":43,"column":39}},"28":{"start":{"line":44,"column":30},"end":{"line":44,"column":92}},"29":{"start":{"line":45,"column":37},"end":{"line":45,"column":97}},"30":{"start":{"line":46,"column":12},"end":{"line":48,"column":13}},"31":{"start":{"line":47,"column":16},"end":{"line":47,"column":39}},"32":{"start":{"line":49,"column":12},"end":{"line":53,"column":13}},"33":{"start":{"line":52,"column":16},"end":{"line":52,"column":54}},"34":{"start":{"line":54,"column":12},"end":{"line":80,"column":13}},"35":{"start":{"line":55,"column":16},"end":{"line":55,"column":41}},"36":{"start":{"line":56,"column":16},"end":{"line":56,"column":43}},"37":{"start":{"line":58,"column":17},"end":{"line":80,"column":13}},"38":{"start":{"line":59,"column":16},"end":{"line":59,"column":41}},"39":{"start":{"line":60,"column":16},"end":{"line":60,"column":43}},"40":{"start":{"line":62,"column":17},"end":{"line":80,"column":13}},"41":{"start":{"line":63,"column":16},"end":{"line":63,"column":54}},"42":{"start":{"line":65,"column":17},"end":{"line":80,"column":13}},"43":{"start":{"line":66,"column":16},"end":{"line":66,"column":157}},"44":{"start":{"line":66,"column":100},"end":{"line":66,"column":153}},"45":{"start":{"line":68,"column":17},"end":{"line":80,"column":13}},"46":{"start":{"line":69,"column":16},"end":{"line":69,"column":147}},"47":{"start":{"line":69,"column":95},"end":{"line":69,"column":143}},"48":{"start":{"line":71,"column":17},"end":{"line":80,"column":13}},"49":{"start":{"line":72,"column":16},"end":{"line":72,"column":149}},"50":{"start":{"line":72,"column":96},"end":{"line":72,"column":145}},"51":{"start":{"line":74,"column":17},"end":{"line":80,"column":13}},"52":{"start":{"line":75,"column":16},"end":{"line":75,"column":133}},"53":{"start":{"line":78,"column":40},"end":{"line":78,"column":111}},"54":{"start":{"line":79,"column":16},"end":{"line":79,"column":91}},"55":{"start":{"line":81,"column":12},"end":{"line":83,"column":13}},"56":{"start":{"line":82,"column":16},"end":{"line":82,"column":79}},"57":{"start":{"line":84,"column":12},"end":{"line":87,"column":13}},"58":{"start":{"line":85,"column":16},"end":{"line":85,"column":41}},"59":{"start":{"line":86,"column":16},"end":{"line":86,"column":43}},"60":{"start":{"line":88,"column":12},"end":{"line":92,"column":13}},"61":{"start":{"line":91,"column":16},"end":{"line":91,"column":55}},"62":{"start":{"line":93,"column":12},"end":{"line":93,"column":26}},"63":{"start":{"line":98,"column":13},"end":{"line":98,"column":67}},"64":{"start":{"line":99,"column":4},"end":{"line":99,"column":40}},"65":{"start":{"line":101,"column":0},"end":{"line":101,"column":26}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":20},"end":{"line":9,"column":21}},"loc":{"start":{"line":9,"column":66},"end":{"line":21,"column":1}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":22,"column":22},"end":{"line":22,"column":23}},"loc":{"start":{"line":22,"column":46},"end":{"line":96,"column":1}},"line":22},"2":{"name":"(anonymous_2)","decl":{"start":{"line":23,"column":11},"end":{"line":23,"column":12}},"loc":{"start":{"line":23,"column":30},"end":{"line":95,"column":5}},"line":23},"3":{"name":"(anonymous_3)","decl":{"start":{"line":33,"column":37},"end":{"line":33,"column":38}},"loc":{"start":{"line":33,"column":61},"end":{"line":36,"column":13}},"line":33},"4":{"name":"(anonymous_4)","decl":{"start":{"line":66,"column":86},"end":{"line":66,"column":87}},"loc":{"start":{"line":66,"column":98},"end":{"line":66,"column":155}},"line":66},"5":{"name":"(anonymous_5)","decl":{"start":{"line":69,"column":81},"end":{"line":69,"column":82}},"loc":{"start":{"line":69,"column":93},"end":{"line":69,"column":145}},"line":69},"6":{"name":"(anonymous_6)","decl":{"start":{"line":72,"column":82},"end":{"line":72,"column":83}},"loc":{"start":{"line":72,"column":94},"end":{"line":72,"column":147}},"line":72},"7":{"name":"resolve","decl":{"start":{"line":97,"column":9},"end":{"line":97,"column":16}},"loc":{"start":{"line":97,"column":26},"end":{"line":100,"column":1}},"line":97}},"branchMap":{"0":{"loc":{"start":{"line":14,"column":8},"end":{"line":19,"column":9}},"type":"if","locations":[{"start":{"line":14,"column":8},"end":{"line":19,"column":9}},{"start":{"line":14,"column":8},"end":{"line":19,"column":9}}],"line":14},"1":{"loc":{"start":{"line":27,"column":30},"end":{"line":27,"column":72}},"type":"binary-expr","locations":[{"start":{"line":27,"column":30},"end":{"line":27,"column":44}},{"start":{"line":27,"column":48},"end":{"line":27,"column":72}}],"line":27},"2":{"loc":{"start":{"line":28,"column":39},"end":{"line":31,"column":88}},"type":"binary-expr","locations":[{"start":{"line":28,"column":39},"end":{"line":28,"column":61}},{"start":{"line":29,"column":12},"end":{"line":29,"column":41}},{"start":{"line":30,"column":12},"end":{"line":30,"column":27}},{"start":{"line":31,"column":12},"end":{"line":31,"column":88}}],"line":28},"3":{"loc":{"start":{"line":32,"column":8},"end":{"line":94,"column":9}},"type":"if","locations":[{"start":{"line":32,"column":8},"end":{"line":94,"column":9}},{"start":{"line":32,"column":8},"end":{"line":94,"column":9}}],"line":32},"4":{"loc":{"start":{"line":32,"column":12},"end":{"line":32,"column":55}},"type":"binary-expr","locations":[{"start":{"line":32,"column":12},"end":{"line":32,"column":27}},{"start":{"line":32,"column":31},"end":{"line":32,"column":55}}],"line":32},"5":{"loc":{"start":{"line":40,"column":12},"end":{"line":42,"column":13}},"type":"if","locations":[{"start":{"line":40,"column":12},"end":{"line":42,"column":13}},{"start":{"line":40,"column":12},"end":{"line":42,"column":13}}],"line":40},"6":{"loc":{"start":{"line":40,"column":16},"end":{"line":40,"column":68}},"type":"binary-expr","locations":[{"start":{"line":40,"column":16},"end":{"line":40,"column":43}},{"start":{"line":40,"column":47},"end":{"line":40,"column":68}}],"line":40},"7":{"loc":{"start":{"line":46,"column":12},"end":{"line":48,"column":13}},"type":"if","locations":[{"start":{"line":46,"column":12},"end":{"line":48,"column":13}},{"start":{"line":46,"column":12},"end":{"line":48,"column":13}}],"line":46},"8":{"loc":{"start":{"line":46,"column":16},"end":{"line":46,"column":50}},"type":"binary-expr","locations":[{"start":{"line":46,"column":16},"end":{"line":46,"column":27}},{"start":{"line":46,"column":31},"end":{"line":46,"column":50}}],"line":46},"9":{"loc":{"start":{"line":49,"column":12},"end":{"line":53,"column":13}},"type":"if","locations":[{"start":{"line":49,"column":12},"end":{"line":53,"column":13}},{"start":{"line":49,"column":12},"end":{"line":53,"column":13}}],"line":49},"10":{"loc":{"start":{"line":49,"column":16},"end":{"line":51,"column":46}},"type":"binary-expr","locations":[{"start":{"line":49,"column":16},"end":{"line":49,"column":34}},{"start":{"line":50,"column":16},"end":{"line":50,"column":37}},{"start":{"line":51,"column":16},"end":{"line":51,"column":46}}],"line":49},"11":{"loc":{"start":{"line":54,"column":12},"end":{"line":80,"column":13}},"type":"if","locations":[{"start":{"line":54,"column":12},"end":{"line":80,"column":13}},{"start":{"line":54,"column":12},"end":{"line":80,"column":13}}],"line":54},"12":{"loc":{"start":{"line":58,"column":17},"end":{"line":80,"column":13}},"type":"if","locations":[{"start":{"line":58,"column":17},"end":{"line":80,"column":13}},{"start":{"line":58,"column":17},"end":{"line":80,"column":13}}],"line":58},"13":{"loc":{"start":{"line":62,"column":17},"end":{"line":80,"column":13}},"type":"if","locations":[{"start":{"line":62,"column":17},"end":{"line":80,"column":13}},{"start":{"line":62,"column":17},"end":{"line":80,"column":13}}],"line":62},"14":{"loc":{"start":{"line":65,"column":17},"end":{"line":80,"column":13}},"type":"if","locations":[{"start":{"line":65,"column":17},"end":{"line":80,"column":13}},{"start":{"line":65,"column":17},"end":{"line":80,"column":13}}],"line":65},"15":{"loc":{"start":{"line":65,"column":21},"end":{"line":65,"column":119}},"type":"binary-expr","locations":[{"start":{"line":65,"column":21},"end":{"line":65,"column":84}},{"start":{"line":65,"column":88},"end":{"line":65,"column":119}}],"line":65},"16":{"loc":{"start":{"line":68,"column":17},"end":{"line":80,"column":13}},"type":"if","locations":[{"start":{"line":68,"column":17},"end":{"line":80,"column":13}},{"start":{"line":68,"column":17},"end":{"line":80,"column":13}}],"line":68},"17":{"loc":{"start":{"line":68,"column":21},"end":{"line":68,"column":109}},"type":"binary-expr","locations":[{"start":{"line":68,"column":21},"end":{"line":68,"column":79}},{"start":{"line":68,"column":83},"end":{"line":68,"column":109}}],"line":68},"18":{"loc":{"start":{"line":71,"column":17},"end":{"line":80,"column":13}},"type":"if","locations":[{"start":{"line":71,"column":17},"end":{"line":80,"column":13}},{"start":{"line":71,"column":17},"end":{"line":80,"column":13}}],"line":71},"19":{"loc":{"start":{"line":71,"column":21},"end":{"line":71,"column":111}},"type":"binary-expr","locations":[{"start":{"line":71,"column":21},"end":{"line":71,"column":80}},{"start":{"line":71,"column":84},"end":{"line":71,"column":111}}],"line":71},"20":{"loc":{"start":{"line":74,"column":17},"end":{"line":80,"column":13}},"type":"if","locations":[{"start":{"line":74,"column":17},"end":{"line":80,"column":13}},{"start":{"line":74,"column":17},"end":{"line":80,"column":13}}],"line":74},"21":{"loc":{"start":{"line":74,"column":21},"end":{"line":74,"column":121}},"type":"binary-expr","locations":[{"start":{"line":74,"column":21},"end":{"line":74,"column":80}},{"start":{"line":74,"column":84},"end":{"line":74,"column":121}}],"line":74},"22":{"loc":{"start":{"line":81,"column":12},"end":{"line":83,"column":13}},"type":"if","locations":[{"start":{"line":81,"column":12},"end":{"line":83,"column":13}},{"start":{"line":81,"column":12},"end":{"line":83,"column":13}}],"line":81},"23":{"loc":{"start":{"line":84,"column":12},"end":{"line":87,"column":13}},"type":"if","locations":[{"start":{"line":84,"column":12},"end":{"line":87,"column":13}},{"start":{"line":84,"column":12},"end":{"line":87,"column":13}}],"line":84},"24":{"loc":{"start":{"line":88,"column":12},"end":{"line":92,"column":13}},"type":"if","locations":[{"start":{"line":88,"column":12},"end":{"line":92,"column":13}},{"start":{"line":88,"column":12},"end":{"line":92,"column":13}}],"line":88},"25":{"loc":{"start":{"line":88,"column":16},"end":{"line":90,"column":47}},"type":"binary-expr","locations":[{"start":{"line":88,"column":16},"end":{"line":88,"column":34}},{"start":{"line":89,"column":16},"end":{"line":89,"column":37}},{"start":{"line":90,"column":16},"end":{"line":90,"column":47}}],"line":88}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":696,"9":696,"10":674,"11":28,"12":646,"13":1,"14":1833,"15":1724,"16":1724,"17":1724,"18":1724,"19":1724,"20":1724,"21":16,"22":26,"23":26,"24":1708,"25":1708,"26":3,"27":1705,"28":1705,"29":1705,"30":1705,"31":54,"32":1651,"33":4,"34":1647,"35":36,"36":36,"37":1611,"38":2,"39":2,"40":1609,"41":3,"42":1606,"43":686,"44":686,"45":920,"46":4,"47":4,"48":916,"49":6,"50":6,"51":910,"52":908,"53":2,"54":2,"55":297,"56":8,"57":297,"58":72,"59":72,"60":297,"61":6,"62":297,"63":899,"64":899,"65":1},"f":{"0":696,"1":1833,"2":1724,"3":26,"4":686,"5":4,"6":6,"7":899},"b":{"0":[28,646],"1":[1724,1724],"2":[1724,825,825,825],"3":[16,1708],"4":[1724,42],"5":[3,1705],"6":[1708,8],"7":[54,1651],"8":[1705,1474],"9":[4,1647],"10":[1651,10,10],"11":[36,1611],"12":[2,1609],"13":[3,1606],"14":[686,920],"15":[1606,686],"16":[4,916],"17":[920,4],"18":[6,910],"19":[916,6],"20":[908,2],"21":[910,908],"22":[8,289],"23":[72,225],"24":[6,291],"25":[297,6,6]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/resolution/resolver.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/resolution/resolver.ts"],"names":[],"mappings":"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","sourcesContent":["import * as ERROR_MSGS from \"../constants/error_msgs\";\nimport { BindingScopeEnum, BindingTypeEnum } from \"../constants/literal_types\";\nimport { interfaces } from \"../interfaces/interfaces\";\nimport { isStackOverflowExeption } from \"../utils/exceptions\";\nimport { getServiceIdentifierAsString } from \"../utils/serialization\";\nimport { resolveInstance } from \"./instantiation\";\n\ntype FactoryType = \"toDynamicValue\" | \"toFactory\" | \"toAutoFactory\" | \"toProvider\";\n\nconst invokeFactory = (\n factoryType: FactoryType,\n serviceIdentifier: interfaces.ServiceIdentifier<any>,\n fn: () => any\n) => {\n try {\n return fn();\n } catch (error) {\n if (isStackOverflowExeption(error)) {\n throw new Error(\n ERROR_MSGS.CIRCULAR_DEPENDENCY_IN_FACTORY(factoryType, serviceIdentifier.toString())\n );\n } else {\n throw error;\n }\n }\n};\n\nconst _resolveRequest = (requestScope: interfaces.RequestScope) =>\n (request: interfaces.Request): any => {\n\n request.parentContext.setCurrentRequest(request);\n\n const bindings = request.bindings;\n const childRequests = request.childRequests;\n\n const targetIsAnArray = request.target && request.target.isArray();\n\n const targetParentIsNotAnArray = !request.parentRequest ||\n !request.parentRequest.target ||\n !request.target ||\n !request.parentRequest.target.matchesArray(request.target.serviceIdentifier);\n\n if (targetIsAnArray && targetParentIsNotAnArray) {\n\n // Create an array instead of creating an instance\n return childRequests.map((childRequest: interfaces.Request) => {\n const _f = _resolveRequest(requestScope);\n return _f(childRequest);\n });\n\n } else {\n\n let result: any = null;\n\n if (request.target.isOptional() && bindings.length === 0) {\n return undefined;\n }\n\n const binding = bindings[0];\n const isSingleton = binding.scope === BindingScopeEnum.Singleton;\n const isRequestSingleton = binding.scope === BindingScopeEnum.Request;\n\n if (isSingleton && binding.activated) {\n return binding.cache;\n }\n\n if (\n isRequestSingleton &&\n requestScope !== null &&\n requestScope.has(binding.id)\n ) {\n return requestScope.get(binding.id);\n }\n\n if (binding.type === BindingTypeEnum.ConstantValue) {\n result = binding.cache;\n binding.activated = true;\n } else if (binding.type === BindingTypeEnum.Function) {\n result = binding.cache;\n binding.activated = true;\n } else if (binding.type === BindingTypeEnum.Constructor) {\n result = binding.implementationType;\n } else if (binding.type === BindingTypeEnum.DynamicValue && binding.dynamicValue !== null) {\n result = invokeFactory(\n \"toDynamicValue\",\n binding.serviceIdentifier,\n () => (binding.dynamicValue as (context: interfaces.Context) => any)(request.parentContext)\n );\n } else if (binding.type === BindingTypeEnum.Factory && binding.factory !== null) {\n result = invokeFactory(\n \"toFactory\",\n binding.serviceIdentifier,\n () => (binding.factory as interfaces.FactoryCreator<any>)(request.parentContext)\n );\n } else if (binding.type === BindingTypeEnum.Provider && binding.provider !== null) {\n result = invokeFactory(\n \"toProvider\",\n binding.serviceIdentifier,\n () => (binding.provider as interfaces.Provider<any>)(request.parentContext)\n );\n } else if (binding.type === BindingTypeEnum.Instance && binding.implementationType !== null) {\n result = resolveInstance(\n binding.implementationType,\n childRequests,\n _resolveRequest(requestScope)\n );\n } else {\n // The user probably created a binding but didn't finish it\n // e.g. container.bind<T>(\"Something\"); missing BindingToSyntax\n const serviceIdentifier = getServiceIdentifierAsString(request.serviceIdentifier);\n throw new Error(`${ERROR_MSGS.INVALID_BINDING_TYPE} ${serviceIdentifier}`);\n }\n\n // use activation handler if available\n if (typeof binding.onActivation === \"function\") {\n result = binding.onActivation(request.parentContext, result);\n }\n\n // store in cache if scope is singleton\n if (isSingleton) {\n binding.cache = result;\n binding.activated = true;\n }\n\n if (\n isRequestSingleton &&\n requestScope !== null &&\n !requestScope.has(binding.id)\n ) {\n requestScope.set(binding.id, result);\n }\n\n return result;\n }\n\n};\n\nfunction resolve<T>(context: interfaces.Context): T {\n const _f = _resolveRequest(context.plan.rootRequest.requestScope);\n return _f(context.plan.rootRequest);\n}\n\nexport { resolve };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"c3e1388b541bb6da0c62d7f985136d3475eeb07e","contentHash":"bd0e7010d5e06da73fa3f1d017d54335614ea72e278fe3c2a95ccfdd4749b601"},"/Users/dan/jsProjects/inversify/InversifyJS/src/resolution/instantiation.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/resolution/instantiation.ts","statementMap":{"0":{"start":{"line":2,"column":20},"end":{"line":6,"column":1}},"1":{"start":{"line":3,"column":4},"end":{"line":4,"column":24}},"2":{"start":{"line":3,"column":17},"end":{"line":3,"column":18}},"3":{"start":{"line":3,"column":25},"end":{"line":3,"column":36}},"4":{"start":{"line":3,"column":42},"end":{"line":3,"column":51}},"5":{"start":{"line":4,"column":8},"end":{"line":4,"column":24}},"6":{"start":{"line":5,"column":4},"end":{"line":5,"column":14}},"7":{"start":{"line":7,"column":0},"end":{"line":7,"column":62}},"8":{"start":{"line":8,"column":0},"end":{"line":8,"column":33}},"9":{"start":{"line":9,"column":19},"end":{"line":9,"column":53}},"10":{"start":{"line":10,"column":22},"end":{"line":10,"column":59}},"11":{"start":{"line":11,"column":19},"end":{"line":11,"column":56}},"12":{"start":{"line":13,"column":37},"end":{"line":16,"column":6}},"13":{"start":{"line":14,"column":8},"end":{"line":15,"column":87}},"14":{"start":{"line":17,"column":29},"end":{"line":17,"column":75}},"15":{"start":{"line":18,"column":4},"end":{"line":23,"column":7}},"16":{"start":{"line":19,"column":27},"end":{"line":19,"column":29}},"17":{"start":{"line":20,"column":8},"end":{"line":20,"column":45}},"18":{"start":{"line":21,"column":24},"end":{"line":21,"column":49}},"19":{"start":{"line":22,"column":8},"end":{"line":22,"column":43}},"20":{"start":{"line":24,"column":4},"end":{"line":24,"column":20}},"21":{"start":{"line":27,"column":4},"end":{"line":27,"column":78}},"22":{"start":{"line":30,"column":4},"end":{"line":38,"column":5}},"23":{"start":{"line":31,"column":19},"end":{"line":31,"column":75}},"24":{"start":{"line":32,"column":8},"end":{"line":37,"column":9}},"25":{"start":{"line":33,"column":12},"end":{"line":33,"column":33}},"26":{"start":{"line":36,"column":12},"end":{"line":36,"column":87}},"27":{"start":{"line":41,"column":17},"end":{"line":41,"column":21}},"28":{"start":{"line":42,"column":4},"end":{"line":52,"column":5}},"29":{"start":{"line":43,"column":44},"end":{"line":45,"column":10}},"30":{"start":{"line":44,"column":12},"end":{"line":44,"column":133}},"31":{"start":{"line":46,"column":36},"end":{"line":46,"column":85}},"32":{"start":{"line":47,"column":8},"end":{"line":47,"column":64}},"33":{"start":{"line":48,"column":8},"end":{"line":48,"column":74}},"34":{"start":{"line":51,"column":8},"end":{"line":51,"column":30}},"35":{"start":{"line":53,"column":4},"end":{"line":53,"column":35}},"36":{"start":{"line":54,"column":4},"end":{"line":54,"column":18}},"37":{"start":{"line":56,"column":0},"end":{"line":56,"column":42}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":52},"end":{"line":2,"column":53}},"loc":{"start":{"line":2,"column":72},"end":{"line":6,"column":1}},"line":2},"1":{"name":"_injectProperties","decl":{"start":{"line":12,"column":9},"end":{"line":12,"column":26}},"loc":{"start":{"line":12,"column":68},"end":{"line":25,"column":1}},"line":12},"2":{"name":"(anonymous_2)","decl":{"start":{"line":13,"column":58},"end":{"line":13,"column":59}},"loc":{"start":{"line":13,"column":82},"end":{"line":16,"column":5}},"line":13},"3":{"name":"(anonymous_3)","decl":{"start":{"line":18,"column":39},"end":{"line":18,"column":40}},"loc":{"start":{"line":18,"column":59},"end":{"line":23,"column":5}},"line":18},"4":{"name":"_createInstance","decl":{"start":{"line":26,"column":9},"end":{"line":26,"column":24}},"loc":{"start":{"line":26,"column":43},"end":{"line":28,"column":1}},"line":26},"5":{"name":"_postConstruct","decl":{"start":{"line":29,"column":9},"end":{"line":29,"column":23}},"loc":{"start":{"line":29,"column":40},"end":{"line":39,"column":1}},"line":29},"6":{"name":"resolveInstance","decl":{"start":{"line":40,"column":9},"end":{"line":40,"column":24}},"loc":{"start":{"line":40,"column":64},"end":{"line":55,"column":1}},"line":40},"7":{"name":"(anonymous_7)","decl":{"start":{"line":43,"column":65},"end":{"line":43,"column":66}},"loc":{"start":{"line":43,"column":89},"end":{"line":45,"column":9}},"line":43}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":20},"end":{"line":6,"column":1}},"type":"binary-expr","locations":[{"start":{"line":2,"column":21},"end":{"line":2,"column":25}},{"start":{"line":2,"column":29},"end":{"line":2,"column":47}},{"start":{"line":2,"column":52},"end":{"line":6,"column":1}}],"line":2},"1":{"loc":{"start":{"line":14,"column":16},"end":{"line":15,"column":85}},"type":"binary-expr","locations":[{"start":{"line":14,"column":16},"end":{"line":14,"column":44}},{"start":{"line":15,"column":12},"end":{"line":15,"column":85}}],"line":14},"2":{"loc":{"start":{"line":30,"column":4},"end":{"line":38,"column":5}},"type":"if","locations":[{"start":{"line":30,"column":4},"end":{"line":38,"column":5}},{"start":{"line":30,"column":4},"end":{"line":38,"column":5}}],"line":30},"3":{"loc":{"start":{"line":42,"column":4},"end":{"line":52,"column":5}},"type":"if","locations":[{"start":{"line":42,"column":4},"end":{"line":52,"column":5}},{"start":{"line":42,"column":4},"end":{"line":52,"column":5}}],"line":42},"4":{"loc":{"start":{"line":44,"column":20},"end":{"line":44,"column":131}},"type":"binary-expr","locations":[{"start":{"line":44,"column":20},"end":{"line":44,"column":48}},{"start":{"line":44,"column":52},"end":{"line":44,"column":131}}],"line":44}},"s":{"0":1,"1":80,"2":80,"3":80,"4":80,"5":110,"6":80,"7":1,"8":1,"9":1,"10":1,"11":1,"12":80,"13":125,"14":80,"15":80,"16":15,"17":15,"18":15,"19":15,"20":80,"21":80,"22":235,"23":5,"24":5,"25":5,"26":1,"27":909,"28":909,"29":754,"30":799,"31":754,"32":80,"33":80,"34":155,"35":235,"36":234,"37":1},"f":{"0":80,"1":80,"2":125,"3":15,"4":80,"5":235,"6":909,"7":799},"b":{"0":[1,1,1],"1":[125,125],"2":[5,230],"3":[754,155],"4":[799,799]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/resolution/instantiation.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/resolution/instantiation.ts"],"names":[],"mappings":";;;;;;;;AAAA,sDAA+D;AAC/D,4DAA4D;AAC5D,yDAA2D;AAI3D,SAAS,iBAAiB,CACtB,QAAa,EACb,aAAmC,EACnC,cAAgD;IAGhD,IAAM,0BAA0B,GAAG,aAAa,CAAC,MAAM,CAAC,UAAC,YAAgC;QACrF,OAAA,CACI,YAAY,CAAC,MAAM,KAAK,IAAI;YAC5B,YAAY,CAAC,MAAM,CAAC,IAAI,KAAK,8BAAc,CAAC,aAAa,CAC5D;IAHD,CAGC,CAAC,CAAC;IAEP,IAAM,kBAAkB,GAAG,0BAA0B,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAE1E,0BAA0B,CAAC,OAAO,CAAC,UAAC,CAAqB,EAAE,KAAa;QACpE,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACrC,IAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC5C,QAAQ,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAEpB,CAAC;AAED,SAAS,eAAe,CAAC,IAA6B,EAAE,UAAoB;IACxE,YAAW,IAAI,YAAJ,IAAI,0BAAI,UAAU,MAAE;AACnC,CAAC;AAED,SAAS,cAAc,CAAC,MAA+B,EAAE,MAAW;IAChE,IAAI,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,EAAE;QAC1D,IAAM,IAAI,GAAa,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAChF,IAAI;YACA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;SACxB;QAAC,OAAO,CAAC,EAAE;YACR,MAAM,IAAI,KAAK,CAAC,iCAAoB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;SACjE;KACJ;AACL,CAAC;AAED,SAAS,eAAe,CACpB,MAA+B,EAC/B,aAAmC,EACnC,cAAgD;IAGhD,IAAI,MAAM,GAAQ,IAAI,CAAC;IAEvB,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;QAE1B,IAAM,6BAA6B,GAAG,aAAa,CAAC,MAAM,CAAC,UAAC,YAAgC;YACxF,OAAA,CAAC,YAAY,CAAC,MAAM,KAAK,IAAI,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,KAAK,8BAAc,CAAC,mBAAmB,CAAC;QAAjG,CAAiG,CAAC,CAAC;QAEvG,IAAM,qBAAqB,GAAG,6BAA6B,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAEhF,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;QACxD,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;KAErE;SAAM;QACH,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;KACzB;IACD,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE/B,OAAO,MAAM,CAAC;AAClB,CAAC;AAEQ,0CAAe","sourcesContent":["import { POST_CONSTRUCT_ERROR } from \"../constants/error_msgs\";\nimport { TargetTypeEnum } from \"../constants/literal_types\";\nimport * as METADATA_KEY from \"../constants/metadata_keys\";\nimport { interfaces } from \"../interfaces/interfaces\";\nimport { Metadata } from \"../planning/metadata\";\n\nfunction _injectProperties(\n instance: any,\n childRequests: interfaces.Request[],\n resolveRequest: interfaces.ResolveRequestHandler\n): any {\n\n const propertyInjectionsRequests = childRequests.filter((childRequest: interfaces.Request) =>\n (\n childRequest.target !== null &&\n childRequest.target.type === TargetTypeEnum.ClassProperty\n ));\n\n const propertyInjections = propertyInjectionsRequests.map(resolveRequest);\n\n propertyInjectionsRequests.forEach((r: interfaces.Request, index: number) => {\n let propertyName = \"\";\n propertyName = r.target.name.value();\n const injection = propertyInjections[index];\n instance[propertyName] = injection;\n });\n\n return instance;\n\n}\n\nfunction _createInstance(Func: interfaces.Newable<any>, injections: Object[]): any {\n return new Func(...injections);\n}\n\nfunction _postConstruct(constr: interfaces.Newable<any>, result: any): void {\n if (Reflect.hasMetadata(METADATA_KEY.POST_CONSTRUCT, constr)) {\n const data: Metadata = Reflect.getMetadata(METADATA_KEY.POST_CONSTRUCT, constr);\n try {\n result[data.value]();\n } catch (e) {\n throw new Error(POST_CONSTRUCT_ERROR(constr.name, e.message));\n }\n }\n}\n\nfunction resolveInstance(\n constr: interfaces.Newable<any>,\n childRequests: interfaces.Request[],\n resolveRequest: interfaces.ResolveRequestHandler\n): any {\n\n let result: any = null;\n\n if (childRequests.length > 0) {\n\n const constructorInjectionsRequests = childRequests.filter((childRequest: interfaces.Request) =>\n (childRequest.target !== null && childRequest.target.type === TargetTypeEnum.ConstructorArgument));\n\n const constructorInjections = constructorInjectionsRequests.map(resolveRequest);\n\n result = _createInstance(constr, constructorInjections);\n result = _injectProperties(result, childRequests, resolveRequest);\n\n } else {\n result = new constr();\n }\n _postConstruct(constr, result);\n\n return result;\n}\n\nexport { resolveInstance };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"e86de3989a0faf971e70eecc620a4f9d9701cbc0","contentHash":"8737aa41587c0e4480aebe9b16307e80fb43767fce57560a364faa78ede6f7ec"},"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_to_syntax.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_to_syntax.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":33}},"2":{"start":{"line":4,"column":17},"end":{"line":4,"column":51}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":59}},"4":{"start":{"line":6,"column":34},"end":{"line":6,"column":72}},"5":{"start":{"line":7,"column":31},"end":{"line":7,"column":66}},"6":{"start":{"line":8,"column":23},"end":{"line":79,"column":3}},"7":{"start":{"line":10,"column":8},"end":{"line":10,"column":32}},"8":{"start":{"line":12,"column":4},"end":{"line":16,"column":6}},"9":{"start":{"line":13,"column":8},"end":{"line":13,"column":70}},"10":{"start":{"line":14,"column":8},"end":{"line":14,"column":55}},"11":{"start":{"line":15,"column":8},"end":{"line":15,"column":84}},"12":{"start":{"line":17,"column":4},"end":{"line":23,"column":6}},"13":{"start":{"line":18,"column":8},"end":{"line":20,"column":9}},"14":{"start":{"line":19,"column":12},"end":{"line":19,"column":67}},"15":{"start":{"line":21,"column":19},"end":{"line":21,"column":50}},"16":{"start":{"line":22,"column":8},"end":{"line":22,"column":29}},"17":{"start":{"line":24,"column":4},"end":{"line":31,"column":6}},"18":{"start":{"line":25,"column":8},"end":{"line":25,"column":75}},"19":{"start":{"line":26,"column":8},"end":{"line":26,"column":36}},"20":{"start":{"line":27,"column":8},"end":{"line":27,"column":42}},"21":{"start":{"line":28,"column":8},"end":{"line":28,"column":48}},"22":{"start":{"line":29,"column":8},"end":{"line":29,"column":73}},"23":{"start":{"line":30,"column":8},"end":{"line":30,"column":79}},"24":{"start":{"line":32,"column":4},"end":{"line":38,"column":6}},"25":{"start":{"line":33,"column":8},"end":{"line":33,"column":74}},"26":{"start":{"line":34,"column":8},"end":{"line":34,"column":35}},"27":{"start":{"line":35,"column":8},"end":{"line":35,"column":42}},"28":{"start":{"line":36,"column":8},"end":{"line":36,"column":48}},"29":{"start":{"line":37,"column":8},"end":{"line":37,"column":84}},"30":{"start":{"line":39,"column":4},"end":{"line":44,"column":6}},"31":{"start":{"line":40,"column":8},"end":{"line":40,"column":73}},"32":{"start":{"line":41,"column":8},"end":{"line":41,"column":55}},"33":{"start":{"line":42,"column":8},"end":{"line":42,"column":73}},"34":{"start":{"line":43,"column":8},"end":{"line":43,"column":79}},"35":{"start":{"line":45,"column":4},"end":{"line":50,"column":6}},"36":{"start":{"line":46,"column":8},"end":{"line":46,"column":69}},"37":{"start":{"line":47,"column":8},"end":{"line":47,"column":40}},"38":{"start":{"line":48,"column":8},"end":{"line":48,"column":73}},"39":{"start":{"line":49,"column":8},"end":{"line":49,"column":79}},"40":{"start":{"line":51,"column":4},"end":{"line":59,"column":6}},"41":{"start":{"line":52,"column":8},"end":{"line":54,"column":9}},"42":{"start":{"line":53,"column":12},"end":{"line":53,"column":65}},"43":{"start":{"line":55,"column":34},"end":{"line":55,"column":60}},"44":{"start":{"line":56,"column":8},"end":{"line":56,"column":70}},"45":{"start":{"line":57,"column":8},"end":{"line":57,"column":73}},"46":{"start":{"line":58,"column":8},"end":{"line":58,"column":35}},"47":{"start":{"line":60,"column":4},"end":{"line":68,"column":6}},"48":{"start":{"line":61,"column":8},"end":{"line":61,"column":69}},"49":{"start":{"line":62,"column":8},"end":{"line":65,"column":10}},"50":{"start":{"line":63,"column":30},"end":{"line":63,"column":94}},"51":{"start":{"line":63,"column":44},"end":{"line":63,"column":92}},"52":{"start":{"line":64,"column":12},"end":{"line":64,"column":31}},"53":{"start":{"line":66,"column":8},"end":{"line":66,"column":73}},"54":{"start":{"line":67,"column":8},"end":{"line":67,"column":79}},"55":{"start":{"line":69,"column":4},"end":{"line":74,"column":6}},"56":{"start":{"line":70,"column":8},"end":{"line":70,"column":70}},"57":{"start":{"line":71,"column":8},"end":{"line":71,"column":42}},"58":{"start":{"line":72,"column":8},"end":{"line":72,"column":73}},"59":{"start":{"line":73,"column":8},"end":{"line":73,"column":79}},"60":{"start":{"line":75,"column":4},"end":{"line":77,"column":6}},"61":{"start":{"line":76,"column":8},"end":{"line":76,"column":91}},"62":{"start":{"line":76,"column":49},"end":{"line":76,"column":87}},"63":{"start":{"line":78,"column":4},"end":{"line":78,"column":27}},"64":{"start":{"line":80,"column":0},"end":{"line":80,"column":42}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":23},"end":{"line":8,"column":24}},"loc":{"start":{"line":8,"column":35},"end":{"line":79,"column":1}},"line":8},"1":{"name":"BindingToSyntax","decl":{"start":{"line":9,"column":13},"end":{"line":9,"column":28}},"loc":{"start":{"line":9,"column":38},"end":{"line":11,"column":5}},"line":9},"2":{"name":"(anonymous_2)","decl":{"start":{"line":12,"column":35},"end":{"line":12,"column":36}},"loc":{"start":{"line":12,"column":58},"end":{"line":16,"column":5}},"line":12},"3":{"name":"(anonymous_3)","decl":{"start":{"line":17,"column":39},"end":{"line":17,"column":40}},"loc":{"start":{"line":17,"column":51},"end":{"line":23,"column":5}},"line":17},"4":{"name":"(anonymous_4)","decl":{"start":{"line":24,"column":48},"end":{"line":24,"column":49}},"loc":{"start":{"line":24,"column":65},"end":{"line":31,"column":5}},"line":24},"5":{"name":"(anonymous_5)","decl":{"start":{"line":32,"column":47},"end":{"line":32,"column":48}},"loc":{"start":{"line":32,"column":63},"end":{"line":38,"column":5}},"line":32},"6":{"name":"(anonymous_6)","decl":{"start":{"line":39,"column":46},"end":{"line":39,"column":47}},"loc":{"start":{"line":39,"column":69},"end":{"line":44,"column":5}},"line":39},"7":{"name":"(anonymous_7)","decl":{"start":{"line":45,"column":42},"end":{"line":45,"column":43}},"loc":{"start":{"line":45,"column":61},"end":{"line":50,"column":5}},"line":45},"8":{"name":"(anonymous_8)","decl":{"start":{"line":51,"column":43},"end":{"line":51,"column":44}},"loc":{"start":{"line":51,"column":59},"end":{"line":59,"column":5}},"line":51},"9":{"name":"(anonymous_9)","decl":{"start":{"line":60,"column":46},"end":{"line":60,"column":47}},"loc":{"start":{"line":60,"column":75},"end":{"line":68,"column":5}},"line":60},"10":{"name":"(anonymous_10)","decl":{"start":{"line":62,"column":32},"end":{"line":62,"column":33}},"loc":{"start":{"line":62,"column":51},"end":{"line":65,"column":9}},"line":62},"11":{"name":"(anonymous_11)","decl":{"start":{"line":63,"column":30},"end":{"line":63,"column":31}},"loc":{"start":{"line":63,"column":42},"end":{"line":63,"column":94}},"line":63},"12":{"name":"(anonymous_12)","decl":{"start":{"line":69,"column":43},"end":{"line":69,"column":44}},"loc":{"start":{"line":69,"column":63},"end":{"line":74,"column":5}},"line":69},"13":{"name":"(anonymous_13)","decl":{"start":{"line":75,"column":42},"end":{"line":75,"column":43}},"loc":{"start":{"line":75,"column":61},"end":{"line":77,"column":5}},"line":75},"14":{"name":"(anonymous_14)","decl":{"start":{"line":76,"column":28},"end":{"line":76,"column":29}},"loc":{"start":{"line":76,"column":47},"end":{"line":76,"column":89}},"line":76}},"branchMap":{"0":{"loc":{"start":{"line":18,"column":8},"end":{"line":20,"column":9}},"type":"if","locations":[{"start":{"line":18,"column":8},"end":{"line":20,"column":9}},{"start":{"line":18,"column":8},"end":{"line":20,"column":9}}],"line":18},"1":{"loc":{"start":{"line":52,"column":8},"end":{"line":54,"column":9}},"type":"if","locations":[{"start":{"line":52,"column":8},"end":{"line":54,"column":9}},{"start":{"line":52,"column":8},"end":{"line":54,"column":9}}],"line":52}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":24347,"8":1,"9":266,"10":266,"11":266,"12":1,"13":32,"14":1,"15":31,"16":31,"17":1,"18":24054,"19":24054,"20":24054,"21":24054,"22":24054,"23":24054,"24":1,"25":11,"26":11,"27":11,"28":11,"29":11,"30":1,"31":4,"32":4,"33":4,"34":4,"35":1,"36":4,"37":4,"38":4,"39":4,"40":1,"41":4,"42":1,"43":3,"44":3,"45":3,"46":3,"47":1,"48":3,"49":3,"50":2,"51":1,"52":2,"53":3,"54":3,"55":1,"56":7,"57":7,"58":7,"59":7,"60":1,"61":4,"62":5,"63":1,"64":1},"f":{"0":1,"1":24347,"2":266,"3":32,"4":24054,"5":11,"6":4,"7":4,"8":4,"9":3,"10":2,"11":1,"12":7,"13":4,"14":5},"b":{"0":[1,31],"1":[1,3]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_to_syntax.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_to_syntax.ts"],"names":[],"mappings":"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","sourcesContent":["import * as ERROR_MSGS from \"../constants/error_msgs\";\nimport { BindingScopeEnum, BindingTypeEnum } from \"../constants/literal_types\";\nimport { interfaces } from \"../interfaces/interfaces\";\nimport { BindingInWhenOnSyntax } from \"./binding_in_when_on_syntax\";\nimport { BindingWhenOnSyntax } from \"./binding_when_on_syntax\";\n\nclass BindingToSyntax<T> implements interfaces.BindingToSyntax<T> {\n\n private _binding: interfaces.Binding<T>;\n\n public constructor(binding: interfaces.Binding<T>) {\n this._binding = binding;\n }\n\n public to(constructor: new (...args: any[]) => T): interfaces.BindingInWhenOnSyntax<T> {\n this._binding.type = BindingTypeEnum.Instance;\n this._binding.implementationType = constructor;\n return new BindingInWhenOnSyntax<T>(this._binding);\n }\n\n public toSelf(): interfaces.BindingInWhenOnSyntax<T> {\n if (typeof this._binding.serviceIdentifier !== \"function\") {\n throw new Error(`${ERROR_MSGS.INVALID_TO_SELF_VALUE}`);\n }\n const self: any = this._binding.serviceIdentifier;\n return this.to(self);\n }\n\n public toConstantValue(value: T): interfaces.BindingWhenOnSyntax<T> {\n this._binding.type = BindingTypeEnum.ConstantValue;\n this._binding.cache = value;\n this._binding.dynamicValue = null;\n this._binding.implementationType = null;\n this._binding.scope = BindingScopeEnum.Singleton;\n return new BindingWhenOnSyntax<T>(this._binding);\n }\n\n public toDynamicValue(func: (context: interfaces.Context) => T): interfaces.BindingInWhenOnSyntax<T> {\n this._binding.type = BindingTypeEnum.DynamicValue;\n this._binding.cache = null;\n this._binding.dynamicValue = func;\n this._binding.implementationType = null;\n return new BindingInWhenOnSyntax<T>(this._binding);\n }\n\n public toConstructor<T2>(constructor: interfaces.Newable<T2>): interfaces.BindingWhenOnSyntax<T> {\n this._binding.type = BindingTypeEnum.Constructor;\n this._binding.implementationType = constructor as any;\n this._binding.scope = BindingScopeEnum.Singleton;\n return new BindingWhenOnSyntax<T>(this._binding);\n }\n\n public toFactory<T2>(factory: interfaces.FactoryCreator<T2>): interfaces.BindingWhenOnSyntax<T> {\n this._binding.type = BindingTypeEnum.Factory;\n this._binding.factory = factory;\n this._binding.scope = BindingScopeEnum.Singleton;\n return new BindingWhenOnSyntax<T>(this._binding);\n }\n\n public toFunction(func: T): interfaces.BindingWhenOnSyntax<T> {\n // toFunction is an alias of toConstantValue\n if (typeof func !== \"function\") { throw new Error(ERROR_MSGS.INVALID_FUNCTION_BINDING); }\n const bindingWhenOnSyntax = this.toConstantValue(func);\n this._binding.type = BindingTypeEnum.Function;\n this._binding.scope = BindingScopeEnum.Singleton;\n return bindingWhenOnSyntax;\n }\n\n public toAutoFactory<T2>(serviceIdentifier: interfaces.ServiceIdentifier<T2>): interfaces.BindingWhenOnSyntax<T> {\n this._binding.type = BindingTypeEnum.Factory;\n this._binding.factory = (context) => {\n const autofactory = () => context.container.get<T2>(serviceIdentifier);\n return autofactory;\n };\n this._binding.scope = BindingScopeEnum.Singleton;\n return new BindingWhenOnSyntax<T>(this._binding);\n }\n\n public toProvider<T2>(provider: interfaces.ProviderCreator<T2>): interfaces.BindingWhenOnSyntax<T> {\n this._binding.type = BindingTypeEnum.Provider;\n this._binding.provider = provider;\n this._binding.scope = BindingScopeEnum.Singleton;\n return new BindingWhenOnSyntax<T>(this._binding);\n }\n\n public toService(service: string | symbol | interfaces.Newable<T> | interfaces.Abstract<T>): void {\n this.toDynamicValue(\n (context) => context.container.get<T>(service)\n );\n }\n\n}\n\nexport { BindingToSyntax };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"68ba12da23e0cdd890318e5321e15dffae7ae4c9","contentHash":"7c1ab81b9c4832c6ce5da42535103b506b122ea6622600d83e94d8deee715940"},"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_in_when_on_syntax.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_in_when_on_syntax.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":39}},"2":{"start":{"line":4,"column":26},"end":{"line":4,"column":56}},"3":{"start":{"line":5,"column":26},"end":{"line":5,"column":56}},"4":{"start":{"line":6,"column":28},"end":{"line":6,"column":60}},"5":{"start":{"line":7,"column":29},"end":{"line":72,"column":3}},"6":{"start":{"line":9,"column":8},"end":{"line":9,"column":32}},"7":{"start":{"line":10,"column":8},"end":{"line":10,"column":93}},"8":{"start":{"line":11,"column":8},"end":{"line":11,"column":87}},"9":{"start":{"line":12,"column":8},"end":{"line":12,"column":81}},"10":{"start":{"line":14,"column":4},"end":{"line":16,"column":6}},"11":{"start":{"line":15,"column":8},"end":{"line":15,"column":54}},"12":{"start":{"line":17,"column":4},"end":{"line":19,"column":6}},"13":{"start":{"line":18,"column":8},"end":{"line":18,"column":56}},"14":{"start":{"line":20,"column":4},"end":{"line":22,"column":6}},"15":{"start":{"line":21,"column":8},"end":{"line":21,"column":56}},"16":{"start":{"line":23,"column":4},"end":{"line":25,"column":6}},"17":{"start":{"line":24,"column":8},"end":{"line":24,"column":56}},"18":{"start":{"line":26,"column":4},"end":{"line":28,"column":6}},"19":{"start":{"line":27,"column":8},"end":{"line":27,"column":61}},"20":{"start":{"line":29,"column":4},"end":{"line":31,"column":6}},"21":{"start":{"line":30,"column":8},"end":{"line":30,"column":61}},"22":{"start":{"line":32,"column":4},"end":{"line":34,"column":6}},"23":{"start":{"line":33,"column":8},"end":{"line":33,"column":68}},"24":{"start":{"line":35,"column":4},"end":{"line":37,"column":6}},"25":{"start":{"line":36,"column":8},"end":{"line":36,"column":64}},"26":{"start":{"line":38,"column":4},"end":{"line":40,"column":6}},"27":{"start":{"line":39,"column":8},"end":{"line":39,"column":61}},"28":{"start":{"line":41,"column":4},"end":{"line":43,"column":6}},"29":{"start":{"line":42,"column":8},"end":{"line":42,"column":68}},"30":{"start":{"line":44,"column":4},"end":{"line":46,"column":6}},"31":{"start":{"line":45,"column":8},"end":{"line":45,"column":67}},"32":{"start":{"line":47,"column":4},"end":{"line":49,"column":6}},"33":{"start":{"line":48,"column":8},"end":{"line":48,"column":66}},"34":{"start":{"line":50,"column":4},"end":{"line":52,"column":6}},"35":{"start":{"line":51,"column":8},"end":{"line":51,"column":66}},"36":{"start":{"line":53,"column":4},"end":{"line":55,"column":6}},"37":{"start":{"line":54,"column":8},"end":{"line":54,"column":73}},"38":{"start":{"line":56,"column":4},"end":{"line":58,"column":6}},"39":{"start":{"line":57,"column":8},"end":{"line":57,"column":65}},"40":{"start":{"line":59,"column":4},"end":{"line":61,"column":6}},"41":{"start":{"line":60,"column":8},"end":{"line":60,"column":72}},"42":{"start":{"line":62,"column":4},"end":{"line":64,"column":6}},"43":{"start":{"line":63,"column":8},"end":{"line":63,"column":74}},"44":{"start":{"line":65,"column":4},"end":{"line":67,"column":6}},"45":{"start":{"line":66,"column":8},"end":{"line":66,"column":73}},"46":{"start":{"line":68,"column":4},"end":{"line":70,"column":6}},"47":{"start":{"line":69,"column":8},"end":{"line":69,"column":59}},"48":{"start":{"line":71,"column":4},"end":{"line":71,"column":33}},"49":{"start":{"line":73,"column":0},"end":{"line":73,"column":54}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":29},"end":{"line":7,"column":30}},"loc":{"start":{"line":7,"column":41},"end":{"line":72,"column":1}},"line":7},"1":{"name":"BindingInWhenOnSyntax","decl":{"start":{"line":8,"column":13},"end":{"line":8,"column":34}},"loc":{"start":{"line":8,"column":44},"end":{"line":13,"column":5}},"line":8},"2":{"name":"(anonymous_2)","decl":{"start":{"line":14,"column":53},"end":{"line":14,"column":54}},"loc":{"start":{"line":14,"column":65},"end":{"line":16,"column":5}},"line":14},"3":{"name":"(anonymous_3)","decl":{"start":{"line":17,"column":55},"end":{"line":17,"column":56}},"loc":{"start":{"line":17,"column":67},"end":{"line":19,"column":5}},"line":17},"4":{"name":"(anonymous_4)","decl":{"start":{"line":20,"column":55},"end":{"line":20,"column":56}},"loc":{"start":{"line":20,"column":67},"end":{"line":22,"column":5}},"line":20},"5":{"name":"(anonymous_5)","decl":{"start":{"line":23,"column":43},"end":{"line":23,"column":44}},"loc":{"start":{"line":23,"column":65},"end":{"line":25,"column":5}},"line":23},"6":{"name":"(anonymous_6)","decl":{"start":{"line":26,"column":54},"end":{"line":26,"column":55}},"loc":{"start":{"line":26,"column":70},"end":{"line":28,"column":5}},"line":26},"7":{"name":"(anonymous_7)","decl":{"start":{"line":29,"column":58},"end":{"line":29,"column":59}},"loc":{"start":{"line":29,"column":70},"end":{"line":31,"column":5}},"line":29},"8":{"name":"(anonymous_8)","decl":{"start":{"line":32,"column":55},"end":{"line":32,"column":56}},"loc":{"start":{"line":32,"column":77},"end":{"line":34,"column":5}},"line":32},"9":{"name":"(anonymous_9)","decl":{"start":{"line":35,"column":55},"end":{"line":35,"column":56}},"loc":{"start":{"line":35,"column":73},"end":{"line":37,"column":5}},"line":35},"10":{"name":"(anonymous_10)","decl":{"start":{"line":38,"column":54},"end":{"line":38,"column":55}},"loc":{"start":{"line":38,"column":70},"end":{"line":40,"column":5}},"line":38},"11":{"name":"(anonymous_11)","decl":{"start":{"line":41,"column":55},"end":{"line":41,"column":56}},"loc":{"start":{"line":41,"column":77},"end":{"line":43,"column":5}},"line":41},"12":{"name":"(anonymous_12)","decl":{"start":{"line":44,"column":56},"end":{"line":44,"column":57}},"loc":{"start":{"line":44,"column":76},"end":{"line":46,"column":5}},"line":44},"13":{"name":"(anonymous_13)","decl":{"start":{"line":47,"column":55},"end":{"line":47,"column":56}},"loc":{"start":{"line":47,"column":75},"end":{"line":49,"column":5}},"line":47},"14":{"name":"(anonymous_14)","decl":{"start":{"line":50,"column":59},"end":{"line":50,"column":60}},"loc":{"start":{"line":50,"column":75},"end":{"line":52,"column":5}},"line":50},"15":{"name":"(anonymous_15)","decl":{"start":{"line":53,"column":60},"end":{"line":53,"column":61}},"loc":{"start":{"line":53,"column":82},"end":{"line":55,"column":5}},"line":53},"16":{"name":"(anonymous_16)","decl":{"start":{"line":56,"column":58},"end":{"line":56,"column":59}},"loc":{"start":{"line":56,"column":74},"end":{"line":58,"column":5}},"line":56},"17":{"name":"(anonymous_17)","decl":{"start":{"line":59,"column":59},"end":{"line":59,"column":60}},"loc":{"start":{"line":59,"column":81},"end":{"line":61,"column":5}},"line":59},"18":{"name":"(anonymous_18)","decl":{"start":{"line":62,"column":61},"end":{"line":62,"column":62}},"loc":{"start":{"line":62,"column":83},"end":{"line":64,"column":5}},"line":62},"19":{"name":"(anonymous_19)","decl":{"start":{"line":65,"column":60},"end":{"line":65,"column":61}},"loc":{"start":{"line":65,"column":82},"end":{"line":67,"column":5}},"line":65},"20":{"name":"(anonymous_20)","decl":{"start":{"line":68,"column":51},"end":{"line":68,"column":52}},"loc":{"start":{"line":68,"column":70},"end":{"line":70,"column":5}},"line":68}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":281,"7":281,"8":281,"9":281,"10":1,"11":3,"12":1,"13":16,"14":1,"15":2,"16":1,"17":3,"18":1,"19":23,"20":1,"21":2,"22":1,"23":13,"24":1,"25":5,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":3,"48":1,"49":1},"f":{"0":1,"1":281,"2":3,"3":16,"4":2,"5":3,"6":23,"7":2,"8":13,"9":5,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":3},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_in_when_on_syntax.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_in_when_on_syntax.ts"],"names":[],"mappings":"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","sourcesContent":["import { interfaces } from \"../interfaces/interfaces\";\nimport { BindingInSyntax } from \"./binding_in_syntax\";\nimport { BindingOnSyntax } from \"./binding_on_syntax\";\nimport { BindingWhenSyntax } from \"./binding_when_syntax\";\n\nclass BindingInWhenOnSyntax<T> implements interfaces.BindingInSyntax<T>, interfaces.BindingWhenSyntax<T>, interfaces.BindingOnSyntax<T> {\n\n private _bindingInSyntax: interfaces.BindingInSyntax<T>;\n private _bindingWhenSyntax: interfaces.BindingWhenSyntax<T>;\n private _bindingOnSyntax: interfaces.BindingOnSyntax<T>;\n private _binding: interfaces.Binding<T>;\n\n public constructor(binding: interfaces.Binding<T>) {\n this._binding = binding;\n this._bindingWhenSyntax = new BindingWhenSyntax<T>(this._binding);\n this._bindingOnSyntax = new BindingOnSyntax<T>(this._binding);\n this._bindingInSyntax = new BindingInSyntax<T>(binding);\n }\n\n public inRequestScope(): interfaces.BindingWhenOnSyntax<T> {\n return this._bindingInSyntax.inRequestScope();\n }\n\n public inSingletonScope(): interfaces.BindingWhenOnSyntax<T> {\n return this._bindingInSyntax.inSingletonScope();\n }\n\n public inTransientScope(): interfaces.BindingWhenOnSyntax<T> {\n return this._bindingInSyntax.inTransientScope();\n }\n\n public when(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.when(constraint);\n }\n\n public whenTargetNamed(name: string): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenTargetNamed(name);\n }\n\n public whenTargetIsDefault(): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenTargetIsDefault();\n }\n\n public whenTargetTagged(tag: string, value: any): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenTargetTagged(tag, value);\n }\n\n public whenInjectedInto(parent: (Function | string)): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenInjectedInto(parent);\n }\n\n public whenParentNamed(name: string): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenParentNamed(name);\n }\n\n public whenParentTagged(tag: string, value: any): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenParentTagged(tag, value);\n }\n\n public whenAnyAncestorIs(ancestor: (Function | string)): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenAnyAncestorIs(ancestor);\n }\n\n public whenNoAncestorIs(ancestor: (Function | string)): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenNoAncestorIs(ancestor);\n }\n\n public whenAnyAncestorNamed(name: string): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenAnyAncestorNamed(name);\n }\n\n public whenAnyAncestorTagged(tag: string, value: any): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenAnyAncestorTagged(tag, value);\n }\n\n public whenNoAncestorNamed(name: string): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenNoAncestorNamed(name);\n }\n\n public whenNoAncestorTagged(tag: string, value: any): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenNoAncestorTagged(tag, value);\n }\n\n public whenAnyAncestorMatches(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenAnyAncestorMatches(constraint);\n }\n\n public whenNoAncestorMatches(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenNoAncestorMatches(constraint);\n }\n\n public onActivation(handler: (context: interfaces.Context, injectable: T) => T): interfaces.BindingWhenSyntax<T> {\n return this._bindingOnSyntax.onActivation(handler);\n }\n\n}\n\nexport { BindingInWhenOnSyntax };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"f93e867844f23461e2f01397b9040199f6e45740","contentHash":"8789953fa8e692b5e9637cecf90f577d2b1d05151bc30897fd15400d9e624910"},"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_in_syntax.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_in_syntax.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":33}},"2":{"start":{"line":4,"column":22},"end":{"line":4,"column":59}},"3":{"start":{"line":5,"column":31},"end":{"line":5,"column":66}},"4":{"start":{"line":6,"column":23},"end":{"line":23,"column":3}},"5":{"start":{"line":8,"column":8},"end":{"line":8,"column":32}},"6":{"start":{"line":10,"column":4},"end":{"line":13,"column":6}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":71}},"8":{"start":{"line":12,"column":8},"end":{"line":12,"column":79}},"9":{"start":{"line":14,"column":4},"end":{"line":17,"column":6}},"10":{"start":{"line":15,"column":8},"end":{"line":15,"column":73}},"11":{"start":{"line":16,"column":8},"end":{"line":16,"column":79}},"12":{"start":{"line":18,"column":4},"end":{"line":21,"column":6}},"13":{"start":{"line":19,"column":8},"end":{"line":19,"column":73}},"14":{"start":{"line":20,"column":8},"end":{"line":20,"column":79}},"15":{"start":{"line":22,"column":4},"end":{"line":22,"column":27}},"16":{"start":{"line":24,"column":0},"end":{"line":24,"column":42}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":23},"end":{"line":6,"column":24}},"loc":{"start":{"line":6,"column":35},"end":{"line":23,"column":1}},"line":6},"1":{"name":"BindingInSyntax","decl":{"start":{"line":7,"column":13},"end":{"line":7,"column":28}},"loc":{"start":{"line":7,"column":38},"end":{"line":9,"column":5}},"line":7},"2":{"name":"(anonymous_2)","decl":{"start":{"line":10,"column":47},"end":{"line":10,"column":48}},"loc":{"start":{"line":10,"column":59},"end":{"line":13,"column":5}},"line":10},"3":{"name":"(anonymous_3)","decl":{"start":{"line":14,"column":49},"end":{"line":14,"column":50}},"loc":{"start":{"line":14,"column":61},"end":{"line":17,"column":5}},"line":14},"4":{"name":"(anonymous_4)","decl":{"start":{"line":18,"column":49},"end":{"line":18,"column":50}},"loc":{"start":{"line":18,"column":61},"end":{"line":21,"column":5}},"line":18}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":283,"6":1,"7":3,"8":3,"9":1,"10":16,"11":16,"12":1,"13":2,"14":2,"15":1,"16":1},"f":{"0":1,"1":283,"2":3,"3":16,"4":2},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_in_syntax.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_in_syntax.ts"],"names":[],"mappings":";;;AAAA,4DAA8D;AAE9D,mEAA+D;AAE/D;IAII,yBAAmB,OAA8B;QAC7C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC5B,CAAC;IAEM,wCAAc,GAArB;QACI,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,gCAAgB,CAAC,OAAO,CAAC;QAC/C,OAAO,IAAI,4CAAmB,CAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC;IAEM,0CAAgB,GAAvB;QACI,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,gCAAgB,CAAC,SAAS,CAAC;QACjD,OAAO,IAAI,4CAAmB,CAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC;IAEM,0CAAgB,GAAvB;QACI,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,gCAAgB,CAAC,SAAS,CAAC;QACjD,OAAO,IAAI,4CAAmB,CAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC;IAEL,sBAAC;AAAD,CAAC,AAvBD,IAuBC;AAEQ,0CAAe","sourcesContent":["import { BindingScopeEnum } from \"../constants/literal_types\";\nimport { interfaces } from \"../interfaces/interfaces\";\nimport { BindingWhenOnSyntax } from \"./binding_when_on_syntax\";\n\nclass BindingInSyntax<T> implements interfaces.BindingInSyntax<T> {\n\n private _binding: interfaces.Binding<T>;\n\n public constructor(binding: interfaces.Binding<T>) {\n this._binding = binding;\n }\n\n public inRequestScope(): interfaces.BindingWhenOnSyntax<T> {\n this._binding.scope = BindingScopeEnum.Request;\n return new BindingWhenOnSyntax<T>(this._binding);\n }\n\n public inSingletonScope(): interfaces.BindingWhenOnSyntax<T> {\n this._binding.scope = BindingScopeEnum.Singleton;\n return new BindingWhenOnSyntax<T>(this._binding);\n }\n\n public inTransientScope(): interfaces.BindingWhenOnSyntax<T> {\n this._binding.scope = BindingScopeEnum.Transient;\n return new BindingWhenOnSyntax<T>(this._binding);\n }\n\n}\n\nexport { BindingInSyntax };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"88c5d0e4402bcb859a714fbcff78043e3ef00c2b","contentHash":"960f8f12b2aef0f7dbd1afb5843382a27996dc348e26ed28e7e698b77238dbe5"},"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_when_on_syntax.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_when_on_syntax.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":37}},"2":{"start":{"line":4,"column":26},"end":{"line":4,"column":56}},"3":{"start":{"line":5,"column":28},"end":{"line":5,"column":60}},"4":{"start":{"line":6,"column":27},"end":{"line":61,"column":3}},"5":{"start":{"line":8,"column":8},"end":{"line":8,"column":32}},"6":{"start":{"line":9,"column":8},"end":{"line":9,"column":93}},"7":{"start":{"line":10,"column":8},"end":{"line":10,"column":87}},"8":{"start":{"line":12,"column":4},"end":{"line":14,"column":6}},"9":{"start":{"line":13,"column":8},"end":{"line":13,"column":56}},"10":{"start":{"line":15,"column":4},"end":{"line":17,"column":6}},"11":{"start":{"line":16,"column":8},"end":{"line":16,"column":61}},"12":{"start":{"line":18,"column":4},"end":{"line":20,"column":6}},"13":{"start":{"line":19,"column":8},"end":{"line":19,"column":61}},"14":{"start":{"line":21,"column":4},"end":{"line":23,"column":6}},"15":{"start":{"line":22,"column":8},"end":{"line":22,"column":68}},"16":{"start":{"line":24,"column":4},"end":{"line":26,"column":6}},"17":{"start":{"line":25,"column":8},"end":{"line":25,"column":64}},"18":{"start":{"line":27,"column":4},"end":{"line":29,"column":6}},"19":{"start":{"line":28,"column":8},"end":{"line":28,"column":61}},"20":{"start":{"line":30,"column":4},"end":{"line":32,"column":6}},"21":{"start":{"line":31,"column":8},"end":{"line":31,"column":68}},"22":{"start":{"line":33,"column":4},"end":{"line":35,"column":6}},"23":{"start":{"line":34,"column":8},"end":{"line":34,"column":67}},"24":{"start":{"line":36,"column":4},"end":{"line":38,"column":6}},"25":{"start":{"line":37,"column":8},"end":{"line":37,"column":66}},"26":{"start":{"line":39,"column":4},"end":{"line":41,"column":6}},"27":{"start":{"line":40,"column":8},"end":{"line":40,"column":66}},"28":{"start":{"line":42,"column":4},"end":{"line":44,"column":6}},"29":{"start":{"line":43,"column":8},"end":{"line":43,"column":73}},"30":{"start":{"line":45,"column":4},"end":{"line":47,"column":6}},"31":{"start":{"line":46,"column":8},"end":{"line":46,"column":65}},"32":{"start":{"line":48,"column":4},"end":{"line":50,"column":6}},"33":{"start":{"line":49,"column":8},"end":{"line":49,"column":72}},"34":{"start":{"line":51,"column":4},"end":{"line":53,"column":6}},"35":{"start":{"line":52,"column":8},"end":{"line":52,"column":74}},"36":{"start":{"line":54,"column":4},"end":{"line":56,"column":6}},"37":{"start":{"line":55,"column":8},"end":{"line":55,"column":73}},"38":{"start":{"line":57,"column":4},"end":{"line":59,"column":6}},"39":{"start":{"line":58,"column":8},"end":{"line":58,"column":59}},"40":{"start":{"line":60,"column":4},"end":{"line":60,"column":31}},"41":{"start":{"line":62,"column":0},"end":{"line":62,"column":50}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":27},"end":{"line":6,"column":28}},"loc":{"start":{"line":6,"column":39},"end":{"line":61,"column":1}},"line":6},"1":{"name":"BindingWhenOnSyntax","decl":{"start":{"line":7,"column":13},"end":{"line":7,"column":32}},"loc":{"start":{"line":7,"column":42},"end":{"line":11,"column":5}},"line":7},"2":{"name":"(anonymous_2)","decl":{"start":{"line":12,"column":41},"end":{"line":12,"column":42}},"loc":{"start":{"line":12,"column":63},"end":{"line":14,"column":5}},"line":12},"3":{"name":"(anonymous_3)","decl":{"start":{"line":15,"column":52},"end":{"line":15,"column":53}},"loc":{"start":{"line":15,"column":68},"end":{"line":17,"column":5}},"line":15},"4":{"name":"(anonymous_4)","decl":{"start":{"line":18,"column":56},"end":{"line":18,"column":57}},"loc":{"start":{"line":18,"column":68},"end":{"line":20,"column":5}},"line":18},"5":{"name":"(anonymous_5)","decl":{"start":{"line":21,"column":53},"end":{"line":21,"column":54}},"loc":{"start":{"line":21,"column":75},"end":{"line":23,"column":5}},"line":21},"6":{"name":"(anonymous_6)","decl":{"start":{"line":24,"column":53},"end":{"line":24,"column":54}},"loc":{"start":{"line":24,"column":71},"end":{"line":26,"column":5}},"line":24},"7":{"name":"(anonymous_7)","decl":{"start":{"line":27,"column":52},"end":{"line":27,"column":53}},"loc":{"start":{"line":27,"column":68},"end":{"line":29,"column":5}},"line":27},"8":{"name":"(anonymous_8)","decl":{"start":{"line":30,"column":53},"end":{"line":30,"column":54}},"loc":{"start":{"line":30,"column":75},"end":{"line":32,"column":5}},"line":30},"9":{"name":"(anonymous_9)","decl":{"start":{"line":33,"column":54},"end":{"line":33,"column":55}},"loc":{"start":{"line":33,"column":74},"end":{"line":35,"column":5}},"line":33},"10":{"name":"(anonymous_10)","decl":{"start":{"line":36,"column":53},"end":{"line":36,"column":54}},"loc":{"start":{"line":36,"column":73},"end":{"line":38,"column":5}},"line":36},"11":{"name":"(anonymous_11)","decl":{"start":{"line":39,"column":57},"end":{"line":39,"column":58}},"loc":{"start":{"line":39,"column":73},"end":{"line":41,"column":5}},"line":39},"12":{"name":"(anonymous_12)","decl":{"start":{"line":42,"column":58},"end":{"line":42,"column":59}},"loc":{"start":{"line":42,"column":80},"end":{"line":44,"column":5}},"line":42},"13":{"name":"(anonymous_13)","decl":{"start":{"line":45,"column":56},"end":{"line":45,"column":57}},"loc":{"start":{"line":45,"column":72},"end":{"line":47,"column":5}},"line":45},"14":{"name":"(anonymous_14)","decl":{"start":{"line":48,"column":57},"end":{"line":48,"column":58}},"loc":{"start":{"line":48,"column":79},"end":{"line":50,"column":5}},"line":48},"15":{"name":"(anonymous_15)","decl":{"start":{"line":51,"column":59},"end":{"line":51,"column":60}},"loc":{"start":{"line":51,"column":81},"end":{"line":53,"column":5}},"line":51},"16":{"name":"(anonymous_16)","decl":{"start":{"line":54,"column":58},"end":{"line":54,"column":59}},"loc":{"start":{"line":54,"column":80},"end":{"line":56,"column":5}},"line":54},"17":{"name":"(anonymous_17)","decl":{"start":{"line":57,"column":49},"end":{"line":57,"column":50}},"loc":{"start":{"line":57,"column":68},"end":{"line":59,"column":5}},"line":57}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":24096,"6":24096,"7":24096,"8":1,"9":1,"10":1,"11":13,"12":1,"13":1,"14":1,"15":15,"16":1,"17":2,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":7,"40":1,"41":1},"f":{"0":1,"1":24096,"2":1,"3":13,"4":1,"5":15,"6":2,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":7},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_when_on_syntax.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_when_on_syntax.ts"],"names":[],"mappings":";;;AACA,yDAAsD;AACtD,6DAA0D;AAE1D;IAMI,6BAAmB,OAA8B;QAC7C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,kBAAkB,GAAG,IAAI,uCAAiB,CAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClE,IAAI,CAAC,gBAAgB,GAAG,IAAI,mCAAe,CAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClE,CAAC;IAEM,kCAAI,GAAX,UAAY,UAAoD;QAC5D,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpD,CAAC;IAEM,6CAAe,GAAtB,UAAuB,IAAY;QAC/B,OAAO,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAEM,iDAAmB,GAA1B;QACI,OAAO,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,CAAC;IACzD,CAAC;IAEM,8CAAgB,GAAvB,UAAwB,GAAW,EAAE,KAAU;QAC3C,OAAO,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;IAEM,8CAAgB,GAAvB,UAAwB,MAA2B;QAC/C,OAAO,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC5D,CAAC;IAEM,6CAAe,GAAtB,UAAuB,IAAY;QAC/B,OAAO,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAEM,8CAAgB,GAAvB,UAAwB,GAAW,EAAE,KAAU;QAC3C,OAAO,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;IAEM,+CAAiB,GAAxB,UAAyB,QAA6B;QAClD,OAAO,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAEM,8CAAgB,GAAvB,UAAwB,QAA6B;QACjD,OAAO,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAEM,kDAAoB,GAA3B,UAA4B,IAAY;QACpC,OAAO,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC;IAEM,mDAAqB,GAA5B,UAA6B,GAAW,EAAE,KAAU;QAChD,OAAO,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrE,CAAC;IAEM,iDAAmB,GAA1B,UAA2B,IAAY;QACnC,OAAO,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;IAEM,kDAAoB,GAA3B,UAA4B,GAAW,EAAE,KAAU;QAC/C,OAAO,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpE,CAAC;IAEM,oDAAsB,GAA7B,UAA8B,UAAoD;QAC9E,OAAO,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;IACtE,CAAC;IAEM,mDAAqB,GAA5B,UAA6B,UAAoD;QAC7E,OAAO,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;IACrE,CAAC;IAEM,0CAAY,GAAnB,UAAoB,OAA0D;QAC1E,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IAEL,0BAAC;AAAD,CAAC,AA5ED,IA4EC;AAEQ,kDAAmB","sourcesContent":["import { interfaces } from \"../interfaces/interfaces\";\nimport { BindingOnSyntax } from \"./binding_on_syntax\";\nimport { BindingWhenSyntax } from \"./binding_when_syntax\";\n\nclass BindingWhenOnSyntax<T> implements interfaces.BindingWhenSyntax<T>, interfaces.BindingOnSyntax<T> {\n\n private _bindingWhenSyntax: interfaces.BindingWhenSyntax<T>;\n private _bindingOnSyntax: interfaces.BindingOnSyntax<T>;\n private _binding: interfaces.Binding<T>;\n\n public constructor(binding: interfaces.Binding<T>) {\n this._binding = binding;\n this._bindingWhenSyntax = new BindingWhenSyntax<T>(this._binding);\n this._bindingOnSyntax = new BindingOnSyntax<T>(this._binding);\n }\n\n public when(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.when(constraint);\n }\n\n public whenTargetNamed(name: string): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenTargetNamed(name);\n }\n\n public whenTargetIsDefault(): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenTargetIsDefault();\n }\n\n public whenTargetTagged(tag: string, value: any): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenTargetTagged(tag, value);\n }\n\n public whenInjectedInto(parent: (Function | string)): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenInjectedInto(parent);\n }\n\n public whenParentNamed(name: string): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenParentNamed(name);\n }\n\n public whenParentTagged(tag: string, value: any): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenParentTagged(tag, value);\n }\n\n public whenAnyAncestorIs(ancestor: (Function | string)): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenAnyAncestorIs(ancestor);\n }\n\n public whenNoAncestorIs(ancestor: (Function | string)): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenNoAncestorIs(ancestor);\n }\n\n public whenAnyAncestorNamed(name: string): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenAnyAncestorNamed(name);\n }\n\n public whenAnyAncestorTagged(tag: string, value: any): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenAnyAncestorTagged(tag, value);\n }\n\n public whenNoAncestorNamed(name: string): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenNoAncestorNamed(name);\n }\n\n public whenNoAncestorTagged(tag: string, value: any): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenNoAncestorTagged(tag, value);\n }\n\n public whenAnyAncestorMatches(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenAnyAncestorMatches(constraint);\n }\n\n public whenNoAncestorMatches(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T> {\n return this._bindingWhenSyntax.whenNoAncestorMatches(constraint);\n }\n\n public onActivation(handler: (context: interfaces.Context, injectable: T) => T): interfaces.BindingWhenSyntax<T> {\n return this._bindingOnSyntax.onActivation(handler);\n }\n\n}\n\nexport { BindingWhenOnSyntax };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"85b951cd8e368ac50bf5b955b6750c9bd75b00f9","contentHash":"86981e41e6e3e99fd3f7d3e190eef56bb628e05d17ce873ad3c4e812bcd8861a"},"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_on_syntax.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_on_syntax.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":33}},"2":{"start":{"line":4,"column":28},"end":{"line":4,"column":60}},"3":{"start":{"line":5,"column":23},"end":{"line":14,"column":3}},"4":{"start":{"line":7,"column":8},"end":{"line":7,"column":32}},"5":{"start":{"line":9,"column":4},"end":{"line":12,"column":6}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":45}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":74}},"8":{"start":{"line":13,"column":4},"end":{"line":13,"column":27}},"9":{"start":{"line":15,"column":0},"end":{"line":15,"column":42}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":23},"end":{"line":5,"column":24}},"loc":{"start":{"line":5,"column":35},"end":{"line":14,"column":1}},"line":5},"1":{"name":"BindingOnSyntax","decl":{"start":{"line":6,"column":13},"end":{"line":6,"column":28}},"loc":{"start":{"line":6,"column":38},"end":{"line":8,"column":5}},"line":6},"2":{"name":"(anonymous_2)","decl":{"start":{"line":9,"column":45},"end":{"line":9,"column":46}},"loc":{"start":{"line":9,"column":64},"end":{"line":12,"column":5}},"line":9}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":24498,"5":1,"6":9,"7":9,"8":1,"9":1},"f":{"0":1,"1":24498,"2":9},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_on_syntax.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_on_syntax.ts"],"names":[],"mappings":";;;AACA,6DAA0D;AAE1D;IAII,yBAAmB,OAA8B;QAC7C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC5B,CAAC;IAEM,sCAAY,GAAnB,UAAoB,OAA0D;QAC1E,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,OAAO,CAAC;QACrC,OAAO,IAAI,uCAAiB,CAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IAEL,sBAAC;AAAD,CAAC,AAbD,IAaC;AAEQ,0CAAe","sourcesContent":["import { interfaces } from \"../interfaces/interfaces\";\nimport { BindingWhenSyntax } from \"./binding_when_syntax\";\n\nclass BindingOnSyntax<T> implements interfaces.BindingOnSyntax<T> {\n\n private _binding: interfaces.Binding<T>;\n\n public constructor(binding: interfaces.Binding<T>) {\n this._binding = binding;\n }\n\n public onActivation(handler: (context: interfaces.Context, injectable: T) => T): interfaces.BindingWhenSyntax<T> {\n this._binding.onActivation = handler;\n return new BindingWhenSyntax<T>(this._binding);\n }\n\n}\n\nexport { BindingOnSyntax };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"fda5bfc157bd0718c3ecdb3ae848cd763fd1c7e5","contentHash":"6eb70045a61b737de89e662c2d5567d7594a4a71b7b17f2afb304f4413346014"},"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_when_syntax.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_when_syntax.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":35}},"2":{"start":{"line":4,"column":26},"end":{"line":4,"column":56}},"3":{"start":{"line":5,"column":27},"end":{"line":5,"column":58}},"4":{"start":{"line":6,"column":25},"end":{"line":98,"column":3}},"5":{"start":{"line":8,"column":8},"end":{"line":8,"column":32}},"6":{"start":{"line":10,"column":4},"end":{"line":13,"column":6}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":46}},"8":{"start":{"line":12,"column":8},"end":{"line":12,"column":70}},"9":{"start":{"line":14,"column":4},"end":{"line":17,"column":6}},"10":{"start":{"line":15,"column":8},"end":{"line":15,"column":78}},"11":{"start":{"line":16,"column":8},"end":{"line":16,"column":70}},"12":{"start":{"line":18,"column":4},"end":{"line":26,"column":6}},"13":{"start":{"line":19,"column":8},"end":{"line":24,"column":10}},"14":{"start":{"line":20,"column":34},"end":{"line":22,"column":44}},"15":{"start":{"line":23,"column":12},"end":{"line":23,"column":35}},"16":{"start":{"line":25,"column":8},"end":{"line":25,"column":70}},"17":{"start":{"line":27,"column":4},"end":{"line":30,"column":6}},"18":{"start":{"line":28,"column":8},"end":{"line":28,"column":85}},"19":{"start":{"line":29,"column":8},"end":{"line":29,"column":70}},"20":{"start":{"line":31,"column":4},"end":{"line":36,"column":6}},"21":{"start":{"line":32,"column":8},"end":{"line":34,"column":10}},"22":{"start":{"line":33,"column":12},"end":{"line":33,"column":86}},"23":{"start":{"line":35,"column":8},"end":{"line":35,"column":70}},"24":{"start":{"line":37,"column":4},"end":{"line":42,"column":6}},"25":{"start":{"line":38,"column":8},"end":{"line":40,"column":10}},"26":{"start":{"line":39,"column":12},"end":{"line":39,"column":85}},"27":{"start":{"line":41,"column":8},"end":{"line":41,"column":70}},"28":{"start":{"line":43,"column":4},"end":{"line":48,"column":6}},"29":{"start":{"line":44,"column":8},"end":{"line":46,"column":10}},"30":{"start":{"line":45,"column":12},"end":{"line":45,"column":92}},"31":{"start":{"line":47,"column":8},"end":{"line":47,"column":70}},"32":{"start":{"line":49,"column":4},"end":{"line":54,"column":6}},"33":{"start":{"line":50,"column":8},"end":{"line":52,"column":10}},"34":{"start":{"line":51,"column":12},"end":{"line":51,"column":115}},"35":{"start":{"line":53,"column":8},"end":{"line":53,"column":70}},"36":{"start":{"line":55,"column":4},"end":{"line":60,"column":6}},"37":{"start":{"line":56,"column":8},"end":{"line":58,"column":10}},"38":{"start":{"line":57,"column":12},"end":{"line":57,"column":116}},"39":{"start":{"line":59,"column":8},"end":{"line":59,"column":70}},"40":{"start":{"line":61,"column":4},"end":{"line":66,"column":6}},"41":{"start":{"line":62,"column":8},"end":{"line":64,"column":10}},"42":{"start":{"line":63,"column":12},"end":{"line":63,"column":112}},"43":{"start":{"line":65,"column":8},"end":{"line":65,"column":70}},"44":{"start":{"line":67,"column":4},"end":{"line":72,"column":6}},"45":{"start":{"line":68,"column":8},"end":{"line":70,"column":10}},"46":{"start":{"line":69,"column":12},"end":{"line":69,"column":113}},"47":{"start":{"line":71,"column":8},"end":{"line":71,"column":70}},"48":{"start":{"line":73,"column":4},"end":{"line":78,"column":6}},"49":{"start":{"line":74,"column":8},"end":{"line":76,"column":10}},"50":{"start":{"line":75,"column":12},"end":{"line":75,"column":119}},"51":{"start":{"line":77,"column":8},"end":{"line":77,"column":70}},"52":{"start":{"line":79,"column":4},"end":{"line":84,"column":6}},"53":{"start":{"line":80,"column":8},"end":{"line":82,"column":10}},"54":{"start":{"line":81,"column":12},"end":{"line":81,"column":120}},"55":{"start":{"line":83,"column":8},"end":{"line":83,"column":70}},"56":{"start":{"line":85,"column":4},"end":{"line":90,"column":6}},"57":{"start":{"line":86,"column":8},"end":{"line":88,"column":10}},"58":{"start":{"line":87,"column":12},"end":{"line":87,"column":80}},"59":{"start":{"line":89,"column":8},"end":{"line":89,"column":70}},"60":{"start":{"line":91,"column":4},"end":{"line":96,"column":6}},"61":{"start":{"line":92,"column":8},"end":{"line":94,"column":10}},"62":{"start":{"line":93,"column":12},"end":{"line":93,"column":81}},"63":{"start":{"line":95,"column":8},"end":{"line":95,"column":70}},"64":{"start":{"line":97,"column":4},"end":{"line":97,"column":29}},"65":{"start":{"line":99,"column":0},"end":{"line":99,"column":46}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":25},"end":{"line":6,"column":26}},"loc":{"start":{"line":6,"column":37},"end":{"line":98,"column":1}},"line":6},"1":{"name":"BindingWhenSyntax","decl":{"start":{"line":7,"column":13},"end":{"line":7,"column":30}},"loc":{"start":{"line":7,"column":40},"end":{"line":9,"column":5}},"line":7},"2":{"name":"(anonymous_2)","decl":{"start":{"line":10,"column":39},"end":{"line":10,"column":40}},"loc":{"start":{"line":10,"column":61},"end":{"line":13,"column":5}},"line":10},"3":{"name":"(anonymous_3)","decl":{"start":{"line":14,"column":50},"end":{"line":14,"column":51}},"loc":{"start":{"line":14,"column":66},"end":{"line":17,"column":5}},"line":14},"4":{"name":"(anonymous_4)","decl":{"start":{"line":18,"column":54},"end":{"line":18,"column":55}},"loc":{"start":{"line":18,"column":66},"end":{"line":26,"column":5}},"line":18},"5":{"name":"(anonymous_5)","decl":{"start":{"line":19,"column":35},"end":{"line":19,"column":36}},"loc":{"start":{"line":19,"column":54},"end":{"line":24,"column":9}},"line":19},"6":{"name":"(anonymous_6)","decl":{"start":{"line":27,"column":51},"end":{"line":27,"column":52}},"loc":{"start":{"line":27,"column":73},"end":{"line":30,"column":5}},"line":27},"7":{"name":"(anonymous_7)","decl":{"start":{"line":31,"column":51},"end":{"line":31,"column":52}},"loc":{"start":{"line":31,"column":69},"end":{"line":36,"column":5}},"line":31},"8":{"name":"(anonymous_8)","decl":{"start":{"line":32,"column":35},"end":{"line":32,"column":36}},"loc":{"start":{"line":32,"column":54},"end":{"line":34,"column":9}},"line":32},"9":{"name":"(anonymous_9)","decl":{"start":{"line":37,"column":50},"end":{"line":37,"column":51}},"loc":{"start":{"line":37,"column":66},"end":{"line":42,"column":5}},"line":37},"10":{"name":"(anonymous_10)","decl":{"start":{"line":38,"column":35},"end":{"line":38,"column":36}},"loc":{"start":{"line":38,"column":54},"end":{"line":40,"column":9}},"line":38},"11":{"name":"(anonymous_11)","decl":{"start":{"line":43,"column":51},"end":{"line":43,"column":52}},"loc":{"start":{"line":43,"column":73},"end":{"line":48,"column":5}},"line":43},"12":{"name":"(anonymous_12)","decl":{"start":{"line":44,"column":35},"end":{"line":44,"column":36}},"loc":{"start":{"line":44,"column":54},"end":{"line":46,"column":9}},"line":44},"13":{"name":"(anonymous_13)","decl":{"start":{"line":49,"column":52},"end":{"line":49,"column":53}},"loc":{"start":{"line":49,"column":72},"end":{"line":54,"column":5}},"line":49},"14":{"name":"(anonymous_14)","decl":{"start":{"line":50,"column":35},"end":{"line":50,"column":36}},"loc":{"start":{"line":50,"column":54},"end":{"line":52,"column":9}},"line":50},"15":{"name":"(anonymous_15)","decl":{"start":{"line":55,"column":51},"end":{"line":55,"column":52}},"loc":{"start":{"line":55,"column":71},"end":{"line":60,"column":5}},"line":55},"16":{"name":"(anonymous_16)","decl":{"start":{"line":56,"column":35},"end":{"line":56,"column":36}},"loc":{"start":{"line":56,"column":54},"end":{"line":58,"column":9}},"line":56},"17":{"name":"(anonymous_17)","decl":{"start":{"line":61,"column":55},"end":{"line":61,"column":56}},"loc":{"start":{"line":61,"column":71},"end":{"line":66,"column":5}},"line":61},"18":{"name":"(anonymous_18)","decl":{"start":{"line":62,"column":35},"end":{"line":62,"column":36}},"loc":{"start":{"line":62,"column":54},"end":{"line":64,"column":9}},"line":62},"19":{"name":"(anonymous_19)","decl":{"start":{"line":67,"column":54},"end":{"line":67,"column":55}},"loc":{"start":{"line":67,"column":70},"end":{"line":72,"column":5}},"line":67},"20":{"name":"(anonymous_20)","decl":{"start":{"line":68,"column":35},"end":{"line":68,"column":36}},"loc":{"start":{"line":68,"column":54},"end":{"line":70,"column":9}},"line":68},"21":{"name":"(anonymous_21)","decl":{"start":{"line":73,"column":56},"end":{"line":73,"column":57}},"loc":{"start":{"line":73,"column":78},"end":{"line":78,"column":5}},"line":73},"22":{"name":"(anonymous_22)","decl":{"start":{"line":74,"column":35},"end":{"line":74,"column":36}},"loc":{"start":{"line":74,"column":54},"end":{"line":76,"column":9}},"line":74},"23":{"name":"(anonymous_23)","decl":{"start":{"line":79,"column":55},"end":{"line":79,"column":56}},"loc":{"start":{"line":79,"column":77},"end":{"line":84,"column":5}},"line":79},"24":{"name":"(anonymous_24)","decl":{"start":{"line":80,"column":35},"end":{"line":80,"column":36}},"loc":{"start":{"line":80,"column":54},"end":{"line":82,"column":9}},"line":80},"25":{"name":"(anonymous_25)","decl":{"start":{"line":85,"column":57},"end":{"line":85,"column":58}},"loc":{"start":{"line":85,"column":79},"end":{"line":90,"column":5}},"line":85},"26":{"name":"(anonymous_26)","decl":{"start":{"line":86,"column":35},"end":{"line":86,"column":36}},"loc":{"start":{"line":86,"column":54},"end":{"line":88,"column":9}},"line":86},"27":{"name":"(anonymous_27)","decl":{"start":{"line":91,"column":56},"end":{"line":91,"column":57}},"loc":{"start":{"line":91,"column":78},"end":{"line":96,"column":5}},"line":91},"28":{"name":"(anonymous_28)","decl":{"start":{"line":92,"column":35},"end":{"line":92,"column":36}},"loc":{"start":{"line":92,"column":54},"end":{"line":94,"column":9}},"line":92}},"branchMap":{"0":{"loc":{"start":{"line":20,"column":34},"end":{"line":22,"column":44}},"type":"binary-expr","locations":[{"start":{"line":20,"column":35},"end":{"line":20,"column":58}},{"start":{"line":21,"column":17},"end":{"line":21,"column":42}},{"start":{"line":22,"column":17},"end":{"line":22,"column":43}}],"line":20}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":24398,"6":1,"7":3,"8":3,"9":1,"10":35,"11":35,"12":1,"13":3,"14":6,"15":6,"16":3,"17":1,"18":27,"19":27,"20":1,"21":11,"22":25,"23":11,"24":1,"25":4,"26":4,"27":4,"28":1,"29":4,"30":4,"31":4,"32":1,"33":4,"34":8,"35":4,"36":1,"37":4,"38":8,"39":4,"40":1,"41":4,"42":8,"43":4,"44":1,"45":4,"46":8,"47":4,"48":1,"49":4,"50":8,"51":4,"52":1,"53":4,"54":8,"55":4,"56":1,"57":4,"58":8,"59":4,"60":1,"61":4,"62":8,"63":4,"64":1,"65":1},"f":{"0":1,"1":24398,"2":3,"3":35,"4":3,"5":6,"6":27,"7":11,"8":25,"9":4,"10":4,"11":4,"12":4,"13":4,"14":8,"15":4,"16":8,"17":4,"18":8,"19":4,"20":8,"21":4,"22":8,"23":4,"24":8,"25":4,"26":8,"27":4,"28":8},"b":{"0":[6,6,3]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_when_syntax.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/binding_when_syntax.ts"],"names":[],"mappings":"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","sourcesContent":["import { interfaces } from \"../interfaces/interfaces\";\nimport { BindingOnSyntax } from \"./binding_on_syntax\";\nimport { namedConstraint, taggedConstraint, traverseAncerstors, typeConstraint } from \"./constraint_helpers\";\n\nclass BindingWhenSyntax<T> implements interfaces.BindingWhenSyntax<T> {\n\n private _binding: interfaces.Binding<T>;\n\n public constructor(binding: interfaces.Binding<T>) {\n this._binding = binding;\n }\n\n public when(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T> {\n this._binding.constraint = constraint;\n return new BindingOnSyntax<T>(this._binding);\n }\n\n public whenTargetNamed(name: string | number | symbol): interfaces.BindingOnSyntax<T> {\n this._binding.constraint = namedConstraint(name);\n return new BindingOnSyntax<T>(this._binding);\n }\n\n public whenTargetIsDefault(): interfaces.BindingOnSyntax<T> {\n\n this._binding.constraint = (request: interfaces.Request) => {\n\n const targetIsDefault = (request.target !== null) &&\n (!request.target.isNamed()) &&\n (!request.target.isTagged());\n\n return targetIsDefault;\n };\n\n return new BindingOnSyntax<T>(this._binding);\n }\n\n public whenTargetTagged(tag: string | number | symbol, value: any): interfaces.BindingOnSyntax<T> {\n this._binding.constraint = taggedConstraint(tag)(value);\n return new BindingOnSyntax<T>(this._binding);\n }\n\n public whenInjectedInto(parent: (Function | string)): interfaces.BindingOnSyntax<T> {\n this._binding.constraint = (request: interfaces.Request) =>\n typeConstraint(parent)(request.parentRequest);\n return new BindingOnSyntax<T>(this._binding);\n }\n\n public whenParentNamed(name: string | number | symbol): interfaces.BindingOnSyntax<T> {\n this._binding.constraint = (request: interfaces.Request) =>\n namedConstraint(name)(request.parentRequest);\n return new BindingOnSyntax<T>(this._binding);\n }\n\n public whenParentTagged(tag: string | number | symbol, value: any): interfaces.BindingOnSyntax<T> {\n this._binding.constraint = (request: interfaces.Request) =>\n taggedConstraint(tag)(value)(request.parentRequest);\n return new BindingOnSyntax<T>(this._binding);\n }\n\n public whenAnyAncestorIs(ancestor: (Function | string)): interfaces.BindingOnSyntax<T> {\n this._binding.constraint = (request: interfaces.Request) =>\n traverseAncerstors(request, typeConstraint(ancestor));\n return new BindingOnSyntax<T>(this._binding);\n }\n\n public whenNoAncestorIs(ancestor: (Function | string)): interfaces.BindingOnSyntax<T> {\n this._binding.constraint = (request: interfaces.Request) =>\n !traverseAncerstors(request, typeConstraint(ancestor));\n return new BindingOnSyntax<T>(this._binding);\n }\n\n public whenAnyAncestorNamed(name: string | number | symbol): interfaces.BindingOnSyntax<T> {\n\n this._binding.constraint = (request: interfaces.Request) =>\n traverseAncerstors(request, namedConstraint(name));\n\n return new BindingOnSyntax<T>(this._binding);\n }\n\n public whenNoAncestorNamed(name: string | number | symbol): interfaces.BindingOnSyntax<T> {\n\n this._binding.constraint = (request: interfaces.Request) =>\n !traverseAncerstors(request, namedConstraint(name));\n\n return new BindingOnSyntax<T>(this._binding);\n }\n\n public whenAnyAncestorTagged(tag: string | number | symbol, value: any): interfaces.BindingOnSyntax<T> {\n\n this._binding.constraint = (request: interfaces.Request) =>\n traverseAncerstors(request, taggedConstraint(tag)(value));\n\n return new BindingOnSyntax<T>(this._binding);\n }\n\n public whenNoAncestorTagged(tag: string | number | symbol, value: any): interfaces.BindingOnSyntax<T> {\n\n this._binding.constraint = (request: interfaces.Request) =>\n !traverseAncerstors(request, taggedConstraint(tag)(value));\n\n return new BindingOnSyntax<T>(this._binding);\n }\n\n public whenAnyAncestorMatches(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T> {\n\n this._binding.constraint = (request: interfaces.Request) =>\n traverseAncerstors(request, constraint);\n\n return new BindingOnSyntax<T>(this._binding);\n }\n\n public whenNoAncestorMatches(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T> {\n\n this._binding.constraint = (request: interfaces.Request) =>\n !traverseAncerstors(request, constraint);\n\n return new BindingOnSyntax<T>(this._binding);\n }\n\n}\n\nexport { BindingWhenSyntax };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"bc8b57189480c5f6ed1d4e893a93c179d8dbab07","contentHash":"9006a44f42b281069e828faa7f43f52e795a3606924aeeca903555f9621eb340"},"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/constraint_helpers.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/constraint_helpers.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":114}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":56}},"3":{"start":{"line":5,"column":17},"end":{"line":5,"column":48}},"4":{"start":{"line":6,"column":25},"end":{"line":14,"column":1}},"5":{"start":{"line":7,"column":17},"end":{"line":7,"column":38}},"6":{"start":{"line":8,"column":4},"end":{"line":13,"column":5}},"7":{"start":{"line":9,"column":8},"end":{"line":9,"column":82}},"8":{"start":{"line":12,"column":8},"end":{"line":12,"column":21}},"9":{"start":{"line":15,"column":0},"end":{"line":15,"column":48}},"10":{"start":{"line":16,"column":23},"end":{"line":22,"column":4}},"11":{"start":{"line":16,"column":40},"end":{"line":22,"column":2}},"12":{"start":{"line":17,"column":21},"end":{"line":19,"column":5}},"13":{"start":{"line":18,"column":8},"end":{"line":18,"column":100}},"14":{"start":{"line":20,"column":4},"end":{"line":20,"column":62}},"15":{"start":{"line":21,"column":4},"end":{"line":21,"column":22}},"16":{"start":{"line":23,"column":0},"end":{"line":23,"column":44}},"17":{"start":{"line":24,"column":22},"end":{"line":24,"column":62}},"18":{"start":{"line":25,"column":0},"end":{"line":25,"column":42}},"19":{"start":{"line":26,"column":21},"end":{"line":40,"column":4}},"20":{"start":{"line":26,"column":39},"end":{"line":40,"column":2}},"21":{"start":{"line":27,"column":18},"end":{"line":27,"column":22}},"22":{"start":{"line":28,"column":4},"end":{"line":38,"column":5}},"23":{"start":{"line":29,"column":8},"end":{"line":29,"column":38}},"24":{"start":{"line":30,"column":8},"end":{"line":37,"column":9}},"25":{"start":{"line":31,"column":36},"end":{"line":31,"column":61}},"26":{"start":{"line":32,"column":12},"end":{"line":32,"column":46}},"27":{"start":{"line":35,"column":30},"end":{"line":35,"column":68}},"28":{"start":{"line":36,"column":12},"end":{"line":36,"column":40}},"29":{"start":{"line":39,"column":4},"end":{"line":39,"column":17}},"30":{"start":{"line":41,"column":0},"end":{"line":41,"column":40}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":25},"end":{"line":6,"column":26}},"loc":{"start":{"line":6,"column":56},"end":{"line":14,"column":1}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":16,"column":23},"end":{"line":16,"column":24}},"loc":{"start":{"line":16,"column":38},"end":{"line":22,"column":4}},"line":16},"2":{"name":"(anonymous_2)","decl":{"start":{"line":16,"column":47},"end":{"line":16,"column":48}},"loc":{"start":{"line":16,"column":64},"end":{"line":22,"column":1}},"line":16},"3":{"name":"(anonymous_3)","decl":{"start":{"line":17,"column":21},"end":{"line":17,"column":22}},"loc":{"start":{"line":17,"column":40},"end":{"line":19,"column":5}},"line":17},"4":{"name":"(anonymous_4)","decl":{"start":{"line":26,"column":21},"end":{"line":26,"column":22}},"loc":{"start":{"line":26,"column":37},"end":{"line":40,"column":4}},"line":26},"5":{"name":"(anonymous_5)","decl":{"start":{"line":26,"column":46},"end":{"line":26,"column":47}},"loc":{"start":{"line":26,"column":65},"end":{"line":40,"column":1}},"line":26}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":4},"end":{"line":13,"column":5}},"type":"if","locations":[{"start":{"line":8,"column":4},"end":{"line":13,"column":5}},{"start":{"line":8,"column":4},"end":{"line":13,"column":5}}],"line":8},"1":{"loc":{"start":{"line":9,"column":15},"end":{"line":9,"column":81}},"type":"cond-expr","locations":[{"start":{"line":9,"column":36},"end":{"line":9,"column":40}},{"start":{"line":9,"column":43},"end":{"line":9,"column":81}}],"line":9},"2":{"loc":{"start":{"line":18,"column":15},"end":{"line":18,"column":99}},"type":"binary-expr","locations":[{"start":{"line":18,"column":15},"end":{"line":18,"column":31}},{"start":{"line":18,"column":35},"end":{"line":18,"column":58}},{"start":{"line":18,"column":62},"end":{"line":18,"column":99}}],"line":18},"3":{"loc":{"start":{"line":28,"column":4},"end":{"line":38,"column":5}},"type":"if","locations":[{"start":{"line":28,"column":4},"end":{"line":38,"column":5}},{"start":{"line":28,"column":4},"end":{"line":38,"column":5}}],"line":28},"4":{"loc":{"start":{"line":30,"column":8},"end":{"line":37,"column":9}},"type":"if","locations":[{"start":{"line":30,"column":8},"end":{"line":37,"column":9}},{"start":{"line":30,"column":8},"end":{"line":37,"column":9}}],"line":30}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":104,"6":104,"7":64,"8":40,"9":1,"10":1,"11":48,"12":102,"13":172,"14":102,"15":102,"16":1,"17":1,"18":1,"19":1,"20":50,"21":58,"22":58,"23":57,"24":57,"25":8,"26":8,"27":49,"28":49,"29":1,"30":1},"f":{"0":104,"1":48,"2":102,"3":172,"4":50,"5":58},"b":{"0":[64,40],"1":[24,40],"2":[172,172,172],"3":[57,1],"4":[8,49]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/constraint_helpers.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/syntax/constraint_helpers.ts"],"names":[],"mappings":";;;AAAA,yDAA2D;AAE3D,iDAAgD;AAEhD,IAAM,kBAAkB,GAAG,UACvB,OAA2B,EAC3B,UAAyC;IAGzC,IAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IACrC,IAAI,MAAM,KAAK,IAAI,EAAE;QACjB,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;KAC7E;SAAM;QACH,OAAO,KAAK,CAAC;KAChB;AACL,CAAC,CAAC;AAoCO,gDAAkB;AAhC3B,IAAM,gBAAgB,GAAG,UAAC,GAA6B,IAAK,OAAA,UAAC,KAAU;IAEnE,IAAM,UAAU,GAAmC,UAAC,OAAkC;QAClF,OAAA,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;IAApF,CAAoF,CAAC;IAEzF,UAAU,CAAC,QAAQ,GAAG,IAAI,mBAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAE/C,OAAO,UAAU,CAAC;AACtB,CAAC,EAR2D,CAQ3D,CAAC;AAwB2B,4CAAgB;AAtB7C,IAAM,eAAe,GAAG,gBAAgB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;AAsBlB,0CAAe;AApB9D,IAAM,cAAc,GAAG,UAAC,IAAyB,IAAK,OAAA,UAAC,OAAkC;IAIrF,IAAI,OAAO,GAAmC,IAAI,CAAC;IAEnD,IAAI,OAAO,KAAK,IAAI,EAAE;QAClB,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC1B,IAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;YACpD,OAAO,iBAAiB,KAAK,IAAI,CAAC;SACrC;aAAM;YACH,IAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;YAC3D,OAAO,IAAI,KAAK,WAAW,CAAC;SAC/B;KACJ;IAED,OAAO,KAAK,CAAC;AACjB,CAAC,EAlBqD,CAkBrD,CAAC;AAE8D,wCAAc","sourcesContent":["import * as METADATA_KEY from \"../constants/metadata_keys\";\nimport { interfaces } from \"../interfaces/interfaces\";\nimport { Metadata } from \"../planning/metadata\";\n\nconst traverseAncerstors = (\n request: interfaces.Request,\n constraint: interfaces.ConstraintFunction\n): boolean => {\n\n const parent = request.parentRequest;\n if (parent !== null) {\n return constraint(parent) ? true : traverseAncerstors(parent, constraint);\n } else {\n return false;\n }\n};\n\n// This helpers use currying to help you to generate constraints\n\nconst taggedConstraint = (key: string | number | symbol) => (value: any) => {\n\n const constraint: interfaces.ConstraintFunction = (request: interfaces.Request | null) =>\n request !== null && request.target !== null && request.target.matchesTag(key)(value);\n\n constraint.metaData = new Metadata(key, value);\n\n return constraint;\n};\n\nconst namedConstraint = taggedConstraint(METADATA_KEY.NAMED_TAG);\n\nconst typeConstraint = (type: (Function | string)) => (request: interfaces.Request | null) => {\n\n // Using index 0 because constraints are applied\n // to one binding at a time (see Planner class)\n let binding: interfaces.Binding<any> | null = null;\n\n if (request !== null) {\n binding = request.bindings[0];\n if (typeof type === \"string\") {\n const serviceIdentifier = binding.serviceIdentifier;\n return serviceIdentifier === type;\n } else {\n const constructor = request.bindings[0].implementationType;\n return type === constructor;\n }\n }\n\n return false;\n};\n\nexport { traverseAncerstors, taggedConstraint, namedConstraint, typeConstraint };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"50cc1fc5786ba2543c51cfa0e1bf1d20d109777e","contentHash":"cfcf264b7af62ea5bfef8099e8c0f425cfc1b7a6d5f5741929e67cea0098c46e"},"/Users/dan/jsProjects/inversify/InversifyJS/src/container/container_snapshot.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/container/container_snapshot.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":35}},"2":{"start":{"line":4,"column":25},"end":{"line":14,"column":3}},"3":{"start":{"line":7,"column":4},"end":{"line":12,"column":6}},"4":{"start":{"line":8,"column":23},"end":{"line":8,"column":46}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":37}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":41}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":24}},"8":{"start":{"line":13,"column":4},"end":{"line":13,"column":29}},"9":{"start":{"line":15,"column":0},"end":{"line":15,"column":46}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":25},"end":{"line":4,"column":26}},"loc":{"start":{"line":4,"column":37},"end":{"line":14,"column":1}},"line":4},"1":{"name":"ContainerSnapshot","decl":{"start":{"line":5,"column":13},"end":{"line":5,"column":30}},"loc":{"start":{"line":5,"column":33},"end":{"line":6,"column":5}},"line":5},"2":{"name":"(anonymous_2)","decl":{"start":{"line":7,"column":27},"end":{"line":7,"column":28}},"loc":{"start":{"line":7,"column":59},"end":{"line":12,"column":5}},"line":7}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":3,"5":3,"6":3,"7":3,"8":1,"9":1},"f":{"0":1,"1":3,"2":3},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/container/container_snapshot.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/container/container_snapshot.ts"],"names":[],"mappings":";;;AAEA;IAAA;IAYA,CAAC;IAPiB,oBAAE,GAAhB,UAAiB,QAAoD,EAAE,UAAkC;QACrG,IAAM,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACzC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC7B,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;QACjC,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEL,wBAAC;AAAD,CAAC,AAZD,IAYC;AAEQ,8CAAiB","sourcesContent":["import { interfaces } from \"../interfaces/interfaces\";\n\nclass ContainerSnapshot implements interfaces.ContainerSnapshot {\n\n public bindings: interfaces.Lookup<interfaces.Binding<any>>;\n public middleware: interfaces.Next | null;\n\n public static of(bindings: interfaces.Lookup<interfaces.Binding<any>>, middleware: interfaces.Next | null) {\n const snapshot = new ContainerSnapshot();\n snapshot.bindings = bindings;\n snapshot.middleware = middleware;\n return snapshot;\n }\n\n}\n\nexport { ContainerSnapshot };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"f6768ad8c13dd3d879c32ed5943b8e56354ad196","contentHash":"00bb8b15b7e772caf2c9e43dddba078bed594ee68b77f1a47474766cfafff618"},"/Users/dan/jsProjects/inversify/InversifyJS/src/container/lookup.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/container/lookup.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":24}},"2":{"start":{"line":4,"column":17},"end":{"line":4,"column":51}},"3":{"start":{"line":5,"column":14},"end":{"line":79,"column":3}},"4":{"start":{"line":7,"column":8},"end":{"line":7,"column":30}},"5":{"start":{"line":9,"column":4},"end":{"line":11,"column":6}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":25}},"7":{"start":{"line":12,"column":4},"end":{"line":27,"column":6}},"8":{"start":{"line":13,"column":8},"end":{"line":15,"column":9}},"9":{"start":{"line":14,"column":12},"end":{"line":14,"column":54}},"10":{"start":{"line":16,"column":8},"end":{"line":18,"column":9}},"11":{"start":{"line":17,"column":12},"end":{"line":17,"column":54}},"12":{"start":{"line":19,"column":20},"end":{"line":19,"column":52}},"13":{"start":{"line":20,"column":8},"end":{"line":26,"column":9}},"14":{"start":{"line":21,"column":12},"end":{"line":21,"column":30}},"15":{"start":{"line":22,"column":12},"end":{"line":22,"column":52}},"16":{"start":{"line":25,"column":12},"end":{"line":25,"column":54}},"17":{"start":{"line":28,"column":4},"end":{"line":39,"column":6}},"18":{"start":{"line":29,"column":8},"end":{"line":31,"column":9}},"19":{"start":{"line":30,"column":12},"end":{"line":30,"column":54}},"20":{"start":{"line":32,"column":20},"end":{"line":32,"column":52}},"21":{"start":{"line":33,"column":8},"end":{"line":38,"column":9}},"22":{"start":{"line":34,"column":12},"end":{"line":34,"column":25}},"23":{"start":{"line":37,"column":12},"end":{"line":37,"column":54}},"24":{"start":{"line":40,"column":4},"end":{"line":47,"column":6}},"25":{"start":{"line":41,"column":8},"end":{"line":43,"column":9}},"26":{"start":{"line":42,"column":12},"end":{"line":42,"column":54}},"27":{"start":{"line":44,"column":8},"end":{"line":46,"column":9}},"28":{"start":{"line":45,"column":12},"end":{"line":45,"column":54}},"29":{"start":{"line":48,"column":4},"end":{"line":59,"column":6}},"30":{"start":{"line":49,"column":20},"end":{"line":49,"column":24}},"31":{"start":{"line":50,"column":8},"end":{"line":58,"column":11}},"32":{"start":{"line":51,"column":33},"end":{"line":51,"column":95}},"33":{"start":{"line":51,"column":67},"end":{"line":51,"column":92}},"34":{"start":{"line":52,"column":12},"end":{"line":57,"column":13}},"35":{"start":{"line":53,"column":16},"end":{"line":53,"column":52}},"36":{"start":{"line":56,"column":16},"end":{"line":56,"column":39}},"37":{"start":{"line":60,"column":4},"end":{"line":65,"column":6}},"38":{"start":{"line":61,"column":8},"end":{"line":63,"column":9}},"39":{"start":{"line":62,"column":12},"end":{"line":62,"column":54}},"40":{"start":{"line":64,"column":8},"end":{"line":64,"column":48}},"41":{"start":{"line":66,"column":4},"end":{"line":72,"column":6}},"42":{"start":{"line":67,"column":19},"end":{"line":67,"column":31}},"43":{"start":{"line":68,"column":8},"end":{"line":70,"column":11}},"44":{"start":{"line":69,"column":12},"end":{"line":69,"column":77}},"45":{"start":{"line":69,"column":41},"end":{"line":69,"column":73}},"46":{"start":{"line":71,"column":8},"end":{"line":71,"column":20}},"47":{"start":{"line":73,"column":4},"end":{"line":77,"column":6}},"48":{"start":{"line":74,"column":8},"end":{"line":76,"column":11}},"49":{"start":{"line":75,"column":12},"end":{"line":75,"column":29}},"50":{"start":{"line":78,"column":4},"end":{"line":78,"column":18}},"51":{"start":{"line":80,"column":0},"end":{"line":80,"column":24}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":14},"end":{"line":5,"column":15}},"loc":{"start":{"line":5,"column":26},"end":{"line":79,"column":1}},"line":5},"1":{"name":"Lookup","decl":{"start":{"line":6,"column":13},"end":{"line":6,"column":19}},"loc":{"start":{"line":6,"column":22},"end":{"line":8,"column":5}},"line":6},"2":{"name":"(anonymous_2)","decl":{"start":{"line":9,"column":30},"end":{"line":9,"column":31}},"loc":{"start":{"line":9,"column":42},"end":{"line":11,"column":5}},"line":9},"3":{"name":"(anonymous_3)","decl":{"start":{"line":12,"column":27},"end":{"line":12,"column":28}},"loc":{"start":{"line":12,"column":63},"end":{"line":27,"column":5}},"line":12},"4":{"name":"(anonymous_4)","decl":{"start":{"line":28,"column":27},"end":{"line":28,"column":28}},"loc":{"start":{"line":28,"column":56},"end":{"line":39,"column":5}},"line":28},"5":{"name":"(anonymous_5)","decl":{"start":{"line":40,"column":30},"end":{"line":40,"column":31}},"loc":{"start":{"line":40,"column":59},"end":{"line":47,"column":5}},"line":40},"6":{"name":"(anonymous_6)","decl":{"start":{"line":48,"column":41},"end":{"line":48,"column":42}},"loc":{"start":{"line":48,"column":62},"end":{"line":59,"column":5}},"line":48},"7":{"name":"(anonymous_7)","decl":{"start":{"line":50,"column":26},"end":{"line":50,"column":27}},"loc":{"start":{"line":50,"column":50},"end":{"line":58,"column":9}},"line":50},"8":{"name":"(anonymous_8)","decl":{"start":{"line":51,"column":48},"end":{"line":51,"column":49}},"loc":{"start":{"line":51,"column":65},"end":{"line":51,"column":94}},"line":51},"9":{"name":"(anonymous_9)","decl":{"start":{"line":60,"column":30},"end":{"line":60,"column":31}},"loc":{"start":{"line":60,"column":59},"end":{"line":65,"column":5}},"line":60},"10":{"name":"(anonymous_10)","decl":{"start":{"line":66,"column":29},"end":{"line":66,"column":30}},"loc":{"start":{"line":66,"column":41},"end":{"line":72,"column":5}},"line":66},"11":{"name":"(anonymous_11)","decl":{"start":{"line":68,"column":26},"end":{"line":68,"column":27}},"loc":{"start":{"line":68,"column":48},"end":{"line":70,"column":9}},"line":68},"12":{"name":"(anonymous_12)","decl":{"start":{"line":69,"column":26},"end":{"line":69,"column":27}},"loc":{"start":{"line":69,"column":39},"end":{"line":69,"column":75}},"line":69},"13":{"name":"(anonymous_13)","decl":{"start":{"line":73,"column":32},"end":{"line":73,"column":33}},"loc":{"start":{"line":73,"column":48},"end":{"line":77,"column":5}},"line":73},"14":{"name":"(anonymous_14)","decl":{"start":{"line":74,"column":26},"end":{"line":74,"column":27}},"loc":{"start":{"line":74,"column":48},"end":{"line":76,"column":9}},"line":74}},"branchMap":{"0":{"loc":{"start":{"line":13,"column":8},"end":{"line":15,"column":9}},"type":"if","locations":[{"start":{"line":13,"column":8},"end":{"line":15,"column":9}},{"start":{"line":13,"column":8},"end":{"line":15,"column":9}}],"line":13},"1":{"loc":{"start":{"line":13,"column":12},"end":{"line":13,"column":73}},"type":"binary-expr","locations":[{"start":{"line":13,"column":12},"end":{"line":13,"column":38}},{"start":{"line":13,"column":42},"end":{"line":13,"column":73}}],"line":13},"2":{"loc":{"start":{"line":16,"column":8},"end":{"line":18,"column":9}},"type":"if","locations":[{"start":{"line":16,"column":8},"end":{"line":18,"column":9}},{"start":{"line":16,"column":8},"end":{"line":18,"column":9}}],"line":16},"3":{"loc":{"start":{"line":16,"column":12},"end":{"line":16,"column":49}},"type":"binary-expr","locations":[{"start":{"line":16,"column":12},"end":{"line":16,"column":26}},{"start":{"line":16,"column":30},"end":{"line":16,"column":49}}],"line":16},"4":{"loc":{"start":{"line":20,"column":8},"end":{"line":26,"column":9}},"type":"if","locations":[{"start":{"line":20,"column":8},"end":{"line":26,"column":9}},{"start":{"line":20,"column":8},"end":{"line":26,"column":9}}],"line":20},"5":{"loc":{"start":{"line":29,"column":8},"end":{"line":31,"column":9}},"type":"if","locations":[{"start":{"line":29,"column":8},"end":{"line":31,"column":9}},{"start":{"line":29,"column":8},"end":{"line":31,"column":9}}],"line":29},"6":{"loc":{"start":{"line":29,"column":12},"end":{"line":29,"column":73}},"type":"binary-expr","locations":[{"start":{"line":29,"column":12},"end":{"line":29,"column":38}},{"start":{"line":29,"column":42},"end":{"line":29,"column":73}}],"line":29},"7":{"loc":{"start":{"line":33,"column":8},"end":{"line":38,"column":9}},"type":"if","locations":[{"start":{"line":33,"column":8},"end":{"line":38,"column":9}},{"start":{"line":33,"column":8},"end":{"line":38,"column":9}}],"line":33},"8":{"loc":{"start":{"line":41,"column":8},"end":{"line":43,"column":9}},"type":"if","locations":[{"start":{"line":41,"column":8},"end":{"line":43,"column":9}},{"start":{"line":41,"column":8},"end":{"line":43,"column":9}}],"line":41},"9":{"loc":{"start":{"line":41,"column":12},"end":{"line":41,"column":73}},"type":"binary-expr","locations":[{"start":{"line":41,"column":12},"end":{"line":41,"column":38}},{"start":{"line":41,"column":42},"end":{"line":41,"column":73}}],"line":41},"10":{"loc":{"start":{"line":44,"column":8},"end":{"line":46,"column":9}},"type":"if","locations":[{"start":{"line":44,"column":8},"end":{"line":46,"column":9}},{"start":{"line":44,"column":8},"end":{"line":46,"column":9}}],"line":44},"11":{"loc":{"start":{"line":52,"column":12},"end":{"line":57,"column":13}},"type":"if","locations":[{"start":{"line":52,"column":12},"end":{"line":57,"column":13}},{"start":{"line":52,"column":12},"end":{"line":57,"column":13}}],"line":52},"12":{"loc":{"start":{"line":61,"column":8},"end":{"line":63,"column":9}},"type":"if","locations":[{"start":{"line":61,"column":8},"end":{"line":63,"column":9}},{"start":{"line":61,"column":8},"end":{"line":63,"column":9}}],"line":61},"13":{"loc":{"start":{"line":61,"column":12},"end":{"line":61,"column":73}},"type":"binary-expr","locations":[{"start":{"line":61,"column":12},"end":{"line":61,"column":38}},{"start":{"line":61,"column":42},"end":{"line":61,"column":73}}],"line":61}},"s":{"0":1,"1":1,"2":1,"3":1,"4":209,"5":1,"6":10,"7":1,"8":24376,"9":1,"10":24375,"11":1,"12":24374,"13":24374,"14":54,"15":54,"16":24320,"17":1,"18":8838,"19":1,"20":8837,"21":8837,"22":8836,"23":1,"24":1,"25":12,"26":1,"27":11,"28":2,"29":1,"30":5,"31":5,"32":11,"33":15,"34":11,"35":6,"36":5,"37":1,"38":8934,"39":1,"40":8933,"41":1,"42":4,"43":4,"44":5,"45":6,"46":4,"47":1,"48":5,"49":10,"50":1,"51":1},"f":{"0":1,"1":209,"2":10,"3":24376,"4":8838,"5":12,"6":5,"7":11,"8":15,"9":8934,"10":4,"11":5,"12":6,"13":5,"14":10},"b":{"0":[1,24375],"1":[24376,24375],"2":[1,24374],"3":[24375,24374],"4":[54,24320],"5":[1,8837],"6":[8838,8837],"7":[8836,1],"8":[1,11],"9":[12,11],"10":[2,9],"11":[6,5],"12":[1,8933],"13":[8934,8933]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/container/lookup.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/container/lookup.ts"],"names":[],"mappings":"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","sourcesContent":["import * as ERROR_MSGS from \"../constants/error_msgs\";\nimport { interfaces } from \"../interfaces/interfaces\";\n\nclass Lookup<T extends interfaces.Clonable<T>> implements interfaces.Lookup<T> {\n\n // dictionary used store multiple values for each key <key>\n private _map: Map<interfaces.ServiceIdentifier<any>, T[]>;\n\n public constructor() {\n this._map = new Map<interfaces.ServiceIdentifier<any>, T[]>();\n }\n\n public getMap() {\n return this._map;\n }\n\n // adds a new entry to _map\n public add(serviceIdentifier: interfaces.ServiceIdentifier<any>, value: T): void {\n\n if (serviceIdentifier === null || serviceIdentifier === undefined) {\n throw new Error(ERROR_MSGS.NULL_ARGUMENT);\n }\n\n if (value === null || value === undefined) {\n throw new Error(ERROR_MSGS.NULL_ARGUMENT);\n }\n\n const entry = this._map.get(serviceIdentifier);\n if (entry !== undefined) {\n entry.push(value);\n this._map.set(serviceIdentifier, entry);\n } else {\n this._map.set(serviceIdentifier, [value]);\n }\n }\n\n // gets the value of a entry by its key (serviceIdentifier)\n public get(serviceIdentifier: interfaces.ServiceIdentifier<any>): T[] {\n\n if (serviceIdentifier === null || serviceIdentifier === undefined) {\n throw new Error(ERROR_MSGS.NULL_ARGUMENT);\n }\n\n const entry = this._map.get(serviceIdentifier);\n\n if (entry !== undefined) {\n return entry;\n } else {\n throw new Error(ERROR_MSGS.KEY_NOT_FOUND);\n }\n }\n\n // removes a entry from _map by its key (serviceIdentifier)\n public remove(serviceIdentifier: interfaces.ServiceIdentifier<any>): void {\n\n if (serviceIdentifier === null || serviceIdentifier === undefined) {\n throw new Error(ERROR_MSGS.NULL_ARGUMENT);\n }\n\n if (!this._map.delete(serviceIdentifier)) {\n throw new Error(ERROR_MSGS.KEY_NOT_FOUND);\n }\n\n }\n\n public removeByCondition(condition: (item: T) => boolean): void {\n this._map.forEach((entries, key) => {\n const updatedEntries = entries.filter((entry) => !condition(entry));\n if (updatedEntries.length > 0) {\n this._map.set(key, updatedEntries);\n } else {\n this._map.delete(key);\n }\n });\n }\n\n // returns true if _map contains a key (serviceIdentifier)\n public hasKey(serviceIdentifier: interfaces.ServiceIdentifier<any>): boolean {\n\n if (serviceIdentifier === null || serviceIdentifier === undefined) {\n throw new Error(ERROR_MSGS.NULL_ARGUMENT);\n }\n\n return this._map.has(serviceIdentifier);\n }\n\n // returns a new Lookup instance; note: this is not a deep clone, only Lookup related data structure (dictionary) is\n // cloned, content remains the same\n public clone(): interfaces.Lookup<T> {\n\n const copy = new Lookup<T>();\n\n this._map.forEach((value, key) => {\n value.forEach((b) => copy.add(key, b.clone()));\n });\n\n return copy;\n }\n\n public traverse(func: (key: interfaces.ServiceIdentifier<any>, value: T[]) => void): void {\n this._map.forEach((value, key) => {\n func(key, value);\n });\n }\n\n}\n\nexport { Lookup };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"7beddb9f2943229926bf2abb2a418f23eaccda44","contentHash":"b419b92986e1a30af430c2cf2148e3adc92b7f98445948ddcfbed414649ad8a5"},"/Users/dan/jsProjects/inversify/InversifyJS/src/container/container_module.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/container/container_module.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":64}},"2":{"start":{"line":4,"column":11},"end":{"line":4,"column":33}},"3":{"start":{"line":5,"column":23},"end":{"line":11,"column":3}},"4":{"start":{"line":7,"column":8},"end":{"line":7,"column":28}},"5":{"start":{"line":8,"column":8},"end":{"line":8,"column":33}},"6":{"start":{"line":10,"column":4},"end":{"line":10,"column":27}},"7":{"start":{"line":12,"column":0},"end":{"line":12,"column":42}},"8":{"start":{"line":13,"column":28},"end":{"line":19,"column":3}},"9":{"start":{"line":15,"column":8},"end":{"line":15,"column":28}},"10":{"start":{"line":16,"column":8},"end":{"line":16,"column":33}},"11":{"start":{"line":18,"column":4},"end":{"line":18,"column":32}},"12":{"start":{"line":20,"column":0},"end":{"line":20,"column":52}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":23},"end":{"line":5,"column":24}},"loc":{"start":{"line":5,"column":35},"end":{"line":11,"column":1}},"line":5},"1":{"name":"ContainerModule","decl":{"start":{"line":6,"column":13},"end":{"line":6,"column":28}},"loc":{"start":{"line":6,"column":39},"end":{"line":9,"column":5}},"line":6},"2":{"name":"(anonymous_2)","decl":{"start":{"line":13,"column":28},"end":{"line":13,"column":29}},"loc":{"start":{"line":13,"column":40},"end":{"line":19,"column":1}},"line":13},"3":{"name":"AsyncContainerModule","decl":{"start":{"line":14,"column":13},"end":{"line":14,"column":33}},"loc":{"start":{"line":14,"column":44},"end":{"line":17,"column":5}},"line":14}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":7,"5":7,"6":1,"7":1,"8":1,"9":2,"10":2,"11":1,"12":1},"f":{"0":1,"1":7,"2":1,"3":2},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/container/container_module.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/container/container_module.ts"],"names":[],"mappings":";;;AACA,kCAAiC;AAEjC;IAKI,yBAAmB,QAA4C;QAC3D,IAAI,CAAC,EAAE,GAAG,OAAE,EAAE,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAEL,sBAAC;AAAD,CAAC,AAVD,IAUC;AAVY,0CAAe;AAY5B;IAKI,8BAAmB,QAAiD;QAChE,IAAI,CAAC,EAAE,GAAG,OAAE,EAAE,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAEL,2BAAC;AAAD,CAAC,AAVD,IAUC;AAVY,oDAAoB","sourcesContent":["import { interfaces } from \"../interfaces/interfaces\";\r\nimport { id } from \"../utils/id\";\r\n\r\nexport class ContainerModule implements interfaces.ContainerModule {\r\n\r\n public id: number;\r\n public registry: interfaces.ContainerModuleCallBack;\r\n\r\n public constructor(registry: interfaces.ContainerModuleCallBack) {\r\n this.id = id();\r\n this.registry = registry;\r\n }\r\n\r\n}\r\n\r\nexport class AsyncContainerModule implements interfaces.AsyncContainerModule {\r\n\r\n public id: number;\r\n public registry: interfaces.AsyncContainerModuleCallBack;\r\n\r\n public constructor(registry: interfaces.AsyncContainerModuleCallBack) {\r\n this.id = id();\r\n this.registry = registry;\r\n }\r\n\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"10f37e2f6b446654333f1d1abcb82d3fced07a73","contentHash":"4b3ba78513664d093b36b063464f1904e1622ba16651cd8376f8911b1ac5a6ce"},"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/injectable.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/injectable.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":28}},"2":{"start":{"line":4,"column":18},"end":{"line":4,"column":52}},"3":{"start":{"line":5,"column":19},"end":{"line":5,"column":56}},"4":{"start":{"line":7,"column":4},"end":{"line":14,"column":6}},"5":{"start":{"line":8,"column":8},"end":{"line":10,"column":9}},"6":{"start":{"line":9,"column":12},"end":{"line":9,"column":73}},"7":{"start":{"line":11,"column":20},"end":{"line":11,"column":86}},"8":{"start":{"line":12,"column":8},"end":{"line":12,"column":72}},"9":{"start":{"line":13,"column":8},"end":{"line":13,"column":22}},"10":{"start":{"line":16,"column":0},"end":{"line":16,"column":32}}},"fnMap":{"0":{"name":"injectable","decl":{"start":{"line":6,"column":9},"end":{"line":6,"column":19}},"loc":{"start":{"line":6,"column":22},"end":{"line":15,"column":1}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":7,"column":11},"end":{"line":7,"column":12}},"loc":{"start":{"line":7,"column":29},"end":{"line":14,"column":5}},"line":7}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":8},"end":{"line":10,"column":9}},"type":"if","locations":[{"start":{"line":8,"column":8},"end":{"line":10,"column":9}},{"start":{"line":8,"column":8},"end":{"line":10,"column":9}}],"line":8},"1":{"loc":{"start":{"line":11,"column":20},"end":{"line":11,"column":86}},"type":"binary-expr","locations":[{"start":{"line":11,"column":20},"end":{"line":11,"column":80}},{"start":{"line":11,"column":84},"end":{"line":11,"column":86}}],"line":11}},"s":{"0":1,"1":1,"2":1,"3":1,"4":289,"5":289,"6":1,"7":288,"8":288,"9":288,"10":1},"f":{"0":289,"1":289},"b":{"0":[1,288],"1":[288,146]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/injectable.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/injectable.ts"],"names":[],"mappings":";;;AAAA,qDAAuD;AACvD,yDAA2D;AAE3D,SAAS,UAAU;IACjB,OAAO,UAAS,MAAW;QAEzB,IAAI,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE;YAC5D,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,+BAA+B,CAAC,CAAC;SAC9D;QAED,IAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,kBAAkB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QACjF,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAEhE,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAEQ,gCAAU","sourcesContent":["import * as ERRORS_MSGS from \"../constants/error_msgs\";\nimport * as METADATA_KEY from \"../constants/metadata_keys\";\n\nfunction injectable() {\n return function(target: any) {\n\n if (Reflect.hasOwnMetadata(METADATA_KEY.PARAM_TYPES, target)) {\n throw new Error(ERRORS_MSGS.DUPLICATED_INJECTABLE_DECORATOR);\n }\n\n const types = Reflect.getMetadata(METADATA_KEY.DESIGN_PARAM_TYPES, target) || [];\n Reflect.defineMetadata(METADATA_KEY.PARAM_TYPES, types, target);\n\n return target;\n };\n}\n\nexport { injectable };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"fa584855767f4e2c73c8b86b0bd16b5b6d9009f1","contentHash":"f1f5d4edadb43937d7511c086564e3bb61a409df1cb976cc6ad7551d9ff36bab"},"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/tagged.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/tagged.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":24}},"2":{"start":{"line":4,"column":17},"end":{"line":4,"column":48}},"3":{"start":{"line":5,"column":24},"end":{"line":5,"column":52}},"4":{"start":{"line":7,"column":4},"end":{"line":15,"column":6}},"5":{"start":{"line":8,"column":23},"end":{"line":8,"column":74}},"6":{"start":{"line":9,"column":8},"end":{"line":14,"column":9}},"7":{"start":{"line":10,"column":12},"end":{"line":10,"column":79}},"8":{"start":{"line":13,"column":12},"end":{"line":13,"column":71}},"9":{"start":{"line":17,"column":0},"end":{"line":17,"column":24}}},"fnMap":{"0":{"name":"tagged","decl":{"start":{"line":6,"column":9},"end":{"line":6,"column":15}},"loc":{"start":{"line":6,"column":44},"end":{"line":16,"column":1}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":7,"column":11},"end":{"line":7,"column":12}},"loc":{"start":{"line":7,"column":47},"end":{"line":15,"column":5}},"line":7}},"branchMap":{"0":{"loc":{"start":{"line":9,"column":8},"end":{"line":14,"column":9}},"type":"if","locations":[{"start":{"line":9,"column":8},"end":{"line":14,"column":9}},{"start":{"line":9,"column":8},"end":{"line":14,"column":9}}],"line":9}},"s":{"0":1,"1":1,"2":1,"3":1,"4":25,"5":25,"6":25,"7":18,"8":7,"9":1},"f":{"0":25,"1":25},"b":{"0":[18,7]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/tagged.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/tagged.ts"],"names":[],"mappings":";;;AAAA,iDAAgD;AAChD,qDAA8D;AAG9D,SAAS,MAAM,CAAC,WAAqC,EAAE,aAAkB;IACrE,OAAO,UAAS,MAAW,EAAE,SAAiB,EAAE,KAAc;QAC1D,IAAM,QAAQ,GAAG,IAAI,mBAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,8BAAY,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;SACpD;aAAM;YACH,6BAAW,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;SAC5C;IACL,CAAC,CAAC;AACN,CAAC;AAEQ,wBAAM","sourcesContent":["import { Metadata } from \"../planning/metadata\";\nimport { tagParameter, tagProperty } from \"./decorator_utils\";\n\n// Used to add custom metadata which is used to resolve metadata-based contextual bindings.\nfunction tagged(metadataKey: string | number | symbol, metadataValue: any) {\n return function(target: any, targetKey: string, index?: number) {\n const metadata = new Metadata(metadataKey, metadataValue);\n if (typeof index === \"number\") {\n tagParameter(target, targetKey, index, metadata);\n } else {\n tagProperty(target, targetKey, metadata);\n }\n };\n}\n\nexport { tagged };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"b5c7bd192364e2e140bdfd2a0211a9b5a098ff7f","contentHash":"3ce05c9c2f34b1dca85c023a5d2e33d9f52e4bb234ed0cc8dc6b24516f1678a4"},"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/named.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/named.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":23}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":56}},"3":{"start":{"line":5,"column":17},"end":{"line":5,"column":48}},"4":{"start":{"line":6,"column":24},"end":{"line":6,"column":52}},"5":{"start":{"line":8,"column":4},"end":{"line":16,"column":6}},"6":{"start":{"line":9,"column":23},"end":{"line":9,"column":76}},"7":{"start":{"line":10,"column":8},"end":{"line":15,"column":9}},"8":{"start":{"line":11,"column":12},"end":{"line":11,"column":79}},"9":{"start":{"line":14,"column":12},"end":{"line":14,"column":71}},"10":{"start":{"line":18,"column":0},"end":{"line":18,"column":22}}},"fnMap":{"0":{"name":"named","decl":{"start":{"line":7,"column":9},"end":{"line":7,"column":14}},"loc":{"start":{"line":7,"column":21},"end":{"line":17,"column":1}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":11},"end":{"line":8,"column":12}},"loc":{"start":{"line":8,"column":47},"end":{"line":16,"column":5}},"line":8}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":8},"end":{"line":15,"column":9}},"type":"if","locations":[{"start":{"line":10,"column":8},"end":{"line":15,"column":9}},{"start":{"line":10,"column":8},"end":{"line":15,"column":9}}],"line":10}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":25,"6":25,"7":25,"8":21,"9":4,"10":1},"f":{"0":25,"1":25},"b":{"0":[21,4]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/named.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/named.ts"],"names":[],"mappings":";;;AAAA,yDAA2D;AAC3D,iDAAgD;AAChD,qDAA8D;AAG9D,SAAS,KAAK,CAAC,IAA8B;IACzC,OAAO,UAAS,MAAW,EAAE,SAAiB,EAAE,KAAc;QAC1D,IAAM,QAAQ,GAAG,IAAI,mBAAQ,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC5D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,8BAAY,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;SACpD;aAAM;YACH,6BAAW,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;SAC5C;IACL,CAAC,CAAC;AACN,CAAC;AAEQ,sBAAK","sourcesContent":["import * as METADATA_KEY from \"../constants/metadata_keys\";\r\nimport { Metadata } from \"../planning/metadata\";\r\nimport { tagParameter, tagProperty } from \"./decorator_utils\";\r\n\r\n// Used to add named metadata which is used to resolve name-based contextual bindings.\r\nfunction named(name: string | number | symbol) {\r\n return function(target: any, targetKey: string, index?: number) {\r\n const metadata = new Metadata(METADATA_KEY.NAMED_TAG, name);\r\n if (typeof index === \"number\") {\r\n tagParameter(target, targetKey, index, metadata);\r\n } else {\r\n tagProperty(target, targetKey, metadata);\r\n }\r\n };\r\n}\r\n\r\nexport { named };\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"9ca90ebaa41f2c6c67ab1ba74f5f7d628d250344","contentHash":"448ab5a6f8ca59d9a4b7a5b74b72d51cae8791984a00d91de6a1a4cf8880f315"},"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/optional.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/optional.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":26}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":56}},"3":{"start":{"line":5,"column":17},"end":{"line":5,"column":48}},"4":{"start":{"line":6,"column":24},"end":{"line":6,"column":52}},"5":{"start":{"line":8,"column":4},"end":{"line":16,"column":6}},"6":{"start":{"line":9,"column":23},"end":{"line":9,"column":79}},"7":{"start":{"line":10,"column":8},"end":{"line":15,"column":9}},"8":{"start":{"line":11,"column":12},"end":{"line":11,"column":79}},"9":{"start":{"line":14,"column":12},"end":{"line":14,"column":71}},"10":{"start":{"line":18,"column":0},"end":{"line":18,"column":28}}},"fnMap":{"0":{"name":"optional","decl":{"start":{"line":7,"column":9},"end":{"line":7,"column":17}},"loc":{"start":{"line":7,"column":20},"end":{"line":17,"column":1}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":11},"end":{"line":8,"column":12}},"loc":{"start":{"line":8,"column":47},"end":{"line":16,"column":5}},"line":8}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":8},"end":{"line":15,"column":9}},"type":"if","locations":[{"start":{"line":10,"column":8},"end":{"line":15,"column":9}},{"start":{"line":10,"column":8},"end":{"line":15,"column":9}}],"line":10}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":6,"6":6,"7":6,"8":5,"9":1,"10":1},"f":{"0":6,"1":6},"b":{"0":[5,1]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/optional.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/optional.ts"],"names":[],"mappings":";;;AAAA,yDAA2D;AAC3D,iDAAgD;AAChD,qDAA8D;AAE9D,SAAS,QAAQ;IACb,OAAO,UAAS,MAAW,EAAE,SAAiB,EAAE,KAAc;QAE1D,IAAM,QAAQ,GAAG,IAAI,mBAAQ,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAE/D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,8BAAY,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;SACpD;aAAM;YACH,6BAAW,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;SAC5C;IAEL,CAAC,CAAC;AACN,CAAC;AAEQ,4BAAQ","sourcesContent":["import * as METADATA_KEY from \"../constants/metadata_keys\";\nimport { Metadata } from \"../planning/metadata\";\nimport { tagParameter, tagProperty } from \"./decorator_utils\";\n\nfunction optional() {\n return function(target: any, targetKey: string, index?: number) {\n\n const metadata = new Metadata(METADATA_KEY.OPTIONAL_TAG, true);\n\n if (typeof index === \"number\") {\n tagParameter(target, targetKey, index, metadata);\n } else {\n tagProperty(target, targetKey, metadata);\n }\n\n };\n}\n\nexport { optional };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"f7ebeea657e511af63ee83d72bd30088be02f181","contentHash":"e7b055e6ee9559fe66c428884926aeaa51d042f6daa9feda3a79b10b5fa2e727"},"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/unmanaged.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/unmanaged.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":27}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":56}},"3":{"start":{"line":5,"column":17},"end":{"line":5,"column":48}},"4":{"start":{"line":6,"column":24},"end":{"line":6,"column":52}},"5":{"start":{"line":8,"column":4},"end":{"line":11,"column":6}},"6":{"start":{"line":9,"column":23},"end":{"line":9,"column":80}},"7":{"start":{"line":10,"column":8},"end":{"line":10,"column":75}},"8":{"start":{"line":13,"column":0},"end":{"line":13,"column":30}}},"fnMap":{"0":{"name":"unmanaged","decl":{"start":{"line":7,"column":9},"end":{"line":7,"column":18}},"loc":{"start":{"line":7,"column":21},"end":{"line":12,"column":1}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":11},"end":{"line":8,"column":12}},"loc":{"start":{"line":8,"column":47},"end":{"line":11,"column":5}},"line":8}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":6,"6":6,"7":6,"8":1},"f":{"0":6,"1":6},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/unmanaged.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/unmanaged.ts"],"names":[],"mappings":";;;AAAA,yDAA2D;AAC3D,iDAAgD;AAChD,qDAAiD;AAEjD,SAAS,SAAS;IACd,OAAO,UAAS,MAAW,EAAE,SAAiB,EAAE,KAAa;QACzD,IAAM,QAAQ,GAAG,IAAI,mBAAQ,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAChE,8BAAY,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC,CAAC;AACN,CAAC;AAEQ,8BAAS","sourcesContent":["import * as METADATA_KEY from \"../constants/metadata_keys\";\nimport { Metadata } from \"../planning/metadata\";\nimport { tagParameter } from \"./decorator_utils\";\n\nfunction unmanaged() {\n return function(target: any, targetKey: string, index: number) {\n const metadata = new Metadata(METADATA_KEY.UNMANAGED_TAG, true);\n tagParameter(target, targetKey, index, metadata);\n };\n}\n\nexport { unmanaged };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"c47f8ff01ff2897c3ae7c5a64b38ad6df1c970c9","contentHash":"886286c3d426a145a8e4036251a494b68591756074c0fe58b71f3b8ddd1b9391"},"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/multi_inject.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/multi_inject.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":29}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":56}},"3":{"start":{"line":5,"column":17},"end":{"line":5,"column":48}},"4":{"start":{"line":6,"column":24},"end":{"line":6,"column":52}},"5":{"start":{"line":8,"column":4},"end":{"line":16,"column":6}},"6":{"start":{"line":9,"column":23},"end":{"line":9,"column":96}},"7":{"start":{"line":10,"column":8},"end":{"line":15,"column":9}},"8":{"start":{"line":11,"column":12},"end":{"line":11,"column":79}},"9":{"start":{"line":14,"column":12},"end":{"line":14,"column":71}},"10":{"start":{"line":18,"column":0},"end":{"line":18,"column":34}}},"fnMap":{"0":{"name":"multiInject","decl":{"start":{"line":7,"column":9},"end":{"line":7,"column":20}},"loc":{"start":{"line":7,"column":40},"end":{"line":17,"column":1}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":11},"end":{"line":8,"column":12}},"loc":{"start":{"line":8,"column":47},"end":{"line":16,"column":5}},"line":8}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":8},"end":{"line":15,"column":9}},"type":"if","locations":[{"start":{"line":10,"column":8},"end":{"line":15,"column":9}},{"start":{"line":10,"column":8},"end":{"line":15,"column":9}}],"line":10}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":10,"6":10,"7":10,"8":9,"9":1,"10":1},"f":{"0":10,"1":10},"b":{"0":[9,1]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/multi_inject.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/multi_inject.ts"],"names":[],"mappings":";;;AAAA,yDAA2D;AAE3D,iDAAgD;AAChD,qDAA8D;AAE9D,SAAS,WAAW,CAAC,iBAAoD;IACvE,OAAO,UAAS,MAAW,EAAE,SAAiB,EAAE,KAAc;QAE5D,IAAM,QAAQ,GAAG,IAAI,mBAAQ,CAAC,YAAY,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;QAEhF,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,8BAAY,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;SAClD;aAAM;YACL,6BAAW,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;SAC1C;IAEH,CAAC,CAAC;AACJ,CAAC;AAEQ,kCAAW","sourcesContent":["import * as METADATA_KEY from \"../constants/metadata_keys\";\nimport { interfaces } from \"../interfaces/interfaces\";\nimport { Metadata } from \"../planning/metadata\";\nimport { tagParameter, tagProperty } from \"./decorator_utils\";\n\nfunction multiInject(serviceIdentifier: interfaces.ServiceIdentifier<any>) {\n return function(target: any, targetKey: string, index?: number) {\n\n const metadata = new Metadata(METADATA_KEY.MULTI_INJECT_TAG, serviceIdentifier);\n\n if (typeof index === \"number\") {\n tagParameter(target, targetKey, index, metadata);\n } else {\n tagProperty(target, targetKey, metadata);\n }\n\n };\n}\n\nexport { multiInject };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"10837eff6ffd52a66ce2b7019239f48315235cd8","contentHash":"e1c1c55c5705633fb1672fbe7b4a312573f8c1e1fa362aa1aa1bf0115cb13e51"},"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/target_name.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/target_name.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":28}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":56}},"3":{"start":{"line":5,"column":17},"end":{"line":5,"column":48}},"4":{"start":{"line":6,"column":24},"end":{"line":6,"column":52}},"5":{"start":{"line":8,"column":4},"end":{"line":11,"column":6}},"6":{"start":{"line":9,"column":23},"end":{"line":9,"column":75}},"7":{"start":{"line":10,"column":8},"end":{"line":10,"column":75}},"8":{"start":{"line":13,"column":0},"end":{"line":13,"column":32}}},"fnMap":{"0":{"name":"targetName","decl":{"start":{"line":7,"column":9},"end":{"line":7,"column":19}},"loc":{"start":{"line":7,"column":26},"end":{"line":12,"column":1}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":11},"end":{"line":8,"column":12}},"loc":{"start":{"line":8,"column":47},"end":{"line":11,"column":5}},"line":8}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":55,"6":55,"7":55,"8":1},"f":{"0":55,"1":55},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/target_name.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/target_name.ts"],"names":[],"mappings":";;;AAAA,yDAA2D;AAC3D,iDAAgD;AAChD,qDAAiD;AAEjD,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,UAAS,MAAW,EAAE,SAAiB,EAAE,KAAa;QAC3D,IAAM,QAAQ,GAAG,IAAI,mBAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC3D,8BAAY,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC,CAAC;AACJ,CAAC;AAEQ,gCAAU","sourcesContent":["import * as METADATA_KEY from \"../constants/metadata_keys\";\nimport { Metadata } from \"../planning/metadata\";\nimport { tagParameter } from \"./decorator_utils\";\n\nfunction targetName(name: string) {\n return function(target: any, targetKey: string, index: number) {\n const metadata = new Metadata(METADATA_KEY.NAME_TAG, name);\n tagParameter(target, targetKey, index, metadata);\n };\n}\n\nexport { targetName };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"027e6c4d6500bf7eb8549076c5e3ef79de0d2fc8","contentHash":"8a64575ea0f62cabe1148df43d8f85fe8799a04461ca5a29c4958f371898f0b1"},"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/post_construct.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/post_construct.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":31}},"2":{"start":{"line":4,"column":18},"end":{"line":4,"column":52}},"3":{"start":{"line":5,"column":19},"end":{"line":5,"column":56}},"4":{"start":{"line":6,"column":17},"end":{"line":6,"column":48}},"5":{"start":{"line":8,"column":4},"end":{"line":14,"column":6}},"6":{"start":{"line":9,"column":23},"end":{"line":9,"column":88}},"7":{"start":{"line":10,"column":8},"end":{"line":12,"column":9}},"8":{"start":{"line":11,"column":12},"end":{"line":11,"column":73}},"9":{"start":{"line":13,"column":8},"end":{"line":13,"column":90}},"10":{"start":{"line":16,"column":0},"end":{"line":16,"column":38}}},"fnMap":{"0":{"name":"postConstruct","decl":{"start":{"line":7,"column":9},"end":{"line":7,"column":22}},"loc":{"start":{"line":7,"column":25},"end":{"line":15,"column":1}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":11},"end":{"line":8,"column":12}},"loc":{"start":{"line":8,"column":54},"end":{"line":14,"column":5}},"line":8}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":8},"end":{"line":12,"column":9}},"type":"if","locations":[{"start":{"line":10,"column":8},"end":{"line":12,"column":9}},{"start":{"line":10,"column":8},"end":{"line":12,"column":9}}],"line":10}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":9,"6":9,"7":9,"8":1,"9":8,"10":1},"f":{"0":9,"1":9},"b":{"0":[1,8]},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/post_construct.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/annotation/post_construct.ts"],"names":[],"mappings":";;;AAAA,qDAAuD;AACvD,yDAA2D;AAC3D,iDAAgD;AAEhD,SAAS,aAAa;IAClB,OAAO,UAAU,MAAW,EAAE,WAAmB,EAAE,UAA8B;QAC7E,IAAM,QAAQ,GAAG,IAAI,mBAAQ,CAAC,YAAY,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QAExE,IAAI,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE;YACzE,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,+BAA+B,CAAC,CAAC;SAChE;QACD,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,cAAc,EAAE,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IACtF,CAAC,CAAC;AACN,CAAC;AAEQ,sCAAa","sourcesContent":["import * as ERRORS_MSGS from \"../constants/error_msgs\";\nimport * as METADATA_KEY from \"../constants/metadata_keys\";\nimport { Metadata } from \"../planning/metadata\";\n\nfunction postConstruct() {\n return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n const metadata = new Metadata(METADATA_KEY.POST_CONSTRUCT, propertyKey);\n\n if (Reflect.hasOwnMetadata(METADATA_KEY.POST_CONSTRUCT, target.constructor)) {\n throw new Error(ERRORS_MSGS.MULTIPLE_POST_CONSTRUCT_METHODS);\n }\n Reflect.defineMetadata(METADATA_KEY.POST_CONSTRUCT, metadata, target.constructor);\n };\n}\n\nexport { postConstruct };\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"732395571241e81d93fb7fa8a7207c525e072781","contentHash":"be0b471a3c065b6f9aa70cca94ce5457b94b3a7dfdd8ebcda8c98dc84d64d679"},"/Users/dan/jsProjects/inversify/InversifyJS/src/utils/binding_utils.ts":{"path":"/Users/dan/jsProjects/inversify/InversifyJS/src/utils/binding_utils.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":36}},"2":{"start":{"line":4,"column":25},"end":{"line":14,"column":1}},"3":{"start":{"line":5,"column":4},"end":{"line":13,"column":6}},"4":{"start":{"line":6,"column":8},"end":{"line":12,"column":10}},"5":{"start":{"line":7,"column":24},"end":{"line":7,"column":26}},"6":{"start":{"line":8,"column":12},"end":{"line":10,"column":13}},"7":{"start":{"line":8,"column":26},"end":{"line":8,"column":27}},"8":{"start":{"line":9,"column":16},"end":{"line":9,"column":42}},"9":{"start":{"line":11,"column":12},"end":{"line":11,"column":96}},"10":{"start":{"line":11,"column":48},"end":{"line":11,"column":92}},"11":{"start":{"line":15,"column":0},"end":{"line":15,"column":48}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":25},"end":{"line":4,"column":26}},"loc":{"start":{"line":4,"column":46},"end":{"line":14,"column":1}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":5,"column":11},"end":{"line":5,"column":12}},"loc":{"start":{"line":5,"column":30},"end":{"line":13,"column":5}},"line":5},"2":{"name":"(anonymous_2)","decl":{"start":{"line":6,"column":15},"end":{"line":6,"column":16}},"loc":{"start":{"line":6,"column":27},"end":{"line":12,"column":9}},"line":6},"3":{"name":"(anonymous_3)","decl":{"start":{"line":11,"column":33},"end":{"line":11,"column":34}},"loc":{"start":{"line":11,"column":46},"end":{"line":11,"column":94}},"line":11}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":2,"9":1,"10":2,"11":1},"f":{"0":1,"1":1,"2":1,"3":2},"b":{},"inputSourceMap":{"version":3,"file":"/Users/dan/jsProjects/inversify/InversifyJS/src/utils/binding_utils.ts","sources":["/Users/dan/jsProjects/inversify/InversifyJS/src/utils/binding_utils.ts"],"names":[],"mappings":";;;AAEO,IAAM,kBAAkB,GAAG,UAAC,SAA+B;IAC9D,OAAA,UAAC,OAA0C;QACvC,OAAA;YAAC,eAA6C;iBAA7C,UAA6C,EAA7C,qBAA6C,EAA7C,IAA6C;gBAA7C,0BAA6C;;YAC1C,OAAA,KAAK,CAAC,OAAO,CAAC,UAAC,CAAC,IAAK,OAAA,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAApC,CAAoC,CAAC;QAA1D,CAA0D;IAD9D,CAC8D;AAFlE,CAEkE,CAAC;AAH1D,QAAA,kBAAkB,sBAGwC","sourcesContent":["import { interfaces } from \"../inversify\";\n\nexport const multiBindToService = (container: interfaces.Container) =>\n (service: interfaces.ServiceIdentifier<any>) =>\n (...types: interfaces.ServiceIdentifier<any>[]) =>\n types.forEach((t) => container.bind(t).toService(service));\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"dcb1520025563bed8ae0fa713be0cbf3716b6210","contentHash":"f84633982420f9af76bb6c91ebdf0c315a4e5a80014ad5c23eb2dcc24f64a6ae"}}
|