@squiz/render-runtime-lib 1.73.0 → 1.75.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/lib/PreviewComponentService.js +43 -0
- package/lib/PreviewComponentService.js.map +1 -0
- package/lib/PreviewComponentService.spec.js +64 -0
- package/lib/PreviewComponentService.spec.js.map +1 -0
- package/lib/RenderInputService.js +286 -0
- package/lib/RenderInputService.js.map +1 -0
- package/lib/RenderInputService.spec.js +645 -0
- package/lib/RenderInputService.spec.js.map +1 -0
- package/lib/component-runner/ComponentRootUrlResolver.js +3 -0
- package/lib/component-runner/ComponentRootUrlResolver.js.map +1 -0
- package/lib/component-runner/ComponentRunnerServiceWithWorkers.js +91 -0
- package/lib/component-runner/ComponentRunnerServiceWithWorkers.js.map +1 -0
- package/lib/component-runner/ComponentRunnerServiceWithWorkers.spec.js +104 -0
- package/lib/component-runner/ComponentRunnerServiceWithWorkers.spec.js.map +1 -0
- package/lib/component-runner/ComponentRuntimeContext.d.ts +1 -8
- package/lib/component-runner/ComponentRuntimeContext.js +3 -0
- package/lib/component-runner/ComponentRuntimeContext.js.map +1 -0
- package/lib/component-runner/ContentRuntimeService.d.ts +1 -1
- package/lib/component-runner/ContentRuntimeService.js +31 -0
- package/lib/component-runner/ContentRuntimeService.js.map +1 -0
- package/lib/component-runner/ExecuteComponentTask.d.ts +1 -9
- package/lib/component-runner/ExecuteComponentTask.js +8 -0
- package/lib/component-runner/ExecuteComponentTask.js.map +1 -0
- package/lib/component-runner/FunctionReturnTypes.js +3 -0
- package/lib/component-runner/FunctionReturnTypes.js.map +1 -0
- package/lib/component-runner/index.js +23 -0
- package/lib/component-runner/index.js.map +1 -0
- package/lib/component-runner/worker/component-bootstrapper.js +63 -0
- package/lib/component-runner/worker/component-bootstrapper.js.map +1 -0
- package/lib/health-check-service.js +3 -0
- package/lib/health-check-service.js.map +1 -0
- package/lib/index.d.ts +0 -16
- package/lib/index.js +23 -4590
- package/lib/index.js.map +1 -7
- package/lib/ioc.js +37 -0
- package/lib/ioc.js.map +1 -0
- package/lib/test/helpers/fixtures.js +152 -0
- package/lib/test/helpers/fixtures.js.map +1 -0
- package/lib/test/helpers/stack.js +121 -0
- package/lib/test/helpers/stack.js.map +1 -0
- package/lib/test/index.js +21 -0
- package/lib/test/index.js.map +1 -0
- package/lib/test/mock-services/MockedComponentSetService.js +413 -0
- package/lib/test/mock-services/MockedComponentSetService.js.map +1 -0
- package/lib/test/mock-services/MockedContentItemService.js +37 -0
- package/lib/test/mock-services/MockedContentItemService.js.map +1 -0
- package/lib/test-helpers.d.ts +16 -0
- package/lib/test-helpers.js +44 -0
- package/lib/test-helpers.js.map +1 -0
- package/lib/utils/getContentItemIdFromInput.js +13 -0
- package/lib/utils/getContentItemIdFromInput.js.map +1 -0
- package/lib/utils/getContentItemIdFromInput.spec.js +18 -0
- package/lib/utils/getContentItemIdFromInput.spec.js.map +1 -0
- package/lib/utils/resolvePreviewOutput.js +71 -0
- package/lib/utils/resolvePreviewOutput.js.map +1 -0
- package/lib/utils/resolvePreviewOutput.spec.js +168 -0
- package/lib/utils/resolvePreviewOutput.spec.js.map +1 -0
- package/lib/utils/setHeadersOnExpressResponse.js +15 -0
- package/lib/utils/setHeadersOnExpressResponse.js.map +1 -0
- package/lib/utils/setHeadersOnExpressResponse.sepc.js +21 -0
- package/lib/utils/setHeadersOnExpressResponse.sepc.js.map +1 -0
- package/lib/webserver/app.js +78 -0
- package/lib/webserver/app.js.map +1 -0
- package/lib/webserver/controllers/CoreController.js +116 -0
- package/lib/webserver/controllers/CoreController.js.map +1 -0
- package/lib/webserver/controllers/CoreController.spec.js +132 -0
- package/lib/webserver/controllers/CoreController.spec.js.map +1 -0
- package/lib/webserver/controllers/DefinitionController.js +162 -0
- package/lib/webserver/controllers/DefinitionController.js.map +1 -0
- package/lib/webserver/controllers/DefinitionController.spec.js +16 -0
- package/lib/webserver/controllers/DefinitionController.spec.js.map +1 -0
- package/lib/webserver/controllers/DevelopmentController.js +149 -0
- package/lib/webserver/controllers/DevelopmentController.js.map +1 -0
- package/lib/webserver/controllers/DevelopmentController.spec.js +29 -0
- package/lib/webserver/controllers/DevelopmentController.spec.js.map +1 -0
- package/lib/webserver/controllers/PreviewController.spec.js +124 -0
- package/lib/webserver/controllers/PreviewController.spec.js.map +1 -0
- package/lib/webserver/controllers/RenderController.d.ts +3 -2
- package/lib/webserver/controllers/RenderController.js +221 -0
- package/lib/webserver/controllers/RenderController.js.map +1 -0
- package/lib/webserver/controllers/RenderController.spec.js +441 -0
- package/lib/webserver/controllers/RenderController.spec.js.map +1 -0
- package/lib/webserver/controllers/StaticController.js +149 -0
- package/lib/webserver/controllers/StaticController.js.map +1 -0
- package/lib/webserver/controllers/StaticController.spec.js +28 -0
- package/lib/webserver/controllers/StaticController.spec.js.map +1 -0
- package/lib/webserver/controllers/test/definition-route-tests.js +627 -0
- package/lib/webserver/controllers/test/definition-route-tests.js.map +1 -0
- package/lib/webserver/controllers/test/development-route-tests.js +110 -0
- package/lib/webserver/controllers/test/development-route-tests.js.map +1 -0
- package/lib/webserver/controllers/test/preview-route-tests.js +122 -0
- package/lib/webserver/controllers/test/preview-route-tests.js.map +1 -0
- package/lib/webserver/controllers/test/render-route-sandbox-tests.js +194 -0
- package/lib/webserver/controllers/test/render-route-sandbox-tests.js.map +1 -0
- package/lib/webserver/controllers/test/render-route-tests.js +422 -0
- package/lib/webserver/controllers/test/render-route-tests.js.map +1 -0
- package/lib/webserver/controllers/test/static-route-tests.js +96 -0
- package/lib/webserver/controllers/test/static-route-tests.js.map +1 -0
- package/lib/webserver/index.js +6 -0
- package/lib/webserver/index.js.map +1 -0
- package/lib/webserver/routes/routes.js +902 -0
- package/lib/webserver/routes/routes.js.map +1 -0
- package/package.json +13 -6
- package/lib/migrations/20220704054051_initial.sql +0 -19
- package/lib/migrations/20220718172237_adding_component_sets.sql +0 -23
- package/lib/migrations/20220728113941_add_env_vars_field.sql +0 -1
- package/lib/migrations/20220817113300_removing_null_props_from_jsonb.sql +0 -41
- package/lib/migrations/20221027151225_dummy.sql +0 -2
- package/lib/migrations/20221117151200_add_detail_columns_to_component_version.js +0 -40
- package/lib/migrations/20221220151200_add_required_to_manifests.js +0 -7794
- package/lib/migrations/20221222151200_add_required_to_manifests.js +0 -7856
- package/lib/migrations/20223525103556_component_set_rule.sql +0 -19
- package/lib/migrations/20230111095522_update_environment_property.js +0 -7802
- package/lib/migrations/20230203084900_ensure_static_root_exists.js +0 -47
- package/lib/migrations/20230210143300_lowercase_all_uri_names.js +0 -88
- package/lib/migrations/20230217151212_component_set_component_version_updates.sql +0 -38
- package/lib/migrations/20230218121212_add_component_set_rules.js +0 -24
- package/lib/migrations/202406061447_edge_component_type.sql +0 -1
- package/lib/migrations/202407111308_component_version_type.sql +0 -1
- package/lib/migrations/202408061132_update_type_to_server.sql +0 -1
- package/lib/public/docs.json +0 -5509
- package/lib/worker/component-bootstrapper.js +0 -185979
- package/lib/worker/component-bootstrapper.js.map +0 -7
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var DefinitionController_1;
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.DefinitionController = void 0;
|
|
17
|
+
const tsoa_1 = require("tsoa");
|
|
18
|
+
const inversify_1 = require("inversify");
|
|
19
|
+
const inversify_binding_decorators_1 = require("inversify-binding-decorators");
|
|
20
|
+
const dx_common_lib_1 = require("@squiz/dx-common-lib");
|
|
21
|
+
const component_lib_1 = require("@squiz/component-lib");
|
|
22
|
+
const setHeadersOnExpressResponse_1 = require("../../utils/setHeadersOnExpressResponse");
|
|
23
|
+
let DefinitionController = DefinitionController_1 = class DefinitionController extends tsoa_1.Controller {
|
|
24
|
+
constructor(componentSetService, manifestService, componentFunctionService, componentRootUrlResolver) {
|
|
25
|
+
super();
|
|
26
|
+
this.componentSetService = componentSetService;
|
|
27
|
+
this.manifestService = manifestService;
|
|
28
|
+
this.componentFunctionService = componentFunctionService;
|
|
29
|
+
this.componentRootUrlResolver = componentRootUrlResolver;
|
|
30
|
+
}
|
|
31
|
+
async getComponentVersionManifest(namespace, componentName, version, request, _previewKey, _componentSet) {
|
|
32
|
+
const response = request.res;
|
|
33
|
+
(0, dx_common_lib_1.assertIsDefined)(response);
|
|
34
|
+
this.assertValidQueryParametersForDefinition(_previewKey, _componentSet);
|
|
35
|
+
const rootUrl = this.componentRootUrlResolver(request);
|
|
36
|
+
const manifest = await this.manifestService.loadManifest(namespace, componentName, version);
|
|
37
|
+
if (_previewKey !== undefined) {
|
|
38
|
+
return this.componentFunctionService.prepareManifestForPreview(manifest, _previewKey, rootUrl);
|
|
39
|
+
}
|
|
40
|
+
if (_componentSet !== undefined) {
|
|
41
|
+
await this.setHeadersFromComponentSet(manifest, _componentSet, response);
|
|
42
|
+
return this.componentFunctionService.prepareManifestForWebResponse(manifest, _componentSet, rootUrl);
|
|
43
|
+
}
|
|
44
|
+
return manifest.getModel();
|
|
45
|
+
}
|
|
46
|
+
async getDefaultFunctionDefinition(namespace, componentName, version, request, _previewKey, _componentSet) {
|
|
47
|
+
const response = request.res;
|
|
48
|
+
(0, dx_common_lib_1.assertIsDefined)(response);
|
|
49
|
+
this.assertValidQueryParametersForDefinition(_previewKey, _componentSet);
|
|
50
|
+
const rootUrl = this.componentRootUrlResolver(request);
|
|
51
|
+
const manifest = await this.manifestService.loadManifest(namespace, componentName, version);
|
|
52
|
+
const manifestModel = manifest.getModel();
|
|
53
|
+
const result = this.componentFunctionService.getFunctionDefinitionFromManifest(manifestModel.mainFunction, manifest);
|
|
54
|
+
if (!result) {
|
|
55
|
+
throw new dx_common_lib_1.ResourceNotFoundError(`${manifestModel.mainFunction} could not be found in ${componentName} ${version}`);
|
|
56
|
+
}
|
|
57
|
+
if (_previewKey !== undefined) {
|
|
58
|
+
this.setHeadersFromPreview(manifest, _previewKey, manifestModel.mainFunction, response);
|
|
59
|
+
return this.componentFunctionService.prepareComponentFunctionForPreview(result, manifest, _previewKey, rootUrl);
|
|
60
|
+
}
|
|
61
|
+
if (_componentSet !== undefined) {
|
|
62
|
+
await this.setHeadersFromComponentSet(manifest, _componentSet, response);
|
|
63
|
+
return this.componentFunctionService.prepareComponentFunctionForWebResponse(result, manifest, _componentSet, rootUrl);
|
|
64
|
+
}
|
|
65
|
+
return result;
|
|
66
|
+
}
|
|
67
|
+
async getGivenFunctionDefinition(namespace, componentName, version, functionName, request, _previewKey, _componentSet) {
|
|
68
|
+
const response = request.res;
|
|
69
|
+
(0, dx_common_lib_1.assertIsDefined)(response);
|
|
70
|
+
this.assertValidQueryParametersForDefinition(_previewKey, _componentSet);
|
|
71
|
+
const rootUrl = this.componentRootUrlResolver(request);
|
|
72
|
+
const manifest = await this.manifestService.loadManifest(namespace, componentName, version);
|
|
73
|
+
const result = this.componentFunctionService.getFunctionDefinitionFromManifest(functionName, manifest);
|
|
74
|
+
if (!result) {
|
|
75
|
+
throw new dx_common_lib_1.ResourceNotFoundError(`${functionName} could not be found in ${componentName} ${version}`);
|
|
76
|
+
}
|
|
77
|
+
if (_previewKey !== undefined) {
|
|
78
|
+
this.setHeadersFromPreview(manifest, _previewKey, functionName, response);
|
|
79
|
+
return this.componentFunctionService.prepareComponentFunctionForPreview(result, manifest, _previewKey, rootUrl);
|
|
80
|
+
}
|
|
81
|
+
if (_componentSet !== undefined) {
|
|
82
|
+
await this.setHeadersFromComponentSet(manifest, _componentSet, response);
|
|
83
|
+
return this.componentFunctionService.prepareComponentFunctionForWebResponse(result, manifest, _componentSet, rootUrl);
|
|
84
|
+
}
|
|
85
|
+
return result;
|
|
86
|
+
}
|
|
87
|
+
async setHeadersFromComponentSet(manifest, componentSet, response) {
|
|
88
|
+
const set = await this.componentSetService.getComponentSet(componentSet);
|
|
89
|
+
const componentName = manifest.getName();
|
|
90
|
+
const version = manifest.getVersion();
|
|
91
|
+
const isCompVersionInSet = await this.componentSetService.componentVersionInSet(manifest, set.webPath);
|
|
92
|
+
if (!isCompVersionInSet) {
|
|
93
|
+
throw new dx_common_lib_1.ResourceNotFoundError(`${componentName} ${version} not in set ${set.webPath}`);
|
|
94
|
+
}
|
|
95
|
+
this.setHeaders((set === null || set === void 0 ? void 0 : set.headers) || {}, response);
|
|
96
|
+
}
|
|
97
|
+
setHeadersFromPreview(manifest, _previewKey, functionName, response) {
|
|
98
|
+
const previewConfig = manifest.getFunctionPreviewConfiguration(_previewKey, manifest.getComponentFunctionByName(functionName));
|
|
99
|
+
this.setHeaders((previewConfig === null || previewConfig === void 0 ? void 0 : previewConfig.headers) || {}, response);
|
|
100
|
+
}
|
|
101
|
+
setHeaders(headers, response) {
|
|
102
|
+
(0, setHeadersOnExpressResponse_1.setHeadersOnExpressResponse)(headers, response);
|
|
103
|
+
let cacheControl = response.getHeader('cache-control');
|
|
104
|
+
if (typeof cacheControl !== 'string') {
|
|
105
|
+
cacheControl = undefined;
|
|
106
|
+
}
|
|
107
|
+
response.setHeader('cache-control', (0, dx_common_lib_1.parseAndSanitiseCacheControlHeader)(cacheControl));
|
|
108
|
+
}
|
|
109
|
+
assertValidQueryParametersForDefinition(_previewKey, _componentSet) {
|
|
110
|
+
if (_previewKey !== undefined && _componentSet !== undefined) {
|
|
111
|
+
throw new dx_common_lib_1.BadRequestError('You can not have both a _componentSet and _previewKey');
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
__decorate([
|
|
116
|
+
(0, tsoa_1.Get)('/:namespace/:componentName/:version/manifest.json'),
|
|
117
|
+
__param(0, (0, tsoa_1.Path)()),
|
|
118
|
+
__param(1, (0, tsoa_1.Path)()),
|
|
119
|
+
__param(2, (0, tsoa_1.Path)()),
|
|
120
|
+
__param(3, (0, tsoa_1.Request)()),
|
|
121
|
+
__param(4, (0, tsoa_1.Query)()),
|
|
122
|
+
__param(5, (0, tsoa_1.Query)()),
|
|
123
|
+
__metadata("design:type", Function),
|
|
124
|
+
__metadata("design:paramtypes", [String, String, String, Object, String, String]),
|
|
125
|
+
__metadata("design:returntype", Promise)
|
|
126
|
+
], DefinitionController.prototype, "getComponentVersionManifest", null);
|
|
127
|
+
__decorate([
|
|
128
|
+
(0, tsoa_1.Get)('/:namespace/:componentName/:version'),
|
|
129
|
+
__param(0, (0, tsoa_1.Path)()),
|
|
130
|
+
__param(1, (0, tsoa_1.Path)()),
|
|
131
|
+
__param(2, (0, tsoa_1.Path)()),
|
|
132
|
+
__param(3, (0, tsoa_1.Request)()),
|
|
133
|
+
__param(4, (0, tsoa_1.Query)()),
|
|
134
|
+
__param(5, (0, tsoa_1.Query)()),
|
|
135
|
+
__metadata("design:type", Function),
|
|
136
|
+
__metadata("design:paramtypes", [String, String, String, Object, String, String]),
|
|
137
|
+
__metadata("design:returntype", Promise)
|
|
138
|
+
], DefinitionController.prototype, "getDefaultFunctionDefinition", null);
|
|
139
|
+
__decorate([
|
|
140
|
+
(0, tsoa_1.Get)('/:namespace/:componentName/:version/:functionName'),
|
|
141
|
+
__param(0, (0, tsoa_1.Path)()),
|
|
142
|
+
__param(1, (0, tsoa_1.Path)()),
|
|
143
|
+
__param(2, (0, tsoa_1.Path)()),
|
|
144
|
+
__param(3, (0, tsoa_1.Path)()),
|
|
145
|
+
__param(4, (0, tsoa_1.Request)()),
|
|
146
|
+
__param(5, (0, tsoa_1.Query)()),
|
|
147
|
+
__param(6, (0, tsoa_1.Query)()),
|
|
148
|
+
__metadata("design:type", Function),
|
|
149
|
+
__metadata("design:paramtypes", [String, String, String, String, Object, String, String]),
|
|
150
|
+
__metadata("design:returntype", Promise)
|
|
151
|
+
], DefinitionController.prototype, "getGivenFunctionDefinition", null);
|
|
152
|
+
DefinitionController = DefinitionController_1 = __decorate([
|
|
153
|
+
(0, inversify_binding_decorators_1.provide)(DefinitionController_1),
|
|
154
|
+
(0, tsoa_1.Route)('/d'),
|
|
155
|
+
__param(0, (0, inversify_1.inject)('ComponentSetService')),
|
|
156
|
+
__param(1, (0, inversify_1.inject)('ManifestService')),
|
|
157
|
+
__param(2, (0, inversify_1.inject)('ComponentFunctionService')),
|
|
158
|
+
__param(3, (0, inversify_1.inject)('ComponentRootUrlResolver')),
|
|
159
|
+
__metadata("design:paramtypes", [Object, Object, component_lib_1.ComponentFunctionService, Object])
|
|
160
|
+
], DefinitionController);
|
|
161
|
+
exports.DefinitionController = DefinitionController;
|
|
162
|
+
//# sourceMappingURL=DefinitionController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefinitionController.js","sourceRoot":"","sources":["../../../src/webserver/controllers/DefinitionController.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const test_helpers_1 = require("../../test-helpers");
|
|
4
|
+
const definition_route_tests_1 = require("./test/definition-route-tests");
|
|
5
|
+
describe('render-runtime - component definitions', () => {
|
|
6
|
+
let server;
|
|
7
|
+
beforeAll(() => {
|
|
8
|
+
server = new test_helpers_1.TestHelpers.TestServer();
|
|
9
|
+
server.start();
|
|
10
|
+
});
|
|
11
|
+
afterAll(() => {
|
|
12
|
+
server.stop();
|
|
13
|
+
});
|
|
14
|
+
(0, definition_route_tests_1.definitionRouteTests)(() => server.request);
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=DefinitionController.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefinitionController.spec.js","sourceRoot":"","sources":["../../../src/webserver/controllers/DefinitionController.spec.ts"],"names":[],"mappings":";;AAAA,qDAAiD;AACjD,0EAAqE;AAErE,QAAQ,CAAC,wCAAwC,EAAE,GAAG,EAAE;IACtD,IAAI,MAA8B,CAAC;IACnC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,GAAG,IAAI,0BAAW,CAAC,UAAU,EAAE,CAAC;QACtC,MAAM,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,GAAG,EAAE;QACZ,MAAM,CAAC,IAAI,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IACH,IAAA,6CAAoB,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var DevelopmentController_1;
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.DevelopmentController = void 0;
|
|
17
|
+
const tsoa_1 = require("tsoa");
|
|
18
|
+
const inversify_binding_decorators_1 = require("inversify-binding-decorators");
|
|
19
|
+
const inversify_1 = require("inversify");
|
|
20
|
+
const dx_common_lib_1 = require("@squiz/dx-common-lib");
|
|
21
|
+
const setHeadersOnExpressResponse_1 = require("../../utils/setHeadersOnExpressResponse");
|
|
22
|
+
let DevelopmentController = DevelopmentController_1 = class DevelopmentController extends tsoa_1.Controller {
|
|
23
|
+
constructor(config, manifestService, componentRunnerService) {
|
|
24
|
+
super();
|
|
25
|
+
this.config = config;
|
|
26
|
+
this.manifestService = manifestService;
|
|
27
|
+
this.componentRunnerService = componentRunnerService;
|
|
28
|
+
}
|
|
29
|
+
async getComponents() {
|
|
30
|
+
if (!this.config.enableDevMode) {
|
|
31
|
+
throw new dx_common_lib_1.ResourceNotFoundError('Route does not exist.');
|
|
32
|
+
}
|
|
33
|
+
const components = await this.manifestService.listAllComponentManifests();
|
|
34
|
+
return components.map((component) => component.getModel());
|
|
35
|
+
}
|
|
36
|
+
async Manifest(namespace, componentName, version) {
|
|
37
|
+
if (!this.config.enableDevMode) {
|
|
38
|
+
throw new dx_common_lib_1.ResourceNotFoundError('Route does not exist.');
|
|
39
|
+
}
|
|
40
|
+
const manifest = await this.manifestService.loadManifest(namespace, componentName, version);
|
|
41
|
+
return manifest.getModel();
|
|
42
|
+
}
|
|
43
|
+
async getContentSchema(namespace, componentName, version) {
|
|
44
|
+
if (!this.config.enableDevMode) {
|
|
45
|
+
throw new dx_common_lib_1.ResourceNotFoundError('Route does not exist.');
|
|
46
|
+
}
|
|
47
|
+
const componentManifest = await this.manifestService.loadManifest(namespace, componentName, version);
|
|
48
|
+
const inputSchemas = componentManifest.getInputSchemas();
|
|
49
|
+
const schemaResult = [];
|
|
50
|
+
inputSchemas.forEach((inputSchema) => {
|
|
51
|
+
if (inputSchema.schema && Object.keys(inputSchema.schema).length) {
|
|
52
|
+
schemaResult.push(inputSchema);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
return schemaResult;
|
|
56
|
+
}
|
|
57
|
+
async TemporaryPreview(req, namespace, componentName, version, functionName,
|
|
58
|
+
// With types on the below, we get error: @Query('headers') Can't support refAlias type
|
|
59
|
+
headers, envVars, data) {
|
|
60
|
+
if (!this.config.enableDevMode) {
|
|
61
|
+
throw new dx_common_lib_1.ResourceNotFoundError('Route does not exist.');
|
|
62
|
+
}
|
|
63
|
+
const res = req.res;
|
|
64
|
+
const componentSet = {
|
|
65
|
+
environment: envVars !== null && envVars !== void 0 ? envVars : {},
|
|
66
|
+
displayName: componentName,
|
|
67
|
+
webPath: 'mock-set',
|
|
68
|
+
};
|
|
69
|
+
const rootUrl = `http://${req.headers.host}`.replace(/\/+$/, '');
|
|
70
|
+
const componentManifest = await this.manifestService.loadManifest(namespace, componentName, version);
|
|
71
|
+
const componentFunction = componentManifest.getComponentFunctionByName(functionName);
|
|
72
|
+
const result = await this.componentRunnerService.executeComponentFunction({
|
|
73
|
+
dxpApiKey: undefined,
|
|
74
|
+
requestId: 'MOCK_ME',
|
|
75
|
+
args: [data],
|
|
76
|
+
functionEntryFilePath: await componentManifest.getComponentFunctionEntryFilePath(componentFunction),
|
|
77
|
+
environment: componentSet.environment,
|
|
78
|
+
componentFullName: componentName,
|
|
79
|
+
componentFunction: componentFunction,
|
|
80
|
+
componentRootUrl: rootUrl,
|
|
81
|
+
manifest: componentManifest.getModel(),
|
|
82
|
+
runtimeSet: componentSet,
|
|
83
|
+
manifestPath: await componentManifest.getManifestPath(),
|
|
84
|
+
previewKey: undefined,
|
|
85
|
+
queryParameters: undefined,
|
|
86
|
+
});
|
|
87
|
+
const responseHeaders = headers !== null && headers !== void 0 ? headers : {};
|
|
88
|
+
switch (componentFunction.output.responseType) {
|
|
89
|
+
case 'html':
|
|
90
|
+
responseHeaders['content-type'] = 'text/html';
|
|
91
|
+
break;
|
|
92
|
+
case 'json':
|
|
93
|
+
responseHeaders['content-type'] = 'application/json';
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
(0, setHeadersOnExpressResponse_1.setHeadersOnExpressResponse)(responseHeaders !== null && responseHeaders !== void 0 ? responseHeaders : {}, res);
|
|
97
|
+
res.send(result);
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
__decorate([
|
|
101
|
+
(0, tsoa_1.Get)('/all'),
|
|
102
|
+
__metadata("design:type", Function),
|
|
103
|
+
__metadata("design:paramtypes", []),
|
|
104
|
+
__metadata("design:returntype", Promise)
|
|
105
|
+
], DevelopmentController.prototype, "getComponents", null);
|
|
106
|
+
__decorate([
|
|
107
|
+
(0, tsoa_1.Get)('/manifest/:namespace/:componentName/:version'),
|
|
108
|
+
__param(0, (0, tsoa_1.Path)()),
|
|
109
|
+
__param(1, (0, tsoa_1.Path)()),
|
|
110
|
+
__param(2, (0, tsoa_1.Path)()),
|
|
111
|
+
__metadata("design:type", Function),
|
|
112
|
+
__metadata("design:paramtypes", [String, String, String]),
|
|
113
|
+
__metadata("design:returntype", Promise)
|
|
114
|
+
], DevelopmentController.prototype, "Manifest", null);
|
|
115
|
+
__decorate([
|
|
116
|
+
(0, tsoa_1.Get)('/schemas/:namespace/:componentName/:version'),
|
|
117
|
+
__param(0, (0, tsoa_1.Path)()),
|
|
118
|
+
__param(1, (0, tsoa_1.Path)()),
|
|
119
|
+
__param(2, (0, tsoa_1.Path)()),
|
|
120
|
+
__metadata("design:type", Function),
|
|
121
|
+
__metadata("design:paramtypes", [String, String, String]),
|
|
122
|
+
__metadata("design:returntype", Promise)
|
|
123
|
+
], DevelopmentController.prototype, "getContentSchema", null);
|
|
124
|
+
__decorate([
|
|
125
|
+
(0, tsoa_1.Get)('/temp-preview/:namespace/:componentName/:version/:functionName'),
|
|
126
|
+
(0, tsoa_1.Produces)('text/html'),
|
|
127
|
+
__param(0, (0, tsoa_1.Request)()),
|
|
128
|
+
__param(1, (0, tsoa_1.Path)()),
|
|
129
|
+
__param(2, (0, tsoa_1.Path)()),
|
|
130
|
+
__param(3, (0, tsoa_1.Path)()),
|
|
131
|
+
__param(4, (0, tsoa_1.Path)()),
|
|
132
|
+
__param(5, (0, tsoa_1.Query)()),
|
|
133
|
+
__param(6, (0, tsoa_1.Query)()),
|
|
134
|
+
__param(7, (0, tsoa_1.Query)()),
|
|
135
|
+
__metadata("design:type", Function),
|
|
136
|
+
__metadata("design:paramtypes", [Object, String, String, String, String, Object, Object, Object]),
|
|
137
|
+
__metadata("design:returntype", Promise)
|
|
138
|
+
], DevelopmentController.prototype, "TemporaryPreview", null);
|
|
139
|
+
DevelopmentController = DevelopmentController_1 = __decorate([
|
|
140
|
+
(0, inversify_binding_decorators_1.provide)(DevelopmentController_1),
|
|
141
|
+
(0, tsoa_1.Route)('/dev'),
|
|
142
|
+
(0, tsoa_1.Hidden)(),
|
|
143
|
+
__param(0, (0, inversify_1.inject)('Config')),
|
|
144
|
+
__param(1, (0, inversify_1.inject)('ManifestService')),
|
|
145
|
+
__param(2, (0, inversify_1.inject)('ComponentRunnerService')),
|
|
146
|
+
__metadata("design:paramtypes", [Object, Object, Object])
|
|
147
|
+
], DevelopmentController);
|
|
148
|
+
exports.DevelopmentController = DevelopmentController;
|
|
149
|
+
//# sourceMappingURL=DevelopmentController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DevelopmentController.js","sourceRoot":"","sources":["../../../src/webserver/controllers/DevelopmentController.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+BAAsF;AACtF,+EAAuD;AACvD,yCAAmC;AAEnC,wDAA6D;AAK7D,yFAAsF;AAQ/E,IAAM,qBAAqB,6BAA3B,MAAM,qBAAsB,SAAQ,iBAAU;IACnD,YAC4B,MAAc,EACL,eAAgC,EACzB,sBAA8C;QAExF,KAAK,EAAE,CAAC;QAJkB,WAAM,GAAN,MAAM,CAAQ;QACL,oBAAe,GAAf,eAAe,CAAiB;QACzB,2BAAsB,GAAtB,sBAAsB,CAAwB;IAG1F,CAAC;IAGY,AAAN,KAAK,CAAC,aAAa;QACxB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;YAC9B,MAAM,IAAI,qCAAqB,CAAC,uBAAuB,CAAC,CAAC;SAC1D;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,yBAAyB,EAAE,CAAC;QAC1E,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7D,CAAC;IAGY,AAAN,KAAK,CAAC,QAAQ,CACX,SAAiB,EACjB,aAAqB,EACrB,OAAe;QAEvB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;YAC9B,MAAM,IAAI,qCAAqB,CAAC,uBAAuB,CAAC,CAAC;SAC1D;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,SAAS,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;QAC5F,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;IAGY,AAAN,KAAK,CAAC,gBAAgB,CACnB,SAAiB,EACjB,aAAqB,EACrB,OAAe;QAEvB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;YAC9B,MAAM,IAAI,qCAAqB,CAAC,uBAAuB,CAAC,CAAC;SAC1D;QAED,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,SAAS,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;QACrG,MAAM,YAAY,GAAG,iBAAiB,CAAC,eAAe,EAAE,CAAC;QACzD,MAAM,YAAY,GAAsB,EAAE,CAAC;QAC3C,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;YACnC,IAAI,WAAW,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE;gBAChE,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAChC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,YAAY,CAAC;IACtB,CAAC;IAIY,AAAN,KAAK,CAAC,gBAAgB,CAChB,GAAmB,EACtB,SAAiB,EACjB,aAAqB,EACrB,OAAe,EACf,YAAoB;IAC5B,uFAAuF;IAC9E,OAAa,EACb,OAAa,EACb,IAAU;QAEnB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;YAC9B,MAAM,IAAI,qCAAqB,CAAC,uBAAuB,CAAC,CAAC;SAC1D;QAED,MAAM,GAAG,GAAG,GAAG,CAAC,GAAsB,CAAC;QAEvC,MAAM,YAAY,GAAG;YACnB,WAAW,EAAE,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE;YAC1B,WAAW,EAAE,aAAa;YAC1B,OAAO,EAAE,UAAU;SACpB,CAAC;QAEF,MAAM,OAAO,GAAG,UAAU,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACjE,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,SAAS,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;QAErG,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAAC;QAErF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,wBAAwB,CAAC;YACxE,SAAS,EAAE,SAAS;YACpB,SAAS,EAAE,SAAS;YACpB,IAAI,EAAE,CAAC,IAAI,CAAC;YACZ,qBAAqB,EAAE,MAAM,iBAAiB,CAAC,iCAAiC,CAAC,iBAAiB,CAAC;YACnG,WAAW,EAAE,YAAY,CAAC,WAAW;YACrC,iBAAiB,EAAE,aAAa;YAChC,iBAAiB,EAAE,iBAAiB;YACpC,gBAAgB,EAAE,OAAO;YACzB,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,EAAE;YACtC,UAAU,EAAE,YAAY;YACxB,YAAY,EAAE,MAAM,iBAAiB,CAAC,eAAe,EAAE;YACvD,UAAU,EAAE,SAAS;YACrB,eAAe,EAAE,SAAS;SAC3B,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;QACtC,QAAQ,iBAAiB,CAAC,MAAM,CAAC,YAAY,EAAE;YAC7C,KAAK,MAAM;gBACT,eAAe,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC;gBAC9C,MAAM;YACR,KAAK,MAAM;gBACT,eAAe,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;gBACrD,MAAM;SACT;QAED,IAAA,yDAA2B,EAAC,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,EAAE,EAAE,GAAG,CAAC,CAAC;QACxD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC;CACF,CAAA;AAvGc;IADZ,IAAA,UAAG,EAAC,MAAM,CAAC;;;;0DAQX;AAGY;IADZ,IAAA,UAAG,EAAC,8CAA8C,CAAC;IAEjD,WAAA,IAAA,WAAI,GAAE,CAAA;IACN,WAAA,IAAA,WAAI,GAAE,CAAA;IACN,WAAA,IAAA,WAAI,GAAE,CAAA;;;;qDAQR;AAGY;IADZ,IAAA,UAAG,EAAC,6CAA6C,CAAC;IAEhD,WAAA,IAAA,WAAI,GAAE,CAAA;IACN,WAAA,IAAA,WAAI,GAAE,CAAA;IACN,WAAA,IAAA,WAAI,GAAE,CAAA;;;;6DAeR;AAIY;IAFZ,IAAA,UAAG,EAAC,gEAAgE,CAAC;IACrE,IAAA,eAAQ,EAAC,WAAW,CAAC;IAEnB,WAAA,IAAA,cAAO,GAAE,CAAA;IACT,WAAA,IAAA,WAAI,GAAE,CAAA;IACN,WAAA,IAAA,WAAI,GAAE,CAAA;IACN,WAAA,IAAA,WAAI,GAAE,CAAA;IACN,WAAA,IAAA,WAAI,GAAE,CAAA;IAEN,WAAA,IAAA,YAAK,GAAE,CAAA;IACP,WAAA,IAAA,YAAK,GAAE,CAAA;IACP,WAAA,IAAA,YAAK,GAAE,CAAA;;;;6DA+CT;AAhHU,qBAAqB;IAHjC,IAAA,sCAAO,EAAC,uBAAqB,CAAC;IAC9B,IAAA,YAAK,EAAC,MAAM,CAAC;IACb,IAAA,aAAM,GAAE;IAGJ,WAAA,IAAA,kBAAM,EAAC,QAAQ,CAAC,CAAA;IAChB,WAAA,IAAA,kBAAM,EAAC,iBAAiB,CAAC,CAAA;IACzB,WAAA,IAAA,kBAAM,EAAC,wBAAwB,CAAC,CAAA;;GAJxB,qBAAqB,CAiHjC;AAjHY,sDAAqB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const test_1 = require("../../test");
|
|
4
|
+
const development_route_tests_1 = require("./test/development-route-tests");
|
|
5
|
+
describe('DevelopmentController', () => {
|
|
6
|
+
describe('development mode enabled', () => {
|
|
7
|
+
let server;
|
|
8
|
+
beforeAll(() => {
|
|
9
|
+
server = new test_1.TestServer({}, { enableDevMode: true });
|
|
10
|
+
server.start();
|
|
11
|
+
});
|
|
12
|
+
afterAll(() => {
|
|
13
|
+
server.stop();
|
|
14
|
+
});
|
|
15
|
+
(0, development_route_tests_1.developmentRouteTests)(() => server.request, true);
|
|
16
|
+
});
|
|
17
|
+
describe('development mode disabled', () => {
|
|
18
|
+
let server;
|
|
19
|
+
beforeAll(() => {
|
|
20
|
+
server = new test_1.TestServer({}, { enableDevMode: false });
|
|
21
|
+
server.start();
|
|
22
|
+
});
|
|
23
|
+
afterAll(() => {
|
|
24
|
+
server.stop();
|
|
25
|
+
});
|
|
26
|
+
(0, development_route_tests_1.developmentRouteTests)(() => server.request, false);
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=DevelopmentController.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DevelopmentController.spec.js","sourceRoot":"","sources":["../../../src/webserver/controllers/DevelopmentController.spec.ts"],"names":[],"mappings":";;AAAA,qCAAwC;AACxC,4EAAuE;AAEvE,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACxC,IAAI,MAAkB,CAAC;QACvB,SAAS,CAAC,GAAG,EAAE;YACb,MAAM,GAAG,IAAI,iBAAU,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YACrD,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,GAAG,EAAE;YACZ,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,IAAA,+CAAqB,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACzC,IAAI,MAAkB,CAAC;QACvB,SAAS,CAAC,GAAG,EAAE;YACb,MAAM,GAAG,IAAI,iBAAU,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;YACtD,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,GAAG,EAAE;YACZ,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,IAAA,+CAAqB,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const test_1 = require("../../test");
|
|
4
|
+
const preview_route_tests_1 = require("./test/preview-route-tests");
|
|
5
|
+
describe('PreviewController', () => {
|
|
6
|
+
let server;
|
|
7
|
+
beforeAll(() => {
|
|
8
|
+
server = new test_1.TestServer();
|
|
9
|
+
server.start();
|
|
10
|
+
});
|
|
11
|
+
afterAll(() => {
|
|
12
|
+
server.stop();
|
|
13
|
+
});
|
|
14
|
+
(0, preview_route_tests_1.previewRouteTests)(() => server.request, 'http://localhost:3000');
|
|
15
|
+
it('renders the component mainFunction with inline preview information', async () => {
|
|
16
|
+
const output = await server.request.get('/r/unit-test-components/test-preview-component/1.2.4?_previewKey=test-preview');
|
|
17
|
+
expect(output.statusCode).toEqual(200);
|
|
18
|
+
expect(output.text).toMatchInlineSnapshot(`"800 | this is nested content"`);
|
|
19
|
+
});
|
|
20
|
+
it('renders the component function not main with no preview info', async () => {
|
|
21
|
+
const output = await server.request.get('/r/unit-test-components/test-preview-component/1.2.4/other?_previewKey=test-preview');
|
|
22
|
+
expect(output.text).toMatchInlineSnapshot(`"<code>{}</code>"`);
|
|
23
|
+
expect(output.statusCode).toEqual(200);
|
|
24
|
+
});
|
|
25
|
+
it('renders a component function with a data file for input', async () => {
|
|
26
|
+
const output = await server.request.get('/r/unit-test-components/test-preview-component/1.2.4?_previewKey=another-preview');
|
|
27
|
+
expect(output.statusCode).toEqual(200);
|
|
28
|
+
expect(output.text).toMatchInlineSnapshot(`"12300 | this is also nested content"`);
|
|
29
|
+
});
|
|
30
|
+
it('renders a component function with a wrapper file', async () => {
|
|
31
|
+
const output = await server.request.get('/r/unit-test-components/test-preview-component/1.2.4/other?_previewKey=another-preview');
|
|
32
|
+
expect(output.statusCode).toEqual(200);
|
|
33
|
+
expect(output.text).toMatchInlineSnapshot(`
|
|
34
|
+
"<!DOCTYPE html>
|
|
35
|
+
<html lang="en">
|
|
36
|
+
<head>
|
|
37
|
+
<meta charset="UTF-8" />
|
|
38
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
|
39
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
40
|
+
<title>This is the preview</title>
|
|
41
|
+
</head>
|
|
42
|
+
<body>
|
|
43
|
+
<code>{"random":"test-random-input","something":{"nested":123}}</code>
|
|
44
|
+
</body>
|
|
45
|
+
</html>
|
|
46
|
+
"
|
|
47
|
+
`);
|
|
48
|
+
});
|
|
49
|
+
it('renders the preview with static files URLs resolved', async () => {
|
|
50
|
+
const output = await server.request.get('/r/unit-test-components/test-preview-component/1.0.1?_previewKey=test-preview');
|
|
51
|
+
const expectedCssFileUrl = '/s/unit-test-components/test-preview-component/1.0.1/css-file.css?_previewKey=test-preview';
|
|
52
|
+
expect(output.statusCode).toEqual(200);
|
|
53
|
+
expect(output.text).toMatchInlineSnapshot(`
|
|
54
|
+
"<html>
|
|
55
|
+
<head>
|
|
56
|
+
<link rel="stylesheet" href="http://localhost:3000/s/unit-test-components/test-preview-component/1.0.1/css-file.css?_previewKey=test-preview">
|
|
57
|
+
</head>
|
|
58
|
+
<body>
|
|
59
|
+
<h1>hello</h1><p class="main">This has coloured background via CSS</p><p>Static URL - http://localhost:3000/s/unit-test-components/test-preview-component/1.0.1/js-file.js?_previewKey=test-preview</p> <script src="http://localhost:3000/s/unit-test-components/test-preview-component/1.0.1/js-file.js?_previewKey=test-preview"></script>
|
|
60
|
+
</body>
|
|
61
|
+
</html>
|
|
62
|
+
"
|
|
63
|
+
`);
|
|
64
|
+
const cssFile = await server.request.get(expectedCssFileUrl);
|
|
65
|
+
expect(cssFile.statusCode).toEqual(200);
|
|
66
|
+
expect(cssFile.text).toMatchInlineSnapshot(`
|
|
67
|
+
".main,
|
|
68
|
+
p {
|
|
69
|
+
display: block;
|
|
70
|
+
background-color: rebeccapurple;
|
|
71
|
+
}
|
|
72
|
+
"
|
|
73
|
+
`);
|
|
74
|
+
});
|
|
75
|
+
it('the set response headers in the output', async () => {
|
|
76
|
+
const output = await server.request.get('/r/unit-test-components/test-preview-component/1.0.2?_previewKey=test-preview');
|
|
77
|
+
expect(output.statusCode).toEqual(200);
|
|
78
|
+
expect(output.header['some-header-1']).toEqual('val-1');
|
|
79
|
+
expect(output.header['some-header-2']).toEqual('val-2');
|
|
80
|
+
});
|
|
81
|
+
it("should throw a reasonable message when preview doesn't exist", async () => {
|
|
82
|
+
const response = await server.request.get('/r/unit-test-components/test-preview-component/1.2.4/?_previewKey=doest-exist');
|
|
83
|
+
expect(response.statusCode).toEqual(404);
|
|
84
|
+
expect(response.text).toMatchInlineSnapshot(`"{"message":"Component has not defined preview with key \\"doest-exist\\", the defined preview keys for this component are \\"test-preview, another-preview\\""}"`);
|
|
85
|
+
});
|
|
86
|
+
it('should allow previews to be embedded into cross origin webpages', async () => {
|
|
87
|
+
const response = await server.request.get('/r/unit-test-components/test-preview-component/1.0.4/?_previewKey=test-preview');
|
|
88
|
+
expect(response.header['content-security-policy']).toContain("frame-ancestors * 'self'");
|
|
89
|
+
expect(response.headers).not.toHaveProperty('X-Frame-Options');
|
|
90
|
+
expect(response.statusCode).toEqual(200);
|
|
91
|
+
});
|
|
92
|
+
it('passes through json file data to component', async () => {
|
|
93
|
+
const response = await server.request.get('/r/unit-test-components/test-preview-component/1.2.4/main?_previewKey=another-preview');
|
|
94
|
+
expect(response.text).toMatchInlineSnapshot(`"12300 | this is also nested content"`);
|
|
95
|
+
expect(response.statusCode).toEqual(200);
|
|
96
|
+
});
|
|
97
|
+
it('passes through js file data to component if it meets the input schema', async () => {
|
|
98
|
+
const response = await server.request.get('/r/unit-test-components/test-preview-component/1.0.6/main?_previewKey=preview-js-data-good-data');
|
|
99
|
+
expect(response.text).toMatchInlineSnapshot(`"works | http://localhost:3000/s/unit-test-components/test-preview-component/1.0.6/sub/dir/static-library-file.js?_previewKey=preview-js-data-good-data | http://localhost:3000/r/unit-test-components/test-preview-component/1.0.6/some-function-name?_previewKey=preview-js-data-good-data&input=1234"`);
|
|
100
|
+
expect(response.statusCode).toEqual(200);
|
|
101
|
+
}, 6000000);
|
|
102
|
+
it('should pass down the preview key into info.ctx.getFunctionUrl and info.ctx.getStaticResourceUrl', async () => {
|
|
103
|
+
const response = await server.request.get('/r/unit-test-components/test-preview-component/1.0.5/?_previewKey=test-preview');
|
|
104
|
+
expect(response.statusCode).toEqual(200);
|
|
105
|
+
expect(response.text).toEqual('this is a result | 123 | http://localhost:3000/s/unit-test-components/test-preview-component/1.0.5/sub/dir/static-library-file.js?_previewKey=test-preview | http://localhost:3000/r/unit-test-components/test-preview-component/1.0.5/some-function-name?_previewKey=test-preview&input=1234');
|
|
106
|
+
});
|
|
107
|
+
// TODO unskip these in DEVX-808
|
|
108
|
+
it.skip("should throw and error if preview doesn't define the correct env vars", async () => {
|
|
109
|
+
const response = await server.request.get('/r/unit-test-components/test-environment-variables/1.0.3?_previewKey=missing-env-vars&something=123');
|
|
110
|
+
expect(response.statusCode).toEqual(400);
|
|
111
|
+
expect(response.text).toMatchInlineSnapshot(`"{\\"message\\":\\"Missing environment variables: \\\\\\"TEST_VARIABLE\\\\\\"\\"}"`);
|
|
112
|
+
});
|
|
113
|
+
it.skip('should render if the preview defines the correct env vars', async () => {
|
|
114
|
+
const response = await server.request.get('/r/unit-test-components/test-environment-variables/1.0.3?_previewKey=correct-env-vars&something=123');
|
|
115
|
+
expect(response.text).toMatchInlineSnapshot(`<div>component set {TEST_VARIABLE: "some-value"}`);
|
|
116
|
+
expect(response.statusCode).toEqual(200);
|
|
117
|
+
});
|
|
118
|
+
it.skip('should render when there are extra env vars, but the component should only receive the ones it requests', async () => {
|
|
119
|
+
const response = await server.request.get('/r/unit-test-components/test-environment-variables/1.0.3?_previewKey=correct-env-vars-with-extra&something=123');
|
|
120
|
+
expect(response.statusCode).toEqual(400);
|
|
121
|
+
expect(response.text).toMatchInlineSnapshot(`<div>component set {TEST_VARIABLE: "some-value"}`);
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
//# sourceMappingURL=PreviewController.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PreviewController.spec.js","sourceRoot":"","sources":["../../../src/webserver/controllers/PreviewController.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,8 +14,9 @@ export declare class RenderController extends Controller {
|
|
|
14
14
|
protected contentItemService: ContentItemService | null;
|
|
15
15
|
protected componentPreviewService: ComponentPreviewService;
|
|
16
16
|
constructor(componentSetService: ComponentSetService, manifestService: ManifestService, componentFunctionService: ComponentFunctionService, componentRunnerService: ComponentRunnerService, renderInputService: RenderInputService, contentItemService: ContentItemService | null, componentPreviewService: ComponentPreviewService);
|
|
17
|
-
getDefaultFunctionRendering(expressRequest: ExpressRequest, namespace: string, componentName: string, version: string, componentSet?: string, previewKey?: string, contentItemId?: string): Promise<void>;
|
|
18
|
-
getGivenFunctionRendering(expressRequest: ExpressRequest, namespace: string, componentName: string, version: string, functionName: string, componentSet?: string, previewKey?: string, contentItemId?: string): Promise<void>;
|
|
17
|
+
getDefaultFunctionRendering(expressRequest: ExpressRequest, namespace: string, componentName: string, version: string, componentSet?: string, previewKey?: string, contentItemId?: string, previewBlockIndex?: string): Promise<void>;
|
|
18
|
+
getGivenFunctionRendering(expressRequest: ExpressRequest, namespace: string, componentName: string, version: string, functionName: string, componentSet?: string, previewKey?: string, contentItemId?: string, previewBlockIndex?: string): Promise<void>;
|
|
19
|
+
protected processPreviewHtml(index: string, html: string): string;
|
|
19
20
|
protected handleResponse(input: ComponentExecutionInput, output: FunctionReturnTypes, response: ExpressResponse): void;
|
|
20
21
|
protected doFunctionRender(renderInput: ComponentExecutionInput): Promise<FunctionReturnTypes>;
|
|
21
22
|
private renderAndValidateOutput;
|