@squiz/render-runtime-lib 1.74.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.
Files changed (122) hide show
  1. package/lib/PreviewComponentService.js +43 -0
  2. package/lib/PreviewComponentService.js.map +1 -0
  3. package/lib/PreviewComponentService.spec.js +64 -0
  4. package/lib/PreviewComponentService.spec.js.map +1 -0
  5. package/lib/RenderInputService.js +286 -0
  6. package/lib/RenderInputService.js.map +1 -0
  7. package/lib/RenderInputService.spec.js +645 -0
  8. package/lib/RenderInputService.spec.js.map +1 -0
  9. package/lib/component-runner/ComponentRootUrlResolver.js +3 -0
  10. package/lib/component-runner/ComponentRootUrlResolver.js.map +1 -0
  11. package/lib/component-runner/ComponentRunnerServiceWithWorkers.js +91 -0
  12. package/lib/component-runner/ComponentRunnerServiceWithWorkers.js.map +1 -0
  13. package/lib/component-runner/ComponentRunnerServiceWithWorkers.spec.js +104 -0
  14. package/lib/component-runner/ComponentRunnerServiceWithWorkers.spec.js.map +1 -0
  15. package/lib/component-runner/ComponentRuntimeContext.d.ts +1 -8
  16. package/lib/component-runner/ComponentRuntimeContext.js +3 -0
  17. package/lib/component-runner/ComponentRuntimeContext.js.map +1 -0
  18. package/lib/component-runner/ContentRuntimeService.js +31 -0
  19. package/lib/component-runner/ContentRuntimeService.js.map +1 -0
  20. package/lib/component-runner/ExecuteComponentTask.d.ts +1 -9
  21. package/lib/component-runner/ExecuteComponentTask.js +8 -0
  22. package/lib/component-runner/ExecuteComponentTask.js.map +1 -0
  23. package/lib/component-runner/FunctionReturnTypes.js +3 -0
  24. package/lib/component-runner/FunctionReturnTypes.js.map +1 -0
  25. package/lib/component-runner/index.js +23 -0
  26. package/lib/component-runner/index.js.map +1 -0
  27. package/lib/component-runner/worker/component-bootstrapper.js +63 -0
  28. package/lib/component-runner/worker/component-bootstrapper.js.map +1 -0
  29. package/lib/health-check-service.js +3 -0
  30. package/lib/health-check-service.js.map +1 -0
  31. package/lib/index.d.ts +0 -16
  32. package/lib/index.js +23 -4610
  33. package/lib/index.js.map +1 -7
  34. package/lib/ioc.js +37 -0
  35. package/lib/ioc.js.map +1 -0
  36. package/lib/test/helpers/fixtures.js +152 -0
  37. package/lib/test/helpers/fixtures.js.map +1 -0
  38. package/lib/test/helpers/stack.js +121 -0
  39. package/lib/test/helpers/stack.js.map +1 -0
  40. package/lib/test/index.js +21 -0
  41. package/lib/test/index.js.map +1 -0
  42. package/lib/test/mock-services/MockedComponentSetService.js +413 -0
  43. package/lib/test/mock-services/MockedComponentSetService.js.map +1 -0
  44. package/lib/test/mock-services/MockedContentItemService.js +37 -0
  45. package/lib/test/mock-services/MockedContentItemService.js.map +1 -0
  46. package/lib/test-helpers.d.ts +16 -0
  47. package/lib/test-helpers.js +44 -0
  48. package/lib/test-helpers.js.map +1 -0
  49. package/lib/utils/getContentItemIdFromInput.js +13 -0
  50. package/lib/utils/getContentItemIdFromInput.js.map +1 -0
  51. package/lib/utils/getContentItemIdFromInput.spec.js +18 -0
  52. package/lib/utils/getContentItemIdFromInput.spec.js.map +1 -0
  53. package/lib/utils/resolvePreviewOutput.js +71 -0
  54. package/lib/utils/resolvePreviewOutput.js.map +1 -0
  55. package/lib/utils/resolvePreviewOutput.spec.js +168 -0
  56. package/lib/utils/resolvePreviewOutput.spec.js.map +1 -0
  57. package/lib/utils/setHeadersOnExpressResponse.js +15 -0
  58. package/lib/utils/setHeadersOnExpressResponse.js.map +1 -0
  59. package/lib/utils/setHeadersOnExpressResponse.sepc.js +21 -0
  60. package/lib/utils/setHeadersOnExpressResponse.sepc.js.map +1 -0
  61. package/lib/webserver/app.js +78 -0
  62. package/lib/webserver/app.js.map +1 -0
  63. package/lib/webserver/controllers/CoreController.js +116 -0
  64. package/lib/webserver/controllers/CoreController.js.map +1 -0
  65. package/lib/webserver/controllers/CoreController.spec.js +132 -0
  66. package/lib/webserver/controllers/CoreController.spec.js.map +1 -0
  67. package/lib/webserver/controllers/DefinitionController.js +162 -0
  68. package/lib/webserver/controllers/DefinitionController.js.map +1 -0
  69. package/lib/webserver/controllers/DefinitionController.spec.js +16 -0
  70. package/lib/webserver/controllers/DefinitionController.spec.js.map +1 -0
  71. package/lib/webserver/controllers/DevelopmentController.js +149 -0
  72. package/lib/webserver/controllers/DevelopmentController.js.map +1 -0
  73. package/lib/webserver/controllers/DevelopmentController.spec.js +29 -0
  74. package/lib/webserver/controllers/DevelopmentController.spec.js.map +1 -0
  75. package/lib/webserver/controllers/PreviewController.spec.js +124 -0
  76. package/lib/webserver/controllers/PreviewController.spec.js.map +1 -0
  77. package/lib/webserver/controllers/RenderController.d.ts +3 -2
  78. package/lib/webserver/controllers/RenderController.js +221 -0
  79. package/lib/webserver/controllers/RenderController.js.map +1 -0
  80. package/lib/webserver/controllers/RenderController.spec.js +441 -0
  81. package/lib/webserver/controllers/RenderController.spec.js.map +1 -0
  82. package/lib/webserver/controllers/StaticController.js +149 -0
  83. package/lib/webserver/controllers/StaticController.js.map +1 -0
  84. package/lib/webserver/controllers/StaticController.spec.js +28 -0
  85. package/lib/webserver/controllers/StaticController.spec.js.map +1 -0
  86. package/lib/webserver/controllers/test/definition-route-tests.js +627 -0
  87. package/lib/webserver/controllers/test/definition-route-tests.js.map +1 -0
  88. package/lib/webserver/controllers/test/development-route-tests.js +110 -0
  89. package/lib/webserver/controllers/test/development-route-tests.js.map +1 -0
  90. package/lib/webserver/controllers/test/preview-route-tests.js +122 -0
  91. package/lib/webserver/controllers/test/preview-route-tests.js.map +1 -0
  92. package/lib/webserver/controllers/test/render-route-sandbox-tests.js +194 -0
  93. package/lib/webserver/controllers/test/render-route-sandbox-tests.js.map +1 -0
  94. package/lib/webserver/controllers/test/render-route-tests.js +422 -0
  95. package/lib/webserver/controllers/test/render-route-tests.js.map +1 -0
  96. package/lib/webserver/controllers/test/static-route-tests.js +96 -0
  97. package/lib/webserver/controllers/test/static-route-tests.js.map +1 -0
  98. package/lib/webserver/index.js +6 -0
  99. package/lib/webserver/index.js.map +1 -0
  100. package/lib/webserver/routes/routes.js +902 -0
  101. package/lib/webserver/routes/routes.js.map +1 -0
  102. package/package.json +13 -6
  103. package/lib/migrations/20220704054051_initial.sql +0 -19
  104. package/lib/migrations/20220718172237_adding_component_sets.sql +0 -23
  105. package/lib/migrations/20220728113941_add_env_vars_field.sql +0 -1
  106. package/lib/migrations/20220817113300_removing_null_props_from_jsonb.sql +0 -41
  107. package/lib/migrations/20221027151225_dummy.sql +0 -2
  108. package/lib/migrations/20221117151200_add_detail_columns_to_component_version.js +0 -40
  109. package/lib/migrations/20221220151200_add_required_to_manifests.js +0 -7794
  110. package/lib/migrations/20221222151200_add_required_to_manifests.js +0 -7856
  111. package/lib/migrations/20223525103556_component_set_rule.sql +0 -19
  112. package/lib/migrations/20230111095522_update_environment_property.js +0 -7802
  113. package/lib/migrations/20230203084900_ensure_static_root_exists.js +0 -47
  114. package/lib/migrations/20230210143300_lowercase_all_uri_names.js +0 -88
  115. package/lib/migrations/20230217151212_component_set_component_version_updates.sql +0 -38
  116. package/lib/migrations/20230218121212_add_component_set_rules.js +0 -24
  117. package/lib/migrations/202406061447_edge_component_type.sql +0 -1
  118. package/lib/migrations/202407111308_component_version_type.sql +0 -1
  119. package/lib/migrations/202408061132_update_type_to_server.sql +0 -1
  120. package/lib/public/docs.json +0 -5509
  121. package/lib/worker/component-bootstrapper.js +0 -170132
  122. package/lib/worker/component-bootstrapper.js.map +0 -7
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition-route-tests.js","sourceRoot":"","sources":["../../../../src/webserver/controllers/test/definition-route-tests.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.developmentRouteTests = void 0;
4
+ function developmentRouteTests(request, devModeEnabled) {
5
+ describe(`development routes`, () => {
6
+ if (devModeEnabled) {
7
+ describe('all route (dev mode enabled)', () => {
8
+ it('should return an array of all component manifests', async () => {
9
+ const response = await request().get('/dev/all');
10
+ expect(response.statusCode).toEqual(200);
11
+ expect(response.type).toEqual('application/json');
12
+ expect(response.body).toEqual(expect.arrayContaining([
13
+ expect.objectContaining({
14
+ $schema: 'http://localhost:3000/schemas/v1.json#',
15
+ name: 'test-preview-component',
16
+ version: '1.0.1',
17
+ mainFunction: 'main',
18
+ displayName: 'some-display-name',
19
+ namespace: 'unit-test-components',
20
+ description: 'some-description',
21
+ functions: expect.any(Array),
22
+ staticFiles: expect.any(Object),
23
+ previews: expect.any(Object),
24
+ }),
25
+ ]));
26
+ });
27
+ });
28
+ describe('manifest route (dev mode enabled)', () => {
29
+ it('should return the manifest of the requested component', async () => {
30
+ const response = await request().get('/dev/manifest/unit-test-components/test-preview-component/1.0.1');
31
+ expect(response.statusCode).toEqual(200);
32
+ expect(response.type).toEqual('application/json');
33
+ expect(response.body).toEqual(expect.objectContaining({
34
+ $schema: 'http://localhost:3000/schemas/v1.json#',
35
+ name: 'test-preview-component',
36
+ version: '1.0.1',
37
+ mainFunction: 'main',
38
+ displayName: 'some-display-name',
39
+ namespace: 'unit-test-components',
40
+ description: 'some-description',
41
+ functions: expect.any(Array),
42
+ staticFiles: expect.any(Object),
43
+ previews: expect.any(Object),
44
+ }));
45
+ });
46
+ });
47
+ describe('schemas route (dev mode enabled)', () => {
48
+ it('should return the schemas of the requested component', async () => {
49
+ const response = await request().get('/dev/schemas/unit-test-components/test-preview-component/1.0.1');
50
+ expect(response.statusCode).toEqual(200);
51
+ expect(response.type).toEqual('application/json');
52
+ expect(response.body).toEqual([
53
+ {
54
+ name: 'main',
55
+ schema: {
56
+ type: 'object',
57
+ properties: {
58
+ something: {
59
+ type: 'string',
60
+ },
61
+ },
62
+ required: [],
63
+ },
64
+ },
65
+ {
66
+ name: 'promise-func',
67
+ schema: {
68
+ type: 'object',
69
+ properties: {
70
+ something: {
71
+ type: 'string',
72
+ },
73
+ },
74
+ required: ['something'],
75
+ },
76
+ },
77
+ ]);
78
+ });
79
+ });
80
+ }
81
+ else {
82
+ describe('all route (dev mode disabled)', () => {
83
+ it('all return a 404 error', async () => {
84
+ const response = await request().get('/dev/all');
85
+ expect(response.statusCode).toEqual(404);
86
+ expect(response.type).toEqual('application/json');
87
+ expect(response.body).toEqual({ message: 'Route does not exist.' });
88
+ });
89
+ });
90
+ describe('manifest route (dev mode disabled)', () => {
91
+ it('should return a 404 error', async () => {
92
+ const response = await request().get('/dev/manifest/unit-test-components/test-preview-component/1.0.1');
93
+ expect(response.statusCode).toEqual(404);
94
+ expect(response.type).toEqual('application/json');
95
+ expect(response.body).toEqual({ message: 'Route does not exist.' });
96
+ });
97
+ });
98
+ describe('schemas route (dev mode disabled)', () => {
99
+ it('should return a 404 error', async () => {
100
+ const response = await request().get('/dev/schemas/unit-test-components/test-preview-component/1.0.1');
101
+ expect(response.statusCode).toEqual(404);
102
+ expect(response.type).toEqual('application/json');
103
+ expect(response.body).toEqual({ message: 'Route does not exist.' });
104
+ });
105
+ });
106
+ }
107
+ });
108
+ }
109
+ exports.developmentRouteTests = developmentRouteTests;
110
+ //# sourceMappingURL=development-route-tests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"development-route-tests.js","sourceRoot":"","sources":["../../../../src/webserver/controllers/test/development-route-tests.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.previewRouteTests = void 0;
4
+ function previewRouteTests(request, rootUrl = '${rootUrl}') {
5
+ describe('preview routes', () => {
6
+ it('should render a preview of a component with no wrapper file', async () => {
7
+ await request()
8
+ .get('/r/unit-test-components/test-preview-component/1.2.4?_previewKey=test-preview')
9
+ .expect(200)
10
+ .expect('content-type', 'text/html; charset=utf-8')
11
+ .expect('800 | this is nested content');
12
+ });
13
+ it('should render a preview of a component with a different preset', async () => {
14
+ await request()
15
+ .get('/r/unit-test-components/test-preview-component/1.2.4?_previewKey=another-preview')
16
+ .expect(200)
17
+ .expect('content-type', 'text/html; charset=utf-8')
18
+ .expect('12300 | this is also nested content');
19
+ });
20
+ it('should render a preview of a component non-main function with a wrapper html file', async () => {
21
+ await request()
22
+ .get('/r/unit-test-components/test-preview-component/1.2.4/other?_previewKey=another-preview')
23
+ .expect(200)
24
+ .expect('content-type', 'text/html; charset=utf-8')
25
+ .expect((a) => {
26
+ expect(a.text).toMatchInlineSnapshot(`
27
+ "<!DOCTYPE html>
28
+ <html lang="en">
29
+ <head>
30
+ <meta charset="UTF-8" />
31
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
32
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
33
+ <title>This is the preview</title>
34
+ </head>
35
+ <body>
36
+ <code>{"random":"test-random-input","something":{"nested":123}}</code>
37
+ </body>
38
+ </html>
39
+ "
40
+ `);
41
+ });
42
+ });
43
+ it('should render a preview of a component function with static files, those static files are accessible', async () => {
44
+ const expectedCssPath = '/s/unit-test-components/test-preview-component/1.0.1/css-file.css?_previewKey=test-preview';
45
+ const expectedJsPath = '/s/unit-test-components/test-preview-component/1.0.1/js-file.js?_previewKey=test-preview';
46
+ await request()
47
+ .get('/r/unit-test-components/test-preview-component/1.0.1/?_previewKey=test-preview')
48
+ .expect(200)
49
+ .expect('content-type', 'text/html; charset=utf-8')
50
+ .expect((a) => {
51
+ expect(a.text.replace(new RegExp(rootUrl, 'g'), '')).toMatchInlineSnapshot(`
52
+ "<html>
53
+ <head>
54
+ <link rel="stylesheet" href="/s/unit-test-components/test-preview-component/1.0.1/css-file.css?_previewKey=test-preview">
55
+ </head>
56
+ <body>
57
+ <h1>hello</h1><p class="main">This has coloured background via CSS</p><p>Static URL - /s/unit-test-components/test-preview-component/1.0.1/js-file.js?_previewKey=test-preview</p> <script src="/s/unit-test-components/test-preview-component/1.0.1/js-file.js?_previewKey=test-preview"></script>
58
+ </body>
59
+ </html>
60
+ "
61
+ `);
62
+ });
63
+ await request()
64
+ .get(expectedCssPath)
65
+ .expect(200)
66
+ .expect('content-type', 'text/css; charset=UTF-8')
67
+ .expect((a) => {
68
+ expect(a.text).toMatchInlineSnapshot(`
69
+ ".main,
70
+ p {
71
+ display: block;
72
+ background-color: rebeccapurple;
73
+ }
74
+ "
75
+ `);
76
+ });
77
+ await request()
78
+ .get(expectedJsPath)
79
+ .expect(200)
80
+ .expect('content-type', 'application/javascript; charset=UTF-8')
81
+ .expect((a) => {
82
+ expect(a.text).toMatchInlineSnapshot(`
83
+ "function clientFunc(input) {
84
+ console.log('hello');
85
+ }
86
+ clientFunc();
87
+ "
88
+ `);
89
+ });
90
+ }, 50000);
91
+ it('should load the defined preview for a given preview key', async () => {
92
+ const response = await request().get('/r/unit-test-components/test-preview-component/1.0.3?_previewKey=second-preview');
93
+ expect(response.text).toContain(`<p>Second Preview</p>`);
94
+ expect(response.statusCode).toEqual(200);
95
+ });
96
+ it('should give meaningful error when preview key is invalid', async () => {
97
+ const response = await request().get('/r/unit-test-components/test-preview-component/1.0.3?_previewKey=invalid');
98
+ expect(response.text).toEqual(`{"message":"Component has not defined preview with key \\"invalid\\", the defined preview keys for this component are \\"first-preview, second-preview, test-preview\\""}`);
99
+ expect(response.statusCode).toEqual(404);
100
+ });
101
+ it('should render inline preview data through to component', async () => {
102
+ const response = await request().get('/r/unit-test-components/test-preview-component/1.0.4?_previewKey=test-preview');
103
+ expect(response.text).toContain(`this is a result | 123`);
104
+ expect(response.statusCode).toEqual(200);
105
+ }, 10000);
106
+ it('should resolve URIs to mocked URI object in preview route', async () => {
107
+ await request()
108
+ .get('/r/unit-test-components/test-preview-component/1.1.1?_previewKey=test-preview')
109
+ .expect(200)
110
+ .expect((a) => {
111
+ expect(a.text).toMatchInlineSnapshot(`
112
+ "
113
+ inline:{"id":"id-inline","type":"root_folder","type_name":"Root Folder","version":"0.0.1","name":"Root Folder","short_name":"/","status":{"id":2,"code":"under_construction"},"created":{"date":"2020-02-27T09:47:27+11:00","user_id":null},"updated":{"date":"2020-02-27T09:47:27+11:00","user_id":""},"published":{"date":"2020-02-27T09:47:27+11:00","user_id":"null"},"status_changed":{"date":"2020-02-27T09:47:27+11:00","user_id":"null"},"url":"xxx","urls":[],"attributes":{"test":"test"},"additional":{}}
114
+ file:{"id":"id-file","type":"root_folder","type_name":"Root Folder","version":"0.0.1","name":"Root Folder","short_name":"/","status":{"id":2,"code":"under_construction"},"created":{"date":"2020-02-27T09:47:27+11:00","user_id":null},"updated":{"date":"2020-02-27T09:47:27+11:00","user_id":""},"published":{"date":"2020-02-27T09:47:27+11:00","user_id":"null"},"status_changed":{"date":"2020-02-27T09:47:27+11:00","user_id":"null"},"url":"xxx","urls":[],"attributes":{"test":"test"}}
115
+ "
116
+ `);
117
+ });
118
+ });
119
+ });
120
+ }
121
+ exports.previewRouteTests = previewRouteTests;
122
+ //# sourceMappingURL=preview-route-tests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview-route-tests.js","sourceRoot":"","sources":["../../../../src/webserver/controllers/test/preview-route-tests.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.renderRouteSandboxTests = void 0;
4
+ function renderRouteSandboxTests(request) {
5
+ describe('GET /r/unit-test-components/test-malicious-code/...', () => {
6
+ it('should timeout infinite running code', async () => {
7
+ const response = await request().get('/r/unit-test-components/test-malicious-code/1.0.0/?_componentSet=set&something=hello');
8
+ expect(response.statusCode).toEqual(500);
9
+ expect(response.headers['content-type']).toEqual('text/html; charset=utf-8');
10
+ expect(response.text).toEqual('<!-- function while-true of component unit-test-components/test-malicious-code 1.0.0 could not complete with in the allotted time -->');
11
+ }, 30000);
12
+ it('should timeout non terminating code', async () => {
13
+ const response = await request().get('/r/unit-test-components/test-malicious-code/1.3.0/executing-after-return?_componentSet=set');
14
+ expect(response.statusCode).toEqual(500);
15
+ expect(response.headers['content-type']).toEqual('application/json; charset=utf-8');
16
+ expect(response.body).toEqual({
17
+ message: 'function executing-after-return of component unit-test-components/test-malicious-code 1.3.0 could not complete with in the allotted time',
18
+ });
19
+ }, 30000);
20
+ it.skip('should not allow starting your own services', async () => {
21
+ const response = await request().get('/r/unit-test-components/test-malicious-code/1.3.0/reverse-shell?_componentSet=set');
22
+ expect(response.body).toEqual({
23
+ message: 'function executing-after-return of component unit-test-components/test-malicious-code 1.3.0 could not complete with in the allotted time',
24
+ });
25
+ expect(response.statusCode).toEqual(500);
26
+ expect(response.headers['content-type']).toEqual('application/json; charset=utf-8');
27
+ }, 10000);
28
+ it.skip('should deny access to fs', async () => {
29
+ const response = await request().get('/r/unit-test-components/test-malicious-code/1.1.0/?_componentSet=set&something=hello');
30
+ expect(response.statusCode).toEqual(500);
31
+ expect(response.headers['content-type']).toEqual('application/json; charset=utf-8');
32
+ expect(response.body).toEqual({
33
+ message: "Cannot find module 'fs'",
34
+ });
35
+ });
36
+ it('should allow access to a subset of node provided modules', async () => {
37
+ const response = await request().get('/r/unit-test-components/test-malicious-code/1.1.0/allowed-modules?_componentSet=set');
38
+ expect(response.statusCode).toEqual(200);
39
+ expect(response.headers['content-type']).toContain('application/json');
40
+ expect(response.body.sort()).toEqual([
41
+ '_http_agent',
42
+ '_http_client',
43
+ '_http_common',
44
+ '_http_incoming',
45
+ '_http_outgoing',
46
+ '_http_server',
47
+ '_stream_duplex',
48
+ '_stream_passthrough',
49
+ '_stream_readable',
50
+ '_stream_transform',
51
+ '_stream_wrap',
52
+ '_stream_writable',
53
+ '_tls_common',
54
+ '_tls_wrap',
55
+ 'assert',
56
+ 'assert/strict',
57
+ 'async_hooks',
58
+ 'buffer',
59
+ 'child_process',
60
+ 'cluster',
61
+ 'console',
62
+ 'constants',
63
+ 'crypto',
64
+ 'dgram',
65
+ 'diagnostics_channel',
66
+ 'dns',
67
+ 'dns/promises',
68
+ 'domain',
69
+ 'events',
70
+ 'fs',
71
+ 'fs/promises',
72
+ 'http',
73
+ 'http2',
74
+ 'https',
75
+ 'inspector',
76
+ 'inspector/promises',
77
+ 'module',
78
+ 'net',
79
+ 'os',
80
+ 'path',
81
+ 'path/posix',
82
+ 'path/win32',
83
+ 'perf_hooks',
84
+ 'process',
85
+ 'punycode',
86
+ 'querystring',
87
+ 'readline',
88
+ 'readline/promises',
89
+ 'repl',
90
+ 'stream',
91
+ 'stream/consumers',
92
+ 'stream/promises',
93
+ 'stream/web',
94
+ 'string_decoder',
95
+ 'sys',
96
+ 'timers',
97
+ 'timers/promises',
98
+ 'tls',
99
+ 'trace_events',
100
+ 'tty',
101
+ 'url',
102
+ 'util',
103
+ 'util/types',
104
+ 'v8',
105
+ 'vm',
106
+ 'wasi',
107
+ 'worker_threads',
108
+ 'zlib',
109
+ ].sort());
110
+ });
111
+ it('should not allow process.exit calls', async () => {
112
+ const response = await request().get('/r/unit-test-components/test-malicious-code/1.2.0/process-exit?_componentSet=set');
113
+ expect(response.statusCode).toEqual(500);
114
+ expect(response.headers['content-type']).toEqual('application/json; charset=utf-8');
115
+ expect(response.body).toEqual({
116
+ message: 'process.exit is not a function',
117
+ });
118
+ });
119
+ it('should not allow process.binding calls', async () => {
120
+ const response = await request().get('/r/unit-test-components/test-malicious-code/1.2.0/process-binding?_componentSet=set');
121
+ expect(response.statusCode).toEqual(500);
122
+ expect(response.headers['content-type']).toEqual('application/json; charset=utf-8');
123
+ expect(response.body).toEqual({
124
+ message: "Cannot read properties of undefined (reading 'process')",
125
+ });
126
+ });
127
+ it('should not allow process.kill calls', async () => {
128
+ const response = await request().get('/r/unit-test-components/test-malicious-code/1.2.0/process-kill?_componentSet=set');
129
+ expect(response.statusCode).toEqual(500);
130
+ expect(response.headers['content-type']).toEqual('application/json; charset=utf-8');
131
+ expect(response.body).toEqual({
132
+ message: 'process.kill is not a function',
133
+ });
134
+ });
135
+ it('should not allow process.abort calls', async () => {
136
+ const response = await request().get('/r/unit-test-components/test-malicious-code/1.2.0/process-abort?_componentSet=set');
137
+ expect(response.statusCode).toEqual(500);
138
+ expect(response.headers['content-type']).toEqual('application/json; charset=utf-8');
139
+ expect(response.body).toEqual({
140
+ message: 'process.abort is not a function',
141
+ });
142
+ });
143
+ it.skip('should not allow access to parentPort', async () => {
144
+ const response = await request().get('/r/unit-test-components/test-malicious-code/1.3.0/accessing-parent-port?_componentSet=set');
145
+ expect(response.statusCode).toEqual(500);
146
+ expect(response.headers['content-type']).toEqual('application/json; charset=utf-8');
147
+ expect(response.body).toEqual({
148
+ message: "Cannot find module 'worker_threads'",
149
+ });
150
+ });
151
+ it('should not allow escaping the sandbox through the constructor', async () => {
152
+ const response = await request().get('/r/unit-test-components/test-malicious-code/1.2.0/constructor-escape?_componentSet=set');
153
+ expect(response.statusCode).toEqual(500);
154
+ expect(response.headers['content-type']).toEqual('application/json; charset=utf-8');
155
+ expect(response.body).toEqual({
156
+ message: "Cannot read properties of undefined (reading 'constructor')",
157
+ });
158
+ });
159
+ it('should not allow escaping the sandbox through the constructor and calling exit', async () => {
160
+ const response = await request().get('/r/unit-test-components/test-malicious-code/1.2.0/constructor-escape?_componentSet=set');
161
+ expect(response.statusCode).toEqual(500);
162
+ expect(response.headers['content-type']).toEqual('application/json; charset=utf-8');
163
+ expect(response.body).toEqual({
164
+ message: "Cannot read properties of undefined (reading 'constructor')",
165
+ });
166
+ });
167
+ it('should not allow escaping the sandbox through the constructor and loading restricted modules', async () => {
168
+ const response = await request().get('/r/unit-test-components/test-malicious-code/1.2.0/constructor-fs?_componentSet=set');
169
+ expect(response.body).toEqual({
170
+ message: "Cannot read properties of undefined (reading 'constructor')",
171
+ });
172
+ expect(response.statusCode).toEqual(500);
173
+ expect(response.headers['content-type']).toEqual('application/json; charset=utf-8');
174
+ });
175
+ it('should not allow circumvention of module restrictions', async () => {
176
+ const response = await request().get('/r/unit-test-components/test-malicious-code/1.2.0/circumventing-module-restriction?_componentSet=set');
177
+ expect(response.statusCode).toEqual(500);
178
+ expect(response.headers['content-type']).toEqual('application/json; charset=utf-8');
179
+ expect(response.body).toEqual({
180
+ message: "Cannot read properties of undefined (reading 'constructor')",
181
+ });
182
+ });
183
+ it('should not allow circumvention of module restrictions with mainmodule', async () => {
184
+ const response = await request().get('/r/unit-test-components/test-malicious-code/1.2.0/circumventing-module-restriction-mainmodule?_componentSet=set');
185
+ expect(response.statusCode).toEqual(500);
186
+ expect(response.headers['content-type']).toEqual('application/json; charset=utf-8');
187
+ expect(response.body).toEqual({
188
+ message: "Cannot read properties of undefined (reading 'require')",
189
+ });
190
+ });
191
+ });
192
+ }
193
+ exports.renderRouteSandboxTests = renderRouteSandboxTests;
194
+ //# sourceMappingURL=render-route-sandbox-tests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-route-sandbox-tests.js","sourceRoot":"","sources":["../../../../src/webserver/controllers/test/render-route-sandbox-tests.ts"],"names":[],"mappings":"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"}