ng-mocks 11.2.7 → 11.4.0
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/CHANGELOG.md +35 -0
- package/README.md +41 -3174
- package/dist/lib/common/core.helpers.d.ts +2 -2
- package/dist/lib/common/core.helpers.js +55 -27
- package/dist/lib/common/{core.reflect.body.d.ts → core.reflect.body-catch.d.ts} +0 -0
- package/dist/lib/common/core.reflect.body-catch.js +12 -0
- package/dist/lib/common/core.reflect.body-global.d.ts +3 -0
- package/dist/lib/common/core.reflect.body-global.js +11 -0
- package/dist/lib/common/core.reflect.directive-resolve.js +6 -4
- package/dist/lib/common/core.reflect.jit.d.ts +3 -0
- package/dist/lib/common/core.reflect.jit.js +11 -0
- package/dist/lib/common/core.reflect.module-resolve.js +6 -4
- package/dist/lib/common/core.reflect.pipe-resolve.js +6 -4
- package/dist/lib/common/core.tokens.d.ts +2 -2
- package/dist/lib/common/core.tokens.js +1 -1
- package/dist/lib/common/decorate.inputs.js +2 -2
- package/dist/lib/common/decorate.mock.d.ts +3 -0
- package/dist/lib/common/decorate.mock.js +13 -0
- package/dist/lib/common/decorate.outputs.js +2 -2
- package/dist/lib/common/decorate.queries.js +2 -2
- package/dist/lib/common/func.is-mock-control-value-accessor.js +2 -3
- package/dist/lib/common/func.is-mock-validator.js +2 -3
- package/dist/lib/common/func.is-ng-def.d.ts +7 -1
- package/dist/lib/common/func.is-ng-def.js +5 -1
- package/dist/lib/common/func.is-ng-injection-token.js +2 -3
- package/dist/lib/common/func.is-ng-module-def-with-providers.js +2 -3
- package/dist/lib/common/func.is-ng-type.d.ts +2 -2
- package/dist/lib/common/func.is-ng-type.js +6 -5
- package/dist/lib/common/mock-control-value-accessor.d.ts +3 -3
- package/dist/lib/common/mock-control-value-accessor.js +1 -1
- package/dist/lib/common/mock.js +31 -26
- package/dist/lib/common/ng-mocks-universe.d.ts +5 -0
- package/dist/lib/common/ng-mocks-universe.js +65 -7
- package/dist/lib/mock/clone-providers.js +23 -6
- package/dist/lib/mock/decorate-declaration.js +6 -6
- package/dist/lib/mock/to-existing-provider.d.ts +1 -1
- package/dist/lib/mock/to-factory-provider.d.ts +1 -1
- package/dist/lib/mock-builder/mock-builder-stash.js +3 -1
- package/dist/lib/mock-builder/mock-builder.js +2 -2
- package/dist/lib/mock-builder/mock-builder.performance.js +2 -2
- package/dist/lib/mock-builder/mock-builder.promise.js +4 -1
- package/dist/lib/mock-builder/promise/create-ng-mocks-overrides-token.js +2 -2
- package/dist/lib/mock-builder/promise/create-ng-mocks-touches-token.js +2 -2
- package/dist/lib/mock-builder/promise/get-override-meta.js +4 -4
- package/dist/lib/mock-builder/promise/get-root-provider-parameters.js +3 -3
- package/dist/lib/mock-builder/promise/init-module.js +2 -2
- package/dist/lib/mock-builder/promise/init-ng-modules.js +2 -2
- package/dist/lib/mock-component/mock-component.d.ts +1 -1
- package/dist/lib/mock-component/mock-component.js +9 -17
- package/dist/lib/mock-directive/mock-directive.d.ts +1 -1
- package/dist/lib/mock-directive/mock-directive.js +10 -23
- package/dist/lib/mock-helper/func.global-prepare.d.ts +2 -0
- package/dist/lib/mock-helper/func.global-prepare.js +9 -0
- package/dist/lib/mock-helper/mock-helper.auto-spy.js +2 -2
- package/dist/lib/mock-helper/mock-helper.d.ts +38 -0
- package/dist/lib/mock-helper/mock-helper.global-exclude.d.ts +4 -0
- package/dist/lib/mock-helper/mock-helper.global-exclude.js +9 -0
- package/dist/lib/mock-helper/mock-helper.global-keep.d.ts +4 -0
- package/dist/lib/mock-helper/mock-helper.global-keep.js +9 -0
- package/dist/lib/mock-helper/mock-helper.global-mock.d.ts +4 -0
- package/dist/lib/mock-helper/mock-helper.global-mock.js +9 -0
- package/dist/lib/mock-helper/mock-helper.global-replace.d.ts +3 -0
- package/dist/lib/mock-helper/mock-helper.global-replace.js +26 -0
- package/dist/lib/mock-helper/mock-helper.global-wipe.d.ts +4 -0
- package/dist/lib/mock-helper/mock-helper.global-wipe.js +11 -0
- package/dist/lib/mock-helper/mock-helper.guts.js +100 -37
- package/dist/lib/mock-helper/mock-helper.js +15 -1
- package/dist/lib/mock-helper/mock-helper.reset.js +2 -1
- package/dist/lib/mock-helper/mock-helper.stub-member.d.ts +2 -0
- package/dist/lib/mock-helper/mock-helper.stub-member.js +25 -0
- package/dist/lib/mock-helper/mock-helper.stub.js +2 -1
- package/dist/lib/mock-helper/mock-helper.throw-on-console.d.ts +2 -0
- package/dist/lib/mock-helper/mock-helper.throw-on-console.js +25 -0
- package/dist/lib/mock-instance/mock-instance.js +11 -7
- package/dist/lib/mock-module/mock-module.d.ts +2 -2
- package/dist/lib/mock-module/mock-module.js +7 -9
- package/dist/lib/mock-module/mock-ng-def.js +29 -12
- package/dist/lib/mock-pipe/mock-pipe.d.ts +2 -2
- package/dist/lib/mock-pipe/mock-pipe.js +18 -44
- package/dist/lib/mock-provider/mock-provider.d.ts +3 -3
- package/dist/lib/mock-provider/mock-provider.js +1 -1
- package/dist/lib/mock-render/func.generate-template.d.ts +2 -0
- package/dist/lib/mock-render/func.generate-template.js +87 -0
- package/dist/lib/mock-render/func.install-prop-reader.d.ts +2 -0
- package/dist/lib/mock-render/func.install-prop-reader.js +80 -0
- package/dist/lib/mock-render/mock-render.d.ts +16 -2
- package/dist/lib/mock-render/mock-render.js +111 -132
- package/dist/lib/mock-service/helper.resolve-provider.js +9 -12
- package/dist/lib/mock-service/helper.use-factory.js +3 -3
- package/dist/lib/mock-service/mock-provider.js +2 -1
- package/dist/lib/mock-service/mock-service.d.ts +4 -4
- package/dist/lib/mock-service/mock-service.js +1 -1
- package/examples/MockBuilder/test.deep.spec.ts +1 -1
- package/examples/MockBuilder/test.ng-mocks.spec.ts +1 -1
- package/examples/MockForms/test.spec.ts +2 -2
- package/examples/MockInstance/test.spec.ts +1 -1
- package/examples/MockObservable/test.spec.ts +7 -4
- package/examples/MockPipe/test.spec.ts +1 -1
- package/examples/MockProvider/test.spec.ts +5 -6
- package/examples/MockReactiveForms/test.spec.ts +2 -2
- package/examples/MockViewChild/test.spec.ts +3 -3
- package/examples/TestAttributeDirective/test.spec.ts +1 -1
- package/examples/TestHttpInterceptor/test.spec.ts +10 -4
- package/examples/TestHttpRequest/test.spec.ts +6 -4
- package/examples/TestLifecycleHooks/test.spec.ts +6 -2
- package/examples/TestLifecycleHooks/test.string.spec.ts +3 -2
- package/examples/TestLifecycleHooks/test.type-without-params.spec.ts +3 -2
- package/examples/TestMultiToken/test.spec.ts +3 -3
- package/examples/TestProvider/test.spec.ts +2 -3
- package/examples/TestProviderWithDependencies/test.spec.ts +7 -3
- package/examples/TestProviderWithUseClass/test.spec.ts +9 -3
- package/examples/TestProviderWithUseExisting/test.spec.ts +9 -3
- package/examples/TestProviderWithUseFactory/test.spec.ts +2 -3
- package/examples/TestProviderWithUseValue/test.spec.ts +4 -4
- package/examples/TestRoute/test.spec.ts +7 -7
- package/examples/TestRoutingGuard/test.spec.ts +8 -6
- package/examples/TestRoutingResolver/test.spec.ts +6 -4
- package/examples/TestToken/test.spec.ts +7 -6
- package/examples/main/test.spec.ts +2 -2
- package/examples/ngMocksFaster/test.spec.ts +2 -2
- package/package.json +2 -3
- package/dist/lib/common/core.reflect.body.js +0 -12
- package/dist/lib/common/core.reflect.d.ts +0 -6
- package/dist/lib/common/core.reflect.js +0 -10
- package/dist/lib/common/mock-of.d.ts +0 -3
- package/dist/lib/common/mock-of.js +0 -23
|
@@ -27,6 +27,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
27
27
|
exports.MockDirective = exports.MockDirectives = void 0;
|
|
28
28
|
var core_1 = require("@angular/core");
|
|
29
29
|
var testing_1 = require("@angular/core/testing");
|
|
30
|
+
var core_helpers_1 = require("../common/core.helpers");
|
|
30
31
|
var core_reflect_directive_resolve_1 = require("../common/core.reflect.directive-resolve");
|
|
31
32
|
var func_get_mocked_ng_def_of_1 = require("../common/func.get-mocked-ng-def-of");
|
|
32
33
|
var mock_control_value_accessor_1 = require("../common/mock-control-value-accessor");
|
|
@@ -53,8 +54,8 @@ var DirectiveMockBase = /** @class */ (function (_super) {
|
|
|
53
54
|
}
|
|
54
55
|
};
|
|
55
56
|
DirectiveMockBase.prototype.__ngMocksInstall = function (element, template, viewContainer) {
|
|
56
|
-
// Basically any directive on ng-template is treated as structural, even it
|
|
57
|
-
// In our case we
|
|
57
|
+
// Basically any directive on ng-template is treated as structural, even it does not control render process.
|
|
58
|
+
// In our case we do not if we should render it or not and due to this we do nothing.
|
|
58
59
|
this.__element = element;
|
|
59
60
|
this.__template = template;
|
|
60
61
|
this.__viewContainer = viewContainer;
|
|
@@ -69,23 +70,9 @@ var DirectiveMockBase = /** @class */ (function (_super) {
|
|
|
69
70
|
};
|
|
70
71
|
return DirectiveMockBase;
|
|
71
72
|
}(mock_control_value_accessor_1.LegacyControlValueAccessor));
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
// istanbul ignore next
|
|
76
|
-
function DirectiveMock(injector, element, template, viewContainer) {
|
|
77
|
-
return _super.call(this, injector, element, template, viewContainer) || this;
|
|
78
|
-
}
|
|
79
|
-
return DirectiveMock;
|
|
80
|
-
}(DirectiveMockBase));
|
|
81
|
-
DirectiveMock.parameters = [
|
|
82
|
-
core_1.Injector,
|
|
83
|
-
[core_1.ElementRef, new core_1.Optional()],
|
|
84
|
-
[core_1.TemplateRef, new core_1.Optional()],
|
|
85
|
-
[core_1.ViewContainerRef, new core_1.Optional()],
|
|
86
|
-
];
|
|
87
|
-
return DirectiveMock;
|
|
88
|
-
};
|
|
73
|
+
Object.defineProperty(DirectiveMockBase, 'parameters', {
|
|
74
|
+
value: [[core_1.Injector], [core_1.ElementRef, new core_1.Optional()], [core_1.TemplateRef, new core_1.Optional()], [core_1.ViewContainerRef, new core_1.Optional()]],
|
|
75
|
+
});
|
|
89
76
|
var decorateClass = function (directive, mock) {
|
|
90
77
|
var meta = core_reflect_directive_resolve_1.default(directive);
|
|
91
78
|
var selector = meta.selector, exportAs = meta.exportAs, inputs = meta.inputs, outputs = meta.outputs, queries = meta.queries, providers = meta.providers;
|
|
@@ -103,11 +90,11 @@ function MockDirectives() {
|
|
|
103
90
|
}
|
|
104
91
|
exports.MockDirectives = MockDirectives;
|
|
105
92
|
/**
|
|
106
|
-
* @see https://github.com/ike18t/ng-mocks#how-to-mock-
|
|
93
|
+
* @see https://github.com/ike18t/ng-mocks#how-to-mock-directives
|
|
107
94
|
*/
|
|
108
95
|
function MockDirective(directive) {
|
|
109
96
|
// We are inside of an 'it'.
|
|
110
|
-
// It
|
|
97
|
+
// It is fine to to return a mock copy or to throw an exception if it was not replaced with its mock copy in TestBed.
|
|
111
98
|
if (testing_1.getTestBed()._instantiated) {
|
|
112
99
|
try {
|
|
113
100
|
return func_get_mocked_ng_def_of_1.getMockedNgDefOf(directive, 'd');
|
|
@@ -119,7 +106,7 @@ function MockDirective(directive) {
|
|
|
119
106
|
if (ng_mocks_universe_1.default.flags.has('cacheDirective') && ng_mocks_universe_1.default.cacheDeclarations.has(directive)) {
|
|
120
107
|
return ng_mocks_universe_1.default.cacheDeclarations.get(directive);
|
|
121
108
|
}
|
|
122
|
-
var mock =
|
|
109
|
+
var mock = core_helpers_1.extendClass(DirectiveMockBase);
|
|
123
110
|
decorateClass(directive, mock);
|
|
124
111
|
// istanbul ignore else
|
|
125
112
|
if (ng_mocks_universe_1.default.flags.has('cacheDirective')) {
|
|
@@ -128,4 +115,4 @@ function MockDirective(directive) {
|
|
|
128
115
|
return mock;
|
|
129
116
|
}
|
|
130
117
|
exports.MockDirective = MockDirective;
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvbW9jay1kaXJlY3RpdmUvbW9jay1kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0NBQWlIO0FBQ2pILGlEQUFtRDtBQUVuRCx1REFBcUQ7QUFDckQsMkZBQW1GO0FBRW5GLGlGQUF1RTtBQUN2RSxxRkFBbUY7QUFDbkYsaUVBQTBEO0FBQzFELHFFQUErRDtBQUkvRDtJQUFnQyxxQ0FBMEI7SUFDeEQsdUJBQXVCO0lBQ3ZCLDJCQUNFLFFBQWtCLEVBQ2xCLE9BQW9CLEVBQ3BCLFFBQTJCLEVBQzNCLGFBQWdDO1FBSmxDLFlBTUUsa0JBQU0sUUFBUSxDQUFDLFNBRWhCO1FBREMsS0FBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsYUFBYSxDQUFDLENBQUM7O0lBQzFELENBQUM7SUFFTSxvQ0FBUSxHQUFmO1FBQ0UsSUFBTSxNQUFNLEdBQUksSUFBSSxDQUFDLGVBQXVCLENBQUMsTUFBTSxDQUFDO1FBQ3BELElBQUksTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLE1BQU0sRUFBRTtZQUNaLElBQUEsS0FDSixNQUFNLENBQUMsTUFBTSxLQUFLLElBQUk7Z0JBQ3BCLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTTtnQkFDZixDQUFDLENBQUM7b0JBQ0UsU0FBUyxFQUFFLFNBQVM7b0JBQ3BCLFNBQVMsRUFBRSxFQUFFO2lCQUNkLEVBTkMsU0FBUyxlQUFBLEVBQUUsU0FBUyxlQU1yQixDQUFDO1lBQ1AsSUFBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDOUM7SUFDSCxDQUFDO0lBRU8sNENBQWdCLEdBQXhCLFVBQXlCLE9BQW9CLEVBQUUsUUFBMkIsRUFBRSxhQUFnQztRQUMxRyw0R0FBNEc7UUFDNUcscUZBQXFGO1FBQ3BGLElBQVksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO1FBQ2pDLElBQVksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO1FBQ25DLElBQVksQ0FBQyxlQUFlLEdBQUcsYUFBYSxDQUFDO1FBQzdDLElBQVksQ0FBQyxjQUFjLEdBQUcsUUFBUSxJQUFJLGFBQWEsQ0FBQztRQUV6RCwwQ0FBMEM7UUFDekMsSUFBWSxDQUFDLFFBQVEsR0FBRyxVQUFDLFNBQWUsRUFBRSxTQUFrQztZQUMzRSxJQUFJLGFBQWEsSUFBSSxRQUFRLEVBQUU7Z0JBQzdCLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDdEIsYUFBYSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsd0JBQU8sU0FBUyxLQUFFLFNBQVMsV0FBQSxJQUFHLENBQUM7YUFDekU7UUFDSCxDQUFDLENBQUM7SUFDSixDQUFDO0lBQ0gsd0JBQUM7QUFBRCxDQUFDLEFBMUNELENBQWdDLHdEQUEwQixHQTBDekQ7QUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLGlCQUFpQixFQUFFLFlBQVksRUFBRTtJQUNyRCxLQUFLLEVBQUUsQ0FBQyxDQUFDLGVBQVEsQ0FBQyxFQUFFLENBQUMsaUJBQVUsRUFBRSxJQUFJLGVBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxrQkFBVyxFQUFFLElBQUksZUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLHVCQUFnQixFQUFFLElBQUksZUFBUSxFQUFFLENBQUMsQ0FBQztDQUNySCxDQUFDLENBQUM7QUFFSCxJQUFNLGFBQWEsR0FBRyxVQUFDLFNBQW9CLEVBQUUsSUFBZTtJQUMxRCxJQUFNLElBQUksR0FBRyx3Q0FBMkIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1QyxJQUFBLFFBQVEsR0FBb0QsSUFBSSxTQUF4RCxFQUFFLFFBQVEsR0FBMEMsSUFBSSxTQUE5QyxFQUFFLE1BQU0sR0FBa0MsSUFBSSxPQUF0QyxFQUFFLE9BQU8sR0FBeUIsSUFBSSxRQUE3QixFQUFFLE9BQU8sR0FBZ0IsSUFBSSxRQUFwQixFQUFFLFNBQVMsR0FBSyxJQUFJLFVBQVQsQ0FBVTtJQUN6RSxJQUFNLFFBQVEsR0FBRyxFQUFFLE1BQU0sUUFBQSxFQUFFLE9BQU8sU0FBQSxFQUFFLFNBQVMsV0FBQSxFQUFFLE9BQU8sU0FBQSxFQUFFLENBQUM7SUFDekQsSUFBTSxVQUFVLEdBQUcsRUFBRSxRQUFRLFVBQUEsRUFBRSxRQUFRLFVBQUEsRUFBRSxDQUFDO0lBQzFDLElBQU0sT0FBTyxHQUFHLDhCQUFtQixDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzNFLGdCQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDM0IsQ0FBQyxDQUFDO0FBRUYsU0FBZ0IsY0FBYztJQUFDLG9CQUErQjtTQUEvQixVQUErQixFQUEvQixxQkFBK0IsRUFBL0IsSUFBK0I7UUFBL0IsK0JBQStCOztJQUM1RCxPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDdkMsQ0FBQztBQUZELHdDQUVDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixhQUFhLENBQWEsU0FBMkI7SUFDbkUsNEJBQTRCO0lBQzVCLHFIQUFxSDtJQUNySCxJQUFLLG9CQUFVLEVBQVUsQ0FBQyxhQUFhLEVBQUU7UUFDdkMsSUFBSTtZQUNGLE9BQU8sNENBQWdCLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ3pDO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCw4QkFBOEI7U0FDL0I7S0FDRjtJQUNELElBQUksMkJBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLElBQUksMkJBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUU7UUFDbkcsT0FBTywyQkFBZSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUN6RDtJQUVELElBQU0sSUFBSSxHQUFHLDBCQUFXLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUM1QyxhQUFhLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBRS9CLHVCQUF1QjtJQUN2QixJQUFJLDJCQUFlLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1FBQy9DLDJCQUFlLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztLQUN4RDtJQUVELE9BQU8sSUFBVyxDQUFDO0FBQ3JCLENBQUM7QUF2QkQsc0NBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3RvciwgT25Jbml0LCBPcHRpb25hbCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldFRlc3RCZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBleHRlbmRDbGFzcyB9IGZyb20gJy4uL2NvbW1vbi9jb3JlLmhlbHBlcnMnO1xuaW1wb3J0IGNvcmVSZWZsZWN0RGlyZWN0aXZlUmVzb2x2ZSBmcm9tICcuLi9jb21tb24vY29yZS5yZWZsZWN0LmRpcmVjdGl2ZS1yZXNvbHZlJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICcuLi9jb21tb24vY29yZS50eXBlcyc7XG5pbXBvcnQgeyBnZXRNb2NrZWROZ0RlZk9mIH0gZnJvbSAnLi4vY29tbW9uL2Z1bmMuZ2V0LW1vY2tlZC1uZy1kZWYtb2YnO1xuaW1wb3J0IHsgTGVnYWN5Q29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICcuLi9jb21tb24vbW9jay1jb250cm9sLXZhbHVlLWFjY2Vzc29yJztcbmltcG9ydCBuZ01vY2tzVW5pdmVyc2UgZnJvbSAnLi4vY29tbW9uL25nLW1vY2tzLXVuaXZlcnNlJztcbmltcG9ydCBkZWNvcmF0ZURlY2xhcmF0aW9uIGZyb20gJy4uL21vY2svZGVjb3JhdGUtZGVjbGFyYXRpb24nO1xuXG5pbXBvcnQgeyBNb2NrZWREaXJlY3RpdmUgfSBmcm9tICcuL3R5cGVzJztcblxuY2xhc3MgRGlyZWN0aXZlTW9ja0Jhc2UgZXh0ZW5kcyBMZWdhY3lDb250cm9sVmFsdWVBY2Nlc3NvciBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgZWxlbWVudD86IEVsZW1lbnRSZWYsXG4gICAgdGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHZpZXdDb250YWluZXI/OiBWaWV3Q29udGFpbmVyUmVmLFxuICApIHtcbiAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgdGhpcy5fX25nTW9ja3NJbnN0YWxsKGVsZW1lbnQsIHRlbXBsYXRlLCB2aWV3Q29udGFpbmVyKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBjb25maWcgPSAodGhpcy5fX25nTW9ja3NDb25maWcgYXMgYW55KS5jb25maWc7XG4gICAgaWYgKGNvbmZpZz8ucmVuZGVyKSB7XG4gICAgICBjb25zdCB7ICRpbXBsaWNpdCwgdmFyaWFibGVzIH0gPVxuICAgICAgICBjb25maWcucmVuZGVyICE9PSB0cnVlXG4gICAgICAgICAgPyBjb25maWcucmVuZGVyXG4gICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICRpbXBsaWNpdDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICB2YXJpYWJsZXM6IHt9LFxuICAgICAgICAgICAgfTtcbiAgICAgICh0aGlzIGFzIGFueSkuX19yZW5kZXIoJGltcGxpY2l0LCB2YXJpYWJsZXMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX19uZ01vY2tzSW5zdGFsbChlbGVtZW50PzogRWxlbWVudFJlZiwgdGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+LCB2aWV3Q29udGFpbmVyPzogVmlld0NvbnRhaW5lclJlZik6IHZvaWQge1xuICAgIC8vIEJhc2ljYWxseSBhbnkgZGlyZWN0aXZlIG9uIG5nLXRlbXBsYXRlIGlzIHRyZWF0ZWQgYXMgc3RydWN0dXJhbCwgZXZlbiBpdCBkb2VzIG5vdCBjb250cm9sIHJlbmRlciBwcm9jZXNzLlxuICAgIC8vIEluIG91ciBjYXNlIHdlIGRvIG5vdCBpZiB3ZSBzaG91bGQgcmVuZGVyIGl0IG9yIG5vdCBhbmQgZHVlIHRvIHRoaXMgd2UgZG8gbm90aGluZy5cbiAgICAodGhpcyBhcyBhbnkpLl9fZWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgKHRoaXMgYXMgYW55KS5fX3RlbXBsYXRlID0gdGVtcGxhdGU7XG4gICAgKHRoaXMgYXMgYW55KS5fX3ZpZXdDb250YWluZXIgPSB2aWV3Q29udGFpbmVyO1xuICAgICh0aGlzIGFzIGFueSkuX19pc1N0cnVjdHVyYWwgPSB0ZW1wbGF0ZSAmJiB2aWV3Q29udGFpbmVyO1xuXG4gICAgLy8gUHJvdmlkaW5nIG1ldGhvZCB0byByZW5kZXIgbW9jayB2YWx1ZXMuXG4gICAgKHRoaXMgYXMgYW55KS5fX3JlbmRlciA9ICgkaW1wbGljaXQ/OiBhbnksIHZhcmlhYmxlcz86IFJlY29yZDxrZXlvZiBhbnksIGFueT4pID0+IHtcbiAgICAgIGlmICh2aWV3Q29udGFpbmVyICYmIHRlbXBsYXRlKSB7XG4gICAgICAgIHZpZXdDb250YWluZXIuY2xlYXIoKTtcbiAgICAgICAgdmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGVtcGxhdGUsIHsgLi4udmFyaWFibGVzLCAkaW1wbGljaXQgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxufVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoRGlyZWN0aXZlTW9ja0Jhc2UsICdwYXJhbWV0ZXJzJywge1xuICB2YWx1ZTogW1tJbmplY3Rvcl0sIFtFbGVtZW50UmVmLCBuZXcgT3B0aW9uYWwoKV0sIFtUZW1wbGF0ZVJlZiwgbmV3IE9wdGlvbmFsKCldLCBbVmlld0NvbnRhaW5lclJlZiwgbmV3IE9wdGlvbmFsKCldXSxcbn0pO1xuXG5jb25zdCBkZWNvcmF0ZUNsYXNzID0gKGRpcmVjdGl2ZTogVHlwZTxhbnk+LCBtb2NrOiBUeXBlPGFueT4pOiB2b2lkID0+IHtcbiAgY29uc3QgbWV0YSA9IGNvcmVSZWZsZWN0RGlyZWN0aXZlUmVzb2x2ZShkaXJlY3RpdmUpO1xuICBjb25zdCB7IHNlbGVjdG9yLCBleHBvcnRBcywgaW5wdXRzLCBvdXRwdXRzLCBxdWVyaWVzLCBwcm92aWRlcnMgfSA9IG1ldGE7XG4gIGNvbnN0IG1vY2tNZXRhID0geyBpbnB1dHMsIG91dHB1dHMsIHByb3ZpZGVycywgcXVlcmllcyB9O1xuICBjb25zdCBtb2NrUGFyYW1zID0geyBleHBvcnRBcywgc2VsZWN0b3IgfTtcbiAgY29uc3Qgb3B0aW9ucyA9IGRlY29yYXRlRGVjbGFyYXRpb24oZGlyZWN0aXZlLCBtb2NrLCBtb2NrTWV0YSwgbW9ja1BhcmFtcyk7XG4gIERpcmVjdGl2ZShvcHRpb25zKShtb2NrKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBNb2NrRGlyZWN0aXZlcyguLi5kaXJlY3RpdmVzOiBBcnJheTxUeXBlPGFueT4+KTogQXJyYXk8VHlwZTxNb2NrZWREaXJlY3RpdmU8YW55Pj4+IHtcbiAgcmV0dXJuIGRpcmVjdGl2ZXMubWFwKE1vY2tEaXJlY3RpdmUpO1xufVxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2lrZTE4dC9uZy1tb2NrcyNob3ctdG8tbW9jay1kaXJlY3RpdmVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBNb2NrRGlyZWN0aXZlPFREaXJlY3RpdmU+KGRpcmVjdGl2ZTogVHlwZTxURGlyZWN0aXZlPik6IFR5cGU8TW9ja2VkRGlyZWN0aXZlPFREaXJlY3RpdmU+PiB7XG4gIC8vIFdlIGFyZSBpbnNpZGUgb2YgYW4gJ2l0Jy5cbiAgLy8gSXQgaXMgZmluZSB0byB0byByZXR1cm4gYSBtb2NrIGNvcHkgb3IgdG8gdGhyb3cgYW4gZXhjZXB0aW9uIGlmIGl0IHdhcyBub3QgcmVwbGFjZWQgd2l0aCBpdHMgbW9jayBjb3B5IGluIFRlc3RCZWQuXG4gIGlmICgoZ2V0VGVzdEJlZCgpIGFzIGFueSkuX2luc3RhbnRpYXRlZCkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gZ2V0TW9ja2VkTmdEZWZPZihkaXJlY3RpdmUsICdkJyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIGxvb2tzIGxpa2UgYW4gaW4tdGVzdCBtb2NrLlxuICAgIH1cbiAgfVxuICBpZiAobmdNb2Nrc1VuaXZlcnNlLmZsYWdzLmhhcygnY2FjaGVEaXJlY3RpdmUnKSAmJiBuZ01vY2tzVW5pdmVyc2UuY2FjaGVEZWNsYXJhdGlvbnMuaGFzKGRpcmVjdGl2ZSkpIHtcbiAgICByZXR1cm4gbmdNb2Nrc1VuaXZlcnNlLmNhY2hlRGVjbGFyYXRpb25zLmdldChkaXJlY3RpdmUpO1xuICB9XG5cbiAgY29uc3QgbW9jayA9IGV4dGVuZENsYXNzKERpcmVjdGl2ZU1vY2tCYXNlKTtcbiAgZGVjb3JhdGVDbGFzcyhkaXJlY3RpdmUsIG1vY2spO1xuXG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBlbHNlXG4gIGlmIChuZ01vY2tzVW5pdmVyc2UuZmxhZ3MuaGFzKCdjYWNoZURpcmVjdGl2ZScpKSB7XG4gICAgbmdNb2Nrc1VuaXZlcnNlLmNhY2hlRGVjbGFyYXRpb25zLnNldChkaXJlY3RpdmUsIG1vY2spO1xuICB9XG5cbiAgcmV0dXJuIG1vY2sgYXMgYW55O1xufVxuIl19
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var ng_mocks_universe_1 = require("../common/ng-mocks-universe");
|
|
4
|
+
exports.default = (function () {
|
|
5
|
+
var _a;
|
|
6
|
+
ng_mocks_universe_1.default.cacheDeclarations.clear();
|
|
7
|
+
(_a = ng_mocks_universe_1.default.config.get('ngMocksDepsSkip')) === null || _a === void 0 ? void 0 : _a.clear();
|
|
8
|
+
});
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuYy5nbG9iYWwtcHJlcGFyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9tb2NrLWhlbHBlci9mdW5jLmdsb2JhbC1wcmVwYXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaUVBQTBEO0FBRTFELG1CQUFlOztJQUNiLDJCQUFlLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDMUMsTUFBQSwyQkFBZSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsMENBQUUsS0FBSyxHQUFHO0FBQ3pELENBQUMsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBuZ01vY2tzVW5pdmVyc2UgZnJvbSAnLi4vY29tbW9uL25nLW1vY2tzLXVuaXZlcnNlJztcblxuZXhwb3J0IGRlZmF1bHQgKCkgPT4ge1xuICBuZ01vY2tzVW5pdmVyc2UuY2FjaGVEZWNsYXJhdGlvbnMuY2xlYXIoKTtcbiAgbmdNb2Nrc1VuaXZlcnNlLmNvbmZpZy5nZXQoJ25nTW9ja3NEZXBzU2tpcCcpPy5jbGVhcigpO1xufTtcbiJdfQ==
|
|
@@ -13,7 +13,7 @@ exports.default = (function (type) {
|
|
|
13
13
|
if (action === 'jasmine') {
|
|
14
14
|
return helper_mock_service_1.registerMockFunction(function (mockName) { return jasmine.createSpy(mockName); });
|
|
15
15
|
}
|
|
16
|
-
// istanbul ignore if: because it
|
|
16
|
+
// istanbul ignore if: because it is run with jasmine
|
|
17
17
|
if (action === 'jest') {
|
|
18
18
|
return helper_mock_service_1.registerMockFunction(function (name) { return jest.fn().mockName(name); });
|
|
19
19
|
}
|
|
@@ -22,4 +22,4 @@ exports.default = (function (type) {
|
|
|
22
22
|
}
|
|
23
23
|
return helper_mock_service_1.registerMockFunction(action);
|
|
24
24
|
});
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1oZWxwZXIuYXV0by1zcHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvbW9jay1oZWxwZXIvbW9jay1oZWxwZXIuYXV0by1zcHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwyRUFBMkU7QUFLM0UsSUFBTSxLQUFLLEdBQVksRUFBRSxDQUFDO0FBRTFCLG1CQUFlLFVBQUMsSUFBVztJQUN6QixJQUFJLElBQUksS0FBSyxPQUFPLEVBQUU7UUFDcEIsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO0tBQ2I7U0FBTTtRQUNMLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDbEI7SUFDRCxJQUFNLE1BQU0sR0FBc0IsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFMUQsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1FBQ3hCLE9BQU8sMENBQW9CLENBQUMsVUFBQSxRQUFRLElBQUksT0FBQSxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUEzQixDQUEyQixDQUFDLENBQUM7S0FDdEU7SUFDRCxxREFBcUQ7SUFDckQsSUFBSSxNQUFNLEtBQUssTUFBTSxFQUFFO1FBQ3JCLE9BQU8sMENBQW9CLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUF4QixDQUF3QixDQUFDLENBQUM7S0FDL0Q7SUFDRCxJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sS0FBSyxTQUFTLElBQUksTUFBTSxLQUFLLE9BQU8sRUFBRTtRQUN6RCxPQUFPLDBDQUFvQixFQUFFLENBQUM7S0FDL0I7SUFFRCxPQUFPLDBDQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3RDLENBQUMsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlZ2lzdGVyTW9ja0Z1bmN0aW9uIH0gZnJvbSAnLi4vbW9jay1zZXJ2aWNlL2hlbHBlci5tb2NrLXNlcnZpY2UnO1xuaW1wb3J0IHsgQ3VzdG9tTW9ja0Z1bmN0aW9uIH0gZnJvbSAnLi4vbW9jay1zZXJ2aWNlL3R5cGVzJztcblxudHlwZSBwYXJhbSA9ICdqYXNtaW5lJyB8ICdqZXN0JyB8ICdkZWZhdWx0JyB8ICdyZXNldCcgfCBDdXN0b21Nb2NrRnVuY3Rpb247XG5cbmNvbnN0IGNhbGxzOiBwYXJhbVtdID0gW107XG5cbmV4cG9ydCBkZWZhdWx0ICh0eXBlOiBwYXJhbSkgPT4ge1xuICBpZiAodHlwZSA9PT0gJ3Jlc2V0Jykge1xuICAgIGNhbGxzLnBvcCgpO1xuICB9IGVsc2Uge1xuICAgIGNhbGxzLnB1c2godHlwZSk7XG4gIH1cbiAgY29uc3QgYWN0aW9uOiBwYXJhbSB8IHVuZGVmaW5lZCA9IGNhbGxzW2NhbGxzLmxlbmd0aCAtIDFdO1xuXG4gIGlmIChhY3Rpb24gPT09ICdqYXNtaW5lJykge1xuICAgIHJldHVybiByZWdpc3Rlck1vY2tGdW5jdGlvbihtb2NrTmFtZSA9PiBqYXNtaW5lLmNyZWF0ZVNweShtb2NrTmFtZSkpO1xuICB9XG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBpZjogYmVjYXVzZSBpdCBpcyBydW4gd2l0aCBqYXNtaW5lXG4gIGlmIChhY3Rpb24gPT09ICdqZXN0Jykge1xuICAgIHJldHVybiByZWdpc3Rlck1vY2tGdW5jdGlvbihuYW1lID0+IGplc3QuZm4oKS5tb2NrTmFtZShuYW1lKSk7XG4gIH1cbiAgaWYgKCFhY3Rpb24gfHwgYWN0aW9uID09PSAnZGVmYXVsdCcgfHwgYWN0aW9uID09PSAncmVzZXQnKSB7XG4gICAgcmV0dXJuIHJlZ2lzdGVyTW9ja0Z1bmN0aW9uKCk7XG4gIH1cblxuICByZXR1cm4gcmVnaXN0ZXJNb2NrRnVuY3Rpb24oYWN0aW9uKTtcbn07XG4iXX0=
|
|
@@ -116,6 +116,26 @@ export declare const ngMocks: {
|
|
|
116
116
|
* @see https://github.com/ike18t/ng-mocks#ngmocksget
|
|
117
117
|
*/
|
|
118
118
|
get<T, D>(debugNode: MockedDebugNode, directive: Type<T>, notFoundValue: D): D | T;
|
|
119
|
+
/**
|
|
120
|
+
* @see https://github.com/ike18t/ng-mocks#ngmocksglobalexclude
|
|
121
|
+
*/
|
|
122
|
+
globalExclude(source: AnyType<any> | InjectionToken<any>): void;
|
|
123
|
+
/**
|
|
124
|
+
* @see https://github.com/ike18t/ng-mocks#ngmocksglobalkeep
|
|
125
|
+
*/
|
|
126
|
+
globalKeep(source: AnyType<any> | InjectionToken<any>): void;
|
|
127
|
+
/**
|
|
128
|
+
* @see https://github.com/ike18t/ng-mocks#ngmocksglobalmock
|
|
129
|
+
*/
|
|
130
|
+
globalMock(source: AnyType<any> | InjectionToken<any>): void;
|
|
131
|
+
/**
|
|
132
|
+
* @see https://github.com/ike18t/ng-mocks#ngmocksglobalreplace
|
|
133
|
+
*/
|
|
134
|
+
globalReplace(source: AnyType<any>, destination: AnyType<any>): void;
|
|
135
|
+
/**
|
|
136
|
+
* @see https://github.com/ike18t/ng-mocks#ngmocksglobalwipe
|
|
137
|
+
*/
|
|
138
|
+
globalWipe(source: AnyType<any> | InjectionToken<any>): void;
|
|
119
139
|
/**
|
|
120
140
|
* @see https://github.com/ike18t/ng-mocks#ngmocksguts
|
|
121
141
|
*/
|
|
@@ -148,4 +168,22 @@ export declare const ngMocks: {
|
|
|
148
168
|
* @see https://github.com/ike18t/ng-mocks#ngmocksstub
|
|
149
169
|
*/
|
|
150
170
|
stub<I extends object>(instance: I, overrides: Partial<I>): I;
|
|
171
|
+
/**
|
|
172
|
+
* @see https://github.com/ike18t/ng-mocks#ngmocksstubmember
|
|
173
|
+
*/
|
|
174
|
+
stubMember<T extends object, K extends keyof T, S extends () => T[K]>(instance: T, name: K, stub: S, encapsulation: 'get'): S;
|
|
175
|
+
/**
|
|
176
|
+
* @see https://github.com/ike18t/ng-mocks#ngmocksstubmember
|
|
177
|
+
*/
|
|
178
|
+
stubMember<T extends object, K extends keyof T, S extends (value: T[K]) => void>(instance: T, name: K, stub: S, encapsulation: 'set'): S;
|
|
179
|
+
/**
|
|
180
|
+
* @see https://github.com/ike18t/ng-mocks#ngmocksstubmember
|
|
181
|
+
*/
|
|
182
|
+
stubMember<T extends object, K extends keyof T, S extends T[K]>(instance: T, name: K, stub: S): S;
|
|
183
|
+
/**
|
|
184
|
+
* Thanks Ivy, it does not throw an error and we have to use injector.
|
|
185
|
+
*
|
|
186
|
+
* @see https://github.com/ike18t/ng-mocks#ngmocksthrowonconsole
|
|
187
|
+
*/
|
|
188
|
+
throwOnConsole(): void;
|
|
151
189
|
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var ng_mocks_universe_1 = require("../common/ng-mocks-universe");
|
|
4
|
+
var func_global_prepare_1 = require("./func.global-prepare");
|
|
5
|
+
exports.default = (function (source) {
|
|
6
|
+
func_global_prepare_1.default();
|
|
7
|
+
ng_mocks_universe_1.default.getDefaults().set(source, ['exclude']);
|
|
8
|
+
});
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1oZWxwZXIuZ2xvYmFsLWV4Y2x1ZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvbW9jay1oZWxwZXIvbW9jay1oZWxwZXIuZ2xvYmFsLWV4Y2x1ZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSxpRUFBMEQ7QUFFMUQsNkRBQXNEO0FBRXRELG1CQUFlLFVBQUMsTUFBMEM7SUFDeEQsNkJBQWlCLEVBQUUsQ0FBQztJQUNwQiwyQkFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0FBQ3pELENBQUMsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFueVR5cGUgfSBmcm9tICcuLi9jb21tb24vY29yZS50eXBlcyc7XG5pbXBvcnQgbmdNb2Nrc1VuaXZlcnNlIGZyb20gJy4uL2NvbW1vbi9uZy1tb2Nrcy11bml2ZXJzZSc7XG5cbmltcG9ydCBmdW5jR2xvYmFsUHJlcGFyZSBmcm9tICcuL2Z1bmMuZ2xvYmFsLXByZXBhcmUnO1xuXG5leHBvcnQgZGVmYXVsdCAoc291cmNlOiBBbnlUeXBlPGFueT4gfCBJbmplY3Rpb25Ub2tlbjxhbnk+KTogdm9pZCA9PiB7XG4gIGZ1bmNHbG9iYWxQcmVwYXJlKCk7XG4gIG5nTW9ja3NVbml2ZXJzZS5nZXREZWZhdWx0cygpLnNldChzb3VyY2UsIFsnZXhjbHVkZSddKTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var ng_mocks_universe_1 = require("../common/ng-mocks-universe");
|
|
4
|
+
var func_global_prepare_1 = require("./func.global-prepare");
|
|
5
|
+
exports.default = (function (source) {
|
|
6
|
+
func_global_prepare_1.default();
|
|
7
|
+
ng_mocks_universe_1.default.getDefaults().set(source, ['keep']);
|
|
8
|
+
});
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1oZWxwZXIuZ2xvYmFsLWtlZXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvbW9jay1oZWxwZXIvbW9jay1oZWxwZXIuZ2xvYmFsLWtlZXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSxpRUFBMEQ7QUFFMUQsNkRBQXNEO0FBRXRELG1CQUFlLFVBQUMsTUFBMEM7SUFDeEQsNkJBQWlCLEVBQUUsQ0FBQztJQUNwQiwyQkFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ3RELENBQUMsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFueVR5cGUgfSBmcm9tICcuLi9jb21tb24vY29yZS50eXBlcyc7XG5pbXBvcnQgbmdNb2Nrc1VuaXZlcnNlIGZyb20gJy4uL2NvbW1vbi9uZy1tb2Nrcy11bml2ZXJzZSc7XG5cbmltcG9ydCBmdW5jR2xvYmFsUHJlcGFyZSBmcm9tICcuL2Z1bmMuZ2xvYmFsLXByZXBhcmUnO1xuXG5leHBvcnQgZGVmYXVsdCAoc291cmNlOiBBbnlUeXBlPGFueT4gfCBJbmplY3Rpb25Ub2tlbjxhbnk+KTogdm9pZCA9PiB7XG4gIGZ1bmNHbG9iYWxQcmVwYXJlKCk7XG4gIG5nTW9ja3NVbml2ZXJzZS5nZXREZWZhdWx0cygpLnNldChzb3VyY2UsIFsna2VlcCddKTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var ng_mocks_universe_1 = require("../common/ng-mocks-universe");
|
|
4
|
+
var func_global_prepare_1 = require("./func.global-prepare");
|
|
5
|
+
exports.default = (function (source) {
|
|
6
|
+
func_global_prepare_1.default();
|
|
7
|
+
ng_mocks_universe_1.default.getDefaults().set(source, ['mock']);
|
|
8
|
+
});
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1oZWxwZXIuZ2xvYmFsLW1vY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvbW9jay1oZWxwZXIvbW9jay1oZWxwZXIuZ2xvYmFsLW1vY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSxpRUFBMEQ7QUFFMUQsNkRBQXNEO0FBRXRELG1CQUFlLFVBQUMsTUFBMEM7SUFDeEQsNkJBQWlCLEVBQUUsQ0FBQztJQUNwQiwyQkFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ3RELENBQUMsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFueVR5cGUgfSBmcm9tICcuLi9jb21tb24vY29yZS50eXBlcyc7XG5pbXBvcnQgbmdNb2Nrc1VuaXZlcnNlIGZyb20gJy4uL2NvbW1vbi9uZy1tb2Nrcy11bml2ZXJzZSc7XG5cbmltcG9ydCBmdW5jR2xvYmFsUHJlcGFyZSBmcm9tICcuL2Z1bmMuZ2xvYmFsLXByZXBhcmUnO1xuXG5leHBvcnQgZGVmYXVsdCAoc291cmNlOiBBbnlUeXBlPGFueT4gfCBJbmplY3Rpb25Ub2tlbjxhbnk+KTogdm9pZCA9PiB7XG4gIGZ1bmNHbG9iYWxQcmVwYXJlKCk7XG4gIG5nTW9ja3NVbml2ZXJzZS5nZXREZWZhdWx0cygpLnNldChzb3VyY2UsIFsnbW9jayddKTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var func_is_ng_def_1 = require("../common/func.is-ng-def");
|
|
4
|
+
var ng_mocks_universe_1 = require("../common/ng-mocks-universe");
|
|
5
|
+
var func_global_prepare_1 = require("./func.global-prepare");
|
|
6
|
+
exports.default = (function (source, destination) {
|
|
7
|
+
var fail = true;
|
|
8
|
+
if (func_is_ng_def_1.isNgDef(source, 'm') && func_is_ng_def_1.isNgDef(destination, 'm')) {
|
|
9
|
+
fail = false;
|
|
10
|
+
}
|
|
11
|
+
else if (func_is_ng_def_1.isNgDef(source, 'c') && func_is_ng_def_1.isNgDef(destination, 'c')) {
|
|
12
|
+
fail = false;
|
|
13
|
+
}
|
|
14
|
+
else if (func_is_ng_def_1.isNgDef(source, 'd') && func_is_ng_def_1.isNgDef(destination, 'd')) {
|
|
15
|
+
fail = false;
|
|
16
|
+
}
|
|
17
|
+
else if (func_is_ng_def_1.isNgDef(source, 'p') && func_is_ng_def_1.isNgDef(destination, 'p')) {
|
|
18
|
+
fail = false;
|
|
19
|
+
}
|
|
20
|
+
if (fail) {
|
|
21
|
+
throw new Error('Cannot replace the declaration, both have to be a Module, a Component, a Directive or a Pipe');
|
|
22
|
+
}
|
|
23
|
+
func_global_prepare_1.default();
|
|
24
|
+
ng_mocks_universe_1.default.getDefaults().set(source, ['replace', destination]);
|
|
25
|
+
});
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1oZWxwZXIuZ2xvYmFsLXJlcGxhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvbW9jay1oZWxwZXIvbW9jay1oZWxwZXIuZ2xvYmFsLXJlcGxhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSwyREFBbUQ7QUFDbkQsaUVBQTBEO0FBRTFELDZEQUFzRDtBQUV0RCxtQkFBZSxVQUFDLE1BQW9CLEVBQUUsV0FBeUI7SUFDN0QsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ2hCLElBQUksd0JBQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLElBQUksd0JBQU8sQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLEVBQUU7UUFDckQsSUFBSSxHQUFHLEtBQUssQ0FBQztLQUNkO1NBQU0sSUFBSSx3QkFBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsSUFBSSx3QkFBTyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsRUFBRTtRQUM1RCxJQUFJLEdBQUcsS0FBSyxDQUFDO0tBQ2Q7U0FBTSxJQUFJLHdCQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxJQUFJLHdCQUFPLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxFQUFFO1FBQzVELElBQUksR0FBRyxLQUFLLENBQUM7S0FDZDtTQUFNLElBQUksd0JBQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLElBQUksd0JBQU8sQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLEVBQUU7UUFDNUQsSUFBSSxHQUFHLEtBQUssQ0FBQztLQUNkO0lBRUQsSUFBSSxJQUFJLEVBQUU7UUFDUixNQUFNLElBQUksS0FBSyxDQUFDLDhGQUE4RixDQUFDLENBQUM7S0FDakg7SUFFRCw2QkFBaUIsRUFBRSxDQUFDO0lBQ3BCLDJCQUFlLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO0FBQ3RFLENBQUMsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFueVR5cGUgfSBmcm9tICcuLi9jb21tb24vY29yZS50eXBlcyc7XG5pbXBvcnQgeyBpc05nRGVmIH0gZnJvbSAnLi4vY29tbW9uL2Z1bmMuaXMtbmctZGVmJztcbmltcG9ydCBuZ01vY2tzVW5pdmVyc2UgZnJvbSAnLi4vY29tbW9uL25nLW1vY2tzLXVuaXZlcnNlJztcblxuaW1wb3J0IGZ1bmNHbG9iYWxQcmVwYXJlIGZyb20gJy4vZnVuYy5nbG9iYWwtcHJlcGFyZSc7XG5cbmV4cG9ydCBkZWZhdWx0IChzb3VyY2U6IEFueVR5cGU8YW55PiwgZGVzdGluYXRpb246IEFueVR5cGU8YW55Pik6IHZvaWQgPT4ge1xuICBsZXQgZmFpbCA9IHRydWU7XG4gIGlmIChpc05nRGVmKHNvdXJjZSwgJ20nKSAmJiBpc05nRGVmKGRlc3RpbmF0aW9uLCAnbScpKSB7XG4gICAgZmFpbCA9IGZhbHNlO1xuICB9IGVsc2UgaWYgKGlzTmdEZWYoc291cmNlLCAnYycpICYmIGlzTmdEZWYoZGVzdGluYXRpb24sICdjJykpIHtcbiAgICBmYWlsID0gZmFsc2U7XG4gIH0gZWxzZSBpZiAoaXNOZ0RlZihzb3VyY2UsICdkJykgJiYgaXNOZ0RlZihkZXN0aW5hdGlvbiwgJ2QnKSkge1xuICAgIGZhaWwgPSBmYWxzZTtcbiAgfSBlbHNlIGlmIChpc05nRGVmKHNvdXJjZSwgJ3AnKSAmJiBpc05nRGVmKGRlc3RpbmF0aW9uLCAncCcpKSB7XG4gICAgZmFpbCA9IGZhbHNlO1xuICB9XG5cbiAgaWYgKGZhaWwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCByZXBsYWNlIHRoZSBkZWNsYXJhdGlvbiwgYm90aCBoYXZlIHRvIGJlIGEgTW9kdWxlLCBhIENvbXBvbmVudCwgYSBEaXJlY3RpdmUgb3IgYSBQaXBlJyk7XG4gIH1cblxuICBmdW5jR2xvYmFsUHJlcGFyZSgpO1xuICBuZ01vY2tzVW5pdmVyc2UuZ2V0RGVmYXVsdHMoKS5zZXQoc291cmNlLCBbJ3JlcGxhY2UnLCBkZXN0aW5hdGlvbl0pO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var ng_mocks_universe_1 = require("../common/ng-mocks-universe");
|
|
4
|
+
var func_global_prepare_1 = require("./func.global-prepare");
|
|
5
|
+
var mock_helper_default_mock_1 = require("./mock-helper.default-mock");
|
|
6
|
+
exports.default = (function (source) {
|
|
7
|
+
func_global_prepare_1.default();
|
|
8
|
+
ng_mocks_universe_1.default.getDefaults().delete(source);
|
|
9
|
+
mock_helper_default_mock_1.default(source);
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1oZWxwZXIuZ2xvYmFsLXdpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvbW9jay1oZWxwZXIvbW9jay1oZWxwZXIuZ2xvYmFsLXdpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSxpRUFBMEQ7QUFFMUQsNkRBQXNEO0FBQ3RELHVFQUErRDtBQUUvRCxtQkFBZSxVQUFDLE1BQTBDO0lBQ3hELDZCQUFpQixFQUFFLENBQUM7SUFDcEIsMkJBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0Msa0NBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDaEMsQ0FBQyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQW55VHlwZSB9IGZyb20gJy4uL2NvbW1vbi9jb3JlLnR5cGVzJztcbmltcG9ydCBuZ01vY2tzVW5pdmVyc2UgZnJvbSAnLi4vY29tbW9uL25nLW1vY2tzLXVuaXZlcnNlJztcblxuaW1wb3J0IGZ1bmNHbG9iYWxQcmVwYXJlIGZyb20gJy4vZnVuYy5nbG9iYWwtcHJlcGFyZSc7XG5pbXBvcnQgbW9ja0hlbHBlckRlZmF1bHRNb2NrIGZyb20gJy4vbW9jay1oZWxwZXIuZGVmYXVsdC1tb2NrJztcblxuZXhwb3J0IGRlZmF1bHQgKHNvdXJjZTogQW55VHlwZTxhbnk+IHwgSW5qZWN0aW9uVG9rZW48YW55Pik6IHZvaWQgPT4ge1xuICBmdW5jR2xvYmFsUHJlcGFyZSgpO1xuICBuZ01vY2tzVW5pdmVyc2UuZ2V0RGVmYXVsdHMoKS5kZWxldGUoc291cmNlKTtcbiAgbW9ja0hlbHBlckRlZmF1bHRNb2NrKHNvdXJjZSk7XG59O1xuIl19
|
|
@@ -33,6 +33,7 @@ var func_get_provider_1 = require("../common/func.get-provider");
|
|
|
33
33
|
var func_is_ng_def_1 = require("../common/func.is-ng-def");
|
|
34
34
|
var func_is_ng_injection_token_1 = require("../common/func.is-ng-injection-token");
|
|
35
35
|
var func_is_ng_module_def_with_providers_1 = require("../common/func.is-ng-module-def-with-providers");
|
|
36
|
+
var ng_mocks_universe_1 = require("../common/ng-mocks-universe");
|
|
36
37
|
var mock_component_1 = require("../mock-component/mock-component");
|
|
37
38
|
var mock_directive_1 = require("../mock-directive/mock-directive");
|
|
38
39
|
var mock_module_1 = require("../mock-module/mock-module");
|
|
@@ -45,28 +46,32 @@ var skipDef = function (def, skip, exclude) {
|
|
|
45
46
|
skip.add(def);
|
|
46
47
|
return exclude.has(def);
|
|
47
48
|
};
|
|
49
|
+
var createMetaHandler = function (optional, proto, imports, declarations, providers) {
|
|
50
|
+
var def = optional.get(proto) || proto;
|
|
51
|
+
if (func_is_ng_def_1.isNgDef(def, 'm')) {
|
|
52
|
+
imports.push(def);
|
|
53
|
+
}
|
|
54
|
+
else if (func_is_ng_def_1.isNgDef(def, 'c') || func_is_ng_def_1.isNgDef(def, 'd')) {
|
|
55
|
+
declarations.push(def);
|
|
56
|
+
}
|
|
57
|
+
else if (func_is_ng_def_1.isNgDef(def, 'p')) {
|
|
58
|
+
declarations.push(def);
|
|
59
|
+
providers.push(def);
|
|
60
|
+
}
|
|
61
|
+
else if (!func_is_ng_injection_token_1.isNgInjectionToken(def)) {
|
|
62
|
+
providers.push(def);
|
|
63
|
+
}
|
|
64
|
+
};
|
|
48
65
|
var createMeta = function (_a) {
|
|
49
66
|
var e_1, _b;
|
|
50
|
-
var keep = _a.keep, skip = _a.skip, exclude = _a.exclude, imports = _a.imports, declarations = _a.declarations, providers = _a.providers;
|
|
67
|
+
var keep = _a.keep, skip = _a.skip, optional = _a.optional, exclude = _a.exclude, imports = _a.imports, declarations = _a.declarations, providers = _a.providers;
|
|
51
68
|
try {
|
|
52
69
|
for (var keep_1 = __values(keep), keep_1_1 = keep_1.next(); !keep_1_1.done; keep_1_1 = keep_1.next()) {
|
|
53
|
-
var
|
|
54
|
-
if (skip.has(
|
|
70
|
+
var proto = keep_1_1.value;
|
|
71
|
+
if (skip.has(proto) || exclude.has(proto) || optional.has(proto)) {
|
|
55
72
|
continue;
|
|
56
73
|
}
|
|
57
|
-
|
|
58
|
-
imports.push(def);
|
|
59
|
-
}
|
|
60
|
-
else if (func_is_ng_def_1.isNgDef(def, 'c') || func_is_ng_def_1.isNgDef(def, 'd')) {
|
|
61
|
-
declarations.push(def);
|
|
62
|
-
}
|
|
63
|
-
else if (func_is_ng_def_1.isNgDef(def, 'p')) {
|
|
64
|
-
declarations.push(def);
|
|
65
|
-
providers.push(def);
|
|
66
|
-
}
|
|
67
|
-
else if (!func_is_ng_injection_token_1.isNgInjectionToken(def)) {
|
|
68
|
-
providers.push(def);
|
|
69
|
-
}
|
|
74
|
+
createMetaHandler(optional, proto, imports, declarations, providers);
|
|
70
75
|
}
|
|
71
76
|
}
|
|
72
77
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
@@ -172,17 +177,12 @@ var resolveMap = {
|
|
|
172
177
|
directive: mock_directive_1.MockDirective,
|
|
173
178
|
pipe: mock_pipe_1.MockPipe,
|
|
174
179
|
};
|
|
175
|
-
var
|
|
176
|
-
if (skipDestruction === void 0) { skipDestruction = true; }
|
|
177
|
-
if (!def) {
|
|
178
|
-
return;
|
|
179
|
-
}
|
|
180
|
-
var type = getType(def, data.keep);
|
|
180
|
+
var resolveHandler = function (data, type, def, skipDestruction) {
|
|
181
181
|
if (type === 'module-with-providers') {
|
|
182
182
|
handleModuleWithProviders(data, def);
|
|
183
183
|
}
|
|
184
184
|
else if (type === 'module-keep') {
|
|
185
|
-
handleDeclaration(data, def, mock_module_1.MockModule, data.imports); // MockModule
|
|
185
|
+
handleDeclaration(data, def, mock_module_1.MockModule, data.imports); // MockModule will not be called because the def is kept.
|
|
186
186
|
}
|
|
187
187
|
else if (type === 'module' && skipDestruction) {
|
|
188
188
|
handleDeclaration(data, def, mock_module_1.MockModule, data.imports);
|
|
@@ -197,33 +197,96 @@ var resolve = function (data, def, skipDestruction) {
|
|
|
197
197
|
resolveProvider(data, def);
|
|
198
198
|
}
|
|
199
199
|
};
|
|
200
|
-
var
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
200
|
+
var resolve = function (data, proto, skipDestruction) {
|
|
201
|
+
if (skipDestruction === void 0) { skipDestruction = true; }
|
|
202
|
+
if (!proto) {
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
var type = getType(proto, data.keep);
|
|
206
|
+
var def;
|
|
207
|
+
// an attempt to replace declarations.
|
|
208
|
+
if (type !== 'module-with-providers') {
|
|
209
|
+
var value = data.optional.get(proto);
|
|
210
|
+
if (value && value !== proto) {
|
|
211
|
+
def = value;
|
|
212
|
+
data.keep.add(def);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
if (!def) {
|
|
216
|
+
def = proto;
|
|
217
|
+
}
|
|
218
|
+
resolveHandler(data, type, def, skipDestruction);
|
|
219
|
+
};
|
|
220
|
+
var generateDataWithUniverse = function (keep, mock, exclude, optional) {
|
|
210
221
|
var e_5, _a;
|
|
222
|
+
try {
|
|
223
|
+
for (var _b = __values(core_helpers_1.mapKeys(ng_mocks_universe_1.default.getDefaults())), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
224
|
+
var k = _c.value;
|
|
225
|
+
var v = ng_mocks_universe_1.default.getBuildDeclaration(k);
|
|
226
|
+
if (keep.has(k) || mock.has(k) || exclude.has(k)) {
|
|
227
|
+
continue;
|
|
228
|
+
}
|
|
229
|
+
optional.set(k, v);
|
|
230
|
+
if (v === null) {
|
|
231
|
+
exclude.add(k);
|
|
232
|
+
}
|
|
233
|
+
else if (v === undefined) {
|
|
234
|
+
mock.add(k);
|
|
235
|
+
}
|
|
236
|
+
else if (k === v) {
|
|
237
|
+
keep.add(k);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
242
|
+
finally {
|
|
243
|
+
try {
|
|
244
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
245
|
+
}
|
|
246
|
+
finally { if (e_5) throw e_5.error; }
|
|
247
|
+
}
|
|
248
|
+
};
|
|
249
|
+
var generateData = function (protoKeep, protoMock, protoExclude) {
|
|
250
|
+
var keep = new Set(core_helpers_1.flatten(protoKeep || []));
|
|
251
|
+
var mock = new Set(core_helpers_1.flatten(protoMock || []));
|
|
252
|
+
var exclude = new Set(core_helpers_1.flatten(protoExclude || []));
|
|
253
|
+
var optional = new Map();
|
|
254
|
+
generateDataWithUniverse(keep, mock, exclude, optional);
|
|
255
|
+
return {
|
|
256
|
+
declarations: [],
|
|
257
|
+
exclude: exclude,
|
|
258
|
+
imports: [],
|
|
259
|
+
keep: keep,
|
|
260
|
+
mock: mock,
|
|
261
|
+
optional: optional,
|
|
262
|
+
providers: [],
|
|
263
|
+
skip: new Set(),
|
|
264
|
+
};
|
|
265
|
+
};
|
|
266
|
+
exports.default = (function (keep, mock, exclude) {
|
|
267
|
+
var e_6, _a;
|
|
211
268
|
if (mock === void 0) { mock = null; }
|
|
212
269
|
if (exclude === void 0) { exclude = null; }
|
|
213
270
|
var data = generateData(keep, mock, exclude);
|
|
271
|
+
ng_mocks_universe_1.default.config.set('mockNgDefResolver', new Map());
|
|
214
272
|
try {
|
|
215
273
|
for (var _b = __values(core_helpers_1.mapValues(data.mock)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
216
274
|
var def = _c.value;
|
|
275
|
+
if (data.optional.has(def)) {
|
|
276
|
+
continue;
|
|
277
|
+
}
|
|
217
278
|
resolve(data, def, false);
|
|
218
279
|
}
|
|
219
280
|
}
|
|
220
|
-
catch (
|
|
281
|
+
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
221
282
|
finally {
|
|
222
283
|
try {
|
|
223
284
|
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
224
285
|
}
|
|
225
|
-
finally { if (
|
|
286
|
+
finally { if (e_6) throw e_6.error; }
|
|
226
287
|
}
|
|
227
|
-
|
|
288
|
+
var meta = createMeta(data);
|
|
289
|
+
ng_mocks_universe_1.default.config.delete('mockNgDefResolver');
|
|
290
|
+
return meta;
|
|
228
291
|
});
|
|
229
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1oZWxwZXIuZ3V0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9tb2NrLWhlbHBlci9tb2NrLWhlbHBlci5ndXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsdURBQTREO0FBQzVELHFGQUE2RTtBQUM3RSxpRUFBMEQ7QUFDMUQsMkRBQW1EO0FBQ25ELG1GQUEwRTtBQUMxRSx1R0FBNEY7QUFDNUYsbUVBQWlFO0FBQ2pFLG1FQUFpRTtBQUNqRSwwREFBd0Q7QUFDeEQsb0RBQWtEO0FBQ2xELCtEQUF5RDtBQVl6RCxJQUFNLE9BQU8sR0FBRyxVQUFDLEdBQVEsRUFBRSxJQUFjLEVBQUUsT0FBaUI7SUFDMUQsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ2pCLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRWQsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzFCLENBQUMsQ0FBQztBQUVGLElBQU0sVUFBVSxHQUFHLFVBQUMsRUFBK0Q7O1FBQTdELElBQUksVUFBQSxFQUFFLElBQUksVUFBQSxFQUFFLE9BQU8sYUFBQSxFQUFFLE9BQU8sYUFBQSxFQUFFLFlBQVksa0JBQUEsRUFBRSxTQUFTLGVBQUE7O1FBQ3pFLEtBQWtCLElBQUEsU0FBQSxTQUFBLElBQUksQ0FBQSwwQkFBQSw0Q0FBRTtZQUFuQixJQUFNLEdBQUcsaUJBQUE7WUFDWixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDckMsU0FBUzthQUNWO1lBQ0QsSUFBSSx3QkFBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDckIsT0FBTyxDQUFDLElBQUks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ZXRhZGF0YSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5cbmltcG9ydCB7IGZsYXR0ZW4sIG1hcFZhbHVlcyB9IGZyb20gJy4uL2NvbW1vbi9jb3JlLmhlbHBlcnMnO1xuaW1wb3J0IGNvcmVSZWZsZWN0TW9kdWxlUmVzb2x2ZSBmcm9tICcuLi9jb21tb24vY29yZS5yZWZsZWN0Lm1vZHVsZS1yZXNvbHZlJztcbmltcG9ydCBmdW5jR2V0UHJvdmlkZXIgZnJvbSAnLi4vY29tbW9uL2Z1bmMuZ2V0LXByb3ZpZGVyJztcbmltcG9ydCB7IGlzTmdEZWYgfSBmcm9tICcuLi9jb21tb24vZnVuYy5pcy1uZy1kZWYnO1xuaW1wb3J0IHsgaXNOZ0luamVjdGlvblRva2VuIH0gZnJvbSAnLi4vY29tbW9uL2Z1bmMuaXMtbmctaW5qZWN0aW9uLXRva2VuJztcbmltcG9ydCB7IGlzTmdNb2R1bGVEZWZXaXRoUHJvdmlkZXJzIH0gZnJvbSAnLi4vY29tbW9uL2Z1bmMuaXMtbmctbW9kdWxlLWRlZi13aXRoLXByb3ZpZGVycyc7XG5pbXBvcnQgeyBNb2NrQ29tcG9uZW50IH0gZnJvbSAnLi4vbW9jay1jb21wb25lbnQvbW9jay1jb21wb25lbnQnO1xuaW1wb3J0IHsgTW9ja0RpcmVjdGl2ZSB9IGZyb20gJy4uL21vY2stZGlyZWN0aXZlL21vY2stZGlyZWN0aXZlJztcbmltcG9ydCB7IE1vY2tNb2R1bGUgfSBmcm9tICcuLi9tb2NrLW1vZHVsZS9tb2NrLW1vZHVsZSc7XG5pbXBvcnQgeyBNb2NrUGlwZSB9IGZyb20gJy4uL21vY2stcGlwZS9tb2NrLXBpcGUnO1xuaW1wb3J0IG1vY2tQcm92aWRlciBmcm9tICcuLi9tb2NrLXNlcnZpY2UvbW9jay1wcm92aWRlcic7XG5cbnR5cGUgRGF0YSA9IHtcbiAgZGVjbGFyYXRpb25zOiBhbnlbXTtcbiAgZXhjbHVkZTogU2V0PGFueT47XG4gIGltcG9ydHM6IGFueVtdO1xuICBrZWVwOiBTZXQ8YW55PjtcbiAgbW9jazogU2V0PGFueT47XG4gIHByb3ZpZGVyczogYW55W107XG4gIHNraXA6IFNldDxhbnk+O1xufTtcblxuY29uc3Qgc2tpcERlZiA9IChkZWY6IGFueSwgc2tpcDogU2V0PGFueT4sIGV4Y2x1ZGU6IFNldDxhbnk+KTogYm9vbGVhbiA9PiB7XG4gIGlmIChza2lwLmhhcyhkZWYpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgc2tpcC5hZGQoZGVmKTtcblxuICByZXR1cm4gZXhjbHVkZS5oYXMoZGVmKTtcbn07XG5cbmNvbnN0IGNyZWF0ZU1ldGEgPSAoeyBrZWVwLCBza2lwLCBleGNsdWRlLCBpbXBvcnRzLCBkZWNsYXJhdGlvbnMsIHByb3ZpZGVycyB9OiBEYXRhKTogVGVzdE1vZHVsZU1ldGFkYXRhID0+IHtcbiAgZm9yIChjb25zdCBkZWYgb2Yga2VlcCkge1xuICAgIGlmIChza2lwLmhhcyhkZWYpIHx8IGV4Y2x1ZGUuaGFzKGRlZikpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoaXNOZ0RlZihkZWYsICdtJykpIHtcbiAgICAgIGltcG9ydHMucHVzaChkZWYpO1xuICAgIH0gZWxzZSBpZiAoaXNOZ0RlZihkZWYsICdjJykgfHwgaXNOZ0RlZihkZWYsICdkJykpIHtcbiAgICAgIGRlY2xhcmF0aW9ucy5wdXNoKGRlZik7XG4gICAgfSBlbHNlIGlmIChpc05nRGVmKGRlZiwgJ3AnKSkge1xuICAgICAgZGVjbGFyYXRpb25zLnB1c2goZGVmKTtcbiAgICAgIHByb3ZpZGVycy5wdXNoKGRlZik7XG4gICAgfSBlbHNlIGlmICghaXNOZ0luamVjdGlvblRva2VuKGRlZikpIHtcbiAgICAgIHByb3ZpZGVycy5wdXNoKGRlZik7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHsgZGVjbGFyYXRpb25zLCBpbXBvcnRzLCBwcm92aWRlcnMgfTtcbn07XG5cbmNvbnN0IHR5cGVNYXA6IEFycmF5PFthbnksIHN0cmluZ10+ID0gW1xuICBbJ20nLCAnbW9kdWxlJ10sXG4gIFsnYycsICdjb21wb25lbnQnXSxcbiAgWydkJywgJ2RpcmVjdGl2ZSddLFxuICBbJ3AnLCAncGlwZSddLFxuXTtcblxuY29uc3QgZ2V0VHlwZSA9IChkZWY6IGFueSwga2VlcDogU2V0PGFueT4pOiBzdHJpbmcgPT4ge1xuICBpZiAoaXNOZ01vZHVsZURlZldpdGhQcm92aWRlcnMoZGVmKSkge1xuICAgIHJldHVybiAnbW9kdWxlLXdpdGgtcHJvdmlkZXJzJztcbiAgfVxuICBmb3IgKGNvbnN0IFtmbGFnLCB2YWx1ZV0gb2YgdHlwZU1hcCkge1xuICAgIGlmIChpc05nRGVmKGRlZiwgZmxhZykpIHtcbiAgICAgIHJldHVybiBmbGFnID09PSAnbScgJiYga2VlcC5oYXMoZGVmKSA/IGAke3ZhbHVlfS1rZWVwYCA6IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiAnJztcbn07XG5cbmNvbnN0IGhhbmRsZU1vZHVsZVdpdGhQcm92aWRlcnMgPSAoZGF0YTogRGF0YSwgZGVmOiBhbnkpOiB2b2lkID0+IHtcbiAgaWYgKGRhdGEuc2tpcC5oYXMoZGVmLm5nTW9kdWxlKSkge1xuICAgIHJldHVybjtcbiAgfVxuICBkYXRhLnNraXAuYWRkKGRlZi5uZ01vZHVsZSk7XG4gIGlmIChkYXRhLmV4Y2x1ZGUuaGFzKGRlZi5uZ01vZHVsZSkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBkYXRhLmltcG9ydHMucHVzaChkYXRhLmtlZXAuaGFzKGRlZi5uZ01vZHVsZSkgPyBkZWYgOiBNb2NrTW9kdWxlKGRlZikpO1xufTtcblxuY29uc3QgaGFuZGxlRGVjbGFyYXRpb24gPSAoZGF0YTogRGF0YSwgZGVmOiBhbnksIGNhbGxiYWNrOiBhbnksIGJ1Y2tldDogYW55W10pOiB2b2lkID0+IHtcbiAgaWYgKHNraXBEZWYoZGVmLCBkYXRhLnNraXAsIGRhdGEuZXhjbHVkZSkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBidWNrZXQucHVzaChkYXRhLmtlZXAuaGFzKGRlZikgPyBkZWYgOiBjYWxsYmFjayhkZWYpKTtcbn07XG5cbmNvbnN0IGhhbmRsZURlc3RydWN0dXJpbmcgPSAoZGF0YTogRGF0YSwgZGVmOiBhbnksIGNhbGxiYWNrOiBhbnkpOiB2b2lkID0+IHtcbiAgaWYgKHNraXBEZWYoZGVmLCBkYXRhLnNraXAsIGRhdGEuZXhjbHVkZSkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBtZXRhID0gY29yZVJlZmxlY3RNb2R1bGVSZXNvbHZlKGRlZik7XG4gIGZvciAoY29uc3QgdG9Nb2NrIG9mIGZsYXR0ZW4oW21ldGEuZGVjbGFyYXRpb25zLCBtZXRhLmltcG9ydHNdKSkge1xuICAgIGNhbGxiYWNrKGRhdGEsIHRvTW9jayk7XG4gIH1cbiAgZm9yIChjb25zdCB0b01vY2sgb2YgbWV0YS5wcm92aWRlcnMgPyBmbGF0dGVuKG1ldGEucHJvdmlkZXJzKSA6IFtdKSB7XG4gICAgcmVzb2x2ZVByb3ZpZGVyKGRhdGEsIHRvTW9jayk7XG4gIH1cbn07XG5cbmNvbnN0IHJlc29sdmVQcm92aWRlciA9ICh7IHNraXAsIGtlZXAsIHByb3ZpZGVycywgZXhjbHVkZSB9OiBEYXRhLCBkZWY6IGFueSk6IHZvaWQgPT4ge1xuICBjb25zdCBwcm92aWRlciA9IGZ1bmNHZXRQcm92aWRlcihkZWYpO1xuICBza2lwLmFkZChwcm92aWRlcik7XG4gIGlmIChleGNsdWRlLmhhcyhwcm92aWRlcikpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBwcm92aWRlckRlZiA9IGtlZXAuaGFzKHByb3ZpZGVyKSA/IGRlZiA6IG1vY2tQcm92aWRlcihkZWYpO1xuICBpZiAocHJvdmlkZXJEZWYpIHtcbiAgICBwcm92aWRlcnMucHVzaChwcm92aWRlckRlZik7XG4gIH1cbn07XG5cbmNvbnN0IHJlc29sdmVNYXA6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7XG4gIGNvbXBvbmVudDogTW9ja0NvbXBvbmVudCxcbiAgZGlyZWN0aXZlOiBNb2NrRGlyZWN0aXZlLFxuICBwaXBlOiBNb2NrUGlwZSxcbn07XG5cbmNvbnN0IHJlc29sdmUgPSAoZGF0YTogRGF0YSwgZGVmOiBhbnksIHNraXBEZXN0cnVjdGlvbiA9IHRydWUpOiB2b2lkID0+IHtcbiAgaWYgKCFkZWYpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCB0eXBlID0gZ2V0VHlwZShkZWYsIGRhdGEua2VlcCk7XG5cbiAgaWYgKHR5cGUgPT09ICdtb2R1bGUtd2l0aC1wcm92aWRlcnMnKSB7XG4gICAgaGFuZGxlTW9kdWxlV2l0aFByb3ZpZGVycyhkYXRhLCBkZWYpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdtb2R1bGUta2VlcCcpIHtcbiAgICBoYW5kbGVEZWNsYXJhdGlvbihkYXRhLCBkZWYsIE1vY2tNb2R1bGUsIGRhdGEuaW1wb3J0cyk7IC8vIE1vY2tNb2R1bGUgd29uJ3QgYmUgY2FsbGVkIGJlY2F1c2UgdGhlIGRlZiBpcyBrZXB0LlxuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdtb2R1bGUnICYmIHNraXBEZXN0cnVjdGlvbikge1xuICAgIGhhbmRsZURlY2xhcmF0aW9uKGRhdGEsIGRlZiwgTW9ja01vZHVsZSwgZGF0YS5pbXBvcnRzKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSAnbW9kdWxlJykge1xuICAgIGhhbmRsZURlc3RydWN0dXJpbmcoZGF0YSwgZGVmLCByZXNvbHZlKTtcbiAgfSBlbHNlIGlmIChyZXNvbHZlTWFwW3R5cGVdKSB7XG4gICAgaGFuZGxlRGVjbGFyYXRpb24oZGF0YSwgZGVmLCByZXNvbHZlTWFwW3R5cGVdLCBkYXRhLmRlY2xhcmF0aW9ucyk7XG4gIH0gZWxzZSB7XG4gICAgcmVzb2x2ZVByb3ZpZGVyKGRhdGEsIGRlZik7XG4gIH1cbn07XG5cbmNvbnN0IGdlbmVyYXRlRGF0YSA9IChrZWVwOiBhbnksIG1vY2s6IGFueSwgZXhjbHVkZTogYW55KTogRGF0YSA9PiAoe1xuICBkZWNsYXJhdGlvbnM6IFtdLFxuICBleGNsdWRlOiBuZXcgU2V0KGZsYXR0ZW4oZXhjbHVkZSB8fCBbXSkpLFxuICBpbXBvcnRzOiBbXSxcbiAga2VlcDogbmV3IFNldChmbGF0dGVuKGtlZXAgfHwgW10pKSxcbiAgbW9jazogbmV3IFNldChmbGF0dGVuKG1vY2sgfHwgW10pKSxcbiAgcHJvdmlkZXJzOiBbXSxcbiAgc2tpcDogbmV3IFNldCgpLFxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IChrZWVwOiBhbnksIG1vY2s6IGFueSA9IG51bGwsIGV4Y2x1ZGU6IGFueSA9IG51bGwpOiBUZXN0TW9kdWxlTWV0YWRhdGEgPT4ge1xuICBjb25zdCBkYXRhOiBEYXRhID0gZ2VuZXJhdGVEYXRhKGtlZXAsIG1vY2ssIGV4Y2x1ZGUpO1xuXG4gIGZvciAoY29uc3QgZGVmIG9mIG1hcFZhbHVlcyhkYXRhLm1vY2spKSB7XG4gICAgcmVzb2x2ZShkYXRhLCBkZWYsIGZhbHNlKTtcbiAgfVxuXG4gIHJldHVybiBjcmVhdGVNZXRhKGRhdGEpO1xufTtcbiJdfQ==
|
|
292
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1oZWxwZXIuZ3V0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9tb2NrLWhlbHBlci9tb2NrLWhlbHBlci5ndXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsdURBQXFFO0FBQ3JFLHFGQUE2RTtBQUM3RSxpRUFBMEQ7QUFDMUQsMkRBQW1EO0FBQ25ELG1GQUEwRTtBQUMxRSx1R0FBNEY7QUFDNUYsaUVBQTBEO0FBQzFELG1FQUFpRTtBQUNqRSxtRUFBaUU7QUFDakUsMERBQXdEO0FBQ3hELG9EQUFrRDtBQUNsRCwrREFBeUQ7QUFhekQsSUFBTSxPQUFPLEdBQUcsVUFBQyxHQUFRLEVBQUUsSUFBYyxFQUFFLE9BQWlCO0lBQzFELElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNqQixPQUFPLElBQUksQ0FBQztLQUNiO0lBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVkLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMxQixDQUFDLENBQUM7QUFFRixJQUFNLGlCQUFpQixHQUFHLFVBQ3hCLFFBQXVCLEVBQ3ZCLEtBQVUsRUFDVixPQUFjLEVBQ2QsWUFBbUIsRUFDbkIsU0FBZ0I7SUFFaEIsSUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUM7SUFFekMsSUFBSSx3QkFBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRTtRQUNyQixPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ25CO1NBQU0sSUFBSSx3QkFBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSx3QkFBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRTtRQUNqRCxZQUFZLENBQUMsSUFBSSxDQUFDLEdB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bnRlbnQiOlsiaW1wb3J0IHsgVGVzdE1vZHVsZU1ldGFkYXRhIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS90ZXN0aW5nJztcblxuaW1wb3J0IHsgZmxhdHRlbiwgbWFwS2V5cywgbWFwVmFsdWVzIH0gZnJvbSAnLi4vY29tbW9uL2NvcmUuaGVscGVycyc7XG5pbXBvcnQgY29yZVJlZmxlY3RNb2R1bGVSZXNvbHZlIGZyb20gJy4uL2NvbW1vbi9jb3JlLnJlZmxlY3QubW9kdWxlLXJlc29sdmUnO1xuaW1wb3J0IGZ1bmNHZXRQcm92aWRlciBmcm9tICcuLi9jb21tb24vZnVuYy5nZXQtcHJvdmlkZXInO1xuaW1wb3J0IHsgaXNOZ0RlZiB9IGZyb20gJy4uL2NvbW1vbi9mdW5jLmlzLW5nLWRlZic7XG5pbXBvcnQgeyBpc05nSW5qZWN0aW9uVG9rZW4gfSBmcm9tICcuLi9jb21tb24vZnVuYy5pcy1uZy1pbmplY3Rpb24tdG9rZW4nO1xuaW1wb3J0IHsgaXNOZ01vZHVsZURlZldpdGhQcm92aWRlcnMgfSBmcm9tICcuLi9jb21tb24vZnVuYy5pcy1uZy1tb2R1bGUtZGVmLXdpdGgtcHJvdmlkZXJzJztcbmltcG9ydCBuZ01vY2tzVW5pdmVyc2UgZnJvbSAnLi4vY29tbW9uL25nLW1vY2tzLXVuaXZlcnNlJztcbmltcG9ydCB7IE1vY2tDb21wb25lbnQgfSBmcm9tICcuLi9tb2NrLWNvbXBvbmVudC9tb2NrLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb2NrRGlyZWN0aXZlIH0gZnJvbSAnLi4vbW9jay1kaXJlY3RpdmUvbW9jay1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTW9ja01vZHVsZSB9IGZyb20gJy4uL21vY2stbW9kdWxlL21vY2stbW9kdWxlJztcbmltcG9ydCB7IE1vY2tQaXBlIH0gZnJvbSAnLi4vbW9jay1waXBlL21vY2stcGlwZSc7XG5pbXBvcnQgbW9ja1Byb3ZpZGVyIGZyb20gJy4uL21vY2stc2VydmljZS9tb2NrLXByb3ZpZGVyJztcblxudHlwZSBEYXRhID0ge1xuICBkZWNsYXJhdGlvbnM6IGFueVtdO1xuICBleGNsdWRlOiBTZXQ8YW55PjtcbiAgaW1wb3J0czogYW55W107XG4gIGtlZXA6IFNldDxhbnk+O1xuICBtb2NrOiBTZXQ8YW55PjtcbiAgb3B0aW9uYWw6IE1hcDxhbnksIGFueT47XG4gIHByb3ZpZGVyczogYW55W107XG4gIHNraXA6IFNldDxhbnk+O1xufTtcblxuY29uc3Qgc2tpcERlZiA9IChkZWY6IGFueSwgc2tpcDogU2V0PGFueT4sIGV4Y2x1ZGU6IFNldDxhbnk+KTogYm9vbGVhbiA9PiB7XG4gIGlmIChza2lwLmhhcyhkZWYpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgc2tpcC5hZGQoZGVmKTtcblxuICByZXR1cm4gZXhjbHVkZS5oYXMoZGVmKTtcbn07XG5cbmNvbnN0IGNyZWF0ZU1ldGFIYW5kbGVyID0gKFxuICBvcHRpb25hbDogTWFwPGFueSwgYW55PixcbiAgcHJvdG86IGFueSxcbiAgaW1wb3J0czogYW55W10sXG4gIGRlY2xhcmF0aW9uczogYW55W10sXG4gIHByb3ZpZGVyczogYW55W10sXG4pOiB2b2lkID0+IHtcbiAgY29uc3QgZGVmID0gb3B0aW9uYWwuZ2V0KHByb3RvKSB8fCBwcm90bztcblxuICBpZiAoaXNOZ0RlZihkZWYsICdtJykpIHtcbiAgICBpbXBvcnRzLnB1c2goZGVmKTtcbiAgfSBlbHNlIGlmIChpc05nRGVmKGRlZiwgJ2MnKSB8fCBpc05nRGVmKGRlZiwgJ2QnKSkge1xuICAgIGRlY2xhcmF0aW9ucy5wdXNoKGRlZik7XG4gIH0gZWxzZSBpZiAoaXNOZ0RlZihkZWYsICdwJykpIHtcbiAgICBkZWNsYXJhdGlvbnMucHVzaChkZWYpO1xuICAgIHByb3ZpZGVycy5wdXNoKGRlZik7XG4gIH0gZWxzZSBpZiAoIWlzTmdJbmplY3Rpb25Ub2tlbihkZWYpKSB7XG4gICAgcHJvdmlkZXJzLnB1c2goZGVmKTtcbiAgfVxufTtcblxuY29uc3QgY3JlYXRlTWV0YSA9ICh7IGtlZXAsIHNraXAsIG9wdGlvbmFsLCBleGNsdWRlLCBpbXBvcnRzLCBkZWNsYXJhdGlvbnMsIHByb3ZpZGVycyB9OiBEYXRhKTogVGVzdE1vZHVsZU1ldGFkYXRhID0+IHtcbiAgZm9yIChjb25zdCBwcm90byBvZiBrZWVwKSB7XG4gICAgaWYgKHNraXAuaGFzKHByb3RvKSB8fCBleGNsdWRlLmhhcyhwcm90bykgfHwgb3B0aW9uYWwuaGFzKHByb3RvKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNyZWF0ZU1ldGFIYW5kbGVyKG9wdGlvbmFsLCBwcm90bywgaW1wb3J0cywgZGVjbGFyYXRpb25zLCBwcm92aWRlcnMpO1xuICB9XG5cbiAgcmV0dXJuIHsgZGVjbGFyYXRpb25zLCBpbXBvcnRzLCBwcm92aWRlcnMgfTtcbn07XG5cbmNvbnN0IHR5cGVNYXA6IEFycmF5PFthbnksIHN0cmluZ10+ID0gW1xuICBbJ20nLCAnbW9kdWxlJ10sXG4gIFsnYycsICdjb21wb25lbnQnXSxcbiAgWydkJywgJ2RpcmVjdGl2ZSddLFxuICBbJ3AnLCAncGlwZSddLFxuXTtcblxuY29uc3QgZ2V0VHlwZSA9IChkZWY6IGFueSwga2VlcDogU2V0PGFueT4pOiBzdHJpbmcgPT4ge1xuICBpZiAoaXNOZ01vZHVsZURlZldpdGhQcm92aWRlcnMoZGVmKSkge1xuICAgIHJldHVybiAnbW9kdWxlLXdpdGgtcHJvdmlkZXJzJztcbiAgfVxuICBmb3IgKGNvbnN0IFtmbGFnLCB2YWx1ZV0gb2YgdHlwZU1hcCkge1xuICAgIGlmIChpc05nRGVmKGRlZiwgZmxhZykpIHtcbiAgICAgIHJldHVybiBmbGFnID09PSAnbScgJiYga2VlcC5oYXMoZGVmKSA/IGAke3ZhbHVlfS1rZWVwYCA6IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiAnJztcbn07XG5cbmNvbnN0IGhhbmRsZU1vZHVsZVdpdGhQcm92aWRlcnMgPSAoZGF0YTogRGF0YSwgZGVmOiBhbnkpOiB2b2lkID0+IHtcbiAgaWYgKGRhdGEuc2tpcC5oYXMoZGVmLm5nTW9kdWxlKSkge1xuICAgIHJldHVybjtcbiAgfVxuICBkYXRhLnNraXAuYWRkKGRlZi5uZ01vZHVsZSk7XG4gIGlmIChkYXRhLmV4Y2x1ZGUuaGFzKGRlZi5uZ01vZHVsZSkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBkYXRhLmltcG9ydHMucHVzaChkYXRhLmtlZXAuaGFzKGRlZi5uZ01vZHVsZSkgPyBkZWYgOiBNb2NrTW9kdWxlKGRlZikpO1xufTtcblxuY29uc3QgaGFuZGxlRGVjbGFyYXRpb24gPSAoZGF0YTogRGF0YSwgZGVmOiBhbnksIGNhbGxiYWNrOiBhbnksIGJ1Y2tldDogYW55W10pOiB2b2lkID0+IHtcbiAgaWYgKHNraXBEZWYoZGVmLCBkYXRhLnNraXAsIGRhdGEuZXhjbHVkZSkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBidWNrZXQucHVzaChkYXRhLmtlZXAuaGFzKGRlZikgPyBkZWYgOiBjYWxsYmFjayhkZWYpKTtcbn07XG5cbmNvbnN0IGhhbmRsZURlc3RydWN0dXJpbmcgPSAoZGF0YTogRGF0YSwgZGVmOiBhbnksIGNhbGxiYWNrOiBhbnkpOiB2b2lkID0+IHtcbiAgaWYgKHNraXBEZWYoZGVmLCBkYXRhLnNraXAsIGRhdGEuZXhjbHVkZSkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBtZXRhID0gY29yZVJlZmxlY3RNb2R1bGVSZXNvbHZlKGRlZik7XG4gIGZvciAoY29uc3QgdG9Nb2NrIG9mIGZsYXR0ZW4oW21ldGEuZGVjbGFyYXRpb25zLCBtZXRhLmltcG9ydHNdKSkge1xuICAgIGNhbGxiYWNrKGRhdGEsIHRvTW9jayk7XG4gIH1cbiAgZm9yIChjb25zdCB0b01vY2sgb2YgbWV0YS5wcm92aWRlcnMgPyBmbGF0dGVuKG1ldGEucHJvdmlkZXJzKSA6IFtdKSB7XG4gICAgcmVzb2x2ZVByb3ZpZGVyKGRhdGEsIHRvTW9jayk7XG4gIH1cbn07XG5cbmNvbnN0IHJlc29sdmVQcm92aWRlciA9ICh7IHNraXAsIGtlZXAsIHByb3ZpZGVycywgZXhjbHVkZSB9OiBEYXRhLCBkZWY6IGFueSk6IHZvaWQgPT4ge1xuICBjb25zdCBwcm92aWRlciA9IGZ1bmNHZXRQcm92aWRlcihkZWYpO1xuICBza2lwLmFkZChwcm92aWRlcik7XG4gIGlmIChleGNsdWRlLmhhcyhwcm92aWRlcikpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBwcm92aWRlckRlZiA9IGtlZXAuaGFzKHByb3ZpZGVyKSA/IGRlZiA6IG1vY2tQcm92aWRlcihkZWYpO1xuICBpZiAocHJvdmlkZXJEZWYpIHtcbiAgICBwcm92aWRlcnMucHVzaChwcm92aWRlckRlZik7XG4gIH1cbn07XG5cbmNvbnN0IHJlc29sdmVNYXA6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7XG4gIGNvbXBvbmVudDogTW9ja0NvbXBvbmVudCxcbiAgZGlyZWN0aXZlOiBNb2NrRGlyZWN0aXZlLFxuICBwaXBlOiBNb2NrUGlwZSxcbn07XG5cbmNvbnN0IHJlc29sdmVIYW5kbGVyID0gKGRhdGE6IERhdGEsIHR5cGU6IHN0cmluZywgZGVmOiBhbnksIHNraXBEZXN0cnVjdGlvbjogYm9vbGVhbik6IHZvaWQgPT4ge1xuICBpZiAodHlwZSA9PT0gJ21vZHVsZS13aXRoLXByb3ZpZGVycycpIHtcbiAgICBoYW5kbGVNb2R1bGVXaXRoUHJvdmlkZXJzKGRhdGEsIGRlZik7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ21vZHVsZS1rZWVwJykge1xuICAgIGhhbmRsZURlY2xhcmF0aW9uKGRhdGEsIGRlZiwgTW9ja01vZHVsZSwgZGF0YS5pbXBvcnRzKTsgLy8gTW9ja01vZHVsZSB3aWxsIG5vdCBiZSBjYWxsZWQgYmVjYXVzZSB0aGUgZGVmIGlzIGtlcHQuXG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ21vZHVsZScgJiYgc2tpcERlc3RydWN0aW9uKSB7XG4gICAgaGFuZGxlRGVjbGFyYXRpb24oZGF0YSwgZGVmLCBNb2NrTW9kdWxlLCBkYXRhLmltcG9ydHMpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdtb2R1bGUnKSB7XG4gICAgaGFuZGxlRGVzdHJ1Y3R1cmluZyhkYXRhLCBkZWYsIHJlc29sdmUpO1xuICB9IGVsc2UgaWYgKHJlc29sdmVNYXBbdHlwZV0pIHtcbiAgICBoYW5kbGVEZWNsYXJhdGlvbihkYXRhLCBkZWYsIHJlc29sdmVNYXBbdHlwZV0sIGRhdGEuZGVjbGFyYXRpb25zKTtcbiAgfSBlbHNlIHtcbiAgICByZXNvbHZlUHJvdmlkZXIoZGF0YSwgZGVmKTtcbiAgfVxufTtcblxuY29uc3QgcmVzb2x2ZSA9IChkYXRhOiBEYXRhLCBwcm90bzogYW55LCBza2lwRGVzdHJ1Y3Rpb24gPSB0cnVlKTogdm9pZCA9PiB7XG4gIGlmICghcHJvdG8pIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCB0eXBlID0gZ2V0VHlwZShwcm90bywgZGF0YS5rZWVwKTtcbiAgbGV0IGRlZjogYW55O1xuXG4gIC8vIGFuIGF0dGVtcHQgdG8gcmVwbGFjZSBkZWNsYXJhdGlvbnMuXG4gIGlmICh0eXBlICE9PSAnbW9kdWxlLXdpdGgtcHJvdmlkZXJzJykge1xuICAgIGNvbnN0IHZhbHVlID0gZGF0YS5vcHRpb25hbC5nZXQocHJvdG8pO1xuICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gcHJvdG8pIHtcbiAgICAgIGRlZiA9IHZhbHVlO1xuICAgICAgZGF0YS5rZWVwLmFkZChkZWYpO1xuICAgIH1cbiAgfVxuICBpZiAoIWRlZikge1xuICAgIGRlZiA9IHByb3RvO1xuICB9XG5cbiAgcmVzb2x2ZUhhbmRsZXIoZGF0YSwgdHlwZSwgZGVmLCBza2lwRGVzdHJ1Y3Rpb24pO1xufTtcblxuY29uc3QgZ2VuZXJhdGVEYXRhV2l0aFVuaXZlcnNlID0gKGtlZXA6IFNldDxhbnk+LCBtb2NrOiBTZXQ8YW55PiwgZXhjbHVkZTogU2V0PGFueT4sIG9wdGlvbmFsOiBNYXA8YW55LCBhbnk+KTogdm9pZCA9PiB7XG4gIGZvciAoY29uc3QgayBvZiBtYXBLZXlzKG5nTW9ja3NVbml2ZXJzZS5nZXREZWZhdWx0cygpKSkge1xuICAgIGNvbnN0IHYgPSBuZ01vY2tzVW5pdmVyc2UuZ2V0QnVpbGREZWNsYXJhdGlvbihrKTtcbiAgICBpZiAoa2VlcC5oYXMoaykgfHwgbW9jay5oYXMoaykgfHwgZXhjbHVkZS5oYXMoaykpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBvcHRpb25hbC5zZXQoaywgdik7XG5cbiAgICBpZiAodiA9PT0gbnVsbCkge1xuICAgICAgZXhjbHVkZS5hZGQoayk7XG4gICAgfSBlbHNlIGlmICh2ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIG1vY2suYWRkKGspO1xuICAgIH0gZWxzZSBpZiAoayA9PT0gdikge1xuICAgICAga2VlcC5hZGQoayk7XG4gICAgfVxuICB9XG59O1xuXG5jb25zdCBnZW5lcmF0ZURhdGEgPSAocHJvdG9LZWVwOiBhbnksIHByb3RvTW9jazogYW55LCBwcm90b0V4Y2x1ZGU6IGFueSk6IERhdGEgPT4ge1xuICBjb25zdCBrZWVwID0gbmV3IFNldChmbGF0dGVuKHByb3RvS2VlcCB8fCBbXSkpO1xuICBjb25zdCBtb2NrID0gbmV3IFNldChmbGF0dGVuKHByb3RvTW9jayB8fCBbXSkpO1xuICBjb25zdCBleGNsdWRlID0gbmV3IFNldChmbGF0dGVuKHByb3RvRXhjbHVkZSB8fCBbXSkpO1xuICBjb25zdCBvcHRpb25hbCA9IG5ldyBNYXAoKTtcbiAgZ2VuZXJhdGVEYXRhV2l0aFVuaXZlcnNlKGtlZXAsIG1vY2ssIGV4Y2x1ZGUsIG9wdGlvbmFsKTtcblxuICByZXR1cm4ge1xuICAgIGRlY2xhcmF0aW9uczogW10sXG4gICAgZXhjbHVkZSxcbiAgICBpbXBvcnRzOiBbXSxcbiAgICBrZWVwLFxuICAgIG1vY2ssXG4gICAgb3B0aW9uYWwsXG4gICAgcHJvdmlkZXJzOiBbXSxcbiAgICBza2lwOiBuZXcgU2V0KCksXG4gIH07XG59O1xuXG5leHBvcnQgZGVmYXVsdCAoa2VlcDogYW55LCBtb2NrOiBhbnkgPSBudWxsLCBleGNsdWRlOiBhbnkgPSBudWxsKTogVGVzdE1vZHVsZU1ldGFkYXRhID0+IHtcbiAgY29uc3QgZGF0YTogRGF0YSA9IGdlbmVyYXRlRGF0YShrZWVwLCBtb2NrLCBleGNsdWRlKTtcblxuICBuZ01vY2tzVW5pdmVyc2UuY29uZmlnLnNldCgnbW9ja05nRGVmUmVzb2x2ZXInLCBuZXcgTWFwKCkpO1xuICBmb3IgKGNvbnN0IGRlZiBvZiBtYXBWYWx1ZXMoZGF0YS5tb2NrKSkge1xuICAgIGlmIChkYXRhLm9wdGlvbmFsLmhhcyhkZWYpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgcmVzb2x2ZShkYXRhLCBkZWYsIGZhbHNlKTtcbiAgfVxuICBjb25zdCBtZXRhID0gY3JlYXRlTWV0YShkYXRhKTtcbiAgbmdNb2Nrc1VuaXZlcnNlLmNvbmZpZy5kZWxldGUoJ21vY2tOZ0RlZlJlc29sdmVyJyk7XG5cbiAgcmV0dXJuIG1ldGE7XG59O1xuIl19
|